[LLVMdev] LLVM-GCC & GV zeroinitializers, 2.5 vs 2.6.
Samuel Crow
samuraileumas at yahoo.com
Thu Sep 10 20:10:00 PDT 2009
Hello Julien,
I think the reason for the change was because there is processor context information stored in the type in 2.6. The reason it's there is to support multicore JIT architecture.
--Sam
----- Original Message ----
> From: Julien Lerouge <jlerouge at apple.com>
> To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu>
> Sent: Thursday, September 10, 2009 7:55:37 PM
> Subject: [LLVMdev] LLVM-GCC & GV zeroinitializers, 2.5 vs 2.6.
>
> Hello folks,
>
> I have a small piece of C code written like this:
>
> typedef struct {
> char a;
> int b;
> int c;
> } foo;
>
> foo myFoo[5] = {{0}};
>
> With llvm-gcc 2.5, I get the following IR:
>
> %struct.foo = type { i8, i32, i32 }
> @myFoo = global [5 x %struct.foo] zeroinitializer, align 32
>
> With the current 2.6, I get this:
>
> %0 = type { i8, [11 x i8] }
> %struct.foo = type { i8, i32, i32 }
> @myFoo = global [5 x %0] zeroinitializer, align 32
>
> Is there any reason for the change ? It is weird that in the end, with
> 2.6 myFoo doesn't have the [5 x %struct.foo]* type.
>
> Thanks,
> Julien
>
> --
> Julien Lerouge
> PGP Key Id: 0xB1964A62
> PGP Fingerprint: 392D 4BAD DB8B CE7F 4E5F FA3C 62DB 4AA7 B196 4A62
> PGP Public Key from: keyserver.pgp.com
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list