Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
738ed977
Commit
738ed977
authored
Mar 02, 2004
by
Zdenek Dvorak
Committed by
Zdenek Dvorak
Mar 02, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* dominance.c (recount_dominator): Handle postdominators.
From-SVN: r78734
parent
27c10211
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
28 additions
and
9 deletions
+28
-9
gcc/ChangeLog
+4
-0
gcc/dominance.c
+24
-9
No files found.
gcc/ChangeLog
View file @
738ed977
2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* dominance.c (recount_dominator): Handle postdominators.
2004-03-01 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
...
...
gcc/dominance.c
View file @
738ed977
...
...
@@ -769,23 +769,38 @@ verify_dominators (enum cdi_direction dir)
abort
();
}
/* Recount dominator of BB. */
/* Determine immediate dominator (or postdominator, according to DIR) of BB,
assuming that dominators of other blocks are correct. We also use it to
recompute the dominators in a restricted area, by iterating it until it
reaches a fixpoint. */
basic_block
recount_dominator
(
enum
cdi_direction
dir
,
basic_block
bb
)
{
basic_block
dom_bb
=
NULL
;
edge
e
;
basic_block
dom_bb
=
NULL
;
edge
e
;
if
(
!
dom_computed
[
dir
])
abort
();
for
(
e
=
bb
->
pred
;
e
;
e
=
e
->
pred_next
)
{
if
(
!
dominated_by_p
(
dir
,
e
->
src
,
bb
))
dom_bb
=
nearest_common_dominator
(
dir
,
dom_bb
,
e
->
src
);
}
if
(
dir
==
CDI_DOMINATORS
)
{
for
(
e
=
bb
->
pred
;
e
;
e
=
e
->
pred_next
)
{
if
(
!
dominated_by_p
(
dir
,
e
->
src
,
bb
))
dom_bb
=
nearest_common_dominator
(
dir
,
dom_bb
,
e
->
src
);
}
}
else
{
for
(
e
=
bb
->
succ
;
e
;
e
=
e
->
succ_next
)
{
if
(
!
dominated_by_p
(
dir
,
e
->
dest
,
bb
))
dom_bb
=
nearest_common_dominator
(
dir
,
dom_bb
,
e
->
dest
);
}
}
return
dom_bb
;
return
dom_bb
;
}
/* Iteratively recount dominators of BBS. The change is supposed to be local
...
...
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