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
958c1d61
Commit
958c1d61
authored
Jul 09, 2014
by
Jan Hubicka
Committed by
Jan Hubicka
Jul 09, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* ipa-devirt.c (record_node): Walk through aliases.
From-SVN: r212406
parent
da22f505
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
2 deletions
+18
-2
gcc/ChangeLog
+4
-0
gcc/ipa-devirt.c
+14
-2
No files found.
gcc/ChangeLog
View file @
958c1d61
2014
-
07
-
08
Jan
Hubicka
<
hubicka
@
ucw
.
cz
>
*
ipa
-
devirt
.
c
(
record_node
):
Walk
through
aliases
.
2014
-
07
-
08
Jan
Hubicka
<
hubicka
@
ucw
.
cz
>
*
lto
-
streamer
-
out
.
c
(
hash_scc
):
Avoid
quadratic
hashing
loop
.
2014
-
07
-
08
Jan
Hubicka
<
hubicka
@
ucw
.
cz
>
...
...
gcc/ipa-devirt.c
View file @
958c1d61
...
...
@@ -860,7 +860,8 @@ maybe_record_node (vec <cgraph_node *> &nodes,
bool
can_refer
,
bool
*
completep
)
{
struct
cgraph_node
*
target_node
;
struct
cgraph_node
*
target_node
,
*
alias_target
;
enum
availability
avail
;
/* cxa_pure_virtual and __builtin_unreachable do not need to be added into
list of targets; the runtime effect of calling them is undefined.
...
...
@@ -884,6 +885,17 @@ maybe_record_node (vec <cgraph_node *> &nodes,
target_node
=
cgraph_get_node
(
target
);
/* Preffer alias target over aliases, so we do not get confused by
fake duplicates. */
if
(
target_node
)
{
alias_target
=
cgraph_function_or_thunk_node
(
target_node
,
&
avail
);
if
(
target_node
!=
alias_target
&&
avail
>=
AVAIL_AVAILABLE
&&
cgraph_function_body_availability
(
target_node
))
target_node
=
alias_target
;
}
/* Method can only be called by polymorphic call if any
of vtables refering to it are alive.
...
...
@@ -910,7 +922,7 @@ maybe_record_node (vec <cgraph_node *> &nodes,
{
gcc_assert
(
!
target_node
->
global
.
inlined_to
);
gcc_assert
(
symtab_real_symbol_p
(
target_node
));
if
(
!
pointer_set_insert
(
inserted
,
target
))
if
(
!
pointer_set_insert
(
inserted
,
target
_node
->
decl
))
{
pointer_set_insert
(
cached_polymorphic_call_targets
,
target_node
);
...
...
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