X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbearch.h;h=db991331db4f632fa70e6b1121e7c17d36c7a852;hb=429d687f06baeeb63d04750f846d39e55fb62343;hp=7a652fd2b4fc4b6f5df7415473ef75983060c840;hpb=4031d21d0d877acb0582df44dc16851595c313f5;p=libfirm diff --git a/ir/be/bearch.h b/ir/be/bearch.h index 7a652fd2b..db991331d 100644 --- a/ir/be/bearch.h +++ b/ir/be/bearch.h @@ -95,11 +95,7 @@ typedef enum arch_irn_class_t { arch_irn_class_remat = 1 << 2, arch_irn_class_copy = 1 << 3, arch_irn_class_perm = 1 << 4, - arch_irn_class_branch = 1 << 5, - arch_irn_class_call = 1 << 6, - arch_irn_class_load = 1 << 7, - arch_irn_class_store = 1 << 8, - arch_irn_class_stackparam = 1 << 9, + arch_irn_class_branch = 1 << 5 } arch_irn_class_t; /** @@ -134,18 +130,7 @@ void arch_perform_memory_operand(ir_node *irn, ir_node *spill, unsign */ const arch_register_req_t *arch_get_register_req(const ir_node *irn, int pos); -/** - * 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); +#define arch_get_register_req_out(irn) arch_get_register_req(irn, -1) /** * Put all registers which shall not be ignored by the register @@ -164,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. @@ -173,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. @@ -205,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.