[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