[llvm-commits] [patch] Add an unnamed_addr attribute
Rafael Ávila de Espíndola
rafael.espindola at gmail.com
Sat Jan 8 10:55:01 CST 2011
> This patch looks great except for:
>> non constant globals are not allowed to have unnamed_addr since I couldn't figure out any use for it.
> I also can't figure out any use for it in C, but I don't think that the verifier should reject this. The property is orthogonal from immutability.
> Here's a contrived example where it could be useful: imagine a language that doesn't have pointer comparisons: in that language the frontend could mark all globals as unnamed_addr, regardless of whether they are const or not. If the optimizer realizes later that there are no stores to a global, it could be marked const, and then (because it has the attr) merged with other constant globals.
> Does that make any sense?
Yes, it is a very good point. I changed the patch to accept regular
globals with the unnamed_addr attribute, updated the documentation and
Having clang produce it in simple cases is next.
More information about the llvm-commits