https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91299
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW Target Milestone|--- |10.5 CC| |hubicka at gcc dot gnu.org Priority|P3 |P2 --- Comment #15 from Richard Biener <rguenth at gcc dot gnu.org> --- 1 a-weakdef.o 2 195 5359582ee909af0f PREEMPTED_REG foo 198 5359582ee909af0f PREVAILING_DEF main Considering foo/0 with 3 size to be inlined into main/1 in unknown:-1 Estimated badness is -inf, frequency 1.00. Badness calculation for main/1 -> foo/0 size growth -1, time 0.000000 unspec 2.000000 big_speedup -inf: Growth -1 <= 0 Adjusted by hints -inf Updated mod-ref summary for main/1 loads: Limits: 32 bases, 16 refs stores: Limits: 32 bases, 16 refs optimized: Inlined foo/0 into main/1 which now has time 2.000000 and size 3, net change of -1. but foo/0 (foo) @0x7ffff65b5110 Type: function definition analyzed Visibility: externally_visible preempted_reg external public weak References: Referring: Read from file: a-weakdef.o Availability: available Unit id: 1 Function flags: count:1073741824 (estimated locally) Called by: main/1 (1073741824 (estimated locally),1.00 per call) Calls: Honza? This looks like a bug in handling of PREEMTED_REG? Or do we apply some sort of ODR argument here? We also see 'foo' as 'const' at IPA time (but at local time we see it's interposable and thus do not analyze it)