X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeinsn_t.h;h=c58fa21dc43d0d6c31d88527bedf2bb351cee126;hb=038d0fd9cc1240ae223b6578c7df4558ca8a125a;hp=8897873042cdbe16b5b9146bfef2da444ca4d0a1;hpb=a78cee55fadb5f0df1f560335c4ae23ef10bd755;p=libfirm diff --git a/ir/be/beinsn_t.h b/ir/be/beinsn_t.h index 889787304..c58fa21dc 100644 --- a/ir/be/beinsn_t.h +++ b/ir/be/beinsn_t.h @@ -33,37 +33,37 @@ #include "bearch.h" #include "beirg.h" -typedef struct _be_operand_t be_operand_t; -typedef struct _be_insn_t be_insn_t; -typedef struct _be_insn_env_t be_insn_env_t; +typedef struct be_operand_t be_operand_t; +typedef struct be_insn_t be_insn_t; +typedef struct be_insn_env_t be_insn_env_t; -struct _be_operand_t { +struct be_operand_t { ir_node *irn; /**< Firm node of the insn this operand belongs to */ - ir_node *carrier; /**< node representing the operand value (Proj or the node itself for defs, the value itself for uses */ + ir_node *carrier; /**< node representing the operand value (Proj or the node itself for defs, the used value for uses) */ be_operand_t *partner; /**< used in bechordal later... (TODO what does it do?) */ - bitset_t *regs; /**< admissible register bitset */ + const bitset_t *regs; /**< admissible register bitset */ int pos; /**< pos of the operand (0 to n are inputs, -1 to -n are outputs) */ const arch_register_req_t *req; /**< register constraints for the carrier node */ unsigned has_constraints : 1; /**< the carrier node has register constraints (the constraint type is limited) */ }; -struct _be_insn_t { +struct be_insn_t { be_operand_t *ops; /**< the values used and defined by the insn */ int n_ops; /**< length of the ops array */ int use_start; /**< entries [0-use_start) in ops are defs, [use_start-n_ops) uses */ ir_node *next_insn; /**< next instruction in schedule */ ir_node *irn; /**< ir_node of the instruction */ - unsigned in_constraints : 1; /**< instruction has input contraints */ + unsigned in_constraints : 1; /**< instruction has input constraints */ unsigned out_constraints : 1; /**< instruction has output constraints */ unsigned has_constraints : 1; /**< in_constraints or out_constraints true */ unsigned pre_colored : 1; /**< all defined values already have a register assigned */ }; -struct _be_insn_env_t { +struct be_insn_env_t { struct obstack *obst; const arch_register_class_t *cls; - bitset_t *ignore_colors; + bitset_t *allocatable_regs; }; #define be_insn_n_defs(insn) ((insn)->use_start) @@ -71,6 +71,4 @@ struct _be_insn_env_t { be_insn_t *be_scan_insn(const be_insn_env_t *env, ir_node *irn); -be_insn_env_t *be_insn_env_init(be_insn_env_t *ie, const be_irg_t *birg, const arch_register_class_t *cls, struct obstack *obst); - #endif /* FIRM_BE_BEINSN_T_H */