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
093b74c8
Commit
093b74c8
authored
Mar 02, 2011
by
Matthias Braun
Browse files
remove delay slot handling from verifier code
(they are not represented in the firm schedule)
parent
f4069627
Changes
1
Hide whitespace changes
Inline
Side-by-side
ir/be/beverify.c
View file @
093b74c8
...
...
@@ -157,16 +157,14 @@ static void verify_schedule_walker(ir_node *block, void *data)
ir_node
*
node
;
ir_node
*
non_phi_found
=
NULL
;
int
cfchange_found
=
0
;
/* TODO ask arch about delay branches */
int
delay_branches
=
0
;
int
last_timestep
=
INT_MIN
;
/*
* Tests for the following things:
* 1. Make sure that all phi nodes are scheduled at the beginning of the
block
*
2. There is 1 or no control flow changing node scheduled and exactly delay_branches operations after it.
*
3
. No value is defined after it has been used
*
4
. mode_T nodes have all projs scheduled behind them followed by Keeps
* 1. Make sure that all phi nodes are scheduled at the beginning of the
*
block
*
2
. No value is defined after it has been used
*
3
. mode_T nodes have all projs scheduled behind them followed by Keeps
* (except mode_X projs)
*/
sched_foreach
(
block
,
node
)
{
...
...
@@ -218,14 +216,9 @@ static void verify_schedule_walker(ir_node *block, void *data)
}
else
if
(
cfchange_found
)
{
/* proj and keepany aren't real instructions... */
if
(
!
is_Proj
(
node
)
&&
!
be_is_Keep
(
node
))
{
/* check for delay branches */
if
(
delay_branches
==
0
)
{
ir_fprintf
(
stderr
,
"Verify Warning: Node %+F scheduled after control flow changing node (+delay branches) in block %+F (%s)
\n
"
,
node
,
block
,
get_irg_dump_name
(
env
->
irg
));
env
->
problem_found
=
1
;
}
else
{
delay_branches
--
;
}
ir_fprintf
(
stderr
,
"Verify Warning: Node %+F scheduled after control flow changing node in block %+F (%s)
\n
"
,
node
,
block
,
get_irg_dump_name
(
env
->
irg
));
env
->
problem_found
=
1
;
}
}
...
...
@@ -282,13 +275,6 @@ static void verify_schedule_walker(ir_node *block, void *data)
}
}
}
/* check that all delay branches are filled (at least with NOPs) */
if
(
cfchange_found
&&
delay_branches
!=
0
)
{
ir_fprintf
(
stderr
,
"Verify warning: Not all delay slots filled after jump (%d/%d) in block %+F (%s)
\n
"
,
block
,
get_irg_dump_name
(
env
->
irg
));
env
->
problem_found
=
1
;
}
}
static
void
check_schedule
(
ir_node
*
node
,
void
*
data
)
...
...
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