Re: broken JIT support on Fedora 40

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Dmitry Dolgov <9erthalion6(at)gmail(dot)com>
Cc: Daniel Gustafsson <daniel(at)yesql(dot)se>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: broken JIT support on Fedora 40
Date: 2024-04-09 07:07:58
Message-ID: CA+hUKGLFZ6ycsRDo-K3deGLQjMh+kk2bFgznr8haL7AE+_NApQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Apr 6, 2024 at 5:01 AM Dmitry Dolgov <9erthalion6(at)gmail(dot)com> wrote:
> > > Yep, I think this is it. I've spent some hours trying to understand why
> > > suddenly deform function has noundef ret attribute, when it shouldn't --
> > > this explains it and the proposed change fixes the crash. One thing that
> > > is still not clear to me though is why this copied attribute doesn't
> > > show up in the bitcode dumped right before running inline pass (I've
> > > added this to troubleshoot the issue).
> >
> > One thing to consider in this context is indeed adding "verify" pass as
> > suggested in the PR, at least for the debugging configuration. Without the fix
> > it immediately returns:
> >
> > Running analysis: VerifierAnalysis on deform_0_1
> > Attribute 'noundef' applied to incompatible type!
> >
> > llvm error: Broken function found, compilation aborted!
>
> Here is what I have in mind. Interestingly enough, it also shows few
> more errors besides "noundef":
>
> Intrinsic name not mangled correctly for type arguments! Should be: llvm.lifetime.end.p0
> ptr @llvm.lifetime.end.p0i8
>
> It refers to the function from create_LifetimeEnd, not sure how
> important is this.

Would it be too slow to run the verify pass always, in assertion
builds? Here's a patch for the original issue, and a patch to try
that idea + a fix for that other complaint it spits out. The latter
would only run for LLVM 17+, but that seems OK.

Attachment Content-Type Size
0001-Fix-illegal-attribute-LLVM-attribute-propagation.patch text/x-patch 2.0 KB
0002-Run-LLVM-verify-pass-on-all-generated-IR.patch text/x-patch 2.0 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message 范润泽 2024-04-09 07:16:24 Parallel Recovery in PostgreSQL
Previous Message Michael Paquier 2024-04-09 06:53:08 Re: Is this a problem in GenericXLogFinish()?