[Bug ipa/59469] [4.8/4.9 Regression] LLVM build failure with gcc LTO
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Dec 19 13:24:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59469
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
--- Comment #23 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #15)
> We should analyze why we end up with missing symbol. __attribute__ ((used))
> will prevent privatization of the symbol. Rather than that it would be
> better to figure out what object file of the library actually need it and
> look at the preprocessed source code if the inline version is there.
>
> I just rebuilt without testing and indeed it seems that cprop and df seems
> to degenerate here quite noticeably.
>
> It is lookupIntrinsicID that consume a lot of time and its CFG is not small:
>
> $4 = {x_entry_block_ptr = 0x7ffff65b22d8, x_exit_block_ptr = 0x7ffff65b2340,
> x_basic_block_info = 0x7ffff48df000, x_n_basic_blocks = 13898, x_n_edges =
> 22158,
> x_last_basic_block = 13898, last_label_uid = 8660, x_label_to_block_map =
> 0x0, x_profile_status = PROFILE_GUESSED, x_dom_computed = {DOM_NONE,
> DOM_NONE}, x_n_bbs_in_dom_tree = {0, 0},
> max_jumptable_ents = 34}
>
> But it does not really explain why cprop should that that much of time.
> It seems that the function is huge sequence of ifs compiling into:
> <L3807>:
> _3982 = &MEM[(void *)_5 + 31B];
> _3983 = memcmp (_3982, "tore", 4);
> if (_3983 != 0)
> goto <bb 4208>;
> else
> goto <bb 5260>;
> plus a lot of PHIs that probably makes cprop to work hard...
> I wonder if we can't inline those stupid memcmps somehow.
>
> Marking as NEW at least for the performance problem. Still unsure if the
> original problem is source bug or GCC bug.
See PR52171.
More information about the Gcc-bugs
mailing list