[Bug ipa/91872] [10 Regression] ICE in insert_vi_for_tree, at tree-ssa-structalias.c:2877, or ICE in expand_expr_real_1, at expr.c:10062
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Sep 24 08:08:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91872
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |NEW
CC| |rguenth at gcc dot gnu.org
Assignee|rguenth at gcc dot gnu.org |unassigned at gcc dot gnu.org
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
For the PTA issue the first of the 'this' PARM_DECLs "duplicates" comes from
_ZThn16_N12_GLOBAL__N_11B3fooEi.artificial_thunk.0/42
(_ZThn16_N12_GLOBAL__N_11B3fooEi.artificial_thunk.0) @0x7ffff69a6438
Type: function definition analyzed
Visibility: artificial
References: _ZN12_GLOBAL__N_1L2goE/1 (write)
Referring:
Availability: local
Function flags: count:118111600 (estimated locally) body local nonfreeing_fn
Former thunk fixed offset -16 virtual value 0 indirect_offset 0 has virtual
offset 0
Called by: int main(int, char**)/24 (955630223 (estimated locally),8.09 per
call) void bar()/23 (955630223 (estimated locally),8.09 per call)
Calls:
and the second
_ZThn16_N12_GLOBAL__N_11B3fooEi/19 (virtual void
{anonymous}::B::_ZThn16_N12_GLOBAL__N_11B3fooEi(int)) @0x7ffff69a6ca8
Type: function definition analyzed
Visibility: prevailing_def_ironly virtual artificial
Address is taken.
References: _ZN12_GLOBAL__N_1L2goE/1 (write)
Referring: _ZTVN12_GLOBAL__N_11BE/25 (addr)
Availability: available
Function flags: count:118111600 (estimated locally) body nonfreeing_fn
Former thunk fixed offset -16 virtual value 0 indirect_offset 0 has virtual
offset 0
Called by:
Calls:
both FUNCTION_DECLs share the same DECL_ARGUMENTS, that doesn't look correct?
The duplicate is created by duplicate_thunk_for_node in a new IPA SRA path
but I don't see any DECL_ARGUMENTS adjustment / copying of PARM_DECLs?
Note both thunks above are "analyzed" and thus have a GIMPLE body.
Not a IPA PTA issue but wrong GIMPLE IMHO.
You can see it in pr60640-4.C.082i.materialize-all-clones:
{anonymous}::B::_ZThn16_N12_GLOBAL__N_11B3fooEi (struct BD.2510 * const
thisD.2622)
{
struct BD.2510 * const adjusted_this.16D.2748;
<bb 2> [local count: 10000]:
this_2 = this_1(D) + 18446744073709551600;
adjusted_this.16_3 = this_2;
{anonymous}::B::*.LTHUNK0 (adjusted_this.16_3); [tail call]
return;
}
and
{anonymous}::B::_ZThn16_N12_GLOBAL__N_11B3fooEi.artificial_thunk.0 (struct
BD.2510 * const thisD.2622)
{
struct BD.2510 * const adjusted_this.15D.2745;
<bb 2> [local count: 10000]:
this_2 = this_1(D) + 18446744073709551600;
adjusted_this.15_3 = this_2;
{anonymous}::B::foo.constprop (adjusted_this.15_3); [tail call]
return;
}
note the same UID for the this PARM_DECL.
More information about the Gcc-bugs
mailing list