hello

Created Diff never expires
63 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
124 lines
68 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
127 lines
define ptr @__crystal_main(i32 %argc, ptr %argv) {
define %"(Int32 | String)" @__crystal_main(i32 %argc, ptr %argv) {
alloca:
alloca:
%0 = alloca %"->", align 8
%0 = alloca %"->", align 8
%1 = alloca %"Slice(UInt64)", align 8
%1 = alloca %"Slice(UInt64)", align 8
%2 = alloca %"Slice(UInt8)", align 8
%2 = alloca %"Slice(UInt8)", align 8
%3 = alloca %"(Int32 | String)", align 8
br label %entry
br label %entry


entry:
entry:
store i32 %argc, ptr @ARGC_UNSAFE, align 4
store i32 %argc, ptr @ARGC_UNSAFE, align 4
store ptr %argv, ptr @ARGV_UNSAFE, align 8
store ptr %argv, ptr @ARGV_UNSAFE, align 8
store ptr @"'dacd97bcc'", ptr @"Crystal::BUILD_COMMIT", align 8
store ptr @"'dacd97bcc'", ptr @"Crystal::BUILD_COMMIT", align 8
store ptr @"'2024-10-09'", ptr @"Crystal::BUILD_DATE", align 8
store ptr @"'2024-10-09'", ptr @"Crystal::BUILD_DATE", align 8
store ptr @"'/app/.cache/crystal...'", ptr @"Crystal::CACHE_DIR", align 8
store ptr @"'/app/.cache/crystal...'", ptr @"Crystal::CACHE_DIR", align 8
store ptr @"'$ORIGIN/../share/cr...'", ptr @"Crystal::DEFAULT_PATH", align 8
store ptr @"'$ORIGIN/../share/cr...'", ptr @"Crystal::DEFAULT_PATH", align 8
store ptr @"'Crystal 1.14.0 [dac...'", ptr @"Crystal::DESCRIPTION", align 8
store ptr @"'Crystal 1.14.0 [dac...'", ptr @"Crystal::DESCRIPTION", align 8
store ptr @"'lib:/opt/compiler-e...'", ptr @"Crystal::PATH", align 8
store ptr @"'lib:/opt/compiler-e...'", ptr @"Crystal::PATH", align 8
store ptr @"'/opt/compiler-explo...'", ptr @"Crystal::LIBRARY_PATH", align 8
store ptr @"'/opt/compiler-explo...'", ptr @"Crystal::LIBRARY_PATH", align 8
store ptr @"'1.14.0'", ptr @"Crystal::VERSION", align 8
store ptr @"'1.14.0'", ptr @"Crystal::VERSION", align 8
store ptr @"'18.1.6'", ptr @"Crystal::LLVM_VERSION", align 8
store ptr @"'18.1.6'", ptr @"Crystal::LLVM_VERSION", align 8
store ptr @"'x86_64-unknown-linu...'", ptr @"Crystal::HOST_TRIPLE", align 8
store ptr @"'x86_64-unknown-linu...'", ptr @"Crystal::HOST_TRIPLE", align 8
store ptr @"'x86_64-unknown-linu...'", ptr @"Crystal::TARGET_TRIPLE", align 8
store ptr @"'x86_64-unknown-linu...'", ptr @"Crystal::TARGET_TRIPLE", align 8
%3 = call ptr @__crystal_once_init()
%4 = call ptr @__crystal_once_init()
store ptr %3, ptr @"~ONCE_STATE", align 8
store ptr %4, ptr @"~ONCE_STATE", align 8
call void @"~Crystal::ELF::MAGIC:const_init"()
call void @"~Crystal::ELF::MAGIC:const_init"()
call void @"*Exception::CallStack::skip<String>:Nil"(ptr @"'/opt/compiler-explo...'.2")
call void @"*Exception::CallStack::skip<String>:Nil"(ptr @"'/opt/compiler-explo...'.2")
call void @"~Exception::CallStack::CURRENT_DIR:const_init"()
call void @"~Exception::CallStack::CURRENT_DIR:const_init"()
%4 = load ptr, ptr @"~ONCE_STATE", align 8
%5 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %4, ptr @"Exception::CallStack::skip:init", ptr @"~Exception::CallStack::skip:init")
call void @__crystal_once(ptr %5, ptr @"Exception::CallStack::skip:init", ptr @"~Exception::CallStack::skip:init")
call void @"*Exception::CallStack::skip<String>:Nil"(ptr @"'/opt/compiler-explo...'.4")
call void @"*Exception::CallStack::skip<String>:Nil"(ptr @"'/opt/compiler-explo...'.4")
call void @"~Exception::CallStack::empty:init"()
call void @"~Exception::CallStack::empty:init"()
call void @"*Exception::CallStack::skip<String>:Nil"(ptr @"'/opt/compiler-explo...'.5")
call void @"*Exception::CallStack::skip<String>:Nil"(ptr @"'/opt/compiler-explo...'.5")
call void @"~Iterator::Stop::INSTANCE:const_init"()
call void @"~Iterator::Stop::INSTANCE:const_init"()
call void @"~LibC::SIG_DFL:const_init"()
call void @"~LibC::SIG_DFL:const_init"()
call void @"~LibC::SIG_IGN:const_init"()
call void @"~LibC::SIG_IGN:const_init"()
call void @"~String::CHAR_TO_DIGIT:const_init"()
call void @"~String::CHAR_TO_DIGIT:const_init"()
call void @"~String::CHAR_TO_DIGIT62:const_init"()
call void @"~String::CHAR_TO_DIGIT62:const_init"()
call void @"~LibC::MAP_FAILED:const_init"()
call void @"~LibC::MAP_FAILED:const_init"()
%5 = load ptr, ptr @"~ONCE_STATE", align 8
%6 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %5, ptr @"Process::INITIAL_PWD:const_init", ptr @"~Process::INITIAL_PWD:const_init")
call void @__crystal_once(ptr %6, ptr @"Process::INITIAL_PWD:const_init", ptr @"~Process::INITIAL_PWD:const_init")
call void @"~File::DEFAULT_CREATE_PERMISSIONS:const_init"()
call void @"~File::DEFAULT_CREATE_PERMISSIONS:const_init"()
%6 = getelementptr inbounds %"->", ptr %0, i32 0, i32 0
%7 = getelementptr inbounds %"->", ptr %0, i32 0, i32 0
store ptr @"~procProc(Nil)@/opt/compiler-explorer/crystal-1.14.0/share/crystal/src/gc/boehm.cr:459", ptr %6, align 8
store ptr @"~procProc(Nil)@/opt/compiler-explorer/crystal-1.14.0/share/crystal/src/gc/boehm.cr:459", ptr %7, align 8
%7 = getelementptr inbounds %"->", ptr %0, i32 0, i32 1
%8 = getelementptr inbounds %"->", ptr %0, i32 0, i32 1
store ptr null, ptr %7, align 8
store ptr null, ptr %8, align 8
%8 = load %"->", ptr %0, align 8
%9 = load %"->", ptr %0, align 8
call void @"*GC::before_collect<&Proc(Nil)>:Nil"(%"->" %8)
call void @"*GC::before_collect<&Proc(Nil)>:Nil"(%"->" %9)
%9 = call %"Slice(UInt64)" @"*StaticArray(UInt64, 2)@StaticArray(T, N)#to_slice:Slice(UInt64)"(ptr @"Crystal::Hasher::seed")
%10 = call %"Slice(UInt64)" @"*StaticArray(UInt64, 2)@StaticArray(T, N)#to_slice:Slice(UInt64)"(ptr @"Crystal::Hasher::seed")
store %"Slice(UInt64)" %9, ptr %1, align 8
store %"Slice(UInt64)" %10, ptr %1, align 8
%10 = call %"Slice(UInt8)" @"*Slice(UInt64)@Slice(T)#to_unsafe_bytes:Slice(UInt8)"(ptr %1)
%11 = call %"Slice(UInt8)" @"*Slice(UInt64)@Slice(T)#to_unsafe_bytes:Slice(UInt8)"(ptr %1)
store %"Slice(UInt8)" %10, ptr %2, align 8
store %"Slice(UInt8)" %11, ptr %2, align 8
%11 = load %"Slice(UInt8)", ptr %2, align 8
%12 = load %"Slice(UInt8)", ptr %2, align 8
call void @"*Crystal::System::Random::random_bytes<Slice(UInt8)>:Nil"(%"Slice(UInt8)" %11)
call void @"*Crystal::System::Random::random_bytes<Slice(UInt8)>:Nil"(%"Slice(UInt8)" %12)
call void @"~Int128::MIN:const_init"()
call void @"~Int128::MIN:const_init"()
call void @"~Int128::MAX:const_init"()
call void @"~Int128::MAX:const_init"()
call void @"~UInt128::MIN:const_init"()
call void @"~UInt128::MIN:const_init"()
call void @"~UInt128::MAX:const_init"()
call void @"~UInt128::MAX:const_init"()
%12 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %12, ptr @"STDOUT:const_init", ptr @"~STDOUT:const_init")
%13 = load ptr, ptr @"~ONCE_STATE", align 8
%13 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %13, ptr @"STDERR:const_init", ptr @"~STDERR:const_init")
call void @__crystal_once(ptr %13, ptr @"STDOUT:const_init", ptr @"~STDOUT:const_init")
%14 = call ptr @"*ENV::[]?<String>:(String | Nil)"(ptr @"'CRYSTAL_LOAD_DEBUG_...'")
%14 = load ptr, ptr @"~ONCE_STATE", align 8
%15 = icmp eq ptr %14, null
call void @__crystal_once(ptr %14, ptr @"STDERR:const_init", ptr @"~STDERR:const_init")
%16 = select i1 %15, i32 0, i32 1
%15 = call ptr @"*ENV::[]?<String>:(String | Nil)"(ptr @"'CRYSTAL_LOAD_DEBUG_...'")
%17 = icmp eq i32 0, %16
%16 = icmp eq ptr %15, null
%18 = and i1 %17, true
%17 = select i1 %16, i32 0, i32 1
br i1 %18, label %current_def, label %next_def
%18 = icmp eq i32 0, %17
%19 = and i1 %18, true
br i1 %19, label %current_def, label %next_def


