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
20a6bb58
Commit
20a6bb58
authored
Jun 29, 2010
by
Jan Hubicka
Committed by
Jan Hubicka
Jun 29, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* tree-inline.c: Replace incomming by incomin and clonning by cloning.
From-SVN: r161537
parent
b35366ce
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
14 deletions
+18
-14
gcc/ChangeLog
+4
-0
gcc/tree-inline.c
+14
-14
No files found.
gcc/ChangeLog
View file @
20a6bb58
2010-06-29 Jan Hubicka <jh@suse.cz>
* tree-inline.c: Replace incomming by incomin and clonning by cloning.
2010-06-29 Jan Hubicka <jh@suse.cz>
* predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
unreachable.
(rebuild_frequencies): New function.
...
...
gcc/tree-inline.c
View file @
20a6bb58
...
...
@@ -1712,7 +1712,7 @@ copy_bb (copy_body_data *id, basic_block bb, int frequency_scale,
/* We have missing edge in the callgraph. This can happen
when previous inlining turned an indirect call into a
direct call by constant propagating arguments or we are
producing dead clone (for further clon
n
ing). In all
producing dead clone (for further cloning). In all
other cases we hit a bug (incorrect node sharing is the
most common reason for missing edges). */
gcc_assert
(
dest
->
needed
||
!
dest
->
analyzed
...
...
@@ -1975,7 +1975,7 @@ copy_phis_for_bb (basic_block bb, copy_body_data *id)
tree
block
=
id
->
block
;
edge_iterator
ei2
;
/* When doing partial clon
n
ing, we allow PHIs on the entry block
/* When doing partial cloning, we allow PHIs on the entry block
as long as all the arguments are the same. Find any input
edge to see argument to copy. */
if
(
!
old_edge
)
...
...
@@ -2042,7 +2042,7 @@ initialize_cfun (tree new_fndecl, tree callee_fndecl, gcov_type count)
gcc_assert
(
cfun
->
cfg
==
NULL
);
gcc_assert
(
cfun
->
decl
==
new_fndecl
);
/* Copy items we preserve during clon
n
ing. */
/* Copy items we preserve during cloning. */
cfun
->
static_chain_decl
=
src_cfun
->
static_chain_decl
;
cfun
->
nonlocal_goto_save_area
=
src_cfun
->
nonlocal_goto_save_area
;
cfun
->
function_end_locus
=
src_cfun
->
function_end_locus
;
...
...
@@ -2159,8 +2159,8 @@ copy_cfg_body (copy_body_data * id, gcov_type count, int frequency_scale,
bool
need_debug_cleanup
=
false
;
gcov_type
count_scale
;
int
last
;
int
incom
m
ing_frequency
=
0
;
gcov_type
incom
m
ing_count
=
0
;
int
incoming_frequency
=
0
;
gcov_type
incoming_count
=
0
;
if
(
ENTRY_BLOCK_PTR_FOR_FUNCTION
(
src_cfun
)
->
count
)
count_scale
=
(
REG_BR_PROB_BASE
*
count
...
...
@@ -2174,7 +2174,7 @@ copy_cfg_body (copy_body_data * id, gcov_type count, int frequency_scale,
/* If we are inlining just region of the function, make sure to connect new entry
to ENTRY_BLOCK_PTR. Since new entry can be part of loop, we must compute
frequency and probability of ENTRY_BLOCK_PTR based on the frequencies and
probabilities of edges incom
m
ing from nonduplicated region. */
probabilities of edges incoming from nonduplicated region. */
if
(
new_entry
)
{
edge
e
;
...
...
@@ -2183,14 +2183,14 @@ copy_cfg_body (copy_body_data * id, gcov_type count, int frequency_scale,
FOR_EACH_EDGE
(
e
,
ei
,
new_entry
->
preds
)
if
(
!
e
->
src
->
aux
)
{
incom
m
ing_frequency
+=
EDGE_FREQUENCY
(
e
);
incom
m
ing_count
+=
e
->
count
;
incoming_frequency
+=
EDGE_FREQUENCY
(
e
);
incoming_count
+=
e
->
count
;
}
incom
ming_count
=
incom
ming_count
*
count_scale
/
REG_BR_PROB_BASE
;
incom
m
ing_frequency
=
incom
m
ing_frequency
*
frequency_scale
/
REG_BR_PROB_BASE
;
ENTRY_BLOCK_PTR
->
count
=
incom
m
ing_count
;
ENTRY_BLOCK_PTR
->
frequency
=
incom
m
ing_frequency
;
incom
ing_count
=
inco
ming_count
*
count_scale
/
REG_BR_PROB_BASE
;
incoming_frequency
=
incoming_frequency
*
frequency_scale
/
REG_BR_PROB_BASE
;
ENTRY_BLOCK_PTR
->
count
=
incoming_count
;
ENTRY_BLOCK_PTR
->
frequency
=
incoming_frequency
;
}
/* Must have a CFG here at this point. */
...
...
@@ -2230,7 +2230,7 @@ copy_cfg_body (copy_body_data * id, gcov_type count, int frequency_scale,
{
edge
e
=
make_edge
(
entry_block_map
,
(
basic_block
)
new_entry
->
aux
,
EDGE_FALLTHRU
);
e
->
probability
=
REG_BR_PROB_BASE
;
e
->
count
=
incom
m
ing_count
;
e
->
count
=
incoming_count
;
}
if
(
gimple_in_ssa_p
(
cfun
))
...
...
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