Created
February 21, 2017 15:18
-
-
Save rhysd/f989641614104bb914e125b2eee7e6bd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'foo.c' | |
source_filename = "foo.c" | |
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-apple-macosx10.12.0" | |
@.str = private unnamed_addr constant [13 x i8] c"hello, world\00", align 1 | |
; Function Attrs: nounwind ssp uwtable | |
define i32 @main() #0 { | |
%1 = alloca i32, align 4 | |
store i32 0, i32* %1, align 4 | |
%2 = call i32 (i8*, ...) bitcast (i32 (...)* @puts to i32 (i8*, ...)*)(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i32 0, i32 0)) | |
ret i32 0 | |
} | |
declare i32 @puts(...) #1 | |
attributes #0 = { nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #1 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
!llvm.module.flags = !{!0} | |
!llvm.ident = !{!1} | |
!0 = !{i32 1, !"PIC Level", i32 2} | |
!1 = !{!"Apple LLVM version 8.0.0 (clang-800.0.42.1)"} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | | |
; ModuleID = 'foo.ll' | |
source_filename = "foo.c" | |
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-apple-macosx10.12.0" | |
@.str = private unnamed_addr constant [13 x i8] c"hello, world\00", align 1 | |
; Function Attrs: nounwind ssp uwtable | |
define i32 @main() #0 { | |
%1 = alloca i32, align 4 | |
store i32 0, i32* %1, align 4 | |
%2 = call i32 (i8*, ...) bitcast (i32 (...)* @puts to i32 (i8*, ...)*)(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i32 0, i32 0)) | |
ret i32 0 | |
} | |
declare i32 @puts(...) #1 | |
; Function Attrs: nounwind | |
declare void @llvm.stackprotector(i8*, i8**) #2 | |
attributes #0 = { nounwind ssp uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #1 = { "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3" "unsafe-fp-math"="false" "use-soft-float"="false" } | |
attributes #2 = { nounwind } | |
!llvm.module.flags = !{!0} | |
!llvm.ident = !{!1} | |
!0 = !{i32 1, !"PIC Level", i32 2} | |
!1 = !{!"Apple LLVM version 8.0.0 (clang-800.0.42.1)"} | |
... | |
--- | |
name: main | |
alignment: 4 | |
exposesReturnsTwice: false | |
legalized: false | |
regBankSelected: false | |
selected: false | |
tracksRegLiveness: true | |
calleeSavedRegisters: [ '%bh', '%bl', '%bp', '%bpl', '%bx', '%ebp', '%ebx', | |
'%rbp', '%rbx', '%r12', '%r13', '%r14', '%r15', | |
'%r12b', '%r13b', '%r14b', '%r15b', '%r12d', '%r13d', | |
'%r14d', '%r15d', '%r12w', '%r13w', '%r14w', '%r15w' ] | |
frameInfo: | |
isFrameAddressTaken: false | |
isReturnAddressTaken: false | |
hasStackMap: false | |
hasPatchPoint: false | |
stackSize: 24 | |
offsetAdjustment: -16 | |
maxAlignment: 4 | |
adjustsStack: true | |
hasCalls: true | |
maxCallFrameSize: 0 | |
hasOpaqueSPAdjustment: false | |
hasVAStart: false | |
hasMustTailInVarArgFunc: false | |
fixedStack: | |
- { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16 } | |
stack: | |
- { id: 0, name: '<unnamed alloca>', offset: -20, size: 4, alignment: 4 } | |
body: | | |
bb.0 (%ir-block.0): | |
liveins: %rbp | |
frame-setup PUSH64r killed %rbp, implicit-def %rsp, implicit %rsp | |
CFI_INSTRUCTION def_cfa_offset 16 | |
CFI_INSTRUCTION offset %rbp, -16 | |
%rbp = frame-setup MOV64rr %rsp | |
CFI_INSTRUCTION def_cfa_register %rbp | |
%rsp = frame-setup SUB64ri8 %rsp, 16, implicit-def dead %eflags | |
MOV32mi %rbp, 1, _, -4, _, 0 :: (store 4 into %ir.1) | |
%rdi = LEA64r %rip, 1, _, @.str, _ | |
dead %eax = MOV32r0 implicit-def dead %eflags, implicit-def %al | |
CALL64pcrel32 @puts, csr_64, implicit %rsp, implicit %rdi, implicit killed %al, implicit-def %rsp, implicit-def dead %eax | |
%eax = MOV32r0 implicit-def dead %eflags | |
%rsp = ADD64ri8 %rsp, 16, implicit-def dead %eflags | |
%rbp = POP64r implicit-def %rsp, implicit %rsp | |
RET 0, killed %eax | |
... |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment