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

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
What options are you using to compile?
Are you using -fno-strict-aliasing?

If so what is happening and why it was really just bad luck before if all of
the uses of the variable were local to the partitioning; it was kept as static
and if the variable had not taken the address of (which I think it is when
looking into the source), then GCC aliasing system could figure out that the
loads from change_stack_pointer would not change the value of
change_stack_pointer. But with the different partitioning happening now, the
variable needs to be not static to the one partition, so GCC has to assume that
the variable has its address taken into a different partition. So you end up
with the extra load/stores that way.

Reply via email to