then:
then:
call void @"*Exception::CallStack::load_debug_info:Nil"()
call void @"*Exception::CallStack::load_debug_info:Nil"()
br label %exit3
br label %exit3


else:
else:
br label %exit3
br label %exit3


current_def:
current_def:
br label %exit
br label %exit


next_def:
next_def:
%19 = icmp eq i32 1, %16
%20 = icmp eq i32 1, %17
%20 = and i1 %19, true
%21 = and i1 %20, true
br i1 %20, label %current_def1, label %next_def2
br i1 %21, label %current_def1, label %next_def2


exit:
exit:
%21 = phi i1 [ false, %current_def ], [ %22, %current_def1 ]
%22 = phi i1 [ false, %current_def ], [ %23, %current_def1 ]
br i1 %21, label %then, label %else
br i1 %22, label %then, label %else


current_def1:
current_def1:
%22 = call i1 @"*String#==<String>:Bool"(ptr %14, ptr @"'1'")
%23 = call i1 @"*String#==<String>:Bool"(ptr %15, ptr @"'1'")
br label %exit
br label %exit


next_def2:
next_def2:
unreachable
unreachable


exit3:
exit3:
%23 = call %"(Int32 | Nil)" @"*Exception::CallStack::setup_crash_handler:(Int32 | Nil)"()
%24 = call %"(Int32 | Nil)" @"*Exception::CallStack::setup_crash_handler:(Int32 | Nil)"()
call void @"*Crystal::Scheduler::init:Nil"()
call void @"*Crystal::Scheduler::init:Nil"()
call void @"*Crystal::System::Signal::setup_default_handlers:Nil"()
call void @"*Crystal::System::Signal::setup_default_handlers:Nil"()
call void @"*Exception::CallStack::skip<String>:Nil"(ptr @"'/opt/compiler-explo...'.27")
call void @"*Exception::CallStack::skip<String>:Nil"(ptr @"'/opt/compiler-explo...'.27")
call void @"~Reference::ExecRecursive::exec_recursive:init"()
call void @"~Reference::ExecRecursive::exec_recursive:init"()
call void @"~Reference::ExecRecursiveClone::exec_recursive:init"()
call void @"~Reference::ExecRecursiveClone::exec_recursive:init"()
%24 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %24, ptr @"Crystal::System::Signal::pipe:init", ptr @"~Crystal::System::Signal::pipe:init")
%25 = load ptr, ptr @"~ONCE_STATE", align 8
%25 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %25, ptr @"Crystal::System::Signal::handlers:init", ptr @"~Crystal::System::Signal::handlers:init")
call void @__crystal_once(ptr %25, ptr @"Crystal::System::Signal::pipe:init", ptr @"~Crystal::System::Signal::pipe:init")
%26 = load ptr, ptr @"~ONCE_STATE", align 8
%26 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %26, ptr @"Crystal::System::Signal::sigset:init", ptr @"~Crystal::System::Signal::sigset:init")
call void @__crystal_once(ptr %26, ptr @"Crystal::System::Signal::handlers:init", ptr @"~Crystal::System::Signal::handlers:init")
%27 = load ptr, ptr @"~ONCE_STATE", align 8
%27 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %27, ptr @"Crystal::System::Signal::mutex:init", ptr @"~Crystal::System::Signal::mutex:init")
call void @__crystal_once(ptr %27, ptr @"Crystal::System::Signal::sigset:init", ptr @"~Crystal::System::Signal::sigset:init")
%28 = load ptr, ptr @"~ONCE_STATE", align 8
%28 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %28, ptr @"Crystal::System::Signal::setup_default_handlers:init", ptr @"~Crystal::System::Signal::setup_default_handlers:init")
call void @__crystal_once(ptr %28, ptr @"Crystal::System::Signal::mutex:init", ptr @"~Crystal::System::Signal::mutex:init")
%29 = load ptr, ptr @"~ONCE_STATE", align 8
%29 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %29, ptr @"Crystal::System::Signal::setup_segfault_handler:init", ptr @"~Crystal::System::Signal::setup_segfault_handler:init")
call void @__crystal_once(ptr %29, ptr @"Crystal::System::Signal::setup_default_handlers:init", ptr @"~Crystal::System::Signal::setup_default_handlers:init")
%30 = load ptr, ptr @"~ONCE_STATE", align 8
%30 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %30, ptr @"Crystal::System::Signal::segfault_handler:init", ptr @"~Crystal::System::Signal::segfault_handler:init")
call void @__crystal_once(ptr %30, ptr @"Crystal::System::Signal::setup_segfault_handler:init", ptr @"~Crystal::System::Signal::setup_segfault_handler:init")
%31 = load ptr, ptr @"~ONCE_STATE", align 8
%31 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %31, ptr @"Crystal::System::SignalChildHandler::pending:init", ptr @"~Crystal::System::SignalChildHandler::pending:init")
call void @__crystal_once(ptr %31, ptr @"Crystal::System::Signal::segfault_handler:init", ptr @"~Crystal::System::Signal::segfault_handler:init")
%32 = load ptr, ptr @"~ONCE_STATE", align 8
%32 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %32, ptr @"Crystal::System::SignalChildHandler::waiting:init", ptr @"~Crystal::System::SignalChildHandler::waiting:init")
call void @__crystal_once(ptr %32, ptr @"Crystal::System::SignalChildHandler::pending:init", ptr @"~Crystal::System::SignalChildHandler::pending:init")
%33 = load ptr, ptr @"~ONCE_STATE", align 8
%33 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %33, ptr @"Crystal::System::SignalChildHandler::mutex:init", ptr @"~Crystal::System::SignalChildHandler::mutex:init")
call void @__crystal_once(ptr %33, ptr @"Crystal::System::SignalChildHandler::waiting:init", ptr @"~Crystal::System::SignalChildHandler::waiting:init")
%34 = load ptr, ptr @"~ONCE_STATE", align 8
call void @__crystal_once(ptr %34, ptr @"Crystal::System::SignalChildHandler::mutex:init", ptr @"~Crystal::System::SignalChildHandler::mutex:init")
call void @"~Time::Location::location_cache:init"()
call void @"~Time::Location::location_cache:init"()
%34 = call ptr @"*hello<String>:String"(ptr @"'hello world'")
%35 = call %"(Int32 | String)" @"*hello<String>:(Int32 | String)"(ptr @"'hello world'")
ret ptr %34
store %"(Int32 | String)" %35, ptr %3, align 8
%36 = load %"(Int32 | String)", ptr %3, align 8
ret %"(Int32 | String)" %36
}
}