Skip to content

Instantly share code, notes, and snippets.

@wrozka
Created June 25, 2013 14:20
Show Gist options
  • Save wrozka/5858820 to your computer and use it in GitHub Desktop.
Save wrozka/5858820 to your computer and use it in GitHub Desktop.
rbx problem
use_call: ; preds = %check_serial, %ip7
store i32 8, i32* %ip_pos49, !dbg !34
%push_const_fast = call %"struct.rubinius::Object"* @rbx_push_const_fast(%"struct.rubinius::State"* %state, %"struct.rubinius::CallFrame"* %call_frame30, %"struct.rubinius::ConstantCache"** inttoptr (i32 180003772 to %"struct.rubinius::ConstantCache"**)) nounwind readonly, !dbg !34
%null_check957 = icmp eq %"struct.rubinius::Object"* %push_const_fast, null, !dbg !34
br i1 %null_check957, label %ret_null47, label %check_active956, !dbg !34
continue953: ; preds = %continue955, %use_cache
%constant = phi %"struct.rubinius::Object"* [ %cached_value, %use_cache ], [ %push_const_fast, %continue955 ], !dbg !34, !rbx-classid !63
%stack_pos958 = getelementptr %"struct.rubinius::Object"** %stack31, i32 1, !dbg !34
store %"struct.rubinius::Object"* %constant, %"struct.rubinius::Object"** %stack_pos958, !dbg !34
%code_pos = getelementptr %"struct.rubinius::CallFrame"* %call_frame30, i32 0, i32 3, !dbg !34
%code = load %"struct.rubinius::CompiledCode"** %code_pos, !dbg !34
%literals_pos = getelementptr %"struct.rubinius::CompiledCode"* %code, i32 0, i32 17, !dbg !34
%literals = load %"struct.rubinius::Tuple"** %literals_pos, !dbg !34
%literal_pos = getelementptr %"struct.rubinius::Tuple"* %literals, i32 0, i32 2, i32 1, !dbg !34
%literal = load %"struct.rubinius::Object"** %literal_pos, !dbg !34, !rbx-classid !64
%stack_pos959 = getelementptr %"struct.rubinius::Object"** %stack31, i32 2, !dbg !34
store %"struct.rubinius::Object"* %literal, %"struct.rubinius::Object"** %stack_pos959, !dbg !34
%stack_pos960 = getelementptr %"struct.rubinius::Object"** %stack31, i32 2, !dbg !34
%stack_load961 = load %"struct.rubinius::Object"** %stack_pos960, !dbg !34, !rbx-classid !64
%string_dup = call %"struct.rubinius::Object"* @rbx_string_dup(%"struct.rubinius::State"* %state, %"struct.rubinius::CallFrame"* %call_frame30, %"struct.rubinius::Object"* %stack_load961), !dbg !34, !rbx-classid !64
%null_check964 = icmp eq %"struct.rubinius::Object"* %string_dup, null, !dbg !34
br i1 %null_check964, label %ret_null47, label %check_active963, !dbg !34
continue955: ; preds = %check_active956
br label %continue953, !dbg !34
check_active956: ; preds = %use_call
br label %continue955, !dbg !34
continue962: ; preds = %check_active963
%stack_pos965 = getelementptr %"struct.rubinius::Object"** %stack31, i32 2, !dbg !34
store %"struct.rubinius::Object"* %string_dup, %"struct.rubinius::Object"** %stack_pos965, !dbg !34
%stack_pos966 = getelementptr %"struct.rubinius::Object"** %stack31, i32 0, !dbg !34
%stack_load967 = load %"struct.rubinius::Object"** %stack_pos966, !dbg !34, !rbx-classid !62
store %"struct.rubinius::Object"* %stack_load967, %"struct.rubinius::Object"** %out_args_recv51, !dbg !34
store %"struct.rubinius::Symbol"* inttoptr (i32 14078 to %"struct.rubinius::Symbol"*), %"struct.rubinius::Symbol"** %out_args_name50, !dbg !34
store %"struct.rubinius::Object"* inttoptr (i32 26 to %"struct.rubinius::Object"*), %"struct.rubinius::Object"** %out_args_block52, !dbg !34
store i32 2, i32* %out_args_total53, !dbg !34
store %"struct.rubinius::Tuple"* null, %"struct.rubinius::Tuple"** %out_args_container55, !dbg !34
%stack_pos968 = getelementptr %"struct.rubinius::Object"** %stack31, i32 1, !dbg !34
store %"struct.rubinius::Object"** %stack_pos968, %"struct.rubinius::Object"*** %out_args_arguments54, !dbg !34
%cache_const969 = load %"struct.rubinius::CallSite"** inttoptr (i32 180003796 to %"struct.rubinius::CallSite"**), !dbg !34
%execute_pos970 = getelementptr %"struct.rubinius::CallSite"* %cache_const969, i32 0, i32 2, !dbg !34
%execute971 = load %"struct.rubinius::Object"* (%"struct.rubinius::State"*, %"struct.rubinius::CallSite"*, %"struct.rubinius::CallFrame"*, %"struct.rubinius::Arguments"*)** %execute_pos970, !dbg !34
store i32 14, i32* %ip_pos49, !dbg !34
%call_site_execute972 = call %"struct.rubinius::Object"* %execute971(%"struct.rubinius::State"* %state, %"struct.rubinius::CallSite"* %cache_const969, %"struct.rubinius::CallFrame"* %call_frame30, %"struct.rubinius::Arguments"* %out_args), !dbg !34
%null_check975 = icmp eq %"struct.rubinius::Object"* %call_site_execute972, null, !dbg !34
br i1 %null_check975, label %ret_null47, label %check_active974, !dbg !34
check_active963: ; preds = %continue953
br label %continue962, !dbg !34
continue973: ; preds = %check_active974
%stack_pos976 = getelementptr %"struct.rubinius::Object"** %stack31, i32 0, !dbg !34
store %"struct.rubinius::Object"* %call_site_execute972, %"struct.rubinius::Object"** %stack_pos976, !dbg !34
br label %ip17, !dbg !34
return_pad22: ; preds = %serial_fallback841, %class_fallback840, %serial_fallback707, %class_fallback706, %serial_fallback579, %serial_fallback506, %serial_fallback345, %class_fallback344, %ip107, %serial_fallback88, %class_fallback87, %ret_raise_val46, %ret_null47
%return_phi23 = phi %"struct.rubinius::Object"* [ null, %ret_null47 ], [ %crv48, %ret_raise_val46 ], [ %36, %class_fallback87 ], [ %37, %serial_fallback88 ], [ %stack_load317, %ip107 ], [ %69, %class_fallback344 ], [ %68, %serial_fallback345 ], [ %90, %serial_fallback506 ], [ %95, %serial_fallback579 ], [ %104, %class_fallback706 ], [ %105, %serial_fallback707 ], [ %125, %class_fallback840 ], [ %126, %serial_fallback841 ]
%null_check979 = icmp eq %"struct.rubinius::Object"* %return_phi23, null, !dbg !31
br i1 %null_check979, label %ret_null, label %check_active978, !dbg !31
check_active974: ; preds = %continue962
br label %continue973, !dbg !34
continue977: ; preds = %check_active978
%stack_pos980 = getelementptr %"struct.rubinius::Object"** %stack, i32 0, !dbg !31
store %"struct.rubinius::Object"* %return_phi23, %"struct.rubinius::Object"** %stack_pos980, !dbg !31
br label %continue10, !dbg !31
check_active978: ; preds = %return_pad22
br label %continue977, !dbg !31
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment