comments
[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 #ifdef HAVE_CONFIG_H
25 # include <config.h>
26 #endif
27
28 #include "firm_common.h"
29
30 /* --- Global flags.  --- */
31
32 /** When set Phi node construction uses the values valid when the fragile
33  *  operation is executed.  Else it uses the values valid at the end of the
34  *  block with the fragile operation. */
35 #define PRECISE_EXC_CONTEXT 1
36
37 /** There are two implementations of the Phi node construction.  The first
38  *  is faster, but does not work for blocks with more than 2 predecessors.
39  *  The second works always but is slower and causes more unnecessary Phi
40  *  nodes.
41  *  Select the implementations by the following preprocessor flag: */
42 #define USE_FAST_PHI_CONSTRUCTION 0
43
44 /** Further there are two versions of the fast Phi node construction.
45  *  If the following flag is set, new_r_Phi_in uses an explicit stack for
46  *  allocating and deallocating Phi nodes.  Else it uses the obstack
47  *  as a stack! */
48 #define USE_EXPLICIT_PHI_IN_STACK 0
49
50 /** If this and DEBUG_libfirm are defined irdump uses the nodeid numbers as
51  *  labels for the vcg nodes.  This makes the vcg graph better readable.
52  *  Sometimes it's useful to see the pointer values, though. */
53 #define NODEID_AS_LABEL 1
54
55 # endif /*_COMMON_T_H_ */