[Bug ipa/59282] ICE: When compiling 252.eon
zhenqiang.chen at linaro dot org
gcc-bugzilla@gcc.gnu.org
Mon Nov 25 08:21:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59282
--- Comment #1 from zhenqiang.chen at linaro dot org ---
ICE from:
commit 3af5e0b77894f5348512dfd60c034da9e859ef11
Author: hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue Nov 19 10:05:54 2013 +0000
* cgraph.c (cgraph_create_indirect_edge): Use
get_polymorphic_call_info.
* cgraph.h (cgraph_indirect_call_info): Add outer_type,
maybe_in_construction
and maybe_derived_type.
* ipa-utils.h (ipa_polymorphic_call_context): New structure.
(ipa_dummy_polymorphic_call_context): New global var.
(possible_polymorphic_call_targets): Add context paramter.
(dump_possible_polymorphic_call_targets): Likewise; update
wrappers.
(possible_polymorphic_call_target_p): Likewise.
(get_polymorphic_call_info): New function.
* ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
(add_type_duplicate): Remove forgotten debug output.
(method_class_type): Add sanity check.
(maybe_record_node): Add FINALP parameter.
(record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
by info by get_binfo_at_offset.
(possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET
parameters;
pass them to record-binfo.
(polymorphic_call_target_d): Add context and FINAL.
(polymorphic_call_target_hasher::hash): Hash context.
(polymorphic_call_target_hasher::equal): Compare context.
(free_polymorphic_call_targets_hash):
(get_class_context): New function.
(contains_type_p): New function.
(get_polymorphic_call_info): New function.
(walk_bases): New function.
(possible_polymorphic_call_targets): Add context parameter; honnor it.
(dump_possible_polymorphic_call_targets): Dump context.
(possible_polymorphic_call_target_p): Add context.
(update_type_inheritance_graph): Update comment.s
(ipa_set_jf_known_type): Assert that compoentn type is known.
(ipa_note_param_call): Do not tamper with offsets.
(ipa_analyze_indirect_call_uses): When offset is being changed; clear
outer type.
(update_indirect_edges_after_inlining): Likewise.
(ipa_write_indirect_edge_info): Stream new fields.
(ipa_read_indirect_edge_info): Stream in new fields.
* ipa/devirt9.C: Verify that the optimization happens already before.
whole-program.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205019
138bc75d-0d04-0410-961f-82ee72b054a4
More information about the Gcc-bugs
mailing list