moved firmext code into the backend dir
[libfirm] / ir / be / grgen / simd / firm_node_ext.h
1 /*************************************************************************
2 * Program:  firm_node_ext.h
3 * Function: Provides functions to extend firm by nodes needed by the
4 *           SIMD optimizer
5 * Author:   Andreas Schoesser
6 * Date:     2007-02-01
7 *************************************************************************/
8
9 #ifndef __FIRM_NODE_EXT__
10 #define __FIRM_NODE_EXT__
11
12 #include "irnode.h"
13 #include "irmemory.h"
14
15 extern ir_opcode iro_VProj;
16 extern           ir_op     *op_VProj;
17
18 extern ir_opcode iro_MultipleAdd;
19 extern           ir_op   *op_MultipleAdd;
20
21 extern ir_opcode iro_IrNode;
22 extern ir_op *op_IrNode;
23
24 extern ir_opcode iro_Complex;
25 extern ir_op *op_Complex;
26
27 extern ir_opcode iro_FakeComplex;
28 extern ir_op *op_FakeComplex;
29
30
31 //extern ir_mode *mode_DLu;
32
33 ir_node *new_ir_node_with_update(dbg_info *db, ir_graph *irg, ir_node *block, ir_op *op, ir_mode *mode, int arity, ir_node *in[]);
34 int  get_VProj_proj(ir_node *n);
35 void set_VProj_proj(ir_node *n, int proj);
36 void ext_firm_nodes();
37 int  is_MultipleAdd(ir_node *n);
38 ir_alias_relation get_multadd_alias_relation(ir_node *n1, ir_node *n2);
39
40 #endif