added license information, cleaned up doxygen comments
[libfirm] / ir / common / firm_common_t.h
1 /*
2  * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
3  *
4  * This file is part of libFirm.
5  *
6  * This file may be distributed and/or modified under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation and appearing in the file LICENSE.GPL included in the
9  * packaging of this file.
10  *
11  * Licensees holding valid libFirm Professional Edition licenses may use
12  * this file in accordance with the libFirm Commercial License.
13  * Agreement provided with the Software.
14  *
15  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE.
18  */
19
20 /**
21  * @file
22  * @brief      Internal preprocessor directives.
23  * @author     Goetz Lindenmaier
24  * @version    $Id$
25  */
26 #ifndef FIRM_COMMON_COMMON_T_H
27 #define FIRM_COMMON_COMMON_T_H
28
29 #include "firm_common.h"
30
31 /* --- Global flags.  --- */
32
33 /** When set Phi node construction uses the values valid when the fragile
34  *  operation is executed.  Else it uses the values valid at the end of the
35  *  block with the fragile operation. */
36 #define PRECISE_EXC_CONTEXT 1
37
38 /** There are two implementations of the Phi node construction.  The first
39  *  is faster, but does not work for blocks with more than 2 predecessors.
40  *  The second works always but is slower and causes more unnecessary Phi
41  *  nodes.
42  *  Select the implementations by the following preprocessor flag: */
43 #define USE_FAST_PHI_CONSTRUCTION 0
44
45 /** Further there are two versions of the fast Phi node construction.
46  *  If the following flag is set, new_r_Phi_in uses an explicit stack for
47  *  allocating and deallocating Phi nodes.  Else it uses the obstack
48  *  as a stack! */
49 #define USE_EXPLICIT_PHI_IN_STACK 0
50
51 /** If this and DEBUG_libfirm are defined irdump uses the nodeid numbers as
52  *  labels for the vcg nodes.  This makes the vcg graph better readable.
53  *  Sometimes it's useful to see the pointer values, though. */
54 #define NODEID_AS_LABEL 1
55
56 #endif