[LLVMdev] Metadata for Argument, BasicBlock

Ralf Karrenberg Chareos at gmx.de
Mon May 7 23:11:09 PDT 2012


Hi Dan,

I am using it to store results of a vectorization analysis. A BasicBlock 
has certain properties in this context, e.g. we mark control flow that 
may never diverge in different instances ("threads" if you think in 
terms of CUDA) of the same function by marking the corresponding blocks. 
This information is later used when linearizing the function (control 
flow to data flow conversion). I'll be happy to give you more detail on 
this if you want to :).
I could imagine there are other things that could make use of this, or 
am I wrong with that?

Cheers,
Ralf

On 5/7/12 11:58 PM, Dan Gohman wrote:
>
> On May 7, 2012, at 7:21 AM, Ralf Karrenberg<Chareos at gmx.de>  wrote:
>
>> Hi Duncan,
>>
>> On 5/6/12 6:12 PM, Duncan Sands wrote:
>>> Hi Ralf,
>>>
>>>> Is there a clean way to attach metadata nodes to Arguments and/or
>>>> BasicBlocks?
>>>
>>> not at the moment.  Feel free to work on adding this functionality!
>>
>> I am looking into that now.
>> I decided to temporarily go for the following syntax for BasicBlock
>> metadata (subject to discussion):
>>
>> entry:
>>      !property_1 !0, !property_2 !1
>>    %x = fadd float %a, %b
>>
>> It seems that I have to touch lots of files for this:
>> BasicBlock.h/.cpp, Metadata.cpp, LLParser.cpp, AsmParser, AsmWriter,
>> BitcodeReader.cpp, BitcodeWriter.cpp so far.
>> I basically went and duplicated code that handles metadata attached to
>> instructions.
>
> What kind of things might basic block metadata be used for?
>
> Dan
>
>



More information about the llvm-dev mailing list