[LLVMdev] clang promoting local to global

Ryan Taylor
Wed, 15 Aug 2012 21:57:22 -0000

#define r10(p,q,r,s) 0x##s##r##q##p
   #undef r
   #define r r10
    const word it_tab[4][256] = { r(const, const, const, const),
r(.......), r(.......) ....... };

All of this is done inside the function I want the alloc in. The variable
is not declared/defined/used anywhere else.



On Wed, Aug 15, 2012 at 12:00 PM, Eli Friedman <eli.friedman at
gmail.com>wrote:

> On Wed, Aug 15, 2012 at 11:40 AM, Ryan Taylor <ryta1203 at gmail.com>
wrote:
> > Eli, thanks for responding, unfortunately, this did not resolve my
issue.
> > It's a locally allocated array in the C code, but I'm not
seeing any
> alloca
> > in the IR just geps from the variable, which is never setup.
>
> That's strange; I just checked, and -fno-merge-all-constants
> definitely does have an effect for a simple testcase like the
> following (just using clang -emit-llvm at -O0):
>
> void f() { const int x[5] = {1,2,3,4}; }
>
> What does your testcase look like?
>
> -Eli
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20120815/43b7fbcc/attachment.html>