hello

Created Diff never expires
63 removals
Lines
Total124
Removed-37.1%46
Words
Total655
Removed-14.4%94
124 lines
68 additions
Lines
Total127
Added+40.2%51
Words
Total690
Added+18.7%129
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
}
}