[llvm-commits] PATCH: BasicBlock metadata
Richard Osborne
richard at xmos.com
Tue May 8 02:40:27 PDT 2012
On 08/05/12 09:22, Ralf Karrenberg wrote:
> Hi,
>
> please find attached a patch that adds metadata functionality to BasicBlocks.
> It should include all that is required for full support via BitcodeReader/Writer, AsmParser/Writer, etc.
>
> Essentially, the patch mimics behaviour of metadata that is attached to instructions.
>
> The chosen syntax for block metadata is as follows:
>
> entry:
> %property1 !0, %property2 !1
> %x = fadd float %a, %b
> ret float %x
>
> Looking forward to getting feedback on the patch:).
Some general comments - why do you need special handling / caching of
debug loc metadata? Unless the format of debug information is changed
debug metadata will only be added to instructions and so this code is
unnecessary. You should add some testcases to cover the new
functionality and modify the language ref to include a description of
basic block metadata. Finally the indentation is incorrect in a number
of places. Please use 2 spaces for indentation and avoid tabs.
> Cheers,
> Ralf
> /// hasAddressTaken - returns true if there are any uses of this basic block
> /// other than direct branches, switches, etc. to it.
> - bool hasAddressTaken() const { return getSubclassDataFromValue() != 0; }
> + bool hasAddressTaken() const {
> + return (getSubclassDataFromValue()& ~HasMetadataBit) != 0;
> + }
I think this will result in basic block metadata effecting
optimizations. What would happen if you just ignored metadata here?
--
Richard Osborne | XMOS
http://www.xmos.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120508/b1698cfa/attachment.html>
More information about the llvm-commits
mailing list