public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "jeffreyalaw at gmail dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug rtl-optimization/112415] [14 regression] Python 3.11 miscompiled on HPPA with new RTL fold mem offset pass, since r14-4664-g04c9cf5c786b94
Date: Wed, 08 Nov 2023 14:42:54 +0000	[thread overview]
Message-ID: <bug-112415-4-erOhaOnReg@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-112415-4@http.gcc.gnu.org/bugzilla/>

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

--- Comment #16 from Jeffrey A. Law <jeffreyalaw at gmail dot com> ---
On 11/8/23 03:09, manolis.tsamis at vrull dot eu wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112415
> 
> --- Comment #15 from Manolis Tsamis <manolis.tsamis at vrull dot eu> ---
> (In reply to Sam James from comment #13)
>> Created attachment 56527 [details]
>> compile.c.323r.fold_mem_offsets.bad.xz
>>
>> Output from
>> ```
>> hppa2.0-unknown-linux-gnu-gcc -c  -DNDEBUG -g -fwrapv -O3 -Wall -O2
>> -std=c11 -Werror=implicit-function-declaration -fvisibility=hidden
>> -I/home/sam/git/cpython/Include/internal -IObjects -IInclude -IPython -I.
>> -I/home/sam/git/cpython/Include    -DPy_BUILD_CORE -o Python/compile.o
>> /home/sam/git/cpython/Python/compile.c -fdump-rtl-fold_mem_offsets-all
>> ```
>>
>> If I instrument certain functions in compile.c with no optimisation
>> attribuet or build the file with -fno-fold-mem-offsets, Python works, so I'm
>> reasonably sure this is the relevant object.
> 
> Thanks for the dump file! There are 66 folded/eliminated instructions in this
> object file; I did look at each case and there doesn't seem to be anything
> strange. In fact most of the transformations are straightforward:
> 
>   - All except a couple of cases don't involve any arithmetic, so it's just
> moving a constant around.
>   - The majority of the transformations are 'trivial' and consist of a single
> add and then a memory operation: a sequence like X = Y + Const, R = MEM[X + 0]
> is folded to X = Y, R = MEM[X + Const]. I wonder why so many of these exist and
> are not optimized elsewhere.
>   - There are some cases with negative offsets, but the calculations look
> correct.
>   - There are few more complicated cases, but I've done these on paper and also
> look correct.
The PA port is "weird".  It's addressing modes aren't a good match for 
GCC (they're not symmetrical across loads vs stores and across fp vs 
integer) and they have the implicit space register problem.  But I don't 
immediately recall needing to avoid propagation of constants into memory 
references or anything like that.

I'd probably continue with the process of narrowing down what code is 
affected using the attributes.  We already know the file, narrowing it 
down to a function might help considerably with the evaluation effort.

Note that QEMU has a functional PA port.  So you might be able to just 
take a root filesystem, add the tarball referenced earlier and play 
around to narrow things down further.

I haven't done work on the PA in about 20 years at this point, but I can 
probably still grok its code.  Between David and myself I'm sure we can 
help interpret what's going on


Jeff

  parent reply	other threads:[~2023-11-08 14:42 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-06 21:00 [Bug rtl-optimization/112415] New: [14 regression] Python 3.11 miscompiled " sjames at gcc dot gnu.org
2023-11-06 21:00 ` [Bug rtl-optimization/112415] [14 regression] Python 3.11 miscompiled on HPPA " sjames at gcc dot gnu.org
2023-11-06 21:01 ` sjames at gcc dot gnu.org
2023-11-06 21:03 ` pinskia at gcc dot gnu.org
2023-11-06 21:31 ` dave.anglin at bell dot net
2023-11-06 22:09 ` sjames at gcc dot gnu.org
2023-11-06 22:11 ` sjames at gcc dot gnu.org
2023-11-06 22:20 ` law at gcc dot gnu.org
2023-11-06 22:33 ` dave.anglin at bell dot net
2023-11-06 22:49 ` sjames at gcc dot gnu.org
2023-11-06 23:11 ` sjames at gcc dot gnu.org
2023-11-06 23:18 ` dave.anglin at bell dot net
2023-11-07 14:08 ` manolis.tsamis at vrull dot eu
2023-11-07 21:12 ` sjames at gcc dot gnu.org
2023-11-08  1:36 ` sjames at gcc dot gnu.org
2023-11-08  2:24 ` dave.anglin at bell dot net
2023-11-08 10:09 ` manolis.tsamis at vrull dot eu
2023-11-08 14:42 ` jeffreyalaw at gmail dot com [this message]
2023-11-08 18:59 ` dave.anglin at bell dot net
2023-11-08 19:07 ` pinskia at gcc dot gnu.org
2023-11-08 19:16 ` law at gcc dot gnu.org
2023-11-08 19:40 ` dave.anglin at bell dot net
2023-11-08 23:33 ` pinskia at gcc dot gnu.org
2023-11-08 23:40 ` danglin at gcc dot gnu.org
2023-11-08 23:51 ` sjames at gcc dot gnu.org
2023-11-09  0:00 ` dave.anglin at bell dot net
2023-11-09  0:02 ` sjames at gcc dot gnu.org
2023-11-09  0:07 ` law at gcc dot gnu.org
2023-11-09  0:08 ` dave.anglin at bell dot net
2023-11-09  0:23 ` dave.anglin at bell dot net
2023-11-09 18:04 ` danglin at gcc dot gnu.org
2023-11-09 19:17 ` danglin at gcc dot gnu.org
2023-11-09 20:28 ` law at gcc dot gnu.org
2023-11-09 20:41 ` dave.anglin at bell dot net
2023-11-09 23:41 ` danglin at gcc dot gnu.org
2023-11-11 19:40 ` danglin at gcc dot gnu.org
2023-11-11 19:51 ` sjames at gcc dot gnu.org
2023-11-11 20:00 ` danglin at gcc dot gnu.org
2023-11-11 20:06 ` danglin at gcc dot gnu.org
2023-11-11 20:19 ` sjames at gcc dot gnu.org
2023-11-11 21:54 ` danglin at gcc dot gnu.org
2023-11-12 15:05 ` danglin at gcc dot gnu.org
2023-11-12 15:54 ` law at gcc dot gnu.org
2023-11-12 23:59 ` danglin at gcc dot gnu.org
2023-11-13  0:24 ` law at gcc dot gnu.org
2023-11-13  9:33 ` manolis.tsamis at vrull dot eu
2023-11-13  9:37 ` manolis.tsamis at vrull dot eu
2023-11-13 13:20 ` manolis.tsamis at vrull dot eu
2023-11-13 15:06 ` dave.anglin at bell dot net
2023-11-13 15:26 ` manolis.tsamis at vrull dot eu
2023-11-13 21:46 ` danglin at gcc dot gnu.org
2023-11-16 17:43 ` cvs-commit at gcc dot gnu.org
2023-11-27 20:55 ` sjames at gcc dot gnu.org
2023-11-28 12:39 ` manolis.tsamis at vrull dot eu
2024-03-18  0:22 ` cvs-commit at gcc dot gnu.org
2024-03-18  0:39 ` danglin at gcc dot gnu.org
2024-03-22 13:34 ` law at gcc dot gnu.org

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=bug-112415-4-erOhaOnReg@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /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).