X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firop.h;h=251c274cd78cc694386fc339d1c79553cd7ada0d;hb=8399216d8aebc713bbda04b6e3e250a1d52b20bf;hp=9f9215c0526aa6d3adb84553c696fa814d95af4e;hpb=4a2946fd1f06b02a84c4bf8307d0ad0f9d602336;p=libfirm diff --git a/ir/ir/irop.h b/ir/ir/irop.h index 9f9215c05..251c274cd 100644 --- a/ir/ir/irop.h +++ b/ir/ir/irop.h @@ -40,7 +40,7 @@ typedef enum { iro_Load, iro_Store, iro_Alloc, iro_Free, iro_Sync, iro_Proj, iro_Tuple, iro_Id, iro_Bad, iro_Confirm, iro_Unknown, iro_Filter, iro_Break, iro_CallBegin, iro_EndReg, iro_EndExcept, - iro_FuncCall, + iro_NoMem, iro_Mux, iro_MaxOpcode } opcode; @@ -104,10 +104,11 @@ extern ir_op *op_CallBegin; ir_op *get_op_CallBegin (void); extern ir_op *op_EndReg; ir_op *get_op_EndReg (void); extern ir_op *op_EndExcept; ir_op *get_op_EndExcept (void); -extern ir_op *op_FuncCall; ir_op *get_op_FuncCall (void); +extern ir_op *op_NoMem; ir_op *get_op_NoMem (void); +extern ir_op *op_Mux; ir_op *get_op_Mux (void); /** Returns the ident for the opcode name */ -ident *get_op_ident(ir_op *op); +ident *get_op_ident(const ir_op *op); /** Returns the string for the opcode. */ const char *get_op_name(const ir_op *op); @@ -118,9 +119,15 @@ opcode get_op_code(const ir_op *op); /** op_pin_state_pinned states */ typedef enum { op_pin_state_floats = 0, /**< Nodes of this opcode can be placed in any basic block. */ - op_pin_state_pinned /**< Nodes must remain in this basic block. */ + op_pin_state_pinned, /**< Nodes must remain in this basic block. */ + op_pin_state_exc_pinned, /**< Node must be remain in this basic block if it can throw an + exception, else can float. Used internally. */ + op_pin_state_mem_pinned /**< Node must be remain in this basic block if it can throw an + exception or uses memory, else can float. Used internally. */ } op_pin_state; +const char *get_op_pin_state_name(op_pin_state s); + /** gets pinned state of an opcode */ op_pin_state get_op_pinned(const ir_op *op);