[PATCH] D127254: [SelectionDAGISel] Chain any mayRaiseFPException instruction created from a strict FP node
Nemanja Ivanovic via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 7 12:07:49 PDT 2022
nemanjai added a comment.
In D127254#3572361 <https://reviews.llvm.org/D127254#3572361>, @craig.topper wrote:
>> How many PowerPC patterns need the CSE code? Would it make sense to get rid of the CSE code, and just reimplement the relevant patterns using custom lowering, or something like that?
>
> It's basically anything that uses CRNotPat in PPCInstrInfo.td. This is because `crnot` is defined as
>
> def crnot : OutPatFrag<(ops node:$in),
> (CRNOR $in, $in)>;
>
> which replicates the $in. I think this is quite a few patterns to custom select.
>
> I tried replacing `CRNOR $in, $in` with `CRXOR $in, (CRSET)` and rely on PPCDAGToDAGISel::PeepholeCROps to turn it into a CRNOR. This works except at -O0.
>
> Another option could be to add a CRNOT CodeGenOnly unary opcode.
>
> @nemanjai what do you think?
I am really sorry about the delay in responding to this. I think a unary pseudo for `CRNOT` is a perfectly reasonable solution and is in line with other instructions for which we wanted to avoid duplicating inputs that have chains (such as `XXPERMDIs`, etc.).
I'll put up a patch to do this ASAP.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D127254/new/
https://reviews.llvm.org/D127254
More information about the llvm-commits
mailing list