cleanup: Use get_Block_n_cfgpreds()/get_Block_cfgpred() instead of get_irn_arity...
[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  */
26 #include "config.h"
27
28 #include "irprog.h"
29 #include "iroptimize.h"
30 #include "typerep.h"
31
32 #include <stddef.h>
33 #include <assert.h>
34
35 /* The default implementation does not set a different ld name. */
36 static ir_entity *compilerlib_entity_def_creator(ident *id, ir_type *mt)
37 {
38         return new_entity(get_glob_type(), id, mt);
39 }
40
41 static compilerlib_entity_creator_t creator = compilerlib_entity_def_creator;
42
43 void set_compilerlib_entity_creator(compilerlib_entity_creator_t c)
44 {
45         assert(c != NULL);
46
47         creator = c;
48 }
49
50 compilerlib_entity_creator_t get_compilerlib_entity_creator()
51 {
52         return creator;
53 }
54
55 ir_entity *create_compilerlib_entity(ident *id, ir_type *mt)
56 {
57         return creator(id, mt);
58 }