libFirm 1.20
|
Representation of opcode of intermediate operation. More...
#include <stdio.h>
#include "firm_types.h"
#include "ident.h"
#include "begin.h"
#include "opcodes.h"
#include "end.h"
Go to the source code of this file.
Data Structures | |
struct | ir_op_ops |
io_op Operations. More... | |
Defines | |
#define | NULL_FUNC ((generic_func)(NULL)) |
The NULL-function. | |
Typedefs | |
typedef void(* | op_func )(void) |
A generic function pointer type. | |
typedef unsigned(* | hash_func )(const ir_node *self) |
The hash operation. | |
typedef ir_tarval *(* | computed_value_func )(const ir_node *self) |
The compute value operation. | |
typedef ir_node *(* | equivalent_node_func )(ir_node *self) |
The equivalent node operation. | |
typedef ir_node *(* | transform_node_func )(ir_node *self) |
The transform node operation. | |
typedef int(* | node_cmp_attr_func )(const ir_node *a, const ir_node *b) |
The node attribute compare operation. | |
typedef int(* | reassociate_func )(ir_node **n) |
The reassociation operation. | |
typedef void(* | copy_attr_func )(ir_graph *irg, const ir_node *old_node, ir_node *new_node) |
The copy attribute operation. | |
typedef ir_type *(* | get_type_attr_func )(const ir_node *self) |
The get_type_attr operation. | |
typedef ir_entity *(* | get_entity_attr_func )(const ir_node *self) |
The get_entity_attr operation. | |
typedef int(* | verify_node_func )(const ir_node *node) |
The verify_node operation. | |
typedef int(* | verify_proj_node_func )(const ir_node *proj) |
The verify_node operation for Proj(X). | |
typedef void(* | dump_node_func )(FILE *out, const ir_node *self, dump_reason_t reason) |
The dump_node operation. | |
Enumerations | |
enum | op_arity { oparity_invalid = 0, oparity_unary, oparity_binary, oparity_trinary, oparity_zero, oparity_variable, oparity_dynamic, oparity_any } |
The allowed arities. More... | |
enum | irop_flags { irop_flag_none = 0, irop_flag_labeled = 1U << 0, irop_flag_commutative = 1U << 1, irop_flag_cfopcode = 1U << 2, irop_flag_fragile = 1U << 3, irop_flag_forking = 1U << 4, irop_flag_highlevel = 1U << 5, irop_flag_constlike = 1U << 6, irop_flag_always_opt = 1U << 7, irop_flag_keep = 1U << 8, irop_flag_start_block = 1U << 9, irop_flag_uses_memory = 1U << 10, irop_flag_dump_noblock = 1U << 11, irop_flag_dump_noinput = 1U << 12, irop_flag_cse_neutral = 1U << 13, irop_flag_unknown_jump = 1U << 14 } |
The irop flags. More... | |
enum | dump_reason_t { dump_node_opcode_txt, dump_node_mode_txt, dump_node_nodeattr_txt, dump_node_info_txt } |
Reasons to call the dump_node operation: More... | |
Functions | |
ident * | get_op_ident (const ir_op *op) |
Returns the ident for the opcode name. | |
const char * | get_op_name (const ir_op *op) |
Returns the string for the opcode. | |
unsigned | get_op_code (const ir_op *op) |
Returns the enum for the opcode. | |
const char * | get_op_pin_state_name (op_pin_state s) |
Returns a human readable name of an op_pin_state. | |
op_pin_state | get_op_pinned (const ir_op *op) |
Returns pinned state of an opcode. | |
void | set_op_pinned (ir_op *op, op_pin_state pinned) |
Sets pinned in the opcode. | |
unsigned | get_next_ir_opcode (void) |
Returns the next free IR opcode number, allows to register user ops. | |
unsigned | get_next_ir_opcodes (unsigned num) |
Returns the next free n IR opcode number, allows to register a bunch of user ops. | |
op_func | get_generic_function_ptr (const ir_op *op) |
Returns the generic function pointer from an IR operation. | |
void | set_generic_function_ptr (ir_op *op, op_func func) |
Stores a generic function pointer into an IR operation. | |
irop_flags | get_op_flags (const ir_op *op) |
Returns the irop flags of an IR opcode. | |
ir_op * | new_ir_op (unsigned code, const char *name, op_pin_state p, unsigned flags, op_arity opar, int op_index, size_t attr_size, const ir_op_ops *ops) |
Creates a new IR operation. | |
unsigned | ir_get_n_opcodes (void) |
Returns one more than the highest opcode code in use. | |
ir_op * | ir_get_opcode (unsigned code) |
Returns the opcode with code code . | |
void | ir_clear_opcodes_generic_func (void) |
Sets the generic function pointer of all opcodes to NULL. | |
void | ir_op_set_memory_index (ir_op *op, int memory_index) |
Sets memory input of operation using memory. | |
void | ir_op_set_fragile_indices (ir_op *op, int pn_x_regular, int pn_x_except) |
Sets proj-number for X_regular and X_except projs of fragile nodes. | |
const ir_op_ops * | get_op_ops (const ir_op *op) |
Returns the ir_op_ops of an ir_op. |
Representation of opcode of intermediate operation.
Definition in file irop.h.