<div class="gmail_quote">2009/10/12 Dan Gohman <span dir="ltr"><<a href="mailto:gohman@apple.com">gohman@apple.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="im"><br>
On Oct 11, 2009, at 3:25 PM, Nick Lewycky wrote:<br>
<br>
> This patch adds memory use markers as described in <a href="http://nondot.org/sabre/LLVMNotes/MemoryUseMarkers.txt" target="_blank">http://nondot.org/sabre/LLVMNotes/MemoryUseMarkers.txt</a><br>
>  . The bulk of the patch makes it possible to have intrinsics which<br>
> return {}.<br>
<br>
</div>Hi Nick,<br>
<br>
The use of {} here is clever, but I don't think it's correct. Since {}<br>
has<br>
no members, the set of values has exactly one element, which means<br>
that all values of type {} can be assumed to be equivalent. Please use<br>
something like opaque* instead.<br></blockquote><div><br>I brought that up with Chris much earlier on (since I would've had this patch done a month ago were it not for the need to support {}) but he was adamant that {} was the correct type for these. I was suggesting metadata type though; opaque types require a name in the module.<br>

<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

With @llvm.invariant.end being marked readonly and nounwind, and having<br>
a void return type, it would seem to be trivially dead everywhere.<br>
Should<br>
the readonly be removed?<br></blockquote><div><br>Good catch! Does this rule apply to intrinsics as well? How does @llvm.gcread work? I will check on it and make sure we're doing the right thing here.<br></div></div>

<br>Nick<br><br>