[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