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
017b3258
Commit
017b3258
authored
Feb 17, 2004
by
Zdenek Dvorak
Committed by
Jeff Law
Feb 17, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* cfghooks.c (split_edge): Speed up updating of dominators.
From-SVN: r77973
parent
e70e9b0f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
3 deletions
+32
-3
gcc/ChangeLog
+4
-0
gcc/cfghooks.c
+28
-3
No files found.
gcc/ChangeLog
View file @
017b3258
2004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
* cfghooks.c (split_edge): Speed up updating of dominators.
2004-02-17 Mark Mitchell <mark@codesourcery.com>
PR c++/11326
...
...
gcc/cfghooks.c
View file @
017b3258
...
...
@@ -373,6 +373,7 @@ split_edge (edge e)
basic_block
ret
;
gcov_type
count
=
e
->
count
;
int
freq
=
EDGE_FREQUENCY
(
e
);
edge
f
;
if
(
!
cfg_hooks
->
split_edge
)
internal_error
(
"%s does not support split_edge."
,
cfg_hooks
->
name
);
...
...
@@ -387,9 +388,33 @@ split_edge (edge e)
set_immediate_dominator
(
CDI_DOMINATORS
,
ret
,
ret
->
pred
->
src
);
if
(
dom_computed
[
CDI_DOMINATORS
]
>=
DOM_NO_FAST_QUERY
)
set_immediate_dominator
(
CDI_DOMINATORS
,
ret
->
succ
->
dest
,
recount_dominator
(
CDI_DOMINATORS
,
ret
->
succ
->
dest
));
{
/* There are two cases:
If the immediate dominator of e->dest is not e->src, it
remains unchanged.
If immediate dominator of e->dest is e->src, it may become
ret, provided that all other predecessors of e->dest are
dominated by e->dest. */
if
(
get_immediate_dominator
(
CDI_DOMINATORS
,
ret
->
succ
->
dest
)
==
ret
->
pred
->
src
)
{
for
(
f
=
ret
->
succ
->
dest
->
pred
;
f
;
f
=
f
->
pred_next
)
{
if
(
f
==
ret
->
succ
)
continue
;
if
(
!
dominated_by_p
(
CDI_DOMINATORS
,
f
->
src
,
ret
->
succ
->
dest
))
break
;
}
if
(
!
f
)
set_immediate_dominator
(
CDI_DOMINATORS
,
ret
->
succ
->
dest
,
ret
);
}
};
return
ret
;
}
...
...
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