[LLVMdev] how to pass message from LLVM IR to bachend code

Reid Spencer reid at x10sys.com
Wed Jul 13 13:31:25 PDT 2005


Yes, SelectionDAGISel.cpp was only added to LLVM in 1.5.

Reid.

On Wed, 2005-07-13 at 15:34 -0400, shding at mtu.edu wrote:
> Hi,
>    In the directory of lib/CodeGen/SelectionDAG, I cann't find
> SelectionDAGISel.cpp. I only have DAGBuilder.cpp and SelectionDAG.cpp.
> I don't know why. My edtion is 1.4. Is it because of the edtion
> difference? Thanks!
> 
> 
> > On Mon, 11 Jul 2005 shding at mtu.edu wrote:
> >>   I have extended the IR for adding flag. But I just want this flag to
> >> pass through the backend machine code. I know there're several passes
> >> like register relocation, schedualing, etc. But I think I just miss the
> >> part which is used to "parser" the LLVM IR to machine code
> >> instructions.
> >
> > The part of the code generator that converts LLVM IR to machine code IR is
> > called the 'instruction selection' phase.  You can find some documentation
> > for it here:
> > http://llvm.cs.uiuc.edu/docs/CodeGenerator.html#instselect
> >
> > Unfortunately the code generator is not as well documented as it should be
> > (though this is slowly improving).  The best way to see how this process
> > works is to look at example instructions.  Most of the code for lowering
> > standard instructions is held in
> > lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> >
> > -Chris
> >
> >>> On Sun, 10 Jul 2005 shding at mtu.edu wrote:
> >>>> Hi:
> >>>>   I want to pass some message of instructions from LLVM Internal
> >>>> representation to backend  code. For example, I make a flag for some
> >>>> certain operands of certain instructions. How can  it be passed to the
> >>>> backend instructions? Which programs I should look into? Would someone
> >>>> give me some idea? Thank you !
> >>>
> >>> The easiest way to do this is to extend the LLVM IR itself.  As a
> >>> simple
> >>> example of this, you can take a look at how the PHINode class has an
> >>> extra
> >>> 'reservedspace' member (ignore what it is used for though), or the
> >>> load/store instructions track the 'isVolatile' flag.
> >>>
> >>> -Chris
> >>>
> >>> --
> >>> http://nondot.org/sabre/
> >>> http://llvm.cs.uiuc.edu/
> >>>
> >>> _______________________________________________
> >>> LLVM Developers mailing list
> >>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> >>> http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
> >>>
> >>
> >>
> >>
> >
> > -Chris
> >
> > --
> > http://nondot.org/sabre/
> > http://llvm.org/
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20050713/91fa3b43/attachment.sig>


More information about the llvm-dev mailing list