Created
January 30, 2019 11:23
-
-
Save carlos4242/e7bd5c8bba0d7fb94f02ce02f9ed5189 to your computer and use it in GitHub Desktop.
Debug output from llvm AVR backend umul.with.overflow.i16 bug
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Carls-MacBook-Air:AVR carlpeto$ ../../../build/llvm-patched/bin/llc -O3 -march=avr -debug < umul.with.overflow.i16-bug.ll | |
Args: ../../../build/llvm-patched/bin/llc -O3 -march=avr -debug | |
Features: | |
CPU:avr2 | |
discovered a new reachable node %entry | |
.text | |
.file "<stdin>" | |
discovered a new reachable node %entry | |
discovered a new reachable node %entry | |
MergeICmpsPass: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
discovered a new reachable node %entry | |
---- Branch Probability Info : _TF4main13setServoAngleFT5angleVs6UInt16_T_ ---- | |
Computing probabilities for entry | |
block-frequency: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
============================================================ | |
reverse-post-order-traversal | |
- 0: entry | |
loop-detection | |
compute-mass-in-function | |
- node: entry | |
=> mass: ffffffffffffffff | |
float-to-int: min = 1.0, max = 1.0, factor = 8.0 | |
- entry: float = 1.0, scaled = 8.0, int = 8 | |
block-frequency-info: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
- entry: float = 1.0, int = 8 | |
********** Begin Constant Hoisting ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
********** End Constant Hoisting ********** | |
discovered a new reachable node %entry | |
---- Branch Probability Info : _TF4main13setServoAngleFT5angleVs6UInt16_T_ ---- | |
Computing probabilities for entry | |
block-frequency: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
============================================================ | |
reverse-post-order-traversal | |
- 0: entry | |
loop-detection | |
compute-mass-in-function | |
- node: entry | |
=> mass: ffffffffffffffff | |
float-to-int: min = 1.0, max = 1.0, factor = 8.0 | |
- entry: float = 1.0, scaled = 8.0, int = 8 | |
block-frequency-info: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
- entry: float = 1.0, int = 8 | |
CGP: Found local addrmode: [Base:%adjustedAngle] | |
CGP: Found local addrmode: [Base:%adjustedAngle] | |
CGP: Found local addrmode: [Base:%adjustedAngle] | |
CGP: Found local addrmode: [Base:%adjustedAngle] | |
[SafeStack] Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
[SafeStack] safestack is not requested for this function | |
discovered a new reachable node %entry | |
discovered a new reachable node %entry | |
---- Branch Probability Info : _TF4main13setServoAngleFT5angleVs6UInt16_T_ ---- | |
Computing probabilities for entry | |
=== _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
Found argument copy elision candidate: %adjustedAngle = alloca %Vs6UInt16, align 2 | |
Creating new node: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Creating constant: t4: i16 = Constant<0> | |
Creating new node: t5: i16 = undef | |
Creating new node: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Creating new node: t7: i16,ch = load<(dereferenceable load 2 from %ir.adjustedAngle._value22)> t6, FrameIndex:i16<0>, undef:i16 | |
Creating constant: t8: i16 = Constant<11> | |
Creating new node: t9: i16,i1 = umulo t7, Constant:i16<11> | |
Creating constant: t12: i16 = TargetConstant<0> | |
Creating new node: t13: ch,glue = callseq_start t7:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Creating new node: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Creating new node: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Creating new node: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Creating new node: t19: i1 = truncate t18 | |
Creating new node: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Creating new node: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t9 | |
Creating new node: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Creating new node: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Creating new node: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Creating new node: t29: ch = RET_FLAG t28 | |
Initial selection DAG: %bb.0 '_TF4main13setServoAngleFT5angleVs6UInt16_T_:entry' | |
SelectionDAG has 30 nodes: | |
t0: ch = EntryToken | |
t4: i16 = Constant<0> | |
t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
t7: i16,ch = load<(dereferenceable load 2 from %ir.adjustedAngle._value22)> t6, FrameIndex:i16<0>, undef:i16 | |
t10: i16 = GlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
t13: ch,glue = callseq_start t7:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
t19: i1 = truncate t18 | |
t20: i16 = GlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t9: i16,i1 = umulo t7, Constant:i16<11> | |
t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t9 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
t29: ch = RET_FLAG t28 | |
Combining: t29: ch = RET_FLAG t28 | |
Combining: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Combining: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Combining: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Combining: t25: i8 = Register $r22 | |
Combining: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t9 | |
Combining: t23: i16 = Register $r25r24 | |
Combining: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Combining: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
Combining: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Combining: t17: i8 = Register $r24 | |
Combining: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Combining: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Combining: t14: Untyped = RegisterMask | |
Combining: t13: ch,glue = callseq_start t7:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Combining: t12: i16 = TargetConstant<0> | |
Combining: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
Combining: t9: i16,i1 = umulo t7, Constant:i16<11> | |
Combining: t8: i16 = Constant<11> | |
Combining: t7: i16,ch = load<(dereferenceable load 2 from %ir.adjustedAngle._value22)> t6, FrameIndex:i16<0>, undef:i16 | |
Replacing.1 t7: i16,ch = load<(dereferenceable load 2 from %ir.adjustedAngle._value22)> t6, FrameIndex:i16<0>, undef:i16 | |
With: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
and 1 other values | |
Combining: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Combining: t9: i16,i1 = umulo t2, Constant:i16<11> | |
Combining: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Combining: t5: i16 = undef | |
Combining: t3: i16 = FrameIndex<0> | |
Combining: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Combining: t1: i16 = Register %0 | |
Combining: t0: ch = EntryToken | |
Optimized lowered selection DAG: %bb.0 '_TF4main13setServoAngleFT5angleVs6UInt16_T_:entry' | |
SelectionDAG has 25 nodes: | |
t0: ch = EntryToken | |
t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t9: i16,i1 = umulo t2, Constant:i16<11> | |
t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t9 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
t29: ch = RET_FLAG t28 | |
Legalizing node: t25: i8 = Register $r22 | |
Ignoring node results | |
Legally typed node: t25: i8 = Register $r22 | |
Legalizing node: t23: i16 = Register $r25r24 | |
Ignoring node results | |
Legally typed node: t23: i16 = Register $r25r24 | |
Legalizing node: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
Analyzing result type: i16 | |
Legal result type | |
Legally typed node: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
Legalizing node: t17: i8 = Register $r24 | |
Ignoring node results | |
Legally typed node: t17: i8 = Register $r24 | |
Legalizing node: t14: Untyped = RegisterMask | |
Analyzing result type: Untyped | |
Legal result type | |
Legally typed node: t14: Untyped = RegisterMask | |
Legalizing node: t12: i16 = TargetConstant<0> | |
Ignoring node results | |
Legally typed node: t12: i16 = TargetConstant<0> | |
Legalizing node: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
Analyzing result type: i16 | |
Legal result type | |
Legally typed node: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
Legalizing node: t8: i16 = Constant<11> | |
Analyzing result type: i16 | |
Legal result type | |
Legally typed node: t8: i16 = Constant<11> | |
Legalizing node: t5: i16 = undef | |
Analyzing result type: i16 | |
Legal result type | |
Legally typed node: t5: i16 = undef | |
Legalizing node: t3: i16 = FrameIndex<0> | |
Analyzing result type: i16 | |
Legal result type | |
Legally typed node: t3: i16 = FrameIndex<0> | |
Legalizing node: t1: i16 = Register %0 | |
Ignoring node results | |
Legally typed node: t1: i16 = Register %0 | |
Legalizing node: t0: ch = EntryToken | |
Analyzing result type: ch | |
Legal result type | |
Legally typed node: t0: ch = EntryToken | |
Legalizing node: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Analyzing result type: i16 | |
Legal result type | |
Analyzing result type: ch | |
Legal result type | |
Analyzing operand: t0: ch = EntryToken | |
Legal operand | |
Legally typed node: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Legalizing node: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Analyzing result type: ch | |
Legal result type | |
Analyzing operand: t0: ch = EntryToken | |
Legal operand | |
Analyzing operand: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Legal operand | |
Analyzing operand: t3: i16 = FrameIndex<0> | |
Legal operand | |
Analyzing operand: t5: i16 = undef | |
Legal operand | |
Legally typed node: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Legalizing node: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Legal operand | |
Legally typed node: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legalizing node: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legal operand | |
Analyzing operand: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
Legal operand | |
Analyzing operand: t14: Untyped = RegisterMask | |
Legal operand | |
Legally typed node: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Legalizing node: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Legal operand | |
Analyzing operand: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Legal operand | |
Legally typed node: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Legalizing node: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Analyzing result type: i8 | |
Legal result type | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Legal operand | |
Analyzing operand: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Legal operand | |
Legally typed node: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Legalizing node: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Legal operand | |
Legally typed node: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legalizing node: t9: i16,i1 = umulo t2, Constant:i16<11> | |
Analyzing result type: i16 | |
Legal result type | |
Analyzing result type: i1 | |
Promote integer result: t9: i16,i1 = umulo t2, Constant:i16<11> | |
Creating new node: t30: i16,i8 = umulo t2, Constant:i16<11> | |
Legalizing node: t30: i16,i8 = umulo t2, Constant:i16<11> | |
Analyzing result type: i16 | |
Legal result type | |
Analyzing result type: i8 | |
Legal result type | |
Analyzing operand: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Legal operand | |
Analyzing operand: t8: i16 = Constant<11> | |
Legal operand | |
Legally typed node: t30: i16,i8 = umulo t2, Constant:i16<11> | |
Legalizing node: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t30 | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legal operand | |
Analyzing operand: t30: i16,i8 = umulo t2, Constant:i16<11> | |
Legal operand | |
Legally typed node: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t30 | |
Legalizing node: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t30 | |
Legal operand | |
Analyzing operand: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Legal operand | |
Analyzing operand: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t30 | |
Legal operand | |
Legally typed node: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Legalizing node: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Legal operand | |
Analyzing operand: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
Legal operand | |
Analyzing operand: t14: Untyped = RegisterMask | |
Legal operand | |
Analyzing operand: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Legal operand | |
Legally typed node: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Legalizing node: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Analyzing result type: ch | |
Legal result type | |
Analyzing result type: glue | |
Legal result type | |
Analyzing operand: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Legal operand | |
Analyzing operand: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Legal operand | |
Legally typed node: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Legalizing node: t29: ch = RET_FLAG t28 | |
Analyzing result type: ch | |
Legal result type | |
Analyzing operand: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Legal operand | |
Legally typed node: t29: ch = RET_FLAG t28 | |
Legalizing node: t65535: ch = handlenode t29 | |
Analyzing result type: ch | |
Legal result type | |
Analyzing operand: t29: ch = RET_FLAG t28 | |
Legal operand | |
Legally typed node: t65535: ch = handlenode t29 | |
Type-legalized selection DAG: %bb.0 '_TF4main13setServoAngleFT5angleVs6UInt16_T_:entry' | |
SelectionDAG has 25 nodes: | |
t0: ch = EntryToken | |
t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t30: i16,i8 = umulo t2, Constant:i16<11> | |
t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t30 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
t29: ch = RET_FLAG t28 | |
Combining: t30: i16,i8 = umulo t2, Constant:i16<11> | |
Combining: t29: ch = RET_FLAG t28 | |
Combining: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Combining: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Combining: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Combining: t25: i8 = Register $r22 | |
Combining: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t30 | |
Combining: t23: i16 = Register $r25r24 | |
Combining: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Combining: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
Combining: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Combining: t17: i8 = Register $r24 | |
Combining: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Combining: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Combining: t14: Untyped = RegisterMask | |
Combining: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Combining: t12: i16 = TargetConstant<0> | |
Combining: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
Combining: t8: i16 = Constant<11> | |
Combining: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Combining: t5: i16 = undef | |
Combining: t3: i16 = FrameIndex<0> | |
Combining: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Combining: t1: i16 = Register %0 | |
Combining: t0: ch = EntryToken | |
Optimized type-legalized selection DAG: %bb.0 '_TF4main13setServoAngleFT5angleVs6UInt16_T_:entry' | |
SelectionDAG has 25 nodes: | |
t0: ch = EntryToken | |
t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t30: i16,i8 = umulo t2, Constant:i16<11> | |
t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t30 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
t29: ch = RET_FLAG t28 | |
Legalizing: t29: ch = RET_FLAG t28 | |
Legal node: nothing to do | |
Legalizing: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Legalizing: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Legal node: nothing to do | |
Legalizing: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Legal node: nothing to do | |
Legalizing: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t30 | |
Legal node: nothing to do | |
Legalizing: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legalizing: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Legal node: nothing to do | |
Legalizing: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Legalizing: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Legal node: nothing to do | |
Legalizing: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legalizing: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Legalizing store operation | |
Optimizing float store operations | |
Legal store | |
Legalizing: t30: i16,i8 = umulo t2, Constant:i16<11> | |
Trying to expand node | |
Creating constant: t31: i16 = Constant<0> | |
Creating new node: t34: ch,glue = callseq_start t0, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Creating new node: t35: ch,glue = CopyToReg t34, Register:i16 $r25r24, t2 | |
Creating new node: t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, Constant:i16<0>, t35:1 | |
Creating new node: t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, Constant:i16<11>, t37:1 | |
Creating new node: t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, Constant:i16<0>, t39:1 | |
Creating new node: t42: ch,glue = CALL t41, TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41:1 | |
Creating new node: t43: ch,glue = callseq_end t42, TargetConstant:i16<0>, TargetConstant:i16<0>, t42:1 | |
Creating new node: t44: i16,ch,glue = CopyFromReg t43, Register:i16 $r25r24, t43:1 | |
Creating new node: t45: i16,ch,glue = CopyFromReg t44:1, Register:i16 $r23r22, t44:2 | |
Creating new node: t46: i16,i16 = merge_values t44, t45 | |
Creating new node: t48: i8 = setcc t45, Constant:i16<0>, setne:ch | |
Successfully expanded node | |
... replacing: t30: i16,i8 = umulo t2, Constant:i16<11> | |
with: t44: i16,ch,glue = CopyFromReg t43, Register:i16 $r25r24, t43:1 | |
and: t48: i8 = setcc t45, Constant:i16<0>, setne:ch | |
Legalizing: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Legal node: nothing to do | |
Legalizing: t25: i8 = Register $r22 | |
Legalizing: t23: i16 = Register $r25r24 | |
Legalizing: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
Legal node: nothing to do | |
Legalizing: t17: i8 = Register $r24 | |
Legalizing: t14: Untyped = RegisterMask | |
Legal node: nothing to do | |
Legalizing: t12: i16 = TargetConstant<0> | |
Legalizing: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
Legal node: nothing to do | |
Legalizing: t8: i16 = Constant<11> | |
Legal node: nothing to do | |
Legalizing: t5: i16 = undef | |
Legal node: nothing to do | |
Legalizing: t3: i16 = FrameIndex<0> | |
Legal node: nothing to do | |
Legalizing: t1: i16 = Register %0 | |
Legalizing: t0: ch = EntryToken | |
Legal node: nothing to do | |
Legalizing: t44: i16,ch,glue = CopyFromReg t43, Register:i16 $r25r24, t43:1 | |
Legal node: nothing to do | |
Legalizing: t43: ch,glue = callseq_end t42, TargetConstant:i16<0>, TargetConstant:i16<0>, t42:1 | |
Legalizing: t42: ch,glue = CALL t41, TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41:1 | |
Legal node: nothing to do | |
Legalizing: t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, Constant:i16<0>, t39:1 | |
Legal node: nothing to do | |
Legalizing: t40: i16 = Register $r19r18 | |
Legalizing: t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, Constant:i16<11>, t37:1 | |
Legal node: nothing to do | |
Legalizing: t38: i16 = Register $r21r20 | |
Legalizing: t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, Constant:i16<0>, t35:1 | |
Legal node: nothing to do | |
Legalizing: t36: i16 = Register $r23r22 | |
Legalizing: t35: ch,glue = CopyToReg t34, Register:i16 $r25r24, t2 | |
Legal node: nothing to do | |
Legalizing: t34: ch,glue = callseq_start t0, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legalizing: t33: i16 = TargetExternalSymbol'__mulsi3' | |
Legal node: nothing to do | |
Legalizing: t31: i16 = Constant<0> | |
Legal node: nothing to do | |
Legalized selection DAG: %bb.0 '_TF4main13setServoAngleFT5angleVs6UInt16_T_:entry' | |
SelectionDAG has 37 nodes: | |
t0: ch = EntryToken | |
t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t44: i16,ch,glue = CopyFromReg t43, Register:i16 $r25r24, t43:1 | |
t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t44 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
t34: ch,glue = callseq_start t0, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t35: ch,glue = CopyToReg t34, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, Constant:i16<0>, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, Constant:i16<11>, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, Constant:i16<0>, t39:1 | |
t42: ch,glue = CALL t41, TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41:1 | |
t43: ch,glue = callseq_end t42, TargetConstant:i16<0>, TargetConstant:i16<0>, t42:1 | |
t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
t29: ch = RET_FLAG t28 | |
Legalizing: t44: i16,ch,glue = CopyFromReg t43, Register:i16 $r25r24, t43:1 | |
Legal node: nothing to do | |
Combining: t44: i16,ch,glue = CopyFromReg t43, Register:i16 $r25r24, t43:1 | |
Legalizing: t43: ch,glue = callseq_end t42, TargetConstant:i16<0>, TargetConstant:i16<0>, t42:1 | |
Combining: t43: ch,glue = callseq_end t42, TargetConstant:i16<0>, TargetConstant:i16<0>, t42:1 | |
Legalizing: t42: ch,glue = CALL t41, TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41:1 | |
Legal node: nothing to do | |
Combining: t42: ch,glue = CALL t41, TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41:1 | |
Legalizing: t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, Constant:i16<0>, t39:1 | |
Legal node: nothing to do | |
Combining: t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, Constant:i16<0>, t39:1 | |
Legalizing: t40: i16 = Register $r19r18 | |
Combining: t40: i16 = Register $r19r18 | |
Legalizing: t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, Constant:i16<11>, t37:1 | |
Legal node: nothing to do | |
Combining: t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, Constant:i16<11>, t37:1 | |
Legalizing: t38: i16 = Register $r21r20 | |
Combining: t38: i16 = Register $r21r20 | |
Legalizing: t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, Constant:i16<0>, t35:1 | |
Legal node: nothing to do | |
Combining: t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, Constant:i16<0>, t35:1 | |
Legalizing: t36: i16 = Register $r23r22 | |
Combining: t36: i16 = Register $r23r22 | |
Legalizing: t35: ch,glue = CopyToReg t34, Register:i16 $r25r24, t2 | |
Legal node: nothing to do | |
Combining: t35: ch,glue = CopyToReg t34, Register:i16 $r25r24, t2 | |
Legalizing: t34: ch,glue = callseq_start t0, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Combining: t34: ch,glue = callseq_start t0, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legalizing: t33: i16 = TargetExternalSymbol'__mulsi3' | |
Legal node: nothing to do | |
Combining: t33: i16 = TargetExternalSymbol'__mulsi3' | |
Legalizing: t31: i16 = Constant<0> | |
Legal node: nothing to do | |
Combining: t31: i16 = Constant<0> | |
Legalizing: t29: ch = RET_FLAG t28 | |
Legal node: nothing to do | |
Combining: t29: ch = RET_FLAG t28 | |
Legalizing: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Combining: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
Legalizing: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Legal node: nothing to do | |
Combining: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
Legalizing: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Legal node: nothing to do | |
Combining: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
Legalizing: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t44 | |
Legal node: nothing to do | |
Combining: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t44 | |
Legalizing: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Combining: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legalizing: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Legal node: nothing to do | |
Combining: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
Legalizing: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Combining: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
Legalizing: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Legal node: nothing to do | |
Combining: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
Legalizing: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Combining: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
Legalizing: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Legalizing store operation | |
Optimizing float store operations | |
Legal store | |
Combining: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
Legalizing: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Legal node: nothing to do | |
Combining: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Legalizing: t25: i8 = Register $r22 | |
Combining: t25: i8 = Register $r22 | |
Legalizing: t23: i16 = Register $r25r24 | |
Combining: t23: i16 = Register $r25r24 | |
Legalizing: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
Legal node: nothing to do | |
Combining: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
Legalizing: t17: i8 = Register $r24 | |
Combining: t17: i8 = Register $r24 | |
Legalizing: t14: Untyped = RegisterMask | |
Legal node: nothing to do | |
Combining: t14: Untyped = RegisterMask | |
Legalizing: t12: i16 = TargetConstant<0> | |
Combining: t12: i16 = TargetConstant<0> | |
Legalizing: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
Legal node: nothing to do | |
Combining: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
Legalizing: t8: i16 = Constant<11> | |
Legal node: nothing to do | |
Combining: t8: i16 = Constant<11> | |
Legalizing: t5: i16 = undef | |
Legal node: nothing to do | |
Combining: t5: i16 = undef | |
Legalizing: t3: i16 = FrameIndex<0> | |
Legal node: nothing to do | |
Combining: t3: i16 = FrameIndex<0> | |
Legalizing: t1: i16 = Register %0 | |
Combining: t1: i16 = Register %0 | |
Legalizing: t0: ch = EntryToken | |
Legal node: nothing to do | |
Combining: t0: ch = EntryToken | |
Optimized legalized selection DAG: %bb.0 '_TF4main13setServoAngleFT5angleVs6UInt16_T_:entry' | |
SelectionDAG has 37 nodes: | |
t0: ch = EntryToken | |
t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t44: i16,ch,glue = CopyFromReg t43, Register:i16 $r25r24, t43:1 | |
t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t44 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
t34: ch,glue = callseq_start t0, TargetConstant:i16<0>, TargetConstant:i16<0> | |
t35: ch,glue = CopyToReg t34, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, Constant:i16<0>, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, Constant:i16<11>, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, Constant:i16<0>, t39:1 | |
t42: ch,glue = CALL t41, TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41:1 | |
t43: ch,glue = callseq_end t42, TargetConstant:i16<0>, TargetConstant:i16<0>, t42:1 | |
t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
t29: ch = RET_FLAG t28 | |
===== Instruction selection begins: %bb.0 'entry' | |
ISEL: Starting selection on root node: t29: ch = RET_FLAG t28 | |
ISEL: Starting pattern match | |
Morphed node: t29: ch = RET t28 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t28: ch,glue = callseq_end t27, TargetConstant:i16<0>, TargetConstant:i16<0>, t27:1 | |
ISEL: Starting pattern match | |
Initial Opcode index to 817 | |
Morphed node: t28: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t27, t27:1 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t27: ch,glue = CALL t26, TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26:1 | |
ISEL: Starting pattern match | |
Initial Opcode index to 1544 | |
OpcodeSwitch from 1548 to 1567 | |
Morphed node: t27: ch,glue = CALLk TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26, t26:1 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
ISEL: Starting selection on root node: t24: ch,glue = CopyToReg t22, Register:i16 $r25r24, t44 | |
ISEL: Starting selection on root node: t44: i16,ch,glue = CopyFromReg t43, Register:i16 $r25r24, t43:1 | |
ISEL: Starting selection on root node: t43: ch,glue = callseq_end t42, TargetConstant:i16<0>, TargetConstant:i16<0>, t42:1 | |
ISEL: Starting pattern match | |
Initial Opcode index to 817 | |
Morphed node: t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t22: ch,glue = callseq_start t18:1, TargetConstant:i16<0>, TargetConstant:i16<0> | |
ISEL: Starting pattern match | |
Initial Opcode index to 792 | |
Morphed node: t22: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t18:1 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t42: ch,glue = CALL t41, TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41:1 | |
ISEL: Starting pattern match | |
Initial Opcode index to 1544 | |
OpcodeSwitch from 1548 to 1580 | |
Morphed node: t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t18: i8,ch,glue = CopyFromReg t16, Register:i8 $r24, t16:1 | |
ISEL: Starting selection on root node: t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, Constant:i16<0>, t39:1 | |
ISEL: Starting selection on root node: t16: ch,glue = callseq_end t15, TargetConstant:i16<0>, TargetConstant:i16<0>, t15:1 | |
ISEL: Starting pattern match | |
Initial Opcode index to 817 | |
Morphed node: t16: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t15, t15:1 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, Constant:i16<11>, t37:1 | |
ISEL: Starting selection on root node: t15: ch,glue = CALL t13, TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped | |
ISEL: Starting pattern match | |
Initial Opcode index to 1544 | |
OpcodeSwitch from 1548 to 1567 | |
Morphed node: t15: ch,glue = CALLk TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped, t13 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, Constant:i16<0>, t35:1 | |
ISEL: Starting selection on root node: t13: ch,glue = callseq_start t6, TargetConstant:i16<0>, TargetConstant:i16<0> | |
ISEL: Starting pattern match | |
Initial Opcode index to 792 | |
Morphed node: t13: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t6 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t35: ch,glue = CopyToReg t34, Register:i16 $r25r24, t2 | |
ISEL: Starting selection on root node: t6: ch = store<(store 2 into %ir.adjustedAngle._value1)> t0, t2, FrameIndex:i16<0>, undef:i16 | |
ISEL: Starting pattern match | |
Initial Opcode index to 76 | |
Match failed at index 81 | |
Continuing at 205 | |
Skipped scope entry (due to false predicate) at index 211, continuing at 392 | |
Creating constant: t50: i8 = TargetConstant<0> | |
Morphed node: t6: ch = STDWPtrQRr<Mem:(store 2 into %ir.adjustedAngle._value1)> TargetFrameIndex:i16<0>, TargetConstant:i8<0>, t2, t0 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t34: ch,glue = callseq_start t0, TargetConstant:i16<0>, TargetConstant:i16<0> | |
ISEL: Starting pattern match | |
Initial Opcode index to 792 | |
Morphed node: t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
ISEL: Starting selection on root node: t40: i16 = Register $r19r18 | |
ISEL: Starting selection on root node: t38: i16 = Register $r21r20 | |
ISEL: Starting selection on root node: t36: i16 = Register $r23r22 | |
ISEL: Starting selection on root node: t33: i16 = TargetExternalSymbol'__mulsi3' | |
ISEL: Starting selection on root node: t31: i16 = Constant<0> | |
ISEL: Starting pattern match | |
Initial Opcode index to 2250 | |
TypeSwitch[i16] from 2251 to 2265 | |
Morphed node: t31: i16 = LDIWRdK TargetConstant:i16<0> | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t25: i8 = Register $r22 | |
ISEL: Starting selection on root node: t23: i16 = Register $r25r24 | |
ISEL: Starting selection on root node: t21: i16 = TargetGlobalAddress<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0 | |
ISEL: Starting selection on root node: t17: i8 = Register $r24 | |
ISEL: Starting selection on root node: t14: Untyped = RegisterMask | |
ISEL: Starting selection on root node: t12: i16 = TargetConstant<0> | |
ISEL: Starting selection on root node: t11: i16 = TargetGlobalAddress<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0 | |
ISEL: Starting selection on root node: t8: i16 = Constant<11> | |
ISEL: Starting pattern match | |
Initial Opcode index to 2250 | |
TypeSwitch[i16] from 2251 to 2265 | |
Creating constant: t51: i16 = TargetConstant<11> | |
Morphed node: t8: i16 = LDIWRdK TargetConstant:i16<11> | |
ISEL: Match complete! | |
ISEL: Starting selection on root node: t1: i16 = Register %0 | |
ISEL: Starting selection on root node: t0: ch = EntryToken | |
===== Instruction selection ends: | |
Selected selection DAG: %bb.0 '_TF4main13setServoAngleFT5angleVs6UInt16_T_:entry' | |
SelectionDAG has 38 nodes: | |
t0: ch = EntryToken | |
t31: i16 = LDIWRdK TargetConstant:i16<0> | |
t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
t35: ch,glue = CopyToReg t34:1, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, t31, t35:1 | |
t6: ch = STDWPtrQRr<Mem:(store 2 into %ir.adjustedAngle._value1)> TargetFrameIndex:i16<0>, TargetConstant:i8<0>, t2, t0 | |
t13: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t6 | |
t15: ch,glue = CALLk TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped, t13:1 | |
t8: i16 = LDIWRdK TargetConstant:i16<11> | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, t8, t37:1 | |
t16: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t15, t15:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, t31, t39:1 | |
t18: i8,ch,glue = CopyFromReg t16:1, Register:i8 $r24, t16:2 | |
t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
t22: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t18:1 | |
t44: i16,ch,glue = CopyFromReg t43:1, Register:i16 $r25r24, t43:2 | |
t24: ch,glue = CopyToReg t22:1, Register:i16 $r25r24, t44 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALLk TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26, t26:1 | |
t28: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t27, t27:1 | |
t29: ch = RET t28:1 | |
********** List Scheduling %bb.0 'entry' ********** | |
SU(0): t29: ch = RET t28:1 | |
# preds left : 1 | |
# succs left : 0 | |
# rdefs left : 0 | |
Latency : 1 | |
Depth : 6 | |
Height : 0 | |
Predecessors: | |
SU(1): Ord Latency=1 Barrier | |
SU(1): t28: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t27, t27:1 | |
t24: ch,glue = CopyToReg t22:1, Register:i16 $r25r24, t44 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALLk TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26, t26:1 | |
# preds left : 3 | |
# succs left : 1 | |
# rdefs left : 0 | |
Latency : 1 | |
Depth : 5 | |
Height : 1 | |
Predecessors: | |
SU(2): Data Latency=1 | |
SU(10): Ord Latency=1 Barrier | |
SU(6): Data Latency=1 | |
Successors: | |
SU(0): Ord Latency=1 Barrier | |
SU(2): t18: i8,ch,glue = CopyFromReg t16:1, Register:i8 $r24, t16:2 | |
t15: ch,glue = CALLk TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped, t13:1 | |
t16: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t15, t15:1 | |
# preds left : 1 | |
# succs left : 2 | |
# rdefs left : 1 | |
Latency : 1 | |
Depth : 3 | |
Height : 3 | |
Predecessors: | |
SU(3): Ord Latency=1 Barrier | |
Successors: | |
SU(1): Data Latency=1 | |
SU(10): Ord Latency=1 Barrier | |
SU(3): t13: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t6 | |
# preds left : 1 | |
# succs left : 1 | |
# rdefs left : 0 | |
Latency : 1 | |
Depth : 2 | |
Height : 4 | |
Predecessors: | |
SU(4): Ord Latency=1 Barrier | |
Successors: | |
SU(2): Ord Latency=1 Barrier | |
SU(4): t6: ch = STDWPtrQRr<Mem:(store 2 into %ir.adjustedAngle._value1)> TargetFrameIndex:i16<0>, TargetConstant:i8<0>, t2, t0 | |
# preds left : 1 | |
# succs left : 1 | |
# rdefs left : 0 | |
Latency : 1 | |
Depth : 1 | |
Height : 5 | |
Predecessors: | |
SU(5): Data Latency=1 | |
Successors: | |
SU(3): Ord Latency=1 Barrier | |
SU(5): t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
# preds left : 0 | |
# succs left : 2 | |
# rdefs left : 1 | |
Latency : 1 | |
Depth : 0 | |
Height : 6 | |
Successors: | |
SU(4): Data Latency=1 | |
SU(6): Data Latency=1 | |
SU(6): t44: i16,ch,glue = CopyFromReg t43:1, Register:i16 $r25r24, t43:2 | |
t35: ch,glue = CopyToReg t34:1, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, t31, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, t8, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, t31, t39:1 | |
t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
# preds left : 4 | |
# succs left : 1 | |
# rdefs left : 1 | |
Latency : 1 | |
Depth : 1 | |
Height : 2 | |
Predecessors: | |
SU(7): Data Latency=1 | |
SU(8): Data Latency=1 | |
SU(9): Ord Latency=1 Barrier | |
SU(5): Data Latency=1 | |
Successors: | |
SU(1): Data Latency=1 | |
SU(7): t31: i16 = LDIWRdK TargetConstant:i16<0> | |
# preds left : 0 | |
# succs left : 1 | |
# rdefs left : 1 | |
Latency : 1 | |
Depth : 0 | |
Height : 3 | |
Successors: | |
SU(6): Data Latency=1 | |
SU(8): t8: i16 = LDIWRdK TargetConstant:i16<11> | |
# preds left : 0 | |
# succs left : 1 | |
# rdefs left : 1 | |
Latency : 1 | |
Depth : 0 | |
Height : 3 | |
Successors: | |
SU(6): Data Latency=1 | |
SU(9): t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
# preds left : 0 | |
# succs left : 1 | |
# rdefs left : 0 | |
Latency : 1 | |
Depth : 0 | |
Height : 3 | |
Successors: | |
SU(6): Ord Latency=1 Barrier | |
SU(10): t22: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t18:1 | |
# preds left : 1 | |
# succs left : 1 | |
# rdefs left : 0 | |
Latency : 1 | |
Depth : 4 | |
Height : 2 | |
Predecessors: | |
SU(2): Ord Latency=1 Barrier | |
Successors: | |
SU(1): Ord Latency=1 Barrier | |
Prescheduling SU #4 next to PredSU #5 to guide scheduling in the presence of multiple uses | |
Examining Available: | |
Height 0: SU(0): t29: ch = RET t28:1 | |
*** Scheduling [0]: SU(0): t29: ch = RET t28:1 | |
Examining Available: | |
Height 1: SU(1): t28: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t27, t27:1 | |
t24: ch,glue = CopyToReg t22:1, Register:i16 $r25r24, t44 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALLk TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26, t26:1 | |
*** Scheduling [1]: SU(1): t28: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t27, t27:1 | |
t24: ch,glue = CopyToReg t22:1, Register:i16 $r25r24, t44 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALLk TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26, t26:1 | |
Examining Available: | |
Height 2: SU(10): t22: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t18:1 | |
Height 2: SU(6): t44: i16,ch,glue = CopyFromReg t43:1, Register:i16 $r25r24, t43:2 | |
t35: ch,glue = CopyToReg t34:1, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, t31, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, t8, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, t31, t39:1 | |
t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
*** Scheduling [2]: SU(10): t22: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t18:1 | |
Examining Available: | |
Height 3: SU(2): t18: i8,ch,glue = CopyFromReg t16:1, Register:i8 $r24, t16:2 | |
t15: ch,glue = CALLk TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped, t13:1 | |
t16: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t15, t15:1 | |
Height 2: SU(6): t44: i16,ch,glue = CopyFromReg t43:1, Register:i16 $r25r24, t43:2 | |
t35: ch,glue = CopyToReg t34:1, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, t31, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, t8, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, t31, t39:1 | |
t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
*** Scheduling [3]: SU(2): t18: i8,ch,glue = CopyFromReg t16:1, Register:i8 $r24, t16:2 | |
t15: ch,glue = CALLk TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped, t13:1 | |
t16: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t15, t15:1 | |
Examining Available: | |
Height 4: SU(3): t13: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t6 | |
Height 2: SU(6): t44: i16,ch,glue = CopyFromReg t43:1, Register:i16 $r25r24, t43:2 | |
t35: ch,glue = CopyToReg t34:1, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, t31, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, t8, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, t31, t39:1 | |
t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
*** Scheduling [4]: SU(3): t13: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t6 | |
Examining Available: | |
Height 2: SU(6): t44: i16,ch,glue = CopyFromReg t43:1, Register:i16 $r25r24, t43:2 | |
t35: ch,glue = CopyToReg t34:1, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, t31, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, t8, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, t31, t39:1 | |
t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
*** Scheduling [5]: SU(6): t44: i16,ch,glue = CopyFromReg t43:1, Register:i16 $r25r24, t43:2 | |
t35: ch,glue = CopyToReg t34:1, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, t31, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, t8, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, t31, t39:1 | |
t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
Examining Available: | |
Height 6: SU(7): t31: i16 = LDIWRdK TargetConstant:i16<0> | |
Height 6: SU(8): t8: i16 = LDIWRdK TargetConstant:i16<11> | |
Height 6: SU(4): t6: ch = STDWPtrQRr<Mem:(store 2 into %ir.adjustedAngle._value1)> TargetFrameIndex:i16<0>, TargetConstant:i8<0>, t2, t0 | |
Height 6: SU(9): t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
*** Scheduling [6]: SU(7): t31: i16 = LDIWRdK TargetConstant:i16<0> | |
Examining Available: | |
Height 6: SU(8): t8: i16 = LDIWRdK TargetConstant:i16<11> | |
Height 6: SU(4): t6: ch = STDWPtrQRr<Mem:(store 2 into %ir.adjustedAngle._value1)> TargetFrameIndex:i16<0>, TargetConstant:i8<0>, t2, t0 | |
Height 6: SU(9): t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
*** Scheduling [7]: SU(8): t8: i16 = LDIWRdK TargetConstant:i16<11> | |
Examining Available: | |
Height 6: SU(4): t6: ch = STDWPtrQRr<Mem:(store 2 into %ir.adjustedAngle._value1)> TargetFrameIndex:i16<0>, TargetConstant:i8<0>, t2, t0 | |
Height 6: SU(9): t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
*** Scheduling [8]: SU(4): t6: ch = STDWPtrQRr<Mem:(store 2 into %ir.adjustedAngle._value1)> TargetFrameIndex:i16<0>, TargetConstant:i8<0>, t2, t0 | |
Examining Available: | |
Height 9: SU(5): t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Height 6: SU(9): t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
*** Scheduling [9]: SU(5): t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
Examining Available: | |
Height 6: SU(9): t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
*** Scheduling [10]: SU(9): t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
*** Final schedule *** | |
SU(9): t34: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t0 | |
SU(5): t2: i16,ch = CopyFromReg t0, Register:i16 %0 | |
SU(4): t6: ch = STDWPtrQRr<Mem:(store 2 into %ir.adjustedAngle._value1)> TargetFrameIndex:i16<0>, TargetConstant:i8<0>, t2, t0 | |
SU(8): t8: i16 = LDIWRdK TargetConstant:i16<11> | |
SU(7): t31: i16 = LDIWRdK TargetConstant:i16<0> | |
SU(6): t44: i16,ch,glue = CopyFromReg t43:1, Register:i16 $r25r24, t43:2 | |
t35: ch,glue = CopyToReg t34:1, Register:i16 $r25r24, t2 | |
t37: ch,glue = CopyToReg t35, Register:i16 $r23r22, t31, t35:1 | |
t39: ch,glue = CopyToReg t37, Register:i16 $r21r20, t8, t37:1 | |
t41: ch,glue = CopyToReg t39, Register:i16 $r19r18, t31, t39:1 | |
t42: ch,glue = CALLk TargetExternalSymbol:i16'__mulsi3', Register:i16 $r25r24, Register:i16 $r23r22, Register:i16 $r21r20, Register:i16 $r19r18, RegisterMask:Untyped, t41, t41:1 | |
t43: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t42, t42:1 | |
SU(3): t13: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t6 | |
SU(2): t18: i8,ch,glue = CopyFromReg t16:1, Register:i8 $r24, t16:2 | |
t15: ch,glue = CALLk TargetGlobalAddress:i16<i1 ()* @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_> 0, RegisterMask:Untyped, t13:1 | |
t16: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t15, t15:1 | |
SU(10): t22: i16,ch,glue = ADJCALLSTACKDOWN TargetConstant:i16<0>, TargetConstant:i16<0>, t18:1 | |
SU(1): t28: i16,ch,glue = ADJCALLSTACKUP TargetConstant:i16<0>, TargetConstant:i16<0>, t27, t27:1 | |
t24: ch,glue = CopyToReg t22:1, Register:i16 $r25r24, t44 | |
t26: ch,glue = CopyToReg t24, Register:i8 $r22, t18, t24:1 | |
t27: ch,glue = CALLk TargetGlobalAddress:i16<void (i16, i1)* @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_> 0, Register:i16 $r25r24, Register:i8 $r22, RegisterMask:Untyped, t26, t26:1 | |
SU(0): t29: ch = RET t28:1 | |
Total amount of phi nodes to update: 0 | |
*** MachineFunction at end of ISel *** | |
# Machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_: IsSSA, TracksLiveness | |
Frame Objects: | |
fi#0: size=2, align=2, at location [SP+2] | |
Function Live Ins: $r25r24 in %0 | |
bb.0.entry: | |
liveins: $r25r24 | |
%0:dregs = COPY $r25r24 | |
ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
STDWPtrQRr %stack.0.adjustedAngle, 0, %0:dregs :: (store 2 into %ir.adjustedAngle._value1) | |
%1:dldregs = LDIWRdK 11 | |
%2:dldregs = LDIWRdK 0 | |
$r25r24 = COPY %0:dregs | |
$r23r22 = COPY %2:dldregs | |
$r21r20 = COPY %1:dldregs | |
$r19r18 = COPY %2:dldregs | |
CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r23r22, implicit $r21r20, implicit $r19r18, implicit-def $sp, implicit-def $r25r24 | |
ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
%3:dregs = COPY $r25r24 | |
ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
%4:gpr8 = COPY $r24 | |
ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
$r25r24 = COPY %3:dregs | |
$r22 = COPY %4:gpr8 | |
CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r22, implicit-def $sp | |
ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
RET | |
# End machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_. | |
# Machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_: IsSSA, TracksLiveness | |
Frame Objects: | |
fi#0: size=2, align=2, at location [SP+2] | |
Function Live Ins: $r25r24 in %0 | |
0B bb.0.entry: | |
liveins: $r25r24 | |
16B %0:dregs = COPY $r25r24 | |
32B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
48B STDWPtrQRr %stack.0.adjustedAngle, 0, %0:dregs :: (store 2 into %ir.adjustedAngle._value1) | |
64B %1:dldregs = LDIWRdK 11 | |
80B %2:dldregs = LDIWRdK 0 | |
96B $r25r24 = COPY %0:dregs | |
112B $r23r22 = COPY %2:dldregs | |
128B $r21r20 = COPY %1:dldregs | |
144B $r19r18 = COPY %2:dldregs | |
160B CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r23r22, implicit $r21r20, implicit $r19r18, implicit-def $sp, implicit-def $r25r24 | |
176B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
192B %3:dregs = COPY $r25r24 | |
208B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
224B CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
240B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
256B %4:gpr8 = COPY $r24 | |
272B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
288B $r25r24 = COPY %3:dregs | |
304B $r22 = COPY %4:gpr8 | |
320B CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r22, implicit-def $sp | |
336B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
352B RET | |
# End machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_. | |
********** Stack Coloring ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
Found 0 markers and 1 slots | |
Slot structure: | |
Slot #0 - 2 bytes. | |
Total Stack size: 2 bytes | |
Will not try to merge slots. | |
Removed 0 markers. | |
discovered a new reachable node %bb.0 | |
******** Pre-regalloc Machine LICM: _TF4main13setServoAngleFT5angleVs6UInt16_T_ ******** | |
Entering: entry | |
Exiting: entry | |
Looking for trivial roots | |
Found a new trivial root: %bb.0 | |
Last visited node: %bb.0 | |
Looking for non-trivial roots | |
Total: 1, Num: 2 | |
Discovered CFG nodes: | |
0: nullptr | |
1: nullptr | |
2: %bb.0 | |
Found roots: %bb.0 | |
discovered a new reachable node nullptr | |
discovered a new reachable node %bb.0 | |
block-frequency: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
============================================================ | |
reverse-post-order-traversal | |
- 0: BB0[entry] | |
loop-detection | |
compute-mass-in-function | |
- node: BB0[entry] | |
=> mass: ffffffffffffffff | |
float-to-int: min = 1.0, max = 1.0, factor = 8.0 | |
- BB0[entry]: float = 1.0, scaled = 8.0, int = 8 | |
block-frequency-info: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
- BB0[entry]: float = 1.0, int = 8 | |
******** Machine Sinking ******** | |
********** PEEPHOLE OPTIMIZER ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
Encountered load fold barrier on STDWPtrQRr %stack.0.adjustedAngle, 0, %0:dregs :: (store 2 into %ir.adjustedAngle._value1) | |
Encountered load fold barrier on CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r23r22, implicit $r21r20, implicit $r19r18, implicit-def $sp, implicit-def $r25r24 | |
Encountered load fold barrier on CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
Encountered load fold barrier on CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r22, implicit-def $sp | |
Skipping Detect dead lanes pass | |
********** PROCESS IMPLICIT DEFS ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
discovered a new reachable node %bb.0 | |
********** REWRITING TWO-ADDR INSTRS ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
# Machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_: NoPHIs, TracksLiveness | |
Frame Objects: | |
fi#0: size=2, align=2, at location [SP+2] | |
Function Live Ins: $r25r24 in %0 | |
0B bb.0.entry: | |
liveins: $r25r24 | |
16B %0:dregs = COPY killed $r25r24 | |
32B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
48B STDWPtrQRr %stack.0.adjustedAngle, 0, %0:dregs :: (store 2 into %ir.adjustedAngle._value1) | |
64B %1:dldregs = LDIWRdK 11 | |
80B %2:dldregs = LDIWRdK 0 | |
96B $r25r24 = COPY killed %0:dregs | |
112B $r23r22 = COPY %2:dldregs | |
128B $r21r20 = COPY killed %1:dldregs | |
144B $r19r18 = COPY killed %2:dldregs | |
160B CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit killed $r25r24, implicit killed $r23r22, implicit killed $r21r20, implicit killed $r19r18, implicit-def $sp, implicit-def $r25r24 | |
176B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
192B %3:dregs = COPY killed $r25r24 | |
208B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
224B CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
240B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
256B %4:gpr8 = COPY killed $r24 | |
272B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
288B $r25r24 = COPY killed %3:dregs | |
304B $r22 = COPY killed %4:gpr8 | |
320B CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit killed $r25r24, implicit killed $r22, implicit-def $sp | |
336B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
352B RET | |
# End machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_. | |
Computing live-in reg-units in ABI blocks. | |
0B %bb.0 R24#0 R25#0 | |
Created 2 new intervals. | |
********** INTERVALS ********** | |
R24 [0B,16r:0)[96r,160r:4)[160r,192r:3)[224r,256r:1)[288r,320r:2) 0@0B-phi 1@224r 2@288r 3@160r 4@96r | |
R25 [0B,16r:0)[96r,160r:3)[160r,192r:2)[288r,320r:1) 0@0B-phi 1@288r 2@160r 3@96r | |
%0 [16r,96r:0) 0@16r weight:0.000000e+00 | |
%1 [64r,128r:0) 0@64r weight:0.000000e+00 | |
%2 [80r,144r:0) 0@80r weight:0.000000e+00 | |
%3 [192r,288r:0) 0@192r weight:0.000000e+00 | |
%4 [256r,304r:0) 0@256r weight:0.000000e+00 | |
RegMasks: 160r 224r 320r | |
********** MACHINEINSTRS ********** | |
# Machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_: NoPHIs, TracksLiveness | |
Frame Objects: | |
fi#0: size=2, align=2, at location [SP+2] | |
Function Live Ins: $r25r24 in %0 | |
0B bb.0.entry: | |
liveins: $r25r24 | |
16B %0:dregs = COPY $r25r24 | |
32B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
48B STDWPtrQRr %stack.0.adjustedAngle, 0, %0:dregs :: (store 2 into %ir.adjustedAngle._value1) | |
64B %1:dldregs = LDIWRdK 11 | |
80B %2:dldregs = LDIWRdK 0 | |
96B $r25r24 = COPY %0:dregs | |
112B $r23r22 = COPY %2:dldregs | |
128B $r21r20 = COPY %1:dldregs | |
144B $r19r18 = COPY %2:dldregs | |
160B CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit killed $r23r22, implicit killed $r21r20, implicit killed $r19r18, implicit-def $sp, implicit-def $r25r24 | |
176B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
192B %3:dregs = COPY $r25r24 | |
208B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
224B CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
240B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
256B %4:gpr8 = COPY $r24 | |
272B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
288B $r25r24 = COPY %3:dregs | |
304B $r22 = COPY %4:gpr8 | |
320B CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit killed $r22, implicit-def $sp | |
336B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
352B RET | |
# End machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_. | |
********** SIMPLE REGISTER COALESCING ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
********** JOINING INTERVALS *********** | |
entry: | |
16B %0:dregs = COPY $r25r24 | |
Considering merging %0 with $r25r24 | |
Can only merge into reserved registers. | |
96B $r25r24 = COPY %0:dregs | |
Considering merging %0 with $r25r24 | |
Can only merge into reserved registers. | |
112B $r23r22 = COPY %2:dldregs | |
Considering merging %2 with $r23r22 | |
Can only merge into reserved registers. | |
128B $r21r20 = COPY %1:dldregs | |
Considering merging %1 with $r21r20 | |
Can only merge into reserved registers. | |
144B $r19r18 = COPY %2:dldregs | |
Considering merging %2 with $r19r18 | |
Can only merge into reserved registers. | |
192B %3:dregs = COPY $r25r24 | |
Considering merging %3 with $r25r24 | |
Can only merge into reserved registers. | |
256B %4:gpr8 = COPY $r24 | |
Considering merging %4 with $r24 | |
Can only merge into reserved registers. | |
288B $r25r24 = COPY %3:dregs | |
Considering merging %3 with $r25r24 | |
Can only merge into reserved registers. | |
304B $r22 = COPY %4:gpr8 | |
Considering merging %4 with $r22 | |
Can only merge into reserved registers. | |
96B $r25r24 = COPY %0:dregs | |
Considering merging %0 with $r25r24 | |
Can only merge into reserved registers. | |
288B $r25r24 = COPY %3:dregs | |
Considering merging %3 with $r25r24 | |
Can only merge into reserved registers. | |
304B $r22 = COPY %4:gpr8 | |
Considering merging %4 with $r22 | |
Can only merge into reserved registers. | |
Trying to inflate 0 regs. | |
********** INTERVALS ********** | |
R24 [0B,16r:0)[96r,160r:4)[160r,192r:3)[224r,256r:1)[288r,320r:2) 0@0B-phi 1@224r 2@288r 3@160r 4@96r | |
R25 [0B,16r:0)[96r,160r:3)[160r,192r:2)[288r,320r:1) 0@0B-phi 1@288r 2@160r 3@96r | |
%0 [16r,96r:0) 0@16r weight:0.000000e+00 | |
%1 [64r,128r:0) 0@64r weight:0.000000e+00 | |
%2 [80r,144r:0) 0@80r weight:0.000000e+00 | |
%3 [192r,288r:0) 0@192r weight:0.000000e+00 | |
%4 [256r,304r:0) 0@256r weight:0.000000e+00 | |
RegMasks: 160r 224r 320r | |
********** MACHINEINSTRS ********** | |
# Machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_: NoPHIs, TracksLiveness | |
Frame Objects: | |
fi#0: size=2, align=2, at location [SP+2] | |
Function Live Ins: $r25r24 in %0 | |
0B bb.0.entry: | |
liveins: $r25r24 | |
16B %0:dregs = COPY $r25r24 | |
32B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
48B STDWPtrQRr %stack.0.adjustedAngle, 0, %0:dregs :: (store 2 into %ir.adjustedAngle._value1) | |
64B %1:dldregs = LDIWRdK 11 | |
80B %2:dldregs = LDIWRdK 0 | |
96B $r25r24 = COPY %0:dregs | |
112B $r23r22 = COPY %2:dldregs | |
128B $r21r20 = COPY %1:dldregs | |
144B $r19r18 = COPY %2:dldregs | |
160B CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit killed $r23r22, implicit killed $r21r20, implicit killed $r19r18, implicit-def $sp, implicit-def $r25r24 | |
176B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
192B %3:dregs = COPY $r25r24 | |
208B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
224B CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
240B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
256B %4:gpr8 = COPY $r24 | |
272B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
288B $r25r24 = COPY %3:dregs | |
304B $r22 = COPY %4:gpr8 | |
320B CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit killed $r22, implicit-def $sp | |
336B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
352B RET | |
# End machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_. | |
block-frequency: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
============================================================ | |
reverse-post-order-traversal | |
- 0: BB0[entry] | |
loop-detection | |
compute-mass-in-function | |
- node: BB0[entry] | |
=> mass: ffffffffffffffff | |
float-to-int: min = 1.0, max = 1.0, factor = 8.0 | |
- BB0[entry]: float = 1.0, scaled = 8.0, int = 8 | |
block-frequency-info: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
- BB0[entry]: float = 1.0, int = 8 | |
********** GREEDY REGISTER ALLOCATION ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
********** Compute Spill Weights ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
********** INTERVALS ********** | |
R24 [0B,16r:0)[96r,160r:4)[160r,192r:3)[224r,256r:1)[288r,320r:2) 0@0B-phi 1@224r 2@288r 3@160r 4@96r | |
R25 [0B,16r:0)[96r,160r:3)[160r,192r:2)[288r,320r:1) 0@0B-phi 1@288r 2@160r 3@96r | |
%0 [16r,96r:0) 0@16r weight:6.312500e-03 | |
%1 [64r,128r:0) 0@64r weight:2.176724e-03 | |
%2 [80r,144r:0) 0@80r weight:3.265086e-03 | |
%3 [192r,288r:0) 0@192r weight:4.072580e-03 | |
%4 [256r,304r:0) 0@256r weight:4.508928e-03 | |
RegMasks: 160r 224r 320r | |
********** MACHINEINSTRS ********** | |
# Machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_: NoPHIs, TracksLiveness | |
Frame Objects: | |
fi#0: size=2, align=2, at location [SP+2] | |
Function Live Ins: $r25r24 in %0 | |
0B bb.0.entry: | |
liveins: $r25r24 | |
16B %0:dregs = COPY $r25r24 | |
32B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
48B STDWPtrQRr %stack.0.adjustedAngle, 0, %0:dregs :: (store 2 into %ir.adjustedAngle._value1) | |
64B %1:dldregs = LDIWRdK 11 | |
80B %2:dldregs = LDIWRdK 0 | |
96B $r25r24 = COPY %0:dregs | |
112B $r23r22 = COPY %2:dldregs | |
128B $r21r20 = COPY %1:dldregs | |
144B $r19r18 = COPY %2:dldregs | |
160B CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit killed $r23r22, implicit killed $r21r20, implicit killed $r19r18, implicit-def $sp, implicit-def $r25r24 | |
176B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
192B %3:dregs = COPY $r25r24 | |
208B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
224B CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
240B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
256B %4:gpr8 = COPY $r24 | |
272B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
288B $r25r24 = COPY %3:dregs | |
304B $r22 = COPY %4:gpr8 | |
320B CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit killed $r22, implicit-def $sp | |
336B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
352B RET | |
# End machine code for function _TF4main13setServoAngleFT5angleVs6UInt16_T_. | |
selectOrSplit DREGS:%0 [16r,96r:0) 0@16r weight:6.312500e-03 w=6.312500e-03 | |
AllocationOrder(DREGS) = [ $r25r24 $r19r18 $r21r20 $r23r22 $r31r30 $r27r26 $r17r16 $r15r14 $r13r12 $r11r10 $r9r8 $r7r6 $r5r4 $r3r2 ] | |
hints: $r25r24 | |
assigning %0 to $r25r24: R24 [16r,96r:0) 0@16r R25 [16r,96r:0) 0@16r | |
selectOrSplit DLDREGS:%1 [64r,128r:0) 0@64r weight:2.176724e-03 w=2.176724e-03 | |
AllocationOrder(DLDREGS) = [ $r25r24 $r19r18 $r21r20 $r23r22 $r31r30 $r27r26 $r17r16 ] (sub-class) | |
hints: $r21r20 | |
assigning %1 to $r21r20: R20 [64r,128r:0) 0@64r R21 [64r,128r:0) 0@64r | |
selectOrSplit DLDREGS:%2 [80r,144r:0) 0@80r weight:3.265086e-03 w=3.265086e-03 | |
hints: $r19r18 $r23r22 | |
assigning %2 to $r19r18: R18 [80r,144r:0) 0@80r R19 [80r,144r:0) 0@80r | |
selectOrSplit DREGS:%3 [192r,288r:0) 0@192r weight:4.072580e-03 w=4.072580e-03 | |
hints: $r25r24 | |
missed hint $r25r24 | |
assigning %3 to $r17r16: R16 [192r,288r:0) 0@192r R17 [192r,288r:0) 0@192r | |
selectOrSplit GPR8:%4 [256r,304r:0) 0@256r weight:4.508928e-03 w=4.508928e-03 | |
AllocationOrder(GPR8) = [ $r24 $r25 $r18 $r19 $r20 $r21 $r22 $r23 $r30 $r31 $r26 $r27 $r17 $r16 $r15 $r14 $r13 $r12 $r11 $r10 $r9 $r8 $r7 $r6 $r5 $r4 $r3 $r2 ] | |
hints: $r22 $r24 | |
assigning %4 to $r22: R22 [256r,304r:0) 0@256r | |
Trying to reconcile hints for: %3($r17r16) | |
%3($r17r16) is recolorable. | |
********** REWRITE VIRTUAL REGISTERS ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
********** REGISTER MAP ********** | |
[%0 -> $r25r24] DREGS | |
[%1 -> $r21r20] DLDREGS | |
[%2 -> $r19r18] DLDREGS | |
[%3 -> $r17r16] DREGS | |
[%4 -> $r22] GPR8 | |
0B bb.0.entry: | |
liveins: $r25r24 | |
16B %0:dregs = COPY $r25r24 | |
32B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
48B STDWPtrQRr %stack.0.adjustedAngle, 0, %0:dregs :: (store 2 into %ir.adjustedAngle._value1) | |
64B %1:dldregs = LDIWRdK 11 | |
80B %2:dldregs = LDIWRdK 0 | |
96B $r25r24 = COPY killed %0:dregs | |
112B $r23r22 = COPY %2:dldregs | |
128B $r21r20 = COPY killed %1:dldregs | |
144B $r19r18 = COPY killed %2:dldregs | |
160B CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r23r22, implicit $r21r20, implicit $r19r18, implicit-def $sp, implicit-def $r25r24 | |
176B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
192B %3:dregs = COPY $r25r24 | |
208B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
224B CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
240B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
256B %4:gpr8 = COPY $r24 | |
272B ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
288B $r25r24 = COPY killed %3:dregs | |
304B $r22 = COPY killed %4:gpr8 | |
320B CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r22, implicit-def $sp | |
336B ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
352B RET | |
> $r25r24 = COPY $r25r24 | |
Identity copy: $r25r24 = COPY $r25r24 | |
deleted. | |
> ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
> STDWPtrQRr %stack.0.adjustedAngle, 0, $r25r24 :: (store 2 into %ir.adjustedAngle._value1) | |
> $r21r20 = LDIWRdK 11 | |
> $r19r18 = LDIWRdK 0 | |
> $r25r24 = COPY killed $r25r24 | |
Identity copy: $r25r24 = COPY killed $r25r24 | |
deleted. | |
> $r23r22 = COPY $r19r18 | |
> $r21r20 = COPY killed $r21r20 | |
Identity copy: $r21r20 = COPY killed $r21r20 | |
deleted. | |
> $r19r18 = COPY killed $r19r18 | |
Identity copy: $r19r18 = COPY killed $r19r18 | |
deleted. | |
> CALLk &__mulsi3, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r23r22, implicit $r21r20, implicit $r19r18, implicit-def $sp, implicit-def $r25r24 | |
> ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
> $r17r16 = COPY $r25r24 | |
> ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
> CALLk @_TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit-def $sp, implicit-def $r24 | |
> ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
> $r22 = COPY $r24 | |
> ADJCALLSTACKDOWN 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
> $r25r24 = COPY killed $r17r16 | |
> $r22 = COPY killed $r22 | |
Identity copy: $r22 = COPY killed $r22 | |
deleted. | |
> CALLk @_TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_, <regmask $r2 $r3 $r4 $r5 $r6 $r7 $r8 $r9 $r10 $r11 $r12 $r13 $r14 $r15 $r16 $r17 $r28 $r29 $r3r2 $r5r4 $r7r6 $r9r8 $r11r10 $r13r12 $r15r14 $r17r16 $r29r28>, implicit $sp, implicit $r25r24, implicit $r22, implicit-def $sp | |
> ADJCALLSTACKUP 0, 0, implicit-def dead $sp, implicit-def dead $sreg, implicit $sp | |
> RET | |
********** Stack Slot Coloring ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
MCP: CopyPropagateBlock entry | |
MCP: Copy is a deletion candidate: $r23r22 = COPY $r19r18 | |
MCP: Copy is used - not dead: $r23r22 = COPY $r19r18 | |
MCP: Copy is used - not dead: $r23r22 = COPY $r19r18 | |
MCP: Copy is a deletion candidate: $r17r16 = COPY $r25r24 | |
MCP: Copy is a deletion candidate: $r22 = COPY $r24 | |
MCP: Copy is used - not dead: $r17r16 = COPY $r25r24 | |
MCP: Copy is used - not dead: $r17r16 = COPY $r25r24 | |
MCP: Copy is a deletion candidate: $r25r24 = COPY killed $r17r16 | |
MCP: Copy is used - not dead: $r25r24 = COPY killed $r17r16 | |
MCP: Copy is used - not dead: $r25r24 = COPY killed $r17r16 | |
MCP: Copy is used - not dead: $r22 = COPY $r24 | |
******** Post-regalloc Machine LICM: _TF4main13setServoAngleFT5angleVs6UInt16_T_ ******** | |
block-frequency: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
============================================================ | |
reverse-post-order-traversal | |
- 0: BB0[entry] | |
loop-detection | |
compute-mass-in-function | |
- node: BB0[entry] | |
=> mass: ffffffffffffffff | |
float-to-int: min = 1.0, max = 1.0, factor = 8.0 | |
- BB0[entry]: float = 1.0, scaled = 8.0, int = 8 | |
block-frequency-info: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
- BB0[entry]: float = 1.0, int = 8 | |
Looking for trivial roots | |
Found a new trivial root: %bb.0 | |
Last visited node: %bb.0 | |
Looking for non-trivial roots | |
Total: 1, Num: 2 | |
Discovered CFG nodes: | |
0: nullptr | |
1: nullptr | |
2: %bb.0 | |
Found roots: %bb.0 | |
discovered a new reachable node nullptr | |
discovered a new reachable node %bb.0 | |
alloc FI(1) at SP[-3] | |
alloc FI(2) at SP[-4] | |
alloc FI(0) at SP[-6] | |
MCP: CopyPropagateBlock entry | |
MCP: Copy is a deletion candidate: $r23r22 = COPY $r19r18 | |
MCP: Copy is used - not dead: $r23r22 = COPY $r19r18 | |
MCP: Copy is used - not dead: $r23r22 = COPY $r19r18 | |
MCP: Copy is a deletion candidate: $r17r16 = COPY $r25r24 | |
MCP: Copy is a deletion candidate: $r22 = COPY $r24 | |
MCP: Copy is used - not dead: $r17r16 = COPY $r25r24 | |
MCP: Copy is used - not dead: $r17r16 = COPY $r25r24 | |
MCP: Copy is a deletion candidate: $r25r24 = COPY killed $r17r16 | |
MCP: Copy is used - not dead: $r25r24 = COPY killed $r17r16 | |
MCP: Copy is used - not dead: $r25r24 = COPY killed $r17r16 | |
MCP: Copy is used - not dead: $r22 = COPY $r24 | |
Machine Function | |
********** EXPANDING POST-RA PSEUDO INSTRS ********** | |
********** Function: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
real copy: $r23r22 = COPY $r19r18 | |
replaced by: $r23 = MOVRdRr $r19 | |
real copy: $r17r16 = COPY $r25r24 | |
replaced by: $r17 = MOVRdRr $r25 | |
real copy: $r22 = COPY $r24 | |
replaced by: $r22 = MOVRdRr $r24 | |
real copy: $r25r24 = COPY killed $r17r16 | |
replaced by: $r25 = MOVRdRr killed $r17 | |
discovered a new reachable node %bb.0 | |
block-frequency: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
============================================================ | |
reverse-post-order-traversal | |
- 0: BB0[entry] | |
loop-detection | |
compute-mass-in-function | |
- node: BB0[entry] | |
=> mass: ffffffffffffffff | |
float-to-int: min = 1.0, max = 1.0, factor = 8.0 | |
- BB0[entry]: float = 1.0, scaled = 8.0, int = 8 | |
block-frequency-info: _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
- BB0[entry]: float = 1.0, int = 8 | |
Looking for trivial roots | |
Found a new trivial root: %bb.0 | |
Last visited node: %bb.0 | |
Looking for non-trivial roots | |
Total: 1, Num: 2 | |
Discovered CFG nodes: | |
0: nullptr | |
1: nullptr | |
2: %bb.0 | |
Found roots: %bb.0 | |
discovered a new reachable node nullptr | |
discovered a new reachable node %bb.0 | |
***** BranchRelaxation ***** | |
Basic blocks before relaxation | |
bb.0 offset=00000000 size=0x54 | |
Basic blocks after relaxation | |
bb.0 offset=00000000 size=0x54 | |
********** COMPUTING STACKMAP LIVENESS: _TF4main13setServoAngleFT5angleVs6UInt16_T_ ********** | |
.hidden _TF4main13setServoAngleFT5angleVs6UInt16_T_ ; -- Begin function _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
.globl _TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
.p2align 1 | |
.type _TF4main13setServoAngleFT5angleVs6UInt16_T_,@function | |
_TF4main13setServoAngleFT5angleVs6UInt16_T_: ; @_TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
discovered a new reachable node %bb.0 | |
; %bb.0: ; %entry | |
push r28 | |
push r29 | |
push r16 | |
push r17 | |
in r28, 61 | |
in r29, 62 | |
sbiw r28, 2 | |
in r0, 63 | |
cli | |
out 62, r29 | |
out 63, r0 | |
out 61, r28 | |
std Y+1, r24 | |
std Y+2, r25 | |
ldi r20, 11 | |
ldi r21, 0 | |
ldi r18, 0 | |
ldi r19, 0 | |
mov r22, r18 | |
mov r23, r19 | |
call __mulsi3 | |
mov r16, r24 | |
mov r17, r25 | |
call _TIF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_A0_ | |
mov r22, r24 | |
mov r24, r16 | |
mov r25, r17 | |
call _TF3AVR5printFT11unsignedIntVs6UInt1610addNewlineSb_T_ | |
adiw r28, 2 | |
in r0, 63 | |
cli | |
out 62, r29 | |
out 63, r0 | |
out 61, r28 | |
pop r17 | |
pop r16 | |
pop r29 | |
pop r28 | |
ret | |
.Lfunc_end0: | |
.size _TF4main13setServoAngleFT5angleVs6UInt16_T_, .Lfunc_end0-_TF4main13setServoAngleFT5angleVs6UInt16_T_ | |
; -- End function | |
; Declaring this symbol tells the CRT that it should | |
;copy all variables from program memory to RAM on startup | |
.globl __do_copy_data | |
; Declaring this symbol tells the CRT that it should | |
;clear the zeroed data section on startup | |
.globl __do_clear_bss | |
Carls-MacBook-Air:AVR carlpeto$ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment