X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbearch.h;h=db991331db4f632fa70e6b1121e7c17d36c7a852;hb=e3b759fcf8896ea47333fc2e415a1ef4b31e031a;hp=f81adc5e41642572b7a0cac83fa34a05b3004179;hpb=bc7b5ee69d084e629590a6977b79a2fab7cd1aa1;p=libfirm diff --git a/ir/be/bearch.h b/ir/be/bearch.h index f81adc5e4..db991331d 100644 --- a/ir/be/bearch.h +++ b/ir/be/bearch.h @@ -132,19 +132,6 @@ const arch_register_req_t *arch_get_register_req(const ir_node *irn, int pos); #define arch_get_register_req_out(irn) arch_get_register_req(irn, -1) -/** - * Get the number of allocatable registers concerning - * a register class for an operand of a node. - * @param irn The node. - * @param pos The position of the node's operand. - * @param bs The bitset all allocatable registers shall be put into. - * Note, that you can also pass NULL here. If you don't, - * make sure, the bitset is as large as the register class - * has registers. - * @return The amount of registers allocatable for that operand. - */ -int arch_get_allocatable_regs(const ir_node *irn, int pos, bitset_t *bs); - /** * Put all registers which shall not be ignored by the register * allocator in a bit set. @@ -162,6 +149,8 @@ extern void arch_put_non_ignore_regs(const arch_register_class_t *cls, bitset_t */ int arch_reg_is_allocatable(const ir_node *irn, int pos, const arch_register_t *reg); +#define arch_reg_out_is_allocatable(irn, reg) arch_reg_is_allocatable(irn, -1, reg) + /** * Get the register class of an operand of a node. * @param irn The node. @@ -171,6 +160,8 @@ int arch_reg_is_allocatable(const ir_node *irn, int pos, const arch_register_t * */ const arch_register_class_t *arch_get_irn_reg_class(const ir_node *irn, int pos); +#define arch_get_irn_reg_class_out(irn) arch_get_irn_reg_class(irn, -1) + /** * Get the register allocated at a certain output operand of a node. * @param irn The node. @@ -203,11 +194,8 @@ arch_irn_flags_t arch_irn_get_flags(const ir_node *irn); #define arch_irn_is(irn, flag) ((arch_irn_get_flags(irn) & arch_irn_flags_ ## flag) != 0) -#define arch_irn_has_reg_class(irn, pos, cls) \ - ((cls) == arch_get_irn_reg_class(irn, pos)) - #define arch_irn_consider_in_reg_alloc(cls, irn) \ - (arch_irn_has_reg_class(irn, -1, cls) && !arch_irn_is(irn, ignore)) + (arch_get_irn_reg_class_out(irn) == (cls) && !arch_irn_is(irn, ignore)) /** * Get the operations of an irn.