[llvm] r190309 - [ARMv8] Prevent generation of deprecated IT blocks on ARMv8 in Thumb mode.
Hal Finkel
hfinkel at anl.gov
Mon Nov 25 11:21:36 PST 2013
----- Original Message -----
> From: "Artyom Skrobov" <Artyom.Skrobov at arm.com>
> To: "Hal Finkel" <hfinkel at anl.gov>
> Cc: "Joey Gouly" <Joey.Gouly at arm.com>, llvm-commits at cs.uiuc.edu, "Tim Northover" <t.p.northover at gmail.com>
> Sent: Saturday, November 23, 2013 5:06:38 AM
> Subject: RE: [llvm] r190309 - [ARMv8] Prevent generation of deprecated IT blocks on ARMv8 in Thumb mode.
>
> Hal, did you see my earlier message yesterday, proposing a patch that
> may be sufficient as the solution?
No, I missed it somehow. I'll look at it.
>
> It would also be invaluable if you could put together a test that
> causes incorrect code generation for PPC target in this case.
> Including such a test would reduce the risk that further changes to
> LLVM break PPC self-hosting again.
Agreed.
-Hal
>
>
> -----Original Message-----
> From: Hal Finkel [mailto:hfinkel at anl.gov]
> Sent: 22 November 2013 22:42
> To: Artyom Skrobov
> Cc: Joey Gouly; llvm-commits at cs.uiuc.edu; Tim Northover
> Subject: Re: [llvm] r190309 - [ARMv8] Prevent generation of
> deprecated IT blocks on ARMv8 in Thumb mode.
>
> > Okay, so the issue is that, for PPC, we can't 'skip' the
> > conditional
> > branches; they need to be checked to see if they can be predicated
> > during the instruction scan. Unfortunately, I can't think of a
> > better solution than to create a new TTI function what toggles
> > between the two behaviors. What if we added
> > TTI->willVanishIfPredicated(MachineInstr *MI)?
>
> Also, while we're looking at it... this also looks wrong:
>
> if (!isPredicated) {
> ...
> } else if (!AlreadyPredicated) {
> // FIXME: This instruction is already predicated before the
> // if-conversion pass. It's probably something like a
> conditional move.
> // Mark this block unpredicable for now.
> ...
> }
>
> this should say:
>
> } else if (AlreadyPredicated) {
>
> right?
>
> Please get back to me about this ASAP. I'd like to get a fix in for
> this before rc2. Commenting out the 'if (isCondBr)' part unbreaks
> PPC self-hosting (but obviously is sub-optimal for ARM), and I think
> we can design a simple solution that makes everyone happy.
>
> Thanks again,
> Hal
>
>
>
>
>
--
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
More information about the llvm-commits
mailing list