https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105459

--- Comment #8 from Kewen Lin <linkw at gcc dot gnu.org> ---
(In reply to Kewen Lin from comment #7)
> I wonder if it's fine to move init_function_start downward after
> execute_all_ipa_transforms call? the testing is ongoing.

This proposed patch was bootstrapped and regress-tested. I think it's
reasonable as it can avoid uninitialized target global issue (on secondary
members) exposed by this bug.

But this issue also exposes another problem. The main function shares the
target option node as function quux, after the inlining succeeds, the
flag_unsafe_math_optimizations of main function is updated by copying the flag
from callee bar/foo (see function inline_call). At this time, main shouldn't
share the target option with quux any more, since IIUC once one function
changes the flag_unsafe_math_optimizations, it should sync with the
x_ix86_unsafe_math_optimizations used for target part and should rebuild target
option? It seems there are no such hooks which can be used for this kind of
update.

Hi Jakub, it's related to r11-5855, do you have any thoughts on this?

Reply via email to