Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Args: ../llvm-build/bin/llc -march epiphany -mcpu E16 -O0 -filetype obj main.ll -o main.o -debug -asm-show-inst -print-after-all -mc-relax-all
- Features:
- CPU:E16
- *** IR Dump After Pre-ISel Intrinsic Lowering ***; ModuleID = 'main.ll'
- source_filename = "main.ll"
- target datalayout = "e-p:32:32-i8:8:16-i16:16-i64:64-f32:32-f64:64-n32-S64"
- target triple = "x86_64-pc-linux-gnu"
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- attributes #0 = { nounwind 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"="E16" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
- !llvm.ident = !{!0}
- !0 = !{!"clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)"}
- *** IR Dump After Module Verifier ***
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- *** IR Dump After Lower Garbage Collection Instructions ***
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- *** IR Dump After Shadow Stack GC Lowering ***
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- *** IR Dump After Remove unreachable blocks from the CFG ***
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- *** IR Dump After Rewrite Symbols ***; ModuleID = 'main.ll'
- source_filename = "main.ll"
- target datalayout = "e-p:32:32-i8:8:16-i16:16-i64:64-f32:32-f64:64-n32-S64"
- target triple = "x86_64-pc-linux-gnu"
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- attributes #0 = { nounwind 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"="E16" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
- !llvm.ident = !{!0}
- !0 = !{!"clang version 3.8.0-2ubuntu4 (tags/RELEASE_380/final)"}
- *** IR Dump After Exception handling preparation ***
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- [SafeStack] Function: main
- [SafeStack] safestack is not requested for this function
- *** IR Dump After Safe Stack instrumentation pass ***
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- *** IR Dump After Module Verifier ***
- ; Function Attrs: nounwind uwtable
- define i32 @main() #0 {
- %1 = alloca i32, align 4
- %a = alloca i32, align 4
- store i32 0, i32* %1, align 4
- store i32 1, i32* %a, align 4
- %2 = load i32, i32* %a, align 4
- %3 = icmp sgt i32 %2, 3
- br i1 %3, label %4, label %5
- ; <label>:4: ; preds = %0
- store i32 1, i32* %1, align 4
- br label %6
- ; <label>:5: ; preds = %0
- store i32 0, i32* %1, align 4
- br label %6
- ; <label>:6: ; preds = %5, %4
- %7 = load i32, i32* %1, align 4
- ret i32 %7
- }
- === main
- Initial selection DAG: BB#0 'main:'
- SelectionDAG has 18 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- t8: i32,ch = load<LD4[%a]> t7, FrameIndex:i32<1>, undef:i32
- t11: i1 = setcc t8, Constant:i32<3>, setgt:ch
- t13: i1 = xor t11, Constant:i1<-1>
- t15: ch = brcond t7, t13, BasicBlock:ch< 0x3c68c68>
- t17: ch = br t15, BasicBlock:ch< 0x3c68bb8>
- Combining: t17: ch = br t15, BasicBlock:ch< 0x3c68bb8>
- Combining: t16: ch = BasicBlock< 0x3c68bb8>
- Combining: t15: ch = brcond t7, t13, BasicBlock:ch< 0x3c68c68>
- Combining: t14: ch = BasicBlock< 0x3c68c68>
- Combining: t13: i1 = xor t11, Constant:i1<-1>
- ... into: t19: i1 = setcc t8, Constant:i32<3>, setle:ch
- Combining: t15: ch = brcond t7, t19, BasicBlock:ch< 0x3c68c68>
- ... into: t20: ch = br_cc t7, setle:ch, t8, Constant:i32<3>, BasicBlock:ch< 0x3c68c68>
- Combining: t18: ch = setle
- Combining: t14: ch = BasicBlock< 0x3c68c68>
- Combining: t17: ch = br t20, BasicBlock:ch< 0x3c68bb8>
- Combining: t20: ch = br_cc t7, setle:ch, t8, Constant:i32<3>, BasicBlock:ch< 0x3c68c68>
- ... into: t24: ch = br_cc t7, setlt:ch, t8, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- Combining: t14: ch = BasicBlock< 0x3c68c68>
- Combining: t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Combining: t24: ch = br_cc t7, setlt:ch, t8, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- Combining: t21: i32 = Constant<4>
- Combining: t22: ch = setlt
- Combining: t21: i32 = Constant<4>
- Combining: t22: ch = setlt
- Combining: t8: i32,ch = load<LD4[%a]> t7, FrameIndex:i32<1>, undef:i32
- Replacing.1 t8: i32,ch = load<LD4[%a]> t7, FrameIndex:i32<1>, undef:i32
- With: t5: i32 = Constant<1>
- and 1 other values
- Combining: t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- Combining: t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- Combining: t6: i32 = FrameIndex<1>
- Combining: t5: i32 = Constant<1>
- Combining: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Combining: t3: i32 = undef
- Combining: t2: i32 = FrameIndex<0>
- Combining: t1: i32 = Constant<0>
- Combining: t0: ch = EntryToken
- Optimized lowered selection DAG: BB#0 'main:'
- SelectionDAG has 14 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Legally typed node: t22: ch = setlt
- Legally typed node: t21: i32 = Constant<4>
- Legally typed node: t16: ch = BasicBlock< 0x3c68bb8>
- Legally typed node: t14: ch = BasicBlock< 0x3c68c68>
- Legally typed node: t6: i32 = FrameIndex<1>
- Legally typed node: t5: i32 = Constant<1>
- Legally typed node: t3: i32 = undef
- Legally typed node: t2: i32 = FrameIndex<0>
- Legally typed node: t1: i32 = Constant<0>
- Legally typed node: t0: ch = EntryToken
- Legally typed node: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Legally typed node: t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- Legally typed node: t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- Legally typed node: t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Legally typed node: t65535: ch = handlenode t17
- Type-legalized selection DAG: BB#0 'main:'
- SelectionDAG has 14 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Legalizing: t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Legalizing: t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- Legalizing: t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- Legalizing: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Legalizing: t22: ch = setlt
- Legalizing: t21: i32 = Constant<4>
- Legalizing: t16: ch = BasicBlock< 0x3c68bb8>
- Legalizing: t14: ch = BasicBlock< 0x3c68c68>
- Legalizing: t6: i32 = FrameIndex<1>
- Legalizing: t5: i32 = Constant<1>
- Legalizing: t3: i32 = undef
- Legalizing: t2: i32 = FrameIndex<0>
- Legalizing: t1: i32 = Constant<0>
- Legalizing: t0: ch = EntryToken
- Legalized selection DAG: BB#0 'main:'
- SelectionDAG has 14 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Legalizing: t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Combining: t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Legalizing: t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- Combining: t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- Legalizing: t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- Combining: t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- Legalizing: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Combining: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Legalizing: t22: ch = setlt
- Combining: t22: ch = setlt
- Legalizing: t21: i32 = Constant<4>
- Combining: t21: i32 = Constant<4>
- Legalizing: t16: ch = BasicBlock< 0x3c68bb8>
- Combining: t16: ch = BasicBlock< 0x3c68bb8>
- Legalizing: t14: ch = BasicBlock< 0x3c68c68>
- Combining: t14: ch = BasicBlock< 0x3c68c68>
- Legalizing: t6: i32 = FrameIndex<1>
- Combining: t6: i32 = FrameIndex<1>
- Legalizing: t5: i32 = Constant<1>
- Combining: t5: i32 = Constant<1>
- Legalizing: t3: i32 = undef
- Combining: t3: i32 = undef
- Legalizing: t2: i32 = FrameIndex<0>
- Combining: t2: i32 = FrameIndex<0>
- Legalizing: t1: i32 = Constant<0>
- Combining: t1: i32 = Constant<0>
- Legalizing: t0: ch = EntryToken
- Combining: t0: ch = EntryToken
- Optimized legalized selection DAG: BB#0 'main:'
- SelectionDAG has 14 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- ===== Instruction selection begins: BB#0 ''
- Selecting: t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- ISEL: Starting pattern match on root node: t17: ch = br t24, BasicBlock:ch< 0x3c68bb8>
- Morphed node: t17: ch = BNONE32 BasicBlock:ch< 0x3c68bb8>, t24
- ISEL: Match complete!
- Selecting: t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- ISEL: Starting pattern match on root node: t24: ch = br_cc t7, setlt:ch, Constant:i32<1>, Constant:i32<4>, BasicBlock:ch< 0x3c68c68>
- Initial Opcode index to 1299
- Skipped scope entry (due to false predicate) at index 1303, continuing at 1333
- Skipped scope entry (due to false predicate) at index 1334, continuing at 1364
- Skipped scope entry (due to false predicate) at index 1365, continuing at 1395
- Skipped scope entry (due to false predicate) at index 1396, continuing at 1426
- Skipped scope entry (due to false predicate) at index 1427, continuing at 1457
- Skipped scope entry (due to false predicate) at index 1458, continuing at 1488
- Skipped scope entry (due to false predicate) at index 1489, continuing at 1519
- Created node: t27: i32,i32 = SUBrr_r32 Constant:i32<1>, Constant:i32<4>
- Morphed node: t24: ch = BLT32 t27, BasicBlock:ch< 0x3c68c68>, t7
- ISEL: Match complete!
- Selecting: t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- ISEL: Starting pattern match on root node: t7: ch = store<ST4[%a]> t4, Constant:i32<1>, FrameIndex:i32<1>, undef:i32
- Initial Opcode index to 336
- Skipped scope entry (due to false predicate) at index 348, continuing at 418
- Match failed at index 425
- Continuing at 437
- Morphed node: t7: ch = STRi32_r32<Mem:ST4[%a]> Constant:i32<1>, TargetFrameIndex:i32<1>, TargetConstant:i32<0>, t4
- ISEL: Match complete!
- Selecting: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- ISEL: Starting pattern match on root node: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Initial Opcode index to 336
- Skipped scope entry (due to false predicate) at index 348, continuing at 418
- Match failed at index 425
- Continuing at 437
- Morphed node: t4: ch = STRi32_r32<Mem:ST4[%1]> Constant:i32<0>, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- ISEL: Match complete!
- Selecting: t21: i32 = Constant<4>
- ISEL: Starting pattern match on root node: t21: i32 = Constant<4>
- Initial Opcode index to 929
- Morphed node: t21: i32 = MOVi16ri TargetConstant:i32<4>
- ISEL: Match complete!
- Selecting: t16: ch = BasicBlock< 0x3c68bb8>
- Selecting: t14: ch = BasicBlock< 0x3c68c68>
- Selecting: t5: i32 = Constant<1>
- ISEL: Starting pattern match on root node: t5: i32 = Constant<1>
- Initial Opcode index to 929
- Morphed node: t5: i32 = MOVi16ri TargetConstant:i32<1>
- ISEL: Match complete!
- Selecting: t1: i32 = Constant<0>
- ISEL: Starting pattern match on root node: t1: i32 = Constant<0>
- Initial Opcode index to 929
- Morphed node: t1: i32 = MOVi16ri TargetConstant:i32<0>
- ISEL: Match complete!
- Selecting: t0: ch = EntryToken
- ===== Instruction selection ends:
- Selected selection DAG: BB#0 'main:'
- SelectionDAG has 16 nodes:
- t5: i32 = MOVi16ri TargetConstant:i32<1>
- t21: i32 = MOVi16ri TargetConstant:i32<4>
- t27: i32,i32 = SUBrr_r32 t5, t21
- t1: i32 = MOVi16ri TargetConstant:i32<0>
- t0: ch = EntryToken
- t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- t7: ch = STRi32_r32<Mem:ST4[%a]> t5, TargetFrameIndex:i32<1>, TargetConstant:i32<0>, t4
- t24: ch = BLT32 t27, BasicBlock:ch< 0x3c68c68>, t7
- t17: ch = BNONE32 BasicBlock:ch< 0x3c68bb8>, t24
- ********** List Scheduling BB#0 '' **********
- SU(0): t17: ch = BNONE32 BasicBlock:ch< 0x3c68bb8>, t24
- # preds left : 1
- # succs left : 0
- # rdefs left : 0
- Latency : 1
- Depth : 4
- Height : 0
- Predecessors:
- ch SU(1): Latency=1
- SU(1): t24: ch = BLT32 t27, BasicBlock:ch< 0x3c68c68>, t7
- # preds left : 2
- # succs left : 1
- # rdefs left : 0
- Latency : 1
- Depth : 3
- Height : 1
- Predecessors:
- val SU(6): Latency=1
- ch SU(2): Latency=1
- Successors:
- ch SU(0): Latency=1
- SU(2): t7: ch = STRi32_r32<Mem:ST4[%a]> t5, TargetFrameIndex:i32<1>, TargetConstant:i32<0>, t4
- # preds left : 2
- # succs left : 1
- # rdefs left : 0
- Latency : 1
- Depth : 2
- Height : 2
- Predecessors:
- val SU(5): Latency=1
- ch SU(3): Latency=1
- Successors:
- ch SU(1): Latency=1
- SU(3): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- # preds left : 1
- # succs left : 1
- # rdefs left : 0
- Latency : 1
- Depth : 1
- Height : 3
- Predecessors:
- val SU(4): Latency=1
- Successors:
- ch SU(2): Latency=1
- SU(4): t1: i32 = MOVi16ri TargetConstant:i32<0>
- # preds left : 0
- # succs left : 1
- # rdefs left : 1
- Latency : 1
- Depth : 0
- Height : 4
- Successors:
- val SU(3): Latency=1
- SU(5): t5: i32 = MOVi16ri TargetConstant:i32<1>
- # preds left : 0
- # succs left : 2
- # rdefs left : 1
- Latency : 1
- Depth : 0
- Height : 3
- Successors:
- val SU(2): Latency=1
- val SU(6): Latency=1
- SU(6): t27: i32,i32 = SUBrr_r32 t5, t21
- # preds left : 2
- # succs left : 1
- # rdefs left : 1
- Latency : 1
- Depth : 1
- Height : 2
- Predecessors:
- val SU(5): Latency=1
- val SU(7): Latency=1
- Successors:
- val SU(1): Latency=1
- SU(7): t21: i32 = MOVi16ri TargetConstant:i32<4>
- # preds left : 0
- # succs left : 1
- # rdefs left : 1
- Latency : 1
- Depth : 0
- Height : 3
- Successors:
- val SU(6): Latency=1
- Examining Available:
- Height 0: SU(0): t17: ch = BNONE32 BasicBlock:ch< 0x3c68bb8>, t24
- *** Scheduling [0]: SU(0): t17: ch = BNONE32 BasicBlock:ch< 0x3c68bb8>, t24
- Examining Available:
- Height 1: SU(1): t24: ch = BLT32 t27, BasicBlock:ch< 0x3c68c68>, t7
- *** Scheduling [1]: SU(1): t24: ch = BLT32 t27, BasicBlock:ch< 0x3c68c68>, t7
- Examining Available:
- Height 2: SU(6): t27: i32,i32 = SUBrr_r32 t5, t21
- Height 2: SU(2): t7: ch = STRi32_r32<Mem:ST4[%a]> t5, TargetFrameIndex:i32<1>, TargetConstant:i32<0>, t4
- *** Scheduling [2]: SU(6): t27: i32,i32 = SUBrr_r32 t5, t21
- Examining Available:
- Height 3: SU(7): t21: i32 = MOVi16ri TargetConstant:i32<4>
- Height 2: SU(2): t7: ch = STRi32_r32<Mem:ST4[%a]> t5, TargetFrameIndex:i32<1>, TargetConstant:i32<0>, t4
- *** Scheduling [3]: SU(7): t21: i32 = MOVi16ri TargetConstant:i32<4>
- Examining Available:
- Height 2: SU(2): t7: ch = STRi32_r32<Mem:ST4[%a]> t5, TargetFrameIndex:i32<1>, TargetConstant:i32<0>, t4
- *** Scheduling [4]: SU(2): t7: ch = STRi32_r32<Mem:ST4[%a]> t5, TargetFrameIndex:i32<1>, TargetConstant:i32<0>, t4
- Examining Available:
- Height 5: SU(5): t5: i32 = MOVi16ri TargetConstant:i32<1>
- Height 5: SU(3): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- *** Scheduling [5]: SU(5): t5: i32 = MOVi16ri TargetConstant:i32<1>
- Examining Available:
- Height 5: SU(3): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- *** Scheduling [6]: SU(3): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- Examining Available:
- Height 7: SU(4): t1: i32 = MOVi16ri TargetConstant:i32<0>
- *** Scheduling [7]: SU(4): t1: i32 = MOVi16ri TargetConstant:i32<0>
- *** Final schedule ***
- SU(4): t1: i32 = MOVi16ri TargetConstant:i32<0>
- SU(3): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- SU(5): t5: i32 = MOVi16ri TargetConstant:i32<1>
- SU(2): t7: ch = STRi32_r32<Mem:ST4[%a]> t5, TargetFrameIndex:i32<1>, TargetConstant:i32<0>, t4
- SU(7): t21: i32 = MOVi16ri TargetConstant:i32<4>
- SU(6): t27: i32,i32 = SUBrr_r32 t5, t21
- SU(1): t24: ch = BLT32 t27, BasicBlock:ch< 0x3c68c68>, t7
- SU(0): t17: ch = BNONE32 BasicBlock:ch< 0x3c68bb8>, t24
- Total amount of phi nodes to update: 0
- Initial selection DAG: BB#2 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Combining: t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Combining: t5: ch = BasicBlock< 0x3c68d18>
- Combining: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Combining: t3: i32 = undef
- Combining: t2: i32 = FrameIndex<0>
- Combining: t1: i32 = Constant<0>
- Combining: t0: ch = EntryToken
- Optimized lowered selection DAG: BB#2 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Legally typed node: t5: ch = BasicBlock< 0x3c68d18>
- Legally typed node: t3: i32 = undef
- Legally typed node: t2: i32 = FrameIndex<0>
- Legally typed node: t1: i32 = Constant<0>
- Legally typed node: t0: ch = EntryToken
- Legally typed node: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Legally typed node: t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Legally typed node: t65535: ch = handlenode t6
- Type-legalized selection DAG: BB#2 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Legalizing: t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Legalizing: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Legalizing: t5: ch = BasicBlock< 0x3c68d18>
- Legalizing: t3: i32 = undef
- Legalizing: t2: i32 = FrameIndex<0>
- Legalizing: t1: i32 = Constant<0>
- Legalizing: t0: ch = EntryToken
- Legalized selection DAG: BB#2 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Legalizing: t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Combining: t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Legalizing: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Combining: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Legalizing: t5: ch = BasicBlock< 0x3c68d18>
- Combining: t5: ch = BasicBlock< 0x3c68d18>
- Legalizing: t3: i32 = undef
- Combining: t3: i32 = undef
- Legalizing: t2: i32 = FrameIndex<0>
- Combining: t2: i32 = FrameIndex<0>
- Legalizing: t1: i32 = Constant<0>
- Combining: t1: i32 = Constant<0>
- Legalizing: t0: ch = EntryToken
- Combining: t0: ch = EntryToken
- Optimized legalized selection DAG: BB#2 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- ===== Instruction selection begins: BB#2 ''
- Selecting: t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- ISEL: Starting pattern match on root node: t6: ch = br t4, BasicBlock:ch< 0x3c68d18>
- Initial Opcode index to 1281
- Morphed node: t6: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t4
- ISEL: Match complete!
- Selecting: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- ISEL: Starting pattern match on root node: t4: ch = store<ST4[%1]> t0, Constant:i32<0>, FrameIndex:i32<0>, undef:i32
- Initial Opcode index to 336
- Skipped scope entry (due to false predicate) at index 348, continuing at 418
- Match failed at index 425
- Continuing at 437
- Morphed node: t4: ch = STRi32_r32<Mem:ST4[%1]> Constant:i32<0>, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- ISEL: Match complete!
- Selecting: t5: ch = BasicBlock< 0x3c68d18>
- Selecting: t1: i32 = Constant<0>
- ISEL: Starting pattern match on root node: t1: i32 = Constant<0>
- Initial Opcode index to 929
- Morphed node: t1: i32 = MOVi16ri TargetConstant:i32<0>
- ISEL: Match complete!
- Selecting: t0: ch = EntryToken
- ===== Instruction selection ends:
- Selected selection DAG: BB#2 'main:'
- SelectionDAG has 7 nodes:
- t1: i32 = MOVi16ri TargetConstant:i32<0>
- t0: ch = EntryToken
- t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- t6: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t4
- ********** List Scheduling BB#2 '' **********
- SU(0): t6: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t4
- # preds left : 1
- # succs left : 0
- # rdefs left : 0
- Latency : 1
- Depth : 2
- Height : 0
- Predecessors:
- ch SU(1): Latency=1
- SU(1): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- # preds left : 1
- # succs left : 1
- # rdefs left : 0
- Latency : 1
- Depth : 1
- Height : 1
- Predecessors:
- val SU(2): Latency=1
- Successors:
- ch SU(0): Latency=1
- SU(2): t1: i32 = MOVi16ri TargetConstant:i32<0>
- # preds left : 0
- # succs left : 1
- # rdefs left : 1
- Latency : 1
- Depth : 0
- Height : 2
- Successors:
- val SU(1): Latency=1
- Examining Available:
- Height 0: SU(0): t6: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t4
- *** Scheduling [0]: SU(0): t6: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t4
- Examining Available:
- Height 1: SU(1): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- *** Scheduling [1]: SU(1): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- Examining Available:
- Height 2: SU(2): t1: i32 = MOVi16ri TargetConstant:i32<0>
- *** Scheduling [2]: SU(2): t1: i32 = MOVi16ri TargetConstant:i32<0>
- *** Final schedule ***
- SU(2): t1: i32 = MOVi16ri TargetConstant:i32<0>
- SU(1): t4: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- SU(0): t6: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t4
- Total amount of phi nodes to update: 0
- Initial selection DAG: BB#1 'main:'
- SelectionDAG has 8 nodes:
- t3: i32 = Constant<0>
- t0: ch = EntryToken
- t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Combining: t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Combining: t6: ch = BasicBlock< 0x3c68d18>
- Combining: t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- Combining: t4: i32 = undef
- Combining: t2: i32 = FrameIndex<0>
- Combining: t1: i32 = Constant<1>
- Combining: t0: ch = EntryToken
- Optimized lowered selection DAG: BB#1 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Legally typed node: t6: ch = BasicBlock< 0x3c68d18>
- Legally typed node: t4: i32 = undef
- Legally typed node: t2: i32 = FrameIndex<0>
- Legally typed node: t1: i32 = Constant<1>
- Legally typed node: t0: ch = EntryToken
- Legally typed node: t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- Legally typed node: t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Legally typed node: t65535: ch = handlenode t7
- Type-legalized selection DAG: BB#1 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Legalizing: t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Legalizing: t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- Legalizing: t6: ch = BasicBlock< 0x3c68d18>
- Legalizing: t4: i32 = undef
- Legalizing: t2: i32 = FrameIndex<0>
- Legalizing: t1: i32 = Constant<1>
- Legalizing: t0: ch = EntryToken
- Legalized selection DAG: BB#1 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Legalizing: t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Combining: t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Legalizing: t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- Combining: t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- Legalizing: t6: ch = BasicBlock< 0x3c68d18>
- Combining: t6: ch = BasicBlock< 0x3c68d18>
- Legalizing: t4: i32 = undef
- Combining: t4: i32 = undef
- Legalizing: t2: i32 = FrameIndex<0>
- Combining: t2: i32 = FrameIndex<0>
- Legalizing: t1: i32 = Constant<1>
- Combining: t1: i32 = Constant<1>
- Legalizing: t0: ch = EntryToken
- Combining: t0: ch = EntryToken
- Optimized legalized selection DAG: BB#1 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- ===== Instruction selection begins: BB#1 ''
- Selecting: t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- ISEL: Starting pattern match on root node: t7: ch = br t5, BasicBlock:ch< 0x3c68d18>
- Initial Opcode index to 1281
- Morphed node: t7: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t5
- ISEL: Match complete!
- Selecting: t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- ISEL: Starting pattern match on root node: t5: ch = store<ST4[%1]> t0, Constant:i32<1>, FrameIndex:i32<0>, undef:i32
- Initial Opcode index to 336
- Skipped scope entry (due to false predicate) at index 348, continuing at 418
- Match failed at index 425
- Continuing at 437
- Morphed node: t5: ch = STRi32_r32<Mem:ST4[%1]> Constant:i32<1>, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- ISEL: Match complete!
- Selecting: t6: ch = BasicBlock< 0x3c68d18>
- Selecting: t1: i32 = Constant<1>
- ISEL: Starting pattern match on root node: t1: i32 = Constant<1>
- Initial Opcode index to 929
- Morphed node: t1: i32 = MOVi16ri TargetConstant:i32<1>
- ISEL: Match complete!
- Selecting: t0: ch = EntryToken
- ===== Instruction selection ends:
- Selected selection DAG: BB#1 'main:'
- SelectionDAG has 8 nodes:
- t1: i32 = MOVi16ri TargetConstant:i32<1>
- t0: ch = EntryToken
- t5: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- t7: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t5
- ********** List Scheduling BB#1 '' **********
- SU(0): t7: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t5
- # preds left : 1
- # succs left : 0
- # rdefs left : 0
- Latency : 1
- Depth : 2
- Height : 0
- Predecessors:
- ch SU(1): Latency=1
- SU(1): t5: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- # preds left : 1
- # succs left : 1
- # rdefs left : 0
- Latency : 1
- Depth : 1
- Height : 1
- Predecessors:
- val SU(2): Latency=1
- Successors:
- ch SU(0): Latency=1
- SU(2): t1: i32 = MOVi16ri TargetConstant:i32<1>
- # preds left : 0
- # succs left : 1
- # rdefs left : 1
- Latency : 1
- Depth : 0
- Height : 2
- Successors:
- val SU(1): Latency=1
- Examining Available:
- Height 0: SU(0): t7: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t5
- *** Scheduling [0]: SU(0): t7: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t5
- Examining Available:
- Height 1: SU(1): t5: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- *** Scheduling [1]: SU(1): t5: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- Examining Available:
- Height 2: SU(2): t1: i32 = MOVi16ri TargetConstant:i32<1>
- *** Scheduling [2]: SU(2): t1: i32 = MOVi16ri TargetConstant:i32<1>
- *** Final schedule ***
- SU(2): t1: i32 = MOVi16ri TargetConstant:i32<1>
- SU(1): t5: ch = STRi32_r32<Mem:ST4[%1]> t1, TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- SU(0): t7: ch = BNONE32 BasicBlock:ch< 0x3c68d18>, t5
- Total amount of phi nodes to update: 0
- Initial selection DAG: BB#3 'main:'
- SelectionDAG has 8 nodes:
- t0: ch = EntryToken
- t2: i32 = Constant<0>
- t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Combining: t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Combining: t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- Combining: t5: i32 = Register %R0
- Combining: t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- Combining: t3: i32 = undef
- Combining: t1: i32 = FrameIndex<0>
- Combining: t0: ch = EntryToken
- Optimized lowered selection DAG: BB#3 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Legally typed node: t5: i32 = Register %R0
- Legally typed node: t3: i32 = undef
- Legally typed node: t1: i32 = FrameIndex<0>
- Legally typed node: t0: ch = EntryToken
- Legally typed node: t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- Legally typed node: t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- Legally typed node: t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Legally typed node: t65535: ch = handlenode t7
- Type-legalized selection DAG: BB#3 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Legalizing: t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Legalizing: t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- Legalizing: t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- Legalizing: t5: i32 = Register %R0
- Legalizing: t3: i32 = undef
- Legalizing: t1: i32 = FrameIndex<0>
- Legalizing: t0: ch = EntryToken
- Legalized selection DAG: BB#3 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Legalizing: t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Combining: t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Legalizing: t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- Combining: t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- Legalizing: t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- Combining: t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- Legalizing: t5: i32 = Register %R0
- Combining: t5: i32 = Register %R0
- Legalizing: t3: i32 = undef
- Combining: t3: i32 = undef
- Legalizing: t1: i32 = FrameIndex<0>
- Combining: t1: i32 = FrameIndex<0>
- Legalizing: t0: ch = EntryToken
- Combining: t0: ch = EntryToken
- Optimized legalized selection DAG: BB#3 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- ===== Instruction selection begins: BB#3 ''
- Selecting: t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- ISEL: Starting pattern match on root node: t7: ch = EpiphanyISD::RTS t6, Register:i32 %R0, t6:1
- Initial Opcode index to 1246
- Morphed node: t7: ch = RTS Register:i32 %R0, t6, t6:1
- ISEL: Match complete!
- Selecting: t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- Selecting: t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- ISEL: Starting pattern match on root node: t4: i32,ch = load<LD4[%1]> t0, FrameIndex:i32<0>, undef:i32
- Initial Opcode index to 124
- Skipped scope entry (due to false predicate) at index 131, continuing at 167
- Skipped scope entry (due to false predicate) at index 168, continuing at 204
- Skipped scope entry (due to false predicate) at index 205, continuing at 241
- Skipped scope entry (due to false predicate) at index 242, continuing at 278
- TypeSwitch[i32] from 281 to 284
- Match failed at index 288
- Continuing at 300
- Morphed node: t4: i32,ch = LDRi32_r32<Mem:LD4[%1]> TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- ISEL: Match complete!
- Selecting: t5: i32 = Register %R0
- Selecting: t0: ch = EntryToken
- ===== Instruction selection ends:
- Selected selection DAG: BB#3 'main:'
- SelectionDAG has 7 nodes:
- t0: ch = EntryToken
- t4: i32,ch = LDRi32_r32<Mem:LD4[%1]> TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- t7: ch = RTS Register:i32 %R0, t6, t6:1
- ********** List Scheduling BB#3 '' **********
- SU(0): t7: ch = RTS Register:i32 %R0, t6, t6:1
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- # preds left : 1
- # succs left : 0
- # rdefs left : 0
- Latency : 1
- Depth : 1
- Height : 0
- Predecessors:
- val SU(1): Latency=1
- SU(1): t4: i32,ch = LDRi32_r32<Mem:LD4[%1]> TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- # preds left : 0
- # succs left : 1
- # rdefs left : 1
- Latency : 1
- Depth : 0
- Height : 1
- Successors:
- val SU(0): Latency=1
- Examining Available:
- Height 0: SU(0): t7: ch = RTS Register:i32 %R0, t6, t6:1
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- *** Scheduling [0]: SU(0): t7: ch = RTS Register:i32 %R0, t6, t6:1
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- Examining Available:
- Height 1: SU(1): t4: i32,ch = LDRi32_r32<Mem:LD4[%1]> TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- *** Scheduling [1]: SU(1): t4: i32,ch = LDRi32_r32<Mem:LD4[%1]> TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- *** Final schedule ***
- SU(1): t4: i32,ch = LDRi32_r32<Mem:LD4[%1]> TargetFrameIndex:i32<0>, TargetConstant:i32<0>, t0
- SU(0): t7: ch = RTS Register:i32 %R0, t6, t6:1
- t6: ch,glue = CopyToReg t0, Register:i32 %R0, t4
- Total amount of phi nodes to update: 0
- *** MachineFunction at end of ISel ***
- # Machine code for function main: Properties: <SSA, tracking liveness, HasVRegs>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP]
- fi#1: size=4, align=4, at location [SP]
- BB#0: derived from LLVM BB %0
- %vreg0<def> = MOVi16ri 0; GPR16:%vreg0
- STRi32_r32 %vreg0<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg0
- %vreg1<def> = MOVi16ri 1; GPR16:%vreg1
- STRi32_r32 %vreg1, <fi#1>, 0; mem:ST4[%a] GPR16:%vreg1
- %vreg2<def> = MOVi16ri 4; GPR16:%vreg2
- %vreg3<def> = SUBrr_r32 %vreg1, %vreg2<kill>, %STATUS<imp-def,dead>; GPR32:%vreg3 GPR16:%vreg1,%vreg2
- BLT32 %vreg3<kill>, <BB#2>, %STATUS<imp-use>; GPR32:%vreg3
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %vreg5<def> = MOVi16ri 1; GPR16:%vreg5
- STRi32_r32 %vreg5<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg5
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %vreg4<def> = MOVi16ri 0; GPR16:%vreg4
- STRi32_r32 %vreg4<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg4
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %vreg6<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1] GPR32:%vreg6
- %R0<def> = COPY %vreg6; GPR32:%vreg6
- RTS %R0<imp-use>
- # End machine code for function main.
- # *** IR Dump After Expand ISel Pseudo-instructions ***:
- # Machine code for function main: Properties: <SSA, tracking liveness, HasVRegs>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP]
- fi#1: size=4, align=4, at location [SP]
- BB#0: derived from LLVM BB %0
- %vreg0<def> = MOVi16ri 0; GPR16:%vreg0
- STRi32_r32 %vreg0<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg0
- %vreg1<def> = MOVi16ri 1; GPR16:%vreg1
- STRi32_r32 %vreg1, <fi#1>, 0; mem:ST4[%a] GPR16:%vreg1
- %vreg2<def> = MOVi16ri 4; GPR16:%vreg2
- %vreg3<def> = SUBrr_r32 %vreg1, %vreg2<kill>, %STATUS<imp-def,dead>; GPR32:%vreg3 GPR16:%vreg1,%vreg2
- BLT32 %vreg3<kill>, <BB#2>, %STATUS<imp-use>; GPR32:%vreg3
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %vreg5<def> = MOVi16ri 1; GPR16:%vreg5
- STRi32_r32 %vreg5<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg5
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %vreg4<def> = MOVi16ri 0; GPR16:%vreg4
- STRi32_r32 %vreg4<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg4
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %vreg6<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1] GPR32:%vreg6
- %R0<def> = COPY %vreg6; GPR32:%vreg6
- RTS %R0<imp-use>
- # End machine code for function main.
- # *** IR Dump After Local Stack Slot Allocation ***:
- # Machine code for function main: Properties: <SSA, tracking liveness, HasVRegs>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP]
- fi#1: size=4, align=4, at location [SP]
- BB#0: derived from LLVM BB %0
- %vreg0<def> = MOVi16ri 0; GPR16:%vreg0
- STRi32_r32 %vreg0<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg0
- %vreg1<def> = MOVi16ri 1; GPR16:%vreg1
- STRi32_r32 %vreg1, <fi#1>, 0; mem:ST4[%a] GPR16:%vreg1
- %vreg2<def> = MOVi16ri 4; GPR16:%vreg2
- %vreg3<def> = SUBrr_r32 %vreg1, %vreg2<kill>, %STATUS<imp-def,dead>; GPR32:%vreg3 GPR16:%vreg1,%vreg2
- BLT32 %vreg3<kill>, <BB#2>, %STATUS<imp-use>; GPR32:%vreg3
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %vreg5<def> = MOVi16ri 1; GPR16:%vreg5
- STRi32_r32 %vreg5<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg5
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %vreg4<def> = MOVi16ri 0; GPR16:%vreg4
- STRi32_r32 %vreg4<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg4
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %vreg6<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1] GPR32:%vreg6
- %R0<def> = COPY %vreg6; GPR32:%vreg6
- RTS %R0<imp-use>
- # End machine code for function main.
- # *** IR Dump After Eliminate PHI nodes for register allocation ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, HasVRegs>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP]
- fi#1: size=4, align=4, at location [SP]
- BB#0: derived from LLVM BB %0
- %vreg0<def> = MOVi16ri 0; GPR16:%vreg0
- STRi32_r32 %vreg0<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg0
- %vreg1<def> = MOVi16ri 1; GPR16:%vreg1
- STRi32_r32 %vreg1, <fi#1>, 0; mem:ST4[%a] GPR16:%vreg1
- %vreg2<def> = MOVi16ri 4; GPR16:%vreg2
- %vreg3<def> = SUBrr_r32 %vreg1, %vreg2<kill>, %STATUS<imp-def,dead>; GPR32:%vreg3 GPR16:%vreg1,%vreg2
- BLT32 %vreg3<kill>, <BB#2>, %STATUS<imp-use>; GPR32:%vreg3
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %vreg5<def> = MOVi16ri 1; GPR16:%vreg5
- STRi32_r32 %vreg5<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg5
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %vreg4<def> = MOVi16ri 0; GPR16:%vreg4
- STRi32_r32 %vreg4<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg4
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %vreg6<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1] GPR32:%vreg6
- %R0<def> = COPY %vreg6; GPR32:%vreg6
- RTS %R0<imp-use>
- # End machine code for function main.
- ********** REWRITING TWO-ADDR INSTRS **********
- ********** Function: main
- # *** IR Dump After Two-Address instruction pass ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, HasVRegs>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP]
- fi#1: size=4, align=4, at location [SP]
- BB#0: derived from LLVM BB %0
- %vreg0<def> = MOVi16ri 0; GPR16:%vreg0
- STRi32_r32 %vreg0<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg0
- %vreg1<def> = MOVi16ri 1; GPR16:%vreg1
- STRi32_r32 %vreg1, <fi#1>, 0; mem:ST4[%a] GPR16:%vreg1
- %vreg2<def> = MOVi16ri 4; GPR16:%vreg2
- %vreg3<def> = SUBrr_r32 %vreg1, %vreg2<kill>, %STATUS<imp-def,dead>; GPR32:%vreg3 GPR16:%vreg1,%vreg2
- BLT32 %vreg3<kill>, <BB#2>, %STATUS<imp-use>; GPR32:%vreg3
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %vreg5<def> = MOVi16ri 1; GPR16:%vreg5
- STRi32_r32 %vreg5<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg5
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %vreg4<def> = MOVi16ri 0; GPR16:%vreg4
- STRi32_r32 %vreg4<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg4
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %vreg6<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1] GPR32:%vreg6
- %R0<def> = COPY %vreg6; GPR32:%vreg6
- RTS %R0<imp-use>
- # End machine code for function main.
- ********** FAST REGISTER ALLOCATION **********
- ********** Function: main
- Allocating BB#0: derived from LLVM BB %0
- %vreg0<def> = MOVi16ri 0; GPR16:%vreg0
- STRi32_r32 %vreg0<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg0
- %vreg1<def> = MOVi16ri 1; GPR16:%vreg1
- STRi32_r32 %vreg1, <fi#1>, 0; mem:ST4[%a] GPR16:%vreg1
- %vreg2<def> = MOVi16ri 4; GPR16:%vreg2
- %vreg3<def> = SUBrr_r32 %vreg1, %vreg2<kill>, %STATUS<imp-def,dead>; GPR32:%vreg3 GPR16:%vreg1,%vreg2
- BLT32 %vreg3<kill>, <BB#2>, %STATUS<imp-use>; GPR32:%vreg3
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- >> %vreg0<def> = MOVi16ri 0; GPR16:%vreg0
- Regs:
- AllocationOrder(GPR16) = [ %R0 %R1 %R2 %R3 %R4 %R5 %R6 %R7 ]
- Allocating %vreg0 from GPR16
- %R0 is disabled.
- Register: %R0
- Cost: 0
- BestCost: 4294967295
- Assigning %vreg0 to %R0
- << %R0<def> = MOVi16ri 0
- >> STRi32_r32 %vreg0<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg0
- Regs: R0=%vreg0*
- Killing last use: %vreg0<kill>
- << STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- >> %vreg1<def> = MOVi16ri 1; GPR16:%vreg1
- Regs: R0
- Assigning %vreg1 to %R0
- << %R0<def> = MOVi16ri 1
- >> STRi32_r32 %vreg1, <fi#1>, 0; mem:ST4[%a] GPR16:%vreg1
- Regs: R0=%vreg1*
- << STRi32_r32 %R0, <fi#1>, 0; mem:ST4[%a]
- >> %vreg2<def> = MOVi16ri 4; GPR16:%vreg2
- Regs: R0=%vreg1*
- Allocating %vreg2 from GPR16
- Register: %R0
- Cost: 100
- BestCost: 4294967295
- %R1 is disabled.
- Register: %R1
- Cost: 0
- BestCost: 100
- Assigning %vreg2 to %R1
- << %R1<def> = MOVi16ri 4
- >> %vreg3<def> = SUBrr_r32 %vreg1, %vreg2<kill>, %STATUS<imp-def,dead>; GPR32:%vreg3 GPR16:%vreg1,%vreg2
- Regs: R0=%vreg1* R1=%vreg2*
- Killing last use: %vreg1
- Killing last use: %vreg2<kill>
- AllocationOrder(GPR32) = [ %R0 %R1 %R2 %R3 %R12 %R16 %R17 %R18 %R19 %R20 %R21 %R22 %R23 %R24 %R25 %R26 %R27 %R44 %R45 %R46 %R47 %R48 %R49 %R50 %R51 %R52 %R53 %R54 %R55 %R56 %R57 %R58 %R59 %R60 %R61 %R62 %R63 %R4 %R5 %R6 %R7 %R8 %R15 %R32 %R33 %R34 %R35 %R36 %R37 %R38 %R39 %R40 %R41 %R42 %R43 ]
- Assigning %vreg3 to %R0
- << %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- >> BLT32 %vreg3<kill>, <BB#2>, %STATUS<imp-use>; GPR32:%vreg3
- Regs: R0=%vreg3* R1
- Killing last use: %vreg3<kill>
- << BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- >> BNONE32 <BB#1>, %STATUS<imp-use>
- Regs: R0 R1
- << BNONE32 <BB#1>, %STATUS<imp-use>
- Spilling live registers at end of block.
- BB#0: derived from LLVM BB %0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, <fi#1>, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- Allocating BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %vreg5<def> = MOVi16ri 1; GPR16:%vreg5
- STRi32_r32 %vreg5<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg5
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- >> %vreg5<def> = MOVi16ri 1; GPR16:%vreg5
- Regs:
- Allocating %vreg5 from GPR16
- %R0 is disabled.
- Register: %R0
- Cost: 0
- BestCost: 4294967295
- Assigning %vreg5 to %R0
- << %R0<def> = MOVi16ri 1
- >> STRi32_r32 %vreg5<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg5
- Regs: R0=%vreg5*
- Killing last use: %vreg5<kill>
- << STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- >> BNONE32 <BB#3>, %STATUS<imp-use>
- Regs: R0
- << BNONE32 <BB#3>, %STATUS<imp-use>
- Spilling live registers at end of block.
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- Allocating BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %vreg4<def> = MOVi16ri 0; GPR16:%vreg4
- STRi32_r32 %vreg4<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg4
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- >> %vreg4<def> = MOVi16ri 0; GPR16:%vreg4
- Regs:
- Allocating %vreg4 from GPR16
- %R0 is disabled.
- Register: %R0
- Cost: 0
- BestCost: 4294967295
- Assigning %vreg4 to %R0
- << %R0<def> = MOVi16ri 0
- >> STRi32_r32 %vreg4<kill>, <fi#0>, 0; mem:ST4[%1] GPR16:%vreg4
- Regs: R0=%vreg4*
- Killing last use: %vreg4<kill>
- << STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- >> BNONE32 <BB#3>, %STATUS<imp-use>
- Regs: R0
- << BNONE32 <BB#3>, %STATUS<imp-use>
- Spilling live registers at end of block.
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- Allocating BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %vreg6<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1] GPR32:%vreg6
- %R0<def> = COPY %vreg6; GPR32:%vreg6
- RTS %R0<imp-use>
- >> %vreg6<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1] GPR32:%vreg6
- Regs:
- %R0 is disabled.
- Assigning %vreg6 to %R0
- << %R0<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1]
- >> %R0<def> = COPY %vreg6; GPR32:%vreg6
- Regs: R0=%vreg6*
- Killing last use: %vreg6
- -- coalescing: %R0<def> = COPY %R0<kill>
- >> RTS %R0<imp-use>
- Regs: R0*
- << RTS %R0<imp-use,kill>
- Spilling live registers at end of block.
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1]
- RTS %R0<imp-use,kill>
- alloc FI(0) at SP[-4]
- alloc FI(1) at SP[-8]
- Function : main
- <--------->
- STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- FrameIndex : 0
- spOffset : -4
- stackSize : 8
- Offset : 4
- <--------->
- Function : main
- <--------->
- STRi32_r32 %R0, <fi#1>, 0; mem:ST4[%a]
- FrameIndex : 1
- spOffset : -8
- stackSize : 8
- Offset : 0
- <--------->
- Function : main
- <--------->
- STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- FrameIndex : 0
- spOffset : -4
- stackSize : 8
- Offset : 4
- <--------->
- Function : main
- <--------->
- %R0<def> = LDRi32_r32 <fi#0>, 0; mem:LD4[%1]
- FrameIndex : 0
- spOffset : -4
- stackSize : 8
- Offset : 4
- <--------->
- Function : main
- <--------->
- STRi32_r32 %R0<kill>, <fi#0>, 0; mem:ST4[%1]
- FrameIndex : 0
- spOffset : -4
- stackSize : 8
- Offset : 4
- <--------->
- # *** IR Dump After Prologue/Epilogue Insertion & Frame Finalization ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, AllVRegsAllocated>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP-4]
- fi#1: size=4, align=4, at location [SP-8]
- BB#0: derived from LLVM BB %0
- %FP<def> = STRi32_r32 %SP, 0; flags: FrameSetup
- %SP<def> = ADD32ri %SP, -8, %STATUS<imp-def>
- %FP<def> = MOVi32rr %SP; flags: FrameSetup
- CFI_INSTRUCTION <call frame instruction>
- CFI_INSTRUCTION <call frame instruction>
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, %FP, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 %FP, 4; mem:LD4[%1]
- %FP<def> = LDRi32_r32 %SP, 8; flags: FrameSetup
- %SP<def> = ADD32ri %SP, 8, %STATUS<imp-def>
- RTS %R0<imp-use,kill>
- # End machine code for function main.
- Machine Function
- ********** EXPANDING POST-RA PSEUDO INSTRS **********
- ********** Function: main
- # *** IR Dump After Post-RA pseudo instruction expansion pass ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, AllVRegsAllocated>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP-4]
- fi#1: size=4, align=4, at location [SP-8]
- BB#0: derived from LLVM BB %0
- %FP<def> = STRi32_r32 %SP, 0; flags: FrameSetup
- %SP<def> = ADD32ri %SP, -8, %STATUS<imp-def>
- %FP<def> = MOVi32rr %SP; flags: FrameSetup
- CFI_INSTRUCTION <call frame instruction>
- CFI_INSTRUCTION <call frame instruction>
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, %FP, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 %FP, 4; mem:LD4[%1]
- %FP<def> = LDRi32_r32 %SP, 8; flags: FrameSetup
- %SP<def> = ADD32ri %SP, 8, %STATUS<imp-def>
- JR32 %LR
- # End machine code for function main.
- # *** IR Dump After Analyze Machine Code For Garbage Collection ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, AllVRegsAllocated>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP-4]
- fi#1: size=4, align=4, at location [SP-8]
- BB#0: derived from LLVM BB %0
- %FP<def> = STRi32_r32 %SP, 0; flags: FrameSetup
- %SP<def> = ADD32ri %SP, -8, %STATUS<imp-def>
- %FP<def> = MOVi32rr %SP; flags: FrameSetup
- CFI_INSTRUCTION <call frame instruction>
- CFI_INSTRUCTION <call frame instruction>
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, %FP, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 %FP, 4; mem:LD4[%1]
- %FP<def> = LDRi32_r32 %SP, 8; flags: FrameSetup
- %SP<def> = ADD32ri %SP, 8, %STATUS<imp-def>
- JR32 %LR
- # End machine code for function main.
- # *** IR Dump After Contiguously Lay Out Funclets ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, AllVRegsAllocated>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP-4]
- fi#1: size=4, align=4, at location [SP-8]
- BB#0: derived from LLVM BB %0
- %FP<def> = STRi32_r32 %SP, 0; flags: FrameSetup
- %SP<def> = ADD32ri %SP, -8, %STATUS<imp-def>
- %FP<def> = MOVi32rr %SP; flags: FrameSetup
- CFI_INSTRUCTION <call frame instruction>
- CFI_INSTRUCTION <call frame instruction>
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, %FP, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 %FP, 4; mem:LD4[%1]
- %FP<def> = LDRi32_r32 %SP, 8; flags: FrameSetup
- %SP<def> = ADD32ri %SP, 8, %STATUS<imp-def>
- JR32 %LR
- # End machine code for function main.
- ********** COMPUTING STACKMAP LIVENESS: main **********
- # *** IR Dump After StackMap Liveness Analysis ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, AllVRegsAllocated>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP-4]
- fi#1: size=4, align=4, at location [SP-8]
- BB#0: derived from LLVM BB %0
- %FP<def> = STRi32_r32 %SP, 0; flags: FrameSetup
- %SP<def> = ADD32ri %SP, -8, %STATUS<imp-def>
- %FP<def> = MOVi32rr %SP; flags: FrameSetup
- CFI_INSTRUCTION <call frame instruction>
- CFI_INSTRUCTION <call frame instruction>
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, %FP, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 %FP, 4; mem:LD4[%1]
- %FP<def> = LDRi32_r32 %SP, 8; flags: FrameSetup
- %SP<def> = ADD32ri %SP, 8, %STATUS<imp-def>
- JR32 %LR
- # End machine code for function main.
- Debug Range Extension
- MBB: :
- MBB: :
- MBB: :
- MBB: :
- join MBB:
- join MBB:
- join MBB:
- join MBB:
- MBB: :
- MBB: :
- MBB: :
- MBB: :
- MBB: :
- MBB: :
- MBB: :
- MBB: :
- # *** IR Dump After Live DEBUG_VALUE analysis ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, AllVRegsAllocated>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP-4]
- fi#1: size=4, align=4, at location [SP-8]
- BB#0: derived from LLVM BB %0
- %FP<def> = STRi32_r32 %SP, 0; flags: FrameSetup
- %SP<def> = ADD32ri %SP, -8, %STATUS<imp-def>
- %FP<def> = MOVi32rr %SP; flags: FrameSetup
- CFI_INSTRUCTION <call frame instruction>
- CFI_INSTRUCTION <call frame instruction>
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, %FP, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 %FP, 4; mem:LD4[%1]
- %FP<def> = LDRi32_r32 %SP, 8; flags: FrameSetup
- %SP<def> = ADD32ri %SP, 8, %STATUS<imp-def>
- JR32 %LR
- # End machine code for function main.
- # *** IR Dump After Insert XRay ops ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, AllVRegsAllocated>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP-4]
- fi#1: size=4, align=4, at location [SP-8]
- BB#0: derived from LLVM BB %0
- %FP<def> = STRi32_r32 %SP, 0; flags: FrameSetup
- %SP<def> = ADD32ri %SP, -8, %STATUS<imp-def>
- %FP<def> = MOVi32rr %SP; flags: FrameSetup
- CFI_INSTRUCTION <call frame instruction>
- CFI_INSTRUCTION <call frame instruction>
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, %FP, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 %FP, 4; mem:LD4[%1]
- %FP<def> = LDRi32_r32 %SP, 8; flags: FrameSetup
- %SP<def> = ADD32ri %SP, 8, %STATUS<imp-def>
- JR32 %LR
- # End machine code for function main.
- # *** IR Dump After Implement the 'patchable-function' attribute ***:
- # Machine code for function main: Properties: <Post SSA, tracking liveness, AllVRegsAllocated>
- Frame Objects:
- fi#0: size=4, align=4, at location [SP-4]
- fi#1: size=4, align=4, at location [SP-8]
- BB#0: derived from LLVM BB %0
- %FP<def> = STRi32_r32 %SP, 0; flags: FrameSetup
- %SP<def> = ADD32ri %SP, -8, %STATUS<imp-def>
- %FP<def> = MOVi32rr %SP; flags: FrameSetup
- CFI_INSTRUCTION <call frame instruction>
- CFI_INSTRUCTION <call frame instruction>
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0, %FP, 0; mem:ST4[%a]
- %R1<def> = MOVi16ri 4
- %R0<def> = SUBrr_r32 %R0<kill>, %R1<kill>, %STATUS<imp-def,dead>
- BLT32 %R0<kill>, <BB#2>, %STATUS<imp-use>
- BNONE32 <BB#1>, %STATUS<imp-use>
- Successors according to CFG: BB#1 BB#2
- BB#1: derived from LLVM BB %4
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 1
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#2: derived from LLVM BB %5
- Predecessors according to CFG: BB#0
- %R0<def> = MOVi16ri 0
- STRi32_r32 %R0<kill>, %FP, 4; mem:ST4[%1]
- BNONE32 <BB#3>, %STATUS<imp-use>
- Successors according to CFG: BB#3(?%)
- BB#3: derived from LLVM BB %6
- Predecessors according to CFG: BB#2 BB#1
- %R0<def> = LDRi32_r32 %FP, 4; mem:LD4[%1]
- %FP<def> = LDRi32_r32 %SP, 8; flags: FrameSetup
- %SP<def> = ADD32ri %SP, 8, %STATUS<imp-def>
- JR32 %LR
- # End machine code for function main.
- assembler backend - pre-layout
- --
- <MCAssembler
- Sections:[
- <MCSection Fragments:[
- <MCAlignFragment<MCFragment 0x3c5fa80 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0> (emit nops)
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCAlignFragment<MCFragment 0x3c746c0 LayoutOrder:4294967295 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0> (emit nops)
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCDataFragment<MCFragment 0x3c74900 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:1 BundlePadding:0>
- Contents:[5C,F4,00,24,1B,B4,FF,24,EF,F4,02,24,03,00,DC,1C,00,04,23,00,5C,1C,00,04,83,20,BF,00,0A,00,88,00,00,00,E8,00,00,00,23,00,DC,1C,00,04,E8,00,00,00,03,00,DC,1C,00,04,E8,00,00,00,CC,1C,00,04,4C,F5,00,24,1B,B4,01,24,4F,19,02,04] (74 bytes),
- Fixups:[<MCFixup Offset:30 Value:.LBB0_2 Kind:136>,
- <MCFixup Offset:34 Value:.LBB0_1 Kind:136>,
- <MCFixup Offset:44 Value:.LBB0_3 Kind:136>,
- <MCFixup Offset:54 Value:.LBB0_3 Kind:136>]>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74c10 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[00,63,6C,61,6E,67,20,76,65,72,73,69,6F,6E,20,33,2E,38,2E,30,2D,32,75,62,75,6E,74,75,34,20,28,74,61,67,73,2F,52,45,4C,45,41,53,45,5F,33,38,30,2F,66,69,6E,61,6C,29,00] (55 bytes)>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74dc0 LayoutOrder:4294967295 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[] (0 bytes)>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74ef0 LayoutOrder:4294967295 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[00,00,00,00,00,00,00,00,01,7A,52,00,01,7C,65,01,1B,0C,0D,00] (20 bytes),
- Fixups:[<MCFixup Offset:0 Value:(-)-4 Kind:2>]>,
- <MCAlignFragment<MCFragment 0x3c74fe0 LayoutOrder:4294967295 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCDataFragment<MCFragment 0x3c75030 LayoutOrder:4294967295 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[00,00,00,00,00,00,00,00,00,00,00,00,4A,00,00,00,00,4C,0D,0F,0E,08] (22 bytes),
- Fixups:[<MCFixup Offset:0 Value:(-)-0 Kind:2>,
- <MCFixup Offset:4 Value:(-)-0 Kind:2>,
- <MCFixup Offset:8 Value:- Kind:2>]>,
- <MCAlignFragment<MCFragment 0x3c6ebd0 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Alignment:8 Value:0 ValueSize:1 MaxBytesToEmit:8>>,
- <MCDataFragment<MCFragment 0x3c75160 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[] (0 bytes)>]>],
- Symbols:[(.text, Index:0, ),
- (main, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (.LBB0_2, Index:0, ),
- (.LBB0_1, Index:0, ),
- (.LBB0_3, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (.comment, Index:0, ),
- (.note.GNU-stack, Index:0, ),
- (.eh_frame, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, )]>
- assembler backend - post-relaxation
- --
- <MCAssembler
- Sections:[
- <MCSection Fragments:[
- <MCAlignFragment<MCFragment 0x3c5fa80 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0> (emit nops)
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCAlignFragment<MCFragment 0x3c746c0 LayoutOrder:1 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0> (emit nops)
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCDataFragment<MCFragment 0x3c74900 LayoutOrder:2 Offset:18446744073709551615 HasInstructions:1 BundlePadding:0>
- Contents:[5C,F4,00,24,1B,B4,FF,24,EF,F4,02,24,03,00,DC,1C,00,04,23,00,5C,1C,00,04,83,20,BF,00,0A,00,88,00,00,00,E8,00,00,00,23,00,DC,1C,00,04,E8,00,00,00,03,00,DC,1C,00,04,E8,00,00,00,CC,1C,00,04,4C,F5,00,24,1B,B4,01,24,4F,19,02,04] (74 bytes),
- Fixups:[<MCFixup Offset:30 Value:.LBB0_2 Kind:136>,
- <MCFixup Offset:34 Value:.LBB0_1 Kind:136>,
- <MCFixup Offset:44 Value:.LBB0_3 Kind:136>,
- <MCFixup Offset:54 Value:.LBB0_3 Kind:136>]>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74c10 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[00,63,6C,61,6E,67,20,76,65,72,73,69,6F,6E,20,33,2E,38,2E,30,2D,32,75,62,75,6E,74,75,34,20,28,74,61,67,73,2F,52,45,4C,45,41,53,45,5F,33,38,30,2F,66,69,6E,61,6C,29,00] (55 bytes)>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74dc0 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[] (0 bytes)>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74ef0 LayoutOrder:0 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[00,00,00,00,00,00,00,00,01,7A,52,00,01,7C,65,01,1B,0C,0D,00] (20 bytes),
- Fixups:[<MCFixup Offset:0 Value:(-)-4 Kind:2>]>,
- <MCAlignFragment<MCFragment 0x3c74fe0 LayoutOrder:1 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCDataFragment<MCFragment 0x3c75030 LayoutOrder:2 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[00,00,00,00,00,00,00,00,00,00,00,00,4A,00,00,00,00,4C,0D,0F,0E,08] (22 bytes),
- Fixups:[<MCFixup Offset:0 Value:(-)-0 Kind:2>,
- <MCFixup Offset:4 Value:(-)-0 Kind:2>,
- <MCFixup Offset:8 Value:- Kind:2>]>,
- <MCAlignFragment<MCFragment 0x3c6ebd0 LayoutOrder:3 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Alignment:8 Value:0 ValueSize:1 MaxBytesToEmit:8>>,
- <MCDataFragment<MCFragment 0x3c75160 LayoutOrder:4 Offset:18446744073709551615 HasInstructions:0 BundlePadding:0>
- Contents:[] (0 bytes)>]>],
- Symbols:[(.text, Index:0, ),
- (main, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (.LBB0_2, Index:0, ),
- (.LBB0_1, Index:0, ),
- (.LBB0_3, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (.comment, Index:0, ),
- (.note.GNU-stack, Index:0, ),
- (.eh_frame, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, )]>
- assembler backend - final-layout
- --
- <MCAssembler
- Sections:[
- <MCSection Fragments:[
- <MCAlignFragment<MCFragment 0x3c5fa80 LayoutOrder:0 Offset:0 HasInstructions:0 BundlePadding:0> (emit nops)
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCAlignFragment<MCFragment 0x3c746c0 LayoutOrder:1 Offset:0 HasInstructions:0 BundlePadding:0> (emit nops)
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCDataFragment<MCFragment 0x3c74900 LayoutOrder:2 Offset:0 HasInstructions:1 BundlePadding:0>
- Contents:[5C,F4,00,24,1B,B4,FF,24,EF,F4,02,24,03,00,DC,1C,00,04,23,00,5C,1C,00,04,83,20,BF,00,0A,00,88,00,00,00,E8,00,00,00,23,00,DC,1C,00,04,E8,00,00,00,03,00,DC,1C,00,04,E8,00,00,00,CC,1C,00,04,4C,F5,00,24,1B,B4,01,24,4F,19,02,04] (74 bytes),
- Fixups:[<MCFixup Offset:30 Value:.LBB0_2 Kind:136>,
- <MCFixup Offset:34 Value:.LBB0_1 Kind:136>,
- <MCFixup Offset:44 Value:.LBB0_3 Kind:136>,
- <MCFixup Offset:54 Value:.LBB0_3 Kind:136>]>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74c10 LayoutOrder:0 Offset:0 HasInstructions:0 BundlePadding:0>
- Contents:[00,63,6C,61,6E,67,20,76,65,72,73,69,6F,6E,20,33,2E,38,2E,30,2D,32,75,62,75,6E,74,75,34,20,28,74,61,67,73,2F,52,45,4C,45,41,53,45,5F,33,38,30,2F,66,69,6E,61,6C,29,00] (55 bytes)>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74dc0 LayoutOrder:0 Offset:0 HasInstructions:0 BundlePadding:0>
- Contents:[] (0 bytes)>]>,
- <MCSection Fragments:[
- <MCDataFragment<MCFragment 0x3c74ef0 LayoutOrder:0 Offset:0 HasInstructions:0 BundlePadding:0>
- Contents:[00,00,00,00,00,00,00,00,01,7A,52,00,01,7C,65,01,1B,0C,0D,00] (20 bytes),
- Fixups:[<MCFixup Offset:0 Value:(-)-4 Kind:2>]>,
- <MCAlignFragment<MCFragment 0x3c74fe0 LayoutOrder:1 Offset:20 HasInstructions:0 BundlePadding:0>
- Alignment:4 Value:0 ValueSize:1 MaxBytesToEmit:4>>,
- <MCDataFragment<MCFragment 0x3c75030 LayoutOrder:2 Offset:20 HasInstructions:0 BundlePadding:0>
- Contents:[00,00,00,00,00,00,00,00,00,00,00,00,4A,00,00,00,00,4C,0D,0F,0E,08] (22 bytes),
- Fixups:[<MCFixup Offset:0 Value:(-)-0 Kind:2>,
- <MCFixup Offset:4 Value:(-)-0 Kind:2>,
- <MCFixup Offset:8 Value:- Kind:2>]>,
- <MCAlignFragment<MCFragment 0x3c6ebd0 LayoutOrder:3 Offset:42 HasInstructions:0 BundlePadding:0>
- Alignment:8 Value:0 ValueSize:1 MaxBytesToEmit:8>>,
- <MCDataFragment<MCFragment 0x3c75160 LayoutOrder:4 Offset:48 HasInstructions:0 BundlePadding:0>
- Contents:[] (0 bytes)>]>],
- Symbols:[(.text, Index:0, ),
- (main, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (.LBB0_2, Index:0, ),
- (.LBB0_1, Index:0, ),
- (.LBB0_3, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (.comment, Index:0, ),
- (.note.GNU-stack, Index:0, ),
- (.eh_frame, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, ),
- (, Index:0, )]>
Advertisement
Add Comment
Please, Sign In to add comment