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
e32ef434
Commit
e32ef434
authored
Feb 14, 2007
by
Christian Würdig
Browse files
added function get nodes nodes live at another including the node inputs
parent
1acb2d4d
Changes
2
Hide whitespace changes
Inline
Side-by-side
ir/be/belive.c
View file @
e32ef434
...
@@ -734,3 +734,18 @@ pset *be_liveness_nodes_live_at(const be_lv_t *lv, const arch_env_t *arch_env, c
...
@@ -734,3 +734,18 @@ pset *be_liveness_nodes_live_at(const be_lv_t *lv, const arch_env_t *arch_env, c
return
live
;
return
live
;
}
}
pset
*
be_liveness_nodes_live_at_input
(
const
be_lv_t
*
lv
,
const
arch_env_t
*
arch_env
,
const
arch_register_class_t
*
cls
,
const
ir_node
*
pos
,
pset
*
live
)
{
const
ir_node
*
bl
=
is_Block
(
pos
)
?
pos
:
get_nodes_block
(
pos
);
ir_node
*
irn
;
be_liveness_end_of_block
(
lv
,
arch_env
,
cls
,
bl
,
live
);
sched_foreach_reverse
(
bl
,
irn
)
{
be_liveness_transfer
(
arch_env
,
cls
,
irn
,
live
);
if
(
irn
==
pos
)
return
live
;
}
return
live
;
}
ir/be/belive.h
View file @
e32ef434
...
@@ -145,6 +145,8 @@ pset *be_liveness_end_of_block(const be_lv_t *lv, const arch_env_t *arch_env, co
...
@@ -145,6 +145,8 @@ pset *be_liveness_end_of_block(const be_lv_t *lv, const arch_env_t *arch_env, co
/**
/**
* Compute a set of nodes which are live at another node.
* Compute a set of nodes which are live at another node.
* BEWARE: This is the liveness immediately after the node,
* so the node itself is alive but it's operands maybe not.
* @param arch_env The architecture environment.
* @param arch_env The architecture environment.
* @param cls The register class to consider.
* @param cls The register class to consider.
* @param pos The node.
* @param pos The node.
...
@@ -153,6 +155,18 @@ pset *be_liveness_end_of_block(const be_lv_t *lv, const arch_env_t *arch_env, co
...
@@ -153,6 +155,18 @@ pset *be_liveness_end_of_block(const be_lv_t *lv, const arch_env_t *arch_env, co
*/
*/
pset
*
be_liveness_nodes_live_at
(
const
be_lv_t
*
lv
,
const
arch_env_t
*
arch_env
,
const
arch_register_class_t
*
cls
,
const
ir_node
*
pos
,
pset
*
live
);
pset
*
be_liveness_nodes_live_at
(
const
be_lv_t
*
lv
,
const
arch_env_t
*
arch_env
,
const
arch_register_class_t
*
cls
,
const
ir_node
*
pos
,
pset
*
live
);
/**
* Compute a set of nodes which are live at another node.
* BEWARE: This is the liveness immediately before the node,
* so the node itself is not alive but it's operands are.
* @param arch_env The architecture environment.
* @param cls The register class to consider.
* @param pos The node.
* @param live The set to put them into.
* @return live.
*/
pset
*
be_liveness_nodes_live_at_input
(
const
be_lv_t
*
lv
,
const
arch_env_t
*
arch_env
,
const
arch_register_class_t
*
cls
,
const
ir_node
*
pos
,
pset
*
live
);
/**
/**
* FIXME: Need comment
* FIXME: Need comment
...
...
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