[cfe-dev] Why extra 4 bytes on stack ???
Umesh Kalappa
umesh.kalappa0 at gmail.com
Thu Feb 2 03:48:55 PST 2012
Hi There ,
I'm new to Clang and please pardon me ..if you guys feel that ,the
below question is very basic :)
Here i go ,compiled the below sample with clang i.e *clang enum.c -S
-emit-llvm* and respective files are
$ cat enum.c
int main()
{
enum type{one=1,two,three} s;
s = one;
return s;
}
$ cat enum.s
; ModuleID = 'enum.c'
target datalayout =
"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S32"
target triple = "i386-pc-cygwin"
define i32 @main() nounwind {
%1 = alloca i32, align 4
%s = alloca i32, align 4
store i32 0, i32* %1
store i32 1, i32* %s, align 4
%2 = load i32* %s, align 4
ret i32 %2
}
*Question :* Why there is extra 4 bytes on stack i.e *"%1 = alloca i32,
align 4"* ???
Note : Please note that the LLVM transformation will free away those extra
space ,But still like to know why Clang at first shot introduces those
extra spaces ??
Thanks
~Umesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20120202/11025a3e/attachment.html>
More information about the cfe-dev
mailing list