public inbox for jit@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jeff Law <law@redhat.com>
To: David Malcolm <dmalcolm@redhat.com>,
	Thomas Preudhomme <thomas.preudhomme@foss.arm.com>,
	gcc-patches@gcc.gnu.org
Cc: Rainer Orth <ro@cebitec.uni-bielefeld.de>,
	jit@gcc.gnu.org, Andreas Schwab <schwab@linux-m68k.org>
Subject: Re: [PATCH] Fixes to must-tail-call tests
Date: Fri, 01 Jan 2016 00:00:00 -0000	[thread overview]
Message-ID: <91726fd5-d07c-b33a-c38a-5c40d482222b@redhat.com> (raw)
In-Reply-To: <1464371096.11895.4.camel@redhat.com>

On 05/27/2016 11:44 AM, David Malcolm wrote:
> On Fri, 2016-05-27 at 13:29 +0100, Thomas Preudhomme wrote:
>> Hi Rainer,
>>
>> On Wednesday 25 May 2016 11:31:12 Rainer Orth wrote:
>>> David Malcolm <dmalcolm@redhat.com> writes:
>>>> The following fixes the known failures of the must-tail-call
>>>> tests.
>>>>
>>>> Tested with --target=
>>>> * aarch64-unknown-linux-gnu
>>>> * ia64-unknown-linux-gnu
>>>> * m68k-unknown-linux-gnu
>>>> * x86_64-pc-linux-gnu
>>>
>>> Even with this patch, there are still failures on sparc-sun
>>> -solaris2.12:
>>>
>>> FAIL: gcc.dg/plugin/must-tail-call-1.c
>>> -fplugin=./must_tail_call_plugin.so
>>> (test for excess errors)
>>>
>>> Excess errors:
>>> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/plugin/must-tail
>>> -call-1.c:1
>>> 2:10: error: cannot tail-call: target is not able to optimize the
>>> call into
>>> a sibling call
>>>
>>> FAIL: gcc.dg/plugin/must-tail-call-2.c
>>> -fplugin=./must_tail_call_plugin.so
>>> (test for excess errors)
>>>
>>> Excess errors:
>>> /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.dg/plugin/must-tail
>>> -call-2.c:3
>>> 2:10: error: cannot tail-call: target is not able to optimize the
>>> call into
>>> a sibling call
>
>
> My aim with these tests was to try to cover the various ways in which
> mandatory tail-call optimization can fail.
>
> However, this is very target-dependent, and, as written, the test over
> -specifies the output.
>
> Sorry about this.
>
> I've run the test on all of the configurations in contrib/config
> -list.mk (using the patch kit in
>   https://gcc.gnu.org/ml/gcc-patches/2016-05/msg02100.html )
>
> Collated output can be seen here:
>   https://dmalcolm.fedorapeople.org/gcc/2016-05-27/must-tail-call-logs.txt
> showing all the different error messages across every configuration.
>
> It's not clear to me what the best way forward here is.
> We could simply check for
>    error: cannot tail-call:
> and leave the precise messages we're checking for unspecified.
>
> If we care about checking for the precise messages, one of more
> duplicate copy(s) of the test could be provided, filtering by target to
> specify precise targets, giving more precise output, where this is
> known.
>
> I'm attaching a patch (sans ChangeLog) which strips the precise
> messages in the manner described above.  Retesting on all targets with
> this patch, the only remaining failures are of the form:
>   must-tail-call-1.c:12:10: error: cannot tail-call: machine
> description does not have a sibcall_epilogue instruction pattern
> on targets lacking the pattern.
>
> Thoughts?
I probably should have caught this -- there's all kinds of oddball 
reasons why we might not be able to optimize a tail call, some of which 
are target dependent.

I think trying to give highly precise messages is doomed to long term 
maintenance headaches because they're going to be target dependent.

So I'd go with just stripping the precise messages like you've done.

jeff

  reply	other threads:[~2016-06-09 21:00 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-01  0:00 [PATCH 0/3] Support for mandatory tail calls David Malcolm
2016-01-01  0:00 ` [PATCH 2/3] Implement CALL_EXPR_MUST_TAIL_CALL David Malcolm
2016-01-01  0:00   ` Jeff Law
2016-01-01  0:00   ` Andreas Schwab
2016-01-01  0:00   ` Andreas Schwab
2016-01-01  0:00     ` [PATCH] Fixes to must-tail-call tests David Malcolm
2016-01-01  0:00       ` Rainer Orth
2016-01-01  0:00         ` Thomas Preudhomme
2016-01-01  0:00           ` David Malcolm
2016-01-01  0:00             ` Jeff Law [this message]
2016-01-01  0:00 ` [PATCH 1/3] Introduce can_implement_as_sibling_call_p David Malcolm
2016-01-01  0:00   ` Jeff Law
2016-01-01  0:00   ` Kyrill Tkachov
2016-01-01  0:00     ` [PATCH] calls.c: fix warning on targets without REG_PARM_STACK_SPACE David Malcolm
2016-01-01  0:00 ` [PATCH 3/3] jit: implement gcc_jit_rvalue_set_bool_require_tail_call David Malcolm
2016-01-01  0:00   ` Trevor Saunders
2016-01-01  0:00     ` David Malcolm
2016-01-01  0:00 ` [PATCH 0/3] Support for mandatory tail calls Jeff Law
2016-01-01  0:00   ` Basile Starynkevitch
2016-01-01  0:00     ` Jason Merrill
2016-01-01  0:00       ` Richard Biener
2016-01-01  0:00         ` Jason Merrill

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=91726fd5-d07c-b33a-c38a-5c40d482222b@redhat.com \
    --to=law@redhat.com \
    --cc=dmalcolm@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jit@gcc.gnu.org \
    --cc=ro@cebitec.uni-bielefeld.de \
    --cc=schwab@linux-m68k.org \
    --cc=thomas.preudhomme@foss.arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).