http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60756
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-04-04
Ever confirmed|0 |1
--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> The parameter "str" is passed in x0+x1, and immediately copied into
> the call-saved registers x22+x23, where they stay for the duration
> of the function.
>
> But var-tracking works (or appears to work) back-to-front, taking
> the location of the variable from the src rather than the dest of
> a copy.
Yes, that's the original design (-fno-var-tracking-assignments nowadays) and
the correct approach if you are interested in the location of a fixed quantity.
Then -fvar-tracking-assignments reversed the viewpoint to track variable
quantities.
> At minimum it would seem that taking DECL_RTL into account when
> examining these assignments would be a good start. When copying into
> its canonical location, it would seem a great time to alter the
> live range.
Does this work better with -fno-var-tracking-assignments?