r215898 - in /trunk/gcc: ChangeLog cgraph.c cgr...
hubicka@gcc.gnu.org
hubicka@gcc.gnu.org
Sun Oct 5 05:02:00 GMT 2014
Author: hubicka
Date: Sun Oct 5 05:02:19 2014
New Revision: 215898
URL: https://gcc.gnu.org/viewcvs?rev=215898&root=gcc&view=rev
Log:
* ipa-polymorphic-call.c (walk_ssa_copies): Recognize
NULL pointer checks.
(ipa_polymorphic_call_context::get_dynamic_type): Return true
if type doesn't change.
* cgraph.h (cgraph_indirect_call_info): New flag.
* cgraph.c (cgraph_node::create_indirect_edge): Initialize it.
(cgraph_node::dump): Dump it.
* ipa-prop.c (ipa_analyze_call_uses): Ignore return valud
of context.get_dynamic_type.
(ipa_make_edge_direct_to_target): Do not speculate
edge that is already speuclative.
(try_make_edge_direct_virtual_call): Use VPTR_CHANGED; Do not
speculate to __builtin_unreachable
(ipa_write_indirect_edge_info, ipa_read_indirect_edge_info): Stream
vptr_changed.
* ipa-cp.c (ipa_get_indirect_edge_target_1): Use vptr_changed.
* g++.dg/ipa/devirt-47.C: New testcase.
Added:
trunk/gcc/testsuite/g++.dg/ipa/devirt-47.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cgraph.c
trunk/gcc/cgraph.h
trunk/gcc/ipa-cp.c
trunk/gcc/ipa-polymorphic-call.c
trunk/gcc/ipa-prop.c
trunk/gcc/testsuite/ChangeLog
More information about the Gcc-cvs
mailing list