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
1629ad7a
Commit
1629ad7a
authored
Sep 28, 2006
by
Michael Beck
Browse files
Improved doxygen docu
[r8307]
parent
478fdb37
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/ana/cgana.c
View file @
1629ad7a
...
@@ -634,16 +634,16 @@ static void callee_ana_proj(ir_node * node, long n, eset * methods) {
...
@@ -634,16 +634,16 @@ static void callee_ana_proj(ir_node * node, long n, eset * methods) {
}
}
/**
/**
* Analyse a Call address
* Analyse a Call address
.
*
*
* @param node the node representing the call address
* @param node
the node representing the call address
* @param methods
the set of all 'free' method
s
* @param methods
after call contains the set of all possibly called entitie
s
*/
*/
static
void
callee_ana_node
(
ir_node
*
node
,
eset
*
methods
)
{
static
void
callee_ana_node
(
ir_node
*
node
,
eset
*
methods
)
{
int
i
;
int
i
;
assert
(
mode_is_reference
(
get_irn_mode
(
node
))
||
is_Bad
(
node
));
assert
(
mode_is_reference
(
get_irn_mode
(
node
))
||
is_Bad
(
node
));
/*
rekursion verhinder
n */
/*
Beware of recursio
n */
if
(
get_irn_link
(
node
)
==
MARK
)
{
if
(
get_irn_link
(
node
)
==
MARK
)
{
/* already visited */
/* already visited */
return
;
return
;
...
@@ -658,7 +658,7 @@ static void callee_ana_node(ir_node * node, eset * methods) {
...
@@ -658,7 +658,7 @@ static void callee_ana_node(ir_node * node, eset * methods) {
break
;
break
;
case
iro_SymConst
:
case
iro_SymConst
:
if
(
get_SymConst_kind
(
node
)
==
symconst_addr_ent
)
{
if
(
get_SymConst_kind
(
node
)
==
symconst_addr_ent
)
{
entity
*
ent
=
get_SymConst_entity
(
node
);
entity
*
ent
=
get_SymConst_entity
(
node
);
assert
(
ent
&&
is_Method_type
(
get_entity_type
(
ent
)));
assert
(
ent
&&
is_Method_type
(
get_entity_type
(
ent
)));
eset_insert
(
methods
,
ent
);
eset_insert
(
methods
,
ent
);
}
else
{
}
else
{
...
@@ -724,7 +724,10 @@ static void callee_ana_node(ir_node * node, eset * methods) {
...
@@ -724,7 +724,10 @@ static void callee_ana_node(ir_node * node, eset * methods) {
set_irn_link
(
node
,
NULL
);
set_irn_link
(
node
,
NULL
);
}
}
/* */
/**
* Walker: Analyses every call node and calculates an array of possible
* callees for that call.
*/
static
void
callee_walker
(
ir_node
*
call
,
void
*
env
)
{
static
void
callee_walker
(
ir_node
*
call
,
void
*
env
)
{
if
(
is_Call
(
call
))
{
if
(
is_Call
(
call
))
{
eset
*
methods
=
eset_create
();
eset
*
methods
=
eset_create
();
...
@@ -766,13 +769,15 @@ static void callee_walker(ir_node * call, void * env) {
...
@@ -766,13 +769,15 @@ static void callee_walker(ir_node * call, void * env) {
}
}
}
}
/**
* Walker: Removes all tuple.
*/
static
void
remove_Tuples
(
ir_node
*
proj
,
void
*
env
)
{
ir_node
*
nn
;
if
(
!
is_Proj
(
proj
))
return
;
static
void
remove_Tuples
(
ir_node
*
proj
,
void
*
env
)
{
nn
=
skip_Tuple
(
proj
);
ir_node
*
new
;
if
(
nn
!=
proj
)
exchange
(
proj
,
nn
);
if
(
get_irn_opcode
(
proj
)
!=
iro_Proj
)
return
;
new
=
skip_Tuple
(
proj
);
if
(
new
!=
proj
)
exchange
(
proj
,
new
);
}
}
...
...
Write
Preview
Markdown
is supported
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