[llvm-dev] What pattern string corresponds to CopyToReg? (original) (raw)

Craig Topper via llvm-dev llvm-dev at lists.llvm.org
Sat Nov 4 19:22:41 PDT 2017


CopyToReg is not handle by patterns. It should be passed through isel unchanged. It’s part of a special list of ISD opcodes that don’t change in SelectioDAGISel::SelectCodeCommon

It will then be turned into a TargetOpcode::COPY in InstrEmitter::EmitSpecialNode when the DAG is turned into MachineInstrs.

On Sat, Nov 4, 2017 at 7:02 PM Robert Baruch via llvm-dev < llvm-dev at lists.llvm.org> wrote:

So there's a DAG that looks like this in the debug output: > Selecting: t3: ch,glue = CopyToReg t0, Register:i16 %R5, Constant:i16<127> > In the instruction selection phase, what pattern would that match? I've constructed this so far: > (??? REG16:$dst, i16imm:$src) > but the problem is, I can't determine what to use as ???. There is an ISD::CopyToReg enum value, but I don't know how that translates to the string to use in the pattern. > And more generally, how do I find out from a DAG diagram like the ones output by -view-isel-dags which node type corresponds to which pattern string? > Thanks, > --Rob > _________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

~Craig -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20171105/9caef7f4/attachment.html>



More information about the llvm-dev mailing list