Created
September 8, 2016 00:06
-
-
Save paniq/cba1d412ac68d413dec63d35d6b60a5c 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
# input | |
let puts | |
external "puts" | |
cdecl int (rawstring) | |
puts "hello world!\n" | |
# generated IL module | |
main_entry: | |
%0 = const_type_pointer void : (pointer Type) | |
%1 = const_type_pointer null : (pointer Type) | |
%2 = const_type_pointer real16 : (pointer Type) | |
%3 = const_type_pointer real32 : (pointer Type) | |
%4 = const_type_pointer real64 : (pointer Type) | |
%5 = const_type_pointer uint1 : (pointer Type) | |
%6 = const_type_pointer int8 : (pointer Type) | |
%7 = const_type_pointer int16 : (pointer Type) | |
%8 = const_type_pointer int32 : (pointer Type) | |
%9 = const_type_pointer int64 : (pointer Type) | |
%10 = const_type_pointer uint8 : (pointer Type) | |
%11 = const_type_pointer uint16 : (pointer Type) | |
%12 = const_type_pointer uint32 : (pointer Type) | |
%13 = const_type_pointer uint64 : (pointer Type) | |
%14 = const_type_pointer uint64 : (pointer Type) | |
%15 = const_type_pointer (pointer int8) : (pointer Type) | |
%16 = const_integer 0 : uint1 | |
%17 = const_integer 1 : uint1 | |
%18 = const_string "puts" : (array int8 5) | |
%19 = cdecl %8 (%15) : (pointer Type) | |
%20 = external %18 -> %19 : any | |
%21 = const_string "hello world!\n" : (array int8 14) | |
%22 = call %20 %21 : any | |
# after solver pass | |
main_entry: | |
%0 = const_type_pointer void : (pointer Type) | |
%1 = const_type_pointer null : (pointer Type) | |
%2 = const_type_pointer real16 : (pointer Type) | |
%3 = const_type_pointer real32 : (pointer Type) | |
%4 = const_type_pointer real64 : (pointer Type) | |
%5 = const_type_pointer uint1 : (pointer Type) | |
%6 = const_type_pointer int8 : (pointer Type) | |
%7 = const_type_pointer int16 : (pointer Type) | |
%8 = const_type_pointer int32 : (pointer Type) | |
%9 = const_type_pointer int64 : (pointer Type) | |
%10 = const_type_pointer uint8 : (pointer Type) | |
%11 = const_type_pointer uint16 : (pointer Type) | |
%12 = const_type_pointer uint32 : (pointer Type) | |
%13 = const_type_pointer uint64 : (pointer Type) | |
%14 = const_type_pointer uint64 : (pointer Type) | |
%15 = const_type_pointer (pointer int8) : (pointer Type) | |
%16 = const_integer 0 : uint1 | |
%17 = const_integer 1 : uint1 | |
%18 = const_string "puts" : (array int8 5) | |
%19 = const_type_pointer (cdecl int32 ((pointer int8))) : (pointer Type) | |
%20 = external %18 -> %19 : (pointer (cdecl int32 ((pointer int8)))) | |
%21 = const_string "hello world!\n" : (array int8 14) | |
%22 = call %20 %21 : int32 | |
# generated LLVM module | |
; ModuleID = 'main' | |
declare i32 @puts(i8*) | |
define void @main() { | |
%1 = call i32 @puts([14 x i8] c"hello world!\0A\00") | |
ret void | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment