[LLVMdev] Metadata for Argument, BasicBlock

Ralf Karrenberg Chareos at gmx.de
Tue May 8 01:58:09 PDT 2012


FYI, I just sent a patch to llvm-commits that implements basic block 
metadata:

http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120507/142379.html

On 5/8/12 8:58 AM, Ralf Karrenberg wrote:
> Indeed, Nadav.
> I also want to store information about loops as block-metadata of the
> loop header, but as you say this is easily doable by using block
> terminators.
> However, for the divergence analysis, we cannot use the terminators,
> because the properties of a block are determined by multiple criterions.
> If you do not want to introduce ugly dummy-calls to store that data (and
> write even more ugly code to find that call later etc.), you need block
> metadata.
>
> On 5/8/12 8:45 AM, Rotem, Nadav wrote:
>> If we were to implement the #unroll pragma, we would want to add metadata to loop headers.  But, it's not a big deal since we can simply add this metadata to block terminators.
>>
>> -----Original Message-----
>> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Dan Gohman
>> Sent: Tuesday, May 08, 2012 00:58
>> To: Ralf Karrenberg
>> Cc: llvmdev at cs.uiuc.edu List
>> Subject: Re: [LLVMdev] Metadata for Argument, BasicBlock
>>
>>
>> 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
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>> ---------------------------------------------------------------------
>> Intel Israel (74) Limited
>>
>> This e-mail and any attachments may contain confidential material for
>> the sole use of the intended recipient(s). Any review or distribution
>> by others is strictly prohibited. If you are not the intended
>> recipient, please contact the sender and delete all copies.
>>
>>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



More information about the llvm-dev mailing list