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

Chris Lattner sabre at nondot.org
Mon Jul 11 23:17:28 PDT 2005


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/




More information about the llvm-dev mailing list