introduce Switch node
[libfirm] / ir / ir / ircomplib.c
1 /*
2  * Copyright (C) 1995-2011 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   Compilerlib entity creation related functions.
23  * @date    2011-09-22
24  * @author  Manuel Mohr
25  * @version $Id$
26  */
27 #include "config.h"
28
29 #include "irprog.h"
30 #include "iroptimize.h"
31 #include "typerep.h"
32
33 #include <stddef.h>
34 #include <assert.h>
35
36 /* The default implementation does not set a different ld name. */
37 static ir_entity *compilerlib_entity_def_creator(ident *id, ir_type *mt)
38 {
39         return new_entity(get_glob_type(), id, mt);
40 }
41
42 static compilerlib_entity_creator_t creator = compilerlib_entity_def_creator;
43
44 void set_compilerlib_entity_creator(compilerlib_entity_creator_t c)
45 {
46         assert(c != NULL);
47
48         creator = c;
49 }
50
51 compilerlib_entity_creator_t get_compilerlib_entity_creator()
52 {
53         return creator;
54 }
55
56 ir_entity *create_compilerlib_entity(ident *id, ir_type *mt)
57 {
58         return creator(id, mt);
59 }