It is used to indicate the fact the var decl needs to have a memory home (addressable) -- is there another way to do this? this is to avoid the following situation:
1) after SRA before update SSA, the IR looks like: MEM[.... &SR_123] = ... other_var = SR_123; <---- (x) In this case, SR_123 is not of aggregate type, and it is not addressable, update_ssa won't assign a VUSE for (x), leading to 2) final IR after SRA: MEM[..., &SR_123] = .. other_var = SR_123_yyy(D); David On Mon, Jun 20, 2011 at 4:13 AM, Richard Guenther <richard.guent...@gmail.com> wrote: > On Sat, Jun 18, 2011 at 10:56 AM, Xinliang David Li <davi...@google.com> > wrote: >> Compiling the test case in the patch with -O2 -m32 without the fix, >> the program will abort. The problem is a var decl whose address is >> taken is not marked as addressable leading to bad SSA update (missing >> VUSE). (the triaging used the the .after and .after_cleanup dump diff >> and found the problem). >> >> the test is on going. Ok after testing? > > That doesn't make sense. SRA shouldn't generate anything that has > its address taken. So, where do we take its address? > > Richard. > >> Thanks, >> >> David >> >