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).