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