[llvm-commits] patch: memory use markers

Nick Lewycky nlewycky at google.com
Mon Oct 12 11:44:58 PDT 2009


2009/10/12 Dan Gohman <gohman at apple.com>

>
> On Oct 11, 2009, at 3:25 PM, Nick Lewycky wrote:
>
> > This patch adds memory use markers as described in
> http://nondot.org/sabre/LLVMNotes/MemoryUseMarkers.txt
> >  . The bulk of the patch makes it possible to have intrinsics which
> > return {}.
>
> Hi Nick,
>
> The use of {} here is clever, but I don't think it's correct. Since {}
> has
> no members, the set of values has exactly one element, which means
> that all values of type {} can be assumed to be equivalent. Please use
> something like opaque* instead.
>

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.

With @llvm.invariant.end being marked readonly and nounwind, and having
> a void return type, it would seem to be trivially dead everywhere.
> Should
> the readonly be removed?
>

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.

Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20091012/83a7a800/attachment.html>


More information about the llvm-commits mailing list