[llvm-dev] What pattern string corresponds to CopyToReg?

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