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

Chris Lattner sabre at nondot.org
Wed Jul 13 13:33:44 PDT 2005


On Wed, 13 Jul 2005 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!

Yes, please update to at least LLVM 1.5, using mainline CVS would be even 
better.

-Chris

>> 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
>>
>
>
>

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/




More information about the llvm-dev mailing list