Hi,
for DAG-to-DAG instruction selection I’ve implemented a pattern, which creates from one SDNode two instructions, something like:
def: Pat<(NEW_SDNODE REG:$r1),
(INST_OUT (INST_IN), REG:$r1)>;
where INST_IN doesn't accepts any inputs and INST_OUT accepts two inputs - one returned by INST_IN and REG;$r1.
Is there any possibility to ‘Glue’ two instruction created in a such way? Maybe something similar to creation SDNodes with SDNPOutGlue, SDNPInGlue) ?
These two instructions INST_IN and INST_OUT have to be one after another without any other inserted between them.
Thanks,
Przemek
Create a pseudo-instruction that represents these two, and expand it into the actual instructions late, after optimizations.
--
Krzysztof Parzyszek kpar...@quicinc.com AI tools development
Thank you Krzysztof,I used pseudo-instruction earlier, but thought there might be easier solution by implementing support for that simply in TableGen files by marking somehow the instructions:)Thanks for confirmation, that I have to do this in a such way,Przemek
let uses = [ R1 ], defs = [ R1 ] in {
def MYINST : Pseudo<>
}
> _______________________________________________
> LLVM Developers mailing list
> llvm...@lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
_______________________________________________
LLVM Developers mailing list
llvm...@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev