[LLVMdev] Some questions on SelectionDAG

Zakk zakk0610 at gmail.com
Fri Sep 2 03:14:37 PDT 2011

Hi, all

I am studying the ARM backend on SelectionDAG, I have some following

1. Each operator of SDNode in SelectionDAG is required to be defined by
SDNode<ISD::XXX,XXX,XXX> in .td file, right?

But several operators are not defined in .td file, why? (e.g., ISD::BR_CC,
ISD::CopyToReg, ISD::AssertSext)

2. The MVT::glue value is used to ensure two nodes are scheduled together
and in order.

In the other word, we can’t insert any instruction of them in the
scheduling, is it correct?

3. In the ARMISelLowering constructor, it sets the callback function with

setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote);

My question is ARM don’t support MVT::i1 registerclass, why should it
determine this operation with MVT::i1 value?

Can anyone tell me?

Thank you very much.

Best regards,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110902/886c3b23/attachment.html>

More information about the llvm-dev mailing list