Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
be16d9b4
Commit
be16d9b4
authored
Jul 04, 2000
by
Götz Lindenmaier
Browse files
*** empty log message ***
[r21]
parent
5244f0ab
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Changes
View file @
be16d9b4
4.7.2000 Goetz
Commented a whole bunch of stuff, e.g. in ircons.h (Procedure to construct)
We should change the naming of the Block constructor.
4.7.2000 Goetz
Removed acces routines to attr. "closed" of Block.
4.7.2000 Goetz
Removed second implementation of new_ir_node from ircons and some comments
concerned with the now resolved cyclic dependency.
Fixed some bugs in irgopt so that the compilation goes through.
31.5.2000 Chris
Removed some files from the archive, after dependences and usage are checked:
Removed some files from the archive, after dependencies and usage are
checked:
- 'ir/common/strerror.c'
was nowhere used;
- 'ir/ident/xx_ident.h'
...
...
@@ -17,7 +30,29 @@
Moved the 'new_ir_node' constructor from ircons.* to irnode.* and fixed
afterwards some recursive includes, so libfirm works again.
*** Goetz has to complete this lines - several changes are not annotated yet! ***
2+3.2000 Goetz
Did a lot of changes, which I never commented until now (4.7.00).
* Added new result to Start node: Pointer to global data segment.
* Extended Semantics of SymConst node to represent information for the
linker.
* Added arithmeitc nodes (Shrs, Minus ...)
Rearranged the directory structure and adjusted the makefiles.
The directories contain:
ir: everything for the intermediate representation (better: src?)
/ir: the ir itself, and standard optimizations.
/tv: the target value module
/tr: the type and entity representation
/adt: abstract data types
/common: stuff needed by all other dirs
/debug: debugging Unterstuetzung
/ident:
include: external files needen as includes
testprograms: examples to test the lib.
The makefiles generate files with extension .d that contain the dependencies
between the files.
15.2.2000 Goetz
Added access routine to attribute link of irnode in irnode.ch.
...
...
@@ -34,7 +69,7 @@
10.2.2000 Goetz
Changed tests from comparing enums to comparing pointers. This is more
efficient and reads better. e.g., instead get_irn_opcode == irm_And
efficient
(is it?)
and reads better. e.g., instead get_irn_opcode == irm_And
now get_irn_op == op_And
10.2.2000 Goetz
...
...
ir/ir/ircons.h
View file @
be16d9b4
This diff is collapsed.
Click to expand it.
ir/ir/irnode.h
View file @
be16d9b4
...
...
@@ -58,7 +58,8 @@ enum {
pns_args
/* Projection on all arguments */
}
pns_number
;
/* ir node attributes */
/** ir node attributes **/
/* Block attributes */
typedef
struct
{
unsigned
long
block_visit
;
/* for the walker that walks over all blocks. */
/* Attributes private to construction: */
...
...
@@ -66,6 +67,10 @@ typedef struct {
struct
ir_node
**
graph_arr
;
/* array to store all parameters */
}
block_attr
;
/* SymConst attributes */
/* This enum names the three different kinds of symbolic Constants
represented by SymConst. The content of the attribute type_or_id
depends on this tag. */
typedef
enum
{
type_tag
,
/* The SymConst is a type tag for the given type.
Type_or_id is type */
...
...
@@ -75,6 +80,7 @@ typedef enum {
by the linker. Type_or_id is ident */
}
symconst_kind
;
/* This union contains the symbolic information represented by the node */
typedef
union
{
type
*
typ
;
ident
*
ptrinfo
;
...
...
@@ -85,6 +91,7 @@ typedef struct {
symconst_kind
num
;
}
symconst_attr
;
/* Sel attributes */
typedef
enum
{
static_linkage
,
/* entity is used internal and not visible out of this
file/class. */
...
...
@@ -97,9 +104,10 @@ typedef struct {
linkage_type
*
ltyp
;
/* linkage type of the entity */
}
sel_attr
;
/* Alloc attributes */
typedef
enum
{
stack_alloc
,
/* Alloc allocates the object on the stack. */
heap_alloc
/* lloc allocates the object on the heap. */
heap_alloc
/*
A
lloc allocates the object on the heap. */
}
where_alloc
;
typedef
struct
{
...
...
@@ -141,8 +149,8 @@ struct ir_node {
during optimization to link to nodes that
shall replace a node. */
attr
attr
;
/* attribute of this node. Depends on opcode. */
/* Must be last
attribute
of struct ir_node. */
}
;
/* Must be last
field
of struct ir_node. */
};
/* The typedefiniton of ir_node is also in irgraph.h to resolve
...
...
@@ -217,8 +225,6 @@ inline ir_node *get_Block_cfgpred (ir_node *node, int pos);
inline
void
set_Block_cfgpred
(
ir_node
*
node
,
int
pos
,
ir_node
*
pred
);
inline
bool
get_Block_matured
(
ir_node
*
node
);
inline
void
set_Block_matured
(
ir_node
*
node
,
bool
matured
);
inline
bool
get_Block_closed
(
ir_node
*
node
);
inline
void
set_Block_closed
(
ir_node
*
node
,
bool
closed
);
inline
unsigned
long
get_Block_block_visit
(
ir_node
*
node
);
inline
void
set_Block_block_visit
(
ir_node
*
node
,
unsigned
long
visit
);
inline
ir_node
*
get_Block_graph_arr
(
ir_node
*
node
,
int
pos
);
...
...
@@ -454,7 +460,7 @@ inline int is_no_Block (ir_node *node);
Start, End, Jmp, Cond, Return, Raise */
int
is_cfop
(
ir_node
*
node
);
/* Returns true if the operation can change the control flow because
of a exception. */
of a
n
exception. */
int
is_fragile_op
(
ir_node
*
node
);
# endif
/* _IRNODE_H_ */
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment