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
1c570418
Commit
1c570418
authored
Jan 05, 2002
by
Jan Hubicka
Committed by
Jan Hubicka
Jan 05, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
From-SVN: r48563
parent
d83bb9f7
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
6 deletions
+18
-6
gcc/ChangeLog
+4
-0
gcc/cfgcleanup.c
+14
-6
No files found.
gcc/ChangeLog
View file @
1c570418
Sat Jan 5 11:52:05 CET 2002 Jan Hubicka <jh@suse.cz>
* cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
2002-01-05 Neil Booth <neil@daikokuya.demon.co.uk>
* doc/cppinternals.texi: Update.
...
...
gcc/cfgcleanup.c
View file @
1c570418
...
...
@@ -369,7 +369,8 @@ try_forward_edges (mode, b)
int
mode
;
{
bool
changed
=
false
;
edge
e
,
next
,
threaded_edge
;
edge
e
,
next
,
*
threaded_edges
=
NULL
;
int
nthreaded_edges
=
0
;
for
(
e
=
b
->
succ
;
e
;
e
=
next
)
{
...
...
@@ -406,13 +407,17 @@ try_forward_edges (mode, b)
/* Allow to thread only over one edge at time to simplify updating
of probabilities. */
else
if
(
(
mode
&
CLEANUP_THREADING
)
&&
!
threaded
)
else
if
(
mode
&
CLEANUP_THREADING
)
{
threaded_edge
=
thread_jump
(
mode
,
e
,
target
);
if
(
t
hreaded_edge
)
edge
t
=
thread_jump
(
mode
,
e
,
target
);
if
(
t
)
{
new_target
=
t
hreaded_edge
->
dest
;
new_target
=
t
->
dest
;
new_target_threaded
=
true
;
if
(
!
nthreaded_edges
)
threaded_edges
=
xmalloc
(
sizeof
(
*
threaded_edges
)
*
n_basic_blocks
);
threaded_edges
[
nthreaded_edges
++
]
=
t
;
}
}
...
...
@@ -462,6 +467,7 @@ try_forward_edges (mode, b)
gcov_type
edge_count
=
e
->
count
;
int
edge_probability
=
e
->
probability
;
int
edge_frequency
;
int
n
=
0
;
/* Don't force if target is exit block. */
if
(
threaded
&&
target
!=
EXIT_BLOCK_PTR
)
...
...
@@ -498,7 +504,7 @@ try_forward_edges (mode, b)
first
->
succ
->
count
-=
edge_count
;
first
->
frequency
-=
edge_frequency
;
if
(
first
->
succ
->
succ_next
)
t
=
threaded_edge
;
t
=
threaded_edge
s
[
n
++
]
;
else
t
=
first
->
succ
;
...
...
@@ -510,6 +516,8 @@ try_forward_edges (mode, b)
}
}
if
(
threaded_edges
)
free
(
threaded_edges
);
return
changed
;
}
...
...
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