<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
On 08/05/12 09:22, Ralf Karrenberg wrote:
<blockquote cite="mid:c55ba728-8f2d-4938-a248-3d3c3e266927@com"
type="cite">
<div class="moz-text-plain" wrap="true" graphical-quote="true"
style="font-family: -moz-fixed; font-size: 12px;"
lang="x-unicode">
<pre wrap="">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 <span class="moz-smiley-s1" title=":)"><span>:)</span></span>.
</pre>
</div>
</blockquote>
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.<br>
<blockquote cite="mid:c55ba728-8f2d-4938-a248-3d3c3e266927@com"
type="cite">
<div class="moz-text-plain" wrap="true" graphical-quote="true"
style="font-family: -moz-fixed; font-size: 12px;"
lang="x-unicode">
<pre wrap="">
Cheers,
Ralf</pre>
</div>
<div class="moz-text-plain" wrap="true" graphical-quote="true"
style="font-family: -moz-fixed; font-size: 12px;"
lang="x-western">
<pre wrap="">
/// 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;
+ }
</pre>
</div>
</blockquote>
I think this will result in basic block metadata effecting
optimizations. What would happen if you just ignored metadata here?<br>
<br>
<pre class="moz-signature" cols="72">--
Richard Osborne | XMOS
<a class="moz-txt-link-freetext" href="http://www.xmos.com">http://www.xmos.com</a>
</pre>
</body>
</html>