public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug debug/60756] var-tracking selects wrong registers
[not found] <bug-60756-4@http.gcc.gnu.org/bugzilla/>
@ 2014-04-04 0:52 ` rth at gcc dot gnu.org
2014-04-04 10:00 ` ebotcazou at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 4+ messages in thread
From: rth at gcc dot gnu.org @ 2014-04-04 0:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60756
Richard Henderson <rth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |aarch64-linux
CC| |aoliva at gcc dot gnu.org
Severity|normal |enhancement
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug debug/60756] var-tracking selects wrong registers
[not found] <bug-60756-4@http.gcc.gnu.org/bugzilla/>
2014-04-04 0:52 ` [Bug debug/60756] var-tracking selects wrong registers rth at gcc dot gnu.org
@ 2014-04-04 10:00 ` ebotcazou at gcc dot gnu.org
2014-04-04 15:34 ` rth at gcc dot gnu.org
2014-04-04 17:13 ` ebotcazou at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2014-04-04 10:00 UTC (permalink / raw)
To: gcc-bugs
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?
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug debug/60756] var-tracking selects wrong registers
[not found] <bug-60756-4@http.gcc.gnu.org/bugzilla/>
2014-04-04 0:52 ` [Bug debug/60756] var-tracking selects wrong registers rth at gcc dot gnu.org
2014-04-04 10:00 ` ebotcazou at gcc dot gnu.org
@ 2014-04-04 15:34 ` rth at gcc dot gnu.org
2014-04-04 17:13 ` ebotcazou at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: rth at gcc dot gnu.org @ 2014-04-04 15:34 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60756
--- Comment #2 from Richard Henderson <rth at gcc dot gnu.org> ---
Yes, this testcase works better with -fno-var-tracking-assignments.
It seems to be a mixed bag, though. Running the testsuite with this
argument causes 79 previously failing guality tests to pass, but
causes 200 more new failures.
I wonder if there's some way to get the best of both worlds?
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug debug/60756] var-tracking selects wrong registers
[not found] <bug-60756-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2014-04-04 15:34 ` rth at gcc dot gnu.org
@ 2014-04-04 17:13 ` ebotcazou at gcc dot gnu.org
3 siblings, 0 replies; 4+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2014-04-04 17:13 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60756
--- Comment #3 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Yes, this testcase works better with -fno-var-tracking-assignments.
That's expected for the param-[123].c testcases.
> It seems to be a mixed bag, though. Running the testsuite with this
> argument causes 79 previously failing guality tests to pass, but
> causes 200 more new failures.
Yes, both modes have severe limitations.
> I wonder if there's some way to get the best of both worlds?
That's what I have been trying to do recently for these testcases: selectively
shut down -fvar-tracking-assignments to track the location instead of the
value, because it's for aggregate parameters and they are rarely modified.
I'll investigate why this isn't sufficient on aarch64.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-04-04 17:13 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <bug-60756-4@http.gcc.gnu.org/bugzilla/>
2014-04-04 0:52 ` [Bug debug/60756] var-tracking selects wrong registers rth at gcc dot gnu.org
2014-04-04 10:00 ` ebotcazou at gcc dot gnu.org
2014-04-04 15:34 ` rth at gcc dot gnu.org
2014-04-04 17:13 ` ebotcazou at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).