add irmemory.h
[libfirm] / ir / common / firm_common_t.h
1 /*
2  * Project:     libFIRM
3  * File name:   ir/common/firm_common.c
4  * Purpose:     Internal preprocessor directives.
5  * Author:      Goetz Lindenmaier
6  * Modified by:
7  * Created:
8  * CVS-ID:      $Id$
9  * Copyright:   (c) 1999-2003 Universität Karlsruhe
10  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
11  */
12
13 /**
14  * @file firm_common_t.h
15  *
16  * preprocessor flags
17  *
18  * @author Goetz Lindenmaier
19  */
20
21 # ifndef _COMMON_T_H_
22 # define _COMMON_T_H_
23
24 #include "firm_common.h"
25
26 /* --- Global flags.  --- */
27
28 /** When set Phi node construction uses the values valid when the fragile
29  *  operation is executed.  Else it uses the values valid at the end of the
30  *  block with the fragile operation. */
31 #define PRECISE_EXC_CONTEXT 1
32
33 /** There are two implementations of the Phi node construction.  The first
34  *  is faster, but does not work for blocks with more than 2 predecessors.
35  *  The second works always but is slower and causes more unnecessary Phi
36  *  nodes.
37  *  Select the implementations by the following preprocessor flag: */
38 #define USE_FAST_PHI_CONSTRUCTION 0
39
40 /** Further there are two versions of the fast Phi node construction.
41  *  If the following flag is set, new_r_Phi_in uses an explicit stack for
42  *  allocating and deallocating Phi nodes.  Else it uses the obstack
43  *  as a stack! */
44 #define USE_EXPLICIT_PHI_IN_STACK 0
45
46 /** If this and DEBUG_libfirm are defined irdump uses the nodeid numbers as
47  *  labels for the vcg nodes.  This makes the vcg graph better readable.
48  *  Sometimes it's useful to see the pointer values, though. */
49 #define NODEID_AS_LABEL 1
50
51 # endif /*_COMMON_T_H_ */