diff --git a/cpp/ql/src/semmle/code/cpp/ir/internal/Instruction.qll b/cpp/ql/src/semmle/code/cpp/ir/internal/Instruction.qll index 480fac7707c6..7f01c8356b79 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/internal/Instruction.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/internal/Instruction.qll @@ -545,6 +545,10 @@ class InitializeParameterInstruction extends VariableInstruction { final Parameter getParameter() { result = var.(IRUserVariable).getVariable() } + + override final MemoryAccessKind getResultMemoryAccess() { + result instanceof IndirectMemoryAccess + } } class FieldAddressInstruction extends FieldInstruction { @@ -561,6 +565,10 @@ class UninitializedInstruction extends Instruction { UninitializedInstruction() { opcode instanceof Opcode::Uninitialized } + + override final MemoryAccessKind getResultMemoryAccess() { + result instanceof IndirectMemoryAccess + } } class NoOpInstruction extends Instruction { diff --git a/cpp/ql/src/semmle/code/cpp/ir/internal/InstructionTag.qll b/cpp/ql/src/semmle/code/cpp/ir/internal/InstructionTag.qll index bec350fd22eb..76a62308a386 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/internal/InstructionTag.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/internal/InstructionTag.qll @@ -17,8 +17,6 @@ private predicate elementIsInitialized(int elementIndex) { newtype TInstructionTag = OnlyInstructionTag() or // Single instruction (not including implicit Load) - InitializerUninitializedTag() or // Source expression of initializer - ParameterInitializerTag() or InitializeThisTag() or InitializerVariableAddressTag() or InitializerLoadStringTag() or @@ -88,8 +86,6 @@ newtype TInstructionTag = */ string getInstructionTagId(TInstructionTag tag) { tag = OnlyInstructionTag() and result = "Only" or // Single instruction (not including implicit Load) - tag = InitializerUninitializedTag() and result = "InitUninit" or // Source expression of initializer - tag = ParameterInitializerTag() and result = "ParamInit" or tag = InitializerVariableAddressTag() and result = "InitVarAddr" or tag = InitializerStoreTag() and result = "InitStore" or tag = AssignOperationLoadTag() and result = "AssignOpLoad" or diff --git a/cpp/ql/src/semmle/code/cpp/ir/internal/Opcode.qll b/cpp/ql/src/semmle/code/cpp/ir/internal/Opcode.qll index 922c2a0d95cc..f8d028b9d093 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/internal/Opcode.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/internal/Opcode.qll @@ -92,8 +92,8 @@ abstract class BuiltInOpcode extends Opcode {} module Opcode { class NoOp extends Opcode, TNoOp { override final string toString() { result = "NoOp" } } - class Uninitialized extends Opcode, TUninitialized { override final string toString() { result = "Uninitialized" } } - class InitializeParameter extends Opcode, TInitializeParameter { override final string toString() { result = "InitializeParameter" } } + class Uninitialized extends MemoryAccessOpcode, TUninitialized { override final string toString() { result = "Uninitialized" } } + class InitializeParameter extends MemoryAccessOpcode, TInitializeParameter { override final string toString() { result = "InitializeParameter" } } class InitializeThis extends Opcode, TInitializeThis { override final string toString() { result = "InitializeThis" } } class EnterFunction extends Opcode, TEnterFunction { override final string toString() { result = "EnterFunction" } } class ExitFunction extends Opcode, TExitFunction { override final string toString() { result = "ExitFunction" } } diff --git a/cpp/ql/src/semmle/code/cpp/ir/internal/TranslatedDeclarationEntry.qll b/cpp/ql/src/semmle/code/cpp/ir/internal/TranslatedDeclarationEntry.qll index 5e060fa08fb5..fdfa153494c7 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/internal/TranslatedDeclarationEntry.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/internal/TranslatedDeclarationEntry.qll @@ -98,8 +98,8 @@ abstract class TranslatedVariableDeclaration extends /** * Represents the IR translation of a local variable with no initializer. The - * generated IR stores the result of an `Uninitialized` instruction into the - * variable. + * generated IR stores into the variable using an `Uninitialized` instruction, + * rather than a `Store`. */ class TranslatedUninitializedVariable extends TranslatedVariableDeclaration { @@ -127,12 +127,6 @@ class TranslatedUninitializedVariable extends ) or ( tag = InitializerStoreTag() and - opcode instanceof Opcode::Store and - resultType = var.getType().getUnspecifiedType() and - isGLValue = false - ) or - ( - tag = InitializerUninitializedTag() and opcode instanceof Opcode::Uninitialized and resultType = var.getType().getUnspecifiedType() and isGLValue = false @@ -145,10 +139,6 @@ class TranslatedUninitializedVariable extends ( ( tag = InitializerVariableAddressTag() and - result = getInstruction(InitializerUninitializedTag()) - ) or - ( - tag = InitializerUninitializedTag() and result = getInstruction(InitializerStoreTag()) ) or ( @@ -169,11 +159,7 @@ class TranslatedUninitializedVariable extends ( operandTag instanceof LoadStoreAddressOperand and result = getInstruction(InitializerVariableAddressTag()) - ) or - ( - operandTag instanceof CopySourceOperand and - result = getInstruction(InitializerUninitializedTag()) - ) + ) ) } diff --git a/cpp/ql/src/semmle/code/cpp/ir/internal/TranslatedFunction.qll b/cpp/ql/src/semmle/code/cpp/ir/internal/TranslatedFunction.qll index a13815fdbb14..9125d6bf7d29 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/internal/TranslatedFunction.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/internal/TranslatedFunction.qll @@ -323,7 +323,7 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter { } override final Instruction getFirstInstruction() { - result = getInstruction(ParameterInitializerTag()) + result = getInstruction(InitializerVariableAddressTag()) } override final TranslatedElement getChild(int id) { @@ -334,10 +334,6 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter { EdgeKind kind) { kind instanceof GotoEdge and ( - ( - tag = ParameterInitializerTag() and - result = getInstruction(InitializerVariableAddressTag()) - ) or ( tag = InitializerVariableAddressTag() and result = getInstruction(InitializerStoreTag()) @@ -355,12 +351,6 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter { override final predicate hasInstruction(Opcode opcode, InstructionTag tag, Type resultType, boolean isGLValue) { - ( - tag = ParameterInitializerTag() and - opcode instanceof Opcode::InitializeParameter and - resultType = param.getType().getUnspecifiedType() and - isGLValue = false - ) or ( tag = InitializerVariableAddressTag() and opcode instanceof Opcode::VariableAddress and @@ -369,7 +359,7 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter { ) or ( tag = InitializerStoreTag() and - opcode instanceof Opcode::Store and + opcode instanceof Opcode::InitializeParameter and resultType = param.getType().getUnspecifiedType() and isGLValue = false ) @@ -377,7 +367,7 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter { override final IRVariable getInstructionVariable(InstructionTag tag) { ( - tag = ParameterInitializerTag() or + tag = InitializerStoreTag() or tag = InitializerVariableAddressTag() ) and result = getIRUserVariable(getFunction(), param) @@ -390,10 +380,6 @@ class TranslatedParameter extends TranslatedElement, TTranslatedParameter { ( operandTag instanceof LoadStoreAddressOperand and result = getInstruction(InitializerVariableAddressTag()) - ) or - ( - operandTag instanceof CopySourceOperand and - result = getInstruction(ParameterInitializerTag()) ) ) } diff --git a/cpp/ql/src/semmle/code/cpp/ssa/internal/aliased_ssa/Instruction.qll b/cpp/ql/src/semmle/code/cpp/ssa/internal/aliased_ssa/Instruction.qll index 480fac7707c6..7f01c8356b79 100644 --- a/cpp/ql/src/semmle/code/cpp/ssa/internal/aliased_ssa/Instruction.qll +++ b/cpp/ql/src/semmle/code/cpp/ssa/internal/aliased_ssa/Instruction.qll @@ -545,6 +545,10 @@ class InitializeParameterInstruction extends VariableInstruction { final Parameter getParameter() { result = var.(IRUserVariable).getVariable() } + + override final MemoryAccessKind getResultMemoryAccess() { + result instanceof IndirectMemoryAccess + } } class FieldAddressInstruction extends FieldInstruction { @@ -561,6 +565,10 @@ class UninitializedInstruction extends Instruction { UninitializedInstruction() { opcode instanceof Opcode::Uninitialized } + + override final MemoryAccessKind getResultMemoryAccess() { + result instanceof IndirectMemoryAccess + } } class NoOpInstruction extends Instruction { diff --git a/cpp/ql/src/semmle/code/cpp/ssa/internal/ssa/Instruction.qll b/cpp/ql/src/semmle/code/cpp/ssa/internal/ssa/Instruction.qll index 480fac7707c6..7f01c8356b79 100644 --- a/cpp/ql/src/semmle/code/cpp/ssa/internal/ssa/Instruction.qll +++ b/cpp/ql/src/semmle/code/cpp/ssa/internal/ssa/Instruction.qll @@ -545,6 +545,10 @@ class InitializeParameterInstruction extends VariableInstruction { final Parameter getParameter() { result = var.(IRUserVariable).getVariable() } + + override final MemoryAccessKind getResultMemoryAccess() { + result instanceof IndirectMemoryAccess + } } class FieldAddressInstruction extends FieldInstruction { @@ -561,6 +565,10 @@ class UninitializedInstruction extends Instruction { UninitializedInstruction() { opcode instanceof Opcode::Uninitialized } + + override final MemoryAccessKind getResultMemoryAccess() { + result instanceof IndirectMemoryAccess + } } class NoOpInstruction extends Instruction { diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_ir.expected index 66a577ae332a..8f10a593dd38 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ssa_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ssa_ir.expected @@ -128,795 +128,763 @@ ir.cpp: # 50| Block 0 # 50| v0_0(void) = EnterFunction : # 50| mu0_1(unknown) = UnmodeledDefinition : -# 50| r0_2(int) = InitializeParameter[x] : -# 50| r0_3(glval) = VariableAddress[x] : -# 50| m0_4(int) = Store : r0_3, r0_2 -# 50| r0_5(int) = InitializeParameter[y] : -# 50| r0_6(glval) = VariableAddress[y] : -# 50| m0_7(int) = Store : r0_6, r0_5 -# 51| r0_8(glval) = VariableAddress[z] : -# 51| r0_9(int) = Uninitialized : -# 51| m0_10(int) = Store : r0_8, r0_9 -# 53| r0_11(glval) = VariableAddress[x] : -# 53| r0_12(int) = Load : r0_11, m0_4 -# 53| r0_13(glval) = VariableAddress[y] : -# 53| r0_14(int) = Load : r0_13, m0_7 -# 53| r0_15(int) = Add : r0_12, r0_14 -# 53| r0_16(glval) = VariableAddress[z] : -# 53| m0_17(int) = Store : r0_16, r0_15 -# 54| r0_18(glval) = VariableAddress[x] : -# 54| r0_19(int) = Load : r0_18, m0_4 -# 54| r0_20(glval) = VariableAddress[y] : -# 54| r0_21(int) = Load : r0_20, m0_7 -# 54| r0_22(int) = Sub : r0_19, r0_21 -# 54| r0_23(glval) = VariableAddress[z] : -# 54| m0_24(int) = Store : r0_23, r0_22 -# 55| r0_25(glval) = VariableAddress[x] : -# 55| r0_26(int) = Load : r0_25, m0_4 -# 55| r0_27(glval) = VariableAddress[y] : -# 55| r0_28(int) = Load : r0_27, m0_7 -# 55| r0_29(int) = Mul : r0_26, r0_28 -# 55| r0_30(glval) = VariableAddress[z] : -# 55| m0_31(int) = Store : r0_30, r0_29 -# 56| r0_32(glval) = VariableAddress[x] : -# 56| r0_33(int) = Load : r0_32, m0_4 -# 56| r0_34(glval) = VariableAddress[y] : -# 56| r0_35(int) = Load : r0_34, m0_7 -# 56| r0_36(int) = Div : r0_33, r0_35 -# 56| r0_37(glval) = VariableAddress[z] : -# 56| m0_38(int) = Store : r0_37, r0_36 -# 57| r0_39(glval) = VariableAddress[x] : -# 57| r0_40(int) = Load : r0_39, m0_4 -# 57| r0_41(glval) = VariableAddress[y] : -# 57| r0_42(int) = Load : r0_41, m0_7 -# 57| r0_43(int) = Rem : r0_40, r0_42 -# 57| r0_44(glval) = VariableAddress[z] : -# 57| m0_45(int) = Store : r0_44, r0_43 -# 59| r0_46(glval) = VariableAddress[x] : -# 59| r0_47(int) = Load : r0_46, m0_4 -# 59| r0_48(glval) = VariableAddress[y] : -# 59| r0_49(int) = Load : r0_48, m0_7 -# 59| r0_50(int) = BitAnd : r0_47, r0_49 -# 59| r0_51(glval) = VariableAddress[z] : -# 59| m0_52(int) = Store : r0_51, r0_50 -# 60| r0_53(glval) = VariableAddress[x] : -# 60| r0_54(int) = Load : r0_53, m0_4 -# 60| r0_55(glval) = VariableAddress[y] : -# 60| r0_56(int) = Load : r0_55, m0_7 -# 60| r0_57(int) = BitOr : r0_54, r0_56 -# 60| r0_58(glval) = VariableAddress[z] : -# 60| m0_59(int) = Store : r0_58, r0_57 -# 61| r0_60(glval) = VariableAddress[x] : -# 61| r0_61(int) = Load : r0_60, m0_4 -# 61| r0_62(glval) = VariableAddress[y] : -# 61| r0_63(int) = Load : r0_62, m0_7 -# 61| r0_64(int) = BitXor : r0_61, r0_63 -# 61| r0_65(glval) = VariableAddress[z] : -# 61| m0_66(int) = Store : r0_65, r0_64 -# 63| r0_67(glval) = VariableAddress[x] : -# 63| r0_68(int) = Load : r0_67, m0_4 -# 63| r0_69(glval) = VariableAddress[y] : -# 63| r0_70(int) = Load : r0_69, m0_7 -# 63| r0_71(int) = ShiftLeft : r0_68, r0_70 -# 63| r0_72(glval) = VariableAddress[z] : -# 63| m0_73(int) = Store : r0_72, r0_71 -# 64| r0_74(glval) = VariableAddress[x] : -# 64| r0_75(int) = Load : r0_74, m0_4 -# 64| r0_76(glval) = VariableAddress[y] : -# 64| r0_77(int) = Load : r0_76, m0_7 -# 64| r0_78(int) = ShiftRight : r0_75, r0_77 -# 64| r0_79(glval) = VariableAddress[z] : -# 64| m0_80(int) = Store : r0_79, r0_78 -# 66| r0_81(glval) = VariableAddress[x] : -# 66| r0_82(int) = Load : r0_81, m0_4 -# 66| r0_83(glval) = VariableAddress[z] : -# 66| m0_84(int) = Store : r0_83, r0_82 -# 68| r0_85(glval) = VariableAddress[x] : -# 68| r0_86(int) = Load : r0_85, m0_4 -# 68| r0_87(glval) = VariableAddress[z] : -# 68| r0_88(int) = Load : r0_87, m0_84 -# 68| r0_89(int) = Add : r0_88, r0_86 -# 68| m0_90(int) = Store : r0_87, r0_89 -# 69| r0_91(glval) = VariableAddress[x] : -# 69| r0_92(int) = Load : r0_91, m0_4 -# 69| r0_93(glval) = VariableAddress[z] : -# 69| r0_94(int) = Load : r0_93, m0_90 -# 69| r0_95(int) = Sub : r0_94, r0_92 -# 69| m0_96(int) = Store : r0_93, r0_95 -# 70| r0_97(glval) = VariableAddress[x] : -# 70| r0_98(int) = Load : r0_97, m0_4 -# 70| r0_99(glval) = VariableAddress[z] : -# 70| r0_100(int) = Load : r0_99, m0_96 -# 70| r0_101(int) = Mul : r0_100, r0_98 -# 70| m0_102(int) = Store : r0_99, r0_101 -# 71| r0_103(glval) = VariableAddress[x] : -# 71| r0_104(int) = Load : r0_103, m0_4 -# 71| r0_105(glval) = VariableAddress[z] : -# 71| r0_106(int) = Load : r0_105, m0_102 -# 71| r0_107(int) = Div : r0_106, r0_104 -# 71| m0_108(int) = Store : r0_105, r0_107 -# 72| r0_109(glval) = VariableAddress[x] : -# 72| r0_110(int) = Load : r0_109, m0_4 -# 72| r0_111(glval) = VariableAddress[z] : -# 72| r0_112(int) = Load : r0_111, m0_108 -# 72| r0_113(int) = Rem : r0_112, r0_110 -# 72| m0_114(int) = Store : r0_111, r0_113 -# 74| r0_115(glval) = VariableAddress[x] : -# 74| r0_116(int) = Load : r0_115, m0_4 -# 74| r0_117(glval) = VariableAddress[z] : -# 74| r0_118(int) = Load : r0_117, m0_114 -# 74| r0_119(int) = BitAnd : r0_118, r0_116 -# 74| m0_120(int) = Store : r0_117, r0_119 -# 75| r0_121(glval) = VariableAddress[x] : -# 75| r0_122(int) = Load : r0_121, m0_4 -# 75| r0_123(glval) = VariableAddress[z] : -# 75| r0_124(int) = Load : r0_123, m0_120 -# 75| r0_125(int) = BitOr : r0_124, r0_122 -# 75| m0_126(int) = Store : r0_123, r0_125 -# 76| r0_127(glval) = VariableAddress[x] : -# 76| r0_128(int) = Load : r0_127, m0_4 -# 76| r0_129(glval) = VariableAddress[z] : -# 76| r0_130(int) = Load : r0_129, m0_126 -# 76| r0_131(int) = BitXor : r0_130, r0_128 -# 76| m0_132(int) = Store : r0_129, r0_131 -# 78| r0_133(glval) = VariableAddress[x] : -# 78| r0_134(int) = Load : r0_133, m0_4 -# 78| r0_135(glval) = VariableAddress[z] : -# 78| r0_136(int) = Load : r0_135, m0_132 -# 78| r0_137(int) = ShiftLeft : r0_136, r0_134 -# 78| m0_138(int) = Store : r0_135, r0_137 -# 79| r0_139(glval) = VariableAddress[x] : -# 79| r0_140(int) = Load : r0_139, m0_4 -# 79| r0_141(glval) = VariableAddress[z] : -# 79| r0_142(int) = Load : r0_141, m0_138 -# 79| r0_143(int) = ShiftRight : r0_142, r0_140 -# 79| m0_144(int) = Store : r0_141, r0_143 -# 81| r0_145(glval) = VariableAddress[x] : -# 81| r0_146(int) = Load : r0_145, m0_4 -# 81| r0_147(int) = CopyValue : r0_146 -# 81| r0_148(glval) = VariableAddress[z] : -# 81| m0_149(int) = Store : r0_148, r0_147 -# 82| r0_150(glval) = VariableAddress[x] : -# 82| r0_151(int) = Load : r0_150, m0_4 -# 82| r0_152(int) = Negate : r0_151 -# 82| r0_153(glval) = VariableAddress[z] : -# 82| m0_154(int) = Store : r0_153, r0_152 -# 83| r0_155(glval) = VariableAddress[x] : -# 83| r0_156(int) = Load : r0_155, m0_4 -# 83| r0_157(int) = BitComplement : r0_156 -# 83| r0_158(glval) = VariableAddress[z] : -# 83| m0_159(int) = Store : r0_158, r0_157 -# 84| r0_160(glval) = VariableAddress[x] : -# 84| r0_161(int) = Load : r0_160, m0_4 -# 84| r0_162(int) = Constant[0] : -# 84| r0_163(bool) = CompareNE : r0_161, r0_162 -# 84| r0_164(bool) = LogicalNot : r0_163 -# 84| r0_165(int) = Convert : r0_164 -# 84| r0_166(glval) = VariableAddress[z] : -# 84| m0_167(int) = Store : r0_166, r0_165 -# 85| v0_168(void) = NoOp : -# 50| v0_169(void) = ReturnVoid : -# 50| v0_170(void) = UnmodeledUse : mu* -# 50| v0_171(void) = ExitFunction : +# 50| r0_2(glval) = VariableAddress[x] : +# 50| m0_3(int) = InitializeParameter[x] : r0_2 +# 50| r0_4(glval) = VariableAddress[y] : +# 50| m0_5(int) = InitializeParameter[y] : r0_4 +# 51| r0_6(glval) = VariableAddress[z] : +# 51| m0_7(int) = Uninitialized : r0_6 +# 53| r0_8(glval) = VariableAddress[x] : +# 53| r0_9(int) = Load : r0_8, m0_3 +# 53| r0_10(glval) = VariableAddress[y] : +# 53| r0_11(int) = Load : r0_10, m0_5 +# 53| r0_12(int) = Add : r0_9, r0_11 +# 53| r0_13(glval) = VariableAddress[z] : +# 53| m0_14(int) = Store : r0_13, r0_12 +# 54| r0_15(glval) = VariableAddress[x] : +# 54| r0_16(int) = Load : r0_15, m0_3 +# 54| r0_17(glval) = VariableAddress[y] : +# 54| r0_18(int) = Load : r0_17, m0_5 +# 54| r0_19(int) = Sub : r0_16, r0_18 +# 54| r0_20(glval) = VariableAddress[z] : +# 54| m0_21(int) = Store : r0_20, r0_19 +# 55| r0_22(glval) = VariableAddress[x] : +# 55| r0_23(int) = Load : r0_22, m0_3 +# 55| r0_24(glval) = VariableAddress[y] : +# 55| r0_25(int) = Load : r0_24, m0_5 +# 55| r0_26(int) = Mul : r0_23, r0_25 +# 55| r0_27(glval) = VariableAddress[z] : +# 55| m0_28(int) = Store : r0_27, r0_26 +# 56| r0_29(glval) = VariableAddress[x] : +# 56| r0_30(int) = Load : r0_29, m0_3 +# 56| r0_31(glval) = VariableAddress[y] : +# 56| r0_32(int) = Load : r0_31, m0_5 +# 56| r0_33(int) = Div : r0_30, r0_32 +# 56| r0_34(glval) = VariableAddress[z] : +# 56| m0_35(int) = Store : r0_34, r0_33 +# 57| r0_36(glval) = VariableAddress[x] : +# 57| r0_37(int) = Load : r0_36, m0_3 +# 57| r0_38(glval) = VariableAddress[y] : +# 57| r0_39(int) = Load : r0_38, m0_5 +# 57| r0_40(int) = Rem : r0_37, r0_39 +# 57| r0_41(glval) = VariableAddress[z] : +# 57| m0_42(int) = Store : r0_41, r0_40 +# 59| r0_43(glval) = VariableAddress[x] : +# 59| r0_44(int) = Load : r0_43, m0_3 +# 59| r0_45(glval) = VariableAddress[y] : +# 59| r0_46(int) = Load : r0_45, m0_5 +# 59| r0_47(int) = BitAnd : r0_44, r0_46 +# 59| r0_48(glval) = VariableAddress[z] : +# 59| m0_49(int) = Store : r0_48, r0_47 +# 60| r0_50(glval) = VariableAddress[x] : +# 60| r0_51(int) = Load : r0_50, m0_3 +# 60| r0_52(glval) = VariableAddress[y] : +# 60| r0_53(int) = Load : r0_52, m0_5 +# 60| r0_54(int) = BitOr : r0_51, r0_53 +# 60| r0_55(glval) = VariableAddress[z] : +# 60| m0_56(int) = Store : r0_55, r0_54 +# 61| r0_57(glval) = VariableAddress[x] : +# 61| r0_58(int) = Load : r0_57, m0_3 +# 61| r0_59(glval) = VariableAddress[y] : +# 61| r0_60(int) = Load : r0_59, m0_5 +# 61| r0_61(int) = BitXor : r0_58, r0_60 +# 61| r0_62(glval) = VariableAddress[z] : +# 61| m0_63(int) = Store : r0_62, r0_61 +# 63| r0_64(glval) = VariableAddress[x] : +# 63| r0_65(int) = Load : r0_64, m0_3 +# 63| r0_66(glval) = VariableAddress[y] : +# 63| r0_67(int) = Load : r0_66, m0_5 +# 63| r0_68(int) = ShiftLeft : r0_65, r0_67 +# 63| r0_69(glval) = VariableAddress[z] : +# 63| m0_70(int) = Store : r0_69, r0_68 +# 64| r0_71(glval) = VariableAddress[x] : +# 64| r0_72(int) = Load : r0_71, m0_3 +# 64| r0_73(glval) = VariableAddress[y] : +# 64| r0_74(int) = Load : r0_73, m0_5 +# 64| r0_75(int) = ShiftRight : r0_72, r0_74 +# 64| r0_76(glval) = VariableAddress[z] : +# 64| m0_77(int) = Store : r0_76, r0_75 +# 66| r0_78(glval) = VariableAddress[x] : +# 66| r0_79(int) = Load : r0_78, m0_3 +# 66| r0_80(glval) = VariableAddress[z] : +# 66| m0_81(int) = Store : r0_80, r0_79 +# 68| r0_82(glval) = VariableAddress[x] : +# 68| r0_83(int) = Load : r0_82, m0_3 +# 68| r0_84(glval) = VariableAddress[z] : +# 68| r0_85(int) = Load : r0_84, m0_81 +# 68| r0_86(int) = Add : r0_85, r0_83 +# 68| m0_87(int) = Store : r0_84, r0_86 +# 69| r0_88(glval) = VariableAddress[x] : +# 69| r0_89(int) = Load : r0_88, m0_3 +# 69| r0_90(glval) = VariableAddress[z] : +# 69| r0_91(int) = Load : r0_90, m0_87 +# 69| r0_92(int) = Sub : r0_91, r0_89 +# 69| m0_93(int) = Store : r0_90, r0_92 +# 70| r0_94(glval) = VariableAddress[x] : +# 70| r0_95(int) = Load : r0_94, m0_3 +# 70| r0_96(glval) = VariableAddress[z] : +# 70| r0_97(int) = Load : r0_96, m0_93 +# 70| r0_98(int) = Mul : r0_97, r0_95 +# 70| m0_99(int) = Store : r0_96, r0_98 +# 71| r0_100(glval) = VariableAddress[x] : +# 71| r0_101(int) = Load : r0_100, m0_3 +# 71| r0_102(glval) = VariableAddress[z] : +# 71| r0_103(int) = Load : r0_102, m0_99 +# 71| r0_104(int) = Div : r0_103, r0_101 +# 71| m0_105(int) = Store : r0_102, r0_104 +# 72| r0_106(glval) = VariableAddress[x] : +# 72| r0_107(int) = Load : r0_106, m0_3 +# 72| r0_108(glval) = VariableAddress[z] : +# 72| r0_109(int) = Load : r0_108, m0_105 +# 72| r0_110(int) = Rem : r0_109, r0_107 +# 72| m0_111(int) = Store : r0_108, r0_110 +# 74| r0_112(glval) = VariableAddress[x] : +# 74| r0_113(int) = Load : r0_112, m0_3 +# 74| r0_114(glval) = VariableAddress[z] : +# 74| r0_115(int) = Load : r0_114, m0_111 +# 74| r0_116(int) = BitAnd : r0_115, r0_113 +# 74| m0_117(int) = Store : r0_114, r0_116 +# 75| r0_118(glval) = VariableAddress[x] : +# 75| r0_119(int) = Load : r0_118, m0_3 +# 75| r0_120(glval) = VariableAddress[z] : +# 75| r0_121(int) = Load : r0_120, m0_117 +# 75| r0_122(int) = BitOr : r0_121, r0_119 +# 75| m0_123(int) = Store : r0_120, r0_122 +# 76| r0_124(glval) = VariableAddress[x] : +# 76| r0_125(int) = Load : r0_124, m0_3 +# 76| r0_126(glval) = VariableAddress[z] : +# 76| r0_127(int) = Load : r0_126, m0_123 +# 76| r0_128(int) = BitXor : r0_127, r0_125 +# 76| m0_129(int) = Store : r0_126, r0_128 +# 78| r0_130(glval) = VariableAddress[x] : +# 78| r0_131(int) = Load : r0_130, m0_3 +# 78| r0_132(glval) = VariableAddress[z] : +# 78| r0_133(int) = Load : r0_132, m0_129 +# 78| r0_134(int) = ShiftLeft : r0_133, r0_131 +# 78| m0_135(int) = Store : r0_132, r0_134 +# 79| r0_136(glval) = VariableAddress[x] : +# 79| r0_137(int) = Load : r0_136, m0_3 +# 79| r0_138(glval) = VariableAddress[z] : +# 79| r0_139(int) = Load : r0_138, m0_135 +# 79| r0_140(int) = ShiftRight : r0_139, r0_137 +# 79| m0_141(int) = Store : r0_138, r0_140 +# 81| r0_142(glval) = VariableAddress[x] : +# 81| r0_143(int) = Load : r0_142, m0_3 +# 81| r0_144(int) = CopyValue : r0_143 +# 81| r0_145(glval) = VariableAddress[z] : +# 81| m0_146(int) = Store : r0_145, r0_144 +# 82| r0_147(glval) = VariableAddress[x] : +# 82| r0_148(int) = Load : r0_147, m0_3 +# 82| r0_149(int) = Negate : r0_148 +# 82| r0_150(glval) = VariableAddress[z] : +# 82| m0_151(int) = Store : r0_150, r0_149 +# 83| r0_152(glval) = VariableAddress[x] : +# 83| r0_153(int) = Load : r0_152, m0_3 +# 83| r0_154(int) = BitComplement : r0_153 +# 83| r0_155(glval) = VariableAddress[z] : +# 83| m0_156(int) = Store : r0_155, r0_154 +# 84| r0_157(glval) = VariableAddress[x] : +# 84| r0_158(int) = Load : r0_157, m0_3 +# 84| r0_159(int) = Constant[0] : +# 84| r0_160(bool) = CompareNE : r0_158, r0_159 +# 84| r0_161(bool) = LogicalNot : r0_160 +# 84| r0_162(int) = Convert : r0_161 +# 84| r0_163(glval) = VariableAddress[z] : +# 84| m0_164(int) = Store : r0_163, r0_162 +# 85| v0_165(void) = NoOp : +# 50| v0_166(void) = ReturnVoid : +# 50| v0_167(void) = UnmodeledUse : mu* +# 50| v0_168(void) = ExitFunction : # 87| IntegerCompare(int, int) -> void # 87| Block 0 # 87| v0_0(void) = EnterFunction : # 87| mu0_1(unknown) = UnmodeledDefinition : -# 87| r0_2(int) = InitializeParameter[x] : -# 87| r0_3(glval) = VariableAddress[x] : -# 87| m0_4(int) = Store : r0_3, r0_2 -# 87| r0_5(int) = InitializeParameter[y] : -# 87| r0_6(glval) = VariableAddress[y] : -# 87| m0_7(int) = Store : r0_6, r0_5 -# 88| r0_8(glval) = VariableAddress[b] : -# 88| r0_9(bool) = Uninitialized : -# 88| m0_10(bool) = Store : r0_8, r0_9 -# 90| r0_11(glval) = VariableAddress[x] : -# 90| r0_12(int) = Load : r0_11, m0_4 -# 90| r0_13(glval) = VariableAddress[y] : -# 90| r0_14(int) = Load : r0_13, m0_7 -# 90| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 90| r0_16(glval) = VariableAddress[b] : -# 90| m0_17(bool) = Store : r0_16, r0_15 -# 91| r0_18(glval) = VariableAddress[x] : -# 91| r0_19(int) = Load : r0_18, m0_4 -# 91| r0_20(glval) = VariableAddress[y] : -# 91| r0_21(int) = Load : r0_20, m0_7 -# 91| r0_22(bool) = CompareNE : r0_19, r0_21 -# 91| r0_23(glval) = VariableAddress[b] : -# 91| m0_24(bool) = Store : r0_23, r0_22 -# 92| r0_25(glval) = VariableAddress[x] : -# 92| r0_26(int) = Load : r0_25, m0_4 -# 92| r0_27(glval) = VariableAddress[y] : -# 92| r0_28(int) = Load : r0_27, m0_7 -# 92| r0_29(bool) = CompareLT : r0_26, r0_28 -# 92| r0_30(glval) = VariableAddress[b] : -# 92| m0_31(bool) = Store : r0_30, r0_29 -# 93| r0_32(glval) = VariableAddress[x] : -# 93| r0_33(int) = Load : r0_32, m0_4 -# 93| r0_34(glval) = VariableAddress[y] : -# 93| r0_35(int) = Load : r0_34, m0_7 -# 93| r0_36(bool) = CompareGT : r0_33, r0_35 -# 93| r0_37(glval) = VariableAddress[b] : -# 93| m0_38(bool) = Store : r0_37, r0_36 -# 94| r0_39(glval) = VariableAddress[x] : -# 94| r0_40(int) = Load : r0_39, m0_4 -# 94| r0_41(glval) = VariableAddress[y] : -# 94| r0_42(int) = Load : r0_41, m0_7 -# 94| r0_43(bool) = CompareLE : r0_40, r0_42 -# 94| r0_44(glval) = VariableAddress[b] : -# 94| m0_45(bool) = Store : r0_44, r0_43 -# 95| r0_46(glval) = VariableAddress[x] : -# 95| r0_47(int) = Load : r0_46, m0_4 -# 95| r0_48(glval) = VariableAddress[y] : -# 95| r0_49(int) = Load : r0_48, m0_7 -# 95| r0_50(bool) = CompareGE : r0_47, r0_49 -# 95| r0_51(glval) = VariableAddress[b] : -# 95| m0_52(bool) = Store : r0_51, r0_50 -# 96| v0_53(void) = NoOp : -# 87| v0_54(void) = ReturnVoid : -# 87| v0_55(void) = UnmodeledUse : mu* -# 87| v0_56(void) = ExitFunction : +# 87| r0_2(glval) = VariableAddress[x] : +# 87| m0_3(int) = InitializeParameter[x] : r0_2 +# 87| r0_4(glval) = VariableAddress[y] : +# 87| m0_5(int) = InitializeParameter[y] : r0_4 +# 88| r0_6(glval) = VariableAddress[b] : +# 88| m0_7(bool) = Uninitialized : r0_6 +# 90| r0_8(glval) = VariableAddress[x] : +# 90| r0_9(int) = Load : r0_8, m0_3 +# 90| r0_10(glval) = VariableAddress[y] : +# 90| r0_11(int) = Load : r0_10, m0_5 +# 90| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 90| r0_13(glval) = VariableAddress[b] : +# 90| m0_14(bool) = Store : r0_13, r0_12 +# 91| r0_15(glval) = VariableAddress[x] : +# 91| r0_16(int) = Load : r0_15, m0_3 +# 91| r0_17(glval) = VariableAddress[y] : +# 91| r0_18(int) = Load : r0_17, m0_5 +# 91| r0_19(bool) = CompareNE : r0_16, r0_18 +# 91| r0_20(glval) = VariableAddress[b] : +# 91| m0_21(bool) = Store : r0_20, r0_19 +# 92| r0_22(glval) = VariableAddress[x] : +# 92| r0_23(int) = Load : r0_22, m0_3 +# 92| r0_24(glval) = VariableAddress[y] : +# 92| r0_25(int) = Load : r0_24, m0_5 +# 92| r0_26(bool) = CompareLT : r0_23, r0_25 +# 92| r0_27(glval) = VariableAddress[b] : +# 92| m0_28(bool) = Store : r0_27, r0_26 +# 93| r0_29(glval) = VariableAddress[x] : +# 93| r0_30(int) = Load : r0_29, m0_3 +# 93| r0_31(glval) = VariableAddress[y] : +# 93| r0_32(int) = Load : r0_31, m0_5 +# 93| r0_33(bool) = CompareGT : r0_30, r0_32 +# 93| r0_34(glval) = VariableAddress[b] : +# 93| m0_35(bool) = Store : r0_34, r0_33 +# 94| r0_36(glval) = VariableAddress[x] : +# 94| r0_37(int) = Load : r0_36, m0_3 +# 94| r0_38(glval) = VariableAddress[y] : +# 94| r0_39(int) = Load : r0_38, m0_5 +# 94| r0_40(bool) = CompareLE : r0_37, r0_39 +# 94| r0_41(glval) = VariableAddress[b] : +# 94| m0_42(bool) = Store : r0_41, r0_40 +# 95| r0_43(glval) = VariableAddress[x] : +# 95| r0_44(int) = Load : r0_43, m0_3 +# 95| r0_45(glval) = VariableAddress[y] : +# 95| r0_46(int) = Load : r0_45, m0_5 +# 95| r0_47(bool) = CompareGE : r0_44, r0_46 +# 95| r0_48(glval) = VariableAddress[b] : +# 95| m0_49(bool) = Store : r0_48, r0_47 +# 96| v0_50(void) = NoOp : +# 87| v0_51(void) = ReturnVoid : +# 87| v0_52(void) = UnmodeledUse : mu* +# 87| v0_53(void) = ExitFunction : # 98| IntegerCrement(int) -> void # 98| Block 0 # 98| v0_0(void) = EnterFunction : # 98| mu0_1(unknown) = UnmodeledDefinition : -# 98| r0_2(int) = InitializeParameter[x] : -# 98| r0_3(glval) = VariableAddress[x] : -# 98| m0_4(int) = Store : r0_3, r0_2 -# 99| r0_5(glval) = VariableAddress[y] : -# 99| r0_6(int) = Uninitialized : -# 99| m0_7(int) = Store : r0_5, r0_6 -# 101| r0_8(glval) = VariableAddress[x] : -# 101| r0_9(int) = Load : r0_8, m0_4 -# 101| r0_10(int) = Constant[1] : -# 101| r0_11(int) = Add : r0_9, r0_10 -# 101| m0_12(int) = Store : r0_8, r0_11 -# 101| r0_13(glval) = VariableAddress[y] : -# 101| m0_14(int) = Store : r0_13, r0_11 -# 102| r0_15(glval) = VariableAddress[x] : -# 102| r0_16(int) = Load : r0_15, m0_12 -# 102| r0_17(int) = Constant[1] : -# 102| r0_18(int) = Sub : r0_16, r0_17 -# 102| m0_19(int) = Store : r0_15, r0_18 -# 102| r0_20(glval) = VariableAddress[y] : -# 102| m0_21(int) = Store : r0_20, r0_18 -# 103| r0_22(glval) = VariableAddress[x] : -# 103| r0_23(int) = Load : r0_22, m0_19 -# 103| r0_24(int) = Constant[1] : -# 103| r0_25(int) = Add : r0_23, r0_24 -# 103| m0_26(int) = Store : r0_22, r0_25 -# 103| r0_27(glval) = VariableAddress[y] : -# 103| m0_28(int) = Store : r0_27, r0_23 -# 104| r0_29(glval) = VariableAddress[x] : -# 104| r0_30(int) = Load : r0_29, m0_26 -# 104| r0_31(int) = Constant[1] : -# 104| r0_32(int) = Sub : r0_30, r0_31 -# 104| m0_33(int) = Store : r0_29, r0_32 -# 104| r0_34(glval) = VariableAddress[y] : -# 104| m0_35(int) = Store : r0_34, r0_30 -# 105| v0_36(void) = NoOp : -# 98| v0_37(void) = ReturnVoid : -# 98| v0_38(void) = UnmodeledUse : mu* -# 98| v0_39(void) = ExitFunction : +# 98| r0_2(glval) = VariableAddress[x] : +# 98| m0_3(int) = InitializeParameter[x] : r0_2 +# 99| r0_4(glval) = VariableAddress[y] : +# 99| m0_5(int) = Uninitialized : r0_4 +# 101| r0_6(glval) = VariableAddress[x] : +# 101| r0_7(int) = Load : r0_6, m0_3 +# 101| r0_8(int) = Constant[1] : +# 101| r0_9(int) = Add : r0_7, r0_8 +# 101| m0_10(int) = Store : r0_6, r0_9 +# 101| r0_11(glval) = VariableAddress[y] : +# 101| m0_12(int) = Store : r0_11, r0_9 +# 102| r0_13(glval) = VariableAddress[x] : +# 102| r0_14(int) = Load : r0_13, m0_10 +# 102| r0_15(int) = Constant[1] : +# 102| r0_16(int) = Sub : r0_14, r0_15 +# 102| m0_17(int) = Store : r0_13, r0_16 +# 102| r0_18(glval) = VariableAddress[y] : +# 102| m0_19(int) = Store : r0_18, r0_16 +# 103| r0_20(glval) = VariableAddress[x] : +# 103| r0_21(int) = Load : r0_20, m0_17 +# 103| r0_22(int) = Constant[1] : +# 103| r0_23(int) = Add : r0_21, r0_22 +# 103| m0_24(int) = Store : r0_20, r0_23 +# 103| r0_25(glval) = VariableAddress[y] : +# 103| m0_26(int) = Store : r0_25, r0_21 +# 104| r0_27(glval) = VariableAddress[x] : +# 104| r0_28(int) = Load : r0_27, m0_24 +# 104| r0_29(int) = Constant[1] : +# 104| r0_30(int) = Sub : r0_28, r0_29 +# 104| m0_31(int) = Store : r0_27, r0_30 +# 104| r0_32(glval) = VariableAddress[y] : +# 104| m0_33(int) = Store : r0_32, r0_28 +# 105| v0_34(void) = NoOp : +# 98| v0_35(void) = ReturnVoid : +# 98| v0_36(void) = UnmodeledUse : mu* +# 98| v0_37(void) = ExitFunction : # 107| IntegerCrement_LValue(int) -> void # 107| Block 0 # 107| v0_0(void) = EnterFunction : # 107| mu0_1(unknown) = UnmodeledDefinition : -# 107| r0_2(int) = InitializeParameter[x] : -# 107| r0_3(glval) = VariableAddress[x] : -# 107| m0_4(int) = Store : r0_3, r0_2 -# 108| r0_5(glval) = VariableAddress[p] : -# 108| r0_6(int *) = Uninitialized : -# 108| m0_7(int *) = Store : r0_5, r0_6 -# 110| r0_8(glval) = VariableAddress[x] : -# 110| r0_9(int) = Load : r0_8, m0_4 -# 110| r0_10(int) = Constant[1] : -# 110| r0_11(int) = Add : r0_9, r0_10 -# 110| m0_12(int) = Store : r0_8, r0_11 -# 110| r0_13(glval) = VariableAddress[p] : -# 110| m0_14(int *) = Store : r0_13, r0_8 -# 111| r0_15(glval) = VariableAddress[x] : -# 111| r0_16(int) = Load : r0_15, m0_12 -# 111| r0_17(int) = Constant[1] : -# 111| r0_18(int) = Sub : r0_16, r0_17 -# 111| m0_19(int) = Store : r0_15, r0_18 -# 111| r0_20(glval) = VariableAddress[p] : -# 111| m0_21(int *) = Store : r0_20, r0_15 -# 112| v0_22(void) = NoOp : -# 107| v0_23(void) = ReturnVoid : -# 107| v0_24(void) = UnmodeledUse : mu* -# 107| v0_25(void) = ExitFunction : +# 107| r0_2(glval) = VariableAddress[x] : +# 107| m0_3(int) = InitializeParameter[x] : r0_2 +# 108| r0_4(glval) = VariableAddress[p] : +# 108| m0_5(int *) = Uninitialized : r0_4 +# 110| r0_6(glval) = VariableAddress[x] : +# 110| r0_7(int) = Load : r0_6, m0_3 +# 110| r0_8(int) = Constant[1] : +# 110| r0_9(int) = Add : r0_7, r0_8 +# 110| m0_10(int) = Store : r0_6, r0_9 +# 110| r0_11(glval) = VariableAddress[p] : +# 110| m0_12(int *) = Store : r0_11, r0_6 +# 111| r0_13(glval) = VariableAddress[x] : +# 111| r0_14(int) = Load : r0_13, m0_10 +# 111| r0_15(int) = Constant[1] : +# 111| r0_16(int) = Sub : r0_14, r0_15 +# 111| m0_17(int) = Store : r0_13, r0_16 +# 111| r0_18(glval) = VariableAddress[p] : +# 111| m0_19(int *) = Store : r0_18, r0_13 +# 112| v0_20(void) = NoOp : +# 107| v0_21(void) = ReturnVoid : +# 107| v0_22(void) = UnmodeledUse : mu* +# 107| v0_23(void) = ExitFunction : # 114| FloatOps(double, double) -> void # 114| Block 0 # 114| v0_0(void) = EnterFunction : # 114| mu0_1(unknown) = UnmodeledDefinition : -# 114| r0_2(double) = InitializeParameter[x] : -# 114| r0_3(glval) = VariableAddress[x] : -# 114| m0_4(double) = Store : r0_3, r0_2 -# 114| r0_5(double) = InitializeParameter[y] : -# 114| r0_6(glval) = VariableAddress[y] : -# 114| m0_7(double) = Store : r0_6, r0_5 -# 115| r0_8(glval) = VariableAddress[z] : -# 115| r0_9(double) = Uninitialized : -# 115| m0_10(double) = Store : r0_8, r0_9 -# 117| r0_11(glval) = VariableAddress[x] : -# 117| r0_12(double) = Load : r0_11, m0_4 -# 117| r0_13(glval) = VariableAddress[y] : -# 117| r0_14(double) = Load : r0_13, m0_7 -# 117| r0_15(double) = Add : r0_12, r0_14 -# 117| r0_16(glval) = VariableAddress[z] : -# 117| m0_17(double) = Store : r0_16, r0_15 -# 118| r0_18(glval) = VariableAddress[x] : -# 118| r0_19(double) = Load : r0_18, m0_4 -# 118| r0_20(glval) = VariableAddress[y] : -# 118| r0_21(double) = Load : r0_20, m0_7 -# 118| r0_22(double) = Sub : r0_19, r0_21 -# 118| r0_23(glval) = VariableAddress[z] : -# 118| m0_24(double) = Store : r0_23, r0_22 -# 119| r0_25(glval) = VariableAddress[x] : -# 119| r0_26(double) = Load : r0_25, m0_4 -# 119| r0_27(glval) = VariableAddress[y] : -# 119| r0_28(double) = Load : r0_27, m0_7 -# 119| r0_29(double) = Mul : r0_26, r0_28 -# 119| r0_30(glval) = VariableAddress[z] : -# 119| m0_31(double) = Store : r0_30, r0_29 -# 120| r0_32(glval) = VariableAddress[x] : -# 120| r0_33(double) = Load : r0_32, m0_4 -# 120| r0_34(glval) = VariableAddress[y] : -# 120| r0_35(double) = Load : r0_34, m0_7 -# 120| r0_36(double) = Div : r0_33, r0_35 -# 120| r0_37(glval) = VariableAddress[z] : -# 120| m0_38(double) = Store : r0_37, r0_36 -# 122| r0_39(glval) = VariableAddress[x] : -# 122| r0_40(double) = Load : r0_39, m0_4 -# 122| r0_41(glval) = VariableAddress[z] : -# 122| m0_42(double) = Store : r0_41, r0_40 -# 124| r0_43(glval) = VariableAddress[x] : -# 124| r0_44(double) = Load : r0_43, m0_4 -# 124| r0_45(glval) = VariableAddress[z] : -# 124| r0_46(double) = Load : r0_45, m0_42 -# 124| r0_47(double) = Add : r0_46, r0_44 -# 124| m0_48(double) = Store : r0_45, r0_47 -# 125| r0_49(glval) = VariableAddress[x] : -# 125| r0_50(double) = Load : r0_49, m0_4 -# 125| r0_51(glval) = VariableAddress[z] : -# 125| r0_52(double) = Load : r0_51, m0_48 -# 125| r0_53(double) = Sub : r0_52, r0_50 -# 125| m0_54(double) = Store : r0_51, r0_53 -# 126| r0_55(glval) = VariableAddress[x] : -# 126| r0_56(double) = Load : r0_55, m0_4 -# 126| r0_57(glval) = VariableAddress[z] : -# 126| r0_58(double) = Load : r0_57, m0_54 -# 126| r0_59(double) = Mul : r0_58, r0_56 -# 126| m0_60(double) = Store : r0_57, r0_59 -# 127| r0_61(glval) = VariableAddress[x] : -# 127| r0_62(double) = Load : r0_61, m0_4 -# 127| r0_63(glval) = VariableAddress[z] : -# 127| r0_64(double) = Load : r0_63, m0_60 -# 127| r0_65(double) = Div : r0_64, r0_62 -# 127| m0_66(double) = Store : r0_63, r0_65 -# 129| r0_67(glval) = VariableAddress[x] : -# 129| r0_68(double) = Load : r0_67, m0_4 -# 129| r0_69(double) = CopyValue : r0_68 -# 129| r0_70(glval) = VariableAddress[z] : -# 129| m0_71(double) = Store : r0_70, r0_69 -# 130| r0_72(glval) = VariableAddress[x] : -# 130| r0_73(double) = Load : r0_72, m0_4 -# 130| r0_74(double) = Negate : r0_73 -# 130| r0_75(glval) = VariableAddress[z] : -# 130| m0_76(double) = Store : r0_75, r0_74 -# 131| v0_77(void) = NoOp : -# 114| v0_78(void) = ReturnVoid : -# 114| v0_79(void) = UnmodeledUse : mu* -# 114| v0_80(void) = ExitFunction : +# 114| r0_2(glval) = VariableAddress[x] : +# 114| m0_3(double) = InitializeParameter[x] : r0_2 +# 114| r0_4(glval) = VariableAddress[y] : +# 114| m0_5(double) = InitializeParameter[y] : r0_4 +# 115| r0_6(glval) = VariableAddress[z] : +# 115| m0_7(double) = Uninitialized : r0_6 +# 117| r0_8(glval) = VariableAddress[x] : +# 117| r0_9(double) = Load : r0_8, m0_3 +# 117| r0_10(glval) = VariableAddress[y] : +# 117| r0_11(double) = Load : r0_10, m0_5 +# 117| r0_12(double) = Add : r0_9, r0_11 +# 117| r0_13(glval) = VariableAddress[z] : +# 117| m0_14(double) = Store : r0_13, r0_12 +# 118| r0_15(glval) = VariableAddress[x] : +# 118| r0_16(double) = Load : r0_15, m0_3 +# 118| r0_17(glval) = VariableAddress[y] : +# 118| r0_18(double) = Load : r0_17, m0_5 +# 118| r0_19(double) = Sub : r0_16, r0_18 +# 118| r0_20(glval) = VariableAddress[z] : +# 118| m0_21(double) = Store : r0_20, r0_19 +# 119| r0_22(glval) = VariableAddress[x] : +# 119| r0_23(double) = Load : r0_22, m0_3 +# 119| r0_24(glval) = VariableAddress[y] : +# 119| r0_25(double) = Load : r0_24, m0_5 +# 119| r0_26(double) = Mul : r0_23, r0_25 +# 119| r0_27(glval) = VariableAddress[z] : +# 119| m0_28(double) = Store : r0_27, r0_26 +# 120| r0_29(glval) = VariableAddress[x] : +# 120| r0_30(double) = Load : r0_29, m0_3 +# 120| r0_31(glval) = VariableAddress[y] : +# 120| r0_32(double) = Load : r0_31, m0_5 +# 120| r0_33(double) = Div : r0_30, r0_32 +# 120| r0_34(glval) = VariableAddress[z] : +# 120| m0_35(double) = Store : r0_34, r0_33 +# 122| r0_36(glval) = VariableAddress[x] : +# 122| r0_37(double) = Load : r0_36, m0_3 +# 122| r0_38(glval) = VariableAddress[z] : +# 122| m0_39(double) = Store : r0_38, r0_37 +# 124| r0_40(glval) = VariableAddress[x] : +# 124| r0_41(double) = Load : r0_40, m0_3 +# 124| r0_42(glval) = VariableAddress[z] : +# 124| r0_43(double) = Load : r0_42, m0_39 +# 124| r0_44(double) = Add : r0_43, r0_41 +# 124| m0_45(double) = Store : r0_42, r0_44 +# 125| r0_46(glval) = VariableAddress[x] : +# 125| r0_47(double) = Load : r0_46, m0_3 +# 125| r0_48(glval) = VariableAddress[z] : +# 125| r0_49(double) = Load : r0_48, m0_45 +# 125| r0_50(double) = Sub : r0_49, r0_47 +# 125| m0_51(double) = Store : r0_48, r0_50 +# 126| r0_52(glval) = VariableAddress[x] : +# 126| r0_53(double) = Load : r0_52, m0_3 +# 126| r0_54(glval) = VariableAddress[z] : +# 126| r0_55(double) = Load : r0_54, m0_51 +# 126| r0_56(double) = Mul : r0_55, r0_53 +# 126| m0_57(double) = Store : r0_54, r0_56 +# 127| r0_58(glval) = VariableAddress[x] : +# 127| r0_59(double) = Load : r0_58, m0_3 +# 127| r0_60(glval) = VariableAddress[z] : +# 127| r0_61(double) = Load : r0_60, m0_57 +# 127| r0_62(double) = Div : r0_61, r0_59 +# 127| m0_63(double) = Store : r0_60, r0_62 +# 129| r0_64(glval) = VariableAddress[x] : +# 129| r0_65(double) = Load : r0_64, m0_3 +# 129| r0_66(double) = CopyValue : r0_65 +# 129| r0_67(glval) = VariableAddress[z] : +# 129| m0_68(double) = Store : r0_67, r0_66 +# 130| r0_69(glval) = VariableAddress[x] : +# 130| r0_70(double) = Load : r0_69, m0_3 +# 130| r0_71(double) = Negate : r0_70 +# 130| r0_72(glval) = VariableAddress[z] : +# 130| m0_73(double) = Store : r0_72, r0_71 +# 131| v0_74(void) = NoOp : +# 114| v0_75(void) = ReturnVoid : +# 114| v0_76(void) = UnmodeledUse : mu* +# 114| v0_77(void) = ExitFunction : # 133| FloatCompare(double, double) -> void # 133| Block 0 # 133| v0_0(void) = EnterFunction : # 133| mu0_1(unknown) = UnmodeledDefinition : -# 133| r0_2(double) = InitializeParameter[x] : -# 133| r0_3(glval) = VariableAddress[x] : -# 133| m0_4(double) = Store : r0_3, r0_2 -# 133| r0_5(double) = InitializeParameter[y] : -# 133| r0_6(glval) = VariableAddress[y] : -# 133| m0_7(double) = Store : r0_6, r0_5 -# 134| r0_8(glval) = VariableAddress[b] : -# 134| r0_9(bool) = Uninitialized : -# 134| m0_10(bool) = Store : r0_8, r0_9 -# 136| r0_11(glval) = VariableAddress[x] : -# 136| r0_12(double) = Load : r0_11, m0_4 -# 136| r0_13(glval) = VariableAddress[y] : -# 136| r0_14(double) = Load : r0_13, m0_7 -# 136| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 136| r0_16(glval) = VariableAddress[b] : -# 136| m0_17(bool) = Store : r0_16, r0_15 -# 137| r0_18(glval) = VariableAddress[x] : -# 137| r0_19(double) = Load : r0_18, m0_4 -# 137| r0_20(glval) = VariableAddress[y] : -# 137| r0_21(double) = Load : r0_20, m0_7 -# 137| r0_22(bool) = CompareNE : r0_19, r0_21 -# 137| r0_23(glval) = VariableAddress[b] : -# 137| m0_24(bool) = Store : r0_23, r0_22 -# 138| r0_25(glval) = VariableAddress[x] : -# 138| r0_26(double) = Load : r0_25, m0_4 -# 138| r0_27(glval) = VariableAddress[y] : -# 138| r0_28(double) = Load : r0_27, m0_7 -# 138| r0_29(bool) = CompareLT : r0_26, r0_28 -# 138| r0_30(glval) = VariableAddress[b] : -# 138| m0_31(bool) = Store : r0_30, r0_29 -# 139| r0_32(glval) = VariableAddress[x] : -# 139| r0_33(double) = Load : r0_32, m0_4 -# 139| r0_34(glval) = VariableAddress[y] : -# 139| r0_35(double) = Load : r0_34, m0_7 -# 139| r0_36(bool) = CompareGT : r0_33, r0_35 -# 139| r0_37(glval) = VariableAddress[b] : -# 139| m0_38(bool) = Store : r0_37, r0_36 -# 140| r0_39(glval) = VariableAddress[x] : -# 140| r0_40(double) = Load : r0_39, m0_4 -# 140| r0_41(glval) = VariableAddress[y] : -# 140| r0_42(double) = Load : r0_41, m0_7 -# 140| r0_43(bool) = CompareLE : r0_40, r0_42 -# 140| r0_44(glval) = VariableAddress[b] : -# 140| m0_45(bool) = Store : r0_44, r0_43 -# 141| r0_46(glval) = VariableAddress[x] : -# 141| r0_47(double) = Load : r0_46, m0_4 -# 141| r0_48(glval) = VariableAddress[y] : -# 141| r0_49(double) = Load : r0_48, m0_7 -# 141| r0_50(bool) = CompareGE : r0_47, r0_49 -# 141| r0_51(glval) = VariableAddress[b] : -# 141| m0_52(bool) = Store : r0_51, r0_50 -# 142| v0_53(void) = NoOp : -# 133| v0_54(void) = ReturnVoid : -# 133| v0_55(void) = UnmodeledUse : mu* -# 133| v0_56(void) = ExitFunction : +# 133| r0_2(glval) = VariableAddress[x] : +# 133| m0_3(double) = InitializeParameter[x] : r0_2 +# 133| r0_4(glval) = VariableAddress[y] : +# 133| m0_5(double) = InitializeParameter[y] : r0_4 +# 134| r0_6(glval) = VariableAddress[b] : +# 134| m0_7(bool) = Uninitialized : r0_6 +# 136| r0_8(glval) = VariableAddress[x] : +# 136| r0_9(double) = Load : r0_8, m0_3 +# 136| r0_10(glval) = VariableAddress[y] : +# 136| r0_11(double) = Load : r0_10, m0_5 +# 136| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 136| r0_13(glval) = VariableAddress[b] : +# 136| m0_14(bool) = Store : r0_13, r0_12 +# 137| r0_15(glval) = VariableAddress[x] : +# 137| r0_16(double) = Load : r0_15, m0_3 +# 137| r0_17(glval) = VariableAddress[y] : +# 137| r0_18(double) = Load : r0_17, m0_5 +# 137| r0_19(bool) = CompareNE : r0_16, r0_18 +# 137| r0_20(glval) = VariableAddress[b] : +# 137| m0_21(bool) = Store : r0_20, r0_19 +# 138| r0_22(glval) = VariableAddress[x] : +# 138| r0_23(double) = Load : r0_22, m0_3 +# 138| r0_24(glval) = VariableAddress[y] : +# 138| r0_25(double) = Load : r0_24, m0_5 +# 138| r0_26(bool) = CompareLT : r0_23, r0_25 +# 138| r0_27(glval) = VariableAddress[b] : +# 138| m0_28(bool) = Store : r0_27, r0_26 +# 139| r0_29(glval) = VariableAddress[x] : +# 139| r0_30(double) = Load : r0_29, m0_3 +# 139| r0_31(glval) = VariableAddress[y] : +# 139| r0_32(double) = Load : r0_31, m0_5 +# 139| r0_33(bool) = CompareGT : r0_30, r0_32 +# 139| r0_34(glval) = VariableAddress[b] : +# 139| m0_35(bool) = Store : r0_34, r0_33 +# 140| r0_36(glval) = VariableAddress[x] : +# 140| r0_37(double) = Load : r0_36, m0_3 +# 140| r0_38(glval) = VariableAddress[y] : +# 140| r0_39(double) = Load : r0_38, m0_5 +# 140| r0_40(bool) = CompareLE : r0_37, r0_39 +# 140| r0_41(glval) = VariableAddress[b] : +# 140| m0_42(bool) = Store : r0_41, r0_40 +# 141| r0_43(glval) = VariableAddress[x] : +# 141| r0_44(double) = Load : r0_43, m0_3 +# 141| r0_45(glval) = VariableAddress[y] : +# 141| r0_46(double) = Load : r0_45, m0_5 +# 141| r0_47(bool) = CompareGE : r0_44, r0_46 +# 141| r0_48(glval) = VariableAddress[b] : +# 141| m0_49(bool) = Store : r0_48, r0_47 +# 142| v0_50(void) = NoOp : +# 133| v0_51(void) = ReturnVoid : +# 133| v0_52(void) = UnmodeledUse : mu* +# 133| v0_53(void) = ExitFunction : # 144| FloatCrement(float) -> void # 144| Block 0 # 144| v0_0(void) = EnterFunction : # 144| mu0_1(unknown) = UnmodeledDefinition : -# 144| r0_2(float) = InitializeParameter[x] : -# 144| r0_3(glval) = VariableAddress[x] : -# 144| m0_4(float) = Store : r0_3, r0_2 -# 145| r0_5(glval) = VariableAddress[y] : -# 145| r0_6(float) = Uninitialized : -# 145| m0_7(float) = Store : r0_5, r0_6 -# 147| r0_8(glval) = VariableAddress[x] : -# 147| r0_9(float) = Load : r0_8, m0_4 -# 147| r0_10(float) = Constant[1.0] : -# 147| r0_11(float) = Add : r0_9, r0_10 -# 147| m0_12(float) = Store : r0_8, r0_11 -# 147| r0_13(glval) = VariableAddress[y] : -# 147| m0_14(float) = Store : r0_13, r0_11 -# 148| r0_15(glval) = VariableAddress[x] : -# 148| r0_16(float) = Load : r0_15, m0_12 -# 148| r0_17(float) = Constant[1.0] : -# 148| r0_18(float) = Sub : r0_16, r0_17 -# 148| m0_19(float) = Store : r0_15, r0_18 -# 148| r0_20(glval) = VariableAddress[y] : -# 148| m0_21(float) = Store : r0_20, r0_18 -# 149| r0_22(glval) = VariableAddress[x] : -# 149| r0_23(float) = Load : r0_22, m0_19 -# 149| r0_24(float) = Constant[1.0] : -# 149| r0_25(float) = Add : r0_23, r0_24 -# 149| m0_26(float) = Store : r0_22, r0_25 -# 149| r0_27(glval) = VariableAddress[y] : -# 149| m0_28(float) = Store : r0_27, r0_23 -# 150| r0_29(glval) = VariableAddress[x] : -# 150| r0_30(float) = Load : r0_29, m0_26 -# 150| r0_31(float) = Constant[1.0] : -# 150| r0_32(float) = Sub : r0_30, r0_31 -# 150| m0_33(float) = Store : r0_29, r0_32 -# 150| r0_34(glval) = VariableAddress[y] : -# 150| m0_35(float) = Store : r0_34, r0_30 -# 151| v0_36(void) = NoOp : -# 144| v0_37(void) = ReturnVoid : -# 144| v0_38(void) = UnmodeledUse : mu* -# 144| v0_39(void) = ExitFunction : +# 144| r0_2(glval) = VariableAddress[x] : +# 144| m0_3(float) = InitializeParameter[x] : r0_2 +# 145| r0_4(glval) = VariableAddress[y] : +# 145| m0_5(float) = Uninitialized : r0_4 +# 147| r0_6(glval) = VariableAddress[x] : +# 147| r0_7(float) = Load : r0_6, m0_3 +# 147| r0_8(float) = Constant[1.0] : +# 147| r0_9(float) = Add : r0_7, r0_8 +# 147| m0_10(float) = Store : r0_6, r0_9 +# 147| r0_11(glval) = VariableAddress[y] : +# 147| m0_12(float) = Store : r0_11, r0_9 +# 148| r0_13(glval) = VariableAddress[x] : +# 148| r0_14(float) = Load : r0_13, m0_10 +# 148| r0_15(float) = Constant[1.0] : +# 148| r0_16(float) = Sub : r0_14, r0_15 +# 148| m0_17(float) = Store : r0_13, r0_16 +# 148| r0_18(glval) = VariableAddress[y] : +# 148| m0_19(float) = Store : r0_18, r0_16 +# 149| r0_20(glval) = VariableAddress[x] : +# 149| r0_21(float) = Load : r0_20, m0_17 +# 149| r0_22(float) = Constant[1.0] : +# 149| r0_23(float) = Add : r0_21, r0_22 +# 149| m0_24(float) = Store : r0_20, r0_23 +# 149| r0_25(glval) = VariableAddress[y] : +# 149| m0_26(float) = Store : r0_25, r0_21 +# 150| r0_27(glval) = VariableAddress[x] : +# 150| r0_28(float) = Load : r0_27, m0_24 +# 150| r0_29(float) = Constant[1.0] : +# 150| r0_30(float) = Sub : r0_28, r0_29 +# 150| m0_31(float) = Store : r0_27, r0_30 +# 150| r0_32(glval) = VariableAddress[y] : +# 150| m0_33(float) = Store : r0_32, r0_28 +# 151| v0_34(void) = NoOp : +# 144| v0_35(void) = ReturnVoid : +# 144| v0_36(void) = UnmodeledUse : mu* +# 144| v0_37(void) = ExitFunction : # 153| PointerOps(int *, int) -> void # 153| Block 0 # 153| v0_0(void) = EnterFunction : # 153| mu0_1(unknown) = UnmodeledDefinition : -# 153| r0_2(int *) = InitializeParameter[p] : -# 153| r0_3(glval) = VariableAddress[p] : -# 153| m0_4(int *) = Store : r0_3, r0_2 -# 153| r0_5(int) = InitializeParameter[i] : -# 153| r0_6(glval) = VariableAddress[i] : -# 153| m0_7(int) = Store : r0_6, r0_5 -# 154| r0_8(glval) = VariableAddress[q] : -# 154| r0_9(int *) = Uninitialized : -# 154| m0_10(int *) = Store : r0_8, r0_9 -# 155| r0_11(glval) = VariableAddress[b] : -# 155| r0_12(bool) = Uninitialized : -# 155| m0_13(bool) = Store : r0_11, r0_12 -# 157| r0_14(glval) = VariableAddress[p] : -# 157| r0_15(int *) = Load : r0_14, m0_4 -# 157| r0_16(glval) = VariableAddress[i] : -# 157| r0_17(int) = Load : r0_16, m0_7 -# 157| r0_18(int *) = PointerAdd[4] : r0_15, r0_17 -# 157| r0_19(glval) = VariableAddress[q] : -# 157| m0_20(int *) = Store : r0_19, r0_18 -# 158| r0_21(glval) = VariableAddress[i] : -# 158| r0_22(int) = Load : r0_21, m0_7 -# 158| r0_23(glval) = VariableAddress[p] : -# 158| r0_24(int *) = Load : r0_23, m0_4 -# 158| r0_25(int *) = PointerAdd[4] : r0_24, r0_22 -# 158| r0_26(glval) = VariableAddress[q] : -# 158| m0_27(int *) = Store : r0_26, r0_25 -# 159| r0_28(glval) = VariableAddress[p] : -# 159| r0_29(int *) = Load : r0_28, m0_4 -# 159| r0_30(glval) = VariableAddress[i] : -# 159| r0_31(int) = Load : r0_30, m0_7 -# 159| r0_32(int *) = PointerSub[4] : r0_29, r0_31 -# 159| r0_33(glval) = VariableAddress[q] : -# 159| m0_34(int *) = Store : r0_33, r0_32 -# 160| r0_35(glval) = VariableAddress[p] : -# 160| r0_36(int *) = Load : r0_35, m0_4 -# 160| r0_37(glval) = VariableAddress[q] : -# 160| r0_38(int *) = Load : r0_37, m0_34 -# 160| r0_39(long) = PointerDiff[4] : r0_36, r0_38 -# 160| r0_40(int) = Convert : r0_39 -# 160| r0_41(glval) = VariableAddress[i] : -# 160| m0_42(int) = Store : r0_41, r0_40 -# 162| r0_43(glval) = VariableAddress[p] : -# 162| r0_44(int *) = Load : r0_43, m0_4 -# 162| r0_45(glval) = VariableAddress[q] : -# 162| m0_46(int *) = Store : r0_45, r0_44 -# 164| r0_47(glval) = VariableAddress[i] : -# 164| r0_48(int) = Load : r0_47, m0_42 -# 164| r0_49(glval) = VariableAddress[q] : -# 164| r0_50(int *) = Load : r0_49, m0_46 -# 164| r0_51(int *) = PointerAdd[4] : r0_50, r0_48 -# 164| m0_52(int *) = Store : r0_49, r0_51 -# 165| r0_53(glval) = VariableAddress[i] : -# 165| r0_54(int) = Load : r0_53, m0_42 -# 165| r0_55(glval) = VariableAddress[q] : -# 165| r0_56(int *) = Load : r0_55, m0_52 -# 165| r0_57(int *) = PointerSub[4] : r0_56, r0_54 -# 165| m0_58(int *) = Store : r0_55, r0_57 -# 167| r0_59(glval) = VariableAddress[p] : -# 167| r0_60(int *) = Load : r0_59, m0_4 -# 167| r0_61(int *) = Constant[0] : -# 167| r0_62(bool) = CompareNE : r0_60, r0_61 -# 167| r0_63(glval) = VariableAddress[b] : -# 167| m0_64(bool) = Store : r0_63, r0_62 -# 168| r0_65(glval) = VariableAddress[p] : -# 168| r0_66(int *) = Load : r0_65, m0_4 -# 168| r0_67(int *) = Constant[0] : -# 168| r0_68(bool) = CompareNE : r0_66, r0_67 -# 168| r0_69(bool) = LogicalNot : r0_68 -# 168| r0_70(glval) = VariableAddress[b] : -# 168| m0_71(bool) = Store : r0_70, r0_69 -# 169| v0_72(void) = NoOp : -# 153| v0_73(void) = ReturnVoid : -# 153| v0_74(void) = UnmodeledUse : mu* -# 153| v0_75(void) = ExitFunction : +# 153| r0_2(glval) = VariableAddress[p] : +# 153| m0_3(int *) = InitializeParameter[p] : r0_2 +# 153| r0_4(glval) = VariableAddress[i] : +# 153| m0_5(int) = InitializeParameter[i] : r0_4 +# 154| r0_6(glval) = VariableAddress[q] : +# 154| m0_7(int *) = Uninitialized : r0_6 +# 155| r0_8(glval) = VariableAddress[b] : +# 155| m0_9(bool) = Uninitialized : r0_8 +# 157| r0_10(glval) = VariableAddress[p] : +# 157| r0_11(int *) = Load : r0_10, m0_3 +# 157| r0_12(glval) = VariableAddress[i] : +# 157| r0_13(int) = Load : r0_12, m0_5 +# 157| r0_14(int *) = PointerAdd[4] : r0_11, r0_13 +# 157| r0_15(glval) = VariableAddress[q] : +# 157| m0_16(int *) = Store : r0_15, r0_14 +# 158| r0_17(glval) = VariableAddress[i] : +# 158| r0_18(int) = Load : r0_17, m0_5 +# 158| r0_19(glval) = VariableAddress[p] : +# 158| r0_20(int *) = Load : r0_19, m0_3 +# 158| r0_21(int *) = PointerAdd[4] : r0_20, r0_18 +# 158| r0_22(glval) = VariableAddress[q] : +# 158| m0_23(int *) = Store : r0_22, r0_21 +# 159| r0_24(glval) = VariableAddress[p] : +# 159| r0_25(int *) = Load : r0_24, m0_3 +# 159| r0_26(glval) = VariableAddress[i] : +# 159| r0_27(int) = Load : r0_26, m0_5 +# 159| r0_28(int *) = PointerSub[4] : r0_25, r0_27 +# 159| r0_29(glval) = VariableAddress[q] : +# 159| m0_30(int *) = Store : r0_29, r0_28 +# 160| r0_31(glval) = VariableAddress[p] : +# 160| r0_32(int *) = Load : r0_31, m0_3 +# 160| r0_33(glval) = VariableAddress[q] : +# 160| r0_34(int *) = Load : r0_33, m0_30 +# 160| r0_35(long) = PointerDiff[4] : r0_32, r0_34 +# 160| r0_36(int) = Convert : r0_35 +# 160| r0_37(glval) = VariableAddress[i] : +# 160| m0_38(int) = Store : r0_37, r0_36 +# 162| r0_39(glval) = VariableAddress[p] : +# 162| r0_40(int *) = Load : r0_39, m0_3 +# 162| r0_41(glval) = VariableAddress[q] : +# 162| m0_42(int *) = Store : r0_41, r0_40 +# 164| r0_43(glval) = VariableAddress[i] : +# 164| r0_44(int) = Load : r0_43, m0_38 +# 164| r0_45(glval) = VariableAddress[q] : +# 164| r0_46(int *) = Load : r0_45, m0_42 +# 164| r0_47(int *) = PointerAdd[4] : r0_46, r0_44 +# 164| m0_48(int *) = Store : r0_45, r0_47 +# 165| r0_49(glval) = VariableAddress[i] : +# 165| r0_50(int) = Load : r0_49, m0_38 +# 165| r0_51(glval) = VariableAddress[q] : +# 165| r0_52(int *) = Load : r0_51, m0_48 +# 165| r0_53(int *) = PointerSub[4] : r0_52, r0_50 +# 165| m0_54(int *) = Store : r0_51, r0_53 +# 167| r0_55(glval) = VariableAddress[p] : +# 167| r0_56(int *) = Load : r0_55, m0_3 +# 167| r0_57(int *) = Constant[0] : +# 167| r0_58(bool) = CompareNE : r0_56, r0_57 +# 167| r0_59(glval) = VariableAddress[b] : +# 167| m0_60(bool) = Store : r0_59, r0_58 +# 168| r0_61(glval) = VariableAddress[p] : +# 168| r0_62(int *) = Load : r0_61, m0_3 +# 168| r0_63(int *) = Constant[0] : +# 168| r0_64(bool) = CompareNE : r0_62, r0_63 +# 168| r0_65(bool) = LogicalNot : r0_64 +# 168| r0_66(glval) = VariableAddress[b] : +# 168| m0_67(bool) = Store : r0_66, r0_65 +# 169| v0_68(void) = NoOp : +# 153| v0_69(void) = ReturnVoid : +# 153| v0_70(void) = UnmodeledUse : mu* +# 153| v0_71(void) = ExitFunction : # 171| ArrayAccess(int *, int) -> void # 171| Block 0 # 171| v0_0(void) = EnterFunction : # 171| mu0_1(unknown) = UnmodeledDefinition : -# 171| r0_2(int *) = InitializeParameter[p] : -# 171| r0_3(glval) = VariableAddress[p] : -# 171| m0_4(int *) = Store : r0_3, r0_2 -# 171| r0_5(int) = InitializeParameter[i] : -# 171| r0_6(glval) = VariableAddress[i] : -# 171| m0_7(int) = Store : r0_6, r0_5 -# 172| r0_8(glval) = VariableAddress[x] : -# 172| r0_9(int) = Uninitialized : -# 172| m0_10(int) = Store : r0_8, r0_9 -# 174| r0_11(glval) = VariableAddress[p] : -# 174| r0_12(int *) = Load : r0_11, m0_4 -# 174| r0_13(glval) = VariableAddress[i] : -# 174| r0_14(int) = Load : r0_13, m0_7 -# 174| r0_15(int *) = PointerAdd[4] : r0_12, r0_14 -# 174| r0_16(int) = Load : r0_15, mu0_1 -# 174| r0_17(glval) = VariableAddress[x] : -# 174| m0_18(int) = Store : r0_17, r0_16 -# 175| r0_19(glval) = VariableAddress[p] : -# 175| r0_20(int *) = Load : r0_19, m0_4 -# 175| r0_21(glval) = VariableAddress[i] : -# 175| r0_22(int) = Load : r0_21, m0_7 -# 175| r0_23(int *) = PointerAdd[4] : r0_20, r0_22 -# 175| r0_24(int) = Load : r0_23, mu0_1 -# 175| r0_25(glval) = VariableAddress[x] : -# 175| m0_26(int) = Store : r0_25, r0_24 -# 177| r0_27(glval) = VariableAddress[x] : -# 177| r0_28(int) = Load : r0_27, m0_26 -# 177| r0_29(glval) = VariableAddress[p] : -# 177| r0_30(int *) = Load : r0_29, m0_4 -# 177| r0_31(glval) = VariableAddress[i] : -# 177| r0_32(int) = Load : r0_31, m0_7 -# 177| r0_33(int *) = PointerAdd[4] : r0_30, r0_32 -# 177| mu0_34(int) = Store : r0_33, r0_28 -# 178| r0_35(glval) = VariableAddress[x] : -# 178| r0_36(int) = Load : r0_35, m0_26 -# 178| r0_37(glval) = VariableAddress[p] : -# 178| r0_38(int *) = Load : r0_37, m0_4 -# 178| r0_39(glval) = VariableAddress[i] : -# 178| r0_40(int) = Load : r0_39, m0_7 -# 178| r0_41(int *) = PointerAdd[4] : r0_38, r0_40 -# 178| mu0_42(int) = Store : r0_41, r0_36 -# 180| r0_43(glval) = VariableAddress[a] : -# 180| r0_44(int[10]) = Uninitialized : -# 180| m0_45(int[10]) = Store : r0_43, r0_44 -# 181| r0_46(glval) = VariableAddress[a] : -# 181| r0_47(int *) = Convert : r0_46 -# 181| r0_48(glval) = VariableAddress[i] : -# 181| r0_49(int) = Load : r0_48, m0_7 -# 181| r0_50(int *) = PointerAdd[4] : r0_47, r0_49 -# 181| r0_51(int) = Load : r0_50, mu0_1 -# 181| r0_52(glval) = VariableAddress[x] : -# 181| m0_53(int) = Store : r0_52, r0_51 -# 182| r0_54(glval) = VariableAddress[a] : -# 182| r0_55(int *) = Convert : r0_54 -# 182| r0_56(glval) = VariableAddress[i] : -# 182| r0_57(int) = Load : r0_56, m0_7 -# 182| r0_58(int *) = PointerAdd[4] : r0_55, r0_57 -# 182| r0_59(int) = Load : r0_58, mu0_1 -# 182| r0_60(glval) = VariableAddress[x] : -# 182| m0_61(int) = Store : r0_60, r0_59 -# 183| r0_62(glval) = VariableAddress[x] : -# 183| r0_63(int) = Load : r0_62, m0_61 -# 183| r0_64(glval) = VariableAddress[a] : -# 183| r0_65(int *) = Convert : r0_64 -# 183| r0_66(glval) = VariableAddress[i] : -# 183| r0_67(int) = Load : r0_66, m0_7 -# 183| r0_68(int *) = PointerAdd[4] : r0_65, r0_67 -# 183| mu0_69(int) = Store : r0_68, r0_63 -# 184| r0_70(glval) = VariableAddress[x] : -# 184| r0_71(int) = Load : r0_70, m0_61 -# 184| r0_72(glval) = VariableAddress[a] : -# 184| r0_73(int *) = Convert : r0_72 -# 184| r0_74(glval) = VariableAddress[i] : -# 184| r0_75(int) = Load : r0_74, m0_7 -# 184| r0_76(int *) = PointerAdd[4] : r0_73, r0_75 -# 184| mu0_77(int) = Store : r0_76, r0_71 -# 185| v0_78(void) = NoOp : -# 171| v0_79(void) = ReturnVoid : -# 171| v0_80(void) = UnmodeledUse : mu* -# 171| v0_81(void) = ExitFunction : +# 171| r0_2(glval) = VariableAddress[p] : +# 171| m0_3(int *) = InitializeParameter[p] : r0_2 +# 171| r0_4(glval) = VariableAddress[i] : +# 171| m0_5(int) = InitializeParameter[i] : r0_4 +# 172| r0_6(glval) = VariableAddress[x] : +# 172| m0_7(int) = Uninitialized : r0_6 +# 174| r0_8(glval) = VariableAddress[p] : +# 174| r0_9(int *) = Load : r0_8, m0_3 +# 174| r0_10(glval) = VariableAddress[i] : +# 174| r0_11(int) = Load : r0_10, m0_5 +# 174| r0_12(int *) = PointerAdd[4] : r0_9, r0_11 +# 174| r0_13(int) = Load : r0_12, mu0_1 +# 174| r0_14(glval) = VariableAddress[x] : +# 174| m0_15(int) = Store : r0_14, r0_13 +# 175| r0_16(glval) = VariableAddress[p] : +# 175| r0_17(int *) = Load : r0_16, m0_3 +# 175| r0_18(glval) = VariableAddress[i] : +# 175| r0_19(int) = Load : r0_18, m0_5 +# 175| r0_20(int *) = PointerAdd[4] : r0_17, r0_19 +# 175| r0_21(int) = Load : r0_20, mu0_1 +# 175| r0_22(glval) = VariableAddress[x] : +# 175| m0_23(int) = Store : r0_22, r0_21 +# 177| r0_24(glval) = VariableAddress[x] : +# 177| r0_25(int) = Load : r0_24, m0_23 +# 177| r0_26(glval) = VariableAddress[p] : +# 177| r0_27(int *) = Load : r0_26, m0_3 +# 177| r0_28(glval) = VariableAddress[i] : +# 177| r0_29(int) = Load : r0_28, m0_5 +# 177| r0_30(int *) = PointerAdd[4] : r0_27, r0_29 +# 177| mu0_31(int) = Store : r0_30, r0_25 +# 178| r0_32(glval) = VariableAddress[x] : +# 178| r0_33(int) = Load : r0_32, m0_23 +# 178| r0_34(glval) = VariableAddress[p] : +# 178| r0_35(int *) = Load : r0_34, m0_3 +# 178| r0_36(glval) = VariableAddress[i] : +# 178| r0_37(int) = Load : r0_36, m0_5 +# 178| r0_38(int *) = PointerAdd[4] : r0_35, r0_37 +# 178| mu0_39(int) = Store : r0_38, r0_33 +# 180| r0_40(glval) = VariableAddress[a] : +# 180| m0_41(int[10]) = Uninitialized : r0_40 +# 181| r0_42(glval) = VariableAddress[a] : +# 181| r0_43(int *) = Convert : r0_42 +# 181| r0_44(glval) = VariableAddress[i] : +# 181| r0_45(int) = Load : r0_44, m0_5 +# 181| r0_46(int *) = PointerAdd[4] : r0_43, r0_45 +# 181| r0_47(int) = Load : r0_46, mu0_1 +# 181| r0_48(glval) = VariableAddress[x] : +# 181| m0_49(int) = Store : r0_48, r0_47 +# 182| r0_50(glval) = VariableAddress[a] : +# 182| r0_51(int *) = Convert : r0_50 +# 182| r0_52(glval) = VariableAddress[i] : +# 182| r0_53(int) = Load : r0_52, m0_5 +# 182| r0_54(int *) = PointerAdd[4] : r0_51, r0_53 +# 182| r0_55(int) = Load : r0_54, mu0_1 +# 182| r0_56(glval) = VariableAddress[x] : +# 182| m0_57(int) = Store : r0_56, r0_55 +# 183| r0_58(glval) = VariableAddress[x] : +# 183| r0_59(int) = Load : r0_58, m0_57 +# 183| r0_60(glval) = VariableAddress[a] : +# 183| r0_61(int *) = Convert : r0_60 +# 183| r0_62(glval) = VariableAddress[i] : +# 183| r0_63(int) = Load : r0_62, m0_5 +# 183| r0_64(int *) = PointerAdd[4] : r0_61, r0_63 +# 183| mu0_65(int) = Store : r0_64, r0_59 +# 184| r0_66(glval) = VariableAddress[x] : +# 184| r0_67(int) = Load : r0_66, m0_57 +# 184| r0_68(glval) = VariableAddress[a] : +# 184| r0_69(int *) = Convert : r0_68 +# 184| r0_70(glval) = VariableAddress[i] : +# 184| r0_71(int) = Load : r0_70, m0_5 +# 184| r0_72(int *) = PointerAdd[4] : r0_69, r0_71 +# 184| mu0_73(int) = Store : r0_72, r0_67 +# 185| v0_74(void) = NoOp : +# 171| v0_75(void) = ReturnVoid : +# 171| v0_76(void) = UnmodeledUse : mu* +# 171| v0_77(void) = ExitFunction : # 187| StringLiteral(int) -> void # 187| Block 0 # 187| v0_0(void) = EnterFunction : # 187| mu0_1(unknown) = UnmodeledDefinition : -# 187| r0_2(int) = InitializeParameter[i] : -# 187| r0_3(glval) = VariableAddress[i] : -# 187| m0_4(int) = Store : r0_3, r0_2 -# 188| r0_5(glval) = VariableAddress[c] : -# 188| r0_6(glval) = StringConstant["Foo"] : -# 188| r0_7(char *) = Convert : r0_6 -# 188| r0_8(glval) = VariableAddress[i] : -# 188| r0_9(int) = Load : r0_8, m0_4 -# 188| r0_10(char *) = PointerAdd[1] : r0_7, r0_9 -# 188| r0_11(char) = Load : r0_10, mu0_1 -# 188| m0_12(char) = Store : r0_5, r0_11 -# 189| r0_13(glval) = VariableAddress[pwc] : -# 189| r0_14(glval) = StringConstant[L"Bar"] : +# 187| r0_2(glval) = VariableAddress[i] : +# 187| m0_3(int) = InitializeParameter[i] : r0_2 +# 188| r0_4(glval) = VariableAddress[c] : +# 188| r0_5(glval) = StringConstant["Foo"] : +# 188| r0_6(char *) = Convert : r0_5 +# 188| r0_7(glval) = VariableAddress[i] : +# 188| r0_8(int) = Load : r0_7, m0_3 +# 188| r0_9(char *) = PointerAdd[1] : r0_6, r0_8 +# 188| r0_10(char) = Load : r0_9, mu0_1 +# 188| m0_11(char) = Store : r0_4, r0_10 +# 189| r0_12(glval) = VariableAddress[pwc] : +# 189| r0_13(glval) = StringConstant[L"Bar"] : +# 189| r0_14(wchar_t *) = Convert : r0_13 # 189| r0_15(wchar_t *) = Convert : r0_14 -# 189| r0_16(wchar_t *) = Convert : r0_15 -# 189| m0_17(wchar_t *) = Store : r0_13, r0_16 -# 190| r0_18(glval) = VariableAddress[wc] : -# 190| r0_19(glval) = VariableAddress[pwc] : -# 190| r0_20(wchar_t *) = Load : r0_19, m0_17 -# 190| r0_21(glval) = VariableAddress[i] : -# 190| r0_22(int) = Load : r0_21, m0_4 -# 190| r0_23(wchar_t *) = PointerAdd[4] : r0_20, r0_22 -# 190| r0_24(wchar_t) = Load : r0_23, mu0_1 -# 190| m0_25(wchar_t) = Store : r0_18, r0_24 -# 191| v0_26(void) = NoOp : -# 187| v0_27(void) = ReturnVoid : -# 187| v0_28(void) = UnmodeledUse : mu* -# 187| v0_29(void) = ExitFunction : +# 189| m0_16(wchar_t *) = Store : r0_12, r0_15 +# 190| r0_17(glval) = VariableAddress[wc] : +# 190| r0_18(glval) = VariableAddress[pwc] : +# 190| r0_19(wchar_t *) = Load : r0_18, m0_16 +# 190| r0_20(glval) = VariableAddress[i] : +# 190| r0_21(int) = Load : r0_20, m0_3 +# 190| r0_22(wchar_t *) = PointerAdd[4] : r0_19, r0_21 +# 190| r0_23(wchar_t) = Load : r0_22, mu0_1 +# 190| m0_24(wchar_t) = Store : r0_17, r0_23 +# 191| v0_25(void) = NoOp : +# 187| v0_26(void) = ReturnVoid : +# 187| v0_27(void) = UnmodeledUse : mu* +# 187| v0_28(void) = ExitFunction : # 193| PointerCompare(int *, int *) -> void # 193| Block 0 # 193| v0_0(void) = EnterFunction : # 193| mu0_1(unknown) = UnmodeledDefinition : -# 193| r0_2(int *) = InitializeParameter[p] : -# 193| r0_3(glval) = VariableAddress[p] : -# 193| m0_4(int *) = Store : r0_3, r0_2 -# 193| r0_5(int *) = InitializeParameter[q] : -# 193| r0_6(glval) = VariableAddress[q] : -# 193| m0_7(int *) = Store : r0_6, r0_5 -# 194| r0_8(glval) = VariableAddress[b] : -# 194| r0_9(bool) = Uninitialized : -# 194| m0_10(bool) = Store : r0_8, r0_9 -# 196| r0_11(glval) = VariableAddress[p] : -# 196| r0_12(int *) = Load : r0_11, m0_4 -# 196| r0_13(glval) = VariableAddress[q] : -# 196| r0_14(int *) = Load : r0_13, m0_7 -# 196| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 196| r0_16(glval) = VariableAddress[b] : -# 196| m0_17(bool) = Store : r0_16, r0_15 -# 197| r0_18(glval) = VariableAddress[p] : -# 197| r0_19(int *) = Load : r0_18, m0_4 -# 197| r0_20(glval) = VariableAddress[q] : -# 197| r0_21(int *) = Load : r0_20, m0_7 -# 197| r0_22(bool) = CompareNE : r0_19, r0_21 -# 197| r0_23(glval) = VariableAddress[b] : -# 197| m0_24(bool) = Store : r0_23, r0_22 -# 198| r0_25(glval) = VariableAddress[p] : -# 198| r0_26(int *) = Load : r0_25, m0_4 -# 198| r0_27(glval) = VariableAddress[q] : -# 198| r0_28(int *) = Load : r0_27, m0_7 -# 198| r0_29(bool) = CompareLT : r0_26, r0_28 -# 198| r0_30(glval) = VariableAddress[b] : -# 198| m0_31(bool) = Store : r0_30, r0_29 -# 199| r0_32(glval) = VariableAddress[p] : -# 199| r0_33(int *) = Load : r0_32, m0_4 -# 199| r0_34(glval) = VariableAddress[q] : -# 199| r0_35(int *) = Load : r0_34, m0_7 -# 199| r0_36(bool) = CompareGT : r0_33, r0_35 -# 199| r0_37(glval) = VariableAddress[b] : -# 199| m0_38(bool) = Store : r0_37, r0_36 -# 200| r0_39(glval) = VariableAddress[p] : -# 200| r0_40(int *) = Load : r0_39, m0_4 -# 200| r0_41(glval) = VariableAddress[q] : -# 200| r0_42(int *) = Load : r0_41, m0_7 -# 200| r0_43(bool) = CompareLE : r0_40, r0_42 -# 200| r0_44(glval) = VariableAddress[b] : -# 200| m0_45(bool) = Store : r0_44, r0_43 -# 201| r0_46(glval) = VariableAddress[p] : -# 201| r0_47(int *) = Load : r0_46, m0_4 -# 201| r0_48(glval) = VariableAddress[q] : -# 201| r0_49(int *) = Load : r0_48, m0_7 -# 201| r0_50(bool) = CompareGE : r0_47, r0_49 -# 201| r0_51(glval) = VariableAddress[b] : -# 201| m0_52(bool) = Store : r0_51, r0_50 -# 202| v0_53(void) = NoOp : -# 193| v0_54(void) = ReturnVoid : -# 193| v0_55(void) = UnmodeledUse : mu* -# 193| v0_56(void) = ExitFunction : +# 193| r0_2(glval) = VariableAddress[p] : +# 193| m0_3(int *) = InitializeParameter[p] : r0_2 +# 193| r0_4(glval) = VariableAddress[q] : +# 193| m0_5(int *) = InitializeParameter[q] : r0_4 +# 194| r0_6(glval) = VariableAddress[b] : +# 194| m0_7(bool) = Uninitialized : r0_6 +# 196| r0_8(glval) = VariableAddress[p] : +# 196| r0_9(int *) = Load : r0_8, m0_3 +# 196| r0_10(glval) = VariableAddress[q] : +# 196| r0_11(int *) = Load : r0_10, m0_5 +# 196| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 196| r0_13(glval) = VariableAddress[b] : +# 196| m0_14(bool) = Store : r0_13, r0_12 +# 197| r0_15(glval) = VariableAddress[p] : +# 197| r0_16(int *) = Load : r0_15, m0_3 +# 197| r0_17(glval) = VariableAddress[q] : +# 197| r0_18(int *) = Load : r0_17, m0_5 +# 197| r0_19(bool) = CompareNE : r0_16, r0_18 +# 197| r0_20(glval) = VariableAddress[b] : +# 197| m0_21(bool) = Store : r0_20, r0_19 +# 198| r0_22(glval) = VariableAddress[p] : +# 198| r0_23(int *) = Load : r0_22, m0_3 +# 198| r0_24(glval) = VariableAddress[q] : +# 198| r0_25(int *) = Load : r0_24, m0_5 +# 198| r0_26(bool) = CompareLT : r0_23, r0_25 +# 198| r0_27(glval) = VariableAddress[b] : +# 198| m0_28(bool) = Store : r0_27, r0_26 +# 199| r0_29(glval) = VariableAddress[p] : +# 199| r0_30(int *) = Load : r0_29, m0_3 +# 199| r0_31(glval) = VariableAddress[q] : +# 199| r0_32(int *) = Load : r0_31, m0_5 +# 199| r0_33(bool) = CompareGT : r0_30, r0_32 +# 199| r0_34(glval) = VariableAddress[b] : +# 199| m0_35(bool) = Store : r0_34, r0_33 +# 200| r0_36(glval) = VariableAddress[p] : +# 200| r0_37(int *) = Load : r0_36, m0_3 +# 200| r0_38(glval) = VariableAddress[q] : +# 200| r0_39(int *) = Load : r0_38, m0_5 +# 200| r0_40(bool) = CompareLE : r0_37, r0_39 +# 200| r0_41(glval) = VariableAddress[b] : +# 200| m0_42(bool) = Store : r0_41, r0_40 +# 201| r0_43(glval) = VariableAddress[p] : +# 201| r0_44(int *) = Load : r0_43, m0_3 +# 201| r0_45(glval) = VariableAddress[q] : +# 201| r0_46(int *) = Load : r0_45, m0_5 +# 201| r0_47(bool) = CompareGE : r0_44, r0_46 +# 201| r0_48(glval) = VariableAddress[b] : +# 201| m0_49(bool) = Store : r0_48, r0_47 +# 202| v0_50(void) = NoOp : +# 193| v0_51(void) = ReturnVoid : +# 193| v0_52(void) = UnmodeledUse : mu* +# 193| v0_53(void) = ExitFunction : # 204| PointerCrement(int *) -> void # 204| Block 0 # 204| v0_0(void) = EnterFunction : # 204| mu0_1(unknown) = UnmodeledDefinition : -# 204| r0_2(int *) = InitializeParameter[p] : -# 204| r0_3(glval) = VariableAddress[p] : -# 204| m0_4(int *) = Store : r0_3, r0_2 -# 205| r0_5(glval) = VariableAddress[q] : -# 205| r0_6(int *) = Uninitialized : -# 205| m0_7(int *) = Store : r0_5, r0_6 -# 207| r0_8(glval) = VariableAddress[p] : -# 207| r0_9(int *) = Load : r0_8, m0_4 -# 207| r0_10(int) = Constant[1] : -# 207| r0_11(int *) = PointerAdd[4] : r0_9, r0_10 -# 207| m0_12(int *) = Store : r0_8, r0_11 -# 207| r0_13(glval) = VariableAddress[q] : -# 207| m0_14(int *) = Store : r0_13, r0_11 -# 208| r0_15(glval) = VariableAddress[p] : -# 208| r0_16(int *) = Load : r0_15, m0_12 -# 208| r0_17(int) = Constant[1] : -# 208| r0_18(int *) = PointerSub[4] : r0_16, r0_17 -# 208| m0_19(int *) = Store : r0_15, r0_18 -# 208| r0_20(glval) = VariableAddress[q] : -# 208| m0_21(int *) = Store : r0_20, r0_18 -# 209| r0_22(glval) = VariableAddress[p] : -# 209| r0_23(int *) = Load : r0_22, m0_19 -# 209| r0_24(int) = Constant[1] : -# 209| r0_25(int *) = PointerAdd[4] : r0_23, r0_24 -# 209| m0_26(int *) = Store : r0_22, r0_25 -# 209| r0_27(glval) = VariableAddress[q] : -# 209| m0_28(int *) = Store : r0_27, r0_23 -# 210| r0_29(glval) = VariableAddress[p] : -# 210| r0_30(int *) = Load : r0_29, m0_26 -# 210| r0_31(int) = Constant[1] : -# 210| r0_32(int *) = PointerSub[4] : r0_30, r0_31 -# 210| m0_33(int *) = Store : r0_29, r0_32 -# 210| r0_34(glval) = VariableAddress[q] : -# 210| m0_35(int *) = Store : r0_34, r0_30 -# 211| v0_36(void) = NoOp : -# 204| v0_37(void) = ReturnVoid : -# 204| v0_38(void) = UnmodeledUse : mu* -# 204| v0_39(void) = ExitFunction : +# 204| r0_2(glval) = VariableAddress[p] : +# 204| m0_3(int *) = InitializeParameter[p] : r0_2 +# 205| r0_4(glval) = VariableAddress[q] : +# 205| m0_5(int *) = Uninitialized : r0_4 +# 207| r0_6(glval) = VariableAddress[p] : +# 207| r0_7(int *) = Load : r0_6, m0_3 +# 207| r0_8(int) = Constant[1] : +# 207| r0_9(int *) = PointerAdd[4] : r0_7, r0_8 +# 207| m0_10(int *) = Store : r0_6, r0_9 +# 207| r0_11(glval) = VariableAddress[q] : +# 207| m0_12(int *) = Store : r0_11, r0_9 +# 208| r0_13(glval) = VariableAddress[p] : +# 208| r0_14(int *) = Load : r0_13, m0_10 +# 208| r0_15(int) = Constant[1] : +# 208| r0_16(int *) = PointerSub[4] : r0_14, r0_15 +# 208| m0_17(int *) = Store : r0_13, r0_16 +# 208| r0_18(glval) = VariableAddress[q] : +# 208| m0_19(int *) = Store : r0_18, r0_16 +# 209| r0_20(glval) = VariableAddress[p] : +# 209| r0_21(int *) = Load : r0_20, m0_17 +# 209| r0_22(int) = Constant[1] : +# 209| r0_23(int *) = PointerAdd[4] : r0_21, r0_22 +# 209| m0_24(int *) = Store : r0_20, r0_23 +# 209| r0_25(glval) = VariableAddress[q] : +# 209| m0_26(int *) = Store : r0_25, r0_21 +# 210| r0_27(glval) = VariableAddress[p] : +# 210| r0_28(int *) = Load : r0_27, m0_24 +# 210| r0_29(int) = Constant[1] : +# 210| r0_30(int *) = PointerSub[4] : r0_28, r0_29 +# 210| m0_31(int *) = Store : r0_27, r0_30 +# 210| r0_32(glval) = VariableAddress[q] : +# 210| m0_33(int *) = Store : r0_32, r0_28 +# 211| v0_34(void) = NoOp : +# 204| v0_35(void) = ReturnVoid : +# 204| v0_36(void) = UnmodeledUse : mu* +# 204| v0_37(void) = ExitFunction : # 213| CompoundAssignment() -> void # 213| Block 0 @@ -966,74 +934,68 @@ ir.cpp: # 230| v0_0(void) = EnterFunction : # 230| mu0_1(unknown) = UnmodeledDefinition : # 231| r0_2(glval) = VariableAddress[x] : -# 231| r0_3(int) = Uninitialized : -# 231| m0_4(int) = Store : r0_2, r0_3 -# 232| r0_5(glval) = VariableAddress[y] : -# 232| r0_6(glval) = VariableAddress[x] : -# 232| r0_7(int) = Load : r0_6, m0_4 -# 232| m0_8(int) = Store : r0_5, r0_7 -# 233| v0_9(void) = NoOp : -# 230| v0_10(void) = ReturnVoid : -# 230| v0_11(void) = UnmodeledUse : mu* -# 230| v0_12(void) = ExitFunction : +# 231| m0_3(int) = Uninitialized : r0_2 +# 232| r0_4(glval) = VariableAddress[y] : +# 232| r0_5(glval) = VariableAddress[x] : +# 232| r0_6(int) = Load : r0_5, m0_3 +# 232| m0_7(int) = Store : r0_4, r0_6 +# 233| v0_8(void) = NoOp : +# 230| v0_9(void) = ReturnVoid : +# 230| v0_10(void) = UnmodeledUse : mu* +# 230| v0_11(void) = ExitFunction : # 235| Parameters(int, int) -> int # 235| Block 0 # 235| v0_0(void) = EnterFunction : # 235| mu0_1(unknown) = UnmodeledDefinition : -# 235| r0_2(int) = InitializeParameter[x] : -# 235| r0_3(glval) = VariableAddress[x] : -# 235| m0_4(int) = Store : r0_3, r0_2 -# 235| r0_5(int) = InitializeParameter[y] : -# 235| r0_6(glval) = VariableAddress[y] : -# 235| m0_7(int) = Store : r0_6, r0_5 -# 236| r0_8(glval) = VariableAddress[#return] : -# 236| r0_9(glval) = VariableAddress[x] : -# 236| r0_10(int) = Load : r0_9, m0_4 -# 236| r0_11(glval) = VariableAddress[y] : -# 236| r0_12(int) = Load : r0_11, m0_7 -# 236| r0_13(int) = Rem : r0_10, r0_12 -# 236| m0_14(int) = Store : r0_8, r0_13 -# 235| r0_15(glval) = VariableAddress[#return] : -# 235| v0_16(void) = ReturnValue : r0_15, m0_14 -# 235| v0_17(void) = UnmodeledUse : mu* -# 235| v0_18(void) = ExitFunction : +# 235| r0_2(glval) = VariableAddress[x] : +# 235| m0_3(int) = InitializeParameter[x] : r0_2 +# 235| r0_4(glval) = VariableAddress[y] : +# 235| m0_5(int) = InitializeParameter[y] : r0_4 +# 236| r0_6(glval) = VariableAddress[#return] : +# 236| r0_7(glval) = VariableAddress[x] : +# 236| r0_8(int) = Load : r0_7, m0_3 +# 236| r0_9(glval) = VariableAddress[y] : +# 236| r0_10(int) = Load : r0_9, m0_5 +# 236| r0_11(int) = Rem : r0_8, r0_10 +# 236| m0_12(int) = Store : r0_6, r0_11 +# 235| r0_13(glval) = VariableAddress[#return] : +# 235| v0_14(void) = ReturnValue : r0_13, m0_12 +# 235| v0_15(void) = UnmodeledUse : mu* +# 235| v0_16(void) = ExitFunction : # 239| IfStatements(bool, int, int) -> void # 239| Block 0 -# 239| v0_0(void) = EnterFunction : -# 239| mu0_1(unknown) = UnmodeledDefinition : -# 239| r0_2(bool) = InitializeParameter[b] : -# 239| r0_3(glval) = VariableAddress[b] : -# 239| m0_4(bool) = Store : r0_3, r0_2 -# 239| r0_5(int) = InitializeParameter[x] : -# 239| r0_6(glval) = VariableAddress[x] : -# 239| m0_7(int) = Store : r0_6, r0_5 -# 239| r0_8(int) = InitializeParameter[y] : -# 239| r0_9(glval) = VariableAddress[y] : -# 239| m0_10(int) = Store : r0_9, r0_8 -# 240| r0_11(glval) = VariableAddress[b] : -# 240| r0_12(bool) = Load : r0_11, m0_4 -# 240| v0_13(void) = ConditionalBranch : r0_12 +# 239| v0_0(void) = EnterFunction : +# 239| mu0_1(unknown) = UnmodeledDefinition : +# 239| r0_2(glval) = VariableAddress[b] : +# 239| m0_3(bool) = InitializeParameter[b] : r0_2 +# 239| r0_4(glval) = VariableAddress[x] : +# 239| m0_5(int) = InitializeParameter[x] : r0_4 +# 239| r0_6(glval) = VariableAddress[y] : +# 239| m0_7(int) = InitializeParameter[y] : r0_6 +# 240| r0_8(glval) = VariableAddress[b] : +# 240| r0_9(bool) = Load : r0_8, m0_3 +# 240| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 7 # 243| Block 1 # 243| r1_0(glval) = VariableAddress[b] : -# 243| r1_1(bool) = Load : r1_0, m0_4 +# 243| r1_1(bool) = Load : r1_0, m0_3 # 243| v1_2(void) = ConditionalBranch : r1_1 #-----| False -> Block 3 #-----| True -> Block 2 # 244| Block 2 # 244| r2_0(glval) = VariableAddress[y] : -# 244| r2_1(int) = Load : r2_0, m0_10 +# 244| r2_1(int) = Load : r2_0, m0_7 # 244| r2_2(glval) = VariableAddress[x] : # 244| m2_3(int) = Store : r2_2, r2_1 #-----| Goto -> Block 3 # 247| Block 3 -# 247| m3_0(int) = Phi : from 1:m0_7, from 2:m2_3 +# 247| m3_0(int) = Phi : from 1:m0_5, from 2:m2_3 # 247| r3_1(glval) = VariableAddress[x] : # 247| r3_2(int) = Load : r3_1, m3_0 # 247| r3_3(int) = Constant[7] : @@ -1068,9 +1030,8 @@ ir.cpp: # 253| Block 0 # 253| v0_0(void) = EnterFunction : # 253| mu0_1(unknown) = UnmodeledDefinition : -# 253| r0_2(int) = InitializeParameter[n] : -# 253| r0_3(glval) = VariableAddress[n] : -# 253| m0_4(int) = Store : r0_3, r0_2 +# 253| r0_2(glval) = VariableAddress[n] : +# 253| m0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 3 # 255| Block 1 @@ -1088,7 +1049,7 @@ ir.cpp: # 253| v2_3(void) = ExitFunction : # 254| Block 3 -# 254| m3_0(int) = Phi : from 0:m0_4, from 1:m1_4 +# 254| m3_0(int) = Phi : from 0:m0_3, from 1:m1_4 # 254| r3_1(glval) = VariableAddress[n] : # 254| r3_2(int) = Load : r3_1, m3_0 # 254| r3_3(int) = Constant[0] : @@ -1101,13 +1062,12 @@ ir.cpp: # 259| Block 0 # 259| v0_0(void) = EnterFunction : # 259| mu0_1(unknown) = UnmodeledDefinition : -# 259| r0_2(int) = InitializeParameter[n] : -# 259| r0_3(glval) = VariableAddress[n] : -# 259| m0_4(int) = Store : r0_3, r0_2 +# 259| r0_2(glval) = VariableAddress[n] : +# 259| m0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 1 # 261| Block 1 -# 261| m1_0(int) = Phi : from 0:m0_4, from 1:m1_5 +# 261| m1_0(int) = Phi : from 0:m0_3, from 1:m1_5 # 261| r1_1(int) = Constant[1] : # 261| r1_2(glval) = VariableAddress[n] : # 261| r1_3(int) = Load : r1_2, m1_0 @@ -1132,8 +1092,7 @@ ir.cpp: # 265| v0_0(void) = EnterFunction : # 265| mu0_1(unknown) = UnmodeledDefinition : # 266| r0_2(glval) = VariableAddress[j] : -# 266| r0_3(int) = Uninitialized : -# 266| m0_4(int) = Store : r0_2, r0_3 +# 266| m0_3(int) = Uninitialized : r0_2 #-----| Goto -> Block 2 # 265| Block 1 @@ -1472,24 +1431,23 @@ ir.cpp: # 341| Dereference(int *) -> int # 341| Block 0 -# 341| v0_0(void) = EnterFunction : -# 341| mu0_1(unknown) = UnmodeledDefinition : -# 341| r0_2(int *) = InitializeParameter[p] : -# 341| r0_3(glval) = VariableAddress[p] : -# 341| m0_4(int *) = Store : r0_3, r0_2 -# 342| r0_5(int) = Constant[1] : -# 342| r0_6(glval) = VariableAddress[p] : -# 342| r0_7(int *) = Load : r0_6, m0_4 -# 342| mu0_8(int) = Store : r0_7, r0_5 -# 343| r0_9(glval) = VariableAddress[#return] : -# 343| r0_10(glval) = VariableAddress[p] : -# 343| r0_11(int *) = Load : r0_10, m0_4 -# 343| r0_12(int) = Load : r0_11, mu0_1 -# 343| m0_13(int) = Store : r0_9, r0_12 -# 341| r0_14(glval) = VariableAddress[#return] : -# 341| v0_15(void) = ReturnValue : r0_14, m0_13 -# 341| v0_16(void) = UnmodeledUse : mu* -# 341| v0_17(void) = ExitFunction : +# 341| v0_0(void) = EnterFunction : +# 341| mu0_1(unknown) = UnmodeledDefinition : +# 341| r0_2(glval) = VariableAddress[p] : +# 341| m0_3(int *) = InitializeParameter[p] : r0_2 +# 342| r0_4(int) = Constant[1] : +# 342| r0_5(glval) = VariableAddress[p] : +# 342| r0_6(int *) = Load : r0_5, m0_3 +# 342| mu0_7(int) = Store : r0_6, r0_4 +# 343| r0_8(glval) = VariableAddress[#return] : +# 343| r0_9(glval) = VariableAddress[p] : +# 343| r0_10(int *) = Load : r0_9, m0_3 +# 343| r0_11(int) = Load : r0_10, mu0_1 +# 343| m0_12(int) = Store : r0_8, r0_11 +# 341| r0_13(glval) = VariableAddress[#return] : +# 341| v0_14(void) = ReturnValue : r0_13, m0_12 +# 341| v0_15(void) = UnmodeledUse : mu* +# 341| v0_16(void) = ExitFunction : # 348| AddressOf() -> int * # 348| Block 0 @@ -1507,9 +1465,8 @@ ir.cpp: # 352| Block 0 # 352| v0_0(void) = EnterFunction : # 352| mu0_1(unknown) = UnmodeledDefinition : -# 352| r0_2(int) = InitializeParameter[n] : -# 352| r0_3(glval) = VariableAddress[n] : -# 352| m0_4(int) = Store : r0_3, r0_2 +# 352| r0_2(glval) = VariableAddress[n] : +# 352| m0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 5 # 354| Block 1 @@ -1541,7 +1498,7 @@ ir.cpp: # 352| v4_4(void) = ExitFunction : # 353| Block 5 -# 353| m5_0(int) = Phi : from 0:m0_4, from 3:m3_4 +# 353| m5_0(int) = Phi : from 0:m0_3, from 3:m3_4 # 353| r5_1(glval) = VariableAddress[n] : # 353| r5_2(int) = Load : r5_1, m5_0 # 353| r5_3(int) = Constant[0] : @@ -1554,13 +1511,12 @@ ir.cpp: # 360| Block 0 # 360| v0_0(void) = EnterFunction : # 360| mu0_1(unknown) = UnmodeledDefinition : -# 360| r0_2(int) = InitializeParameter[n] : -# 360| r0_3(glval) = VariableAddress[n] : -# 360| m0_4(int) = Store : r0_3, r0_2 +# 360| r0_2(glval) = VariableAddress[n] : +# 360| m0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 1 # 362| Block 1 -# 362| m1_0(int) = Phi : from 0:m0_4, from 4:m4_0 +# 362| m1_0(int) = Phi : from 0:m0_3, from 4:m4_0 # 362| r1_1(glval) = VariableAddress[n] : # 362| r1_2(int) = Load : r1_1, m1_0 # 362| r1_3(int) = Constant[1] : @@ -1613,63 +1569,57 @@ ir.cpp: # 376| Block 0 # 376| v0_0(void) = EnterFunction : # 376| mu0_1(unknown) = UnmodeledDefinition : -# 376| r0_2(int) = InitializeParameter[x] : -# 376| r0_3(glval) = VariableAddress[x] : -# 376| m0_4(int) = Store : r0_3, r0_2 -# 376| r0_5(int) = InitializeParameter[y] : -# 376| r0_6(glval) = VariableAddress[y] : -# 376| m0_7(int) = Store : r0_6, r0_5 -# 377| r0_8(glval) = VariableAddress[#return] : -# 377| r0_9(bool) = FunctionAddress[Add] : -# 377| r0_10(glval) = VariableAddress[x] : -# 377| r0_11(int) = Load : r0_10, m0_4 -# 377| r0_12(glval) = VariableAddress[y] : -# 377| r0_13(int) = Load : r0_12, m0_7 -# 377| r0_14(int) = Invoke : r0_9, r0_11, r0_13 -# 377| m0_15(int) = Store : r0_8, r0_14 -# 376| r0_16(glval) = VariableAddress[#return] : -# 376| v0_17(void) = ReturnValue : r0_16, m0_15 -# 376| v0_18(void) = UnmodeledUse : mu* -# 376| v0_19(void) = ExitFunction : +# 376| r0_2(glval) = VariableAddress[x] : +# 376| m0_3(int) = InitializeParameter[x] : r0_2 +# 376| r0_4(glval) = VariableAddress[y] : +# 376| m0_5(int) = InitializeParameter[y] : r0_4 +# 377| r0_6(glval) = VariableAddress[#return] : +# 377| r0_7(bool) = FunctionAddress[Add] : +# 377| r0_8(glval) = VariableAddress[x] : +# 377| r0_9(int) = Load : r0_8, m0_3 +# 377| r0_10(glval) = VariableAddress[y] : +# 377| r0_11(int) = Load : r0_10, m0_5 +# 377| r0_12(int) = Invoke : r0_7, r0_9, r0_11 +# 377| m0_13(int) = Store : r0_6, r0_12 +# 376| r0_14(glval) = VariableAddress[#return] : +# 376| v0_15(void) = ReturnValue : r0_14, m0_13 +# 376| v0_16(void) = UnmodeledUse : mu* +# 376| v0_17(void) = ExitFunction : # 380| Comma(int, int) -> int # 380| Block 0 # 380| v0_0(void) = EnterFunction : # 380| mu0_1(unknown) = UnmodeledDefinition : -# 380| r0_2(int) = InitializeParameter[x] : -# 380| r0_3(glval) = VariableAddress[x] : -# 380| m0_4(int) = Store : r0_3, r0_2 -# 380| r0_5(int) = InitializeParameter[y] : -# 380| r0_6(glval) = VariableAddress[y] : -# 380| m0_7(int) = Store : r0_6, r0_5 -# 381| r0_8(glval) = VariableAddress[#return] : -# 381| r0_9(bool) = FunctionAddress[VoidFunc] : -# 381| v0_10(void) = Invoke : r0_9 -# 381| r0_11(bool) = FunctionAddress[CallAdd] : -# 381| r0_12(glval) = VariableAddress[x] : -# 381| r0_13(int) = Load : r0_12, m0_4 -# 381| r0_14(glval) = VariableAddress[y] : -# 381| r0_15(int) = Load : r0_14, m0_7 -# 381| r0_16(int) = Invoke : r0_11, r0_13, r0_15 -# 381| m0_17(int) = Store : r0_8, r0_16 -# 380| r0_18(glval) = VariableAddress[#return] : -# 380| v0_19(void) = ReturnValue : r0_18, m0_17 -# 380| v0_20(void) = UnmodeledUse : mu* -# 380| v0_21(void) = ExitFunction : +# 380| r0_2(glval) = VariableAddress[x] : +# 380| m0_3(int) = InitializeParameter[x] : r0_2 +# 380| r0_4(glval) = VariableAddress[y] : +# 380| m0_5(int) = InitializeParameter[y] : r0_4 +# 381| r0_6(glval) = VariableAddress[#return] : +# 381| r0_7(bool) = FunctionAddress[VoidFunc] : +# 381| v0_8(void) = Invoke : r0_7 +# 381| r0_9(bool) = FunctionAddress[CallAdd] : +# 381| r0_10(glval) = VariableAddress[x] : +# 381| r0_11(int) = Load : r0_10, m0_3 +# 381| r0_12(glval) = VariableAddress[y] : +# 381| r0_13(int) = Load : r0_12, m0_5 +# 381| r0_14(int) = Invoke : r0_9, r0_11, r0_13 +# 381| m0_15(int) = Store : r0_6, r0_14 +# 380| r0_16(glval) = VariableAddress[#return] : +# 380| v0_17(void) = ReturnValue : r0_16, m0_15 +# 380| v0_18(void) = UnmodeledUse : mu* +# 380| v0_19(void) = ExitFunction : # 384| Switch(int) -> void # 384| Block 0 # 384| v0_0(void) = EnterFunction : # 384| mu0_1(unknown) = UnmodeledDefinition : -# 384| r0_2(int) = InitializeParameter[x] : -# 384| r0_3(glval) = VariableAddress[x] : -# 384| m0_4(int) = Store : r0_3, r0_2 -# 385| r0_5(glval) = VariableAddress[y] : -# 385| r0_6(int) = Uninitialized : -# 385| m0_7(int) = Store : r0_5, r0_6 -# 386| r0_8(glval) = VariableAddress[x] : -# 386| r0_9(int) = Load : r0_8, m0_4 -# 386| v0_10(void) = Switch : r0_9 +# 384| r0_2(glval) = VariableAddress[x] : +# 384| m0_3(int) = InitializeParameter[x] : r0_2 +# 385| r0_4(glval) = VariableAddress[y] : +# 385| m0_5(int) = Uninitialized : r0_4 +# 386| r0_6(glval) = VariableAddress[x] : +# 386| r0_7(int) = Load : r0_6, m0_3 +# 386| v0_8(void) = Switch : r0_7 #-----| Case[-1] -> Block 2 #-----| Case[1] -> Block 3 #-----| Case[2] -> Block 4 @@ -1743,66 +1693,61 @@ ir.cpp: # 422| Block 0 # 422| v0_0(void) = EnterFunction : # 422| mu0_1(unknown) = UnmodeledDefinition : -# 422| r0_2(Point) = InitializeParameter[pt] : -# 422| r0_3(glval) = VariableAddress[pt] : -# 422| m0_4(Point) = Store : r0_3, r0_2 -# 423| r0_5(glval) = VariableAddress[#return] : -# 423| r0_6(glval) = VariableAddress[pt] : -# 423| r0_7(Point) = Load : r0_6, m0_4 -# 423| m0_8(Point) = Store : r0_5, r0_7 -# 422| r0_9(glval) = VariableAddress[#return] : -# 422| v0_10(void) = ReturnValue : r0_9, m0_8 -# 422| v0_11(void) = UnmodeledUse : mu* -# 422| v0_12(void) = ExitFunction : +# 422| r0_2(glval) = VariableAddress[pt] : +# 422| m0_3(Point) = InitializeParameter[pt] : r0_2 +# 423| r0_4(glval) = VariableAddress[#return] : +# 423| r0_5(glval) = VariableAddress[pt] : +# 423| r0_6(Point) = Load : r0_5, m0_3 +# 423| m0_7(Point) = Store : r0_4, r0_6 +# 422| r0_8(glval) = VariableAddress[#return] : +# 422| v0_9(void) = ReturnValue : r0_8, m0_7 +# 422| v0_10(void) = UnmodeledUse : mu* +# 422| v0_11(void) = ExitFunction : # 426| FieldAccess() -> void # 426| Block 0 # 426| v0_0(void) = EnterFunction : # 426| mu0_1(unknown) = UnmodeledDefinition : # 427| r0_2(glval) = VariableAddress[pt] : -# 427| r0_3(Point) = Uninitialized : -# 427| m0_4(Point) = Store : r0_2, r0_3 -# 428| r0_5(int) = Constant[5] : -# 428| r0_6(glval) = VariableAddress[pt] : -# 428| r0_7(glval) = FieldAddress[x] : r0_6 -# 428| m0_8(int) = Store : r0_7, r0_5 -# 429| r0_9(glval) = VariableAddress[pt] : -# 429| r0_10(glval) = FieldAddress[x] : r0_9 -# 429| r0_11(int) = Load : r0_10, m0_8 -# 429| r0_12(glval) = VariableAddress[pt] : -# 429| r0_13(glval) = FieldAddress[y] : r0_12 -# 429| mu0_14(int) = Store : r0_13, r0_11 -# 430| r0_15(glval) = VariableAddress[p] : -# 430| r0_16(glval) = VariableAddress[pt] : -# 430| r0_17(glval) = FieldAddress[y] : r0_16 -# 430| m0_18(int *) = Store : r0_15, r0_17 -# 431| v0_19(void) = NoOp : -# 426| v0_20(void) = ReturnVoid : -# 426| v0_21(void) = UnmodeledUse : mu* -# 426| v0_22(void) = ExitFunction : +# 427| m0_3(Point) = Uninitialized : r0_2 +# 428| r0_4(int) = Constant[5] : +# 428| r0_5(glval) = VariableAddress[pt] : +# 428| r0_6(glval) = FieldAddress[x] : r0_5 +# 428| m0_7(int) = Store : r0_6, r0_4 +# 429| r0_8(glval) = VariableAddress[pt] : +# 429| r0_9(glval) = FieldAddress[x] : r0_8 +# 429| r0_10(int) = Load : r0_9, m0_7 +# 429| r0_11(glval) = VariableAddress[pt] : +# 429| r0_12(glval) = FieldAddress[y] : r0_11 +# 429| mu0_13(int) = Store : r0_12, r0_10 +# 430| r0_14(glval) = VariableAddress[p] : +# 430| r0_15(glval) = VariableAddress[pt] : +# 430| r0_16(glval) = FieldAddress[y] : r0_15 +# 430| m0_17(int *) = Store : r0_14, r0_16 +# 431| v0_18(void) = NoOp : +# 426| v0_19(void) = ReturnVoid : +# 426| v0_20(void) = UnmodeledUse : mu* +# 426| v0_21(void) = ExitFunction : # 433| LogicalOr(bool, bool) -> void # 433| Block 0 -# 433| v0_0(void) = EnterFunction : -# 433| mu0_1(unknown) = UnmodeledDefinition : -# 433| r0_2(bool) = InitializeParameter[a] : -# 433| r0_3(glval) = VariableAddress[a] : -# 433| m0_4(bool) = Store : r0_3, r0_2 -# 433| r0_5(bool) = InitializeParameter[b] : -# 433| r0_6(glval) = VariableAddress[b] : -# 433| m0_7(bool) = Store : r0_6, r0_5 -# 434| r0_8(glval) = VariableAddress[x] : -# 434| r0_9(int) = Uninitialized : -# 434| m0_10(int) = Store : r0_8, r0_9 -# 435| r0_11(glval) = VariableAddress[a] : -# 435| r0_12(bool) = Load : r0_11, m0_4 -# 435| v0_13(void) = ConditionalBranch : r0_12 +# 433| v0_0(void) = EnterFunction : +# 433| mu0_1(unknown) = UnmodeledDefinition : +# 433| r0_2(glval) = VariableAddress[a] : +# 433| m0_3(bool) = InitializeParameter[a] : r0_2 +# 433| r0_4(glval) = VariableAddress[b] : +# 433| m0_5(bool) = InitializeParameter[b] : r0_4 +# 434| r0_6(glval) = VariableAddress[x] : +# 434| m0_7(int) = Uninitialized : r0_6 +# 435| r0_8(glval) = VariableAddress[a] : +# 435| r0_9(bool) = Load : r0_8, m0_3 +# 435| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 2 # 435| Block 1 # 435| r1_0(glval) = VariableAddress[b] : -# 435| r1_1(bool) = Load : r1_0, m0_7 +# 435| r1_1(bool) = Load : r1_0, m0_5 # 435| v1_2(void) = ConditionalBranch : r1_1 #-----| False -> Block 3 #-----| True -> Block 2 @@ -1815,14 +1760,14 @@ ir.cpp: # 439| Block 3 # 439| r3_0(glval) = VariableAddress[a] : -# 439| r3_1(bool) = Load : r3_0, m0_4 +# 439| r3_1(bool) = Load : r3_0, m0_3 # 439| v3_2(void) = ConditionalBranch : r3_1 #-----| False -> Block 4 #-----| True -> Block 5 # 439| Block 4 # 439| r4_0(glval) = VariableAddress[b] : -# 439| r4_1(bool) = Load : r4_0, m0_7 +# 439| r4_1(bool) = Load : r4_0, m0_5 # 439| v4_2(void) = ConditionalBranch : r4_1 #-----| False -> Block 6 #-----| True -> Block 5 @@ -1847,26 +1792,23 @@ ir.cpp: # 447| LogicalAnd(bool, bool) -> void # 447| Block 0 -# 447| v0_0(void) = EnterFunction : -# 447| mu0_1(unknown) = UnmodeledDefinition : -# 447| r0_2(bool) = InitializeParameter[a] : -# 447| r0_3(glval) = VariableAddress[a] : -# 447| m0_4(bool) = Store : r0_3, r0_2 -# 447| r0_5(bool) = InitializeParameter[b] : -# 447| r0_6(glval) = VariableAddress[b] : -# 447| m0_7(bool) = Store : r0_6, r0_5 -# 448| r0_8(glval) = VariableAddress[x] : -# 448| r0_9(int) = Uninitialized : -# 448| m0_10(int) = Store : r0_8, r0_9 -# 449| r0_11(glval) = VariableAddress[a] : -# 449| r0_12(bool) = Load : r0_11, m0_4 -# 449| v0_13(void) = ConditionalBranch : r0_12 +# 447| v0_0(void) = EnterFunction : +# 447| mu0_1(unknown) = UnmodeledDefinition : +# 447| r0_2(glval) = VariableAddress[a] : +# 447| m0_3(bool) = InitializeParameter[a] : r0_2 +# 447| r0_4(glval) = VariableAddress[b] : +# 447| m0_5(bool) = InitializeParameter[b] : r0_4 +# 448| r0_6(glval) = VariableAddress[x] : +# 448| m0_7(int) = Uninitialized : r0_6 +# 449| r0_8(glval) = VariableAddress[a] : +# 449| r0_9(bool) = Load : r0_8, m0_3 +# 449| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 3 #-----| True -> Block 1 # 449| Block 1 # 449| r1_0(glval) = VariableAddress[b] : -# 449| r1_1(bool) = Load : r1_0, m0_7 +# 449| r1_1(bool) = Load : r1_0, m0_5 # 449| v1_2(void) = ConditionalBranch : r1_1 #-----| False -> Block 3 #-----| True -> Block 2 @@ -1879,14 +1821,14 @@ ir.cpp: # 453| Block 3 # 453| r3_0(glval) = VariableAddress[a] : -# 453| r3_1(bool) = Load : r3_0, m0_4 +# 453| r3_1(bool) = Load : r3_0, m0_3 # 453| v3_2(void) = ConditionalBranch : r3_1 #-----| False -> Block 6 #-----| True -> Block 4 # 453| Block 4 # 453| r4_0(glval) = VariableAddress[b] : -# 453| r4_1(bool) = Load : r4_0, m0_7 +# 453| r4_1(bool) = Load : r4_0, m0_5 # 453| v4_2(void) = ConditionalBranch : r4_1 #-----| False -> Block 6 #-----| True -> Block 5 @@ -1911,20 +1853,17 @@ ir.cpp: # 461| LogicalNot(bool, bool) -> void # 461| Block 0 -# 461| v0_0(void) = EnterFunction : -# 461| mu0_1(unknown) = UnmodeledDefinition : -# 461| r0_2(bool) = InitializeParameter[a] : -# 461| r0_3(glval) = VariableAddress[a] : -# 461| m0_4(bool) = Store : r0_3, r0_2 -# 461| r0_5(bool) = InitializeParameter[b] : -# 461| r0_6(glval) = VariableAddress[b] : -# 461| m0_7(bool) = Store : r0_6, r0_5 -# 462| r0_8(glval) = VariableAddress[x] : -# 462| r0_9(int) = Uninitialized : -# 462| m0_10(int) = Store : r0_8, r0_9 -# 463| r0_11(glval) = VariableAddress[a] : -# 463| r0_12(bool) = Load : r0_11, m0_4 -# 463| v0_13(void) = ConditionalBranch : r0_12 +# 461| v0_0(void) = EnterFunction : +# 461| mu0_1(unknown) = UnmodeledDefinition : +# 461| r0_2(glval) = VariableAddress[a] : +# 461| m0_3(bool) = InitializeParameter[a] : r0_2 +# 461| r0_4(glval) = VariableAddress[b] : +# 461| m0_5(bool) = InitializeParameter[b] : r0_4 +# 462| r0_6(glval) = VariableAddress[x] : +# 462| m0_7(int) = Uninitialized : r0_6 +# 463| r0_8(glval) = VariableAddress[a] : +# 463| r0_9(bool) = Load : r0_8, m0_3 +# 463| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 2 @@ -1936,14 +1875,14 @@ ir.cpp: # 467| Block 2 # 467| r2_0(glval) = VariableAddress[a] : -# 467| r2_1(bool) = Load : r2_0, m0_4 +# 467| r2_1(bool) = Load : r2_0, m0_3 # 467| v2_2(void) = ConditionalBranch : r2_1 #-----| False -> Block 4 #-----| True -> Block 3 # 467| Block 3 # 467| r3_0(glval) = VariableAddress[b] : -# 467| r3_1(bool) = Load : r3_0, m0_7 +# 467| r3_1(bool) = Load : r3_0, m0_5 # 467| v3_2(void) = ConditionalBranch : r3_1 #-----| False -> Block 4 #-----| True -> Block 5 @@ -1968,26 +1907,23 @@ ir.cpp: # 475| ConditionValues(bool, bool) -> void # 475| Block 0 -# 475| v0_0(void) = EnterFunction : -# 475| mu0_1(unknown) = UnmodeledDefinition : -# 475| r0_2(bool) = InitializeParameter[a] : -# 475| r0_3(glval) = VariableAddress[a] : -# 475| m0_4(bool) = Store : r0_3, r0_2 -# 475| r0_5(bool) = InitializeParameter[b] : -# 475| r0_6(glval) = VariableAddress[b] : -# 475| m0_7(bool) = Store : r0_6, r0_5 -# 476| r0_8(glval) = VariableAddress[x] : -# 476| r0_9(bool) = Uninitialized : -# 476| m0_10(bool) = Store : r0_8, r0_9 -# 477| r0_11(glval) = VariableAddress[a] : -# 477| r0_12(bool) = Load : r0_11, m0_4 -# 477| v0_13(void) = ConditionalBranch : r0_12 +# 475| v0_0(void) = EnterFunction : +# 475| mu0_1(unknown) = UnmodeledDefinition : +# 475| r0_2(glval) = VariableAddress[a] : +# 475| m0_3(bool) = InitializeParameter[a] : r0_2 +# 475| r0_4(glval) = VariableAddress[b] : +# 475| m0_5(bool) = InitializeParameter[b] : r0_4 +# 476| r0_6(glval) = VariableAddress[x] : +# 476| m0_7(bool) = Uninitialized : r0_6 +# 477| r0_8(glval) = VariableAddress[a] : +# 477| r0_9(bool) = Load : r0_8, m0_3 +# 477| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 10 #-----| True -> Block 1 # 477| Block 1 # 477| r1_0(glval) = VariableAddress[b] : -# 477| r1_1(bool) = Load : r1_0, m0_7 +# 477| r1_1(bool) = Load : r1_0, m0_5 # 477| v1_2(void) = ConditionalBranch : r1_1 #-----| False -> Block 10 #-----| True -> Block 12 @@ -2005,7 +1941,7 @@ ir.cpp: # 478| r3_3(glval) = VariableAddress[x] : # 478| m3_4(bool) = Store : r3_3, r3_2 # 479| r3_5(glval) = VariableAddress[a] : -# 479| r3_6(bool) = Load : r3_5, m0_4 +# 479| r3_6(bool) = Load : r3_5, m0_3 # 479| v3_7(void) = ConditionalBranch : r3_6 #-----| False -> Block 9 #-----| True -> Block 8 @@ -2018,7 +1954,7 @@ ir.cpp: # 478| Block 5 # 478| r5_0(glval) = VariableAddress[b] : -# 478| r5_1(bool) = Load : r5_0, m0_7 +# 478| r5_1(bool) = Load : r5_0, m0_5 # 478| v5_2(void) = ConditionalBranch : r5_1 #-----| False -> Block 2 #-----| True -> Block 4 @@ -2049,7 +1985,7 @@ ir.cpp: # 479| Block 9 # 479| r9_0(glval) = VariableAddress[b] : -# 479| r9_1(bool) = Load : r9_0, m0_7 +# 479| r9_1(bool) = Load : r9_0, m0_5 # 479| v9_2(void) = ConditionalBranch : r9_1 #-----| False -> Block 6 #-----| True -> Block 8 @@ -2067,7 +2003,7 @@ ir.cpp: # 477| r11_3(glval) = VariableAddress[x] : # 477| m11_4(bool) = Store : r11_3, r11_2 # 478| r11_5(glval) = VariableAddress[a] : -# 478| r11_6(bool) = Load : r11_5, m0_4 +# 478| r11_6(bool) = Load : r11_5, m0_3 # 478| v11_7(void) = ConditionalBranch : r11_6 #-----| False -> Block 5 #-----| True -> Block 4 @@ -2080,34 +2016,31 @@ ir.cpp: # 482| Conditional(bool, int, int) -> void # 482| Block 0 -# 482| v0_0(void) = EnterFunction : -# 482| mu0_1(unknown) = UnmodeledDefinition : -# 482| r0_2(bool) = InitializeParameter[a] : -# 482| r0_3(glval) = VariableAddress[a] : -# 482| m0_4(bool) = Store : r0_3, r0_2 -# 482| r0_5(int) = InitializeParameter[x] : -# 482| r0_6(glval) = VariableAddress[x] : -# 482| m0_7(int) = Store : r0_6, r0_5 -# 482| r0_8(int) = InitializeParameter[y] : -# 482| r0_9(glval) = VariableAddress[y] : -# 482| m0_10(int) = Store : r0_9, r0_8 -# 483| r0_11(glval) = VariableAddress[z] : -# 483| r0_12(glval) = VariableAddress[a] : -# 483| r0_13(bool) = Load : r0_12, m0_4 -# 483| v0_14(void) = ConditionalBranch : r0_13 +# 482| v0_0(void) = EnterFunction : +# 482| mu0_1(unknown) = UnmodeledDefinition : +# 482| r0_2(glval) = VariableAddress[a] : +# 482| m0_3(bool) = InitializeParameter[a] : r0_2 +# 482| r0_4(glval) = VariableAddress[x] : +# 482| m0_5(int) = InitializeParameter[x] : r0_4 +# 482| r0_6(glval) = VariableAddress[y] : +# 482| m0_7(int) = InitializeParameter[y] : r0_6 +# 483| r0_8(glval) = VariableAddress[z] : +# 483| r0_9(glval) = VariableAddress[a] : +# 483| r0_10(bool) = Load : r0_9, m0_3 +# 483| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 2 #-----| True -> Block 1 # 483| Block 1 # 483| r1_0(glval) = VariableAddress[x] : -# 483| r1_1(int) = Load : r1_0, m0_7 +# 483| r1_1(int) = Load : r1_0, m0_5 # 483| r1_2(glval) = VariableAddress[#temp483:13] : # 483| m1_3(int) = Store : r1_2, r1_1 #-----| Goto -> Block 3 # 483| Block 2 # 483| r2_0(glval) = VariableAddress[y] : -# 483| r2_1(int) = Load : r2_0, m0_10 +# 483| r2_1(int) = Load : r2_0, m0_7 # 483| r2_2(glval) = VariableAddress[#temp483:13] : # 483| m2_3(int) = Store : r2_2, r2_1 #-----| Goto -> Block 3 @@ -2116,7 +2049,7 @@ ir.cpp: # 483| m3_0(int) = Phi : from 1:m1_3, from 2:m2_3 # 483| r3_1(glval) = VariableAddress[#temp483:13] : # 483| r3_2(int) = Load : r3_1, m3_0 -# 483| m3_3(int) = Store : r0_11, r3_2 +# 483| m3_3(int) = Store : r0_8, r3_2 # 484| v3_4(void) = NoOp : # 482| v3_5(void) = ReturnVoid : # 482| v3_6(void) = UnmodeledUse : mu* @@ -2124,21 +2057,18 @@ ir.cpp: # 486| Conditional_LValue(bool) -> void # 486| Block 0 -# 486| v0_0(void) = EnterFunction : -# 486| mu0_1(unknown) = UnmodeledDefinition : -# 486| r0_2(bool) = InitializeParameter[a] : -# 486| r0_3(glval) = VariableAddress[a] : -# 486| m0_4(bool) = Store : r0_3, r0_2 -# 487| r0_5(glval) = VariableAddress[x] : -# 487| r0_6(int) = Uninitialized : -# 487| mu0_7(int) = Store : r0_5, r0_6 -# 488| r0_8(glval) = VariableAddress[y] : -# 488| r0_9(int) = Uninitialized : -# 488| mu0_10(int) = Store : r0_8, r0_9 -# 489| r0_11(int) = Constant[5] : -# 489| r0_12(glval) = VariableAddress[a] : -# 489| r0_13(bool) = Load : r0_12, m0_4 -# 489| v0_14(void) = ConditionalBranch : r0_13 +# 486| v0_0(void) = EnterFunction : +# 486| mu0_1(unknown) = UnmodeledDefinition : +# 486| r0_2(glval) = VariableAddress[a] : +# 486| m0_3(bool) = InitializeParameter[a] : r0_2 +# 487| r0_4(glval) = VariableAddress[x] : +# 487| mu0_5(int) = Uninitialized : r0_4 +# 488| r0_6(glval) = VariableAddress[y] : +# 488| mu0_7(int) = Uninitialized : r0_6 +# 489| r0_8(int) = Constant[5] : +# 489| r0_9(glval) = VariableAddress[a] : +# 489| r0_10(bool) = Load : r0_9, m0_3 +# 489| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2146,7 +2076,7 @@ ir.cpp: # 489| m1_0(int) = Phi : from 2:m2_2, from 3:m3_2 # 489| r1_1(glval) = VariableAddress[#temp489:6] : # 489| r1_2(glval) = Load : r1_1, m1_0 -# 489| mu1_3(int) = Store : r1_2, r0_11 +# 489| mu1_3(int) = Store : r1_2, r0_8 # 490| v1_4(void) = NoOp : # 486| v1_5(void) = ReturnVoid : # 486| v1_6(void) = UnmodeledUse : mu* @@ -2168,12 +2098,11 @@ ir.cpp: # 492| Block 0 # 492| v0_0(void) = EnterFunction : # 492| mu0_1(unknown) = UnmodeledDefinition : -# 492| r0_2(bool) = InitializeParameter[a] : -# 492| r0_3(glval) = VariableAddress[a] : -# 492| m0_4(bool) = Store : r0_3, r0_2 -# 493| r0_5(glval) = VariableAddress[a] : -# 493| r0_6(bool) = Load : r0_5, m0_4 -# 493| v0_7(void) = ConditionalBranch : r0_6 +# 492| r0_2(glval) = VariableAddress[a] : +# 492| m0_3(bool) = InitializeParameter[a] : r0_2 +# 493| r0_4(glval) = VariableAddress[a] : +# 493| r0_5(bool) = Load : r0_4, m0_3 +# 493| v0_6(void) = ConditionalBranch : r0_5 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2218,205 +2147,195 @@ ir.cpp: # 503| Block 0 # 503| v0_0(void) = EnterFunction : # 503| mu0_1(unknown) = UnmodeledDefinition : -# 503| r0_2(int) = InitializeParameter[x] : -# 503| r0_3(glval) = VariableAddress[x] : -# 503| m0_4(int) = Store : r0_3, r0_2 -# 503| r0_5(float) = InitializeParameter[f] : -# 503| r0_6(glval) = VariableAddress[f] : -# 503| m0_7(float) = Store : r0_6, r0_5 -# 504| r0_8(glval) = VariableAddress[pt1] : -# 504| r0_9(glval) = FieldAddress[x] : r0_8 -# 504| r0_10(glval) = VariableAddress[x] : -# 504| r0_11(int) = Load : r0_10, m0_4 -# 504| m0_12(int) = Store : r0_9, r0_11 -# 504| r0_13(glval) = FieldAddress[y] : r0_8 -# 504| r0_14(glval) = VariableAddress[f] : -# 504| r0_15(float) = Load : r0_14, m0_7 -# 504| r0_16(int) = Convert : r0_15 -# 504| mu0_17(int) = Store : r0_13, r0_16 -# 505| r0_18(glval) = VariableAddress[pt2] : -# 505| r0_19(glval) = FieldAddress[x] : r0_18 -# 505| r0_20(glval) = VariableAddress[x] : -# 505| r0_21(int) = Load : r0_20, m0_4 -# 505| m0_22(int) = Store : r0_19, r0_21 -# 505| r0_23(glval) = FieldAddress[y] : r0_18 -# 505| r0_24(int) = Constant[0] : -# 505| mu0_25(int) = Store : r0_23, r0_24 -# 506| r0_26(glval) = VariableAddress[pt3] : -# 506| r0_27(glval) = FieldAddress[x] : r0_26 -# 506| r0_28(int) = Constant[0] : -# 506| m0_29(int) = Store : r0_27, r0_28 -# 506| r0_30(glval) = FieldAddress[y] : r0_26 -# 506| r0_31(int) = Constant[0] : -# 506| mu0_32(int) = Store : r0_30, r0_31 -# 508| r0_33(glval) = VariableAddress[x1] : -# 508| r0_34(int) = Constant[1] : -# 508| m0_35(int) = Store : r0_33, r0_34 -# 509| r0_36(glval) = VariableAddress[x2] : -# 509| r0_37(int) = Constant[0] : -# 509| m0_38(int) = Store : r0_36, r0_37 -# 510| v0_39(void) = NoOp : -# 503| v0_40(void) = ReturnVoid : -# 503| v0_41(void) = UnmodeledUse : mu* -# 503| v0_42(void) = ExitFunction : +# 503| r0_2(glval) = VariableAddress[x] : +# 503| m0_3(int) = InitializeParameter[x] : r0_2 +# 503| r0_4(glval) = VariableAddress[f] : +# 503| m0_5(float) = InitializeParameter[f] : r0_4 +# 504| r0_6(glval) = VariableAddress[pt1] : +# 504| r0_7(glval) = FieldAddress[x] : r0_6 +# 504| r0_8(glval) = VariableAddress[x] : +# 504| r0_9(int) = Load : r0_8, m0_3 +# 504| m0_10(int) = Store : r0_7, r0_9 +# 504| r0_11(glval) = FieldAddress[y] : r0_6 +# 504| r0_12(glval) = VariableAddress[f] : +# 504| r0_13(float) = Load : r0_12, m0_5 +# 504| r0_14(int) = Convert : r0_13 +# 504| mu0_15(int) = Store : r0_11, r0_14 +# 505| r0_16(glval) = VariableAddress[pt2] : +# 505| r0_17(glval) = FieldAddress[x] : r0_16 +# 505| r0_18(glval) = VariableAddress[x] : +# 505| r0_19(int) = Load : r0_18, m0_3 +# 505| m0_20(int) = Store : r0_17, r0_19 +# 505| r0_21(glval) = FieldAddress[y] : r0_16 +# 505| r0_22(int) = Constant[0] : +# 505| mu0_23(int) = Store : r0_21, r0_22 +# 506| r0_24(glval) = VariableAddress[pt3] : +# 506| r0_25(glval) = FieldAddress[x] : r0_24 +# 506| r0_26(int) = Constant[0] : +# 506| m0_27(int) = Store : r0_25, r0_26 +# 506| r0_28(glval) = FieldAddress[y] : r0_24 +# 506| r0_29(int) = Constant[0] : +# 506| mu0_30(int) = Store : r0_28, r0_29 +# 508| r0_31(glval) = VariableAddress[x1] : +# 508| r0_32(int) = Constant[1] : +# 508| m0_33(int) = Store : r0_31, r0_32 +# 509| r0_34(glval) = VariableAddress[x2] : +# 509| r0_35(int) = Constant[0] : +# 509| m0_36(int) = Store : r0_34, r0_35 +# 510| v0_37(void) = NoOp : +# 503| v0_38(void) = ReturnVoid : +# 503| v0_39(void) = UnmodeledUse : mu* +# 503| v0_40(void) = ExitFunction : # 512| NestedInitList(int, float) -> void # 512| Block 0 # 512| v0_0(void) = EnterFunction : # 512| mu0_1(unknown) = UnmodeledDefinition : -# 512| r0_2(int) = InitializeParameter[x] : -# 512| r0_3(glval) = VariableAddress[x] : -# 512| m0_4(int) = Store : r0_3, r0_2 -# 512| r0_5(float) = InitializeParameter[f] : -# 512| r0_6(glval) = VariableAddress[f] : -# 512| m0_7(float) = Store : r0_6, r0_5 -# 513| r0_8(glval) = VariableAddress[r1] : -# 513| r0_9(glval) = FieldAddress[topLeft] : r0_8 -# 513| r0_10(Point) = Constant[0] : -# 513| m0_11(Point) = Store : r0_9, r0_10 -# 513| r0_12(glval) = FieldAddress[bottomRight] : r0_8 -# 513| r0_13(Point) = Constant[0] : -# 513| mu0_14(Point) = Store : r0_12, r0_13 -# 514| r0_15(glval) = VariableAddress[r2] : -# 514| r0_16(glval) = FieldAddress[topLeft] : r0_15 -# 514| r0_17(glval) = FieldAddress[x] : r0_16 -# 514| r0_18(glval) = VariableAddress[x] : -# 514| r0_19(int) = Load : r0_18, m0_4 -# 514| m0_20(int) = Store : r0_17, r0_19 -# 514| r0_21(glval) = FieldAddress[y] : r0_16 -# 514| r0_22(glval) = VariableAddress[f] : -# 514| r0_23(float) = Load : r0_22, m0_7 -# 514| r0_24(int) = Convert : r0_23 -# 514| mu0_25(int) = Store : r0_21, r0_24 -# 514| r0_26(glval) = FieldAddress[bottomRight] : r0_15 -# 514| r0_27(Point) = Constant[0] : -# 514| mu0_28(Point) = Store : r0_26, r0_27 -# 515| r0_29(glval) = VariableAddress[r3] : -# 515| r0_30(glval) = FieldAddress[topLeft] : r0_29 -# 515| r0_31(glval) = FieldAddress[x] : r0_30 -# 515| r0_32(glval) = VariableAddress[x] : -# 515| r0_33(int) = Load : r0_32, m0_4 -# 515| m0_34(int) = Store : r0_31, r0_33 -# 515| r0_35(glval) = FieldAddress[y] : r0_30 -# 515| r0_36(glval) = VariableAddress[f] : -# 515| r0_37(float) = Load : r0_36, m0_7 -# 515| r0_38(int) = Convert : r0_37 -# 515| mu0_39(int) = Store : r0_35, r0_38 -# 515| r0_40(glval) = FieldAddress[bottomRight] : r0_29 -# 515| r0_41(glval) = FieldAddress[x] : r0_40 -# 515| r0_42(glval) = VariableAddress[x] : -# 515| r0_43(int) = Load : r0_42, m0_4 -# 515| mu0_44(int) = Store : r0_41, r0_43 -# 515| r0_45(glval) = FieldAddress[y] : r0_40 -# 515| r0_46(glval) = VariableAddress[f] : -# 515| r0_47(float) = Load : r0_46, m0_7 -# 515| r0_48(int) = Convert : r0_47 -# 515| mu0_49(int) = Store : r0_45, r0_48 -# 516| r0_50(glval) = VariableAddress[r4] : -# 516| r0_51(glval) = FieldAddress[topLeft] : r0_50 -# 516| r0_52(glval) = FieldAddress[x] : r0_51 -# 516| r0_53(glval) = VariableAddress[x] : -# 516| r0_54(int) = Load : r0_53, m0_4 -# 516| m0_55(int) = Store : r0_52, r0_54 -# 516| r0_56(glval) = FieldAddress[y] : r0_51 -# 516| r0_57(int) = Constant[0] : -# 516| mu0_58(int) = Store : r0_56, r0_57 -# 516| r0_59(glval) = FieldAddress[bottomRight] : r0_50 -# 516| r0_60(glval) = FieldAddress[x] : r0_59 -# 516| r0_61(glval) = VariableAddress[x] : -# 516| r0_62(int) = Load : r0_61, m0_4 -# 516| mu0_63(int) = Store : r0_60, r0_62 -# 516| r0_64(glval) = FieldAddress[y] : r0_59 -# 516| r0_65(int) = Constant[0] : -# 516| mu0_66(int) = Store : r0_64, r0_65 -# 517| v0_67(void) = NoOp : -# 512| v0_68(void) = ReturnVoid : -# 512| v0_69(void) = UnmodeledUse : mu* -# 512| v0_70(void) = ExitFunction : +# 512| r0_2(glval) = VariableAddress[x] : +# 512| m0_3(int) = InitializeParameter[x] : r0_2 +# 512| r0_4(glval) = VariableAddress[f] : +# 512| m0_5(float) = InitializeParameter[f] : r0_4 +# 513| r0_6(glval) = VariableAddress[r1] : +# 513| r0_7(glval) = FieldAddress[topLeft] : r0_6 +# 513| r0_8(Point) = Constant[0] : +# 513| m0_9(Point) = Store : r0_7, r0_8 +# 513| r0_10(glval) = FieldAddress[bottomRight] : r0_6 +# 513| r0_11(Point) = Constant[0] : +# 513| mu0_12(Point) = Store : r0_10, r0_11 +# 514| r0_13(glval) = VariableAddress[r2] : +# 514| r0_14(glval) = FieldAddress[topLeft] : r0_13 +# 514| r0_15(glval) = FieldAddress[x] : r0_14 +# 514| r0_16(glval) = VariableAddress[x] : +# 514| r0_17(int) = Load : r0_16, m0_3 +# 514| m0_18(int) = Store : r0_15, r0_17 +# 514| r0_19(glval) = FieldAddress[y] : r0_14 +# 514| r0_20(glval) = VariableAddress[f] : +# 514| r0_21(float) = Load : r0_20, m0_5 +# 514| r0_22(int) = Convert : r0_21 +# 514| mu0_23(int) = Store : r0_19, r0_22 +# 514| r0_24(glval) = FieldAddress[bottomRight] : r0_13 +# 514| r0_25(Point) = Constant[0] : +# 514| mu0_26(Point) = Store : r0_24, r0_25 +# 515| r0_27(glval) = VariableAddress[r3] : +# 515| r0_28(glval) = FieldAddress[topLeft] : r0_27 +# 515| r0_29(glval) = FieldAddress[x] : r0_28 +# 515| r0_30(glval) = VariableAddress[x] : +# 515| r0_31(int) = Load : r0_30, m0_3 +# 515| m0_32(int) = Store : r0_29, r0_31 +# 515| r0_33(glval) = FieldAddress[y] : r0_28 +# 515| r0_34(glval) = VariableAddress[f] : +# 515| r0_35(float) = Load : r0_34, m0_5 +# 515| r0_36(int) = Convert : r0_35 +# 515| mu0_37(int) = Store : r0_33, r0_36 +# 515| r0_38(glval) = FieldAddress[bottomRight] : r0_27 +# 515| r0_39(glval) = FieldAddress[x] : r0_38 +# 515| r0_40(glval) = VariableAddress[x] : +# 515| r0_41(int) = Load : r0_40, m0_3 +# 515| mu0_42(int) = Store : r0_39, r0_41 +# 515| r0_43(glval) = FieldAddress[y] : r0_38 +# 515| r0_44(glval) = VariableAddress[f] : +# 515| r0_45(float) = Load : r0_44, m0_5 +# 515| r0_46(int) = Convert : r0_45 +# 515| mu0_47(int) = Store : r0_43, r0_46 +# 516| r0_48(glval) = VariableAddress[r4] : +# 516| r0_49(glval) = FieldAddress[topLeft] : r0_48 +# 516| r0_50(glval) = FieldAddress[x] : r0_49 +# 516| r0_51(glval) = VariableAddress[x] : +# 516| r0_52(int) = Load : r0_51, m0_3 +# 516| m0_53(int) = Store : r0_50, r0_52 +# 516| r0_54(glval) = FieldAddress[y] : r0_49 +# 516| r0_55(int) = Constant[0] : +# 516| mu0_56(int) = Store : r0_54, r0_55 +# 516| r0_57(glval) = FieldAddress[bottomRight] : r0_48 +# 516| r0_58(glval) = FieldAddress[x] : r0_57 +# 516| r0_59(glval) = VariableAddress[x] : +# 516| r0_60(int) = Load : r0_59, m0_3 +# 516| mu0_61(int) = Store : r0_58, r0_60 +# 516| r0_62(glval) = FieldAddress[y] : r0_57 +# 516| r0_63(int) = Constant[0] : +# 516| mu0_64(int) = Store : r0_62, r0_63 +# 517| v0_65(void) = NoOp : +# 512| v0_66(void) = ReturnVoid : +# 512| v0_67(void) = UnmodeledUse : mu* +# 512| v0_68(void) = ExitFunction : # 519| ArrayInit(int, float) -> void # 519| Block 0 # 519| v0_0(void) = EnterFunction : # 519| mu0_1(unknown) = UnmodeledDefinition : -# 519| r0_2(int) = InitializeParameter[x] : -# 519| r0_3(glval) = VariableAddress[x] : -# 519| m0_4(int) = Store : r0_3, r0_2 -# 519| r0_5(float) = InitializeParameter[f] : -# 519| r0_6(glval) = VariableAddress[f] : -# 519| m0_7(float) = Store : r0_6, r0_5 -# 520| r0_8(glval) = VariableAddress[a1] : -# 520| r0_9(int) = Constant[0] : -# 520| r0_10(glval) = PointerAdd : r0_8, r0_9 -# 520| r0_11(unknown[12]) = Constant[0] : -# 520| mu0_12(unknown[12]) = Store : r0_10, r0_11 -# 521| r0_13(glval) = VariableAddress[a2] : -# 521| r0_14(int) = Constant[0] : -# 521| r0_15(glval) = PointerAdd : r0_13, r0_14 -# 521| r0_16(glval) = VariableAddress[x] : -# 521| r0_17(int) = Load : r0_16, m0_4 -# 521| mu0_18(int) = Store : r0_15, r0_17 -# 521| r0_19(int) = Constant[1] : -# 521| r0_20(glval) = PointerAdd : r0_13, r0_19 -# 521| r0_21(glval) = VariableAddress[f] : -# 521| r0_22(float) = Load : r0_21, m0_7 -# 521| r0_23(int) = Convert : r0_22 -# 521| mu0_24(int) = Store : r0_20, r0_23 -# 521| r0_25(int) = Constant[2] : -# 521| r0_26(glval) = PointerAdd : r0_13, r0_25 -# 521| r0_27(int) = Constant[0] : -# 521| mu0_28(int) = Store : r0_26, r0_27 -# 522| r0_29(glval) = VariableAddress[a3] : -# 522| r0_30(int) = Constant[0] : -# 522| r0_31(glval) = PointerAdd : r0_29, r0_30 -# 522| r0_32(glval) = VariableAddress[x] : -# 522| r0_33(int) = Load : r0_32, m0_4 -# 522| mu0_34(int) = Store : r0_31, r0_33 -# 522| r0_35(int) = Constant[1] : -# 522| r0_36(glval) = PointerAdd : r0_29, r0_35 -# 522| r0_37(unknown[8]) = Constant[0] : -# 522| mu0_38(unknown[8]) = Store : r0_36, r0_37 -# 523| v0_39(void) = NoOp : -# 519| v0_40(void) = ReturnVoid : -# 519| v0_41(void) = UnmodeledUse : mu* -# 519| v0_42(void) = ExitFunction : +# 519| r0_2(glval) = VariableAddress[x] : +# 519| m0_3(int) = InitializeParameter[x] : r0_2 +# 519| r0_4(glval) = VariableAddress[f] : +# 519| m0_5(float) = InitializeParameter[f] : r0_4 +# 520| r0_6(glval) = VariableAddress[a1] : +# 520| r0_7(int) = Constant[0] : +# 520| r0_8(glval) = PointerAdd : r0_6, r0_7 +# 520| r0_9(unknown[12]) = Constant[0] : +# 520| mu0_10(unknown[12]) = Store : r0_8, r0_9 +# 521| r0_11(glval) = VariableAddress[a2] : +# 521| r0_12(int) = Constant[0] : +# 521| r0_13(glval) = PointerAdd : r0_11, r0_12 +# 521| r0_14(glval) = VariableAddress[x] : +# 521| r0_15(int) = Load : r0_14, m0_3 +# 521| mu0_16(int) = Store : r0_13, r0_15 +# 521| r0_17(int) = Constant[1] : +# 521| r0_18(glval) = PointerAdd : r0_11, r0_17 +# 521| r0_19(glval) = VariableAddress[f] : +# 521| r0_20(float) = Load : r0_19, m0_5 +# 521| r0_21(int) = Convert : r0_20 +# 521| mu0_22(int) = Store : r0_18, r0_21 +# 521| r0_23(int) = Constant[2] : +# 521| r0_24(glval) = PointerAdd : r0_11, r0_23 +# 521| r0_25(int) = Constant[0] : +# 521| mu0_26(int) = Store : r0_24, r0_25 +# 522| r0_27(glval) = VariableAddress[a3] : +# 522| r0_28(int) = Constant[0] : +# 522| r0_29(glval) = PointerAdd : r0_27, r0_28 +# 522| r0_30(glval) = VariableAddress[x] : +# 522| r0_31(int) = Load : r0_30, m0_3 +# 522| mu0_32(int) = Store : r0_29, r0_31 +# 522| r0_33(int) = Constant[1] : +# 522| r0_34(glval) = PointerAdd : r0_27, r0_33 +# 522| r0_35(unknown[8]) = Constant[0] : +# 522| mu0_36(unknown[8]) = Store : r0_34, r0_35 +# 523| v0_37(void) = NoOp : +# 519| v0_38(void) = ReturnVoid : +# 519| v0_39(void) = UnmodeledUse : mu* +# 519| v0_40(void) = ExitFunction : # 530| UnionInit(int, float) -> void # 530| Block 0 # 530| v0_0(void) = EnterFunction : # 530| mu0_1(unknown) = UnmodeledDefinition : -# 530| r0_2(int) = InitializeParameter[x] : -# 530| r0_3(glval) = VariableAddress[x] : -# 530| m0_4(int) = Store : r0_3, r0_2 -# 530| r0_5(float) = InitializeParameter[f] : -# 530| r0_6(glval) = VariableAddress[f] : -# 530| m0_7(float) = Store : r0_6, r0_5 -# 531| r0_8(glval) = VariableAddress[u1] : -# 531| r0_9(glval) = FieldAddress[d] : r0_8 -# 531| r0_10(glval) = VariableAddress[f] : -# 531| r0_11(float) = Load : r0_10, m0_7 -# 531| r0_12(double) = Convert : r0_11 -# 531| m0_13(double) = Store : r0_9, r0_12 -# 533| v0_14(void) = NoOp : -# 530| v0_15(void) = ReturnVoid : -# 530| v0_16(void) = UnmodeledUse : mu* -# 530| v0_17(void) = ExitFunction : +# 530| r0_2(glval) = VariableAddress[x] : +# 530| m0_3(int) = InitializeParameter[x] : r0_2 +# 530| r0_4(glval) = VariableAddress[f] : +# 530| m0_5(float) = InitializeParameter[f] : r0_4 +# 531| r0_6(glval) = VariableAddress[u1] : +# 531| r0_7(glval) = FieldAddress[d] : r0_6 +# 531| r0_8(glval) = VariableAddress[f] : +# 531| r0_9(float) = Load : r0_8, m0_5 +# 531| r0_10(double) = Convert : r0_9 +# 531| m0_11(double) = Store : r0_7, r0_10 +# 533| v0_12(void) = NoOp : +# 530| v0_13(void) = ReturnVoid : +# 530| v0_14(void) = UnmodeledUse : mu* +# 530| v0_15(void) = ExitFunction : # 535| EarlyReturn(int, int) -> void # 535| Block 0 -# 535| v0_0(void) = EnterFunction : -# 535| mu0_1(unknown) = UnmodeledDefinition : -# 535| r0_2(int) = InitializeParameter[x] : -# 535| r0_3(glval) = VariableAddress[x] : -# 535| m0_4(int) = Store : r0_3, r0_2 -# 535| r0_5(int) = InitializeParameter[y] : -# 535| r0_6(glval) = VariableAddress[y] : -# 535| m0_7(int) = Store : r0_6, r0_5 -# 536| r0_8(glval) = VariableAddress[x] : -# 536| r0_9(int) = Load : r0_8, m0_4 -# 536| r0_10(glval) = VariableAddress[y] : -# 536| r0_11(int) = Load : r0_10, m0_7 -# 536| r0_12(bool) = CompareLT : r0_9, r0_11 -# 536| v0_13(void) = ConditionalBranch : r0_12 +# 535| v0_0(void) = EnterFunction : +# 535| mu0_1(unknown) = UnmodeledDefinition : +# 535| r0_2(glval) = VariableAddress[x] : +# 535| m0_3(int) = InitializeParameter[x] : r0_2 +# 535| r0_4(glval) = VariableAddress[y] : +# 535| m0_5(int) = InitializeParameter[y] : r0_4 +# 536| r0_6(glval) = VariableAddress[x] : +# 536| r0_7(int) = Load : r0_6, m0_3 +# 536| r0_8(glval) = VariableAddress[y] : +# 536| r0_9(int) = Load : r0_8, m0_5 +# 536| r0_10(bool) = CompareLT : r0_7, r0_9 +# 536| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2431,7 +2350,7 @@ ir.cpp: # 540| Block 3 # 540| r3_0(glval) = VariableAddress[x] : -# 540| r3_1(int) = Load : r3_0, m0_4 +# 540| r3_1(int) = Load : r3_0, m0_3 # 540| r3_2(glval) = VariableAddress[y] : # 540| m3_3(int) = Store : r3_2, r3_1 # 541| v3_4(void) = NoOp : @@ -2439,20 +2358,18 @@ ir.cpp: # 543| EarlyReturnValue(int, int) -> int # 543| Block 0 -# 543| v0_0(void) = EnterFunction : -# 543| mu0_1(unknown) = UnmodeledDefinition : -# 543| r0_2(int) = InitializeParameter[x] : -# 543| r0_3(glval) = VariableAddress[x] : -# 543| m0_4(int) = Store : r0_3, r0_2 -# 543| r0_5(int) = InitializeParameter[y] : -# 543| r0_6(glval) = VariableAddress[y] : -# 543| m0_7(int) = Store : r0_6, r0_5 -# 544| r0_8(glval) = VariableAddress[x] : -# 544| r0_9(int) = Load : r0_8, m0_4 -# 544| r0_10(glval) = VariableAddress[y] : -# 544| r0_11(int) = Load : r0_10, m0_7 -# 544| r0_12(bool) = CompareLT : r0_9, r0_11 -# 544| v0_13(void) = ConditionalBranch : r0_12 +# 543| v0_0(void) = EnterFunction : +# 543| mu0_1(unknown) = UnmodeledDefinition : +# 543| r0_2(glval) = VariableAddress[x] : +# 543| m0_3(int) = InitializeParameter[x] : r0_2 +# 543| r0_4(glval) = VariableAddress[y] : +# 543| m0_5(int) = InitializeParameter[y] : r0_4 +# 544| r0_6(glval) = VariableAddress[x] : +# 544| r0_7(int) = Load : r0_6, m0_3 +# 544| r0_8(glval) = VariableAddress[y] : +# 544| r0_9(int) = Load : r0_8, m0_5 +# 544| r0_10(bool) = CompareLT : r0_7, r0_9 +# 544| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2466,16 +2383,16 @@ ir.cpp: # 545| Block 2 # 545| r2_0(glval) = VariableAddress[#return] : # 545| r2_1(glval) = VariableAddress[x] : -# 545| r2_2(int) = Load : r2_1, m0_4 +# 545| r2_2(int) = Load : r2_1, m0_3 # 545| m2_3(int) = Store : r2_0, r2_2 #-----| Goto -> Block 1 # 548| Block 3 # 548| r3_0(glval) = VariableAddress[#return] : # 548| r3_1(glval) = VariableAddress[x] : -# 548| r3_2(int) = Load : r3_1, m0_4 +# 548| r3_2(int) = Load : r3_1, m0_3 # 548| r3_3(glval) = VariableAddress[y] : -# 548| r3_4(int) = Load : r3_3, m0_7 +# 548| r3_4(int) = Load : r3_3, m0_5 # 548| r3_5(int) = Add : r3_2, r3_4 # 548| m3_6(int) = Store : r3_0, r3_5 #-----| Goto -> Block 1 @@ -2484,31 +2401,29 @@ ir.cpp: # 551| Block 0 # 551| v0_0(void) = EnterFunction : # 551| mu0_1(unknown) = UnmodeledDefinition : -# 551| r0_2(..(*)(..)) = InitializeParameter[pfn] : -# 551| r0_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 551| m0_4(..(*)(..)) = Store : r0_3, r0_2 -# 552| r0_5(glval) = VariableAddress[#return] : -# 552| r0_6(glval<..(*)(..)>) = VariableAddress[pfn] : -# 552| r0_7(..(*)(..)) = Load : r0_6, m0_4 -# 552| r0_8(int) = Constant[5] : -# 552| r0_9(int) = Invoke : r0_7, r0_8 -# 552| m0_10(int) = Store : r0_5, r0_9 -# 551| r0_11(glval) = VariableAddress[#return] : -# 551| v0_12(void) = ReturnValue : r0_11, m0_10 -# 551| v0_13(void) = UnmodeledUse : mu* -# 551| v0_14(void) = ExitFunction : +# 551| r0_2(glval<..(*)(..)>) = VariableAddress[pfn] : +# 551| m0_3(..(*)(..)) = InitializeParameter[pfn] : r0_2 +# 552| r0_4(glval) = VariableAddress[#return] : +# 552| r0_5(glval<..(*)(..)>) = VariableAddress[pfn] : +# 552| r0_6(..(*)(..)) = Load : r0_5, m0_3 +# 552| r0_7(int) = Constant[5] : +# 552| r0_8(int) = Invoke : r0_6, r0_7 +# 552| m0_9(int) = Store : r0_4, r0_8 +# 551| r0_10(glval) = VariableAddress[#return] : +# 551| v0_11(void) = ReturnValue : r0_10, m0_9 +# 551| v0_12(void) = UnmodeledUse : mu* +# 551| v0_13(void) = ExitFunction : # 560| EnumSwitch(E) -> int # 560| Block 0 # 560| v0_0(void) = EnterFunction : # 560| mu0_1(unknown) = UnmodeledDefinition : -# 560| r0_2(E) = InitializeParameter[e] : -# 560| r0_3(glval) = VariableAddress[e] : -# 560| m0_4(E) = Store : r0_3, r0_2 -# 561| r0_5(glval) = VariableAddress[e] : -# 561| r0_6(E) = Load : r0_5, m0_4 -# 561| r0_7(int) = Convert : r0_6 -# 561| v0_8(void) = Switch : r0_7 +# 560| r0_2(glval) = VariableAddress[e] : +# 560| m0_3(E) = InitializeParameter[e] : r0_2 +# 561| r0_4(glval) = VariableAddress[e] : +# 561| r0_5(E) = Load : r0_4, m0_3 +# 561| r0_6(int) = Convert : r0_5 +# 561| v0_7(void) = Switch : r0_6 #-----| Case[0] -> Block 4 #-----| Case[1] -> Block 2 #-----| Default -> Block 3 @@ -2562,44 +2477,43 @@ ir.cpp: # 574| r0_16(char[5]) = Load : r0_15, mu0_1 # 574| m0_17(char[5]) = Store : r0_14, r0_16 # 575| r0_18(glval) = VariableAddress[b] : -# 575| r0_19(char[2]) = Uninitialized : -# 575| m0_20(char[2]) = Store : r0_18, r0_19 -# 576| r0_21(glval) = VariableAddress[c] : -# 576| r0_22(int) = Constant[0] : -# 576| r0_23(glval) = PointerAdd : r0_21, r0_22 -# 576| r0_24(unknown[2]) = Constant[0] : -# 576| mu0_25(unknown[2]) = Store : r0_23, r0_24 -# 577| r0_26(glval) = VariableAddress[d] : -# 577| r0_27(int) = Constant[0] : -# 577| r0_28(glval) = PointerAdd : r0_26, r0_27 -# 577| r0_29(char) = Constant[0] : -# 577| mu0_30(char) = Store : r0_28, r0_29 -# 577| r0_31(int) = Constant[1] : -# 577| r0_32(glval) = PointerAdd : r0_26, r0_31 -# 577| r0_33(char) = Constant[0] : -# 577| mu0_34(char) = Store : r0_32, r0_33 -# 578| r0_35(glval) = VariableAddress[e] : -# 578| r0_36(int) = Constant[0] : -# 578| r0_37(glval) = PointerAdd : r0_35, r0_36 -# 578| r0_38(char) = Constant[0] : -# 578| mu0_39(char) = Store : r0_37, r0_38 -# 578| r0_40(int) = Constant[1] : -# 578| r0_41(glval) = PointerAdd : r0_35, r0_40 -# 578| r0_42(char) = Constant[1] : -# 578| mu0_43(char) = Store : r0_41, r0_42 -# 579| r0_44(glval) = VariableAddress[f] : -# 579| r0_45(int) = Constant[0] : -# 579| r0_46(glval) = PointerAdd : r0_44, r0_45 -# 579| r0_47(char) = Constant[0] : -# 579| mu0_48(char) = Store : r0_46, r0_47 -# 579| r0_49(int) = Constant[1] : -# 579| r0_50(glval) = PointerAdd : r0_44, r0_49 -# 579| r0_51(unknown[2]) = Constant[0] : -# 579| mu0_52(unknown[2]) = Store : r0_50, r0_51 -# 580| v0_53(void) = NoOp : -# 571| v0_54(void) = ReturnVoid : -# 571| v0_55(void) = UnmodeledUse : mu* -# 571| v0_56(void) = ExitFunction : +# 575| m0_19(char[2]) = Uninitialized : r0_18 +# 576| r0_20(glval) = VariableAddress[c] : +# 576| r0_21(int) = Constant[0] : +# 576| r0_22(glval) = PointerAdd : r0_20, r0_21 +# 576| r0_23(unknown[2]) = Constant[0] : +# 576| mu0_24(unknown[2]) = Store : r0_22, r0_23 +# 577| r0_25(glval) = VariableAddress[d] : +# 577| r0_26(int) = Constant[0] : +# 577| r0_27(glval) = PointerAdd : r0_25, r0_26 +# 577| r0_28(char) = Constant[0] : +# 577| mu0_29(char) = Store : r0_27, r0_28 +# 577| r0_30(int) = Constant[1] : +# 577| r0_31(glval) = PointerAdd : r0_25, r0_30 +# 577| r0_32(char) = Constant[0] : +# 577| mu0_33(char) = Store : r0_31, r0_32 +# 578| r0_34(glval) = VariableAddress[e] : +# 578| r0_35(int) = Constant[0] : +# 578| r0_36(glval) = PointerAdd : r0_34, r0_35 +# 578| r0_37(char) = Constant[0] : +# 578| mu0_38(char) = Store : r0_36, r0_37 +# 578| r0_39(int) = Constant[1] : +# 578| r0_40(glval) = PointerAdd : r0_34, r0_39 +# 578| r0_41(char) = Constant[1] : +# 578| mu0_42(char) = Store : r0_40, r0_41 +# 579| r0_43(glval) = VariableAddress[f] : +# 579| r0_44(int) = Constant[0] : +# 579| r0_45(glval) = PointerAdd : r0_43, r0_44 +# 579| r0_46(char) = Constant[0] : +# 579| mu0_47(char) = Store : r0_45, r0_46 +# 579| r0_48(int) = Constant[1] : +# 579| r0_49(glval) = PointerAdd : r0_43, r0_48 +# 579| r0_50(unknown[2]) = Constant[0] : +# 579| mu0_51(unknown[2]) = Store : r0_49, r0_50 +# 580| v0_52(void) = NoOp : +# 571| v0_53(void) = ReturnVoid : +# 571| v0_54(void) = UnmodeledUse : mu* +# 571| v0_55(void) = ExitFunction : # 584| VarArgs() -> void # 584| Block 0 @@ -2668,83 +2582,77 @@ ir.cpp: # 622| Block 0 # 622| v0_0(void) = EnterFunction : # 622| mu0_1(unknown) = UnmodeledDefinition : -# 622| r0_2(String &) = InitializeParameter[r] : -# 622| r0_3(glval) = VariableAddress[r] : -# 622| m0_4(String &) = Store : r0_3, r0_2 -# 622| r0_5(String *) = InitializeParameter[p] : -# 622| r0_6(glval) = VariableAddress[p] : -# 622| m0_7(String *) = Store : r0_6, r0_5 -# 622| r0_8(String) = InitializeParameter[s] : -# 622| r0_9(glval) = VariableAddress[s] : -# 622| mu0_10(String) = Store : r0_9, r0_8 -# 623| r0_11(glval) = VariableAddress[r] : -# 623| r0_12(String &) = Load : r0_11, m0_4 -# 623| r0_13(glval) = Convert : r0_12 -# 623| r0_14(bool) = FunctionAddress[c_str] : -# 623| r0_15(char *) = Invoke : r0_14, this:r0_13 -# 624| r0_16(glval) = VariableAddress[p] : -# 624| r0_17(String *) = Load : r0_16, m0_7 -# 624| r0_18(String *) = Convert : r0_17 -# 624| r0_19(bool) = FunctionAddress[c_str] : -# 624| r0_20(char *) = Invoke : r0_19, this:r0_18 -# 625| r0_21(glval) = VariableAddress[s] : -# 625| r0_22(glval) = Convert : r0_21 -# 625| r0_23(bool) = FunctionAddress[c_str] : -# 625| r0_24(char *) = Invoke : r0_23, this:r0_22 -# 626| v0_25(void) = NoOp : -# 622| v0_26(void) = ReturnVoid : -# 622| v0_27(void) = UnmodeledUse : mu* -# 622| v0_28(void) = ExitFunction : +# 622| r0_2(glval) = VariableAddress[r] : +# 622| m0_3(String &) = InitializeParameter[r] : r0_2 +# 622| r0_4(glval) = VariableAddress[p] : +# 622| m0_5(String *) = InitializeParameter[p] : r0_4 +# 622| r0_6(glval) = VariableAddress[s] : +# 622| mu0_7(String) = InitializeParameter[s] : r0_6 +# 623| r0_8(glval) = VariableAddress[r] : +# 623| r0_9(String &) = Load : r0_8, m0_3 +# 623| r0_10(glval) = Convert : r0_9 +# 623| r0_11(bool) = FunctionAddress[c_str] : +# 623| r0_12(char *) = Invoke : r0_11, this:r0_10 +# 624| r0_13(glval) = VariableAddress[p] : +# 624| r0_14(String *) = Load : r0_13, m0_5 +# 624| r0_15(String *) = Convert : r0_14 +# 624| r0_16(bool) = FunctionAddress[c_str] : +# 624| r0_17(char *) = Invoke : r0_16, this:r0_15 +# 625| r0_18(glval) = VariableAddress[s] : +# 625| r0_19(glval) = Convert : r0_18 +# 625| r0_20(bool) = FunctionAddress[c_str] : +# 625| r0_21(char *) = Invoke : r0_20, this:r0_19 +# 626| v0_22(void) = NoOp : +# 622| v0_23(void) = ReturnVoid : +# 622| v0_24(void) = UnmodeledUse : mu* +# 622| v0_25(void) = ExitFunction : # 630| C::StaticMemberFunction(int) -> int # 630| Block 0 # 630| v0_0(void) = EnterFunction : # 630| mu0_1(unknown) = UnmodeledDefinition : -# 630| r0_2(int) = InitializeParameter[x] : -# 630| r0_3(glval) = VariableAddress[x] : -# 630| m0_4(int) = Store : r0_3, r0_2 -# 631| r0_5(glval) = VariableAddress[#return] : -# 631| r0_6(glval) = VariableAddress[x] : -# 631| r0_7(int) = Load : r0_6, m0_4 -# 631| m0_8(int) = Store : r0_5, r0_7 -# 630| r0_9(glval) = VariableAddress[#return] : -# 630| v0_10(void) = ReturnValue : r0_9, m0_8 -# 630| v0_11(void) = UnmodeledUse : mu* -# 630| v0_12(void) = ExitFunction : +# 630| r0_2(glval) = VariableAddress[x] : +# 630| m0_3(int) = InitializeParameter[x] : r0_2 +# 631| r0_4(glval) = VariableAddress[#return] : +# 631| r0_5(glval) = VariableAddress[x] : +# 631| r0_6(int) = Load : r0_5, m0_3 +# 631| m0_7(int) = Store : r0_4, r0_6 +# 630| r0_8(glval) = VariableAddress[#return] : +# 630| v0_9(void) = ReturnValue : r0_8, m0_7 +# 630| v0_10(void) = UnmodeledUse : mu* +# 630| v0_11(void) = ExitFunction : # 634| C::InstanceMemberFunction(int) -> int # 634| Block 0 -# 634| v0_0(void) = EnterFunction : -# 634| mu0_1(unknown) = UnmodeledDefinition : -# 634| r0_2(glval) = InitializeThis : -# 634| r0_3(int) = InitializeParameter[x] : -# 634| r0_4(glval) = VariableAddress[x] : -# 634| m0_5(int) = Store : r0_4, r0_3 -# 635| r0_6(glval) = VariableAddress[#return] : -# 635| r0_7(glval) = VariableAddress[x] : -# 635| r0_8(int) = Load : r0_7, m0_5 -# 635| m0_9(int) = Store : r0_6, r0_8 -# 634| r0_10(glval) = VariableAddress[#return] : -# 634| v0_11(void) = ReturnValue : r0_10, m0_9 -# 634| v0_12(void) = UnmodeledUse : mu* -# 634| v0_13(void) = ExitFunction : +# 634| v0_0(void) = EnterFunction : +# 634| mu0_1(unknown) = UnmodeledDefinition : +# 634| r0_2(glval) = InitializeThis : +# 634| r0_3(glval) = VariableAddress[x] : +# 634| m0_4(int) = InitializeParameter[x] : r0_3 +# 635| r0_5(glval) = VariableAddress[#return] : +# 635| r0_6(glval) = VariableAddress[x] : +# 635| r0_7(int) = Load : r0_6, m0_4 +# 635| m0_8(int) = Store : r0_5, r0_7 +# 634| r0_9(glval) = VariableAddress[#return] : +# 634| v0_10(void) = ReturnValue : r0_9, m0_8 +# 634| v0_11(void) = UnmodeledUse : mu* +# 634| v0_12(void) = ExitFunction : # 638| C::VirtualMemberFunction(int) -> int # 638| Block 0 -# 638| v0_0(void) = EnterFunction : -# 638| mu0_1(unknown) = UnmodeledDefinition : -# 638| r0_2(glval) = InitializeThis : -# 638| r0_3(int) = InitializeParameter[x] : -# 638| r0_4(glval) = VariableAddress[x] : -# 638| m0_5(int) = Store : r0_4, r0_3 -# 639| r0_6(glval) = VariableAddress[#return] : -# 639| r0_7(glval) = VariableAddress[x] : -# 639| r0_8(int) = Load : r0_7, m0_5 -# 639| m0_9(int) = Store : r0_6, r0_8 -# 638| r0_10(glval) = VariableAddress[#return] : -# 638| v0_11(void) = ReturnValue : r0_10, m0_9 -# 638| v0_12(void) = UnmodeledUse : mu* -# 638| v0_13(void) = ExitFunction : +# 638| v0_0(void) = EnterFunction : +# 638| mu0_1(unknown) = UnmodeledDefinition : +# 638| r0_2(glval) = InitializeThis : +# 638| r0_3(glval) = VariableAddress[x] : +# 638| m0_4(int) = InitializeParameter[x] : r0_3 +# 639| r0_5(glval) = VariableAddress[#return] : +# 639| r0_6(glval) = VariableAddress[x] : +# 639| r0_7(int) = Load : r0_6, m0_4 +# 639| m0_8(int) = Store : r0_5, r0_7 +# 638| r0_9(glval) = VariableAddress[#return] : +# 638| v0_10(void) = ReturnValue : r0_9, m0_8 +# 638| v0_11(void) = UnmodeledUse : mu* +# 638| v0_12(void) = ExitFunction : # 642| C::FieldAccess() -> void # 642| Block 0 @@ -2764,27 +2672,26 @@ ir.cpp: # 645| r0_13(glval) = FieldAddress[m_a] : r0_12 # 645| mu0_14(int) = Store : r0_13, r0_11 # 646| r0_15(glval) = VariableAddress[x] : -# 646| r0_16(int) = Uninitialized : -# 646| m0_17(int) = Store : r0_15, r0_16 -# 647| r0_18(C *) = CopyValue : r0_2 -# 647| r0_19(glval) = FieldAddress[m_a] : r0_18 -# 647| r0_20(int) = Load : r0_19, mu0_1 -# 647| r0_21(glval) = VariableAddress[x] : -# 647| m0_22(int) = Store : r0_21, r0_20 -# 648| r0_23(C *) = CopyValue : r0_2 -# 648| r0_24(glval) = FieldAddress[m_a] : r0_23 -# 648| r0_25(int) = Load : r0_24, mu0_1 -# 648| r0_26(glval) = VariableAddress[x] : -# 648| m0_27(int) = Store : r0_26, r0_25 -#-----| r0_28(C *) = CopyValue : r0_2 -# 649| r0_29(glval) = FieldAddress[m_a] : r0_28 -# 649| r0_30(int) = Load : r0_29, mu0_1 -# 649| r0_31(glval) = VariableAddress[x] : -# 649| m0_32(int) = Store : r0_31, r0_30 -# 650| v0_33(void) = NoOp : -# 642| v0_34(void) = ReturnVoid : -# 642| v0_35(void) = UnmodeledUse : mu* -# 642| v0_36(void) = ExitFunction : +# 646| m0_16(int) = Uninitialized : r0_15 +# 647| r0_17(C *) = CopyValue : r0_2 +# 647| r0_18(glval) = FieldAddress[m_a] : r0_17 +# 647| r0_19(int) = Load : r0_18, mu0_1 +# 647| r0_20(glval) = VariableAddress[x] : +# 647| m0_21(int) = Store : r0_20, r0_19 +# 648| r0_22(C *) = CopyValue : r0_2 +# 648| r0_23(glval) = FieldAddress[m_a] : r0_22 +# 648| r0_24(int) = Load : r0_23, mu0_1 +# 648| r0_25(glval) = VariableAddress[x] : +# 648| m0_26(int) = Store : r0_25, r0_24 +#-----| r0_27(C *) = CopyValue : r0_2 +# 649| r0_28(glval) = FieldAddress[m_a] : r0_27 +# 649| r0_29(int) = Load : r0_28, mu0_1 +# 649| r0_30(glval) = VariableAddress[x] : +# 649| m0_31(int) = Store : r0_30, r0_29 +# 650| v0_32(void) = NoOp : +# 642| v0_33(void) = ReturnVoid : +# 642| v0_34(void) = UnmodeledUse : mu* +# 642| v0_35(void) = ExitFunction : # 652| C::MethodCalls() -> void # 652| Block 0 @@ -2839,18 +2746,17 @@ ir.cpp: # 675| Block 0 # 675| v0_0(void) = EnterFunction : # 675| mu0_1(unknown) = UnmodeledDefinition : -# 675| r0_2(int &) = InitializeParameter[r] : -# 675| r0_3(glval) = VariableAddress[r] : -# 675| m0_4(int &) = Store : r0_3, r0_2 -# 676| r0_5(glval) = VariableAddress[#return] : -# 676| r0_6(glval) = VariableAddress[r] : -# 676| r0_7(int &) = Load : r0_6, m0_4 -# 676| r0_8(int) = Load : r0_7, mu0_1 -# 676| m0_9(int) = Store : r0_5, r0_8 -# 675| r0_10(glval) = VariableAddress[#return] : -# 675| v0_11(void) = ReturnValue : r0_10, m0_9 -# 675| v0_12(void) = UnmodeledUse : mu* -# 675| v0_13(void) = ExitFunction : +# 675| r0_2(glval) = VariableAddress[r] : +# 675| m0_3(int &) = InitializeParameter[r] : r0_2 +# 676| r0_4(glval) = VariableAddress[#return] : +# 676| r0_5(glval) = VariableAddress[r] : +# 676| r0_6(int &) = Load : r0_5, m0_3 +# 676| r0_7(int) = Load : r0_6, mu0_1 +# 676| m0_8(int) = Store : r0_4, r0_7 +# 675| r0_9(glval) = VariableAddress[#return] : +# 675| v0_10(void) = ReturnValue : r0_9, m0_8 +# 675| v0_11(void) = UnmodeledUse : mu* +# 675| v0_12(void) = ExitFunction : # 679| TakeReference() -> int & # 679| Block 0 @@ -2868,48 +2774,46 @@ ir.cpp: # 685| Block 0 # 685| v0_0(void) = EnterFunction : # 685| mu0_1(unknown) = UnmodeledDefinition : -# 685| r0_2(int) = InitializeParameter[x] : -# 685| r0_3(glval) = VariableAddress[x] : -# 685| m0_4(int) = Store : r0_3, r0_2 -# 686| r0_5(glval) = VariableAddress[r] : -# 686| r0_6(glval) = VariableAddress[x] : -# 686| m0_7(int &) = Store : r0_5, r0_6 -# 687| r0_8(glval) = VariableAddress[r2] : -# 687| r0_9(glval) = VariableAddress[r] : -# 687| r0_10(int &) = Load : r0_9, m0_7 -# 687| m0_11(int &) = Store : r0_8, r0_10 -# 688| r0_12(glval) = VariableAddress[r3] : -# 688| r0_13(bool) = FunctionAddress[ReturnReference] : -# 688| r0_14(String &) = Invoke : r0_13 -# 688| r0_15(glval) = Convert : r0_14 -# 688| m0_16(String &) = Store : r0_12, r0_15 -# 689| v0_17(void) = NoOp : -# 685| v0_18(void) = ReturnVoid : -# 685| v0_19(void) = UnmodeledUse : mu* -# 685| v0_20(void) = ExitFunction : +# 685| r0_2(glval) = VariableAddress[x] : +# 685| m0_3(int) = InitializeParameter[x] : r0_2 +# 686| r0_4(glval) = VariableAddress[r] : +# 686| r0_5(glval) = VariableAddress[x] : +# 686| m0_6(int &) = Store : r0_4, r0_5 +# 687| r0_7(glval) = VariableAddress[r2] : +# 687| r0_8(glval) = VariableAddress[r] : +# 687| r0_9(int &) = Load : r0_8, m0_6 +# 687| m0_10(int &) = Store : r0_7, r0_9 +# 688| r0_11(glval) = VariableAddress[r3] : +# 688| r0_12(bool) = FunctionAddress[ReturnReference] : +# 688| r0_13(String &) = Invoke : r0_12 +# 688| r0_14(glval) = Convert : r0_13 +# 688| m0_15(String &) = Store : r0_11, r0_14 +# 689| v0_16(void) = NoOp : +# 685| v0_17(void) = ReturnVoid : +# 685| v0_18(void) = UnmodeledUse : mu* +# 685| v0_19(void) = ExitFunction : # 691| ArrayReferences() -> void # 691| Block 0 # 691| v0_0(void) = EnterFunction : # 691| mu0_1(unknown) = UnmodeledDefinition : # 692| r0_2(glval) = VariableAddress[a] : -# 692| r0_3(int[10]) = Uninitialized : -# 692| m0_4(int[10]) = Store : r0_2, r0_3 -# 693| r0_5(glval) = VariableAddress[ra] : -# 693| r0_6(glval) = VariableAddress[a] : -# 693| m0_7(int(&)[10]) = Store : r0_5, r0_6 -# 694| r0_8(glval) = VariableAddress[x] : -# 694| r0_9(glval) = VariableAddress[ra] : -# 694| r0_10(int(&)[10]) = Load : r0_9, m0_7 -# 694| r0_11(int *) = Convert : r0_10 -# 694| r0_12(int) = Constant[5] : -# 694| r0_13(int *) = PointerAdd[4] : r0_11, r0_12 -# 694| r0_14(int) = Load : r0_13, mu0_1 -# 694| m0_15(int) = Store : r0_8, r0_14 -# 695| v0_16(void) = NoOp : -# 691| v0_17(void) = ReturnVoid : -# 691| v0_18(void) = UnmodeledUse : mu* -# 691| v0_19(void) = ExitFunction : +# 692| m0_3(int[10]) = Uninitialized : r0_2 +# 693| r0_4(glval) = VariableAddress[ra] : +# 693| r0_5(glval) = VariableAddress[a] : +# 693| m0_6(int(&)[10]) = Store : r0_4, r0_5 +# 694| r0_7(glval) = VariableAddress[x] : +# 694| r0_8(glval) = VariableAddress[ra] : +# 694| r0_9(int(&)[10]) = Load : r0_8, m0_6 +# 694| r0_10(int *) = Convert : r0_9 +# 694| r0_11(int) = Constant[5] : +# 694| r0_12(int *) = PointerAdd[4] : r0_10, r0_11 +# 694| r0_13(int) = Load : r0_12, mu0_1 +# 694| m0_14(int) = Store : r0_7, r0_13 +# 695| v0_15(void) = NoOp : +# 691| v0_16(void) = ReturnVoid : +# 691| v0_17(void) = UnmodeledUse : mu* +# 691| v0_18(void) = ExitFunction : # 697| FunctionReferences() -> void # 697| Block 0 @@ -2933,34 +2837,32 @@ ir.cpp: # 704| min(int, int) -> int # 704| Block 0 -# 704| v0_0(void) = EnterFunction : -# 704| mu0_1(unknown) = UnmodeledDefinition : -# 704| r0_2(int) = InitializeParameter[x] : -# 704| r0_3(glval) = VariableAddress[x] : -# 704| m0_4(int) = Store : r0_3, r0_2 -# 704| r0_5(int) = InitializeParameter[y] : -# 704| r0_6(glval) = VariableAddress[y] : -# 704| m0_7(int) = Store : r0_6, r0_5 -# 705| r0_8(glval) = VariableAddress[#return] : -# 705| r0_9(glval) = VariableAddress[x] : -# 705| r0_10(int) = Load : r0_9, m0_4 -# 705| r0_11(glval) = VariableAddress[y] : -# 705| r0_12(int) = Load : r0_11, m0_7 -# 705| r0_13(bool) = CompareLT : r0_10, r0_12 -# 705| v0_14(void) = ConditionalBranch : r0_13 +# 704| v0_0(void) = EnterFunction : +# 704| mu0_1(unknown) = UnmodeledDefinition : +# 704| r0_2(glval) = VariableAddress[x] : +# 704| m0_3(int) = InitializeParameter[x] : r0_2 +# 704| r0_4(glval) = VariableAddress[y] : +# 704| m0_5(int) = InitializeParameter[y] : r0_4 +# 705| r0_6(glval) = VariableAddress[#return] : +# 705| r0_7(glval) = VariableAddress[x] : +# 705| r0_8(int) = Load : r0_7, m0_3 +# 705| r0_9(glval) = VariableAddress[y] : +# 705| r0_10(int) = Load : r0_9, m0_5 +# 705| r0_11(bool) = CompareLT : r0_8, r0_10 +# 705| v0_12(void) = ConditionalBranch : r0_11 #-----| False -> Block 2 #-----| True -> Block 1 # 705| Block 1 # 705| r1_0(glval) = VariableAddress[x] : -# 705| r1_1(int) = Load : r1_0, m0_4 +# 705| r1_1(int) = Load : r1_0, m0_3 # 705| r1_2(glval) = VariableAddress[#temp705:10] : # 705| m1_3(int) = Store : r1_2, r1_1 #-----| Goto -> Block 3 # 705| Block 2 # 705| r2_0(glval) = VariableAddress[y] : -# 705| r2_1(int) = Load : r2_0, m0_7 +# 705| r2_1(int) = Load : r2_0, m0_5 # 705| r2_2(glval) = VariableAddress[#temp705:10] : # 705| m2_3(int) = Store : r2_2, r2_1 #-----| Goto -> Block 3 @@ -2969,7 +2871,7 @@ ir.cpp: # 705| m3_0(int) = Phi : from 1:m1_3, from 2:m2_3 # 705| r3_1(glval) = VariableAddress[#temp705:10] : # 705| r3_2(int) = Load : r3_1, m3_0 -# 705| m3_3(int) = Store : r0_8, r3_2 +# 705| m3_3(int) = Store : r0_6, r3_2 # 704| r3_4(glval) = VariableAddress[#return] : # 704| v3_5(void) = ReturnValue : r3_4, m3_3 # 704| v3_6(void) = UnmodeledUse : mu* @@ -2979,42 +2881,38 @@ ir.cpp: # 708| Block 0 # 708| v0_0(void) = EnterFunction : # 708| mu0_1(unknown) = UnmodeledDefinition : -# 708| r0_2(int) = InitializeParameter[x] : -# 708| r0_3(glval) = VariableAddress[x] : -# 708| m0_4(int) = Store : r0_3, r0_2 -# 708| r0_5(int) = InitializeParameter[y] : -# 708| r0_6(glval) = VariableAddress[y] : -# 708| m0_7(int) = Store : r0_6, r0_5 -# 709| r0_8(glval) = VariableAddress[#return] : -# 709| r0_9(bool) = FunctionAddress[min] : -# 709| r0_10(glval) = VariableAddress[x] : -# 709| r0_11(int) = Load : r0_10, m0_4 -# 709| r0_12(glval) = VariableAddress[y] : -# 709| r0_13(int) = Load : r0_12, m0_7 -# 709| r0_14(int) = Invoke : r0_9, r0_11, r0_13 -# 709| m0_15(int) = Store : r0_8, r0_14 -# 708| r0_16(glval) = VariableAddress[#return] : -# 708| v0_17(void) = ReturnValue : r0_16, m0_15 -# 708| v0_18(void) = UnmodeledUse : mu* -# 708| v0_19(void) = ExitFunction : +# 708| r0_2(glval) = VariableAddress[x] : +# 708| m0_3(int) = InitializeParameter[x] : r0_2 +# 708| r0_4(glval) = VariableAddress[y] : +# 708| m0_5(int) = InitializeParameter[y] : r0_4 +# 709| r0_6(glval) = VariableAddress[#return] : +# 709| r0_7(bool) = FunctionAddress[min] : +# 709| r0_8(glval) = VariableAddress[x] : +# 709| r0_9(int) = Load : r0_8, m0_3 +# 709| r0_10(glval) = VariableAddress[y] : +# 709| r0_11(int) = Load : r0_10, m0_5 +# 709| r0_12(int) = Invoke : r0_7, r0_9, r0_11 +# 709| m0_13(int) = Store : r0_6, r0_12 +# 708| r0_14(glval) = VariableAddress[#return] : +# 708| v0_15(void) = ReturnValue : r0_14, m0_13 +# 708| v0_16(void) = UnmodeledUse : mu* +# 708| v0_17(void) = ExitFunction : # 715| Outer::Func(void *, char) -> long # 715| Block 0 # 715| v0_0(void) = EnterFunction : # 715| mu0_1(unknown) = UnmodeledDefinition : -# 715| r0_2(void *) = InitializeParameter[x] : -# 715| r0_3(glval) = VariableAddress[x] : -# 715| m0_4(void *) = Store : r0_3, r0_2 -# 715| r0_5(char) = InitializeParameter[y] : -# 715| r0_6(glval) = VariableAddress[y] : -# 715| m0_7(char) = Store : r0_6, r0_5 -# 716| r0_8(glval) = VariableAddress[#return] : -# 716| r0_9(long) = Constant[0] : -# 716| m0_10(long) = Store : r0_8, r0_9 -# 715| r0_11(glval) = VariableAddress[#return] : -# 715| v0_12(void) = ReturnValue : r0_11, m0_10 -# 715| v0_13(void) = UnmodeledUse : mu* -# 715| v0_14(void) = ExitFunction : +# 715| r0_2(glval) = VariableAddress[x] : +# 715| m0_3(void *) = InitializeParameter[x] : r0_2 +# 715| r0_4(glval) = VariableAddress[y] : +# 715| m0_5(char) = InitializeParameter[y] : r0_4 +# 716| r0_6(glval) = VariableAddress[#return] : +# 716| r0_7(long) = Constant[0] : +# 716| m0_8(long) = Store : r0_6, r0_7 +# 715| r0_9(glval) = VariableAddress[#return] : +# 715| v0_10(void) = ReturnValue : r0_9, m0_8 +# 715| v0_11(void) = UnmodeledUse : mu* +# 715| v0_12(void) = ExitFunction : # 720| CallNestedTemplateFunc() -> double # 720| Block 0 @@ -3036,15 +2934,14 @@ ir.cpp: # 724| Block 0 # 724| v0_0(void) = EnterFunction : # 724| mu0_1(unknown) = UnmodeledDefinition : -# 724| r0_2(bool) = InitializeParameter[b] : -# 724| r0_3(glval) = VariableAddress[b] : -# 724| m0_4(bool) = Store : r0_3, r0_2 -# 726| r0_5(glval) = VariableAddress[x] : -# 726| r0_6(int) = Constant[5] : -# 726| m0_7(int) = Store : r0_5, r0_6 -# 727| r0_8(glval) = VariableAddress[b] : -# 727| r0_9(bool) = Load : r0_8, m0_4 -# 727| v0_10(void) = ConditionalBranch : r0_9 +# 724| r0_2(glval) = VariableAddress[b] : +# 724| m0_3(bool) = InitializeParameter[b] : r0_2 +# 726| r0_4(glval) = VariableAddress[x] : +# 726| r0_5(int) = Constant[5] : +# 726| m0_6(int) = Store : r0_4, r0_5 +# 727| r0_7(glval) = VariableAddress[b] : +# 727| r0_8(bool) = Load : r0_7, m0_3 +# 727| v0_9(void) = ConditionalBranch : r0_8 #-----| False -> Block 4 #-----| True -> Block 3 @@ -3066,7 +2963,7 @@ ir.cpp: # 730| Block 4 # 730| r4_0(glval) = VariableAddress[x] : -# 730| r4_1(int) = Load : r4_0, m0_7 +# 730| r4_1(int) = Load : r4_0, m0_6 # 730| r4_2(int) = Constant[2] : # 730| r4_3(bool) = CompareLT : r4_1, r4_2 # 730| v4_4(void) = ConditionalBranch : r4_3 @@ -3075,7 +2972,7 @@ ir.cpp: # 731| Block 5 # 731| r5_0(glval) = VariableAddress[b] : -# 731| r5_1(bool) = Load : r5_0, m0_4 +# 731| r5_1(bool) = Load : r5_0, m0_3 # 731| v5_2(void) = ConditionalBranch : r5_1 #-----| False -> Block 7 #-----| True -> Block 6 @@ -3111,15 +3008,14 @@ ir.cpp: #-----| Goto -> Block 10 # 735| Block 10 -# 735| r10_0(char *) = InitializeParameter[s] : -# 735| r10_1(glval) = VariableAddress[s] : -# 735| m10_2(char *) = Store : r10_1, r10_0 -# 736| r10_3(glval) = VariableAddress[#throw736:5] : -# 736| r10_4(bool) = FunctionAddress[String] : -# 736| r10_5(glval) = VariableAddress[s] : -# 736| r10_6(char *) = Load : r10_5, m10_2 -# 736| v10_7(void) = Invoke : r10_4, this:r10_3, r10_6 -# 736| v10_8(void) = ThrowValue : r10_3, mu0_1 +# 735| r10_0(glval) = VariableAddress[s] : +# 735| m10_1(char *) = InitializeParameter[s] : r10_0 +# 736| r10_2(glval) = VariableAddress[#throw736:5] : +# 736| r10_3(bool) = FunctionAddress[String] : +# 736| r10_4(glval) = VariableAddress[s] : +# 736| r10_5(char *) = Load : r10_4, m10_1 +# 736| v10_6(void) = Invoke : r10_3, this:r10_2, r10_5 +# 736| v10_7(void) = ThrowValue : r10_2, mu0_1 #-----| Exception -> Block 2 # 738| Block 11 @@ -3128,10 +3024,9 @@ ir.cpp: #-----| Goto -> Block 12 # 738| Block 12 -# 738| r12_0(String &) = InitializeParameter[e] : -# 738| r12_1(glval) = VariableAddress[e] : -# 738| m12_2(String &) = Store : r12_1, r12_0 -# 738| v12_3(void) = NoOp : +# 738| r12_0(glval) = VariableAddress[e] : +# 738| m12_1(String &) = InitializeParameter[e] : r12_0 +# 738| v12_2(void) = NoOp : #-----| Goto -> Block 14 # 740| Block 13 @@ -3149,39 +3044,37 @@ ir.cpp: # 745| v0_0(void) = EnterFunction : # 745| mu0_1(unknown) = UnmodeledDefinition : # 745| r0_2(glval) = InitializeThis : -#-----| r0_3(Base &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| m0_5(Base &) = Store : r0_4, r0_3 -# 745| r0_6(glval) = FieldAddress[base_s] : r0_2 -# 745| r0_7(bool) = FunctionAddress[String] : -# 745| v0_8(void) = Invoke : r0_7, this:r0_6 -# 745| v0_9(void) = NoOp : -# 745| v0_10(void) = ReturnVoid : -# 745| v0_11(void) = UnmodeledUse : mu* -# 745| v0_12(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| m0_4(Base &) = InitializeParameter[p#0] : r0_3 +# 745| r0_5(glval) = FieldAddress[base_s] : r0_2 +# 745| r0_6(bool) = FunctionAddress[String] : +# 745| v0_7(void) = Invoke : r0_6, this:r0_5 +# 745| v0_8(void) = NoOp : +# 745| v0_9(void) = ReturnVoid : +# 745| v0_10(void) = UnmodeledUse : mu* +# 745| v0_11(void) = ExitFunction : # 745| Base::operator=(const Base &) -> Base & # 745| Block 0 # 745| v0_0(void) = EnterFunction : # 745| mu0_1(unknown) = UnmodeledDefinition : # 745| r0_2(glval) = InitializeThis : -#-----| r0_3(Base &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| m0_5(Base &) = Store : r0_4, r0_3 -#-----| r0_6(Base *) = CopyValue : r0_2 -#-----| r0_7(glval) = FieldAddress[base_s] : r0_6 -# 745| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Base &) = Load : r0_9, m0_5 -#-----| r0_11(glval) = FieldAddress[base_s] : r0_10 -# 745| r0_12(String &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(glval) = VariableAddress[#return] : -#-----| r0_14(Base *) = CopyValue : r0_2 -#-----| m0_15(Base &) = Store : r0_13, r0_14 -# 745| r0_16(glval) = VariableAddress[#return] : -# 745| v0_17(void) = ReturnValue : r0_16, m0_15 -# 745| v0_18(void) = UnmodeledUse : mu* -# 745| v0_19(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| m0_4(Base &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Base *) = CopyValue : r0_2 +#-----| r0_6(glval) = FieldAddress[base_s] : r0_5 +# 745| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Base &) = Load : r0_8, m0_4 +#-----| r0_10(glval) = FieldAddress[base_s] : r0_9 +# 745| r0_11(String &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(glval) = VariableAddress[#return] : +#-----| r0_13(Base *) = CopyValue : r0_2 +#-----| m0_14(Base &) = Store : r0_12, r0_13 +# 745| r0_15(glval) = VariableAddress[#return] : +# 745| v0_16(void) = ReturnValue : r0_15, m0_14 +# 745| v0_17(void) = UnmodeledUse : mu* +# 745| v0_18(void) = ExitFunction : # 748| Base::Base() -> void # 748| Block 0 @@ -3214,30 +3107,29 @@ ir.cpp: # 754| v0_0(void) = EnterFunction : # 754| mu0_1(unknown) = UnmodeledDefinition : # 754| r0_2(glval) = InitializeThis : -#-----| r0_3(Middle &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| m0_5(Middle &) = Store : r0_4, r0_3 -#-----| r0_6(Middle *) = CopyValue : r0_2 -#-----| r0_7(Base *) = ConvertToBase[Middle : Base] : r0_6 -# 754| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Middle &) = Load : r0_9, m0_5 -#-----| r0_11(Base *) = ConvertToBase[Middle : Base] : r0_10 -# 754| r0_12(Base &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(Middle *) = CopyValue : r0_2 -#-----| r0_14(glval) = FieldAddress[middle_s] : r0_13 -# 754| r0_15(bool) = FunctionAddress[operator=] : -#-----| r0_16(glval) = VariableAddress[p#0] : -#-----| r0_17(Middle &) = Load : r0_16, m0_5 -#-----| r0_18(glval) = FieldAddress[middle_s] : r0_17 -# 754| r0_19(String &) = Invoke : r0_15, this:r0_14, r0_18 -#-----| r0_20(glval) = VariableAddress[#return] : -#-----| r0_21(Middle *) = CopyValue : r0_2 -#-----| m0_22(Middle &) = Store : r0_20, r0_21 -# 754| r0_23(glval) = VariableAddress[#return] : -# 754| v0_24(void) = ReturnValue : r0_23, m0_22 -# 754| v0_25(void) = UnmodeledUse : mu* -# 754| v0_26(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| m0_4(Middle &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Middle *) = CopyValue : r0_2 +#-----| r0_6(Base *) = ConvertToBase[Middle : Base] : r0_5 +# 754| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Middle &) = Load : r0_8, m0_4 +#-----| r0_10(Base *) = ConvertToBase[Middle : Base] : r0_9 +# 754| r0_11(Base &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(Middle *) = CopyValue : r0_2 +#-----| r0_13(glval) = FieldAddress[middle_s] : r0_12 +# 754| r0_14(bool) = FunctionAddress[operator=] : +#-----| r0_15(glval) = VariableAddress[p#0] : +#-----| r0_16(Middle &) = Load : r0_15, m0_4 +#-----| r0_17(glval) = FieldAddress[middle_s] : r0_16 +# 754| r0_18(String &) = Invoke : r0_14, this:r0_13, r0_17 +#-----| r0_19(glval) = VariableAddress[#return] : +#-----| r0_20(Middle *) = CopyValue : r0_2 +#-----| m0_21(Middle &) = Store : r0_19, r0_20 +# 754| r0_22(glval) = VariableAddress[#return] : +# 754| v0_23(void) = ReturnValue : r0_22, m0_21 +# 754| v0_24(void) = UnmodeledUse : mu* +# 754| v0_25(void) = ExitFunction : # 757| Middle::Middle() -> void # 757| Block 0 @@ -3276,30 +3168,29 @@ ir.cpp: # 763| v0_0(void) = EnterFunction : # 763| mu0_1(unknown) = UnmodeledDefinition : # 763| r0_2(glval) = InitializeThis : -#-----| r0_3(Derived &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| m0_5(Derived &) = Store : r0_4, r0_3 -#-----| r0_6(Derived *) = CopyValue : r0_2 -#-----| r0_7(Middle *) = ConvertToBase[Derived : Middle] : r0_6 -# 763| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Derived &) = Load : r0_9, m0_5 -#-----| r0_11(Middle *) = ConvertToBase[Derived : Middle] : r0_10 -# 763| r0_12(Middle &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(Derived *) = CopyValue : r0_2 -#-----| r0_14(glval) = FieldAddress[derived_s] : r0_13 -# 763| r0_15(bool) = FunctionAddress[operator=] : -#-----| r0_16(glval) = VariableAddress[p#0] : -#-----| r0_17(Derived &) = Load : r0_16, m0_5 -#-----| r0_18(glval) = FieldAddress[derived_s] : r0_17 -# 763| r0_19(String &) = Invoke : r0_15, this:r0_14, r0_18 -#-----| r0_20(glval) = VariableAddress[#return] : -#-----| r0_21(Derived *) = CopyValue : r0_2 -#-----| m0_22(Derived &) = Store : r0_20, r0_21 -# 763| r0_23(glval) = VariableAddress[#return] : -# 763| v0_24(void) = ReturnValue : r0_23, m0_22 -# 763| v0_25(void) = UnmodeledUse : mu* -# 763| v0_26(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| m0_4(Derived &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Derived *) = CopyValue : r0_2 +#-----| r0_6(Middle *) = ConvertToBase[Derived : Middle] : r0_5 +# 763| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Derived &) = Load : r0_8, m0_4 +#-----| r0_10(Middle *) = ConvertToBase[Derived : Middle] : r0_9 +# 763| r0_11(Middle &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(Derived *) = CopyValue : r0_2 +#-----| r0_13(glval) = FieldAddress[derived_s] : r0_12 +# 763| r0_14(bool) = FunctionAddress[operator=] : +#-----| r0_15(glval) = VariableAddress[p#0] : +#-----| r0_16(Derived &) = Load : r0_15, m0_4 +#-----| r0_17(glval) = FieldAddress[derived_s] : r0_16 +# 763| r0_18(String &) = Invoke : r0_14, this:r0_13, r0_17 +#-----| r0_19(glval) = VariableAddress[#return] : +#-----| r0_20(Derived *) = CopyValue : r0_2 +#-----| m0_21(Derived &) = Store : r0_19, r0_20 +# 763| r0_22(glval) = VariableAddress[#return] : +# 763| v0_23(void) = ReturnValue : r0_22, m0_21 +# 763| v0_24(void) = UnmodeledUse : mu* +# 763| v0_25(void) = ExitFunction : # 766| Derived::Derived() -> void # 766| Block 0 @@ -3734,146 +3625,138 @@ ir.cpp: # 871| v0_0(void) = EnterFunction : # 871| mu0_1(unknown) = UnmodeledDefinition : # 872| r0_2(glval) = VariableAddress[a] : -# 872| r0_3(char[5]) = Uninitialized : -# 872| m0_4(char[5]) = Store : r0_2, r0_3 -# 873| r0_5(glval) = VariableAddress[p] : -# 873| r0_6(glval) = VariableAddress[a] : +# 872| m0_3(char[5]) = Uninitialized : r0_2 +# 873| r0_4(glval) = VariableAddress[p] : +# 873| r0_5(glval) = VariableAddress[a] : +# 873| r0_6(char *) = Convert : r0_5 # 873| r0_7(char *) = Convert : r0_6 -# 873| r0_8(char *) = Convert : r0_7 -# 873| m0_9(char *) = Store : r0_5, r0_8 -# 874| r0_10(glval) = StringConstant["test"] : -# 874| r0_11(char *) = Convert : r0_10 -# 874| r0_12(glval) = VariableAddress[p] : -# 874| m0_13(char *) = Store : r0_12, r0_11 -# 875| r0_14(glval) = VariableAddress[a] : -# 875| r0_15(char *) = Convert : r0_14 -# 875| r0_16(int) = Constant[0] : -# 875| r0_17(char *) = PointerAdd[1] : r0_15, r0_16 -# 875| r0_18(char *) = Convert : r0_17 -# 875| r0_19(glval) = VariableAddress[p] : -# 875| m0_20(char *) = Store : r0_19, r0_18 -# 876| r0_21(glval) = StringConstant["test"] : -# 876| r0_22(char *) = Convert : r0_21 -# 876| r0_23(int) = Constant[0] : -# 876| r0_24(char *) = PointerAdd[1] : r0_22, r0_23 -# 876| r0_25(glval) = VariableAddress[p] : -# 876| m0_26(char *) = Store : r0_25, r0_24 -# 877| r0_27(glval) = VariableAddress[ra] : -# 877| r0_28(glval) = VariableAddress[a] : -# 877| m0_29(char(&)[5]) = Store : r0_27, r0_28 -# 878| r0_30(glval) = VariableAddress[rs] : -# 878| r0_31(glval) = StringConstant["test"] : -# 878| m0_32(char(&)[5]) = Store : r0_30, r0_31 -# 879| r0_33(glval) = VariableAddress[pa] : -# 879| r0_34(glval) = VariableAddress[a] : -# 879| r0_35(char(*)[5]) = Convert : r0_34 -# 879| m0_36(char(*)[5]) = Store : r0_33, r0_35 -# 880| r0_37(glval) = StringConstant["test"] : -# 880| r0_38(glval) = VariableAddress[pa] : -# 880| m0_39(char(*)[5]) = Store : r0_38, r0_37 -# 881| v0_40(void) = NoOp : -# 871| v0_41(void) = ReturnVoid : -# 871| v0_42(void) = UnmodeledUse : mu* -# 871| v0_43(void) = ExitFunction : +# 873| m0_8(char *) = Store : r0_4, r0_7 +# 874| r0_9(glval) = StringConstant["test"] : +# 874| r0_10(char *) = Convert : r0_9 +# 874| r0_11(glval) = VariableAddress[p] : +# 874| m0_12(char *) = Store : r0_11, r0_10 +# 875| r0_13(glval) = VariableAddress[a] : +# 875| r0_14(char *) = Convert : r0_13 +# 875| r0_15(int) = Constant[0] : +# 875| r0_16(char *) = PointerAdd[1] : r0_14, r0_15 +# 875| r0_17(char *) = Convert : r0_16 +# 875| r0_18(glval) = VariableAddress[p] : +# 875| m0_19(char *) = Store : r0_18, r0_17 +# 876| r0_20(glval) = StringConstant["test"] : +# 876| r0_21(char *) = Convert : r0_20 +# 876| r0_22(int) = Constant[0] : +# 876| r0_23(char *) = PointerAdd[1] : r0_21, r0_22 +# 876| r0_24(glval) = VariableAddress[p] : +# 876| m0_25(char *) = Store : r0_24, r0_23 +# 877| r0_26(glval) = VariableAddress[ra] : +# 877| r0_27(glval) = VariableAddress[a] : +# 877| m0_28(char(&)[5]) = Store : r0_26, r0_27 +# 878| r0_29(glval) = VariableAddress[rs] : +# 878| r0_30(glval) = StringConstant["test"] : +# 878| m0_31(char(&)[5]) = Store : r0_29, r0_30 +# 879| r0_32(glval) = VariableAddress[pa] : +# 879| r0_33(glval) = VariableAddress[a] : +# 879| r0_34(char(*)[5]) = Convert : r0_33 +# 879| m0_35(char(*)[5]) = Store : r0_32, r0_34 +# 880| r0_36(glval) = StringConstant["test"] : +# 880| r0_37(glval) = VariableAddress[pa] : +# 880| m0_38(char(*)[5]) = Store : r0_37, r0_36 +# 881| v0_39(void) = NoOp : +# 871| v0_40(void) = ReturnVoid : +# 871| v0_41(void) = UnmodeledUse : mu* +# 871| v0_42(void) = ExitFunction : # 883| FuncPtrConversions(..(*)(..), void *) -> void # 883| Block 0 # 883| v0_0(void) = EnterFunction : # 883| mu0_1(unknown) = UnmodeledDefinition : -# 883| r0_2(..(*)(..)) = InitializeParameter[pfn] : -# 883| r0_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 883| m0_4(..(*)(..)) = Store : r0_3, r0_2 -# 883| r0_5(void *) = InitializeParameter[p] : -# 883| r0_6(glval) = VariableAddress[p] : -# 883| m0_7(void *) = Store : r0_6, r0_5 -# 884| r0_8(glval<..(*)(..)>) = VariableAddress[pfn] : -# 884| r0_9(..(*)(..)) = Load : r0_8, m0_4 -# 884| r0_10(void *) = Convert : r0_9 -# 884| r0_11(glval) = VariableAddress[p] : -# 884| m0_12(void *) = Store : r0_11, r0_10 -# 885| r0_13(glval) = VariableAddress[p] : -# 885| r0_14(void *) = Load : r0_13, m0_12 -# 885| r0_15(..(*)(..)) = Convert : r0_14 -# 885| r0_16(glval<..(*)(..)>) = VariableAddress[pfn] : -# 885| m0_17(..(*)(..)) = Store : r0_16, r0_15 -# 886| v0_18(void) = NoOp : -# 883| v0_19(void) = ReturnVoid : -# 883| v0_20(void) = UnmodeledUse : mu* -# 883| v0_21(void) = ExitFunction : +# 883| r0_2(glval<..(*)(..)>) = VariableAddress[pfn] : +# 883| m0_3(..(*)(..)) = InitializeParameter[pfn] : r0_2 +# 883| r0_4(glval) = VariableAddress[p] : +# 883| m0_5(void *) = InitializeParameter[p] : r0_4 +# 884| r0_6(glval<..(*)(..)>) = VariableAddress[pfn] : +# 884| r0_7(..(*)(..)) = Load : r0_6, m0_3 +# 884| r0_8(void *) = Convert : r0_7 +# 884| r0_9(glval) = VariableAddress[p] : +# 884| m0_10(void *) = Store : r0_9, r0_8 +# 885| r0_11(glval) = VariableAddress[p] : +# 885| r0_12(void *) = Load : r0_11, m0_10 +# 885| r0_13(..(*)(..)) = Convert : r0_12 +# 885| r0_14(glval<..(*)(..)>) = VariableAddress[pfn] : +# 885| m0_15(..(*)(..)) = Store : r0_14, r0_13 +# 886| v0_16(void) = NoOp : +# 883| v0_17(void) = ReturnVoid : +# 883| v0_18(void) = UnmodeledUse : mu* +# 883| v0_19(void) = ExitFunction : # 888| VarArgUsage(int) -> void # 888| Block 0 # 888| v0_0(void) = EnterFunction : # 888| mu0_1(unknown) = UnmodeledDefinition : -# 888| r0_2(int) = InitializeParameter[x] : -# 888| r0_3(glval) = VariableAddress[x] : -# 888| mu0_4(int) = Store : r0_3, r0_2 -# 889| r0_5(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 889| r0_6(__va_list_tag[1]) = Uninitialized : -# 889| mu0_7(__va_list_tag[1]) = Store : r0_5, r0_6 -# 891| r0_8(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 891| r0_9(__va_list_tag *) = Convert : r0_8 -# 891| r0_10(glval) = VariableAddress[x] : -# 891| v0_11(void) = VarArgsStart : r0_9, r0_10 -# 892| r0_12(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 892| r0_13(__va_list_tag[1]) = Uninitialized : -# 892| mu0_14(__va_list_tag[1]) = Store : r0_12, r0_13 -# 893| r0_15(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 893| r0_16(__va_list_tag *) = Convert : r0_15 -# 893| r0_17(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 893| r0_18(__va_list_tag *) = Convert : r0_17 -# 893| v0_19(void) = VarArgsStart : r0_16, r0_18 -# 894| r0_20(glval) = VariableAddress[d] : -# 894| r0_21(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 894| r0_22(__va_list_tag *) = Convert : r0_21 -# 894| r0_23(glval) = VarArg : r0_22 -# 894| r0_24(double) = Load : r0_23, mu0_1 -# 894| m0_25(double) = Store : r0_20, r0_24 -# 895| r0_26(glval) = VariableAddress[f] : -# 895| r0_27(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 895| r0_28(__va_list_tag *) = Convert : r0_27 -# 895| r0_29(glval) = VarArg : r0_28 -# 895| r0_30(double) = Load : r0_29, mu0_1 -# 895| r0_31(float) = Convert : r0_30 -# 895| m0_32(float) = Store : r0_26, r0_31 -# 896| r0_33(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 896| r0_34(__va_list_tag *) = Convert : r0_33 -# 896| v0_35(void) = VarArgsEnd : r0_34 -# 897| r0_36(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 897| r0_37(__va_list_tag *) = Convert : r0_36 -# 897| v0_38(void) = VarArgsEnd : r0_37 -# 898| v0_39(void) = NoOp : -# 888| v0_40(void) = ReturnVoid : -# 888| v0_41(void) = UnmodeledUse : mu* -# 888| v0_42(void) = ExitFunction : +# 888| r0_2(glval) = VariableAddress[x] : +# 888| mu0_3(int) = InitializeParameter[x] : r0_2 +# 889| r0_4(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 889| mu0_5(__va_list_tag[1]) = Uninitialized : r0_4 +# 891| r0_6(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 891| r0_7(__va_list_tag *) = Convert : r0_6 +# 891| r0_8(glval) = VariableAddress[x] : +# 891| v0_9(void) = VarArgsStart : r0_7, r0_8 +# 892| r0_10(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 892| mu0_11(__va_list_tag[1]) = Uninitialized : r0_10 +# 893| r0_12(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 893| r0_13(__va_list_tag *) = Convert : r0_12 +# 893| r0_14(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 893| r0_15(__va_list_tag *) = Convert : r0_14 +# 893| v0_16(void) = VarArgsStart : r0_13, r0_15 +# 894| r0_17(glval) = VariableAddress[d] : +# 894| r0_18(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 894| r0_19(__va_list_tag *) = Convert : r0_18 +# 894| r0_20(glval) = VarArg : r0_19 +# 894| r0_21(double) = Load : r0_20, mu0_1 +# 894| m0_22(double) = Store : r0_17, r0_21 +# 895| r0_23(glval) = VariableAddress[f] : +# 895| r0_24(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 895| r0_25(__va_list_tag *) = Convert : r0_24 +# 895| r0_26(glval) = VarArg : r0_25 +# 895| r0_27(double) = Load : r0_26, mu0_1 +# 895| r0_28(float) = Convert : r0_27 +# 895| m0_29(float) = Store : r0_23, r0_28 +# 896| r0_30(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 896| r0_31(__va_list_tag *) = Convert : r0_30 +# 896| v0_32(void) = VarArgsEnd : r0_31 +# 897| r0_33(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 897| r0_34(__va_list_tag *) = Convert : r0_33 +# 897| v0_35(void) = VarArgsEnd : r0_34 +# 898| v0_36(void) = NoOp : +# 888| v0_37(void) = ReturnVoid : +# 888| v0_38(void) = UnmodeledUse : mu* +# 888| v0_39(void) = ExitFunction : # 900| CastToVoid(int) -> void # 900| Block 0 # 900| v0_0(void) = EnterFunction : # 900| mu0_1(unknown) = UnmodeledDefinition : -# 900| r0_2(int) = InitializeParameter[x] : -# 900| r0_3(glval) = VariableAddress[x] : -# 900| mu0_4(int) = Store : r0_3, r0_2 -# 901| r0_5(glval) = VariableAddress[x] : -# 901| v0_6(void) = Convert : r0_5 -# 902| v0_7(void) = NoOp : -# 900| v0_8(void) = ReturnVoid : -# 900| v0_9(void) = UnmodeledUse : mu* -# 900| v0_10(void) = ExitFunction : +# 900| r0_2(glval) = VariableAddress[x] : +# 900| mu0_3(int) = InitializeParameter[x] : r0_2 +# 901| r0_4(glval) = VariableAddress[x] : +# 901| v0_5(void) = Convert : r0_4 +# 902| v0_6(void) = NoOp : +# 900| v0_7(void) = ReturnVoid : +# 900| v0_8(void) = UnmodeledUse : mu* +# 900| v0_9(void) = ExitFunction : # 904| ConstantConditions(int) -> void # 904| Block 0 # 904| v0_0(void) = EnterFunction : # 904| mu0_1(unknown) = UnmodeledDefinition : -# 904| r0_2(int) = InitializeParameter[x] : -# 904| r0_3(glval) = VariableAddress[x] : -# 904| m0_4(int) = Store : r0_3, r0_2 -# 905| r0_5(glval) = VariableAddress[a] : -# 905| r0_6(bool) = Constant[1] : -# 905| m0_7(bool) = Store : r0_5, r0_6 -# 906| r0_8(glval) = VariableAddress[b] : -# 906| r0_9(bool) = Constant[1] : -# 906| v0_10(void) = ConditionalBranch : r0_9 +# 904| r0_2(glval) = VariableAddress[x] : +# 904| m0_3(int) = InitializeParameter[x] : r0_2 +# 905| r0_4(glval) = VariableAddress[a] : +# 905| r0_5(bool) = Constant[1] : +# 905| m0_6(bool) = Store : r0_4, r0_5 +# 906| r0_7(glval) = VariableAddress[b] : +# 906| r0_8(bool) = Constant[1] : +# 906| v0_9(void) = ConditionalBranch : r0_8 #-----| False -> Block 3 #-----| True -> Block 2 @@ -3881,7 +3764,7 @@ ir.cpp: # 906| m1_0(int) = Phi : from 2:m2_3, from 3:m3_3 # 906| r1_1(glval) = VariableAddress[#temp906:11] : # 906| r1_2(int) = Load : r1_1, m1_0 -# 906| m1_3(int) = Store : r0_8, r1_2 +# 906| m1_3(int) = Store : r0_7, r1_2 # 907| v1_4(void) = NoOp : # 904| v1_5(void) = ReturnVoid : # 904| v1_6(void) = UnmodeledUse : mu* @@ -3889,14 +3772,14 @@ ir.cpp: # 906| Block 2 # 906| r2_0(glval) = VariableAddress[x] : -# 906| r2_1(int) = Load : r2_0, m0_4 +# 906| r2_1(int) = Load : r2_0, m0_3 # 906| r2_2(glval) = VariableAddress[#temp906:11] : # 906| m2_3(int) = Store : r2_2, r2_1 #-----| Goto -> Block 1 # 906| Block 3 # 906| r3_0(glval) = VariableAddress[x] : -# 906| r3_1(int) = Load : r3_0, m0_4 +# 906| r3_1(int) = Load : r3_0, m0_3 # 906| r3_2(glval) = VariableAddress[#temp906:11] : # 906| m3_3(int) = Store : r3_2, r3_1 #-----| Goto -> Block 1 diff --git a/cpp/ql/test/library-tests/ir/ir/ir.expected b/cpp/ql/test/library-tests/ir/ir/ir.expected index 4c7a7ad17464..c31267273a7b 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/ir.expected @@ -128,795 +128,763 @@ ir.cpp: # 50| Block 0 # 50| v0_0(void) = EnterFunction : # 50| mu0_1(unknown) = UnmodeledDefinition : -# 50| r0_2(int) = InitializeParameter[x] : -# 50| r0_3(glval) = VariableAddress[x] : -# 50| mu0_4(int) = Store : r0_3, r0_2 -# 50| r0_5(int) = InitializeParameter[y] : -# 50| r0_6(glval) = VariableAddress[y] : -# 50| mu0_7(int) = Store : r0_6, r0_5 -# 51| r0_8(glval) = VariableAddress[z] : -# 51| r0_9(int) = Uninitialized : -# 51| mu0_10(int) = Store : r0_8, r0_9 -# 53| r0_11(glval) = VariableAddress[x] : -# 53| r0_12(int) = Load : r0_11, mu0_1 -# 53| r0_13(glval) = VariableAddress[y] : -# 53| r0_14(int) = Load : r0_13, mu0_1 -# 53| r0_15(int) = Add : r0_12, r0_14 -# 53| r0_16(glval) = VariableAddress[z] : -# 53| mu0_17(int) = Store : r0_16, r0_15 -# 54| r0_18(glval) = VariableAddress[x] : -# 54| r0_19(int) = Load : r0_18, mu0_1 -# 54| r0_20(glval) = VariableAddress[y] : -# 54| r0_21(int) = Load : r0_20, mu0_1 -# 54| r0_22(int) = Sub : r0_19, r0_21 -# 54| r0_23(glval) = VariableAddress[z] : -# 54| mu0_24(int) = Store : r0_23, r0_22 -# 55| r0_25(glval) = VariableAddress[x] : -# 55| r0_26(int) = Load : r0_25, mu0_1 -# 55| r0_27(glval) = VariableAddress[y] : -# 55| r0_28(int) = Load : r0_27, mu0_1 -# 55| r0_29(int) = Mul : r0_26, r0_28 -# 55| r0_30(glval) = VariableAddress[z] : -# 55| mu0_31(int) = Store : r0_30, r0_29 -# 56| r0_32(glval) = VariableAddress[x] : -# 56| r0_33(int) = Load : r0_32, mu0_1 -# 56| r0_34(glval) = VariableAddress[y] : -# 56| r0_35(int) = Load : r0_34, mu0_1 -# 56| r0_36(int) = Div : r0_33, r0_35 -# 56| r0_37(glval) = VariableAddress[z] : -# 56| mu0_38(int) = Store : r0_37, r0_36 -# 57| r0_39(glval) = VariableAddress[x] : -# 57| r0_40(int) = Load : r0_39, mu0_1 -# 57| r0_41(glval) = VariableAddress[y] : -# 57| r0_42(int) = Load : r0_41, mu0_1 -# 57| r0_43(int) = Rem : r0_40, r0_42 -# 57| r0_44(glval) = VariableAddress[z] : -# 57| mu0_45(int) = Store : r0_44, r0_43 -# 59| r0_46(glval) = VariableAddress[x] : -# 59| r0_47(int) = Load : r0_46, mu0_1 -# 59| r0_48(glval) = VariableAddress[y] : -# 59| r0_49(int) = Load : r0_48, mu0_1 -# 59| r0_50(int) = BitAnd : r0_47, r0_49 -# 59| r0_51(glval) = VariableAddress[z] : -# 59| mu0_52(int) = Store : r0_51, r0_50 -# 60| r0_53(glval) = VariableAddress[x] : -# 60| r0_54(int) = Load : r0_53, mu0_1 -# 60| r0_55(glval) = VariableAddress[y] : -# 60| r0_56(int) = Load : r0_55, mu0_1 -# 60| r0_57(int) = BitOr : r0_54, r0_56 -# 60| r0_58(glval) = VariableAddress[z] : -# 60| mu0_59(int) = Store : r0_58, r0_57 -# 61| r0_60(glval) = VariableAddress[x] : -# 61| r0_61(int) = Load : r0_60, mu0_1 -# 61| r0_62(glval) = VariableAddress[y] : -# 61| r0_63(int) = Load : r0_62, mu0_1 -# 61| r0_64(int) = BitXor : r0_61, r0_63 -# 61| r0_65(glval) = VariableAddress[z] : -# 61| mu0_66(int) = Store : r0_65, r0_64 -# 63| r0_67(glval) = VariableAddress[x] : -# 63| r0_68(int) = Load : r0_67, mu0_1 -# 63| r0_69(glval) = VariableAddress[y] : -# 63| r0_70(int) = Load : r0_69, mu0_1 -# 63| r0_71(int) = ShiftLeft : r0_68, r0_70 -# 63| r0_72(glval) = VariableAddress[z] : -# 63| mu0_73(int) = Store : r0_72, r0_71 -# 64| r0_74(glval) = VariableAddress[x] : -# 64| r0_75(int) = Load : r0_74, mu0_1 -# 64| r0_76(glval) = VariableAddress[y] : -# 64| r0_77(int) = Load : r0_76, mu0_1 -# 64| r0_78(int) = ShiftRight : r0_75, r0_77 -# 64| r0_79(glval) = VariableAddress[z] : -# 64| mu0_80(int) = Store : r0_79, r0_78 -# 66| r0_81(glval) = VariableAddress[x] : -# 66| r0_82(int) = Load : r0_81, mu0_1 -# 66| r0_83(glval) = VariableAddress[z] : -# 66| mu0_84(int) = Store : r0_83, r0_82 -# 68| r0_85(glval) = VariableAddress[x] : -# 68| r0_86(int) = Load : r0_85, mu0_1 -# 68| r0_87(glval) = VariableAddress[z] : -# 68| r0_88(int) = Load : r0_87, mu0_1 -# 68| r0_89(int) = Add : r0_88, r0_86 -# 68| mu0_90(int) = Store : r0_87, r0_89 -# 69| r0_91(glval) = VariableAddress[x] : -# 69| r0_92(int) = Load : r0_91, mu0_1 -# 69| r0_93(glval) = VariableAddress[z] : -# 69| r0_94(int) = Load : r0_93, mu0_1 -# 69| r0_95(int) = Sub : r0_94, r0_92 -# 69| mu0_96(int) = Store : r0_93, r0_95 -# 70| r0_97(glval) = VariableAddress[x] : -# 70| r0_98(int) = Load : r0_97, mu0_1 -# 70| r0_99(glval) = VariableAddress[z] : -# 70| r0_100(int) = Load : r0_99, mu0_1 -# 70| r0_101(int) = Mul : r0_100, r0_98 -# 70| mu0_102(int) = Store : r0_99, r0_101 -# 71| r0_103(glval) = VariableAddress[x] : -# 71| r0_104(int) = Load : r0_103, mu0_1 -# 71| r0_105(glval) = VariableAddress[z] : -# 71| r0_106(int) = Load : r0_105, mu0_1 -# 71| r0_107(int) = Div : r0_106, r0_104 -# 71| mu0_108(int) = Store : r0_105, r0_107 -# 72| r0_109(glval) = VariableAddress[x] : -# 72| r0_110(int) = Load : r0_109, mu0_1 -# 72| r0_111(glval) = VariableAddress[z] : -# 72| r0_112(int) = Load : r0_111, mu0_1 -# 72| r0_113(int) = Rem : r0_112, r0_110 -# 72| mu0_114(int) = Store : r0_111, r0_113 -# 74| r0_115(glval) = VariableAddress[x] : -# 74| r0_116(int) = Load : r0_115, mu0_1 -# 74| r0_117(glval) = VariableAddress[z] : -# 74| r0_118(int) = Load : r0_117, mu0_1 -# 74| r0_119(int) = BitAnd : r0_118, r0_116 -# 74| mu0_120(int) = Store : r0_117, r0_119 -# 75| r0_121(glval) = VariableAddress[x] : -# 75| r0_122(int) = Load : r0_121, mu0_1 -# 75| r0_123(glval) = VariableAddress[z] : -# 75| r0_124(int) = Load : r0_123, mu0_1 -# 75| r0_125(int) = BitOr : r0_124, r0_122 -# 75| mu0_126(int) = Store : r0_123, r0_125 -# 76| r0_127(glval) = VariableAddress[x] : -# 76| r0_128(int) = Load : r0_127, mu0_1 -# 76| r0_129(glval) = VariableAddress[z] : -# 76| r0_130(int) = Load : r0_129, mu0_1 -# 76| r0_131(int) = BitXor : r0_130, r0_128 -# 76| mu0_132(int) = Store : r0_129, r0_131 -# 78| r0_133(glval) = VariableAddress[x] : -# 78| r0_134(int) = Load : r0_133, mu0_1 -# 78| r0_135(glval) = VariableAddress[z] : -# 78| r0_136(int) = Load : r0_135, mu0_1 -# 78| r0_137(int) = ShiftLeft : r0_136, r0_134 -# 78| mu0_138(int) = Store : r0_135, r0_137 -# 79| r0_139(glval) = VariableAddress[x] : -# 79| r0_140(int) = Load : r0_139, mu0_1 -# 79| r0_141(glval) = VariableAddress[z] : -# 79| r0_142(int) = Load : r0_141, mu0_1 -# 79| r0_143(int) = ShiftRight : r0_142, r0_140 -# 79| mu0_144(int) = Store : r0_141, r0_143 -# 81| r0_145(glval) = VariableAddress[x] : -# 81| r0_146(int) = Load : r0_145, mu0_1 -# 81| r0_147(int) = CopyValue : r0_146 -# 81| r0_148(glval) = VariableAddress[z] : -# 81| mu0_149(int) = Store : r0_148, r0_147 -# 82| r0_150(glval) = VariableAddress[x] : -# 82| r0_151(int) = Load : r0_150, mu0_1 -# 82| r0_152(int) = Negate : r0_151 -# 82| r0_153(glval) = VariableAddress[z] : -# 82| mu0_154(int) = Store : r0_153, r0_152 -# 83| r0_155(glval) = VariableAddress[x] : -# 83| r0_156(int) = Load : r0_155, mu0_1 -# 83| r0_157(int) = BitComplement : r0_156 -# 83| r0_158(glval) = VariableAddress[z] : -# 83| mu0_159(int) = Store : r0_158, r0_157 -# 84| r0_160(glval) = VariableAddress[x] : -# 84| r0_161(int) = Load : r0_160, mu0_1 -# 84| r0_162(int) = Constant[0] : -# 84| r0_163(bool) = CompareNE : r0_161, r0_162 -# 84| r0_164(bool) = LogicalNot : r0_163 -# 84| r0_165(int) = Convert : r0_164 -# 84| r0_166(glval) = VariableAddress[z] : -# 84| mu0_167(int) = Store : r0_166, r0_165 -# 85| v0_168(void) = NoOp : -# 50| v0_169(void) = ReturnVoid : -# 50| v0_170(void) = UnmodeledUse : mu* -# 50| v0_171(void) = ExitFunction : +# 50| r0_2(glval) = VariableAddress[x] : +# 50| mu0_3(int) = InitializeParameter[x] : r0_2 +# 50| r0_4(glval) = VariableAddress[y] : +# 50| mu0_5(int) = InitializeParameter[y] : r0_4 +# 51| r0_6(glval) = VariableAddress[z] : +# 51| mu0_7(int) = Uninitialized : r0_6 +# 53| r0_8(glval) = VariableAddress[x] : +# 53| r0_9(int) = Load : r0_8, mu0_1 +# 53| r0_10(glval) = VariableAddress[y] : +# 53| r0_11(int) = Load : r0_10, mu0_1 +# 53| r0_12(int) = Add : r0_9, r0_11 +# 53| r0_13(glval) = VariableAddress[z] : +# 53| mu0_14(int) = Store : r0_13, r0_12 +# 54| r0_15(glval) = VariableAddress[x] : +# 54| r0_16(int) = Load : r0_15, mu0_1 +# 54| r0_17(glval) = VariableAddress[y] : +# 54| r0_18(int) = Load : r0_17, mu0_1 +# 54| r0_19(int) = Sub : r0_16, r0_18 +# 54| r0_20(glval) = VariableAddress[z] : +# 54| mu0_21(int) = Store : r0_20, r0_19 +# 55| r0_22(glval) = VariableAddress[x] : +# 55| r0_23(int) = Load : r0_22, mu0_1 +# 55| r0_24(glval) = VariableAddress[y] : +# 55| r0_25(int) = Load : r0_24, mu0_1 +# 55| r0_26(int) = Mul : r0_23, r0_25 +# 55| r0_27(glval) = VariableAddress[z] : +# 55| mu0_28(int) = Store : r0_27, r0_26 +# 56| r0_29(glval) = VariableAddress[x] : +# 56| r0_30(int) = Load : r0_29, mu0_1 +# 56| r0_31(glval) = VariableAddress[y] : +# 56| r0_32(int) = Load : r0_31, mu0_1 +# 56| r0_33(int) = Div : r0_30, r0_32 +# 56| r0_34(glval) = VariableAddress[z] : +# 56| mu0_35(int) = Store : r0_34, r0_33 +# 57| r0_36(glval) = VariableAddress[x] : +# 57| r0_37(int) = Load : r0_36, mu0_1 +# 57| r0_38(glval) = VariableAddress[y] : +# 57| r0_39(int) = Load : r0_38, mu0_1 +# 57| r0_40(int) = Rem : r0_37, r0_39 +# 57| r0_41(glval) = VariableAddress[z] : +# 57| mu0_42(int) = Store : r0_41, r0_40 +# 59| r0_43(glval) = VariableAddress[x] : +# 59| r0_44(int) = Load : r0_43, mu0_1 +# 59| r0_45(glval) = VariableAddress[y] : +# 59| r0_46(int) = Load : r0_45, mu0_1 +# 59| r0_47(int) = BitAnd : r0_44, r0_46 +# 59| r0_48(glval) = VariableAddress[z] : +# 59| mu0_49(int) = Store : r0_48, r0_47 +# 60| r0_50(glval) = VariableAddress[x] : +# 60| r0_51(int) = Load : r0_50, mu0_1 +# 60| r0_52(glval) = VariableAddress[y] : +# 60| r0_53(int) = Load : r0_52, mu0_1 +# 60| r0_54(int) = BitOr : r0_51, r0_53 +# 60| r0_55(glval) = VariableAddress[z] : +# 60| mu0_56(int) = Store : r0_55, r0_54 +# 61| r0_57(glval) = VariableAddress[x] : +# 61| r0_58(int) = Load : r0_57, mu0_1 +# 61| r0_59(glval) = VariableAddress[y] : +# 61| r0_60(int) = Load : r0_59, mu0_1 +# 61| r0_61(int) = BitXor : r0_58, r0_60 +# 61| r0_62(glval) = VariableAddress[z] : +# 61| mu0_63(int) = Store : r0_62, r0_61 +# 63| r0_64(glval) = VariableAddress[x] : +# 63| r0_65(int) = Load : r0_64, mu0_1 +# 63| r0_66(glval) = VariableAddress[y] : +# 63| r0_67(int) = Load : r0_66, mu0_1 +# 63| r0_68(int) = ShiftLeft : r0_65, r0_67 +# 63| r0_69(glval) = VariableAddress[z] : +# 63| mu0_70(int) = Store : r0_69, r0_68 +# 64| r0_71(glval) = VariableAddress[x] : +# 64| r0_72(int) = Load : r0_71, mu0_1 +# 64| r0_73(glval) = VariableAddress[y] : +# 64| r0_74(int) = Load : r0_73, mu0_1 +# 64| r0_75(int) = ShiftRight : r0_72, r0_74 +# 64| r0_76(glval) = VariableAddress[z] : +# 64| mu0_77(int) = Store : r0_76, r0_75 +# 66| r0_78(glval) = VariableAddress[x] : +# 66| r0_79(int) = Load : r0_78, mu0_1 +# 66| r0_80(glval) = VariableAddress[z] : +# 66| mu0_81(int) = Store : r0_80, r0_79 +# 68| r0_82(glval) = VariableAddress[x] : +# 68| r0_83(int) = Load : r0_82, mu0_1 +# 68| r0_84(glval) = VariableAddress[z] : +# 68| r0_85(int) = Load : r0_84, mu0_1 +# 68| r0_86(int) = Add : r0_85, r0_83 +# 68| mu0_87(int) = Store : r0_84, r0_86 +# 69| r0_88(glval) = VariableAddress[x] : +# 69| r0_89(int) = Load : r0_88, mu0_1 +# 69| r0_90(glval) = VariableAddress[z] : +# 69| r0_91(int) = Load : r0_90, mu0_1 +# 69| r0_92(int) = Sub : r0_91, r0_89 +# 69| mu0_93(int) = Store : r0_90, r0_92 +# 70| r0_94(glval) = VariableAddress[x] : +# 70| r0_95(int) = Load : r0_94, mu0_1 +# 70| r0_96(glval) = VariableAddress[z] : +# 70| r0_97(int) = Load : r0_96, mu0_1 +# 70| r0_98(int) = Mul : r0_97, r0_95 +# 70| mu0_99(int) = Store : r0_96, r0_98 +# 71| r0_100(glval) = VariableAddress[x] : +# 71| r0_101(int) = Load : r0_100, mu0_1 +# 71| r0_102(glval) = VariableAddress[z] : +# 71| r0_103(int) = Load : r0_102, mu0_1 +# 71| r0_104(int) = Div : r0_103, r0_101 +# 71| mu0_105(int) = Store : r0_102, r0_104 +# 72| r0_106(glval) = VariableAddress[x] : +# 72| r0_107(int) = Load : r0_106, mu0_1 +# 72| r0_108(glval) = VariableAddress[z] : +# 72| r0_109(int) = Load : r0_108, mu0_1 +# 72| r0_110(int) = Rem : r0_109, r0_107 +# 72| mu0_111(int) = Store : r0_108, r0_110 +# 74| r0_112(glval) = VariableAddress[x] : +# 74| r0_113(int) = Load : r0_112, mu0_1 +# 74| r0_114(glval) = VariableAddress[z] : +# 74| r0_115(int) = Load : r0_114, mu0_1 +# 74| r0_116(int) = BitAnd : r0_115, r0_113 +# 74| mu0_117(int) = Store : r0_114, r0_116 +# 75| r0_118(glval) = VariableAddress[x] : +# 75| r0_119(int) = Load : r0_118, mu0_1 +# 75| r0_120(glval) = VariableAddress[z] : +# 75| r0_121(int) = Load : r0_120, mu0_1 +# 75| r0_122(int) = BitOr : r0_121, r0_119 +# 75| mu0_123(int) = Store : r0_120, r0_122 +# 76| r0_124(glval) = VariableAddress[x] : +# 76| r0_125(int) = Load : r0_124, mu0_1 +# 76| r0_126(glval) = VariableAddress[z] : +# 76| r0_127(int) = Load : r0_126, mu0_1 +# 76| r0_128(int) = BitXor : r0_127, r0_125 +# 76| mu0_129(int) = Store : r0_126, r0_128 +# 78| r0_130(glval) = VariableAddress[x] : +# 78| r0_131(int) = Load : r0_130, mu0_1 +# 78| r0_132(glval) = VariableAddress[z] : +# 78| r0_133(int) = Load : r0_132, mu0_1 +# 78| r0_134(int) = ShiftLeft : r0_133, r0_131 +# 78| mu0_135(int) = Store : r0_132, r0_134 +# 79| r0_136(glval) = VariableAddress[x] : +# 79| r0_137(int) = Load : r0_136, mu0_1 +# 79| r0_138(glval) = VariableAddress[z] : +# 79| r0_139(int) = Load : r0_138, mu0_1 +# 79| r0_140(int) = ShiftRight : r0_139, r0_137 +# 79| mu0_141(int) = Store : r0_138, r0_140 +# 81| r0_142(glval) = VariableAddress[x] : +# 81| r0_143(int) = Load : r0_142, mu0_1 +# 81| r0_144(int) = CopyValue : r0_143 +# 81| r0_145(glval) = VariableAddress[z] : +# 81| mu0_146(int) = Store : r0_145, r0_144 +# 82| r0_147(glval) = VariableAddress[x] : +# 82| r0_148(int) = Load : r0_147, mu0_1 +# 82| r0_149(int) = Negate : r0_148 +# 82| r0_150(glval) = VariableAddress[z] : +# 82| mu0_151(int) = Store : r0_150, r0_149 +# 83| r0_152(glval) = VariableAddress[x] : +# 83| r0_153(int) = Load : r0_152, mu0_1 +# 83| r0_154(int) = BitComplement : r0_153 +# 83| r0_155(glval) = VariableAddress[z] : +# 83| mu0_156(int) = Store : r0_155, r0_154 +# 84| r0_157(glval) = VariableAddress[x] : +# 84| r0_158(int) = Load : r0_157, mu0_1 +# 84| r0_159(int) = Constant[0] : +# 84| r0_160(bool) = CompareNE : r0_158, r0_159 +# 84| r0_161(bool) = LogicalNot : r0_160 +# 84| r0_162(int) = Convert : r0_161 +# 84| r0_163(glval) = VariableAddress[z] : +# 84| mu0_164(int) = Store : r0_163, r0_162 +# 85| v0_165(void) = NoOp : +# 50| v0_166(void) = ReturnVoid : +# 50| v0_167(void) = UnmodeledUse : mu* +# 50| v0_168(void) = ExitFunction : # 87| IntegerCompare(int, int) -> void # 87| Block 0 # 87| v0_0(void) = EnterFunction : # 87| mu0_1(unknown) = UnmodeledDefinition : -# 87| r0_2(int) = InitializeParameter[x] : -# 87| r0_3(glval) = VariableAddress[x] : -# 87| mu0_4(int) = Store : r0_3, r0_2 -# 87| r0_5(int) = InitializeParameter[y] : -# 87| r0_6(glval) = VariableAddress[y] : -# 87| mu0_7(int) = Store : r0_6, r0_5 -# 88| r0_8(glval) = VariableAddress[b] : -# 88| r0_9(bool) = Uninitialized : -# 88| mu0_10(bool) = Store : r0_8, r0_9 -# 90| r0_11(glval) = VariableAddress[x] : -# 90| r0_12(int) = Load : r0_11, mu0_1 -# 90| r0_13(glval) = VariableAddress[y] : -# 90| r0_14(int) = Load : r0_13, mu0_1 -# 90| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 90| r0_16(glval) = VariableAddress[b] : -# 90| mu0_17(bool) = Store : r0_16, r0_15 -# 91| r0_18(glval) = VariableAddress[x] : -# 91| r0_19(int) = Load : r0_18, mu0_1 -# 91| r0_20(glval) = VariableAddress[y] : -# 91| r0_21(int) = Load : r0_20, mu0_1 -# 91| r0_22(bool) = CompareNE : r0_19, r0_21 -# 91| r0_23(glval) = VariableAddress[b] : -# 91| mu0_24(bool) = Store : r0_23, r0_22 -# 92| r0_25(glval) = VariableAddress[x] : -# 92| r0_26(int) = Load : r0_25, mu0_1 -# 92| r0_27(glval) = VariableAddress[y] : -# 92| r0_28(int) = Load : r0_27, mu0_1 -# 92| r0_29(bool) = CompareLT : r0_26, r0_28 -# 92| r0_30(glval) = VariableAddress[b] : -# 92| mu0_31(bool) = Store : r0_30, r0_29 -# 93| r0_32(glval) = VariableAddress[x] : -# 93| r0_33(int) = Load : r0_32, mu0_1 -# 93| r0_34(glval) = VariableAddress[y] : -# 93| r0_35(int) = Load : r0_34, mu0_1 -# 93| r0_36(bool) = CompareGT : r0_33, r0_35 -# 93| r0_37(glval) = VariableAddress[b] : -# 93| mu0_38(bool) = Store : r0_37, r0_36 -# 94| r0_39(glval) = VariableAddress[x] : -# 94| r0_40(int) = Load : r0_39, mu0_1 -# 94| r0_41(glval) = VariableAddress[y] : -# 94| r0_42(int) = Load : r0_41, mu0_1 -# 94| r0_43(bool) = CompareLE : r0_40, r0_42 -# 94| r0_44(glval) = VariableAddress[b] : -# 94| mu0_45(bool) = Store : r0_44, r0_43 -# 95| r0_46(glval) = VariableAddress[x] : -# 95| r0_47(int) = Load : r0_46, mu0_1 -# 95| r0_48(glval) = VariableAddress[y] : -# 95| r0_49(int) = Load : r0_48, mu0_1 -# 95| r0_50(bool) = CompareGE : r0_47, r0_49 -# 95| r0_51(glval) = VariableAddress[b] : -# 95| mu0_52(bool) = Store : r0_51, r0_50 -# 96| v0_53(void) = NoOp : -# 87| v0_54(void) = ReturnVoid : -# 87| v0_55(void) = UnmodeledUse : mu* -# 87| v0_56(void) = ExitFunction : +# 87| r0_2(glval) = VariableAddress[x] : +# 87| mu0_3(int) = InitializeParameter[x] : r0_2 +# 87| r0_4(glval) = VariableAddress[y] : +# 87| mu0_5(int) = InitializeParameter[y] : r0_4 +# 88| r0_6(glval) = VariableAddress[b] : +# 88| mu0_7(bool) = Uninitialized : r0_6 +# 90| r0_8(glval) = VariableAddress[x] : +# 90| r0_9(int) = Load : r0_8, mu0_1 +# 90| r0_10(glval) = VariableAddress[y] : +# 90| r0_11(int) = Load : r0_10, mu0_1 +# 90| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 90| r0_13(glval) = VariableAddress[b] : +# 90| mu0_14(bool) = Store : r0_13, r0_12 +# 91| r0_15(glval) = VariableAddress[x] : +# 91| r0_16(int) = Load : r0_15, mu0_1 +# 91| r0_17(glval) = VariableAddress[y] : +# 91| r0_18(int) = Load : r0_17, mu0_1 +# 91| r0_19(bool) = CompareNE : r0_16, r0_18 +# 91| r0_20(glval) = VariableAddress[b] : +# 91| mu0_21(bool) = Store : r0_20, r0_19 +# 92| r0_22(glval) = VariableAddress[x] : +# 92| r0_23(int) = Load : r0_22, mu0_1 +# 92| r0_24(glval) = VariableAddress[y] : +# 92| r0_25(int) = Load : r0_24, mu0_1 +# 92| r0_26(bool) = CompareLT : r0_23, r0_25 +# 92| r0_27(glval) = VariableAddress[b] : +# 92| mu0_28(bool) = Store : r0_27, r0_26 +# 93| r0_29(glval) = VariableAddress[x] : +# 93| r0_30(int) = Load : r0_29, mu0_1 +# 93| r0_31(glval) = VariableAddress[y] : +# 93| r0_32(int) = Load : r0_31, mu0_1 +# 93| r0_33(bool) = CompareGT : r0_30, r0_32 +# 93| r0_34(glval) = VariableAddress[b] : +# 93| mu0_35(bool) = Store : r0_34, r0_33 +# 94| r0_36(glval) = VariableAddress[x] : +# 94| r0_37(int) = Load : r0_36, mu0_1 +# 94| r0_38(glval) = VariableAddress[y] : +# 94| r0_39(int) = Load : r0_38, mu0_1 +# 94| r0_40(bool) = CompareLE : r0_37, r0_39 +# 94| r0_41(glval) = VariableAddress[b] : +# 94| mu0_42(bool) = Store : r0_41, r0_40 +# 95| r0_43(glval) = VariableAddress[x] : +# 95| r0_44(int) = Load : r0_43, mu0_1 +# 95| r0_45(glval) = VariableAddress[y] : +# 95| r0_46(int) = Load : r0_45, mu0_1 +# 95| r0_47(bool) = CompareGE : r0_44, r0_46 +# 95| r0_48(glval) = VariableAddress[b] : +# 95| mu0_49(bool) = Store : r0_48, r0_47 +# 96| v0_50(void) = NoOp : +# 87| v0_51(void) = ReturnVoid : +# 87| v0_52(void) = UnmodeledUse : mu* +# 87| v0_53(void) = ExitFunction : # 98| IntegerCrement(int) -> void # 98| Block 0 # 98| v0_0(void) = EnterFunction : # 98| mu0_1(unknown) = UnmodeledDefinition : -# 98| r0_2(int) = InitializeParameter[x] : -# 98| r0_3(glval) = VariableAddress[x] : -# 98| mu0_4(int) = Store : r0_3, r0_2 -# 99| r0_5(glval) = VariableAddress[y] : -# 99| r0_6(int) = Uninitialized : -# 99| mu0_7(int) = Store : r0_5, r0_6 -# 101| r0_8(glval) = VariableAddress[x] : -# 101| r0_9(int) = Load : r0_8, mu0_1 -# 101| r0_10(int) = Constant[1] : -# 101| r0_11(int) = Add : r0_9, r0_10 -# 101| mu0_12(int) = Store : r0_8, r0_11 -# 101| r0_13(glval) = VariableAddress[y] : -# 101| mu0_14(int) = Store : r0_13, r0_11 -# 102| r0_15(glval) = VariableAddress[x] : -# 102| r0_16(int) = Load : r0_15, mu0_1 -# 102| r0_17(int) = Constant[1] : -# 102| r0_18(int) = Sub : r0_16, r0_17 -# 102| mu0_19(int) = Store : r0_15, r0_18 -# 102| r0_20(glval) = VariableAddress[y] : -# 102| mu0_21(int) = Store : r0_20, r0_18 -# 103| r0_22(glval) = VariableAddress[x] : -# 103| r0_23(int) = Load : r0_22, mu0_1 -# 103| r0_24(int) = Constant[1] : -# 103| r0_25(int) = Add : r0_23, r0_24 -# 103| mu0_26(int) = Store : r0_22, r0_25 -# 103| r0_27(glval) = VariableAddress[y] : -# 103| mu0_28(int) = Store : r0_27, r0_23 -# 104| r0_29(glval) = VariableAddress[x] : -# 104| r0_30(int) = Load : r0_29, mu0_1 -# 104| r0_31(int) = Constant[1] : -# 104| r0_32(int) = Sub : r0_30, r0_31 -# 104| mu0_33(int) = Store : r0_29, r0_32 -# 104| r0_34(glval) = VariableAddress[y] : -# 104| mu0_35(int) = Store : r0_34, r0_30 -# 105| v0_36(void) = NoOp : -# 98| v0_37(void) = ReturnVoid : -# 98| v0_38(void) = UnmodeledUse : mu* -# 98| v0_39(void) = ExitFunction : +# 98| r0_2(glval) = VariableAddress[x] : +# 98| mu0_3(int) = InitializeParameter[x] : r0_2 +# 99| r0_4(glval) = VariableAddress[y] : +# 99| mu0_5(int) = Uninitialized : r0_4 +# 101| r0_6(glval) = VariableAddress[x] : +# 101| r0_7(int) = Load : r0_6, mu0_1 +# 101| r0_8(int) = Constant[1] : +# 101| r0_9(int) = Add : r0_7, r0_8 +# 101| mu0_10(int) = Store : r0_6, r0_9 +# 101| r0_11(glval) = VariableAddress[y] : +# 101| mu0_12(int) = Store : r0_11, r0_9 +# 102| r0_13(glval) = VariableAddress[x] : +# 102| r0_14(int) = Load : r0_13, mu0_1 +# 102| r0_15(int) = Constant[1] : +# 102| r0_16(int) = Sub : r0_14, r0_15 +# 102| mu0_17(int) = Store : r0_13, r0_16 +# 102| r0_18(glval) = VariableAddress[y] : +# 102| mu0_19(int) = Store : r0_18, r0_16 +# 103| r0_20(glval) = VariableAddress[x] : +# 103| r0_21(int) = Load : r0_20, mu0_1 +# 103| r0_22(int) = Constant[1] : +# 103| r0_23(int) = Add : r0_21, r0_22 +# 103| mu0_24(int) = Store : r0_20, r0_23 +# 103| r0_25(glval) = VariableAddress[y] : +# 103| mu0_26(int) = Store : r0_25, r0_21 +# 104| r0_27(glval) = VariableAddress[x] : +# 104| r0_28(int) = Load : r0_27, mu0_1 +# 104| r0_29(int) = Constant[1] : +# 104| r0_30(int) = Sub : r0_28, r0_29 +# 104| mu0_31(int) = Store : r0_27, r0_30 +# 104| r0_32(glval) = VariableAddress[y] : +# 104| mu0_33(int) = Store : r0_32, r0_28 +# 105| v0_34(void) = NoOp : +# 98| v0_35(void) = ReturnVoid : +# 98| v0_36(void) = UnmodeledUse : mu* +# 98| v0_37(void) = ExitFunction : # 107| IntegerCrement_LValue(int) -> void # 107| Block 0 # 107| v0_0(void) = EnterFunction : # 107| mu0_1(unknown) = UnmodeledDefinition : -# 107| r0_2(int) = InitializeParameter[x] : -# 107| r0_3(glval) = VariableAddress[x] : -# 107| mu0_4(int) = Store : r0_3, r0_2 -# 108| r0_5(glval) = VariableAddress[p] : -# 108| r0_6(int *) = Uninitialized : -# 108| mu0_7(int *) = Store : r0_5, r0_6 -# 110| r0_8(glval) = VariableAddress[x] : -# 110| r0_9(int) = Load : r0_8, mu0_1 -# 110| r0_10(int) = Constant[1] : -# 110| r0_11(int) = Add : r0_9, r0_10 -# 110| mu0_12(int) = Store : r0_8, r0_11 -# 110| r0_13(glval) = VariableAddress[p] : -# 110| mu0_14(int *) = Store : r0_13, r0_8 -# 111| r0_15(glval) = VariableAddress[x] : -# 111| r0_16(int) = Load : r0_15, mu0_1 -# 111| r0_17(int) = Constant[1] : -# 111| r0_18(int) = Sub : r0_16, r0_17 -# 111| mu0_19(int) = Store : r0_15, r0_18 -# 111| r0_20(glval) = VariableAddress[p] : -# 111| mu0_21(int *) = Store : r0_20, r0_15 -# 112| v0_22(void) = NoOp : -# 107| v0_23(void) = ReturnVoid : -# 107| v0_24(void) = UnmodeledUse : mu* -# 107| v0_25(void) = ExitFunction : +# 107| r0_2(glval) = VariableAddress[x] : +# 107| mu0_3(int) = InitializeParameter[x] : r0_2 +# 108| r0_4(glval) = VariableAddress[p] : +# 108| mu0_5(int *) = Uninitialized : r0_4 +# 110| r0_6(glval) = VariableAddress[x] : +# 110| r0_7(int) = Load : r0_6, mu0_1 +# 110| r0_8(int) = Constant[1] : +# 110| r0_9(int) = Add : r0_7, r0_8 +# 110| mu0_10(int) = Store : r0_6, r0_9 +# 110| r0_11(glval) = VariableAddress[p] : +# 110| mu0_12(int *) = Store : r0_11, r0_6 +# 111| r0_13(glval) = VariableAddress[x] : +# 111| r0_14(int) = Load : r0_13, mu0_1 +# 111| r0_15(int) = Constant[1] : +# 111| r0_16(int) = Sub : r0_14, r0_15 +# 111| mu0_17(int) = Store : r0_13, r0_16 +# 111| r0_18(glval) = VariableAddress[p] : +# 111| mu0_19(int *) = Store : r0_18, r0_13 +# 112| v0_20(void) = NoOp : +# 107| v0_21(void) = ReturnVoid : +# 107| v0_22(void) = UnmodeledUse : mu* +# 107| v0_23(void) = ExitFunction : # 114| FloatOps(double, double) -> void # 114| Block 0 # 114| v0_0(void) = EnterFunction : # 114| mu0_1(unknown) = UnmodeledDefinition : -# 114| r0_2(double) = InitializeParameter[x] : -# 114| r0_3(glval) = VariableAddress[x] : -# 114| mu0_4(double) = Store : r0_3, r0_2 -# 114| r0_5(double) = InitializeParameter[y] : -# 114| r0_6(glval) = VariableAddress[y] : -# 114| mu0_7(double) = Store : r0_6, r0_5 -# 115| r0_8(glval) = VariableAddress[z] : -# 115| r0_9(double) = Uninitialized : -# 115| mu0_10(double) = Store : r0_8, r0_9 -# 117| r0_11(glval) = VariableAddress[x] : -# 117| r0_12(double) = Load : r0_11, mu0_1 -# 117| r0_13(glval) = VariableAddress[y] : -# 117| r0_14(double) = Load : r0_13, mu0_1 -# 117| r0_15(double) = Add : r0_12, r0_14 -# 117| r0_16(glval) = VariableAddress[z] : -# 117| mu0_17(double) = Store : r0_16, r0_15 -# 118| r0_18(glval) = VariableAddress[x] : -# 118| r0_19(double) = Load : r0_18, mu0_1 -# 118| r0_20(glval) = VariableAddress[y] : -# 118| r0_21(double) = Load : r0_20, mu0_1 -# 118| r0_22(double) = Sub : r0_19, r0_21 -# 118| r0_23(glval) = VariableAddress[z] : -# 118| mu0_24(double) = Store : r0_23, r0_22 -# 119| r0_25(glval) = VariableAddress[x] : -# 119| r0_26(double) = Load : r0_25, mu0_1 -# 119| r0_27(glval) = VariableAddress[y] : -# 119| r0_28(double) = Load : r0_27, mu0_1 -# 119| r0_29(double) = Mul : r0_26, r0_28 -# 119| r0_30(glval) = VariableAddress[z] : -# 119| mu0_31(double) = Store : r0_30, r0_29 -# 120| r0_32(glval) = VariableAddress[x] : -# 120| r0_33(double) = Load : r0_32, mu0_1 -# 120| r0_34(glval) = VariableAddress[y] : -# 120| r0_35(double) = Load : r0_34, mu0_1 -# 120| r0_36(double) = Div : r0_33, r0_35 -# 120| r0_37(glval) = VariableAddress[z] : -# 120| mu0_38(double) = Store : r0_37, r0_36 -# 122| r0_39(glval) = VariableAddress[x] : -# 122| r0_40(double) = Load : r0_39, mu0_1 -# 122| r0_41(glval) = VariableAddress[z] : -# 122| mu0_42(double) = Store : r0_41, r0_40 -# 124| r0_43(glval) = VariableAddress[x] : -# 124| r0_44(double) = Load : r0_43, mu0_1 -# 124| r0_45(glval) = VariableAddress[z] : -# 124| r0_46(double) = Load : r0_45, mu0_1 -# 124| r0_47(double) = Add : r0_46, r0_44 -# 124| mu0_48(double) = Store : r0_45, r0_47 -# 125| r0_49(glval) = VariableAddress[x] : -# 125| r0_50(double) = Load : r0_49, mu0_1 -# 125| r0_51(glval) = VariableAddress[z] : -# 125| r0_52(double) = Load : r0_51, mu0_1 -# 125| r0_53(double) = Sub : r0_52, r0_50 -# 125| mu0_54(double) = Store : r0_51, r0_53 -# 126| r0_55(glval) = VariableAddress[x] : -# 126| r0_56(double) = Load : r0_55, mu0_1 -# 126| r0_57(glval) = VariableAddress[z] : -# 126| r0_58(double) = Load : r0_57, mu0_1 -# 126| r0_59(double) = Mul : r0_58, r0_56 -# 126| mu0_60(double) = Store : r0_57, r0_59 -# 127| r0_61(glval) = VariableAddress[x] : -# 127| r0_62(double) = Load : r0_61, mu0_1 -# 127| r0_63(glval) = VariableAddress[z] : -# 127| r0_64(double) = Load : r0_63, mu0_1 -# 127| r0_65(double) = Div : r0_64, r0_62 -# 127| mu0_66(double) = Store : r0_63, r0_65 -# 129| r0_67(glval) = VariableAddress[x] : -# 129| r0_68(double) = Load : r0_67, mu0_1 -# 129| r0_69(double) = CopyValue : r0_68 -# 129| r0_70(glval) = VariableAddress[z] : -# 129| mu0_71(double) = Store : r0_70, r0_69 -# 130| r0_72(glval) = VariableAddress[x] : -# 130| r0_73(double) = Load : r0_72, mu0_1 -# 130| r0_74(double) = Negate : r0_73 -# 130| r0_75(glval) = VariableAddress[z] : -# 130| mu0_76(double) = Store : r0_75, r0_74 -# 131| v0_77(void) = NoOp : -# 114| v0_78(void) = ReturnVoid : -# 114| v0_79(void) = UnmodeledUse : mu* -# 114| v0_80(void) = ExitFunction : +# 114| r0_2(glval) = VariableAddress[x] : +# 114| mu0_3(double) = InitializeParameter[x] : r0_2 +# 114| r0_4(glval) = VariableAddress[y] : +# 114| mu0_5(double) = InitializeParameter[y] : r0_4 +# 115| r0_6(glval) = VariableAddress[z] : +# 115| mu0_7(double) = Uninitialized : r0_6 +# 117| r0_8(glval) = VariableAddress[x] : +# 117| r0_9(double) = Load : r0_8, mu0_1 +# 117| r0_10(glval) = VariableAddress[y] : +# 117| r0_11(double) = Load : r0_10, mu0_1 +# 117| r0_12(double) = Add : r0_9, r0_11 +# 117| r0_13(glval) = VariableAddress[z] : +# 117| mu0_14(double) = Store : r0_13, r0_12 +# 118| r0_15(glval) = VariableAddress[x] : +# 118| r0_16(double) = Load : r0_15, mu0_1 +# 118| r0_17(glval) = VariableAddress[y] : +# 118| r0_18(double) = Load : r0_17, mu0_1 +# 118| r0_19(double) = Sub : r0_16, r0_18 +# 118| r0_20(glval) = VariableAddress[z] : +# 118| mu0_21(double) = Store : r0_20, r0_19 +# 119| r0_22(glval) = VariableAddress[x] : +# 119| r0_23(double) = Load : r0_22, mu0_1 +# 119| r0_24(glval) = VariableAddress[y] : +# 119| r0_25(double) = Load : r0_24, mu0_1 +# 119| r0_26(double) = Mul : r0_23, r0_25 +# 119| r0_27(glval) = VariableAddress[z] : +# 119| mu0_28(double) = Store : r0_27, r0_26 +# 120| r0_29(glval) = VariableAddress[x] : +# 120| r0_30(double) = Load : r0_29, mu0_1 +# 120| r0_31(glval) = VariableAddress[y] : +# 120| r0_32(double) = Load : r0_31, mu0_1 +# 120| r0_33(double) = Div : r0_30, r0_32 +# 120| r0_34(glval) = VariableAddress[z] : +# 120| mu0_35(double) = Store : r0_34, r0_33 +# 122| r0_36(glval) = VariableAddress[x] : +# 122| r0_37(double) = Load : r0_36, mu0_1 +# 122| r0_38(glval) = VariableAddress[z] : +# 122| mu0_39(double) = Store : r0_38, r0_37 +# 124| r0_40(glval) = VariableAddress[x] : +# 124| r0_41(double) = Load : r0_40, mu0_1 +# 124| r0_42(glval) = VariableAddress[z] : +# 124| r0_43(double) = Load : r0_42, mu0_1 +# 124| r0_44(double) = Add : r0_43, r0_41 +# 124| mu0_45(double) = Store : r0_42, r0_44 +# 125| r0_46(glval) = VariableAddress[x] : +# 125| r0_47(double) = Load : r0_46, mu0_1 +# 125| r0_48(glval) = VariableAddress[z] : +# 125| r0_49(double) = Load : r0_48, mu0_1 +# 125| r0_50(double) = Sub : r0_49, r0_47 +# 125| mu0_51(double) = Store : r0_48, r0_50 +# 126| r0_52(glval) = VariableAddress[x] : +# 126| r0_53(double) = Load : r0_52, mu0_1 +# 126| r0_54(glval) = VariableAddress[z] : +# 126| r0_55(double) = Load : r0_54, mu0_1 +# 126| r0_56(double) = Mul : r0_55, r0_53 +# 126| mu0_57(double) = Store : r0_54, r0_56 +# 127| r0_58(glval) = VariableAddress[x] : +# 127| r0_59(double) = Load : r0_58, mu0_1 +# 127| r0_60(glval) = VariableAddress[z] : +# 127| r0_61(double) = Load : r0_60, mu0_1 +# 127| r0_62(double) = Div : r0_61, r0_59 +# 127| mu0_63(double) = Store : r0_60, r0_62 +# 129| r0_64(glval) = VariableAddress[x] : +# 129| r0_65(double) = Load : r0_64, mu0_1 +# 129| r0_66(double) = CopyValue : r0_65 +# 129| r0_67(glval) = VariableAddress[z] : +# 129| mu0_68(double) = Store : r0_67, r0_66 +# 130| r0_69(glval) = VariableAddress[x] : +# 130| r0_70(double) = Load : r0_69, mu0_1 +# 130| r0_71(double) = Negate : r0_70 +# 130| r0_72(glval) = VariableAddress[z] : +# 130| mu0_73(double) = Store : r0_72, r0_71 +# 131| v0_74(void) = NoOp : +# 114| v0_75(void) = ReturnVoid : +# 114| v0_76(void) = UnmodeledUse : mu* +# 114| v0_77(void) = ExitFunction : # 133| FloatCompare(double, double) -> void # 133| Block 0 # 133| v0_0(void) = EnterFunction : # 133| mu0_1(unknown) = UnmodeledDefinition : -# 133| r0_2(double) = InitializeParameter[x] : -# 133| r0_3(glval) = VariableAddress[x] : -# 133| mu0_4(double) = Store : r0_3, r0_2 -# 133| r0_5(double) = InitializeParameter[y] : -# 133| r0_6(glval) = VariableAddress[y] : -# 133| mu0_7(double) = Store : r0_6, r0_5 -# 134| r0_8(glval) = VariableAddress[b] : -# 134| r0_9(bool) = Uninitialized : -# 134| mu0_10(bool) = Store : r0_8, r0_9 -# 136| r0_11(glval) = VariableAddress[x] : -# 136| r0_12(double) = Load : r0_11, mu0_1 -# 136| r0_13(glval) = VariableAddress[y] : -# 136| r0_14(double) = Load : r0_13, mu0_1 -# 136| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 136| r0_16(glval) = VariableAddress[b] : -# 136| mu0_17(bool) = Store : r0_16, r0_15 -# 137| r0_18(glval) = VariableAddress[x] : -# 137| r0_19(double) = Load : r0_18, mu0_1 -# 137| r0_20(glval) = VariableAddress[y] : -# 137| r0_21(double) = Load : r0_20, mu0_1 -# 137| r0_22(bool) = CompareNE : r0_19, r0_21 -# 137| r0_23(glval) = VariableAddress[b] : -# 137| mu0_24(bool) = Store : r0_23, r0_22 -# 138| r0_25(glval) = VariableAddress[x] : -# 138| r0_26(double) = Load : r0_25, mu0_1 -# 138| r0_27(glval) = VariableAddress[y] : -# 138| r0_28(double) = Load : r0_27, mu0_1 -# 138| r0_29(bool) = CompareLT : r0_26, r0_28 -# 138| r0_30(glval) = VariableAddress[b] : -# 138| mu0_31(bool) = Store : r0_30, r0_29 -# 139| r0_32(glval) = VariableAddress[x] : -# 139| r0_33(double) = Load : r0_32, mu0_1 -# 139| r0_34(glval) = VariableAddress[y] : -# 139| r0_35(double) = Load : r0_34, mu0_1 -# 139| r0_36(bool) = CompareGT : r0_33, r0_35 -# 139| r0_37(glval) = VariableAddress[b] : -# 139| mu0_38(bool) = Store : r0_37, r0_36 -# 140| r0_39(glval) = VariableAddress[x] : -# 140| r0_40(double) = Load : r0_39, mu0_1 -# 140| r0_41(glval) = VariableAddress[y] : -# 140| r0_42(double) = Load : r0_41, mu0_1 -# 140| r0_43(bool) = CompareLE : r0_40, r0_42 -# 140| r0_44(glval) = VariableAddress[b] : -# 140| mu0_45(bool) = Store : r0_44, r0_43 -# 141| r0_46(glval) = VariableAddress[x] : -# 141| r0_47(double) = Load : r0_46, mu0_1 -# 141| r0_48(glval) = VariableAddress[y] : -# 141| r0_49(double) = Load : r0_48, mu0_1 -# 141| r0_50(bool) = CompareGE : r0_47, r0_49 -# 141| r0_51(glval) = VariableAddress[b] : -# 141| mu0_52(bool) = Store : r0_51, r0_50 -# 142| v0_53(void) = NoOp : -# 133| v0_54(void) = ReturnVoid : -# 133| v0_55(void) = UnmodeledUse : mu* -# 133| v0_56(void) = ExitFunction : +# 133| r0_2(glval) = VariableAddress[x] : +# 133| mu0_3(double) = InitializeParameter[x] : r0_2 +# 133| r0_4(glval) = VariableAddress[y] : +# 133| mu0_5(double) = InitializeParameter[y] : r0_4 +# 134| r0_6(glval) = VariableAddress[b] : +# 134| mu0_7(bool) = Uninitialized : r0_6 +# 136| r0_8(glval) = VariableAddress[x] : +# 136| r0_9(double) = Load : r0_8, mu0_1 +# 136| r0_10(glval) = VariableAddress[y] : +# 136| r0_11(double) = Load : r0_10, mu0_1 +# 136| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 136| r0_13(glval) = VariableAddress[b] : +# 136| mu0_14(bool) = Store : r0_13, r0_12 +# 137| r0_15(glval) = VariableAddress[x] : +# 137| r0_16(double) = Load : r0_15, mu0_1 +# 137| r0_17(glval) = VariableAddress[y] : +# 137| r0_18(double) = Load : r0_17, mu0_1 +# 137| r0_19(bool) = CompareNE : r0_16, r0_18 +# 137| r0_20(glval) = VariableAddress[b] : +# 137| mu0_21(bool) = Store : r0_20, r0_19 +# 138| r0_22(glval) = VariableAddress[x] : +# 138| r0_23(double) = Load : r0_22, mu0_1 +# 138| r0_24(glval) = VariableAddress[y] : +# 138| r0_25(double) = Load : r0_24, mu0_1 +# 138| r0_26(bool) = CompareLT : r0_23, r0_25 +# 138| r0_27(glval) = VariableAddress[b] : +# 138| mu0_28(bool) = Store : r0_27, r0_26 +# 139| r0_29(glval) = VariableAddress[x] : +# 139| r0_30(double) = Load : r0_29, mu0_1 +# 139| r0_31(glval) = VariableAddress[y] : +# 139| r0_32(double) = Load : r0_31, mu0_1 +# 139| r0_33(bool) = CompareGT : r0_30, r0_32 +# 139| r0_34(glval) = VariableAddress[b] : +# 139| mu0_35(bool) = Store : r0_34, r0_33 +# 140| r0_36(glval) = VariableAddress[x] : +# 140| r0_37(double) = Load : r0_36, mu0_1 +# 140| r0_38(glval) = VariableAddress[y] : +# 140| r0_39(double) = Load : r0_38, mu0_1 +# 140| r0_40(bool) = CompareLE : r0_37, r0_39 +# 140| r0_41(glval) = VariableAddress[b] : +# 140| mu0_42(bool) = Store : r0_41, r0_40 +# 141| r0_43(glval) = VariableAddress[x] : +# 141| r0_44(double) = Load : r0_43, mu0_1 +# 141| r0_45(glval) = VariableAddress[y] : +# 141| r0_46(double) = Load : r0_45, mu0_1 +# 141| r0_47(bool) = CompareGE : r0_44, r0_46 +# 141| r0_48(glval) = VariableAddress[b] : +# 141| mu0_49(bool) = Store : r0_48, r0_47 +# 142| v0_50(void) = NoOp : +# 133| v0_51(void) = ReturnVoid : +# 133| v0_52(void) = UnmodeledUse : mu* +# 133| v0_53(void) = ExitFunction : # 144| FloatCrement(float) -> void # 144| Block 0 # 144| v0_0(void) = EnterFunction : # 144| mu0_1(unknown) = UnmodeledDefinition : -# 144| r0_2(float) = InitializeParameter[x] : -# 144| r0_3(glval) = VariableAddress[x] : -# 144| mu0_4(float) = Store : r0_3, r0_2 -# 145| r0_5(glval) = VariableAddress[y] : -# 145| r0_6(float) = Uninitialized : -# 145| mu0_7(float) = Store : r0_5, r0_6 -# 147| r0_8(glval) = VariableAddress[x] : -# 147| r0_9(float) = Load : r0_8, mu0_1 -# 147| r0_10(float) = Constant[1.0] : -# 147| r0_11(float) = Add : r0_9, r0_10 -# 147| mu0_12(float) = Store : r0_8, r0_11 -# 147| r0_13(glval) = VariableAddress[y] : -# 147| mu0_14(float) = Store : r0_13, r0_11 -# 148| r0_15(glval) = VariableAddress[x] : -# 148| r0_16(float) = Load : r0_15, mu0_1 -# 148| r0_17(float) = Constant[1.0] : -# 148| r0_18(float) = Sub : r0_16, r0_17 -# 148| mu0_19(float) = Store : r0_15, r0_18 -# 148| r0_20(glval) = VariableAddress[y] : -# 148| mu0_21(float) = Store : r0_20, r0_18 -# 149| r0_22(glval) = VariableAddress[x] : -# 149| r0_23(float) = Load : r0_22, mu0_1 -# 149| r0_24(float) = Constant[1.0] : -# 149| r0_25(float) = Add : r0_23, r0_24 -# 149| mu0_26(float) = Store : r0_22, r0_25 -# 149| r0_27(glval) = VariableAddress[y] : -# 149| mu0_28(float) = Store : r0_27, r0_23 -# 150| r0_29(glval) = VariableAddress[x] : -# 150| r0_30(float) = Load : r0_29, mu0_1 -# 150| r0_31(float) = Constant[1.0] : -# 150| r0_32(float) = Sub : r0_30, r0_31 -# 150| mu0_33(float) = Store : r0_29, r0_32 -# 150| r0_34(glval) = VariableAddress[y] : -# 150| mu0_35(float) = Store : r0_34, r0_30 -# 151| v0_36(void) = NoOp : -# 144| v0_37(void) = ReturnVoid : -# 144| v0_38(void) = UnmodeledUse : mu* -# 144| v0_39(void) = ExitFunction : +# 144| r0_2(glval) = VariableAddress[x] : +# 144| mu0_3(float) = InitializeParameter[x] : r0_2 +# 145| r0_4(glval) = VariableAddress[y] : +# 145| mu0_5(float) = Uninitialized : r0_4 +# 147| r0_6(glval) = VariableAddress[x] : +# 147| r0_7(float) = Load : r0_6, mu0_1 +# 147| r0_8(float) = Constant[1.0] : +# 147| r0_9(float) = Add : r0_7, r0_8 +# 147| mu0_10(float) = Store : r0_6, r0_9 +# 147| r0_11(glval) = VariableAddress[y] : +# 147| mu0_12(float) = Store : r0_11, r0_9 +# 148| r0_13(glval) = VariableAddress[x] : +# 148| r0_14(float) = Load : r0_13, mu0_1 +# 148| r0_15(float) = Constant[1.0] : +# 148| r0_16(float) = Sub : r0_14, r0_15 +# 148| mu0_17(float) = Store : r0_13, r0_16 +# 148| r0_18(glval) = VariableAddress[y] : +# 148| mu0_19(float) = Store : r0_18, r0_16 +# 149| r0_20(glval) = VariableAddress[x] : +# 149| r0_21(float) = Load : r0_20, mu0_1 +# 149| r0_22(float) = Constant[1.0] : +# 149| r0_23(float) = Add : r0_21, r0_22 +# 149| mu0_24(float) = Store : r0_20, r0_23 +# 149| r0_25(glval) = VariableAddress[y] : +# 149| mu0_26(float) = Store : r0_25, r0_21 +# 150| r0_27(glval) = VariableAddress[x] : +# 150| r0_28(float) = Load : r0_27, mu0_1 +# 150| r0_29(float) = Constant[1.0] : +# 150| r0_30(float) = Sub : r0_28, r0_29 +# 150| mu0_31(float) = Store : r0_27, r0_30 +# 150| r0_32(glval) = VariableAddress[y] : +# 150| mu0_33(float) = Store : r0_32, r0_28 +# 151| v0_34(void) = NoOp : +# 144| v0_35(void) = ReturnVoid : +# 144| v0_36(void) = UnmodeledUse : mu* +# 144| v0_37(void) = ExitFunction : # 153| PointerOps(int *, int) -> void # 153| Block 0 # 153| v0_0(void) = EnterFunction : # 153| mu0_1(unknown) = UnmodeledDefinition : -# 153| r0_2(int *) = InitializeParameter[p] : -# 153| r0_3(glval) = VariableAddress[p] : -# 153| mu0_4(int *) = Store : r0_3, r0_2 -# 153| r0_5(int) = InitializeParameter[i] : -# 153| r0_6(glval) = VariableAddress[i] : -# 153| mu0_7(int) = Store : r0_6, r0_5 -# 154| r0_8(glval) = VariableAddress[q] : -# 154| r0_9(int *) = Uninitialized : -# 154| mu0_10(int *) = Store : r0_8, r0_9 -# 155| r0_11(glval) = VariableAddress[b] : -# 155| r0_12(bool) = Uninitialized : -# 155| mu0_13(bool) = Store : r0_11, r0_12 -# 157| r0_14(glval) = VariableAddress[p] : -# 157| r0_15(int *) = Load : r0_14, mu0_1 -# 157| r0_16(glval) = VariableAddress[i] : -# 157| r0_17(int) = Load : r0_16, mu0_1 -# 157| r0_18(int *) = PointerAdd[4] : r0_15, r0_17 -# 157| r0_19(glval) = VariableAddress[q] : -# 157| mu0_20(int *) = Store : r0_19, r0_18 -# 158| r0_21(glval) = VariableAddress[i] : -# 158| r0_22(int) = Load : r0_21, mu0_1 -# 158| r0_23(glval) = VariableAddress[p] : -# 158| r0_24(int *) = Load : r0_23, mu0_1 -# 158| r0_25(int *) = PointerAdd[4] : r0_24, r0_22 -# 158| r0_26(glval) = VariableAddress[q] : -# 158| mu0_27(int *) = Store : r0_26, r0_25 -# 159| r0_28(glval) = VariableAddress[p] : -# 159| r0_29(int *) = Load : r0_28, mu0_1 -# 159| r0_30(glval) = VariableAddress[i] : -# 159| r0_31(int) = Load : r0_30, mu0_1 -# 159| r0_32(int *) = PointerSub[4] : r0_29, r0_31 -# 159| r0_33(glval) = VariableAddress[q] : -# 159| mu0_34(int *) = Store : r0_33, r0_32 -# 160| r0_35(glval) = VariableAddress[p] : -# 160| r0_36(int *) = Load : r0_35, mu0_1 -# 160| r0_37(glval) = VariableAddress[q] : -# 160| r0_38(int *) = Load : r0_37, mu0_1 -# 160| r0_39(long) = PointerDiff[4] : r0_36, r0_38 -# 160| r0_40(int) = Convert : r0_39 -# 160| r0_41(glval) = VariableAddress[i] : -# 160| mu0_42(int) = Store : r0_41, r0_40 -# 162| r0_43(glval) = VariableAddress[p] : -# 162| r0_44(int *) = Load : r0_43, mu0_1 -# 162| r0_45(glval) = VariableAddress[q] : -# 162| mu0_46(int *) = Store : r0_45, r0_44 -# 164| r0_47(glval) = VariableAddress[i] : -# 164| r0_48(int) = Load : r0_47, mu0_1 -# 164| r0_49(glval) = VariableAddress[q] : -# 164| r0_50(int *) = Load : r0_49, mu0_1 -# 164| r0_51(int *) = PointerAdd[4] : r0_50, r0_48 -# 164| mu0_52(int *) = Store : r0_49, r0_51 -# 165| r0_53(glval) = VariableAddress[i] : -# 165| r0_54(int) = Load : r0_53, mu0_1 -# 165| r0_55(glval) = VariableAddress[q] : -# 165| r0_56(int *) = Load : r0_55, mu0_1 -# 165| r0_57(int *) = PointerSub[4] : r0_56, r0_54 -# 165| mu0_58(int *) = Store : r0_55, r0_57 -# 167| r0_59(glval) = VariableAddress[p] : -# 167| r0_60(int *) = Load : r0_59, mu0_1 -# 167| r0_61(int *) = Constant[0] : -# 167| r0_62(bool) = CompareNE : r0_60, r0_61 -# 167| r0_63(glval) = VariableAddress[b] : -# 167| mu0_64(bool) = Store : r0_63, r0_62 -# 168| r0_65(glval) = VariableAddress[p] : -# 168| r0_66(int *) = Load : r0_65, mu0_1 -# 168| r0_67(int *) = Constant[0] : -# 168| r0_68(bool) = CompareNE : r0_66, r0_67 -# 168| r0_69(bool) = LogicalNot : r0_68 -# 168| r0_70(glval) = VariableAddress[b] : -# 168| mu0_71(bool) = Store : r0_70, r0_69 -# 169| v0_72(void) = NoOp : -# 153| v0_73(void) = ReturnVoid : -# 153| v0_74(void) = UnmodeledUse : mu* -# 153| v0_75(void) = ExitFunction : +# 153| r0_2(glval) = VariableAddress[p] : +# 153| mu0_3(int *) = InitializeParameter[p] : r0_2 +# 153| r0_4(glval) = VariableAddress[i] : +# 153| mu0_5(int) = InitializeParameter[i] : r0_4 +# 154| r0_6(glval) = VariableAddress[q] : +# 154| mu0_7(int *) = Uninitialized : r0_6 +# 155| r0_8(glval) = VariableAddress[b] : +# 155| mu0_9(bool) = Uninitialized : r0_8 +# 157| r0_10(glval) = VariableAddress[p] : +# 157| r0_11(int *) = Load : r0_10, mu0_1 +# 157| r0_12(glval) = VariableAddress[i] : +# 157| r0_13(int) = Load : r0_12, mu0_1 +# 157| r0_14(int *) = PointerAdd[4] : r0_11, r0_13 +# 157| r0_15(glval) = VariableAddress[q] : +# 157| mu0_16(int *) = Store : r0_15, r0_14 +# 158| r0_17(glval) = VariableAddress[i] : +# 158| r0_18(int) = Load : r0_17, mu0_1 +# 158| r0_19(glval) = VariableAddress[p] : +# 158| r0_20(int *) = Load : r0_19, mu0_1 +# 158| r0_21(int *) = PointerAdd[4] : r0_20, r0_18 +# 158| r0_22(glval) = VariableAddress[q] : +# 158| mu0_23(int *) = Store : r0_22, r0_21 +# 159| r0_24(glval) = VariableAddress[p] : +# 159| r0_25(int *) = Load : r0_24, mu0_1 +# 159| r0_26(glval) = VariableAddress[i] : +# 159| r0_27(int) = Load : r0_26, mu0_1 +# 159| r0_28(int *) = PointerSub[4] : r0_25, r0_27 +# 159| r0_29(glval) = VariableAddress[q] : +# 159| mu0_30(int *) = Store : r0_29, r0_28 +# 160| r0_31(glval) = VariableAddress[p] : +# 160| r0_32(int *) = Load : r0_31, mu0_1 +# 160| r0_33(glval) = VariableAddress[q] : +# 160| r0_34(int *) = Load : r0_33, mu0_1 +# 160| r0_35(long) = PointerDiff[4] : r0_32, r0_34 +# 160| r0_36(int) = Convert : r0_35 +# 160| r0_37(glval) = VariableAddress[i] : +# 160| mu0_38(int) = Store : r0_37, r0_36 +# 162| r0_39(glval) = VariableAddress[p] : +# 162| r0_40(int *) = Load : r0_39, mu0_1 +# 162| r0_41(glval) = VariableAddress[q] : +# 162| mu0_42(int *) = Store : r0_41, r0_40 +# 164| r0_43(glval) = VariableAddress[i] : +# 164| r0_44(int) = Load : r0_43, mu0_1 +# 164| r0_45(glval) = VariableAddress[q] : +# 164| r0_46(int *) = Load : r0_45, mu0_1 +# 164| r0_47(int *) = PointerAdd[4] : r0_46, r0_44 +# 164| mu0_48(int *) = Store : r0_45, r0_47 +# 165| r0_49(glval) = VariableAddress[i] : +# 165| r0_50(int) = Load : r0_49, mu0_1 +# 165| r0_51(glval) = VariableAddress[q] : +# 165| r0_52(int *) = Load : r0_51, mu0_1 +# 165| r0_53(int *) = PointerSub[4] : r0_52, r0_50 +# 165| mu0_54(int *) = Store : r0_51, r0_53 +# 167| r0_55(glval) = VariableAddress[p] : +# 167| r0_56(int *) = Load : r0_55, mu0_1 +# 167| r0_57(int *) = Constant[0] : +# 167| r0_58(bool) = CompareNE : r0_56, r0_57 +# 167| r0_59(glval) = VariableAddress[b] : +# 167| mu0_60(bool) = Store : r0_59, r0_58 +# 168| r0_61(glval) = VariableAddress[p] : +# 168| r0_62(int *) = Load : r0_61, mu0_1 +# 168| r0_63(int *) = Constant[0] : +# 168| r0_64(bool) = CompareNE : r0_62, r0_63 +# 168| r0_65(bool) = LogicalNot : r0_64 +# 168| r0_66(glval) = VariableAddress[b] : +# 168| mu0_67(bool) = Store : r0_66, r0_65 +# 169| v0_68(void) = NoOp : +# 153| v0_69(void) = ReturnVoid : +# 153| v0_70(void) = UnmodeledUse : mu* +# 153| v0_71(void) = ExitFunction : # 171| ArrayAccess(int *, int) -> void # 171| Block 0 # 171| v0_0(void) = EnterFunction : # 171| mu0_1(unknown) = UnmodeledDefinition : -# 171| r0_2(int *) = InitializeParameter[p] : -# 171| r0_3(glval) = VariableAddress[p] : -# 171| mu0_4(int *) = Store : r0_3, r0_2 -# 171| r0_5(int) = InitializeParameter[i] : -# 171| r0_6(glval) = VariableAddress[i] : -# 171| mu0_7(int) = Store : r0_6, r0_5 -# 172| r0_8(glval) = VariableAddress[x] : -# 172| r0_9(int) = Uninitialized : -# 172| mu0_10(int) = Store : r0_8, r0_9 -# 174| r0_11(glval) = VariableAddress[p] : -# 174| r0_12(int *) = Load : r0_11, mu0_1 -# 174| r0_13(glval) = VariableAddress[i] : -# 174| r0_14(int) = Load : r0_13, mu0_1 -# 174| r0_15(int *) = PointerAdd[4] : r0_12, r0_14 -# 174| r0_16(int) = Load : r0_15, mu0_1 -# 174| r0_17(glval) = VariableAddress[x] : -# 174| mu0_18(int) = Store : r0_17, r0_16 -# 175| r0_19(glval) = VariableAddress[p] : -# 175| r0_20(int *) = Load : r0_19, mu0_1 -# 175| r0_21(glval) = VariableAddress[i] : -# 175| r0_22(int) = Load : r0_21, mu0_1 -# 175| r0_23(int *) = PointerAdd[4] : r0_20, r0_22 -# 175| r0_24(int) = Load : r0_23, mu0_1 -# 175| r0_25(glval) = VariableAddress[x] : -# 175| mu0_26(int) = Store : r0_25, r0_24 -# 177| r0_27(glval) = VariableAddress[x] : -# 177| r0_28(int) = Load : r0_27, mu0_1 -# 177| r0_29(glval) = VariableAddress[p] : -# 177| r0_30(int *) = Load : r0_29, mu0_1 -# 177| r0_31(glval) = VariableAddress[i] : -# 177| r0_32(int) = Load : r0_31, mu0_1 -# 177| r0_33(int *) = PointerAdd[4] : r0_30, r0_32 -# 177| mu0_34(int) = Store : r0_33, r0_28 -# 178| r0_35(glval) = VariableAddress[x] : -# 178| r0_36(int) = Load : r0_35, mu0_1 -# 178| r0_37(glval) = VariableAddress[p] : -# 178| r0_38(int *) = Load : r0_37, mu0_1 -# 178| r0_39(glval) = VariableAddress[i] : -# 178| r0_40(int) = Load : r0_39, mu0_1 -# 178| r0_41(int *) = PointerAdd[4] : r0_38, r0_40 -# 178| mu0_42(int) = Store : r0_41, r0_36 -# 180| r0_43(glval) = VariableAddress[a] : -# 180| r0_44(int[10]) = Uninitialized : -# 180| mu0_45(int[10]) = Store : r0_43, r0_44 -# 181| r0_46(glval) = VariableAddress[a] : -# 181| r0_47(int *) = Convert : r0_46 -# 181| r0_48(glval) = VariableAddress[i] : -# 181| r0_49(int) = Load : r0_48, mu0_1 -# 181| r0_50(int *) = PointerAdd[4] : r0_47, r0_49 -# 181| r0_51(int) = Load : r0_50, mu0_1 -# 181| r0_52(glval) = VariableAddress[x] : -# 181| mu0_53(int) = Store : r0_52, r0_51 -# 182| r0_54(glval) = VariableAddress[a] : -# 182| r0_55(int *) = Convert : r0_54 -# 182| r0_56(glval) = VariableAddress[i] : -# 182| r0_57(int) = Load : r0_56, mu0_1 -# 182| r0_58(int *) = PointerAdd[4] : r0_55, r0_57 -# 182| r0_59(int) = Load : r0_58, mu0_1 -# 182| r0_60(glval) = VariableAddress[x] : -# 182| mu0_61(int) = Store : r0_60, r0_59 -# 183| r0_62(glval) = VariableAddress[x] : +# 171| r0_2(glval) = VariableAddress[p] : +# 171| mu0_3(int *) = InitializeParameter[p] : r0_2 +# 171| r0_4(glval) = VariableAddress[i] : +# 171| mu0_5(int) = InitializeParameter[i] : r0_4 +# 172| r0_6(glval) = VariableAddress[x] : +# 172| mu0_7(int) = Uninitialized : r0_6 +# 174| r0_8(glval) = VariableAddress[p] : +# 174| r0_9(int *) = Load : r0_8, mu0_1 +# 174| r0_10(glval) = VariableAddress[i] : +# 174| r0_11(int) = Load : r0_10, mu0_1 +# 174| r0_12(int *) = PointerAdd[4] : r0_9, r0_11 +# 174| r0_13(int) = Load : r0_12, mu0_1 +# 174| r0_14(glval) = VariableAddress[x] : +# 174| mu0_15(int) = Store : r0_14, r0_13 +# 175| r0_16(glval) = VariableAddress[p] : +# 175| r0_17(int *) = Load : r0_16, mu0_1 +# 175| r0_18(glval) = VariableAddress[i] : +# 175| r0_19(int) = Load : r0_18, mu0_1 +# 175| r0_20(int *) = PointerAdd[4] : r0_17, r0_19 +# 175| r0_21(int) = Load : r0_20, mu0_1 +# 175| r0_22(glval) = VariableAddress[x] : +# 175| mu0_23(int) = Store : r0_22, r0_21 +# 177| r0_24(glval) = VariableAddress[x] : +# 177| r0_25(int) = Load : r0_24, mu0_1 +# 177| r0_26(glval) = VariableAddress[p] : +# 177| r0_27(int *) = Load : r0_26, mu0_1 +# 177| r0_28(glval) = VariableAddress[i] : +# 177| r0_29(int) = Load : r0_28, mu0_1 +# 177| r0_30(int *) = PointerAdd[4] : r0_27, r0_29 +# 177| mu0_31(int) = Store : r0_30, r0_25 +# 178| r0_32(glval) = VariableAddress[x] : +# 178| r0_33(int) = Load : r0_32, mu0_1 +# 178| r0_34(glval) = VariableAddress[p] : +# 178| r0_35(int *) = Load : r0_34, mu0_1 +# 178| r0_36(glval) = VariableAddress[i] : +# 178| r0_37(int) = Load : r0_36, mu0_1 +# 178| r0_38(int *) = PointerAdd[4] : r0_35, r0_37 +# 178| mu0_39(int) = Store : r0_38, r0_33 +# 180| r0_40(glval) = VariableAddress[a] : +# 180| mu0_41(int[10]) = Uninitialized : r0_40 +# 181| r0_42(glval) = VariableAddress[a] : +# 181| r0_43(int *) = Convert : r0_42 +# 181| r0_44(glval) = VariableAddress[i] : +# 181| r0_45(int) = Load : r0_44, mu0_1 +# 181| r0_46(int *) = PointerAdd[4] : r0_43, r0_45 +# 181| r0_47(int) = Load : r0_46, mu0_1 +# 181| r0_48(glval) = VariableAddress[x] : +# 181| mu0_49(int) = Store : r0_48, r0_47 +# 182| r0_50(glval) = VariableAddress[a] : +# 182| r0_51(int *) = Convert : r0_50 +# 182| r0_52(glval) = VariableAddress[i] : +# 182| r0_53(int) = Load : r0_52, mu0_1 +# 182| r0_54(int *) = PointerAdd[4] : r0_51, r0_53 +# 182| r0_55(int) = Load : r0_54, mu0_1 +# 182| r0_56(glval) = VariableAddress[x] : +# 182| mu0_57(int) = Store : r0_56, r0_55 +# 183| r0_58(glval) = VariableAddress[x] : +# 183| r0_59(int) = Load : r0_58, mu0_1 +# 183| r0_60(glval) = VariableAddress[a] : +# 183| r0_61(int *) = Convert : r0_60 +# 183| r0_62(glval) = VariableAddress[i] : # 183| r0_63(int) = Load : r0_62, mu0_1 -# 183| r0_64(glval) = VariableAddress[a] : -# 183| r0_65(int *) = Convert : r0_64 -# 183| r0_66(glval) = VariableAddress[i] : -# 183| r0_67(int) = Load : r0_66, mu0_1 -# 183| r0_68(int *) = PointerAdd[4] : r0_65, r0_67 -# 183| mu0_69(int) = Store : r0_68, r0_63 -# 184| r0_70(glval) = VariableAddress[x] : +# 183| r0_64(int *) = PointerAdd[4] : r0_61, r0_63 +# 183| mu0_65(int) = Store : r0_64, r0_59 +# 184| r0_66(glval) = VariableAddress[x] : +# 184| r0_67(int) = Load : r0_66, mu0_1 +# 184| r0_68(glval) = VariableAddress[a] : +# 184| r0_69(int *) = Convert : r0_68 +# 184| r0_70(glval) = VariableAddress[i] : # 184| r0_71(int) = Load : r0_70, mu0_1 -# 184| r0_72(glval) = VariableAddress[a] : -# 184| r0_73(int *) = Convert : r0_72 -# 184| r0_74(glval) = VariableAddress[i] : -# 184| r0_75(int) = Load : r0_74, mu0_1 -# 184| r0_76(int *) = PointerAdd[4] : r0_73, r0_75 -# 184| mu0_77(int) = Store : r0_76, r0_71 -# 185| v0_78(void) = NoOp : -# 171| v0_79(void) = ReturnVoid : -# 171| v0_80(void) = UnmodeledUse : mu* -# 171| v0_81(void) = ExitFunction : +# 184| r0_72(int *) = PointerAdd[4] : r0_69, r0_71 +# 184| mu0_73(int) = Store : r0_72, r0_67 +# 185| v0_74(void) = NoOp : +# 171| v0_75(void) = ReturnVoid : +# 171| v0_76(void) = UnmodeledUse : mu* +# 171| v0_77(void) = ExitFunction : # 187| StringLiteral(int) -> void # 187| Block 0 # 187| v0_0(void) = EnterFunction : # 187| mu0_1(unknown) = UnmodeledDefinition : -# 187| r0_2(int) = InitializeParameter[i] : -# 187| r0_3(glval) = VariableAddress[i] : -# 187| mu0_4(int) = Store : r0_3, r0_2 -# 188| r0_5(glval) = VariableAddress[c] : -# 188| r0_6(glval) = StringConstant["Foo"] : -# 188| r0_7(char *) = Convert : r0_6 -# 188| r0_8(glval) = VariableAddress[i] : -# 188| r0_9(int) = Load : r0_8, mu0_1 -# 188| r0_10(char *) = PointerAdd[1] : r0_7, r0_9 -# 188| r0_11(char) = Load : r0_10, mu0_1 -# 188| mu0_12(char) = Store : r0_5, r0_11 -# 189| r0_13(glval) = VariableAddress[pwc] : -# 189| r0_14(glval) = StringConstant[L"Bar"] : +# 187| r0_2(glval) = VariableAddress[i] : +# 187| mu0_3(int) = InitializeParameter[i] : r0_2 +# 188| r0_4(glval) = VariableAddress[c] : +# 188| r0_5(glval) = StringConstant["Foo"] : +# 188| r0_6(char *) = Convert : r0_5 +# 188| r0_7(glval) = VariableAddress[i] : +# 188| r0_8(int) = Load : r0_7, mu0_1 +# 188| r0_9(char *) = PointerAdd[1] : r0_6, r0_8 +# 188| r0_10(char) = Load : r0_9, mu0_1 +# 188| mu0_11(char) = Store : r0_4, r0_10 +# 189| r0_12(glval) = VariableAddress[pwc] : +# 189| r0_13(glval) = StringConstant[L"Bar"] : +# 189| r0_14(wchar_t *) = Convert : r0_13 # 189| r0_15(wchar_t *) = Convert : r0_14 -# 189| r0_16(wchar_t *) = Convert : r0_15 -# 189| mu0_17(wchar_t *) = Store : r0_13, r0_16 -# 190| r0_18(glval) = VariableAddress[wc] : -# 190| r0_19(glval) = VariableAddress[pwc] : -# 190| r0_20(wchar_t *) = Load : r0_19, mu0_1 -# 190| r0_21(glval) = VariableAddress[i] : -# 190| r0_22(int) = Load : r0_21, mu0_1 -# 190| r0_23(wchar_t *) = PointerAdd[4] : r0_20, r0_22 -# 190| r0_24(wchar_t) = Load : r0_23, mu0_1 -# 190| mu0_25(wchar_t) = Store : r0_18, r0_24 -# 191| v0_26(void) = NoOp : -# 187| v0_27(void) = ReturnVoid : -# 187| v0_28(void) = UnmodeledUse : mu* -# 187| v0_29(void) = ExitFunction : +# 189| mu0_16(wchar_t *) = Store : r0_12, r0_15 +# 190| r0_17(glval) = VariableAddress[wc] : +# 190| r0_18(glval) = VariableAddress[pwc] : +# 190| r0_19(wchar_t *) = Load : r0_18, mu0_1 +# 190| r0_20(glval) = VariableAddress[i] : +# 190| r0_21(int) = Load : r0_20, mu0_1 +# 190| r0_22(wchar_t *) = PointerAdd[4] : r0_19, r0_21 +# 190| r0_23(wchar_t) = Load : r0_22, mu0_1 +# 190| mu0_24(wchar_t) = Store : r0_17, r0_23 +# 191| v0_25(void) = NoOp : +# 187| v0_26(void) = ReturnVoid : +# 187| v0_27(void) = UnmodeledUse : mu* +# 187| v0_28(void) = ExitFunction : # 193| PointerCompare(int *, int *) -> void # 193| Block 0 # 193| v0_0(void) = EnterFunction : # 193| mu0_1(unknown) = UnmodeledDefinition : -# 193| r0_2(int *) = InitializeParameter[p] : -# 193| r0_3(glval) = VariableAddress[p] : -# 193| mu0_4(int *) = Store : r0_3, r0_2 -# 193| r0_5(int *) = InitializeParameter[q] : -# 193| r0_6(glval) = VariableAddress[q] : -# 193| mu0_7(int *) = Store : r0_6, r0_5 -# 194| r0_8(glval) = VariableAddress[b] : -# 194| r0_9(bool) = Uninitialized : -# 194| mu0_10(bool) = Store : r0_8, r0_9 -# 196| r0_11(glval) = VariableAddress[p] : -# 196| r0_12(int *) = Load : r0_11, mu0_1 -# 196| r0_13(glval) = VariableAddress[q] : -# 196| r0_14(int *) = Load : r0_13, mu0_1 -# 196| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 196| r0_16(glval) = VariableAddress[b] : -# 196| mu0_17(bool) = Store : r0_16, r0_15 -# 197| r0_18(glval) = VariableAddress[p] : -# 197| r0_19(int *) = Load : r0_18, mu0_1 -# 197| r0_20(glval) = VariableAddress[q] : -# 197| r0_21(int *) = Load : r0_20, mu0_1 -# 197| r0_22(bool) = CompareNE : r0_19, r0_21 -# 197| r0_23(glval) = VariableAddress[b] : -# 197| mu0_24(bool) = Store : r0_23, r0_22 -# 198| r0_25(glval) = VariableAddress[p] : -# 198| r0_26(int *) = Load : r0_25, mu0_1 -# 198| r0_27(glval) = VariableAddress[q] : -# 198| r0_28(int *) = Load : r0_27, mu0_1 -# 198| r0_29(bool) = CompareLT : r0_26, r0_28 -# 198| r0_30(glval) = VariableAddress[b] : -# 198| mu0_31(bool) = Store : r0_30, r0_29 -# 199| r0_32(glval) = VariableAddress[p] : -# 199| r0_33(int *) = Load : r0_32, mu0_1 -# 199| r0_34(glval) = VariableAddress[q] : -# 199| r0_35(int *) = Load : r0_34, mu0_1 -# 199| r0_36(bool) = CompareGT : r0_33, r0_35 -# 199| r0_37(glval) = VariableAddress[b] : -# 199| mu0_38(bool) = Store : r0_37, r0_36 -# 200| r0_39(glval) = VariableAddress[p] : -# 200| r0_40(int *) = Load : r0_39, mu0_1 -# 200| r0_41(glval) = VariableAddress[q] : -# 200| r0_42(int *) = Load : r0_41, mu0_1 -# 200| r0_43(bool) = CompareLE : r0_40, r0_42 -# 200| r0_44(glval) = VariableAddress[b] : -# 200| mu0_45(bool) = Store : r0_44, r0_43 -# 201| r0_46(glval) = VariableAddress[p] : -# 201| r0_47(int *) = Load : r0_46, mu0_1 -# 201| r0_48(glval) = VariableAddress[q] : -# 201| r0_49(int *) = Load : r0_48, mu0_1 -# 201| r0_50(bool) = CompareGE : r0_47, r0_49 -# 201| r0_51(glval) = VariableAddress[b] : -# 201| mu0_52(bool) = Store : r0_51, r0_50 -# 202| v0_53(void) = NoOp : -# 193| v0_54(void) = ReturnVoid : -# 193| v0_55(void) = UnmodeledUse : mu* -# 193| v0_56(void) = ExitFunction : +# 193| r0_2(glval) = VariableAddress[p] : +# 193| mu0_3(int *) = InitializeParameter[p] : r0_2 +# 193| r0_4(glval) = VariableAddress[q] : +# 193| mu0_5(int *) = InitializeParameter[q] : r0_4 +# 194| r0_6(glval) = VariableAddress[b] : +# 194| mu0_7(bool) = Uninitialized : r0_6 +# 196| r0_8(glval) = VariableAddress[p] : +# 196| r0_9(int *) = Load : r0_8, mu0_1 +# 196| r0_10(glval) = VariableAddress[q] : +# 196| r0_11(int *) = Load : r0_10, mu0_1 +# 196| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 196| r0_13(glval) = VariableAddress[b] : +# 196| mu0_14(bool) = Store : r0_13, r0_12 +# 197| r0_15(glval) = VariableAddress[p] : +# 197| r0_16(int *) = Load : r0_15, mu0_1 +# 197| r0_17(glval) = VariableAddress[q] : +# 197| r0_18(int *) = Load : r0_17, mu0_1 +# 197| r0_19(bool) = CompareNE : r0_16, r0_18 +# 197| r0_20(glval) = VariableAddress[b] : +# 197| mu0_21(bool) = Store : r0_20, r0_19 +# 198| r0_22(glval) = VariableAddress[p] : +# 198| r0_23(int *) = Load : r0_22, mu0_1 +# 198| r0_24(glval) = VariableAddress[q] : +# 198| r0_25(int *) = Load : r0_24, mu0_1 +# 198| r0_26(bool) = CompareLT : r0_23, r0_25 +# 198| r0_27(glval) = VariableAddress[b] : +# 198| mu0_28(bool) = Store : r0_27, r0_26 +# 199| r0_29(glval) = VariableAddress[p] : +# 199| r0_30(int *) = Load : r0_29, mu0_1 +# 199| r0_31(glval) = VariableAddress[q] : +# 199| r0_32(int *) = Load : r0_31, mu0_1 +# 199| r0_33(bool) = CompareGT : r0_30, r0_32 +# 199| r0_34(glval) = VariableAddress[b] : +# 199| mu0_35(bool) = Store : r0_34, r0_33 +# 200| r0_36(glval) = VariableAddress[p] : +# 200| r0_37(int *) = Load : r0_36, mu0_1 +# 200| r0_38(glval) = VariableAddress[q] : +# 200| r0_39(int *) = Load : r0_38, mu0_1 +# 200| r0_40(bool) = CompareLE : r0_37, r0_39 +# 200| r0_41(glval) = VariableAddress[b] : +# 200| mu0_42(bool) = Store : r0_41, r0_40 +# 201| r0_43(glval) = VariableAddress[p] : +# 201| r0_44(int *) = Load : r0_43, mu0_1 +# 201| r0_45(glval) = VariableAddress[q] : +# 201| r0_46(int *) = Load : r0_45, mu0_1 +# 201| r0_47(bool) = CompareGE : r0_44, r0_46 +# 201| r0_48(glval) = VariableAddress[b] : +# 201| mu0_49(bool) = Store : r0_48, r0_47 +# 202| v0_50(void) = NoOp : +# 193| v0_51(void) = ReturnVoid : +# 193| v0_52(void) = UnmodeledUse : mu* +# 193| v0_53(void) = ExitFunction : # 204| PointerCrement(int *) -> void # 204| Block 0 # 204| v0_0(void) = EnterFunction : # 204| mu0_1(unknown) = UnmodeledDefinition : -# 204| r0_2(int *) = InitializeParameter[p] : -# 204| r0_3(glval) = VariableAddress[p] : -# 204| mu0_4(int *) = Store : r0_3, r0_2 -# 205| r0_5(glval) = VariableAddress[q] : -# 205| r0_6(int *) = Uninitialized : -# 205| mu0_7(int *) = Store : r0_5, r0_6 -# 207| r0_8(glval) = VariableAddress[p] : -# 207| r0_9(int *) = Load : r0_8, mu0_1 -# 207| r0_10(int) = Constant[1] : -# 207| r0_11(int *) = PointerAdd[4] : r0_9, r0_10 -# 207| mu0_12(int *) = Store : r0_8, r0_11 -# 207| r0_13(glval) = VariableAddress[q] : -# 207| mu0_14(int *) = Store : r0_13, r0_11 -# 208| r0_15(glval) = VariableAddress[p] : -# 208| r0_16(int *) = Load : r0_15, mu0_1 -# 208| r0_17(int) = Constant[1] : -# 208| r0_18(int *) = PointerSub[4] : r0_16, r0_17 -# 208| mu0_19(int *) = Store : r0_15, r0_18 -# 208| r0_20(glval) = VariableAddress[q] : -# 208| mu0_21(int *) = Store : r0_20, r0_18 -# 209| r0_22(glval) = VariableAddress[p] : -# 209| r0_23(int *) = Load : r0_22, mu0_1 -# 209| r0_24(int) = Constant[1] : -# 209| r0_25(int *) = PointerAdd[4] : r0_23, r0_24 -# 209| mu0_26(int *) = Store : r0_22, r0_25 -# 209| r0_27(glval) = VariableAddress[q] : -# 209| mu0_28(int *) = Store : r0_27, r0_23 -# 210| r0_29(glval) = VariableAddress[p] : -# 210| r0_30(int *) = Load : r0_29, mu0_1 -# 210| r0_31(int) = Constant[1] : -# 210| r0_32(int *) = PointerSub[4] : r0_30, r0_31 -# 210| mu0_33(int *) = Store : r0_29, r0_32 -# 210| r0_34(glval) = VariableAddress[q] : -# 210| mu0_35(int *) = Store : r0_34, r0_30 -# 211| v0_36(void) = NoOp : -# 204| v0_37(void) = ReturnVoid : -# 204| v0_38(void) = UnmodeledUse : mu* -# 204| v0_39(void) = ExitFunction : +# 204| r0_2(glval) = VariableAddress[p] : +# 204| mu0_3(int *) = InitializeParameter[p] : r0_2 +# 205| r0_4(glval) = VariableAddress[q] : +# 205| mu0_5(int *) = Uninitialized : r0_4 +# 207| r0_6(glval) = VariableAddress[p] : +# 207| r0_7(int *) = Load : r0_6, mu0_1 +# 207| r0_8(int) = Constant[1] : +# 207| r0_9(int *) = PointerAdd[4] : r0_7, r0_8 +# 207| mu0_10(int *) = Store : r0_6, r0_9 +# 207| r0_11(glval) = VariableAddress[q] : +# 207| mu0_12(int *) = Store : r0_11, r0_9 +# 208| r0_13(glval) = VariableAddress[p] : +# 208| r0_14(int *) = Load : r0_13, mu0_1 +# 208| r0_15(int) = Constant[1] : +# 208| r0_16(int *) = PointerSub[4] : r0_14, r0_15 +# 208| mu0_17(int *) = Store : r0_13, r0_16 +# 208| r0_18(glval) = VariableAddress[q] : +# 208| mu0_19(int *) = Store : r0_18, r0_16 +# 209| r0_20(glval) = VariableAddress[p] : +# 209| r0_21(int *) = Load : r0_20, mu0_1 +# 209| r0_22(int) = Constant[1] : +# 209| r0_23(int *) = PointerAdd[4] : r0_21, r0_22 +# 209| mu0_24(int *) = Store : r0_20, r0_23 +# 209| r0_25(glval) = VariableAddress[q] : +# 209| mu0_26(int *) = Store : r0_25, r0_21 +# 210| r0_27(glval) = VariableAddress[p] : +# 210| r0_28(int *) = Load : r0_27, mu0_1 +# 210| r0_29(int) = Constant[1] : +# 210| r0_30(int *) = PointerSub[4] : r0_28, r0_29 +# 210| mu0_31(int *) = Store : r0_27, r0_30 +# 210| r0_32(glval) = VariableAddress[q] : +# 210| mu0_33(int *) = Store : r0_32, r0_28 +# 211| v0_34(void) = NoOp : +# 204| v0_35(void) = ReturnVoid : +# 204| v0_36(void) = UnmodeledUse : mu* +# 204| v0_37(void) = ExitFunction : # 213| CompoundAssignment() -> void # 213| Block 0 @@ -966,55 +934,49 @@ ir.cpp: # 230| v0_0(void) = EnterFunction : # 230| mu0_1(unknown) = UnmodeledDefinition : # 231| r0_2(glval) = VariableAddress[x] : -# 231| r0_3(int) = Uninitialized : -# 231| mu0_4(int) = Store : r0_2, r0_3 -# 232| r0_5(glval) = VariableAddress[y] : -# 232| r0_6(glval) = VariableAddress[x] : -# 232| r0_7(int) = Load : r0_6, mu0_1 -# 232| mu0_8(int) = Store : r0_5, r0_7 -# 233| v0_9(void) = NoOp : -# 230| v0_10(void) = ReturnVoid : -# 230| v0_11(void) = UnmodeledUse : mu* -# 230| v0_12(void) = ExitFunction : +# 231| mu0_3(int) = Uninitialized : r0_2 +# 232| r0_4(glval) = VariableAddress[y] : +# 232| r0_5(glval) = VariableAddress[x] : +# 232| r0_6(int) = Load : r0_5, mu0_1 +# 232| mu0_7(int) = Store : r0_4, r0_6 +# 233| v0_8(void) = NoOp : +# 230| v0_9(void) = ReturnVoid : +# 230| v0_10(void) = UnmodeledUse : mu* +# 230| v0_11(void) = ExitFunction : # 235| Parameters(int, int) -> int # 235| Block 0 # 235| v0_0(void) = EnterFunction : # 235| mu0_1(unknown) = UnmodeledDefinition : -# 235| r0_2(int) = InitializeParameter[x] : -# 235| r0_3(glval) = VariableAddress[x] : -# 235| mu0_4(int) = Store : r0_3, r0_2 -# 235| r0_5(int) = InitializeParameter[y] : -# 235| r0_6(glval) = VariableAddress[y] : -# 235| mu0_7(int) = Store : r0_6, r0_5 -# 236| r0_8(glval) = VariableAddress[#return] : -# 236| r0_9(glval) = VariableAddress[x] : +# 235| r0_2(glval) = VariableAddress[x] : +# 235| mu0_3(int) = InitializeParameter[x] : r0_2 +# 235| r0_4(glval) = VariableAddress[y] : +# 235| mu0_5(int) = InitializeParameter[y] : r0_4 +# 236| r0_6(glval) = VariableAddress[#return] : +# 236| r0_7(glval) = VariableAddress[x] : +# 236| r0_8(int) = Load : r0_7, mu0_1 +# 236| r0_9(glval) = VariableAddress[y] : # 236| r0_10(int) = Load : r0_9, mu0_1 -# 236| r0_11(glval) = VariableAddress[y] : -# 236| r0_12(int) = Load : r0_11, mu0_1 -# 236| r0_13(int) = Rem : r0_10, r0_12 -# 236| mu0_14(int) = Store : r0_8, r0_13 -# 235| r0_15(glval) = VariableAddress[#return] : -# 235| v0_16(void) = ReturnValue : r0_15, mu0_1 -# 235| v0_17(void) = UnmodeledUse : mu* -# 235| v0_18(void) = ExitFunction : +# 236| r0_11(int) = Rem : r0_8, r0_10 +# 236| mu0_12(int) = Store : r0_6, r0_11 +# 235| r0_13(glval) = VariableAddress[#return] : +# 235| v0_14(void) = ReturnValue : r0_13, mu0_1 +# 235| v0_15(void) = UnmodeledUse : mu* +# 235| v0_16(void) = ExitFunction : # 239| IfStatements(bool, int, int) -> void # 239| Block 0 -# 239| v0_0(void) = EnterFunction : -# 239| mu0_1(unknown) = UnmodeledDefinition : -# 239| r0_2(bool) = InitializeParameter[b] : -# 239| r0_3(glval) = VariableAddress[b] : -# 239| mu0_4(bool) = Store : r0_3, r0_2 -# 239| r0_5(int) = InitializeParameter[x] : -# 239| r0_6(glval) = VariableAddress[x] : -# 239| mu0_7(int) = Store : r0_6, r0_5 -# 239| r0_8(int) = InitializeParameter[y] : -# 239| r0_9(glval) = VariableAddress[y] : -# 239| mu0_10(int) = Store : r0_9, r0_8 -# 240| r0_11(glval) = VariableAddress[b] : -# 240| r0_12(bool) = Load : r0_11, mu0_1 -# 240| v0_13(void) = ConditionalBranch : r0_12 +# 239| v0_0(void) = EnterFunction : +# 239| mu0_1(unknown) = UnmodeledDefinition : +# 239| r0_2(glval) = VariableAddress[b] : +# 239| mu0_3(bool) = InitializeParameter[b] : r0_2 +# 239| r0_4(glval) = VariableAddress[x] : +# 239| mu0_5(int) = InitializeParameter[x] : r0_4 +# 239| r0_6(glval) = VariableAddress[y] : +# 239| mu0_7(int) = InitializeParameter[y] : r0_6 +# 240| r0_8(glval) = VariableAddress[b] : +# 240| r0_9(bool) = Load : r0_8, mu0_1 +# 240| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 7 @@ -1067,9 +1029,8 @@ ir.cpp: # 253| Block 0 # 253| v0_0(void) = EnterFunction : # 253| mu0_1(unknown) = UnmodeledDefinition : -# 253| r0_2(int) = InitializeParameter[n] : -# 253| r0_3(glval) = VariableAddress[n] : -# 253| mu0_4(int) = Store : r0_3, r0_2 +# 253| r0_2(glval) = VariableAddress[n] : +# 253| mu0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 3 # 255| Block 1 @@ -1099,9 +1060,8 @@ ir.cpp: # 259| Block 0 # 259| v0_0(void) = EnterFunction : # 259| mu0_1(unknown) = UnmodeledDefinition : -# 259| r0_2(int) = InitializeParameter[n] : -# 259| r0_3(glval) = VariableAddress[n] : -# 259| mu0_4(int) = Store : r0_3, r0_2 +# 259| r0_2(glval) = VariableAddress[n] : +# 259| mu0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 1 # 261| Block 1 @@ -1129,8 +1089,7 @@ ir.cpp: # 265| v0_0(void) = EnterFunction : # 265| mu0_1(unknown) = UnmodeledDefinition : # 266| r0_2(glval) = VariableAddress[j] : -# 266| r0_3(int) = Uninitialized : -# 266| mu0_4(int) = Store : r0_2, r0_3 +# 266| mu0_3(int) = Uninitialized : r0_2 #-----| Goto -> Block 2 # 265| Block 1 @@ -1463,24 +1422,23 @@ ir.cpp: # 341| Dereference(int *) -> int # 341| Block 0 -# 341| v0_0(void) = EnterFunction : -# 341| mu0_1(unknown) = UnmodeledDefinition : -# 341| r0_2(int *) = InitializeParameter[p] : -# 341| r0_3(glval) = VariableAddress[p] : -# 341| mu0_4(int *) = Store : r0_3, r0_2 -# 342| r0_5(int) = Constant[1] : -# 342| r0_6(glval) = VariableAddress[p] : -# 342| r0_7(int *) = Load : r0_6, mu0_1 -# 342| mu0_8(int) = Store : r0_7, r0_5 -# 343| r0_9(glval) = VariableAddress[#return] : -# 343| r0_10(glval) = VariableAddress[p] : -# 343| r0_11(int *) = Load : r0_10, mu0_1 -# 343| r0_12(int) = Load : r0_11, mu0_1 -# 343| mu0_13(int) = Store : r0_9, r0_12 -# 341| r0_14(glval) = VariableAddress[#return] : -# 341| v0_15(void) = ReturnValue : r0_14, mu0_1 -# 341| v0_16(void) = UnmodeledUse : mu* -# 341| v0_17(void) = ExitFunction : +# 341| v0_0(void) = EnterFunction : +# 341| mu0_1(unknown) = UnmodeledDefinition : +# 341| r0_2(glval) = VariableAddress[p] : +# 341| mu0_3(int *) = InitializeParameter[p] : r0_2 +# 342| r0_4(int) = Constant[1] : +# 342| r0_5(glval) = VariableAddress[p] : +# 342| r0_6(int *) = Load : r0_5, mu0_1 +# 342| mu0_7(int) = Store : r0_6, r0_4 +# 343| r0_8(glval) = VariableAddress[#return] : +# 343| r0_9(glval) = VariableAddress[p] : +# 343| r0_10(int *) = Load : r0_9, mu0_1 +# 343| r0_11(int) = Load : r0_10, mu0_1 +# 343| mu0_12(int) = Store : r0_8, r0_11 +# 341| r0_13(glval) = VariableAddress[#return] : +# 341| v0_14(void) = ReturnValue : r0_13, mu0_1 +# 341| v0_15(void) = UnmodeledUse : mu* +# 341| v0_16(void) = ExitFunction : # 348| AddressOf() -> int * # 348| Block 0 @@ -1498,9 +1456,8 @@ ir.cpp: # 352| Block 0 # 352| v0_0(void) = EnterFunction : # 352| mu0_1(unknown) = UnmodeledDefinition : -# 352| r0_2(int) = InitializeParameter[n] : -# 352| r0_3(glval) = VariableAddress[n] : -# 352| mu0_4(int) = Store : r0_3, r0_2 +# 352| r0_2(glval) = VariableAddress[n] : +# 352| mu0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 5 # 354| Block 1 @@ -1544,9 +1501,8 @@ ir.cpp: # 360| Block 0 # 360| v0_0(void) = EnterFunction : # 360| mu0_1(unknown) = UnmodeledDefinition : -# 360| r0_2(int) = InitializeParameter[n] : -# 360| r0_3(glval) = VariableAddress[n] : -# 360| mu0_4(int) = Store : r0_3, r0_2 +# 360| r0_2(glval) = VariableAddress[n] : +# 360| mu0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 1 # 362| Block 1 @@ -1601,63 +1557,57 @@ ir.cpp: # 376| Block 0 # 376| v0_0(void) = EnterFunction : # 376| mu0_1(unknown) = UnmodeledDefinition : -# 376| r0_2(int) = InitializeParameter[x] : -# 376| r0_3(glval) = VariableAddress[x] : -# 376| mu0_4(int) = Store : r0_3, r0_2 -# 376| r0_5(int) = InitializeParameter[y] : -# 376| r0_6(glval) = VariableAddress[y] : -# 376| mu0_7(int) = Store : r0_6, r0_5 -# 377| r0_8(glval) = VariableAddress[#return] : -# 377| r0_9(bool) = FunctionAddress[Add] : -# 377| r0_10(glval) = VariableAddress[x] : +# 376| r0_2(glval) = VariableAddress[x] : +# 376| mu0_3(int) = InitializeParameter[x] : r0_2 +# 376| r0_4(glval) = VariableAddress[y] : +# 376| mu0_5(int) = InitializeParameter[y] : r0_4 +# 377| r0_6(glval) = VariableAddress[#return] : +# 377| r0_7(bool) = FunctionAddress[Add] : +# 377| r0_8(glval) = VariableAddress[x] : +# 377| r0_9(int) = Load : r0_8, mu0_1 +# 377| r0_10(glval) = VariableAddress[y] : # 377| r0_11(int) = Load : r0_10, mu0_1 -# 377| r0_12(glval) = VariableAddress[y] : -# 377| r0_13(int) = Load : r0_12, mu0_1 -# 377| r0_14(int) = Invoke : r0_9, r0_11, r0_13 -# 377| mu0_15(int) = Store : r0_8, r0_14 -# 376| r0_16(glval) = VariableAddress[#return] : -# 376| v0_17(void) = ReturnValue : r0_16, mu0_1 -# 376| v0_18(void) = UnmodeledUse : mu* -# 376| v0_19(void) = ExitFunction : +# 377| r0_12(int) = Invoke : r0_7, r0_9, r0_11 +# 377| mu0_13(int) = Store : r0_6, r0_12 +# 376| r0_14(glval) = VariableAddress[#return] : +# 376| v0_15(void) = ReturnValue : r0_14, mu0_1 +# 376| v0_16(void) = UnmodeledUse : mu* +# 376| v0_17(void) = ExitFunction : # 380| Comma(int, int) -> int # 380| Block 0 # 380| v0_0(void) = EnterFunction : # 380| mu0_1(unknown) = UnmodeledDefinition : -# 380| r0_2(int) = InitializeParameter[x] : -# 380| r0_3(glval) = VariableAddress[x] : -# 380| mu0_4(int) = Store : r0_3, r0_2 -# 380| r0_5(int) = InitializeParameter[y] : -# 380| r0_6(glval) = VariableAddress[y] : -# 380| mu0_7(int) = Store : r0_6, r0_5 -# 381| r0_8(glval) = VariableAddress[#return] : -# 381| r0_9(bool) = FunctionAddress[VoidFunc] : -# 381| v0_10(void) = Invoke : r0_9 -# 381| r0_11(bool) = FunctionAddress[CallAdd] : -# 381| r0_12(glval) = VariableAddress[x] : +# 380| r0_2(glval) = VariableAddress[x] : +# 380| mu0_3(int) = InitializeParameter[x] : r0_2 +# 380| r0_4(glval) = VariableAddress[y] : +# 380| mu0_5(int) = InitializeParameter[y] : r0_4 +# 381| r0_6(glval) = VariableAddress[#return] : +# 381| r0_7(bool) = FunctionAddress[VoidFunc] : +# 381| v0_8(void) = Invoke : r0_7 +# 381| r0_9(bool) = FunctionAddress[CallAdd] : +# 381| r0_10(glval) = VariableAddress[x] : +# 381| r0_11(int) = Load : r0_10, mu0_1 +# 381| r0_12(glval) = VariableAddress[y] : # 381| r0_13(int) = Load : r0_12, mu0_1 -# 381| r0_14(glval) = VariableAddress[y] : -# 381| r0_15(int) = Load : r0_14, mu0_1 -# 381| r0_16(int) = Invoke : r0_11, r0_13, r0_15 -# 381| mu0_17(int) = Store : r0_8, r0_16 -# 380| r0_18(glval) = VariableAddress[#return] : -# 380| v0_19(void) = ReturnValue : r0_18, mu0_1 -# 380| v0_20(void) = UnmodeledUse : mu* -# 380| v0_21(void) = ExitFunction : +# 381| r0_14(int) = Invoke : r0_9, r0_11, r0_13 +# 381| mu0_15(int) = Store : r0_6, r0_14 +# 380| r0_16(glval) = VariableAddress[#return] : +# 380| v0_17(void) = ReturnValue : r0_16, mu0_1 +# 380| v0_18(void) = UnmodeledUse : mu* +# 380| v0_19(void) = ExitFunction : # 384| Switch(int) -> void # 384| Block 0 # 384| v0_0(void) = EnterFunction : # 384| mu0_1(unknown) = UnmodeledDefinition : -# 384| r0_2(int) = InitializeParameter[x] : -# 384| r0_3(glval) = VariableAddress[x] : -# 384| mu0_4(int) = Store : r0_3, r0_2 -# 385| r0_5(glval) = VariableAddress[y] : -# 385| r0_6(int) = Uninitialized : -# 385| mu0_7(int) = Store : r0_5, r0_6 -# 386| r0_8(glval) = VariableAddress[x] : -# 386| r0_9(int) = Load : r0_8, mu0_1 -# 386| v0_10(void) = Switch : r0_9 +# 384| r0_2(glval) = VariableAddress[x] : +# 384| mu0_3(int) = InitializeParameter[x] : r0_2 +# 385| r0_4(glval) = VariableAddress[y] : +# 385| mu0_5(int) = Uninitialized : r0_4 +# 386| r0_6(glval) = VariableAddress[x] : +# 386| r0_7(int) = Load : r0_6, mu0_1 +# 386| v0_8(void) = Switch : r0_7 #-----| Case[-1] -> Block 2 #-----| Case[1] -> Block 3 #-----| Case[2] -> Block 4 @@ -1731,60 +1681,55 @@ ir.cpp: # 422| Block 0 # 422| v0_0(void) = EnterFunction : # 422| mu0_1(unknown) = UnmodeledDefinition : -# 422| r0_2(Point) = InitializeParameter[pt] : -# 422| r0_3(glval) = VariableAddress[pt] : -# 422| mu0_4(Point) = Store : r0_3, r0_2 -# 423| r0_5(glval) = VariableAddress[#return] : -# 423| r0_6(glval) = VariableAddress[pt] : -# 423| r0_7(Point) = Load : r0_6, mu0_1 -# 423| mu0_8(Point) = Store : r0_5, r0_7 -# 422| r0_9(glval) = VariableAddress[#return] : -# 422| v0_10(void) = ReturnValue : r0_9, mu0_1 -# 422| v0_11(void) = UnmodeledUse : mu* -# 422| v0_12(void) = ExitFunction : +# 422| r0_2(glval) = VariableAddress[pt] : +# 422| mu0_3(Point) = InitializeParameter[pt] : r0_2 +# 423| r0_4(glval) = VariableAddress[#return] : +# 423| r0_5(glval) = VariableAddress[pt] : +# 423| r0_6(Point) = Load : r0_5, mu0_1 +# 423| mu0_7(Point) = Store : r0_4, r0_6 +# 422| r0_8(glval) = VariableAddress[#return] : +# 422| v0_9(void) = ReturnValue : r0_8, mu0_1 +# 422| v0_10(void) = UnmodeledUse : mu* +# 422| v0_11(void) = ExitFunction : # 426| FieldAccess() -> void # 426| Block 0 # 426| v0_0(void) = EnterFunction : # 426| mu0_1(unknown) = UnmodeledDefinition : # 427| r0_2(glval) = VariableAddress[pt] : -# 427| r0_3(Point) = Uninitialized : -# 427| mu0_4(Point) = Store : r0_2, r0_3 -# 428| r0_5(int) = Constant[5] : -# 428| r0_6(glval) = VariableAddress[pt] : -# 428| r0_7(glval) = FieldAddress[x] : r0_6 -# 428| mu0_8(int) = Store : r0_7, r0_5 -# 429| r0_9(glval) = VariableAddress[pt] : -# 429| r0_10(glval) = FieldAddress[x] : r0_9 -# 429| r0_11(int) = Load : r0_10, mu0_1 -# 429| r0_12(glval) = VariableAddress[pt] : -# 429| r0_13(glval) = FieldAddress[y] : r0_12 -# 429| mu0_14(int) = Store : r0_13, r0_11 -# 430| r0_15(glval) = VariableAddress[p] : -# 430| r0_16(glval) = VariableAddress[pt] : -# 430| r0_17(glval) = FieldAddress[y] : r0_16 -# 430| mu0_18(int *) = Store : r0_15, r0_17 -# 431| v0_19(void) = NoOp : -# 426| v0_20(void) = ReturnVoid : -# 426| v0_21(void) = UnmodeledUse : mu* -# 426| v0_22(void) = ExitFunction : +# 427| mu0_3(Point) = Uninitialized : r0_2 +# 428| r0_4(int) = Constant[5] : +# 428| r0_5(glval) = VariableAddress[pt] : +# 428| r0_6(glval) = FieldAddress[x] : r0_5 +# 428| mu0_7(int) = Store : r0_6, r0_4 +# 429| r0_8(glval) = VariableAddress[pt] : +# 429| r0_9(glval) = FieldAddress[x] : r0_8 +# 429| r0_10(int) = Load : r0_9, mu0_1 +# 429| r0_11(glval) = VariableAddress[pt] : +# 429| r0_12(glval) = FieldAddress[y] : r0_11 +# 429| mu0_13(int) = Store : r0_12, r0_10 +# 430| r0_14(glval) = VariableAddress[p] : +# 430| r0_15(glval) = VariableAddress[pt] : +# 430| r0_16(glval) = FieldAddress[y] : r0_15 +# 430| mu0_17(int *) = Store : r0_14, r0_16 +# 431| v0_18(void) = NoOp : +# 426| v0_19(void) = ReturnVoid : +# 426| v0_20(void) = UnmodeledUse : mu* +# 426| v0_21(void) = ExitFunction : # 433| LogicalOr(bool, bool) -> void # 433| Block 0 -# 433| v0_0(void) = EnterFunction : -# 433| mu0_1(unknown) = UnmodeledDefinition : -# 433| r0_2(bool) = InitializeParameter[a] : -# 433| r0_3(glval) = VariableAddress[a] : -# 433| mu0_4(bool) = Store : r0_3, r0_2 -# 433| r0_5(bool) = InitializeParameter[b] : -# 433| r0_6(glval) = VariableAddress[b] : -# 433| mu0_7(bool) = Store : r0_6, r0_5 -# 434| r0_8(glval) = VariableAddress[x] : -# 434| r0_9(int) = Uninitialized : -# 434| mu0_10(int) = Store : r0_8, r0_9 -# 435| r0_11(glval) = VariableAddress[a] : -# 435| r0_12(bool) = Load : r0_11, mu0_1 -# 435| v0_13(void) = ConditionalBranch : r0_12 +# 433| v0_0(void) = EnterFunction : +# 433| mu0_1(unknown) = UnmodeledDefinition : +# 433| r0_2(glval) = VariableAddress[a] : +# 433| mu0_3(bool) = InitializeParameter[a] : r0_2 +# 433| r0_4(glval) = VariableAddress[b] : +# 433| mu0_5(bool) = InitializeParameter[b] : r0_4 +# 434| r0_6(glval) = VariableAddress[x] : +# 434| mu0_7(int) = Uninitialized : r0_6 +# 435| r0_8(glval) = VariableAddress[a] : +# 435| r0_9(bool) = Load : r0_8, mu0_1 +# 435| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 2 @@ -1835,20 +1780,17 @@ ir.cpp: # 447| LogicalAnd(bool, bool) -> void # 447| Block 0 -# 447| v0_0(void) = EnterFunction : -# 447| mu0_1(unknown) = UnmodeledDefinition : -# 447| r0_2(bool) = InitializeParameter[a] : -# 447| r0_3(glval) = VariableAddress[a] : -# 447| mu0_4(bool) = Store : r0_3, r0_2 -# 447| r0_5(bool) = InitializeParameter[b] : -# 447| r0_6(glval) = VariableAddress[b] : -# 447| mu0_7(bool) = Store : r0_6, r0_5 -# 448| r0_8(glval) = VariableAddress[x] : -# 448| r0_9(int) = Uninitialized : -# 448| mu0_10(int) = Store : r0_8, r0_9 -# 449| r0_11(glval) = VariableAddress[a] : -# 449| r0_12(bool) = Load : r0_11, mu0_1 -# 449| v0_13(void) = ConditionalBranch : r0_12 +# 447| v0_0(void) = EnterFunction : +# 447| mu0_1(unknown) = UnmodeledDefinition : +# 447| r0_2(glval) = VariableAddress[a] : +# 447| mu0_3(bool) = InitializeParameter[a] : r0_2 +# 447| r0_4(glval) = VariableAddress[b] : +# 447| mu0_5(bool) = InitializeParameter[b] : r0_4 +# 448| r0_6(glval) = VariableAddress[x] : +# 448| mu0_7(int) = Uninitialized : r0_6 +# 449| r0_8(glval) = VariableAddress[a] : +# 449| r0_9(bool) = Load : r0_8, mu0_1 +# 449| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 3 #-----| True -> Block 1 @@ -1899,20 +1841,17 @@ ir.cpp: # 461| LogicalNot(bool, bool) -> void # 461| Block 0 -# 461| v0_0(void) = EnterFunction : -# 461| mu0_1(unknown) = UnmodeledDefinition : -# 461| r0_2(bool) = InitializeParameter[a] : -# 461| r0_3(glval) = VariableAddress[a] : -# 461| mu0_4(bool) = Store : r0_3, r0_2 -# 461| r0_5(bool) = InitializeParameter[b] : -# 461| r0_6(glval) = VariableAddress[b] : -# 461| mu0_7(bool) = Store : r0_6, r0_5 -# 462| r0_8(glval) = VariableAddress[x] : -# 462| r0_9(int) = Uninitialized : -# 462| mu0_10(int) = Store : r0_8, r0_9 -# 463| r0_11(glval) = VariableAddress[a] : -# 463| r0_12(bool) = Load : r0_11, mu0_1 -# 463| v0_13(void) = ConditionalBranch : r0_12 +# 461| v0_0(void) = EnterFunction : +# 461| mu0_1(unknown) = UnmodeledDefinition : +# 461| r0_2(glval) = VariableAddress[a] : +# 461| mu0_3(bool) = InitializeParameter[a] : r0_2 +# 461| r0_4(glval) = VariableAddress[b] : +# 461| mu0_5(bool) = InitializeParameter[b] : r0_4 +# 462| r0_6(glval) = VariableAddress[x] : +# 462| mu0_7(int) = Uninitialized : r0_6 +# 463| r0_8(glval) = VariableAddress[a] : +# 463| r0_9(bool) = Load : r0_8, mu0_1 +# 463| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 2 @@ -1956,20 +1895,17 @@ ir.cpp: # 475| ConditionValues(bool, bool) -> void # 475| Block 0 -# 475| v0_0(void) = EnterFunction : -# 475| mu0_1(unknown) = UnmodeledDefinition : -# 475| r0_2(bool) = InitializeParameter[a] : -# 475| r0_3(glval) = VariableAddress[a] : -# 475| mu0_4(bool) = Store : r0_3, r0_2 -# 475| r0_5(bool) = InitializeParameter[b] : -# 475| r0_6(glval) = VariableAddress[b] : -# 475| mu0_7(bool) = Store : r0_6, r0_5 -# 476| r0_8(glval) = VariableAddress[x] : -# 476| r0_9(bool) = Uninitialized : -# 476| mu0_10(bool) = Store : r0_8, r0_9 -# 477| r0_11(glval) = VariableAddress[a] : -# 477| r0_12(bool) = Load : r0_11, mu0_1 -# 477| v0_13(void) = ConditionalBranch : r0_12 +# 475| v0_0(void) = EnterFunction : +# 475| mu0_1(unknown) = UnmodeledDefinition : +# 475| r0_2(glval) = VariableAddress[a] : +# 475| mu0_3(bool) = InitializeParameter[a] : r0_2 +# 475| r0_4(glval) = VariableAddress[b] : +# 475| mu0_5(bool) = InitializeParameter[b] : r0_4 +# 476| r0_6(glval) = VariableAddress[x] : +# 476| mu0_7(bool) = Uninitialized : r0_6 +# 477| r0_8(glval) = VariableAddress[a] : +# 477| r0_9(bool) = Load : r0_8, mu0_1 +# 477| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 10 #-----| True -> Block 1 @@ -2065,21 +2001,18 @@ ir.cpp: # 482| Conditional(bool, int, int) -> void # 482| Block 0 -# 482| v0_0(void) = EnterFunction : -# 482| mu0_1(unknown) = UnmodeledDefinition : -# 482| r0_2(bool) = InitializeParameter[a] : -# 482| r0_3(glval) = VariableAddress[a] : -# 482| mu0_4(bool) = Store : r0_3, r0_2 -# 482| r0_5(int) = InitializeParameter[x] : -# 482| r0_6(glval) = VariableAddress[x] : -# 482| mu0_7(int) = Store : r0_6, r0_5 -# 482| r0_8(int) = InitializeParameter[y] : -# 482| r0_9(glval) = VariableAddress[y] : -# 482| mu0_10(int) = Store : r0_9, r0_8 -# 483| r0_11(glval) = VariableAddress[z] : -# 483| r0_12(glval) = VariableAddress[a] : -# 483| r0_13(bool) = Load : r0_12, mu0_1 -# 483| v0_14(void) = ConditionalBranch : r0_13 +# 482| v0_0(void) = EnterFunction : +# 482| mu0_1(unknown) = UnmodeledDefinition : +# 482| r0_2(glval) = VariableAddress[a] : +# 482| mu0_3(bool) = InitializeParameter[a] : r0_2 +# 482| r0_4(glval) = VariableAddress[x] : +# 482| mu0_5(int) = InitializeParameter[x] : r0_4 +# 482| r0_6(glval) = VariableAddress[y] : +# 482| mu0_7(int) = InitializeParameter[y] : r0_6 +# 483| r0_8(glval) = VariableAddress[z] : +# 483| r0_9(glval) = VariableAddress[a] : +# 483| r0_10(bool) = Load : r0_9, mu0_1 +# 483| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 2 #-----| True -> Block 1 @@ -2100,7 +2033,7 @@ ir.cpp: # 483| Block 3 # 483| r3_0(glval) = VariableAddress[#temp483:13] : # 483| r3_1(int) = Load : r3_0, mu0_1 -# 483| mu3_2(int) = Store : r0_11, r3_1 +# 483| mu3_2(int) = Store : r0_8, r3_1 # 484| v3_3(void) = NoOp : # 482| v3_4(void) = ReturnVoid : # 482| v3_5(void) = UnmodeledUse : mu* @@ -2108,28 +2041,25 @@ ir.cpp: # 486| Conditional_LValue(bool) -> void # 486| Block 0 -# 486| v0_0(void) = EnterFunction : -# 486| mu0_1(unknown) = UnmodeledDefinition : -# 486| r0_2(bool) = InitializeParameter[a] : -# 486| r0_3(glval) = VariableAddress[a] : -# 486| mu0_4(bool) = Store : r0_3, r0_2 -# 487| r0_5(glval) = VariableAddress[x] : -# 487| r0_6(int) = Uninitialized : -# 487| mu0_7(int) = Store : r0_5, r0_6 -# 488| r0_8(glval) = VariableAddress[y] : -# 488| r0_9(int) = Uninitialized : -# 488| mu0_10(int) = Store : r0_8, r0_9 -# 489| r0_11(int) = Constant[5] : -# 489| r0_12(glval) = VariableAddress[a] : -# 489| r0_13(bool) = Load : r0_12, mu0_1 -# 489| v0_14(void) = ConditionalBranch : r0_13 +# 486| v0_0(void) = EnterFunction : +# 486| mu0_1(unknown) = UnmodeledDefinition : +# 486| r0_2(glval) = VariableAddress[a] : +# 486| mu0_3(bool) = InitializeParameter[a] : r0_2 +# 487| r0_4(glval) = VariableAddress[x] : +# 487| mu0_5(int) = Uninitialized : r0_4 +# 488| r0_6(glval) = VariableAddress[y] : +# 488| mu0_7(int) = Uninitialized : r0_6 +# 489| r0_8(int) = Constant[5] : +# 489| r0_9(glval) = VariableAddress[a] : +# 489| r0_10(bool) = Load : r0_9, mu0_1 +# 489| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 # 489| Block 1 # 489| r1_0(glval) = VariableAddress[#temp489:6] : # 489| r1_1(glval) = Load : r1_0, mu0_1 -# 489| mu1_2(int) = Store : r1_1, r0_11 +# 489| mu1_2(int) = Store : r1_1, r0_8 # 490| v1_3(void) = NoOp : # 486| v1_4(void) = ReturnVoid : # 486| v1_5(void) = UnmodeledUse : mu* @@ -2151,12 +2081,11 @@ ir.cpp: # 492| Block 0 # 492| v0_0(void) = EnterFunction : # 492| mu0_1(unknown) = UnmodeledDefinition : -# 492| r0_2(bool) = InitializeParameter[a] : -# 492| r0_3(glval) = VariableAddress[a] : -# 492| mu0_4(bool) = Store : r0_3, r0_2 -# 493| r0_5(glval) = VariableAddress[a] : -# 493| r0_6(bool) = Load : r0_5, mu0_1 -# 493| v0_7(void) = ConditionalBranch : r0_6 +# 492| r0_2(glval) = VariableAddress[a] : +# 492| mu0_3(bool) = InitializeParameter[a] : r0_2 +# 493| r0_4(glval) = VariableAddress[a] : +# 493| r0_5(bool) = Load : r0_4, mu0_1 +# 493| v0_6(void) = ConditionalBranch : r0_5 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2201,205 +2130,195 @@ ir.cpp: # 503| Block 0 # 503| v0_0(void) = EnterFunction : # 503| mu0_1(unknown) = UnmodeledDefinition : -# 503| r0_2(int) = InitializeParameter[x] : -# 503| r0_3(glval) = VariableAddress[x] : -# 503| mu0_4(int) = Store : r0_3, r0_2 -# 503| r0_5(float) = InitializeParameter[f] : -# 503| r0_6(glval) = VariableAddress[f] : -# 503| mu0_7(float) = Store : r0_6, r0_5 -# 504| r0_8(glval) = VariableAddress[pt1] : -# 504| r0_9(glval) = FieldAddress[x] : r0_8 -# 504| r0_10(glval) = VariableAddress[x] : -# 504| r0_11(int) = Load : r0_10, mu0_1 -# 504| mu0_12(int) = Store : r0_9, r0_11 -# 504| r0_13(glval) = FieldAddress[y] : r0_8 -# 504| r0_14(glval) = VariableAddress[f] : -# 504| r0_15(float) = Load : r0_14, mu0_1 -# 504| r0_16(int) = Convert : r0_15 -# 504| mu0_17(int) = Store : r0_13, r0_16 -# 505| r0_18(glval) = VariableAddress[pt2] : -# 505| r0_19(glval) = FieldAddress[x] : r0_18 -# 505| r0_20(glval) = VariableAddress[x] : -# 505| r0_21(int) = Load : r0_20, mu0_1 -# 505| mu0_22(int) = Store : r0_19, r0_21 -# 505| r0_23(glval) = FieldAddress[y] : r0_18 -# 505| r0_24(int) = Constant[0] : -# 505| mu0_25(int) = Store : r0_23, r0_24 -# 506| r0_26(glval) = VariableAddress[pt3] : -# 506| r0_27(glval) = FieldAddress[x] : r0_26 -# 506| r0_28(int) = Constant[0] : -# 506| mu0_29(int) = Store : r0_27, r0_28 -# 506| r0_30(glval) = FieldAddress[y] : r0_26 -# 506| r0_31(int) = Constant[0] : -# 506| mu0_32(int) = Store : r0_30, r0_31 -# 508| r0_33(glval) = VariableAddress[x1] : -# 508| r0_34(int) = Constant[1] : -# 508| mu0_35(int) = Store : r0_33, r0_34 -# 509| r0_36(glval) = VariableAddress[x2] : -# 509| r0_37(int) = Constant[0] : -# 509| mu0_38(int) = Store : r0_36, r0_37 -# 510| v0_39(void) = NoOp : -# 503| v0_40(void) = ReturnVoid : -# 503| v0_41(void) = UnmodeledUse : mu* -# 503| v0_42(void) = ExitFunction : +# 503| r0_2(glval) = VariableAddress[x] : +# 503| mu0_3(int) = InitializeParameter[x] : r0_2 +# 503| r0_4(glval) = VariableAddress[f] : +# 503| mu0_5(float) = InitializeParameter[f] : r0_4 +# 504| r0_6(glval) = VariableAddress[pt1] : +# 504| r0_7(glval) = FieldAddress[x] : r0_6 +# 504| r0_8(glval) = VariableAddress[x] : +# 504| r0_9(int) = Load : r0_8, mu0_1 +# 504| mu0_10(int) = Store : r0_7, r0_9 +# 504| r0_11(glval) = FieldAddress[y] : r0_6 +# 504| r0_12(glval) = VariableAddress[f] : +# 504| r0_13(float) = Load : r0_12, mu0_1 +# 504| r0_14(int) = Convert : r0_13 +# 504| mu0_15(int) = Store : r0_11, r0_14 +# 505| r0_16(glval) = VariableAddress[pt2] : +# 505| r0_17(glval) = FieldAddress[x] : r0_16 +# 505| r0_18(glval) = VariableAddress[x] : +# 505| r0_19(int) = Load : r0_18, mu0_1 +# 505| mu0_20(int) = Store : r0_17, r0_19 +# 505| r0_21(glval) = FieldAddress[y] : r0_16 +# 505| r0_22(int) = Constant[0] : +# 505| mu0_23(int) = Store : r0_21, r0_22 +# 506| r0_24(glval) = VariableAddress[pt3] : +# 506| r0_25(glval) = FieldAddress[x] : r0_24 +# 506| r0_26(int) = Constant[0] : +# 506| mu0_27(int) = Store : r0_25, r0_26 +# 506| r0_28(glval) = FieldAddress[y] : r0_24 +# 506| r0_29(int) = Constant[0] : +# 506| mu0_30(int) = Store : r0_28, r0_29 +# 508| r0_31(glval) = VariableAddress[x1] : +# 508| r0_32(int) = Constant[1] : +# 508| mu0_33(int) = Store : r0_31, r0_32 +# 509| r0_34(glval) = VariableAddress[x2] : +# 509| r0_35(int) = Constant[0] : +# 509| mu0_36(int) = Store : r0_34, r0_35 +# 510| v0_37(void) = NoOp : +# 503| v0_38(void) = ReturnVoid : +# 503| v0_39(void) = UnmodeledUse : mu* +# 503| v0_40(void) = ExitFunction : # 512| NestedInitList(int, float) -> void # 512| Block 0 # 512| v0_0(void) = EnterFunction : # 512| mu0_1(unknown) = UnmodeledDefinition : -# 512| r0_2(int) = InitializeParameter[x] : -# 512| r0_3(glval) = VariableAddress[x] : -# 512| mu0_4(int) = Store : r0_3, r0_2 -# 512| r0_5(float) = InitializeParameter[f] : -# 512| r0_6(glval) = VariableAddress[f] : -# 512| mu0_7(float) = Store : r0_6, r0_5 -# 513| r0_8(glval) = VariableAddress[r1] : -# 513| r0_9(glval) = FieldAddress[topLeft] : r0_8 -# 513| r0_10(Point) = Constant[0] : -# 513| mu0_11(Point) = Store : r0_9, r0_10 -# 513| r0_12(glval) = FieldAddress[bottomRight] : r0_8 -# 513| r0_13(Point) = Constant[0] : -# 513| mu0_14(Point) = Store : r0_12, r0_13 -# 514| r0_15(glval) = VariableAddress[r2] : -# 514| r0_16(glval) = FieldAddress[topLeft] : r0_15 -# 514| r0_17(glval) = FieldAddress[x] : r0_16 -# 514| r0_18(glval) = VariableAddress[x] : -# 514| r0_19(int) = Load : r0_18, mu0_1 -# 514| mu0_20(int) = Store : r0_17, r0_19 -# 514| r0_21(glval) = FieldAddress[y] : r0_16 -# 514| r0_22(glval) = VariableAddress[f] : -# 514| r0_23(float) = Load : r0_22, mu0_1 -# 514| r0_24(int) = Convert : r0_23 -# 514| mu0_25(int) = Store : r0_21, r0_24 -# 514| r0_26(glval) = FieldAddress[bottomRight] : r0_15 -# 514| r0_27(Point) = Constant[0] : -# 514| mu0_28(Point) = Store : r0_26, r0_27 -# 515| r0_29(glval) = VariableAddress[r3] : -# 515| r0_30(glval) = FieldAddress[topLeft] : r0_29 -# 515| r0_31(glval) = FieldAddress[x] : r0_30 -# 515| r0_32(glval) = VariableAddress[x] : -# 515| r0_33(int) = Load : r0_32, mu0_1 -# 515| mu0_34(int) = Store : r0_31, r0_33 -# 515| r0_35(glval) = FieldAddress[y] : r0_30 -# 515| r0_36(glval) = VariableAddress[f] : -# 515| r0_37(float) = Load : r0_36, mu0_1 -# 515| r0_38(int) = Convert : r0_37 -# 515| mu0_39(int) = Store : r0_35, r0_38 -# 515| r0_40(glval) = FieldAddress[bottomRight] : r0_29 -# 515| r0_41(glval) = FieldAddress[x] : r0_40 -# 515| r0_42(glval) = VariableAddress[x] : -# 515| r0_43(int) = Load : r0_42, mu0_1 -# 515| mu0_44(int) = Store : r0_41, r0_43 -# 515| r0_45(glval) = FieldAddress[y] : r0_40 -# 515| r0_46(glval) = VariableAddress[f] : -# 515| r0_47(float) = Load : r0_46, mu0_1 -# 515| r0_48(int) = Convert : r0_47 -# 515| mu0_49(int) = Store : r0_45, r0_48 -# 516| r0_50(glval) = VariableAddress[r4] : -# 516| r0_51(glval) = FieldAddress[topLeft] : r0_50 -# 516| r0_52(glval) = FieldAddress[x] : r0_51 -# 516| r0_53(glval) = VariableAddress[x] : -# 516| r0_54(int) = Load : r0_53, mu0_1 -# 516| mu0_55(int) = Store : r0_52, r0_54 -# 516| r0_56(glval) = FieldAddress[y] : r0_51 -# 516| r0_57(int) = Constant[0] : -# 516| mu0_58(int) = Store : r0_56, r0_57 -# 516| r0_59(glval) = FieldAddress[bottomRight] : r0_50 -# 516| r0_60(glval) = FieldAddress[x] : r0_59 -# 516| r0_61(glval) = VariableAddress[x] : -# 516| r0_62(int) = Load : r0_61, mu0_1 -# 516| mu0_63(int) = Store : r0_60, r0_62 -# 516| r0_64(glval) = FieldAddress[y] : r0_59 -# 516| r0_65(int) = Constant[0] : -# 516| mu0_66(int) = Store : r0_64, r0_65 -# 517| v0_67(void) = NoOp : -# 512| v0_68(void) = ReturnVoid : -# 512| v0_69(void) = UnmodeledUse : mu* -# 512| v0_70(void) = ExitFunction : +# 512| r0_2(glval) = VariableAddress[x] : +# 512| mu0_3(int) = InitializeParameter[x] : r0_2 +# 512| r0_4(glval) = VariableAddress[f] : +# 512| mu0_5(float) = InitializeParameter[f] : r0_4 +# 513| r0_6(glval) = VariableAddress[r1] : +# 513| r0_7(glval) = FieldAddress[topLeft] : r0_6 +# 513| r0_8(Point) = Constant[0] : +# 513| mu0_9(Point) = Store : r0_7, r0_8 +# 513| r0_10(glval) = FieldAddress[bottomRight] : r0_6 +# 513| r0_11(Point) = Constant[0] : +# 513| mu0_12(Point) = Store : r0_10, r0_11 +# 514| r0_13(glval) = VariableAddress[r2] : +# 514| r0_14(glval) = FieldAddress[topLeft] : r0_13 +# 514| r0_15(glval) = FieldAddress[x] : r0_14 +# 514| r0_16(glval) = VariableAddress[x] : +# 514| r0_17(int) = Load : r0_16, mu0_1 +# 514| mu0_18(int) = Store : r0_15, r0_17 +# 514| r0_19(glval) = FieldAddress[y] : r0_14 +# 514| r0_20(glval) = VariableAddress[f] : +# 514| r0_21(float) = Load : r0_20, mu0_1 +# 514| r0_22(int) = Convert : r0_21 +# 514| mu0_23(int) = Store : r0_19, r0_22 +# 514| r0_24(glval) = FieldAddress[bottomRight] : r0_13 +# 514| r0_25(Point) = Constant[0] : +# 514| mu0_26(Point) = Store : r0_24, r0_25 +# 515| r0_27(glval) = VariableAddress[r3] : +# 515| r0_28(glval) = FieldAddress[topLeft] : r0_27 +# 515| r0_29(glval) = FieldAddress[x] : r0_28 +# 515| r0_30(glval) = VariableAddress[x] : +# 515| r0_31(int) = Load : r0_30, mu0_1 +# 515| mu0_32(int) = Store : r0_29, r0_31 +# 515| r0_33(glval) = FieldAddress[y] : r0_28 +# 515| r0_34(glval) = VariableAddress[f] : +# 515| r0_35(float) = Load : r0_34, mu0_1 +# 515| r0_36(int) = Convert : r0_35 +# 515| mu0_37(int) = Store : r0_33, r0_36 +# 515| r0_38(glval) = FieldAddress[bottomRight] : r0_27 +# 515| r0_39(glval) = FieldAddress[x] : r0_38 +# 515| r0_40(glval) = VariableAddress[x] : +# 515| r0_41(int) = Load : r0_40, mu0_1 +# 515| mu0_42(int) = Store : r0_39, r0_41 +# 515| r0_43(glval) = FieldAddress[y] : r0_38 +# 515| r0_44(glval) = VariableAddress[f] : +# 515| r0_45(float) = Load : r0_44, mu0_1 +# 515| r0_46(int) = Convert : r0_45 +# 515| mu0_47(int) = Store : r0_43, r0_46 +# 516| r0_48(glval) = VariableAddress[r4] : +# 516| r0_49(glval) = FieldAddress[topLeft] : r0_48 +# 516| r0_50(glval) = FieldAddress[x] : r0_49 +# 516| r0_51(glval) = VariableAddress[x] : +# 516| r0_52(int) = Load : r0_51, mu0_1 +# 516| mu0_53(int) = Store : r0_50, r0_52 +# 516| r0_54(glval) = FieldAddress[y] : r0_49 +# 516| r0_55(int) = Constant[0] : +# 516| mu0_56(int) = Store : r0_54, r0_55 +# 516| r0_57(glval) = FieldAddress[bottomRight] : r0_48 +# 516| r0_58(glval) = FieldAddress[x] : r0_57 +# 516| r0_59(glval) = VariableAddress[x] : +# 516| r0_60(int) = Load : r0_59, mu0_1 +# 516| mu0_61(int) = Store : r0_58, r0_60 +# 516| r0_62(glval) = FieldAddress[y] : r0_57 +# 516| r0_63(int) = Constant[0] : +# 516| mu0_64(int) = Store : r0_62, r0_63 +# 517| v0_65(void) = NoOp : +# 512| v0_66(void) = ReturnVoid : +# 512| v0_67(void) = UnmodeledUse : mu* +# 512| v0_68(void) = ExitFunction : # 519| ArrayInit(int, float) -> void # 519| Block 0 # 519| v0_0(void) = EnterFunction : # 519| mu0_1(unknown) = UnmodeledDefinition : -# 519| r0_2(int) = InitializeParameter[x] : -# 519| r0_3(glval) = VariableAddress[x] : -# 519| mu0_4(int) = Store : r0_3, r0_2 -# 519| r0_5(float) = InitializeParameter[f] : -# 519| r0_6(glval) = VariableAddress[f] : -# 519| mu0_7(float) = Store : r0_6, r0_5 -# 520| r0_8(glval) = VariableAddress[a1] : -# 520| r0_9(int) = Constant[0] : -# 520| r0_10(glval) = PointerAdd : r0_8, r0_9 -# 520| r0_11(unknown[12]) = Constant[0] : -# 520| mu0_12(unknown[12]) = Store : r0_10, r0_11 -# 521| r0_13(glval) = VariableAddress[a2] : -# 521| r0_14(int) = Constant[0] : -# 521| r0_15(glval) = PointerAdd : r0_13, r0_14 -# 521| r0_16(glval) = VariableAddress[x] : -# 521| r0_17(int) = Load : r0_16, mu0_1 -# 521| mu0_18(int) = Store : r0_15, r0_17 -# 521| r0_19(int) = Constant[1] : -# 521| r0_20(glval) = PointerAdd : r0_13, r0_19 -# 521| r0_21(glval) = VariableAddress[f] : -# 521| r0_22(float) = Load : r0_21, mu0_1 -# 521| r0_23(int) = Convert : r0_22 -# 521| mu0_24(int) = Store : r0_20, r0_23 -# 521| r0_25(int) = Constant[2] : -# 521| r0_26(glval) = PointerAdd : r0_13, r0_25 -# 521| r0_27(int) = Constant[0] : -# 521| mu0_28(int) = Store : r0_26, r0_27 -# 522| r0_29(glval) = VariableAddress[a3] : -# 522| r0_30(int) = Constant[0] : -# 522| r0_31(glval) = PointerAdd : r0_29, r0_30 -# 522| r0_32(glval) = VariableAddress[x] : -# 522| r0_33(int) = Load : r0_32, mu0_1 -# 522| mu0_34(int) = Store : r0_31, r0_33 -# 522| r0_35(int) = Constant[1] : -# 522| r0_36(glval) = PointerAdd : r0_29, r0_35 -# 522| r0_37(unknown[8]) = Constant[0] : -# 522| mu0_38(unknown[8]) = Store : r0_36, r0_37 -# 523| v0_39(void) = NoOp : -# 519| v0_40(void) = ReturnVoid : -# 519| v0_41(void) = UnmodeledUse : mu* -# 519| v0_42(void) = ExitFunction : +# 519| r0_2(glval) = VariableAddress[x] : +# 519| mu0_3(int) = InitializeParameter[x] : r0_2 +# 519| r0_4(glval) = VariableAddress[f] : +# 519| mu0_5(float) = InitializeParameter[f] : r0_4 +# 520| r0_6(glval) = VariableAddress[a1] : +# 520| r0_7(int) = Constant[0] : +# 520| r0_8(glval) = PointerAdd : r0_6, r0_7 +# 520| r0_9(unknown[12]) = Constant[0] : +# 520| mu0_10(unknown[12]) = Store : r0_8, r0_9 +# 521| r0_11(glval) = VariableAddress[a2] : +# 521| r0_12(int) = Constant[0] : +# 521| r0_13(glval) = PointerAdd : r0_11, r0_12 +# 521| r0_14(glval) = VariableAddress[x] : +# 521| r0_15(int) = Load : r0_14, mu0_1 +# 521| mu0_16(int) = Store : r0_13, r0_15 +# 521| r0_17(int) = Constant[1] : +# 521| r0_18(glval) = PointerAdd : r0_11, r0_17 +# 521| r0_19(glval) = VariableAddress[f] : +# 521| r0_20(float) = Load : r0_19, mu0_1 +# 521| r0_21(int) = Convert : r0_20 +# 521| mu0_22(int) = Store : r0_18, r0_21 +# 521| r0_23(int) = Constant[2] : +# 521| r0_24(glval) = PointerAdd : r0_11, r0_23 +# 521| r0_25(int) = Constant[0] : +# 521| mu0_26(int) = Store : r0_24, r0_25 +# 522| r0_27(glval) = VariableAddress[a3] : +# 522| r0_28(int) = Constant[0] : +# 522| r0_29(glval) = PointerAdd : r0_27, r0_28 +# 522| r0_30(glval) = VariableAddress[x] : +# 522| r0_31(int) = Load : r0_30, mu0_1 +# 522| mu0_32(int) = Store : r0_29, r0_31 +# 522| r0_33(int) = Constant[1] : +# 522| r0_34(glval) = PointerAdd : r0_27, r0_33 +# 522| r0_35(unknown[8]) = Constant[0] : +# 522| mu0_36(unknown[8]) = Store : r0_34, r0_35 +# 523| v0_37(void) = NoOp : +# 519| v0_38(void) = ReturnVoid : +# 519| v0_39(void) = UnmodeledUse : mu* +# 519| v0_40(void) = ExitFunction : # 530| UnionInit(int, float) -> void # 530| Block 0 # 530| v0_0(void) = EnterFunction : # 530| mu0_1(unknown) = UnmodeledDefinition : -# 530| r0_2(int) = InitializeParameter[x] : -# 530| r0_3(glval) = VariableAddress[x] : -# 530| mu0_4(int) = Store : r0_3, r0_2 -# 530| r0_5(float) = InitializeParameter[f] : -# 530| r0_6(glval) = VariableAddress[f] : -# 530| mu0_7(float) = Store : r0_6, r0_5 -# 531| r0_8(glval) = VariableAddress[u1] : -# 531| r0_9(glval) = FieldAddress[d] : r0_8 -# 531| r0_10(glval) = VariableAddress[f] : -# 531| r0_11(float) = Load : r0_10, mu0_1 -# 531| r0_12(double) = Convert : r0_11 -# 531| mu0_13(double) = Store : r0_9, r0_12 -# 533| v0_14(void) = NoOp : -# 530| v0_15(void) = ReturnVoid : -# 530| v0_16(void) = UnmodeledUse : mu* -# 530| v0_17(void) = ExitFunction : +# 530| r0_2(glval) = VariableAddress[x] : +# 530| mu0_3(int) = InitializeParameter[x] : r0_2 +# 530| r0_4(glval) = VariableAddress[f] : +# 530| mu0_5(float) = InitializeParameter[f] : r0_4 +# 531| r0_6(glval) = VariableAddress[u1] : +# 531| r0_7(glval) = FieldAddress[d] : r0_6 +# 531| r0_8(glval) = VariableAddress[f] : +# 531| r0_9(float) = Load : r0_8, mu0_1 +# 531| r0_10(double) = Convert : r0_9 +# 531| mu0_11(double) = Store : r0_7, r0_10 +# 533| v0_12(void) = NoOp : +# 530| v0_13(void) = ReturnVoid : +# 530| v0_14(void) = UnmodeledUse : mu* +# 530| v0_15(void) = ExitFunction : # 535| EarlyReturn(int, int) -> void # 535| Block 0 -# 535| v0_0(void) = EnterFunction : -# 535| mu0_1(unknown) = UnmodeledDefinition : -# 535| r0_2(int) = InitializeParameter[x] : -# 535| r0_3(glval) = VariableAddress[x] : -# 535| mu0_4(int) = Store : r0_3, r0_2 -# 535| r0_5(int) = InitializeParameter[y] : -# 535| r0_6(glval) = VariableAddress[y] : -# 535| mu0_7(int) = Store : r0_6, r0_5 -# 536| r0_8(glval) = VariableAddress[x] : -# 536| r0_9(int) = Load : r0_8, mu0_1 -# 536| r0_10(glval) = VariableAddress[y] : -# 536| r0_11(int) = Load : r0_10, mu0_1 -# 536| r0_12(bool) = CompareLT : r0_9, r0_11 -# 536| v0_13(void) = ConditionalBranch : r0_12 +# 535| v0_0(void) = EnterFunction : +# 535| mu0_1(unknown) = UnmodeledDefinition : +# 535| r0_2(glval) = VariableAddress[x] : +# 535| mu0_3(int) = InitializeParameter[x] : r0_2 +# 535| r0_4(glval) = VariableAddress[y] : +# 535| mu0_5(int) = InitializeParameter[y] : r0_4 +# 536| r0_6(glval) = VariableAddress[x] : +# 536| r0_7(int) = Load : r0_6, mu0_1 +# 536| r0_8(glval) = VariableAddress[y] : +# 536| r0_9(int) = Load : r0_8, mu0_1 +# 536| r0_10(bool) = CompareLT : r0_7, r0_9 +# 536| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2422,20 +2341,18 @@ ir.cpp: # 543| EarlyReturnValue(int, int) -> int # 543| Block 0 -# 543| v0_0(void) = EnterFunction : -# 543| mu0_1(unknown) = UnmodeledDefinition : -# 543| r0_2(int) = InitializeParameter[x] : -# 543| r0_3(glval) = VariableAddress[x] : -# 543| mu0_4(int) = Store : r0_3, r0_2 -# 543| r0_5(int) = InitializeParameter[y] : -# 543| r0_6(glval) = VariableAddress[y] : -# 543| mu0_7(int) = Store : r0_6, r0_5 -# 544| r0_8(glval) = VariableAddress[x] : -# 544| r0_9(int) = Load : r0_8, mu0_1 -# 544| r0_10(glval) = VariableAddress[y] : -# 544| r0_11(int) = Load : r0_10, mu0_1 -# 544| r0_12(bool) = CompareLT : r0_9, r0_11 -# 544| v0_13(void) = ConditionalBranch : r0_12 +# 543| v0_0(void) = EnterFunction : +# 543| mu0_1(unknown) = UnmodeledDefinition : +# 543| r0_2(glval) = VariableAddress[x] : +# 543| mu0_3(int) = InitializeParameter[x] : r0_2 +# 543| r0_4(glval) = VariableAddress[y] : +# 543| mu0_5(int) = InitializeParameter[y] : r0_4 +# 544| r0_6(glval) = VariableAddress[x] : +# 544| r0_7(int) = Load : r0_6, mu0_1 +# 544| r0_8(glval) = VariableAddress[y] : +# 544| r0_9(int) = Load : r0_8, mu0_1 +# 544| r0_10(bool) = CompareLT : r0_7, r0_9 +# 544| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2466,31 +2383,29 @@ ir.cpp: # 551| Block 0 # 551| v0_0(void) = EnterFunction : # 551| mu0_1(unknown) = UnmodeledDefinition : -# 551| r0_2(..(*)(..)) = InitializeParameter[pfn] : -# 551| r0_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 551| mu0_4(..(*)(..)) = Store : r0_3, r0_2 -# 552| r0_5(glval) = VariableAddress[#return] : -# 552| r0_6(glval<..(*)(..)>) = VariableAddress[pfn] : -# 552| r0_7(..(*)(..)) = Load : r0_6, mu0_1 -# 552| r0_8(int) = Constant[5] : -# 552| r0_9(int) = Invoke : r0_7, r0_8 -# 552| mu0_10(int) = Store : r0_5, r0_9 -# 551| r0_11(glval) = VariableAddress[#return] : -# 551| v0_12(void) = ReturnValue : r0_11, mu0_1 -# 551| v0_13(void) = UnmodeledUse : mu* -# 551| v0_14(void) = ExitFunction : +# 551| r0_2(glval<..(*)(..)>) = VariableAddress[pfn] : +# 551| mu0_3(..(*)(..)) = InitializeParameter[pfn] : r0_2 +# 552| r0_4(glval) = VariableAddress[#return] : +# 552| r0_5(glval<..(*)(..)>) = VariableAddress[pfn] : +# 552| r0_6(..(*)(..)) = Load : r0_5, mu0_1 +# 552| r0_7(int) = Constant[5] : +# 552| r0_8(int) = Invoke : r0_6, r0_7 +# 552| mu0_9(int) = Store : r0_4, r0_8 +# 551| r0_10(glval) = VariableAddress[#return] : +# 551| v0_11(void) = ReturnValue : r0_10, mu0_1 +# 551| v0_12(void) = UnmodeledUse : mu* +# 551| v0_13(void) = ExitFunction : # 560| EnumSwitch(E) -> int # 560| Block 0 # 560| v0_0(void) = EnterFunction : # 560| mu0_1(unknown) = UnmodeledDefinition : -# 560| r0_2(E) = InitializeParameter[e] : -# 560| r0_3(glval) = VariableAddress[e] : -# 560| mu0_4(E) = Store : r0_3, r0_2 -# 561| r0_5(glval) = VariableAddress[e] : -# 561| r0_6(E) = Load : r0_5, mu0_1 -# 561| r0_7(int) = Convert : r0_6 -# 561| v0_8(void) = Switch : r0_7 +# 560| r0_2(glval) = VariableAddress[e] : +# 560| mu0_3(E) = InitializeParameter[e] : r0_2 +# 561| r0_4(glval) = VariableAddress[e] : +# 561| r0_5(E) = Load : r0_4, mu0_1 +# 561| r0_6(int) = Convert : r0_5 +# 561| v0_7(void) = Switch : r0_6 #-----| Case[0] -> Block 4 #-----| Case[1] -> Block 2 #-----| Default -> Block 3 @@ -2543,44 +2458,43 @@ ir.cpp: # 574| r0_16(char[5]) = Load : r0_15, mu0_1 # 574| mu0_17(char[5]) = Store : r0_14, r0_16 # 575| r0_18(glval) = VariableAddress[b] : -# 575| r0_19(char[2]) = Uninitialized : -# 575| mu0_20(char[2]) = Store : r0_18, r0_19 -# 576| r0_21(glval) = VariableAddress[c] : -# 576| r0_22(int) = Constant[0] : -# 576| r0_23(glval) = PointerAdd : r0_21, r0_22 -# 576| r0_24(unknown[2]) = Constant[0] : -# 576| mu0_25(unknown[2]) = Store : r0_23, r0_24 -# 577| r0_26(glval) = VariableAddress[d] : -# 577| r0_27(int) = Constant[0] : -# 577| r0_28(glval) = PointerAdd : r0_26, r0_27 -# 577| r0_29(char) = Constant[0] : -# 577| mu0_30(char) = Store : r0_28, r0_29 -# 577| r0_31(int) = Constant[1] : -# 577| r0_32(glval) = PointerAdd : r0_26, r0_31 -# 577| r0_33(char) = Constant[0] : -# 577| mu0_34(char) = Store : r0_32, r0_33 -# 578| r0_35(glval) = VariableAddress[e] : -# 578| r0_36(int) = Constant[0] : -# 578| r0_37(glval) = PointerAdd : r0_35, r0_36 -# 578| r0_38(char) = Constant[0] : -# 578| mu0_39(char) = Store : r0_37, r0_38 -# 578| r0_40(int) = Constant[1] : -# 578| r0_41(glval) = PointerAdd : r0_35, r0_40 -# 578| r0_42(char) = Constant[1] : -# 578| mu0_43(char) = Store : r0_41, r0_42 -# 579| r0_44(glval) = VariableAddress[f] : -# 579| r0_45(int) = Constant[0] : -# 579| r0_46(glval) = PointerAdd : r0_44, r0_45 -# 579| r0_47(char) = Constant[0] : -# 579| mu0_48(char) = Store : r0_46, r0_47 -# 579| r0_49(int) = Constant[1] : -# 579| r0_50(glval) = PointerAdd : r0_44, r0_49 -# 579| r0_51(unknown[2]) = Constant[0] : -# 579| mu0_52(unknown[2]) = Store : r0_50, r0_51 -# 580| v0_53(void) = NoOp : -# 571| v0_54(void) = ReturnVoid : -# 571| v0_55(void) = UnmodeledUse : mu* -# 571| v0_56(void) = ExitFunction : +# 575| mu0_19(char[2]) = Uninitialized : r0_18 +# 576| r0_20(glval) = VariableAddress[c] : +# 576| r0_21(int) = Constant[0] : +# 576| r0_22(glval) = PointerAdd : r0_20, r0_21 +# 576| r0_23(unknown[2]) = Constant[0] : +# 576| mu0_24(unknown[2]) = Store : r0_22, r0_23 +# 577| r0_25(glval) = VariableAddress[d] : +# 577| r0_26(int) = Constant[0] : +# 577| r0_27(glval) = PointerAdd : r0_25, r0_26 +# 577| r0_28(char) = Constant[0] : +# 577| mu0_29(char) = Store : r0_27, r0_28 +# 577| r0_30(int) = Constant[1] : +# 577| r0_31(glval) = PointerAdd : r0_25, r0_30 +# 577| r0_32(char) = Constant[0] : +# 577| mu0_33(char) = Store : r0_31, r0_32 +# 578| r0_34(glval) = VariableAddress[e] : +# 578| r0_35(int) = Constant[0] : +# 578| r0_36(glval) = PointerAdd : r0_34, r0_35 +# 578| r0_37(char) = Constant[0] : +# 578| mu0_38(char) = Store : r0_36, r0_37 +# 578| r0_39(int) = Constant[1] : +# 578| r0_40(glval) = PointerAdd : r0_34, r0_39 +# 578| r0_41(char) = Constant[1] : +# 578| mu0_42(char) = Store : r0_40, r0_41 +# 579| r0_43(glval) = VariableAddress[f] : +# 579| r0_44(int) = Constant[0] : +# 579| r0_45(glval) = PointerAdd : r0_43, r0_44 +# 579| r0_46(char) = Constant[0] : +# 579| mu0_47(char) = Store : r0_45, r0_46 +# 579| r0_48(int) = Constant[1] : +# 579| r0_49(glval) = PointerAdd : r0_43, r0_48 +# 579| r0_50(unknown[2]) = Constant[0] : +# 579| mu0_51(unknown[2]) = Store : r0_49, r0_50 +# 580| v0_52(void) = NoOp : +# 571| v0_53(void) = ReturnVoid : +# 571| v0_54(void) = UnmodeledUse : mu* +# 571| v0_55(void) = ExitFunction : # 584| VarArgs() -> void # 584| Block 0 @@ -2649,83 +2563,77 @@ ir.cpp: # 622| Block 0 # 622| v0_0(void) = EnterFunction : # 622| mu0_1(unknown) = UnmodeledDefinition : -# 622| r0_2(String &) = InitializeParameter[r] : -# 622| r0_3(glval) = VariableAddress[r] : -# 622| mu0_4(String &) = Store : r0_3, r0_2 -# 622| r0_5(String *) = InitializeParameter[p] : -# 622| r0_6(glval) = VariableAddress[p] : -# 622| mu0_7(String *) = Store : r0_6, r0_5 -# 622| r0_8(String) = InitializeParameter[s] : -# 622| r0_9(glval) = VariableAddress[s] : -# 622| mu0_10(String) = Store : r0_9, r0_8 -# 623| r0_11(glval) = VariableAddress[r] : -# 623| r0_12(String &) = Load : r0_11, mu0_1 -# 623| r0_13(glval) = Convert : r0_12 -# 623| r0_14(bool) = FunctionAddress[c_str] : -# 623| r0_15(char *) = Invoke : r0_14, this:r0_13 -# 624| r0_16(glval) = VariableAddress[p] : -# 624| r0_17(String *) = Load : r0_16, mu0_1 -# 624| r0_18(String *) = Convert : r0_17 -# 624| r0_19(bool) = FunctionAddress[c_str] : -# 624| r0_20(char *) = Invoke : r0_19, this:r0_18 -# 625| r0_21(glval) = VariableAddress[s] : -# 625| r0_22(glval) = Convert : r0_21 -# 625| r0_23(bool) = FunctionAddress[c_str] : -# 625| r0_24(char *) = Invoke : r0_23, this:r0_22 -# 626| v0_25(void) = NoOp : -# 622| v0_26(void) = ReturnVoid : -# 622| v0_27(void) = UnmodeledUse : mu* -# 622| v0_28(void) = ExitFunction : +# 622| r0_2(glval) = VariableAddress[r] : +# 622| mu0_3(String &) = InitializeParameter[r] : r0_2 +# 622| r0_4(glval) = VariableAddress[p] : +# 622| mu0_5(String *) = InitializeParameter[p] : r0_4 +# 622| r0_6(glval) = VariableAddress[s] : +# 622| mu0_7(String) = InitializeParameter[s] : r0_6 +# 623| r0_8(glval) = VariableAddress[r] : +# 623| r0_9(String &) = Load : r0_8, mu0_1 +# 623| r0_10(glval) = Convert : r0_9 +# 623| r0_11(bool) = FunctionAddress[c_str] : +# 623| r0_12(char *) = Invoke : r0_11, this:r0_10 +# 624| r0_13(glval) = VariableAddress[p] : +# 624| r0_14(String *) = Load : r0_13, mu0_1 +# 624| r0_15(String *) = Convert : r0_14 +# 624| r0_16(bool) = FunctionAddress[c_str] : +# 624| r0_17(char *) = Invoke : r0_16, this:r0_15 +# 625| r0_18(glval) = VariableAddress[s] : +# 625| r0_19(glval) = Convert : r0_18 +# 625| r0_20(bool) = FunctionAddress[c_str] : +# 625| r0_21(char *) = Invoke : r0_20, this:r0_19 +# 626| v0_22(void) = NoOp : +# 622| v0_23(void) = ReturnVoid : +# 622| v0_24(void) = UnmodeledUse : mu* +# 622| v0_25(void) = ExitFunction : # 630| C::StaticMemberFunction(int) -> int # 630| Block 0 # 630| v0_0(void) = EnterFunction : # 630| mu0_1(unknown) = UnmodeledDefinition : -# 630| r0_2(int) = InitializeParameter[x] : -# 630| r0_3(glval) = VariableAddress[x] : -# 630| mu0_4(int) = Store : r0_3, r0_2 -# 631| r0_5(glval) = VariableAddress[#return] : -# 631| r0_6(glval) = VariableAddress[x] : -# 631| r0_7(int) = Load : r0_6, mu0_1 -# 631| mu0_8(int) = Store : r0_5, r0_7 -# 630| r0_9(glval) = VariableAddress[#return] : -# 630| v0_10(void) = ReturnValue : r0_9, mu0_1 -# 630| v0_11(void) = UnmodeledUse : mu* -# 630| v0_12(void) = ExitFunction : +# 630| r0_2(glval) = VariableAddress[x] : +# 630| mu0_3(int) = InitializeParameter[x] : r0_2 +# 631| r0_4(glval) = VariableAddress[#return] : +# 631| r0_5(glval) = VariableAddress[x] : +# 631| r0_6(int) = Load : r0_5, mu0_1 +# 631| mu0_7(int) = Store : r0_4, r0_6 +# 630| r0_8(glval) = VariableAddress[#return] : +# 630| v0_9(void) = ReturnValue : r0_8, mu0_1 +# 630| v0_10(void) = UnmodeledUse : mu* +# 630| v0_11(void) = ExitFunction : # 634| C::InstanceMemberFunction(int) -> int # 634| Block 0 -# 634| v0_0(void) = EnterFunction : -# 634| mu0_1(unknown) = UnmodeledDefinition : -# 634| r0_2(glval) = InitializeThis : -# 634| r0_3(int) = InitializeParameter[x] : -# 634| r0_4(glval) = VariableAddress[x] : -# 634| mu0_5(int) = Store : r0_4, r0_3 -# 635| r0_6(glval) = VariableAddress[#return] : -# 635| r0_7(glval) = VariableAddress[x] : -# 635| r0_8(int) = Load : r0_7, mu0_1 -# 635| mu0_9(int) = Store : r0_6, r0_8 -# 634| r0_10(glval) = VariableAddress[#return] : -# 634| v0_11(void) = ReturnValue : r0_10, mu0_1 -# 634| v0_12(void) = UnmodeledUse : mu* -# 634| v0_13(void) = ExitFunction : +# 634| v0_0(void) = EnterFunction : +# 634| mu0_1(unknown) = UnmodeledDefinition : +# 634| r0_2(glval) = InitializeThis : +# 634| r0_3(glval) = VariableAddress[x] : +# 634| mu0_4(int) = InitializeParameter[x] : r0_3 +# 635| r0_5(glval) = VariableAddress[#return] : +# 635| r0_6(glval) = VariableAddress[x] : +# 635| r0_7(int) = Load : r0_6, mu0_1 +# 635| mu0_8(int) = Store : r0_5, r0_7 +# 634| r0_9(glval) = VariableAddress[#return] : +# 634| v0_10(void) = ReturnValue : r0_9, mu0_1 +# 634| v0_11(void) = UnmodeledUse : mu* +# 634| v0_12(void) = ExitFunction : # 638| C::VirtualMemberFunction(int) -> int # 638| Block 0 -# 638| v0_0(void) = EnterFunction : -# 638| mu0_1(unknown) = UnmodeledDefinition : -# 638| r0_2(glval) = InitializeThis : -# 638| r0_3(int) = InitializeParameter[x] : -# 638| r0_4(glval) = VariableAddress[x] : -# 638| mu0_5(int) = Store : r0_4, r0_3 -# 639| r0_6(glval) = VariableAddress[#return] : -# 639| r0_7(glval) = VariableAddress[x] : -# 639| r0_8(int) = Load : r0_7, mu0_1 -# 639| mu0_9(int) = Store : r0_6, r0_8 -# 638| r0_10(glval) = VariableAddress[#return] : -# 638| v0_11(void) = ReturnValue : r0_10, mu0_1 -# 638| v0_12(void) = UnmodeledUse : mu* -# 638| v0_13(void) = ExitFunction : +# 638| v0_0(void) = EnterFunction : +# 638| mu0_1(unknown) = UnmodeledDefinition : +# 638| r0_2(glval) = InitializeThis : +# 638| r0_3(glval) = VariableAddress[x] : +# 638| mu0_4(int) = InitializeParameter[x] : r0_3 +# 639| r0_5(glval) = VariableAddress[#return] : +# 639| r0_6(glval) = VariableAddress[x] : +# 639| r0_7(int) = Load : r0_6, mu0_1 +# 639| mu0_8(int) = Store : r0_5, r0_7 +# 638| r0_9(glval) = VariableAddress[#return] : +# 638| v0_10(void) = ReturnValue : r0_9, mu0_1 +# 638| v0_11(void) = UnmodeledUse : mu* +# 638| v0_12(void) = ExitFunction : # 642| C::FieldAccess() -> void # 642| Block 0 @@ -2745,27 +2653,26 @@ ir.cpp: # 645| r0_13(glval) = FieldAddress[m_a] : r0_12 # 645| mu0_14(int) = Store : r0_13, r0_11 # 646| r0_15(glval) = VariableAddress[x] : -# 646| r0_16(int) = Uninitialized : -# 646| mu0_17(int) = Store : r0_15, r0_16 -# 647| r0_18(C *) = CopyValue : r0_2 -# 647| r0_19(glval) = FieldAddress[m_a] : r0_18 -# 647| r0_20(int) = Load : r0_19, mu0_1 -# 647| r0_21(glval) = VariableAddress[x] : -# 647| mu0_22(int) = Store : r0_21, r0_20 -# 648| r0_23(C *) = CopyValue : r0_2 -# 648| r0_24(glval) = FieldAddress[m_a] : r0_23 -# 648| r0_25(int) = Load : r0_24, mu0_1 -# 648| r0_26(glval) = VariableAddress[x] : -# 648| mu0_27(int) = Store : r0_26, r0_25 -#-----| r0_28(C *) = CopyValue : r0_2 -# 649| r0_29(glval) = FieldAddress[m_a] : r0_28 -# 649| r0_30(int) = Load : r0_29, mu0_1 -# 649| r0_31(glval) = VariableAddress[x] : -# 649| mu0_32(int) = Store : r0_31, r0_30 -# 650| v0_33(void) = NoOp : -# 642| v0_34(void) = ReturnVoid : -# 642| v0_35(void) = UnmodeledUse : mu* -# 642| v0_36(void) = ExitFunction : +# 646| mu0_16(int) = Uninitialized : r0_15 +# 647| r0_17(C *) = CopyValue : r0_2 +# 647| r0_18(glval) = FieldAddress[m_a] : r0_17 +# 647| r0_19(int) = Load : r0_18, mu0_1 +# 647| r0_20(glval) = VariableAddress[x] : +# 647| mu0_21(int) = Store : r0_20, r0_19 +# 648| r0_22(C *) = CopyValue : r0_2 +# 648| r0_23(glval) = FieldAddress[m_a] : r0_22 +# 648| r0_24(int) = Load : r0_23, mu0_1 +# 648| r0_25(glval) = VariableAddress[x] : +# 648| mu0_26(int) = Store : r0_25, r0_24 +#-----| r0_27(C *) = CopyValue : r0_2 +# 649| r0_28(glval) = FieldAddress[m_a] : r0_27 +# 649| r0_29(int) = Load : r0_28, mu0_1 +# 649| r0_30(glval) = VariableAddress[x] : +# 649| mu0_31(int) = Store : r0_30, r0_29 +# 650| v0_32(void) = NoOp : +# 642| v0_33(void) = ReturnVoid : +# 642| v0_34(void) = UnmodeledUse : mu* +# 642| v0_35(void) = ExitFunction : # 652| C::MethodCalls() -> void # 652| Block 0 @@ -2820,18 +2727,17 @@ ir.cpp: # 675| Block 0 # 675| v0_0(void) = EnterFunction : # 675| mu0_1(unknown) = UnmodeledDefinition : -# 675| r0_2(int &) = InitializeParameter[r] : -# 675| r0_3(glval) = VariableAddress[r] : -# 675| mu0_4(int &) = Store : r0_3, r0_2 -# 676| r0_5(glval) = VariableAddress[#return] : -# 676| r0_6(glval) = VariableAddress[r] : -# 676| r0_7(int &) = Load : r0_6, mu0_1 -# 676| r0_8(int) = Load : r0_7, mu0_1 -# 676| mu0_9(int) = Store : r0_5, r0_8 -# 675| r0_10(glval) = VariableAddress[#return] : -# 675| v0_11(void) = ReturnValue : r0_10, mu0_1 -# 675| v0_12(void) = UnmodeledUse : mu* -# 675| v0_13(void) = ExitFunction : +# 675| r0_2(glval) = VariableAddress[r] : +# 675| mu0_3(int &) = InitializeParameter[r] : r0_2 +# 676| r0_4(glval) = VariableAddress[#return] : +# 676| r0_5(glval) = VariableAddress[r] : +# 676| r0_6(int &) = Load : r0_5, mu0_1 +# 676| r0_7(int) = Load : r0_6, mu0_1 +# 676| mu0_8(int) = Store : r0_4, r0_7 +# 675| r0_9(glval) = VariableAddress[#return] : +# 675| v0_10(void) = ReturnValue : r0_9, mu0_1 +# 675| v0_11(void) = UnmodeledUse : mu* +# 675| v0_12(void) = ExitFunction : # 679| TakeReference() -> int & # 679| Block 0 @@ -2849,48 +2755,46 @@ ir.cpp: # 685| Block 0 # 685| v0_0(void) = EnterFunction : # 685| mu0_1(unknown) = UnmodeledDefinition : -# 685| r0_2(int) = InitializeParameter[x] : -# 685| r0_3(glval) = VariableAddress[x] : -# 685| mu0_4(int) = Store : r0_3, r0_2 -# 686| r0_5(glval) = VariableAddress[r] : -# 686| r0_6(glval) = VariableAddress[x] : -# 686| mu0_7(int &) = Store : r0_5, r0_6 -# 687| r0_8(glval) = VariableAddress[r2] : -# 687| r0_9(glval) = VariableAddress[r] : -# 687| r0_10(int &) = Load : r0_9, mu0_1 -# 687| mu0_11(int &) = Store : r0_8, r0_10 -# 688| r0_12(glval) = VariableAddress[r3] : -# 688| r0_13(bool) = FunctionAddress[ReturnReference] : -# 688| r0_14(String &) = Invoke : r0_13 -# 688| r0_15(glval) = Convert : r0_14 -# 688| mu0_16(String &) = Store : r0_12, r0_15 -# 689| v0_17(void) = NoOp : -# 685| v0_18(void) = ReturnVoid : -# 685| v0_19(void) = UnmodeledUse : mu* -# 685| v0_20(void) = ExitFunction : +# 685| r0_2(glval) = VariableAddress[x] : +# 685| mu0_3(int) = InitializeParameter[x] : r0_2 +# 686| r0_4(glval) = VariableAddress[r] : +# 686| r0_5(glval) = VariableAddress[x] : +# 686| mu0_6(int &) = Store : r0_4, r0_5 +# 687| r0_7(glval) = VariableAddress[r2] : +# 687| r0_8(glval) = VariableAddress[r] : +# 687| r0_9(int &) = Load : r0_8, mu0_1 +# 687| mu0_10(int &) = Store : r0_7, r0_9 +# 688| r0_11(glval) = VariableAddress[r3] : +# 688| r0_12(bool) = FunctionAddress[ReturnReference] : +# 688| r0_13(String &) = Invoke : r0_12 +# 688| r0_14(glval) = Convert : r0_13 +# 688| mu0_15(String &) = Store : r0_11, r0_14 +# 689| v0_16(void) = NoOp : +# 685| v0_17(void) = ReturnVoid : +# 685| v0_18(void) = UnmodeledUse : mu* +# 685| v0_19(void) = ExitFunction : # 691| ArrayReferences() -> void # 691| Block 0 # 691| v0_0(void) = EnterFunction : # 691| mu0_1(unknown) = UnmodeledDefinition : # 692| r0_2(glval) = VariableAddress[a] : -# 692| r0_3(int[10]) = Uninitialized : -# 692| mu0_4(int[10]) = Store : r0_2, r0_3 -# 693| r0_5(glval) = VariableAddress[ra] : -# 693| r0_6(glval) = VariableAddress[a] : -# 693| mu0_7(int(&)[10]) = Store : r0_5, r0_6 -# 694| r0_8(glval) = VariableAddress[x] : -# 694| r0_9(glval) = VariableAddress[ra] : -# 694| r0_10(int(&)[10]) = Load : r0_9, mu0_1 -# 694| r0_11(int *) = Convert : r0_10 -# 694| r0_12(int) = Constant[5] : -# 694| r0_13(int *) = PointerAdd[4] : r0_11, r0_12 -# 694| r0_14(int) = Load : r0_13, mu0_1 -# 694| mu0_15(int) = Store : r0_8, r0_14 -# 695| v0_16(void) = NoOp : -# 691| v0_17(void) = ReturnVoid : -# 691| v0_18(void) = UnmodeledUse : mu* -# 691| v0_19(void) = ExitFunction : +# 692| mu0_3(int[10]) = Uninitialized : r0_2 +# 693| r0_4(glval) = VariableAddress[ra] : +# 693| r0_5(glval) = VariableAddress[a] : +# 693| mu0_6(int(&)[10]) = Store : r0_4, r0_5 +# 694| r0_7(glval) = VariableAddress[x] : +# 694| r0_8(glval) = VariableAddress[ra] : +# 694| r0_9(int(&)[10]) = Load : r0_8, mu0_1 +# 694| r0_10(int *) = Convert : r0_9 +# 694| r0_11(int) = Constant[5] : +# 694| r0_12(int *) = PointerAdd[4] : r0_10, r0_11 +# 694| r0_13(int) = Load : r0_12, mu0_1 +# 694| mu0_14(int) = Store : r0_7, r0_13 +# 695| v0_15(void) = NoOp : +# 691| v0_16(void) = ReturnVoid : +# 691| v0_17(void) = UnmodeledUse : mu* +# 691| v0_18(void) = ExitFunction : # 697| FunctionReferences() -> void # 697| Block 0 @@ -2914,21 +2818,19 @@ ir.cpp: # 704| min(int, int) -> int # 704| Block 0 -# 704| v0_0(void) = EnterFunction : -# 704| mu0_1(unknown) = UnmodeledDefinition : -# 704| r0_2(int) = InitializeParameter[x] : -# 704| r0_3(glval) = VariableAddress[x] : -# 704| mu0_4(int) = Store : r0_3, r0_2 -# 704| r0_5(int) = InitializeParameter[y] : -# 704| r0_6(glval) = VariableAddress[y] : -# 704| mu0_7(int) = Store : r0_6, r0_5 -# 705| r0_8(glval) = VariableAddress[#return] : -# 705| r0_9(glval) = VariableAddress[x] : -# 705| r0_10(int) = Load : r0_9, mu0_1 -# 705| r0_11(glval) = VariableAddress[y] : -# 705| r0_12(int) = Load : r0_11, mu0_1 -# 705| r0_13(bool) = CompareLT : r0_10, r0_12 -# 705| v0_14(void) = ConditionalBranch : r0_13 +# 704| v0_0(void) = EnterFunction : +# 704| mu0_1(unknown) = UnmodeledDefinition : +# 704| r0_2(glval) = VariableAddress[x] : +# 704| mu0_3(int) = InitializeParameter[x] : r0_2 +# 704| r0_4(glval) = VariableAddress[y] : +# 704| mu0_5(int) = InitializeParameter[y] : r0_4 +# 705| r0_6(glval) = VariableAddress[#return] : +# 705| r0_7(glval) = VariableAddress[x] : +# 705| r0_8(int) = Load : r0_7, mu0_1 +# 705| r0_9(glval) = VariableAddress[y] : +# 705| r0_10(int) = Load : r0_9, mu0_1 +# 705| r0_11(bool) = CompareLT : r0_8, r0_10 +# 705| v0_12(void) = ConditionalBranch : r0_11 #-----| False -> Block 2 #-----| True -> Block 1 @@ -2949,7 +2851,7 @@ ir.cpp: # 705| Block 3 # 705| r3_0(glval) = VariableAddress[#temp705:10] : # 705| r3_1(int) = Load : r3_0, mu0_1 -# 705| mu3_2(int) = Store : r0_8, r3_1 +# 705| mu3_2(int) = Store : r0_6, r3_1 # 704| r3_3(glval) = VariableAddress[#return] : # 704| v3_4(void) = ReturnValue : r3_3, mu0_1 # 704| v3_5(void) = UnmodeledUse : mu* @@ -2959,42 +2861,38 @@ ir.cpp: # 708| Block 0 # 708| v0_0(void) = EnterFunction : # 708| mu0_1(unknown) = UnmodeledDefinition : -# 708| r0_2(int) = InitializeParameter[x] : -# 708| r0_3(glval) = VariableAddress[x] : -# 708| mu0_4(int) = Store : r0_3, r0_2 -# 708| r0_5(int) = InitializeParameter[y] : -# 708| r0_6(glval) = VariableAddress[y] : -# 708| mu0_7(int) = Store : r0_6, r0_5 -# 709| r0_8(glval) = VariableAddress[#return] : -# 709| r0_9(bool) = FunctionAddress[min] : -# 709| r0_10(glval) = VariableAddress[x] : +# 708| r0_2(glval) = VariableAddress[x] : +# 708| mu0_3(int) = InitializeParameter[x] : r0_2 +# 708| r0_4(glval) = VariableAddress[y] : +# 708| mu0_5(int) = InitializeParameter[y] : r0_4 +# 709| r0_6(glval) = VariableAddress[#return] : +# 709| r0_7(bool) = FunctionAddress[min] : +# 709| r0_8(glval) = VariableAddress[x] : +# 709| r0_9(int) = Load : r0_8, mu0_1 +# 709| r0_10(glval) = VariableAddress[y] : # 709| r0_11(int) = Load : r0_10, mu0_1 -# 709| r0_12(glval) = VariableAddress[y] : -# 709| r0_13(int) = Load : r0_12, mu0_1 -# 709| r0_14(int) = Invoke : r0_9, r0_11, r0_13 -# 709| mu0_15(int) = Store : r0_8, r0_14 -# 708| r0_16(glval) = VariableAddress[#return] : -# 708| v0_17(void) = ReturnValue : r0_16, mu0_1 -# 708| v0_18(void) = UnmodeledUse : mu* -# 708| v0_19(void) = ExitFunction : +# 709| r0_12(int) = Invoke : r0_7, r0_9, r0_11 +# 709| mu0_13(int) = Store : r0_6, r0_12 +# 708| r0_14(glval) = VariableAddress[#return] : +# 708| v0_15(void) = ReturnValue : r0_14, mu0_1 +# 708| v0_16(void) = UnmodeledUse : mu* +# 708| v0_17(void) = ExitFunction : # 715| Outer::Func(void *, char) -> long # 715| Block 0 # 715| v0_0(void) = EnterFunction : # 715| mu0_1(unknown) = UnmodeledDefinition : -# 715| r0_2(void *) = InitializeParameter[x] : -# 715| r0_3(glval) = VariableAddress[x] : -# 715| mu0_4(void *) = Store : r0_3, r0_2 -# 715| r0_5(char) = InitializeParameter[y] : -# 715| r0_6(glval) = VariableAddress[y] : -# 715| mu0_7(char) = Store : r0_6, r0_5 -# 716| r0_8(glval) = VariableAddress[#return] : -# 716| r0_9(long) = Constant[0] : -# 716| mu0_10(long) = Store : r0_8, r0_9 -# 715| r0_11(glval) = VariableAddress[#return] : -# 715| v0_12(void) = ReturnValue : r0_11, mu0_1 -# 715| v0_13(void) = UnmodeledUse : mu* -# 715| v0_14(void) = ExitFunction : +# 715| r0_2(glval) = VariableAddress[x] : +# 715| mu0_3(void *) = InitializeParameter[x] : r0_2 +# 715| r0_4(glval) = VariableAddress[y] : +# 715| mu0_5(char) = InitializeParameter[y] : r0_4 +# 716| r0_6(glval) = VariableAddress[#return] : +# 716| r0_7(long) = Constant[0] : +# 716| mu0_8(long) = Store : r0_6, r0_7 +# 715| r0_9(glval) = VariableAddress[#return] : +# 715| v0_10(void) = ReturnValue : r0_9, mu0_1 +# 715| v0_11(void) = UnmodeledUse : mu* +# 715| v0_12(void) = ExitFunction : # 720| CallNestedTemplateFunc() -> double # 720| Block 0 @@ -3016,15 +2914,14 @@ ir.cpp: # 724| Block 0 # 724| v0_0(void) = EnterFunction : # 724| mu0_1(unknown) = UnmodeledDefinition : -# 724| r0_2(bool) = InitializeParameter[b] : -# 724| r0_3(glval) = VariableAddress[b] : -# 724| mu0_4(bool) = Store : r0_3, r0_2 -# 726| r0_5(glval) = VariableAddress[x] : -# 726| r0_6(int) = Constant[5] : -# 726| mu0_7(int) = Store : r0_5, r0_6 -# 727| r0_8(glval) = VariableAddress[b] : -# 727| r0_9(bool) = Load : r0_8, mu0_1 -# 727| v0_10(void) = ConditionalBranch : r0_9 +# 724| r0_2(glval) = VariableAddress[b] : +# 724| mu0_3(bool) = InitializeParameter[b] : r0_2 +# 726| r0_4(glval) = VariableAddress[x] : +# 726| r0_5(int) = Constant[5] : +# 726| mu0_6(int) = Store : r0_4, r0_5 +# 727| r0_7(glval) = VariableAddress[b] : +# 727| r0_8(bool) = Load : r0_7, mu0_1 +# 727| v0_9(void) = ConditionalBranch : r0_8 #-----| False -> Block 4 #-----| True -> Block 3 @@ -3091,15 +2988,14 @@ ir.cpp: #-----| Goto -> Block 10 # 735| Block 10 -# 735| r10_0(char *) = InitializeParameter[s] : -# 735| r10_1(glval) = VariableAddress[s] : -# 735| mu10_2(char *) = Store : r10_1, r10_0 -# 736| r10_3(glval) = VariableAddress[#throw736:5] : -# 736| r10_4(bool) = FunctionAddress[String] : -# 736| r10_5(glval) = VariableAddress[s] : -# 736| r10_6(char *) = Load : r10_5, mu0_1 -# 736| v10_7(void) = Invoke : r10_4, this:r10_3, r10_6 -# 736| v10_8(void) = ThrowValue : r10_3, mu0_1 +# 735| r10_0(glval) = VariableAddress[s] : +# 735| mu10_1(char *) = InitializeParameter[s] : r10_0 +# 736| r10_2(glval) = VariableAddress[#throw736:5] : +# 736| r10_3(bool) = FunctionAddress[String] : +# 736| r10_4(glval) = VariableAddress[s] : +# 736| r10_5(char *) = Load : r10_4, mu0_1 +# 736| v10_6(void) = Invoke : r10_3, this:r10_2, r10_5 +# 736| v10_7(void) = ThrowValue : r10_2, mu0_1 #-----| Exception -> Block 2 # 738| Block 11 @@ -3108,10 +3004,9 @@ ir.cpp: #-----| Goto -> Block 12 # 738| Block 12 -# 738| r12_0(String &) = InitializeParameter[e] : -# 738| r12_1(glval) = VariableAddress[e] : -# 738| mu12_2(String &) = Store : r12_1, r12_0 -# 738| v12_3(void) = NoOp : +# 738| r12_0(glval) = VariableAddress[e] : +# 738| mu12_1(String &) = InitializeParameter[e] : r12_0 +# 738| v12_2(void) = NoOp : #-----| Goto -> Block 14 # 740| Block 13 @@ -3129,39 +3024,37 @@ ir.cpp: # 745| v0_0(void) = EnterFunction : # 745| mu0_1(unknown) = UnmodeledDefinition : # 745| r0_2(glval) = InitializeThis : -#-----| r0_3(Base &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| mu0_5(Base &) = Store : r0_4, r0_3 -# 745| r0_6(glval) = FieldAddress[base_s] : r0_2 -# 745| r0_7(bool) = FunctionAddress[String] : -# 745| v0_8(void) = Invoke : r0_7, this:r0_6 -# 745| v0_9(void) = NoOp : -# 745| v0_10(void) = ReturnVoid : -# 745| v0_11(void) = UnmodeledUse : mu* -# 745| v0_12(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| mu0_4(Base &) = InitializeParameter[p#0] : r0_3 +# 745| r0_5(glval) = FieldAddress[base_s] : r0_2 +# 745| r0_6(bool) = FunctionAddress[String] : +# 745| v0_7(void) = Invoke : r0_6, this:r0_5 +# 745| v0_8(void) = NoOp : +# 745| v0_9(void) = ReturnVoid : +# 745| v0_10(void) = UnmodeledUse : mu* +# 745| v0_11(void) = ExitFunction : # 745| Base::operator=(const Base &) -> Base & # 745| Block 0 # 745| v0_0(void) = EnterFunction : # 745| mu0_1(unknown) = UnmodeledDefinition : # 745| r0_2(glval) = InitializeThis : -#-----| r0_3(Base &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| mu0_5(Base &) = Store : r0_4, r0_3 -#-----| r0_6(Base *) = CopyValue : r0_2 -#-----| r0_7(glval) = FieldAddress[base_s] : r0_6 -# 745| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Base &) = Load : r0_9, mu0_1 -#-----| r0_11(glval) = FieldAddress[base_s] : r0_10 -# 745| r0_12(String &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(glval) = VariableAddress[#return] : -#-----| r0_14(Base *) = CopyValue : r0_2 -#-----| mu0_15(Base &) = Store : r0_13, r0_14 -# 745| r0_16(glval) = VariableAddress[#return] : -# 745| v0_17(void) = ReturnValue : r0_16, mu0_1 -# 745| v0_18(void) = UnmodeledUse : mu* -# 745| v0_19(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| mu0_4(Base &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Base *) = CopyValue : r0_2 +#-----| r0_6(glval) = FieldAddress[base_s] : r0_5 +# 745| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Base &) = Load : r0_8, mu0_1 +#-----| r0_10(glval) = FieldAddress[base_s] : r0_9 +# 745| r0_11(String &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(glval) = VariableAddress[#return] : +#-----| r0_13(Base *) = CopyValue : r0_2 +#-----| mu0_14(Base &) = Store : r0_12, r0_13 +# 745| r0_15(glval) = VariableAddress[#return] : +# 745| v0_16(void) = ReturnValue : r0_15, mu0_1 +# 745| v0_17(void) = UnmodeledUse : mu* +# 745| v0_18(void) = ExitFunction : # 748| Base::Base() -> void # 748| Block 0 @@ -3194,30 +3087,29 @@ ir.cpp: # 754| v0_0(void) = EnterFunction : # 754| mu0_1(unknown) = UnmodeledDefinition : # 754| r0_2(glval) = InitializeThis : -#-----| r0_3(Middle &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| mu0_5(Middle &) = Store : r0_4, r0_3 -#-----| r0_6(Middle *) = CopyValue : r0_2 -#-----| r0_7(Base *) = ConvertToBase[Middle : Base] : r0_6 -# 754| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Middle &) = Load : r0_9, mu0_1 -#-----| r0_11(Base *) = ConvertToBase[Middle : Base] : r0_10 -# 754| r0_12(Base &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(Middle *) = CopyValue : r0_2 -#-----| r0_14(glval) = FieldAddress[middle_s] : r0_13 -# 754| r0_15(bool) = FunctionAddress[operator=] : -#-----| r0_16(glval) = VariableAddress[p#0] : -#-----| r0_17(Middle &) = Load : r0_16, mu0_1 -#-----| r0_18(glval) = FieldAddress[middle_s] : r0_17 -# 754| r0_19(String &) = Invoke : r0_15, this:r0_14, r0_18 -#-----| r0_20(glval) = VariableAddress[#return] : -#-----| r0_21(Middle *) = CopyValue : r0_2 -#-----| mu0_22(Middle &) = Store : r0_20, r0_21 -# 754| r0_23(glval) = VariableAddress[#return] : -# 754| v0_24(void) = ReturnValue : r0_23, mu0_1 -# 754| v0_25(void) = UnmodeledUse : mu* -# 754| v0_26(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| mu0_4(Middle &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Middle *) = CopyValue : r0_2 +#-----| r0_6(Base *) = ConvertToBase[Middle : Base] : r0_5 +# 754| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Middle &) = Load : r0_8, mu0_1 +#-----| r0_10(Base *) = ConvertToBase[Middle : Base] : r0_9 +# 754| r0_11(Base &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(Middle *) = CopyValue : r0_2 +#-----| r0_13(glval) = FieldAddress[middle_s] : r0_12 +# 754| r0_14(bool) = FunctionAddress[operator=] : +#-----| r0_15(glval) = VariableAddress[p#0] : +#-----| r0_16(Middle &) = Load : r0_15, mu0_1 +#-----| r0_17(glval) = FieldAddress[middle_s] : r0_16 +# 754| r0_18(String &) = Invoke : r0_14, this:r0_13, r0_17 +#-----| r0_19(glval) = VariableAddress[#return] : +#-----| r0_20(Middle *) = CopyValue : r0_2 +#-----| mu0_21(Middle &) = Store : r0_19, r0_20 +# 754| r0_22(glval) = VariableAddress[#return] : +# 754| v0_23(void) = ReturnValue : r0_22, mu0_1 +# 754| v0_24(void) = UnmodeledUse : mu* +# 754| v0_25(void) = ExitFunction : # 757| Middle::Middle() -> void # 757| Block 0 @@ -3256,30 +3148,29 @@ ir.cpp: # 763| v0_0(void) = EnterFunction : # 763| mu0_1(unknown) = UnmodeledDefinition : # 763| r0_2(glval) = InitializeThis : -#-----| r0_3(Derived &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| mu0_5(Derived &) = Store : r0_4, r0_3 -#-----| r0_6(Derived *) = CopyValue : r0_2 -#-----| r0_7(Middle *) = ConvertToBase[Derived : Middle] : r0_6 -# 763| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Derived &) = Load : r0_9, mu0_1 -#-----| r0_11(Middle *) = ConvertToBase[Derived : Middle] : r0_10 -# 763| r0_12(Middle &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(Derived *) = CopyValue : r0_2 -#-----| r0_14(glval) = FieldAddress[derived_s] : r0_13 -# 763| r0_15(bool) = FunctionAddress[operator=] : -#-----| r0_16(glval) = VariableAddress[p#0] : -#-----| r0_17(Derived &) = Load : r0_16, mu0_1 -#-----| r0_18(glval) = FieldAddress[derived_s] : r0_17 -# 763| r0_19(String &) = Invoke : r0_15, this:r0_14, r0_18 -#-----| r0_20(glval) = VariableAddress[#return] : -#-----| r0_21(Derived *) = CopyValue : r0_2 -#-----| mu0_22(Derived &) = Store : r0_20, r0_21 -# 763| r0_23(glval) = VariableAddress[#return] : -# 763| v0_24(void) = ReturnValue : r0_23, mu0_1 -# 763| v0_25(void) = UnmodeledUse : mu* -# 763| v0_26(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| mu0_4(Derived &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Derived *) = CopyValue : r0_2 +#-----| r0_6(Middle *) = ConvertToBase[Derived : Middle] : r0_5 +# 763| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Derived &) = Load : r0_8, mu0_1 +#-----| r0_10(Middle *) = ConvertToBase[Derived : Middle] : r0_9 +# 763| r0_11(Middle &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(Derived *) = CopyValue : r0_2 +#-----| r0_13(glval) = FieldAddress[derived_s] : r0_12 +# 763| r0_14(bool) = FunctionAddress[operator=] : +#-----| r0_15(glval) = VariableAddress[p#0] : +#-----| r0_16(Derived &) = Load : r0_15, mu0_1 +#-----| r0_17(glval) = FieldAddress[derived_s] : r0_16 +# 763| r0_18(String &) = Invoke : r0_14, this:r0_13, r0_17 +#-----| r0_19(glval) = VariableAddress[#return] : +#-----| r0_20(Derived *) = CopyValue : r0_2 +#-----| mu0_21(Derived &) = Store : r0_19, r0_20 +# 763| r0_22(glval) = VariableAddress[#return] : +# 763| v0_23(void) = ReturnValue : r0_22, mu0_1 +# 763| v0_24(void) = UnmodeledUse : mu* +# 763| v0_25(void) = ExitFunction : # 766| Derived::Derived() -> void # 766| Block 0 @@ -3714,153 +3605,145 @@ ir.cpp: # 871| v0_0(void) = EnterFunction : # 871| mu0_1(unknown) = UnmodeledDefinition : # 872| r0_2(glval) = VariableAddress[a] : -# 872| r0_3(char[5]) = Uninitialized : -# 872| mu0_4(char[5]) = Store : r0_2, r0_3 -# 873| r0_5(glval) = VariableAddress[p] : -# 873| r0_6(glval) = VariableAddress[a] : +# 872| mu0_3(char[5]) = Uninitialized : r0_2 +# 873| r0_4(glval) = VariableAddress[p] : +# 873| r0_5(glval) = VariableAddress[a] : +# 873| r0_6(char *) = Convert : r0_5 # 873| r0_7(char *) = Convert : r0_6 -# 873| r0_8(char *) = Convert : r0_7 -# 873| mu0_9(char *) = Store : r0_5, r0_8 -# 874| r0_10(glval) = StringConstant["test"] : -# 874| r0_11(char *) = Convert : r0_10 -# 874| r0_12(glval) = VariableAddress[p] : -# 874| mu0_13(char *) = Store : r0_12, r0_11 -# 875| r0_14(glval) = VariableAddress[a] : -# 875| r0_15(char *) = Convert : r0_14 -# 875| r0_16(int) = Constant[0] : -# 875| r0_17(char *) = PointerAdd[1] : r0_15, r0_16 -# 875| r0_18(char *) = Convert : r0_17 -# 875| r0_19(glval) = VariableAddress[p] : -# 875| mu0_20(char *) = Store : r0_19, r0_18 -# 876| r0_21(glval) = StringConstant["test"] : -# 876| r0_22(char *) = Convert : r0_21 -# 876| r0_23(int) = Constant[0] : -# 876| r0_24(char *) = PointerAdd[1] : r0_22, r0_23 -# 876| r0_25(glval) = VariableAddress[p] : -# 876| mu0_26(char *) = Store : r0_25, r0_24 -# 877| r0_27(glval) = VariableAddress[ra] : -# 877| r0_28(glval) = VariableAddress[a] : -# 877| mu0_29(char(&)[5]) = Store : r0_27, r0_28 -# 878| r0_30(glval) = VariableAddress[rs] : -# 878| r0_31(glval) = StringConstant["test"] : -# 878| mu0_32(char(&)[5]) = Store : r0_30, r0_31 -# 879| r0_33(glval) = VariableAddress[pa] : -# 879| r0_34(glval) = VariableAddress[a] : -# 879| r0_35(char(*)[5]) = Convert : r0_34 -# 879| mu0_36(char(*)[5]) = Store : r0_33, r0_35 -# 880| r0_37(glval) = StringConstant["test"] : -# 880| r0_38(glval) = VariableAddress[pa] : -# 880| mu0_39(char(*)[5]) = Store : r0_38, r0_37 -# 881| v0_40(void) = NoOp : -# 871| v0_41(void) = ReturnVoid : -# 871| v0_42(void) = UnmodeledUse : mu* -# 871| v0_43(void) = ExitFunction : +# 873| mu0_8(char *) = Store : r0_4, r0_7 +# 874| r0_9(glval) = StringConstant["test"] : +# 874| r0_10(char *) = Convert : r0_9 +# 874| r0_11(glval) = VariableAddress[p] : +# 874| mu0_12(char *) = Store : r0_11, r0_10 +# 875| r0_13(glval) = VariableAddress[a] : +# 875| r0_14(char *) = Convert : r0_13 +# 875| r0_15(int) = Constant[0] : +# 875| r0_16(char *) = PointerAdd[1] : r0_14, r0_15 +# 875| r0_17(char *) = Convert : r0_16 +# 875| r0_18(glval) = VariableAddress[p] : +# 875| mu0_19(char *) = Store : r0_18, r0_17 +# 876| r0_20(glval) = StringConstant["test"] : +# 876| r0_21(char *) = Convert : r0_20 +# 876| r0_22(int) = Constant[0] : +# 876| r0_23(char *) = PointerAdd[1] : r0_21, r0_22 +# 876| r0_24(glval) = VariableAddress[p] : +# 876| mu0_25(char *) = Store : r0_24, r0_23 +# 877| r0_26(glval) = VariableAddress[ra] : +# 877| r0_27(glval) = VariableAddress[a] : +# 877| mu0_28(char(&)[5]) = Store : r0_26, r0_27 +# 878| r0_29(glval) = VariableAddress[rs] : +# 878| r0_30(glval) = StringConstant["test"] : +# 878| mu0_31(char(&)[5]) = Store : r0_29, r0_30 +# 879| r0_32(glval) = VariableAddress[pa] : +# 879| r0_33(glval) = VariableAddress[a] : +# 879| r0_34(char(*)[5]) = Convert : r0_33 +# 879| mu0_35(char(*)[5]) = Store : r0_32, r0_34 +# 880| r0_36(glval) = StringConstant["test"] : +# 880| r0_37(glval) = VariableAddress[pa] : +# 880| mu0_38(char(*)[5]) = Store : r0_37, r0_36 +# 881| v0_39(void) = NoOp : +# 871| v0_40(void) = ReturnVoid : +# 871| v0_41(void) = UnmodeledUse : mu* +# 871| v0_42(void) = ExitFunction : # 883| FuncPtrConversions(..(*)(..), void *) -> void # 883| Block 0 # 883| v0_0(void) = EnterFunction : # 883| mu0_1(unknown) = UnmodeledDefinition : -# 883| r0_2(..(*)(..)) = InitializeParameter[pfn] : -# 883| r0_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 883| mu0_4(..(*)(..)) = Store : r0_3, r0_2 -# 883| r0_5(void *) = InitializeParameter[p] : -# 883| r0_6(glval) = VariableAddress[p] : -# 883| mu0_7(void *) = Store : r0_6, r0_5 -# 884| r0_8(glval<..(*)(..)>) = VariableAddress[pfn] : -# 884| r0_9(..(*)(..)) = Load : r0_8, mu0_1 -# 884| r0_10(void *) = Convert : r0_9 -# 884| r0_11(glval) = VariableAddress[p] : -# 884| mu0_12(void *) = Store : r0_11, r0_10 -# 885| r0_13(glval) = VariableAddress[p] : -# 885| r0_14(void *) = Load : r0_13, mu0_1 -# 885| r0_15(..(*)(..)) = Convert : r0_14 -# 885| r0_16(glval<..(*)(..)>) = VariableAddress[pfn] : -# 885| mu0_17(..(*)(..)) = Store : r0_16, r0_15 -# 886| v0_18(void) = NoOp : -# 883| v0_19(void) = ReturnVoid : -# 883| v0_20(void) = UnmodeledUse : mu* -# 883| v0_21(void) = ExitFunction : +# 883| r0_2(glval<..(*)(..)>) = VariableAddress[pfn] : +# 883| mu0_3(..(*)(..)) = InitializeParameter[pfn] : r0_2 +# 883| r0_4(glval) = VariableAddress[p] : +# 883| mu0_5(void *) = InitializeParameter[p] : r0_4 +# 884| r0_6(glval<..(*)(..)>) = VariableAddress[pfn] : +# 884| r0_7(..(*)(..)) = Load : r0_6, mu0_1 +# 884| r0_8(void *) = Convert : r0_7 +# 884| r0_9(glval) = VariableAddress[p] : +# 884| mu0_10(void *) = Store : r0_9, r0_8 +# 885| r0_11(glval) = VariableAddress[p] : +# 885| r0_12(void *) = Load : r0_11, mu0_1 +# 885| r0_13(..(*)(..)) = Convert : r0_12 +# 885| r0_14(glval<..(*)(..)>) = VariableAddress[pfn] : +# 885| mu0_15(..(*)(..)) = Store : r0_14, r0_13 +# 886| v0_16(void) = NoOp : +# 883| v0_17(void) = ReturnVoid : +# 883| v0_18(void) = UnmodeledUse : mu* +# 883| v0_19(void) = ExitFunction : # 888| VarArgUsage(int) -> void # 888| Block 0 # 888| v0_0(void) = EnterFunction : # 888| mu0_1(unknown) = UnmodeledDefinition : -# 888| r0_2(int) = InitializeParameter[x] : -# 888| r0_3(glval) = VariableAddress[x] : -# 888| mu0_4(int) = Store : r0_3, r0_2 -# 889| r0_5(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 889| r0_6(__va_list_tag[1]) = Uninitialized : -# 889| mu0_7(__va_list_tag[1]) = Store : r0_5, r0_6 -# 891| r0_8(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 891| r0_9(__va_list_tag *) = Convert : r0_8 -# 891| r0_10(glval) = VariableAddress[x] : -# 891| v0_11(void) = VarArgsStart : r0_9, r0_10 -# 892| r0_12(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 892| r0_13(__va_list_tag[1]) = Uninitialized : -# 892| mu0_14(__va_list_tag[1]) = Store : r0_12, r0_13 -# 893| r0_15(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 893| r0_16(__va_list_tag *) = Convert : r0_15 -# 893| r0_17(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 893| r0_18(__va_list_tag *) = Convert : r0_17 -# 893| v0_19(void) = VarArgsStart : r0_16, r0_18 -# 894| r0_20(glval) = VariableAddress[d] : -# 894| r0_21(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 894| r0_22(__va_list_tag *) = Convert : r0_21 -# 894| r0_23(glval) = VarArg : r0_22 -# 894| r0_24(double) = Load : r0_23, mu0_1 -# 894| mu0_25(double) = Store : r0_20, r0_24 -# 895| r0_26(glval) = VariableAddress[f] : -# 895| r0_27(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 895| r0_28(__va_list_tag *) = Convert : r0_27 -# 895| r0_29(glval) = VarArg : r0_28 -# 895| r0_30(double) = Load : r0_29, mu0_1 -# 895| r0_31(float) = Convert : r0_30 -# 895| mu0_32(float) = Store : r0_26, r0_31 -# 896| r0_33(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 896| r0_34(__va_list_tag *) = Convert : r0_33 -# 896| v0_35(void) = VarArgsEnd : r0_34 -# 897| r0_36(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 897| r0_37(__va_list_tag *) = Convert : r0_36 -# 897| v0_38(void) = VarArgsEnd : r0_37 -# 898| v0_39(void) = NoOp : -# 888| v0_40(void) = ReturnVoid : -# 888| v0_41(void) = UnmodeledUse : mu* -# 888| v0_42(void) = ExitFunction : +# 888| r0_2(glval) = VariableAddress[x] : +# 888| mu0_3(int) = InitializeParameter[x] : r0_2 +# 889| r0_4(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 889| mu0_5(__va_list_tag[1]) = Uninitialized : r0_4 +# 891| r0_6(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 891| r0_7(__va_list_tag *) = Convert : r0_6 +# 891| r0_8(glval) = VariableAddress[x] : +# 891| v0_9(void) = VarArgsStart : r0_7, r0_8 +# 892| r0_10(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 892| mu0_11(__va_list_tag[1]) = Uninitialized : r0_10 +# 893| r0_12(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 893| r0_13(__va_list_tag *) = Convert : r0_12 +# 893| r0_14(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 893| r0_15(__va_list_tag *) = Convert : r0_14 +# 893| v0_16(void) = VarArgsStart : r0_13, r0_15 +# 894| r0_17(glval) = VariableAddress[d] : +# 894| r0_18(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 894| r0_19(__va_list_tag *) = Convert : r0_18 +# 894| r0_20(glval) = VarArg : r0_19 +# 894| r0_21(double) = Load : r0_20, mu0_1 +# 894| mu0_22(double) = Store : r0_17, r0_21 +# 895| r0_23(glval) = VariableAddress[f] : +# 895| r0_24(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 895| r0_25(__va_list_tag *) = Convert : r0_24 +# 895| r0_26(glval) = VarArg : r0_25 +# 895| r0_27(double) = Load : r0_26, mu0_1 +# 895| r0_28(float) = Convert : r0_27 +# 895| mu0_29(float) = Store : r0_23, r0_28 +# 896| r0_30(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 896| r0_31(__va_list_tag *) = Convert : r0_30 +# 896| v0_32(void) = VarArgsEnd : r0_31 +# 897| r0_33(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 897| r0_34(__va_list_tag *) = Convert : r0_33 +# 897| v0_35(void) = VarArgsEnd : r0_34 +# 898| v0_36(void) = NoOp : +# 888| v0_37(void) = ReturnVoid : +# 888| v0_38(void) = UnmodeledUse : mu* +# 888| v0_39(void) = ExitFunction : # 900| CastToVoid(int) -> void # 900| Block 0 # 900| v0_0(void) = EnterFunction : # 900| mu0_1(unknown) = UnmodeledDefinition : -# 900| r0_2(int) = InitializeParameter[x] : -# 900| r0_3(glval) = VariableAddress[x] : -# 900| mu0_4(int) = Store : r0_3, r0_2 -# 901| r0_5(glval) = VariableAddress[x] : -# 901| v0_6(void) = Convert : r0_5 -# 902| v0_7(void) = NoOp : -# 900| v0_8(void) = ReturnVoid : -# 900| v0_9(void) = UnmodeledUse : mu* -# 900| v0_10(void) = ExitFunction : +# 900| r0_2(glval) = VariableAddress[x] : +# 900| mu0_3(int) = InitializeParameter[x] : r0_2 +# 901| r0_4(glval) = VariableAddress[x] : +# 901| v0_5(void) = Convert : r0_4 +# 902| v0_6(void) = NoOp : +# 900| v0_7(void) = ReturnVoid : +# 900| v0_8(void) = UnmodeledUse : mu* +# 900| v0_9(void) = ExitFunction : # 904| ConstantConditions(int) -> void # 904| Block 0 # 904| v0_0(void) = EnterFunction : # 904| mu0_1(unknown) = UnmodeledDefinition : -# 904| r0_2(int) = InitializeParameter[x] : -# 904| r0_3(glval) = VariableAddress[x] : -# 904| mu0_4(int) = Store : r0_3, r0_2 -# 905| r0_5(glval) = VariableAddress[a] : -# 905| r0_6(bool) = Constant[1] : -# 905| mu0_7(bool) = Store : r0_5, r0_6 -# 906| r0_8(glval) = VariableAddress[b] : -# 906| r0_9(bool) = Constant[1] : -# 906| v0_10(void) = ConditionalBranch : r0_9 +# 904| r0_2(glval) = VariableAddress[x] : +# 904| mu0_3(int) = InitializeParameter[x] : r0_2 +# 905| r0_4(glval) = VariableAddress[a] : +# 905| r0_5(bool) = Constant[1] : +# 905| mu0_6(bool) = Store : r0_4, r0_5 +# 906| r0_7(glval) = VariableAddress[b] : +# 906| r0_8(bool) = Constant[1] : +# 906| v0_9(void) = ConditionalBranch : r0_8 #-----| False -> Block 3 #-----| True -> Block 2 # 906| Block 1 # 906| r1_0(glval) = VariableAddress[#temp906:11] : # 906| r1_1(int) = Load : r1_0, mu0_1 -# 906| mu1_2(int) = Store : r0_8, r1_1 +# 906| mu1_2(int) = Store : r0_7, r1_1 # 907| v1_3(void) = NoOp : # 904| v1_4(void) = ReturnVoid : # 904| v1_5(void) = UnmodeledUse : mu* diff --git a/cpp/ql/test/library-tests/ir/ir/ssa_ir.expected b/cpp/ql/test/library-tests/ir/ir/ssa_ir.expected index d1d2b50495f1..1ee0e3c30e97 100644 --- a/cpp/ql/test/library-tests/ir/ir/ssa_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/ssa_ir.expected @@ -128,795 +128,763 @@ ir.cpp: # 50| Block 0 # 50| v0_0(void) = EnterFunction : # 50| mu0_1(unknown) = UnmodeledDefinition : -# 50| r0_2(int) = InitializeParameter[x] : -# 50| r0_3(glval) = VariableAddress[x] : -# 50| m0_4(int) = Store : r0_3, r0_2 -# 50| r0_5(int) = InitializeParameter[y] : -# 50| r0_6(glval) = VariableAddress[y] : -# 50| m0_7(int) = Store : r0_6, r0_5 -# 51| r0_8(glval) = VariableAddress[z] : -# 51| r0_9(int) = Uninitialized : -# 51| m0_10(int) = Store : r0_8, r0_9 -# 53| r0_11(glval) = VariableAddress[x] : -# 53| r0_12(int) = Load : r0_11, m0_4 -# 53| r0_13(glval) = VariableAddress[y] : -# 53| r0_14(int) = Load : r0_13, m0_7 -# 53| r0_15(int) = Add : r0_12, r0_14 -# 53| r0_16(glval) = VariableAddress[z] : -# 53| m0_17(int) = Store : r0_16, r0_15 -# 54| r0_18(glval) = VariableAddress[x] : -# 54| r0_19(int) = Load : r0_18, m0_4 -# 54| r0_20(glval) = VariableAddress[y] : -# 54| r0_21(int) = Load : r0_20, m0_7 -# 54| r0_22(int) = Sub : r0_19, r0_21 -# 54| r0_23(glval) = VariableAddress[z] : -# 54| m0_24(int) = Store : r0_23, r0_22 -# 55| r0_25(glval) = VariableAddress[x] : -# 55| r0_26(int) = Load : r0_25, m0_4 -# 55| r0_27(glval) = VariableAddress[y] : -# 55| r0_28(int) = Load : r0_27, m0_7 -# 55| r0_29(int) = Mul : r0_26, r0_28 -# 55| r0_30(glval) = VariableAddress[z] : -# 55| m0_31(int) = Store : r0_30, r0_29 -# 56| r0_32(glval) = VariableAddress[x] : -# 56| r0_33(int) = Load : r0_32, m0_4 -# 56| r0_34(glval) = VariableAddress[y] : -# 56| r0_35(int) = Load : r0_34, m0_7 -# 56| r0_36(int) = Div : r0_33, r0_35 -# 56| r0_37(glval) = VariableAddress[z] : -# 56| m0_38(int) = Store : r0_37, r0_36 -# 57| r0_39(glval) = VariableAddress[x] : -# 57| r0_40(int) = Load : r0_39, m0_4 -# 57| r0_41(glval) = VariableAddress[y] : -# 57| r0_42(int) = Load : r0_41, m0_7 -# 57| r0_43(int) = Rem : r0_40, r0_42 -# 57| r0_44(glval) = VariableAddress[z] : -# 57| m0_45(int) = Store : r0_44, r0_43 -# 59| r0_46(glval) = VariableAddress[x] : -# 59| r0_47(int) = Load : r0_46, m0_4 -# 59| r0_48(glval) = VariableAddress[y] : -# 59| r0_49(int) = Load : r0_48, m0_7 -# 59| r0_50(int) = BitAnd : r0_47, r0_49 -# 59| r0_51(glval) = VariableAddress[z] : -# 59| m0_52(int) = Store : r0_51, r0_50 -# 60| r0_53(glval) = VariableAddress[x] : -# 60| r0_54(int) = Load : r0_53, m0_4 -# 60| r0_55(glval) = VariableAddress[y] : -# 60| r0_56(int) = Load : r0_55, m0_7 -# 60| r0_57(int) = BitOr : r0_54, r0_56 -# 60| r0_58(glval) = VariableAddress[z] : -# 60| m0_59(int) = Store : r0_58, r0_57 -# 61| r0_60(glval) = VariableAddress[x] : -# 61| r0_61(int) = Load : r0_60, m0_4 -# 61| r0_62(glval) = VariableAddress[y] : -# 61| r0_63(int) = Load : r0_62, m0_7 -# 61| r0_64(int) = BitXor : r0_61, r0_63 -# 61| r0_65(glval) = VariableAddress[z] : -# 61| m0_66(int) = Store : r0_65, r0_64 -# 63| r0_67(glval) = VariableAddress[x] : -# 63| r0_68(int) = Load : r0_67, m0_4 -# 63| r0_69(glval) = VariableAddress[y] : -# 63| r0_70(int) = Load : r0_69, m0_7 -# 63| r0_71(int) = ShiftLeft : r0_68, r0_70 -# 63| r0_72(glval) = VariableAddress[z] : -# 63| m0_73(int) = Store : r0_72, r0_71 -# 64| r0_74(glval) = VariableAddress[x] : -# 64| r0_75(int) = Load : r0_74, m0_4 -# 64| r0_76(glval) = VariableAddress[y] : -# 64| r0_77(int) = Load : r0_76, m0_7 -# 64| r0_78(int) = ShiftRight : r0_75, r0_77 -# 64| r0_79(glval) = VariableAddress[z] : -# 64| m0_80(int) = Store : r0_79, r0_78 -# 66| r0_81(glval) = VariableAddress[x] : -# 66| r0_82(int) = Load : r0_81, m0_4 -# 66| r0_83(glval) = VariableAddress[z] : -# 66| m0_84(int) = Store : r0_83, r0_82 -# 68| r0_85(glval) = VariableAddress[x] : -# 68| r0_86(int) = Load : r0_85, m0_4 -# 68| r0_87(glval) = VariableAddress[z] : -# 68| r0_88(int) = Load : r0_87, m0_84 -# 68| r0_89(int) = Add : r0_88, r0_86 -# 68| m0_90(int) = Store : r0_87, r0_89 -# 69| r0_91(glval) = VariableAddress[x] : -# 69| r0_92(int) = Load : r0_91, m0_4 -# 69| r0_93(glval) = VariableAddress[z] : -# 69| r0_94(int) = Load : r0_93, m0_90 -# 69| r0_95(int) = Sub : r0_94, r0_92 -# 69| m0_96(int) = Store : r0_93, r0_95 -# 70| r0_97(glval) = VariableAddress[x] : -# 70| r0_98(int) = Load : r0_97, m0_4 -# 70| r0_99(glval) = VariableAddress[z] : -# 70| r0_100(int) = Load : r0_99, m0_96 -# 70| r0_101(int) = Mul : r0_100, r0_98 -# 70| m0_102(int) = Store : r0_99, r0_101 -# 71| r0_103(glval) = VariableAddress[x] : -# 71| r0_104(int) = Load : r0_103, m0_4 -# 71| r0_105(glval) = VariableAddress[z] : -# 71| r0_106(int) = Load : r0_105, m0_102 -# 71| r0_107(int) = Div : r0_106, r0_104 -# 71| m0_108(int) = Store : r0_105, r0_107 -# 72| r0_109(glval) = VariableAddress[x] : -# 72| r0_110(int) = Load : r0_109, m0_4 -# 72| r0_111(glval) = VariableAddress[z] : -# 72| r0_112(int) = Load : r0_111, m0_108 -# 72| r0_113(int) = Rem : r0_112, r0_110 -# 72| m0_114(int) = Store : r0_111, r0_113 -# 74| r0_115(glval) = VariableAddress[x] : -# 74| r0_116(int) = Load : r0_115, m0_4 -# 74| r0_117(glval) = VariableAddress[z] : -# 74| r0_118(int) = Load : r0_117, m0_114 -# 74| r0_119(int) = BitAnd : r0_118, r0_116 -# 74| m0_120(int) = Store : r0_117, r0_119 -# 75| r0_121(glval) = VariableAddress[x] : -# 75| r0_122(int) = Load : r0_121, m0_4 -# 75| r0_123(glval) = VariableAddress[z] : -# 75| r0_124(int) = Load : r0_123, m0_120 -# 75| r0_125(int) = BitOr : r0_124, r0_122 -# 75| m0_126(int) = Store : r0_123, r0_125 -# 76| r0_127(glval) = VariableAddress[x] : -# 76| r0_128(int) = Load : r0_127, m0_4 -# 76| r0_129(glval) = VariableAddress[z] : -# 76| r0_130(int) = Load : r0_129, m0_126 -# 76| r0_131(int) = BitXor : r0_130, r0_128 -# 76| m0_132(int) = Store : r0_129, r0_131 -# 78| r0_133(glval) = VariableAddress[x] : -# 78| r0_134(int) = Load : r0_133, m0_4 -# 78| r0_135(glval) = VariableAddress[z] : -# 78| r0_136(int) = Load : r0_135, m0_132 -# 78| r0_137(int) = ShiftLeft : r0_136, r0_134 -# 78| m0_138(int) = Store : r0_135, r0_137 -# 79| r0_139(glval) = VariableAddress[x] : -# 79| r0_140(int) = Load : r0_139, m0_4 -# 79| r0_141(glval) = VariableAddress[z] : -# 79| r0_142(int) = Load : r0_141, m0_138 -# 79| r0_143(int) = ShiftRight : r0_142, r0_140 -# 79| m0_144(int) = Store : r0_141, r0_143 -# 81| r0_145(glval) = VariableAddress[x] : -# 81| r0_146(int) = Load : r0_145, m0_4 -# 81| r0_147(int) = CopyValue : r0_146 -# 81| r0_148(glval) = VariableAddress[z] : -# 81| m0_149(int) = Store : r0_148, r0_147 -# 82| r0_150(glval) = VariableAddress[x] : -# 82| r0_151(int) = Load : r0_150, m0_4 -# 82| r0_152(int) = Negate : r0_151 -# 82| r0_153(glval) = VariableAddress[z] : -# 82| m0_154(int) = Store : r0_153, r0_152 -# 83| r0_155(glval) = VariableAddress[x] : -# 83| r0_156(int) = Load : r0_155, m0_4 -# 83| r0_157(int) = BitComplement : r0_156 -# 83| r0_158(glval) = VariableAddress[z] : -# 83| m0_159(int) = Store : r0_158, r0_157 -# 84| r0_160(glval) = VariableAddress[x] : -# 84| r0_161(int) = Load : r0_160, m0_4 -# 84| r0_162(int) = Constant[0] : -# 84| r0_163(bool) = CompareNE : r0_161, r0_162 -# 84| r0_164(bool) = LogicalNot : r0_163 -# 84| r0_165(int) = Convert : r0_164 -# 84| r0_166(glval) = VariableAddress[z] : -# 84| m0_167(int) = Store : r0_166, r0_165 -# 85| v0_168(void) = NoOp : -# 50| v0_169(void) = ReturnVoid : -# 50| v0_170(void) = UnmodeledUse : mu* -# 50| v0_171(void) = ExitFunction : +# 50| r0_2(glval) = VariableAddress[x] : +# 50| m0_3(int) = InitializeParameter[x] : r0_2 +# 50| r0_4(glval) = VariableAddress[y] : +# 50| m0_5(int) = InitializeParameter[y] : r0_4 +# 51| r0_6(glval) = VariableAddress[z] : +# 51| m0_7(int) = Uninitialized : r0_6 +# 53| r0_8(glval) = VariableAddress[x] : +# 53| r0_9(int) = Load : r0_8, m0_3 +# 53| r0_10(glval) = VariableAddress[y] : +# 53| r0_11(int) = Load : r0_10, m0_5 +# 53| r0_12(int) = Add : r0_9, r0_11 +# 53| r0_13(glval) = VariableAddress[z] : +# 53| m0_14(int) = Store : r0_13, r0_12 +# 54| r0_15(glval) = VariableAddress[x] : +# 54| r0_16(int) = Load : r0_15, m0_3 +# 54| r0_17(glval) = VariableAddress[y] : +# 54| r0_18(int) = Load : r0_17, m0_5 +# 54| r0_19(int) = Sub : r0_16, r0_18 +# 54| r0_20(glval) = VariableAddress[z] : +# 54| m0_21(int) = Store : r0_20, r0_19 +# 55| r0_22(glval) = VariableAddress[x] : +# 55| r0_23(int) = Load : r0_22, m0_3 +# 55| r0_24(glval) = VariableAddress[y] : +# 55| r0_25(int) = Load : r0_24, m0_5 +# 55| r0_26(int) = Mul : r0_23, r0_25 +# 55| r0_27(glval) = VariableAddress[z] : +# 55| m0_28(int) = Store : r0_27, r0_26 +# 56| r0_29(glval) = VariableAddress[x] : +# 56| r0_30(int) = Load : r0_29, m0_3 +# 56| r0_31(glval) = VariableAddress[y] : +# 56| r0_32(int) = Load : r0_31, m0_5 +# 56| r0_33(int) = Div : r0_30, r0_32 +# 56| r0_34(glval) = VariableAddress[z] : +# 56| m0_35(int) = Store : r0_34, r0_33 +# 57| r0_36(glval) = VariableAddress[x] : +# 57| r0_37(int) = Load : r0_36, m0_3 +# 57| r0_38(glval) = VariableAddress[y] : +# 57| r0_39(int) = Load : r0_38, m0_5 +# 57| r0_40(int) = Rem : r0_37, r0_39 +# 57| r0_41(glval) = VariableAddress[z] : +# 57| m0_42(int) = Store : r0_41, r0_40 +# 59| r0_43(glval) = VariableAddress[x] : +# 59| r0_44(int) = Load : r0_43, m0_3 +# 59| r0_45(glval) = VariableAddress[y] : +# 59| r0_46(int) = Load : r0_45, m0_5 +# 59| r0_47(int) = BitAnd : r0_44, r0_46 +# 59| r0_48(glval) = VariableAddress[z] : +# 59| m0_49(int) = Store : r0_48, r0_47 +# 60| r0_50(glval) = VariableAddress[x] : +# 60| r0_51(int) = Load : r0_50, m0_3 +# 60| r0_52(glval) = VariableAddress[y] : +# 60| r0_53(int) = Load : r0_52, m0_5 +# 60| r0_54(int) = BitOr : r0_51, r0_53 +# 60| r0_55(glval) = VariableAddress[z] : +# 60| m0_56(int) = Store : r0_55, r0_54 +# 61| r0_57(glval) = VariableAddress[x] : +# 61| r0_58(int) = Load : r0_57, m0_3 +# 61| r0_59(glval) = VariableAddress[y] : +# 61| r0_60(int) = Load : r0_59, m0_5 +# 61| r0_61(int) = BitXor : r0_58, r0_60 +# 61| r0_62(glval) = VariableAddress[z] : +# 61| m0_63(int) = Store : r0_62, r0_61 +# 63| r0_64(glval) = VariableAddress[x] : +# 63| r0_65(int) = Load : r0_64, m0_3 +# 63| r0_66(glval) = VariableAddress[y] : +# 63| r0_67(int) = Load : r0_66, m0_5 +# 63| r0_68(int) = ShiftLeft : r0_65, r0_67 +# 63| r0_69(glval) = VariableAddress[z] : +# 63| m0_70(int) = Store : r0_69, r0_68 +# 64| r0_71(glval) = VariableAddress[x] : +# 64| r0_72(int) = Load : r0_71, m0_3 +# 64| r0_73(glval) = VariableAddress[y] : +# 64| r0_74(int) = Load : r0_73, m0_5 +# 64| r0_75(int) = ShiftRight : r0_72, r0_74 +# 64| r0_76(glval) = VariableAddress[z] : +# 64| m0_77(int) = Store : r0_76, r0_75 +# 66| r0_78(glval) = VariableAddress[x] : +# 66| r0_79(int) = Load : r0_78, m0_3 +# 66| r0_80(glval) = VariableAddress[z] : +# 66| m0_81(int) = Store : r0_80, r0_79 +# 68| r0_82(glval) = VariableAddress[x] : +# 68| r0_83(int) = Load : r0_82, m0_3 +# 68| r0_84(glval) = VariableAddress[z] : +# 68| r0_85(int) = Load : r0_84, m0_81 +# 68| r0_86(int) = Add : r0_85, r0_83 +# 68| m0_87(int) = Store : r0_84, r0_86 +# 69| r0_88(glval) = VariableAddress[x] : +# 69| r0_89(int) = Load : r0_88, m0_3 +# 69| r0_90(glval) = VariableAddress[z] : +# 69| r0_91(int) = Load : r0_90, m0_87 +# 69| r0_92(int) = Sub : r0_91, r0_89 +# 69| m0_93(int) = Store : r0_90, r0_92 +# 70| r0_94(glval) = VariableAddress[x] : +# 70| r0_95(int) = Load : r0_94, m0_3 +# 70| r0_96(glval) = VariableAddress[z] : +# 70| r0_97(int) = Load : r0_96, m0_93 +# 70| r0_98(int) = Mul : r0_97, r0_95 +# 70| m0_99(int) = Store : r0_96, r0_98 +# 71| r0_100(glval) = VariableAddress[x] : +# 71| r0_101(int) = Load : r0_100, m0_3 +# 71| r0_102(glval) = VariableAddress[z] : +# 71| r0_103(int) = Load : r0_102, m0_99 +# 71| r0_104(int) = Div : r0_103, r0_101 +# 71| m0_105(int) = Store : r0_102, r0_104 +# 72| r0_106(glval) = VariableAddress[x] : +# 72| r0_107(int) = Load : r0_106, m0_3 +# 72| r0_108(glval) = VariableAddress[z] : +# 72| r0_109(int) = Load : r0_108, m0_105 +# 72| r0_110(int) = Rem : r0_109, r0_107 +# 72| m0_111(int) = Store : r0_108, r0_110 +# 74| r0_112(glval) = VariableAddress[x] : +# 74| r0_113(int) = Load : r0_112, m0_3 +# 74| r0_114(glval) = VariableAddress[z] : +# 74| r0_115(int) = Load : r0_114, m0_111 +# 74| r0_116(int) = BitAnd : r0_115, r0_113 +# 74| m0_117(int) = Store : r0_114, r0_116 +# 75| r0_118(glval) = VariableAddress[x] : +# 75| r0_119(int) = Load : r0_118, m0_3 +# 75| r0_120(glval) = VariableAddress[z] : +# 75| r0_121(int) = Load : r0_120, m0_117 +# 75| r0_122(int) = BitOr : r0_121, r0_119 +# 75| m0_123(int) = Store : r0_120, r0_122 +# 76| r0_124(glval) = VariableAddress[x] : +# 76| r0_125(int) = Load : r0_124, m0_3 +# 76| r0_126(glval) = VariableAddress[z] : +# 76| r0_127(int) = Load : r0_126, m0_123 +# 76| r0_128(int) = BitXor : r0_127, r0_125 +# 76| m0_129(int) = Store : r0_126, r0_128 +# 78| r0_130(glval) = VariableAddress[x] : +# 78| r0_131(int) = Load : r0_130, m0_3 +# 78| r0_132(glval) = VariableAddress[z] : +# 78| r0_133(int) = Load : r0_132, m0_129 +# 78| r0_134(int) = ShiftLeft : r0_133, r0_131 +# 78| m0_135(int) = Store : r0_132, r0_134 +# 79| r0_136(glval) = VariableAddress[x] : +# 79| r0_137(int) = Load : r0_136, m0_3 +# 79| r0_138(glval) = VariableAddress[z] : +# 79| r0_139(int) = Load : r0_138, m0_135 +# 79| r0_140(int) = ShiftRight : r0_139, r0_137 +# 79| m0_141(int) = Store : r0_138, r0_140 +# 81| r0_142(glval) = VariableAddress[x] : +# 81| r0_143(int) = Load : r0_142, m0_3 +# 81| r0_144(int) = CopyValue : r0_143 +# 81| r0_145(glval) = VariableAddress[z] : +# 81| m0_146(int) = Store : r0_145, r0_144 +# 82| r0_147(glval) = VariableAddress[x] : +# 82| r0_148(int) = Load : r0_147, m0_3 +# 82| r0_149(int) = Negate : r0_148 +# 82| r0_150(glval) = VariableAddress[z] : +# 82| m0_151(int) = Store : r0_150, r0_149 +# 83| r0_152(glval) = VariableAddress[x] : +# 83| r0_153(int) = Load : r0_152, m0_3 +# 83| r0_154(int) = BitComplement : r0_153 +# 83| r0_155(glval) = VariableAddress[z] : +# 83| m0_156(int) = Store : r0_155, r0_154 +# 84| r0_157(glval) = VariableAddress[x] : +# 84| r0_158(int) = Load : r0_157, m0_3 +# 84| r0_159(int) = Constant[0] : +# 84| r0_160(bool) = CompareNE : r0_158, r0_159 +# 84| r0_161(bool) = LogicalNot : r0_160 +# 84| r0_162(int) = Convert : r0_161 +# 84| r0_163(glval) = VariableAddress[z] : +# 84| m0_164(int) = Store : r0_163, r0_162 +# 85| v0_165(void) = NoOp : +# 50| v0_166(void) = ReturnVoid : +# 50| v0_167(void) = UnmodeledUse : mu* +# 50| v0_168(void) = ExitFunction : # 87| IntegerCompare(int, int) -> void # 87| Block 0 # 87| v0_0(void) = EnterFunction : # 87| mu0_1(unknown) = UnmodeledDefinition : -# 87| r0_2(int) = InitializeParameter[x] : -# 87| r0_3(glval) = VariableAddress[x] : -# 87| m0_4(int) = Store : r0_3, r0_2 -# 87| r0_5(int) = InitializeParameter[y] : -# 87| r0_6(glval) = VariableAddress[y] : -# 87| m0_7(int) = Store : r0_6, r0_5 -# 88| r0_8(glval) = VariableAddress[b] : -# 88| r0_9(bool) = Uninitialized : -# 88| m0_10(bool) = Store : r0_8, r0_9 -# 90| r0_11(glval) = VariableAddress[x] : -# 90| r0_12(int) = Load : r0_11, m0_4 -# 90| r0_13(glval) = VariableAddress[y] : -# 90| r0_14(int) = Load : r0_13, m0_7 -# 90| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 90| r0_16(glval) = VariableAddress[b] : -# 90| m0_17(bool) = Store : r0_16, r0_15 -# 91| r0_18(glval) = VariableAddress[x] : -# 91| r0_19(int) = Load : r0_18, m0_4 -# 91| r0_20(glval) = VariableAddress[y] : -# 91| r0_21(int) = Load : r0_20, m0_7 -# 91| r0_22(bool) = CompareNE : r0_19, r0_21 -# 91| r0_23(glval) = VariableAddress[b] : -# 91| m0_24(bool) = Store : r0_23, r0_22 -# 92| r0_25(glval) = VariableAddress[x] : -# 92| r0_26(int) = Load : r0_25, m0_4 -# 92| r0_27(glval) = VariableAddress[y] : -# 92| r0_28(int) = Load : r0_27, m0_7 -# 92| r0_29(bool) = CompareLT : r0_26, r0_28 -# 92| r0_30(glval) = VariableAddress[b] : -# 92| m0_31(bool) = Store : r0_30, r0_29 -# 93| r0_32(glval) = VariableAddress[x] : -# 93| r0_33(int) = Load : r0_32, m0_4 -# 93| r0_34(glval) = VariableAddress[y] : -# 93| r0_35(int) = Load : r0_34, m0_7 -# 93| r0_36(bool) = CompareGT : r0_33, r0_35 -# 93| r0_37(glval) = VariableAddress[b] : -# 93| m0_38(bool) = Store : r0_37, r0_36 -# 94| r0_39(glval) = VariableAddress[x] : -# 94| r0_40(int) = Load : r0_39, m0_4 -# 94| r0_41(glval) = VariableAddress[y] : -# 94| r0_42(int) = Load : r0_41, m0_7 -# 94| r0_43(bool) = CompareLE : r0_40, r0_42 -# 94| r0_44(glval) = VariableAddress[b] : -# 94| m0_45(bool) = Store : r0_44, r0_43 -# 95| r0_46(glval) = VariableAddress[x] : -# 95| r0_47(int) = Load : r0_46, m0_4 -# 95| r0_48(glval) = VariableAddress[y] : -# 95| r0_49(int) = Load : r0_48, m0_7 -# 95| r0_50(bool) = CompareGE : r0_47, r0_49 -# 95| r0_51(glval) = VariableAddress[b] : -# 95| m0_52(bool) = Store : r0_51, r0_50 -# 96| v0_53(void) = NoOp : -# 87| v0_54(void) = ReturnVoid : -# 87| v0_55(void) = UnmodeledUse : mu* -# 87| v0_56(void) = ExitFunction : +# 87| r0_2(glval) = VariableAddress[x] : +# 87| m0_3(int) = InitializeParameter[x] : r0_2 +# 87| r0_4(glval) = VariableAddress[y] : +# 87| m0_5(int) = InitializeParameter[y] : r0_4 +# 88| r0_6(glval) = VariableAddress[b] : +# 88| m0_7(bool) = Uninitialized : r0_6 +# 90| r0_8(glval) = VariableAddress[x] : +# 90| r0_9(int) = Load : r0_8, m0_3 +# 90| r0_10(glval) = VariableAddress[y] : +# 90| r0_11(int) = Load : r0_10, m0_5 +# 90| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 90| r0_13(glval) = VariableAddress[b] : +# 90| m0_14(bool) = Store : r0_13, r0_12 +# 91| r0_15(glval) = VariableAddress[x] : +# 91| r0_16(int) = Load : r0_15, m0_3 +# 91| r0_17(glval) = VariableAddress[y] : +# 91| r0_18(int) = Load : r0_17, m0_5 +# 91| r0_19(bool) = CompareNE : r0_16, r0_18 +# 91| r0_20(glval) = VariableAddress[b] : +# 91| m0_21(bool) = Store : r0_20, r0_19 +# 92| r0_22(glval) = VariableAddress[x] : +# 92| r0_23(int) = Load : r0_22, m0_3 +# 92| r0_24(glval) = VariableAddress[y] : +# 92| r0_25(int) = Load : r0_24, m0_5 +# 92| r0_26(bool) = CompareLT : r0_23, r0_25 +# 92| r0_27(glval) = VariableAddress[b] : +# 92| m0_28(bool) = Store : r0_27, r0_26 +# 93| r0_29(glval) = VariableAddress[x] : +# 93| r0_30(int) = Load : r0_29, m0_3 +# 93| r0_31(glval) = VariableAddress[y] : +# 93| r0_32(int) = Load : r0_31, m0_5 +# 93| r0_33(bool) = CompareGT : r0_30, r0_32 +# 93| r0_34(glval) = VariableAddress[b] : +# 93| m0_35(bool) = Store : r0_34, r0_33 +# 94| r0_36(glval) = VariableAddress[x] : +# 94| r0_37(int) = Load : r0_36, m0_3 +# 94| r0_38(glval) = VariableAddress[y] : +# 94| r0_39(int) = Load : r0_38, m0_5 +# 94| r0_40(bool) = CompareLE : r0_37, r0_39 +# 94| r0_41(glval) = VariableAddress[b] : +# 94| m0_42(bool) = Store : r0_41, r0_40 +# 95| r0_43(glval) = VariableAddress[x] : +# 95| r0_44(int) = Load : r0_43, m0_3 +# 95| r0_45(glval) = VariableAddress[y] : +# 95| r0_46(int) = Load : r0_45, m0_5 +# 95| r0_47(bool) = CompareGE : r0_44, r0_46 +# 95| r0_48(glval) = VariableAddress[b] : +# 95| m0_49(bool) = Store : r0_48, r0_47 +# 96| v0_50(void) = NoOp : +# 87| v0_51(void) = ReturnVoid : +# 87| v0_52(void) = UnmodeledUse : mu* +# 87| v0_53(void) = ExitFunction : # 98| IntegerCrement(int) -> void # 98| Block 0 # 98| v0_0(void) = EnterFunction : # 98| mu0_1(unknown) = UnmodeledDefinition : -# 98| r0_2(int) = InitializeParameter[x] : -# 98| r0_3(glval) = VariableAddress[x] : -# 98| m0_4(int) = Store : r0_3, r0_2 -# 99| r0_5(glval) = VariableAddress[y] : -# 99| r0_6(int) = Uninitialized : -# 99| m0_7(int) = Store : r0_5, r0_6 -# 101| r0_8(glval) = VariableAddress[x] : -# 101| r0_9(int) = Load : r0_8, m0_4 -# 101| r0_10(int) = Constant[1] : -# 101| r0_11(int) = Add : r0_9, r0_10 -# 101| m0_12(int) = Store : r0_8, r0_11 -# 101| r0_13(glval) = VariableAddress[y] : -# 101| m0_14(int) = Store : r0_13, r0_11 -# 102| r0_15(glval) = VariableAddress[x] : -# 102| r0_16(int) = Load : r0_15, m0_12 -# 102| r0_17(int) = Constant[1] : -# 102| r0_18(int) = Sub : r0_16, r0_17 -# 102| m0_19(int) = Store : r0_15, r0_18 -# 102| r0_20(glval) = VariableAddress[y] : -# 102| m0_21(int) = Store : r0_20, r0_18 -# 103| r0_22(glval) = VariableAddress[x] : -# 103| r0_23(int) = Load : r0_22, m0_19 -# 103| r0_24(int) = Constant[1] : -# 103| r0_25(int) = Add : r0_23, r0_24 -# 103| m0_26(int) = Store : r0_22, r0_25 -# 103| r0_27(glval) = VariableAddress[y] : -# 103| m0_28(int) = Store : r0_27, r0_23 -# 104| r0_29(glval) = VariableAddress[x] : -# 104| r0_30(int) = Load : r0_29, m0_26 -# 104| r0_31(int) = Constant[1] : -# 104| r0_32(int) = Sub : r0_30, r0_31 -# 104| m0_33(int) = Store : r0_29, r0_32 -# 104| r0_34(glval) = VariableAddress[y] : -# 104| m0_35(int) = Store : r0_34, r0_30 -# 105| v0_36(void) = NoOp : -# 98| v0_37(void) = ReturnVoid : -# 98| v0_38(void) = UnmodeledUse : mu* -# 98| v0_39(void) = ExitFunction : +# 98| r0_2(glval) = VariableAddress[x] : +# 98| m0_3(int) = InitializeParameter[x] : r0_2 +# 99| r0_4(glval) = VariableAddress[y] : +# 99| m0_5(int) = Uninitialized : r0_4 +# 101| r0_6(glval) = VariableAddress[x] : +# 101| r0_7(int) = Load : r0_6, m0_3 +# 101| r0_8(int) = Constant[1] : +# 101| r0_9(int) = Add : r0_7, r0_8 +# 101| m0_10(int) = Store : r0_6, r0_9 +# 101| r0_11(glval) = VariableAddress[y] : +# 101| m0_12(int) = Store : r0_11, r0_9 +# 102| r0_13(glval) = VariableAddress[x] : +# 102| r0_14(int) = Load : r0_13, m0_10 +# 102| r0_15(int) = Constant[1] : +# 102| r0_16(int) = Sub : r0_14, r0_15 +# 102| m0_17(int) = Store : r0_13, r0_16 +# 102| r0_18(glval) = VariableAddress[y] : +# 102| m0_19(int) = Store : r0_18, r0_16 +# 103| r0_20(glval) = VariableAddress[x] : +# 103| r0_21(int) = Load : r0_20, m0_17 +# 103| r0_22(int) = Constant[1] : +# 103| r0_23(int) = Add : r0_21, r0_22 +# 103| m0_24(int) = Store : r0_20, r0_23 +# 103| r0_25(glval) = VariableAddress[y] : +# 103| m0_26(int) = Store : r0_25, r0_21 +# 104| r0_27(glval) = VariableAddress[x] : +# 104| r0_28(int) = Load : r0_27, m0_24 +# 104| r0_29(int) = Constant[1] : +# 104| r0_30(int) = Sub : r0_28, r0_29 +# 104| m0_31(int) = Store : r0_27, r0_30 +# 104| r0_32(glval) = VariableAddress[y] : +# 104| m0_33(int) = Store : r0_32, r0_28 +# 105| v0_34(void) = NoOp : +# 98| v0_35(void) = ReturnVoid : +# 98| v0_36(void) = UnmodeledUse : mu* +# 98| v0_37(void) = ExitFunction : # 107| IntegerCrement_LValue(int) -> void # 107| Block 0 # 107| v0_0(void) = EnterFunction : # 107| mu0_1(unknown) = UnmodeledDefinition : -# 107| r0_2(int) = InitializeParameter[x] : -# 107| r0_3(glval) = VariableAddress[x] : -# 107| mu0_4(int) = Store : r0_3, r0_2 -# 108| r0_5(glval) = VariableAddress[p] : -# 108| r0_6(int *) = Uninitialized : -# 108| m0_7(int *) = Store : r0_5, r0_6 -# 110| r0_8(glval) = VariableAddress[x] : -# 110| r0_9(int) = Load : r0_8, mu0_1 -# 110| r0_10(int) = Constant[1] : -# 110| r0_11(int) = Add : r0_9, r0_10 -# 110| mu0_12(int) = Store : r0_8, r0_11 -# 110| r0_13(glval) = VariableAddress[p] : -# 110| m0_14(int *) = Store : r0_13, r0_8 -# 111| r0_15(glval) = VariableAddress[x] : -# 111| r0_16(int) = Load : r0_15, mu0_1 -# 111| r0_17(int) = Constant[1] : -# 111| r0_18(int) = Sub : r0_16, r0_17 -# 111| mu0_19(int) = Store : r0_15, r0_18 -# 111| r0_20(glval) = VariableAddress[p] : -# 111| m0_21(int *) = Store : r0_20, r0_15 -# 112| v0_22(void) = NoOp : -# 107| v0_23(void) = ReturnVoid : -# 107| v0_24(void) = UnmodeledUse : mu* -# 107| v0_25(void) = ExitFunction : +# 107| r0_2(glval) = VariableAddress[x] : +# 107| mu0_3(int) = InitializeParameter[x] : r0_2 +# 108| r0_4(glval) = VariableAddress[p] : +# 108| m0_5(int *) = Uninitialized : r0_4 +# 110| r0_6(glval) = VariableAddress[x] : +# 110| r0_7(int) = Load : r0_6, mu0_1 +# 110| r0_8(int) = Constant[1] : +# 110| r0_9(int) = Add : r0_7, r0_8 +# 110| mu0_10(int) = Store : r0_6, r0_9 +# 110| r0_11(glval) = VariableAddress[p] : +# 110| m0_12(int *) = Store : r0_11, r0_6 +# 111| r0_13(glval) = VariableAddress[x] : +# 111| r0_14(int) = Load : r0_13, mu0_1 +# 111| r0_15(int) = Constant[1] : +# 111| r0_16(int) = Sub : r0_14, r0_15 +# 111| mu0_17(int) = Store : r0_13, r0_16 +# 111| r0_18(glval) = VariableAddress[p] : +# 111| m0_19(int *) = Store : r0_18, r0_13 +# 112| v0_20(void) = NoOp : +# 107| v0_21(void) = ReturnVoid : +# 107| v0_22(void) = UnmodeledUse : mu* +# 107| v0_23(void) = ExitFunction : # 114| FloatOps(double, double) -> void # 114| Block 0 # 114| v0_0(void) = EnterFunction : # 114| mu0_1(unknown) = UnmodeledDefinition : -# 114| r0_2(double) = InitializeParameter[x] : -# 114| r0_3(glval) = VariableAddress[x] : -# 114| m0_4(double) = Store : r0_3, r0_2 -# 114| r0_5(double) = InitializeParameter[y] : -# 114| r0_6(glval) = VariableAddress[y] : -# 114| m0_7(double) = Store : r0_6, r0_5 -# 115| r0_8(glval) = VariableAddress[z] : -# 115| r0_9(double) = Uninitialized : -# 115| m0_10(double) = Store : r0_8, r0_9 -# 117| r0_11(glval) = VariableAddress[x] : -# 117| r0_12(double) = Load : r0_11, m0_4 -# 117| r0_13(glval) = VariableAddress[y] : -# 117| r0_14(double) = Load : r0_13, m0_7 -# 117| r0_15(double) = Add : r0_12, r0_14 -# 117| r0_16(glval) = VariableAddress[z] : -# 117| m0_17(double) = Store : r0_16, r0_15 -# 118| r0_18(glval) = VariableAddress[x] : -# 118| r0_19(double) = Load : r0_18, m0_4 -# 118| r0_20(glval) = VariableAddress[y] : -# 118| r0_21(double) = Load : r0_20, m0_7 -# 118| r0_22(double) = Sub : r0_19, r0_21 -# 118| r0_23(glval) = VariableAddress[z] : -# 118| m0_24(double) = Store : r0_23, r0_22 -# 119| r0_25(glval) = VariableAddress[x] : -# 119| r0_26(double) = Load : r0_25, m0_4 -# 119| r0_27(glval) = VariableAddress[y] : -# 119| r0_28(double) = Load : r0_27, m0_7 -# 119| r0_29(double) = Mul : r0_26, r0_28 -# 119| r0_30(glval) = VariableAddress[z] : -# 119| m0_31(double) = Store : r0_30, r0_29 -# 120| r0_32(glval) = VariableAddress[x] : -# 120| r0_33(double) = Load : r0_32, m0_4 -# 120| r0_34(glval) = VariableAddress[y] : -# 120| r0_35(double) = Load : r0_34, m0_7 -# 120| r0_36(double) = Div : r0_33, r0_35 -# 120| r0_37(glval) = VariableAddress[z] : -# 120| m0_38(double) = Store : r0_37, r0_36 -# 122| r0_39(glval) = VariableAddress[x] : -# 122| r0_40(double) = Load : r0_39, m0_4 -# 122| r0_41(glval) = VariableAddress[z] : -# 122| m0_42(double) = Store : r0_41, r0_40 -# 124| r0_43(glval) = VariableAddress[x] : -# 124| r0_44(double) = Load : r0_43, m0_4 -# 124| r0_45(glval) = VariableAddress[z] : -# 124| r0_46(double) = Load : r0_45, m0_42 -# 124| r0_47(double) = Add : r0_46, r0_44 -# 124| m0_48(double) = Store : r0_45, r0_47 -# 125| r0_49(glval) = VariableAddress[x] : -# 125| r0_50(double) = Load : r0_49, m0_4 -# 125| r0_51(glval) = VariableAddress[z] : -# 125| r0_52(double) = Load : r0_51, m0_48 -# 125| r0_53(double) = Sub : r0_52, r0_50 -# 125| m0_54(double) = Store : r0_51, r0_53 -# 126| r0_55(glval) = VariableAddress[x] : -# 126| r0_56(double) = Load : r0_55, m0_4 -# 126| r0_57(glval) = VariableAddress[z] : -# 126| r0_58(double) = Load : r0_57, m0_54 -# 126| r0_59(double) = Mul : r0_58, r0_56 -# 126| m0_60(double) = Store : r0_57, r0_59 -# 127| r0_61(glval) = VariableAddress[x] : -# 127| r0_62(double) = Load : r0_61, m0_4 -# 127| r0_63(glval) = VariableAddress[z] : -# 127| r0_64(double) = Load : r0_63, m0_60 -# 127| r0_65(double) = Div : r0_64, r0_62 -# 127| m0_66(double) = Store : r0_63, r0_65 -# 129| r0_67(glval) = VariableAddress[x] : -# 129| r0_68(double) = Load : r0_67, m0_4 -# 129| r0_69(double) = CopyValue : r0_68 -# 129| r0_70(glval) = VariableAddress[z] : -# 129| m0_71(double) = Store : r0_70, r0_69 -# 130| r0_72(glval) = VariableAddress[x] : -# 130| r0_73(double) = Load : r0_72, m0_4 -# 130| r0_74(double) = Negate : r0_73 -# 130| r0_75(glval) = VariableAddress[z] : -# 130| m0_76(double) = Store : r0_75, r0_74 -# 131| v0_77(void) = NoOp : -# 114| v0_78(void) = ReturnVoid : -# 114| v0_79(void) = UnmodeledUse : mu* -# 114| v0_80(void) = ExitFunction : +# 114| r0_2(glval) = VariableAddress[x] : +# 114| m0_3(double) = InitializeParameter[x] : r0_2 +# 114| r0_4(glval) = VariableAddress[y] : +# 114| m0_5(double) = InitializeParameter[y] : r0_4 +# 115| r0_6(glval) = VariableAddress[z] : +# 115| m0_7(double) = Uninitialized : r0_6 +# 117| r0_8(glval) = VariableAddress[x] : +# 117| r0_9(double) = Load : r0_8, m0_3 +# 117| r0_10(glval) = VariableAddress[y] : +# 117| r0_11(double) = Load : r0_10, m0_5 +# 117| r0_12(double) = Add : r0_9, r0_11 +# 117| r0_13(glval) = VariableAddress[z] : +# 117| m0_14(double) = Store : r0_13, r0_12 +# 118| r0_15(glval) = VariableAddress[x] : +# 118| r0_16(double) = Load : r0_15, m0_3 +# 118| r0_17(glval) = VariableAddress[y] : +# 118| r0_18(double) = Load : r0_17, m0_5 +# 118| r0_19(double) = Sub : r0_16, r0_18 +# 118| r0_20(glval) = VariableAddress[z] : +# 118| m0_21(double) = Store : r0_20, r0_19 +# 119| r0_22(glval) = VariableAddress[x] : +# 119| r0_23(double) = Load : r0_22, m0_3 +# 119| r0_24(glval) = VariableAddress[y] : +# 119| r0_25(double) = Load : r0_24, m0_5 +# 119| r0_26(double) = Mul : r0_23, r0_25 +# 119| r0_27(glval) = VariableAddress[z] : +# 119| m0_28(double) = Store : r0_27, r0_26 +# 120| r0_29(glval) = VariableAddress[x] : +# 120| r0_30(double) = Load : r0_29, m0_3 +# 120| r0_31(glval) = VariableAddress[y] : +# 120| r0_32(double) = Load : r0_31, m0_5 +# 120| r0_33(double) = Div : r0_30, r0_32 +# 120| r0_34(glval) = VariableAddress[z] : +# 120| m0_35(double) = Store : r0_34, r0_33 +# 122| r0_36(glval) = VariableAddress[x] : +# 122| r0_37(double) = Load : r0_36, m0_3 +# 122| r0_38(glval) = VariableAddress[z] : +# 122| m0_39(double) = Store : r0_38, r0_37 +# 124| r0_40(glval) = VariableAddress[x] : +# 124| r0_41(double) = Load : r0_40, m0_3 +# 124| r0_42(glval) = VariableAddress[z] : +# 124| r0_43(double) = Load : r0_42, m0_39 +# 124| r0_44(double) = Add : r0_43, r0_41 +# 124| m0_45(double) = Store : r0_42, r0_44 +# 125| r0_46(glval) = VariableAddress[x] : +# 125| r0_47(double) = Load : r0_46, m0_3 +# 125| r0_48(glval) = VariableAddress[z] : +# 125| r0_49(double) = Load : r0_48, m0_45 +# 125| r0_50(double) = Sub : r0_49, r0_47 +# 125| m0_51(double) = Store : r0_48, r0_50 +# 126| r0_52(glval) = VariableAddress[x] : +# 126| r0_53(double) = Load : r0_52, m0_3 +# 126| r0_54(glval) = VariableAddress[z] : +# 126| r0_55(double) = Load : r0_54, m0_51 +# 126| r0_56(double) = Mul : r0_55, r0_53 +# 126| m0_57(double) = Store : r0_54, r0_56 +# 127| r0_58(glval) = VariableAddress[x] : +# 127| r0_59(double) = Load : r0_58, m0_3 +# 127| r0_60(glval) = VariableAddress[z] : +# 127| r0_61(double) = Load : r0_60, m0_57 +# 127| r0_62(double) = Div : r0_61, r0_59 +# 127| m0_63(double) = Store : r0_60, r0_62 +# 129| r0_64(glval) = VariableAddress[x] : +# 129| r0_65(double) = Load : r0_64, m0_3 +# 129| r0_66(double) = CopyValue : r0_65 +# 129| r0_67(glval) = VariableAddress[z] : +# 129| m0_68(double) = Store : r0_67, r0_66 +# 130| r0_69(glval) = VariableAddress[x] : +# 130| r0_70(double) = Load : r0_69, m0_3 +# 130| r0_71(double) = Negate : r0_70 +# 130| r0_72(glval) = VariableAddress[z] : +# 130| m0_73(double) = Store : r0_72, r0_71 +# 131| v0_74(void) = NoOp : +# 114| v0_75(void) = ReturnVoid : +# 114| v0_76(void) = UnmodeledUse : mu* +# 114| v0_77(void) = ExitFunction : # 133| FloatCompare(double, double) -> void # 133| Block 0 # 133| v0_0(void) = EnterFunction : # 133| mu0_1(unknown) = UnmodeledDefinition : -# 133| r0_2(double) = InitializeParameter[x] : -# 133| r0_3(glval) = VariableAddress[x] : -# 133| m0_4(double) = Store : r0_3, r0_2 -# 133| r0_5(double) = InitializeParameter[y] : -# 133| r0_6(glval) = VariableAddress[y] : -# 133| m0_7(double) = Store : r0_6, r0_5 -# 134| r0_8(glval) = VariableAddress[b] : -# 134| r0_9(bool) = Uninitialized : -# 134| m0_10(bool) = Store : r0_8, r0_9 -# 136| r0_11(glval) = VariableAddress[x] : -# 136| r0_12(double) = Load : r0_11, m0_4 -# 136| r0_13(glval) = VariableAddress[y] : -# 136| r0_14(double) = Load : r0_13, m0_7 -# 136| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 136| r0_16(glval) = VariableAddress[b] : -# 136| m0_17(bool) = Store : r0_16, r0_15 -# 137| r0_18(glval) = VariableAddress[x] : -# 137| r0_19(double) = Load : r0_18, m0_4 -# 137| r0_20(glval) = VariableAddress[y] : -# 137| r0_21(double) = Load : r0_20, m0_7 -# 137| r0_22(bool) = CompareNE : r0_19, r0_21 -# 137| r0_23(glval) = VariableAddress[b] : -# 137| m0_24(bool) = Store : r0_23, r0_22 -# 138| r0_25(glval) = VariableAddress[x] : -# 138| r0_26(double) = Load : r0_25, m0_4 -# 138| r0_27(glval) = VariableAddress[y] : -# 138| r0_28(double) = Load : r0_27, m0_7 -# 138| r0_29(bool) = CompareLT : r0_26, r0_28 -# 138| r0_30(glval) = VariableAddress[b] : -# 138| m0_31(bool) = Store : r0_30, r0_29 -# 139| r0_32(glval) = VariableAddress[x] : -# 139| r0_33(double) = Load : r0_32, m0_4 -# 139| r0_34(glval) = VariableAddress[y] : -# 139| r0_35(double) = Load : r0_34, m0_7 -# 139| r0_36(bool) = CompareGT : r0_33, r0_35 -# 139| r0_37(glval) = VariableAddress[b] : -# 139| m0_38(bool) = Store : r0_37, r0_36 -# 140| r0_39(glval) = VariableAddress[x] : -# 140| r0_40(double) = Load : r0_39, m0_4 -# 140| r0_41(glval) = VariableAddress[y] : -# 140| r0_42(double) = Load : r0_41, m0_7 -# 140| r0_43(bool) = CompareLE : r0_40, r0_42 -# 140| r0_44(glval) = VariableAddress[b] : -# 140| m0_45(bool) = Store : r0_44, r0_43 -# 141| r0_46(glval) = VariableAddress[x] : -# 141| r0_47(double) = Load : r0_46, m0_4 -# 141| r0_48(glval) = VariableAddress[y] : -# 141| r0_49(double) = Load : r0_48, m0_7 -# 141| r0_50(bool) = CompareGE : r0_47, r0_49 -# 141| r0_51(glval) = VariableAddress[b] : -# 141| m0_52(bool) = Store : r0_51, r0_50 -# 142| v0_53(void) = NoOp : -# 133| v0_54(void) = ReturnVoid : -# 133| v0_55(void) = UnmodeledUse : mu* -# 133| v0_56(void) = ExitFunction : +# 133| r0_2(glval) = VariableAddress[x] : +# 133| m0_3(double) = InitializeParameter[x] : r0_2 +# 133| r0_4(glval) = VariableAddress[y] : +# 133| m0_5(double) = InitializeParameter[y] : r0_4 +# 134| r0_6(glval) = VariableAddress[b] : +# 134| m0_7(bool) = Uninitialized : r0_6 +# 136| r0_8(glval) = VariableAddress[x] : +# 136| r0_9(double) = Load : r0_8, m0_3 +# 136| r0_10(glval) = VariableAddress[y] : +# 136| r0_11(double) = Load : r0_10, m0_5 +# 136| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 136| r0_13(glval) = VariableAddress[b] : +# 136| m0_14(bool) = Store : r0_13, r0_12 +# 137| r0_15(glval) = VariableAddress[x] : +# 137| r0_16(double) = Load : r0_15, m0_3 +# 137| r0_17(glval) = VariableAddress[y] : +# 137| r0_18(double) = Load : r0_17, m0_5 +# 137| r0_19(bool) = CompareNE : r0_16, r0_18 +# 137| r0_20(glval) = VariableAddress[b] : +# 137| m0_21(bool) = Store : r0_20, r0_19 +# 138| r0_22(glval) = VariableAddress[x] : +# 138| r0_23(double) = Load : r0_22, m0_3 +# 138| r0_24(glval) = VariableAddress[y] : +# 138| r0_25(double) = Load : r0_24, m0_5 +# 138| r0_26(bool) = CompareLT : r0_23, r0_25 +# 138| r0_27(glval) = VariableAddress[b] : +# 138| m0_28(bool) = Store : r0_27, r0_26 +# 139| r0_29(glval) = VariableAddress[x] : +# 139| r0_30(double) = Load : r0_29, m0_3 +# 139| r0_31(glval) = VariableAddress[y] : +# 139| r0_32(double) = Load : r0_31, m0_5 +# 139| r0_33(bool) = CompareGT : r0_30, r0_32 +# 139| r0_34(glval) = VariableAddress[b] : +# 139| m0_35(bool) = Store : r0_34, r0_33 +# 140| r0_36(glval) = VariableAddress[x] : +# 140| r0_37(double) = Load : r0_36, m0_3 +# 140| r0_38(glval) = VariableAddress[y] : +# 140| r0_39(double) = Load : r0_38, m0_5 +# 140| r0_40(bool) = CompareLE : r0_37, r0_39 +# 140| r0_41(glval) = VariableAddress[b] : +# 140| m0_42(bool) = Store : r0_41, r0_40 +# 141| r0_43(glval) = VariableAddress[x] : +# 141| r0_44(double) = Load : r0_43, m0_3 +# 141| r0_45(glval) = VariableAddress[y] : +# 141| r0_46(double) = Load : r0_45, m0_5 +# 141| r0_47(bool) = CompareGE : r0_44, r0_46 +# 141| r0_48(glval) = VariableAddress[b] : +# 141| m0_49(bool) = Store : r0_48, r0_47 +# 142| v0_50(void) = NoOp : +# 133| v0_51(void) = ReturnVoid : +# 133| v0_52(void) = UnmodeledUse : mu* +# 133| v0_53(void) = ExitFunction : # 144| FloatCrement(float) -> void # 144| Block 0 # 144| v0_0(void) = EnterFunction : # 144| mu0_1(unknown) = UnmodeledDefinition : -# 144| r0_2(float) = InitializeParameter[x] : -# 144| r0_3(glval) = VariableAddress[x] : -# 144| m0_4(float) = Store : r0_3, r0_2 -# 145| r0_5(glval) = VariableAddress[y] : -# 145| r0_6(float) = Uninitialized : -# 145| m0_7(float) = Store : r0_5, r0_6 -# 147| r0_8(glval) = VariableAddress[x] : -# 147| r0_9(float) = Load : r0_8, m0_4 -# 147| r0_10(float) = Constant[1.0] : -# 147| r0_11(float) = Add : r0_9, r0_10 -# 147| m0_12(float) = Store : r0_8, r0_11 -# 147| r0_13(glval) = VariableAddress[y] : -# 147| m0_14(float) = Store : r0_13, r0_11 -# 148| r0_15(glval) = VariableAddress[x] : -# 148| r0_16(float) = Load : r0_15, m0_12 -# 148| r0_17(float) = Constant[1.0] : -# 148| r0_18(float) = Sub : r0_16, r0_17 -# 148| m0_19(float) = Store : r0_15, r0_18 -# 148| r0_20(glval) = VariableAddress[y] : -# 148| m0_21(float) = Store : r0_20, r0_18 -# 149| r0_22(glval) = VariableAddress[x] : -# 149| r0_23(float) = Load : r0_22, m0_19 -# 149| r0_24(float) = Constant[1.0] : -# 149| r0_25(float) = Add : r0_23, r0_24 -# 149| m0_26(float) = Store : r0_22, r0_25 -# 149| r0_27(glval) = VariableAddress[y] : -# 149| m0_28(float) = Store : r0_27, r0_23 -# 150| r0_29(glval) = VariableAddress[x] : -# 150| r0_30(float) = Load : r0_29, m0_26 -# 150| r0_31(float) = Constant[1.0] : -# 150| r0_32(float) = Sub : r0_30, r0_31 -# 150| m0_33(float) = Store : r0_29, r0_32 -# 150| r0_34(glval) = VariableAddress[y] : -# 150| m0_35(float) = Store : r0_34, r0_30 -# 151| v0_36(void) = NoOp : -# 144| v0_37(void) = ReturnVoid : -# 144| v0_38(void) = UnmodeledUse : mu* -# 144| v0_39(void) = ExitFunction : +# 144| r0_2(glval) = VariableAddress[x] : +# 144| m0_3(float) = InitializeParameter[x] : r0_2 +# 145| r0_4(glval) = VariableAddress[y] : +# 145| m0_5(float) = Uninitialized : r0_4 +# 147| r0_6(glval) = VariableAddress[x] : +# 147| r0_7(float) = Load : r0_6, m0_3 +# 147| r0_8(float) = Constant[1.0] : +# 147| r0_9(float) = Add : r0_7, r0_8 +# 147| m0_10(float) = Store : r0_6, r0_9 +# 147| r0_11(glval) = VariableAddress[y] : +# 147| m0_12(float) = Store : r0_11, r0_9 +# 148| r0_13(glval) = VariableAddress[x] : +# 148| r0_14(float) = Load : r0_13, m0_10 +# 148| r0_15(float) = Constant[1.0] : +# 148| r0_16(float) = Sub : r0_14, r0_15 +# 148| m0_17(float) = Store : r0_13, r0_16 +# 148| r0_18(glval) = VariableAddress[y] : +# 148| m0_19(float) = Store : r0_18, r0_16 +# 149| r0_20(glval) = VariableAddress[x] : +# 149| r0_21(float) = Load : r0_20, m0_17 +# 149| r0_22(float) = Constant[1.0] : +# 149| r0_23(float) = Add : r0_21, r0_22 +# 149| m0_24(float) = Store : r0_20, r0_23 +# 149| r0_25(glval) = VariableAddress[y] : +# 149| m0_26(float) = Store : r0_25, r0_21 +# 150| r0_27(glval) = VariableAddress[x] : +# 150| r0_28(float) = Load : r0_27, m0_24 +# 150| r0_29(float) = Constant[1.0] : +# 150| r0_30(float) = Sub : r0_28, r0_29 +# 150| m0_31(float) = Store : r0_27, r0_30 +# 150| r0_32(glval) = VariableAddress[y] : +# 150| m0_33(float) = Store : r0_32, r0_28 +# 151| v0_34(void) = NoOp : +# 144| v0_35(void) = ReturnVoid : +# 144| v0_36(void) = UnmodeledUse : mu* +# 144| v0_37(void) = ExitFunction : # 153| PointerOps(int *, int) -> void # 153| Block 0 # 153| v0_0(void) = EnterFunction : # 153| mu0_1(unknown) = UnmodeledDefinition : -# 153| r0_2(int *) = InitializeParameter[p] : -# 153| r0_3(glval) = VariableAddress[p] : -# 153| m0_4(int *) = Store : r0_3, r0_2 -# 153| r0_5(int) = InitializeParameter[i] : -# 153| r0_6(glval) = VariableAddress[i] : -# 153| m0_7(int) = Store : r0_6, r0_5 -# 154| r0_8(glval) = VariableAddress[q] : -# 154| r0_9(int *) = Uninitialized : -# 154| m0_10(int *) = Store : r0_8, r0_9 -# 155| r0_11(glval) = VariableAddress[b] : -# 155| r0_12(bool) = Uninitialized : -# 155| m0_13(bool) = Store : r0_11, r0_12 -# 157| r0_14(glval) = VariableAddress[p] : -# 157| r0_15(int *) = Load : r0_14, m0_4 -# 157| r0_16(glval) = VariableAddress[i] : -# 157| r0_17(int) = Load : r0_16, m0_7 -# 157| r0_18(int *) = PointerAdd[4] : r0_15, r0_17 -# 157| r0_19(glval) = VariableAddress[q] : -# 157| m0_20(int *) = Store : r0_19, r0_18 -# 158| r0_21(glval) = VariableAddress[i] : -# 158| r0_22(int) = Load : r0_21, m0_7 -# 158| r0_23(glval) = VariableAddress[p] : -# 158| r0_24(int *) = Load : r0_23, m0_4 -# 158| r0_25(int *) = PointerAdd[4] : r0_24, r0_22 -# 158| r0_26(glval) = VariableAddress[q] : -# 158| m0_27(int *) = Store : r0_26, r0_25 -# 159| r0_28(glval) = VariableAddress[p] : -# 159| r0_29(int *) = Load : r0_28, m0_4 -# 159| r0_30(glval) = VariableAddress[i] : -# 159| r0_31(int) = Load : r0_30, m0_7 -# 159| r0_32(int *) = PointerSub[4] : r0_29, r0_31 -# 159| r0_33(glval) = VariableAddress[q] : -# 159| m0_34(int *) = Store : r0_33, r0_32 -# 160| r0_35(glval) = VariableAddress[p] : -# 160| r0_36(int *) = Load : r0_35, m0_4 -# 160| r0_37(glval) = VariableAddress[q] : -# 160| r0_38(int *) = Load : r0_37, m0_34 -# 160| r0_39(long) = PointerDiff[4] : r0_36, r0_38 -# 160| r0_40(int) = Convert : r0_39 -# 160| r0_41(glval) = VariableAddress[i] : -# 160| m0_42(int) = Store : r0_41, r0_40 -# 162| r0_43(glval) = VariableAddress[p] : -# 162| r0_44(int *) = Load : r0_43, m0_4 -# 162| r0_45(glval) = VariableAddress[q] : -# 162| m0_46(int *) = Store : r0_45, r0_44 -# 164| r0_47(glval) = VariableAddress[i] : -# 164| r0_48(int) = Load : r0_47, m0_42 -# 164| r0_49(glval) = VariableAddress[q] : -# 164| r0_50(int *) = Load : r0_49, m0_46 -# 164| r0_51(int *) = PointerAdd[4] : r0_50, r0_48 -# 164| m0_52(int *) = Store : r0_49, r0_51 -# 165| r0_53(glval) = VariableAddress[i] : -# 165| r0_54(int) = Load : r0_53, m0_42 -# 165| r0_55(glval) = VariableAddress[q] : -# 165| r0_56(int *) = Load : r0_55, m0_52 -# 165| r0_57(int *) = PointerSub[4] : r0_56, r0_54 -# 165| m0_58(int *) = Store : r0_55, r0_57 -# 167| r0_59(glval) = VariableAddress[p] : -# 167| r0_60(int *) = Load : r0_59, m0_4 -# 167| r0_61(int *) = Constant[0] : -# 167| r0_62(bool) = CompareNE : r0_60, r0_61 -# 167| r0_63(glval) = VariableAddress[b] : -# 167| m0_64(bool) = Store : r0_63, r0_62 -# 168| r0_65(glval) = VariableAddress[p] : -# 168| r0_66(int *) = Load : r0_65, m0_4 -# 168| r0_67(int *) = Constant[0] : -# 168| r0_68(bool) = CompareNE : r0_66, r0_67 -# 168| r0_69(bool) = LogicalNot : r0_68 -# 168| r0_70(glval) = VariableAddress[b] : -# 168| m0_71(bool) = Store : r0_70, r0_69 -# 169| v0_72(void) = NoOp : -# 153| v0_73(void) = ReturnVoid : -# 153| v0_74(void) = UnmodeledUse : mu* -# 153| v0_75(void) = ExitFunction : +# 153| r0_2(glval) = VariableAddress[p] : +# 153| m0_3(int *) = InitializeParameter[p] : r0_2 +# 153| r0_4(glval) = VariableAddress[i] : +# 153| m0_5(int) = InitializeParameter[i] : r0_4 +# 154| r0_6(glval) = VariableAddress[q] : +# 154| m0_7(int *) = Uninitialized : r0_6 +# 155| r0_8(glval) = VariableAddress[b] : +# 155| m0_9(bool) = Uninitialized : r0_8 +# 157| r0_10(glval) = VariableAddress[p] : +# 157| r0_11(int *) = Load : r0_10, m0_3 +# 157| r0_12(glval) = VariableAddress[i] : +# 157| r0_13(int) = Load : r0_12, m0_5 +# 157| r0_14(int *) = PointerAdd[4] : r0_11, r0_13 +# 157| r0_15(glval) = VariableAddress[q] : +# 157| m0_16(int *) = Store : r0_15, r0_14 +# 158| r0_17(glval) = VariableAddress[i] : +# 158| r0_18(int) = Load : r0_17, m0_5 +# 158| r0_19(glval) = VariableAddress[p] : +# 158| r0_20(int *) = Load : r0_19, m0_3 +# 158| r0_21(int *) = PointerAdd[4] : r0_20, r0_18 +# 158| r0_22(glval) = VariableAddress[q] : +# 158| m0_23(int *) = Store : r0_22, r0_21 +# 159| r0_24(glval) = VariableAddress[p] : +# 159| r0_25(int *) = Load : r0_24, m0_3 +# 159| r0_26(glval) = VariableAddress[i] : +# 159| r0_27(int) = Load : r0_26, m0_5 +# 159| r0_28(int *) = PointerSub[4] : r0_25, r0_27 +# 159| r0_29(glval) = VariableAddress[q] : +# 159| m0_30(int *) = Store : r0_29, r0_28 +# 160| r0_31(glval) = VariableAddress[p] : +# 160| r0_32(int *) = Load : r0_31, m0_3 +# 160| r0_33(glval) = VariableAddress[q] : +# 160| r0_34(int *) = Load : r0_33, m0_30 +# 160| r0_35(long) = PointerDiff[4] : r0_32, r0_34 +# 160| r0_36(int) = Convert : r0_35 +# 160| r0_37(glval) = VariableAddress[i] : +# 160| m0_38(int) = Store : r0_37, r0_36 +# 162| r0_39(glval) = VariableAddress[p] : +# 162| r0_40(int *) = Load : r0_39, m0_3 +# 162| r0_41(glval) = VariableAddress[q] : +# 162| m0_42(int *) = Store : r0_41, r0_40 +# 164| r0_43(glval) = VariableAddress[i] : +# 164| r0_44(int) = Load : r0_43, m0_38 +# 164| r0_45(glval) = VariableAddress[q] : +# 164| r0_46(int *) = Load : r0_45, m0_42 +# 164| r0_47(int *) = PointerAdd[4] : r0_46, r0_44 +# 164| m0_48(int *) = Store : r0_45, r0_47 +# 165| r0_49(glval) = VariableAddress[i] : +# 165| r0_50(int) = Load : r0_49, m0_38 +# 165| r0_51(glval) = VariableAddress[q] : +# 165| r0_52(int *) = Load : r0_51, m0_48 +# 165| r0_53(int *) = PointerSub[4] : r0_52, r0_50 +# 165| m0_54(int *) = Store : r0_51, r0_53 +# 167| r0_55(glval) = VariableAddress[p] : +# 167| r0_56(int *) = Load : r0_55, m0_3 +# 167| r0_57(int *) = Constant[0] : +# 167| r0_58(bool) = CompareNE : r0_56, r0_57 +# 167| r0_59(glval) = VariableAddress[b] : +# 167| m0_60(bool) = Store : r0_59, r0_58 +# 168| r0_61(glval) = VariableAddress[p] : +# 168| r0_62(int *) = Load : r0_61, m0_3 +# 168| r0_63(int *) = Constant[0] : +# 168| r0_64(bool) = CompareNE : r0_62, r0_63 +# 168| r0_65(bool) = LogicalNot : r0_64 +# 168| r0_66(glval) = VariableAddress[b] : +# 168| m0_67(bool) = Store : r0_66, r0_65 +# 169| v0_68(void) = NoOp : +# 153| v0_69(void) = ReturnVoid : +# 153| v0_70(void) = UnmodeledUse : mu* +# 153| v0_71(void) = ExitFunction : # 171| ArrayAccess(int *, int) -> void # 171| Block 0 # 171| v0_0(void) = EnterFunction : # 171| mu0_1(unknown) = UnmodeledDefinition : -# 171| r0_2(int *) = InitializeParameter[p] : -# 171| r0_3(glval) = VariableAddress[p] : -# 171| m0_4(int *) = Store : r0_3, r0_2 -# 171| r0_5(int) = InitializeParameter[i] : -# 171| r0_6(glval) = VariableAddress[i] : -# 171| m0_7(int) = Store : r0_6, r0_5 -# 172| r0_8(glval) = VariableAddress[x] : -# 172| r0_9(int) = Uninitialized : -# 172| m0_10(int) = Store : r0_8, r0_9 -# 174| r0_11(glval) = VariableAddress[p] : -# 174| r0_12(int *) = Load : r0_11, m0_4 -# 174| r0_13(glval) = VariableAddress[i] : -# 174| r0_14(int) = Load : r0_13, m0_7 -# 174| r0_15(int *) = PointerAdd[4] : r0_12, r0_14 -# 174| r0_16(int) = Load : r0_15, mu0_1 -# 174| r0_17(glval) = VariableAddress[x] : -# 174| m0_18(int) = Store : r0_17, r0_16 -# 175| r0_19(glval) = VariableAddress[p] : -# 175| r0_20(int *) = Load : r0_19, m0_4 -# 175| r0_21(glval) = VariableAddress[i] : -# 175| r0_22(int) = Load : r0_21, m0_7 -# 175| r0_23(int *) = PointerAdd[4] : r0_20, r0_22 -# 175| r0_24(int) = Load : r0_23, mu0_1 -# 175| r0_25(glval) = VariableAddress[x] : -# 175| m0_26(int) = Store : r0_25, r0_24 -# 177| r0_27(glval) = VariableAddress[x] : -# 177| r0_28(int) = Load : r0_27, m0_26 -# 177| r0_29(glval) = VariableAddress[p] : -# 177| r0_30(int *) = Load : r0_29, m0_4 -# 177| r0_31(glval) = VariableAddress[i] : -# 177| r0_32(int) = Load : r0_31, m0_7 -# 177| r0_33(int *) = PointerAdd[4] : r0_30, r0_32 -# 177| mu0_34(int) = Store : r0_33, r0_28 -# 178| r0_35(glval) = VariableAddress[x] : -# 178| r0_36(int) = Load : r0_35, m0_26 -# 178| r0_37(glval) = VariableAddress[p] : -# 178| r0_38(int *) = Load : r0_37, m0_4 -# 178| r0_39(glval) = VariableAddress[i] : -# 178| r0_40(int) = Load : r0_39, m0_7 -# 178| r0_41(int *) = PointerAdd[4] : r0_38, r0_40 -# 178| mu0_42(int) = Store : r0_41, r0_36 -# 180| r0_43(glval) = VariableAddress[a] : -# 180| r0_44(int[10]) = Uninitialized : -# 180| m0_45(int[10]) = Store : r0_43, r0_44 -# 181| r0_46(glval) = VariableAddress[a] : -# 181| r0_47(int *) = Convert : r0_46 -# 181| r0_48(glval) = VariableAddress[i] : -# 181| r0_49(int) = Load : r0_48, m0_7 -# 181| r0_50(int *) = PointerAdd[4] : r0_47, r0_49 -# 181| r0_51(int) = Load : r0_50, mu0_1 -# 181| r0_52(glval) = VariableAddress[x] : -# 181| m0_53(int) = Store : r0_52, r0_51 -# 182| r0_54(glval) = VariableAddress[a] : -# 182| r0_55(int *) = Convert : r0_54 -# 182| r0_56(glval) = VariableAddress[i] : -# 182| r0_57(int) = Load : r0_56, m0_7 -# 182| r0_58(int *) = PointerAdd[4] : r0_55, r0_57 -# 182| r0_59(int) = Load : r0_58, mu0_1 -# 182| r0_60(glval) = VariableAddress[x] : -# 182| m0_61(int) = Store : r0_60, r0_59 -# 183| r0_62(glval) = VariableAddress[x] : -# 183| r0_63(int) = Load : r0_62, m0_61 -# 183| r0_64(glval) = VariableAddress[a] : -# 183| r0_65(int *) = Convert : r0_64 -# 183| r0_66(glval) = VariableAddress[i] : -# 183| r0_67(int) = Load : r0_66, m0_7 -# 183| r0_68(int *) = PointerAdd[4] : r0_65, r0_67 -# 183| mu0_69(int) = Store : r0_68, r0_63 -# 184| r0_70(glval) = VariableAddress[x] : -# 184| r0_71(int) = Load : r0_70, m0_61 -# 184| r0_72(glval) = VariableAddress[a] : -# 184| r0_73(int *) = Convert : r0_72 -# 184| r0_74(glval) = VariableAddress[i] : -# 184| r0_75(int) = Load : r0_74, m0_7 -# 184| r0_76(int *) = PointerAdd[4] : r0_73, r0_75 -# 184| mu0_77(int) = Store : r0_76, r0_71 -# 185| v0_78(void) = NoOp : -# 171| v0_79(void) = ReturnVoid : -# 171| v0_80(void) = UnmodeledUse : mu* -# 171| v0_81(void) = ExitFunction : +# 171| r0_2(glval) = VariableAddress[p] : +# 171| m0_3(int *) = InitializeParameter[p] : r0_2 +# 171| r0_4(glval) = VariableAddress[i] : +# 171| m0_5(int) = InitializeParameter[i] : r0_4 +# 172| r0_6(glval) = VariableAddress[x] : +# 172| m0_7(int) = Uninitialized : r0_6 +# 174| r0_8(glval) = VariableAddress[p] : +# 174| r0_9(int *) = Load : r0_8, m0_3 +# 174| r0_10(glval) = VariableAddress[i] : +# 174| r0_11(int) = Load : r0_10, m0_5 +# 174| r0_12(int *) = PointerAdd[4] : r0_9, r0_11 +# 174| r0_13(int) = Load : r0_12, mu0_1 +# 174| r0_14(glval) = VariableAddress[x] : +# 174| m0_15(int) = Store : r0_14, r0_13 +# 175| r0_16(glval) = VariableAddress[p] : +# 175| r0_17(int *) = Load : r0_16, m0_3 +# 175| r0_18(glval) = VariableAddress[i] : +# 175| r0_19(int) = Load : r0_18, m0_5 +# 175| r0_20(int *) = PointerAdd[4] : r0_17, r0_19 +# 175| r0_21(int) = Load : r0_20, mu0_1 +# 175| r0_22(glval) = VariableAddress[x] : +# 175| m0_23(int) = Store : r0_22, r0_21 +# 177| r0_24(glval) = VariableAddress[x] : +# 177| r0_25(int) = Load : r0_24, m0_23 +# 177| r0_26(glval) = VariableAddress[p] : +# 177| r0_27(int *) = Load : r0_26, m0_3 +# 177| r0_28(glval) = VariableAddress[i] : +# 177| r0_29(int) = Load : r0_28, m0_5 +# 177| r0_30(int *) = PointerAdd[4] : r0_27, r0_29 +# 177| mu0_31(int) = Store : r0_30, r0_25 +# 178| r0_32(glval) = VariableAddress[x] : +# 178| r0_33(int) = Load : r0_32, m0_23 +# 178| r0_34(glval) = VariableAddress[p] : +# 178| r0_35(int *) = Load : r0_34, m0_3 +# 178| r0_36(glval) = VariableAddress[i] : +# 178| r0_37(int) = Load : r0_36, m0_5 +# 178| r0_38(int *) = PointerAdd[4] : r0_35, r0_37 +# 178| mu0_39(int) = Store : r0_38, r0_33 +# 180| r0_40(glval) = VariableAddress[a] : +# 180| m0_41(int[10]) = Uninitialized : r0_40 +# 181| r0_42(glval) = VariableAddress[a] : +# 181| r0_43(int *) = Convert : r0_42 +# 181| r0_44(glval) = VariableAddress[i] : +# 181| r0_45(int) = Load : r0_44, m0_5 +# 181| r0_46(int *) = PointerAdd[4] : r0_43, r0_45 +# 181| r0_47(int) = Load : r0_46, mu0_1 +# 181| r0_48(glval) = VariableAddress[x] : +# 181| m0_49(int) = Store : r0_48, r0_47 +# 182| r0_50(glval) = VariableAddress[a] : +# 182| r0_51(int *) = Convert : r0_50 +# 182| r0_52(glval) = VariableAddress[i] : +# 182| r0_53(int) = Load : r0_52, m0_5 +# 182| r0_54(int *) = PointerAdd[4] : r0_51, r0_53 +# 182| r0_55(int) = Load : r0_54, mu0_1 +# 182| r0_56(glval) = VariableAddress[x] : +# 182| m0_57(int) = Store : r0_56, r0_55 +# 183| r0_58(glval) = VariableAddress[x] : +# 183| r0_59(int) = Load : r0_58, m0_57 +# 183| r0_60(glval) = VariableAddress[a] : +# 183| r0_61(int *) = Convert : r0_60 +# 183| r0_62(glval) = VariableAddress[i] : +# 183| r0_63(int) = Load : r0_62, m0_5 +# 183| r0_64(int *) = PointerAdd[4] : r0_61, r0_63 +# 183| mu0_65(int) = Store : r0_64, r0_59 +# 184| r0_66(glval) = VariableAddress[x] : +# 184| r0_67(int) = Load : r0_66, m0_57 +# 184| r0_68(glval) = VariableAddress[a] : +# 184| r0_69(int *) = Convert : r0_68 +# 184| r0_70(glval) = VariableAddress[i] : +# 184| r0_71(int) = Load : r0_70, m0_5 +# 184| r0_72(int *) = PointerAdd[4] : r0_69, r0_71 +# 184| mu0_73(int) = Store : r0_72, r0_67 +# 185| v0_74(void) = NoOp : +# 171| v0_75(void) = ReturnVoid : +# 171| v0_76(void) = UnmodeledUse : mu* +# 171| v0_77(void) = ExitFunction : # 187| StringLiteral(int) -> void # 187| Block 0 # 187| v0_0(void) = EnterFunction : # 187| mu0_1(unknown) = UnmodeledDefinition : -# 187| r0_2(int) = InitializeParameter[i] : -# 187| r0_3(glval) = VariableAddress[i] : -# 187| m0_4(int) = Store : r0_3, r0_2 -# 188| r0_5(glval) = VariableAddress[c] : -# 188| r0_6(glval) = StringConstant["Foo"] : -# 188| r0_7(char *) = Convert : r0_6 -# 188| r0_8(glval) = VariableAddress[i] : -# 188| r0_9(int) = Load : r0_8, m0_4 -# 188| r0_10(char *) = PointerAdd[1] : r0_7, r0_9 -# 188| r0_11(char) = Load : r0_10, mu0_1 -# 188| m0_12(char) = Store : r0_5, r0_11 -# 189| r0_13(glval) = VariableAddress[pwc] : -# 189| r0_14(glval) = StringConstant[L"Bar"] : +# 187| r0_2(glval) = VariableAddress[i] : +# 187| m0_3(int) = InitializeParameter[i] : r0_2 +# 188| r0_4(glval) = VariableAddress[c] : +# 188| r0_5(glval) = StringConstant["Foo"] : +# 188| r0_6(char *) = Convert : r0_5 +# 188| r0_7(glval) = VariableAddress[i] : +# 188| r0_8(int) = Load : r0_7, m0_3 +# 188| r0_9(char *) = PointerAdd[1] : r0_6, r0_8 +# 188| r0_10(char) = Load : r0_9, mu0_1 +# 188| m0_11(char) = Store : r0_4, r0_10 +# 189| r0_12(glval) = VariableAddress[pwc] : +# 189| r0_13(glval) = StringConstant[L"Bar"] : +# 189| r0_14(wchar_t *) = Convert : r0_13 # 189| r0_15(wchar_t *) = Convert : r0_14 -# 189| r0_16(wchar_t *) = Convert : r0_15 -# 189| m0_17(wchar_t *) = Store : r0_13, r0_16 -# 190| r0_18(glval) = VariableAddress[wc] : -# 190| r0_19(glval) = VariableAddress[pwc] : -# 190| r0_20(wchar_t *) = Load : r0_19, m0_17 -# 190| r0_21(glval) = VariableAddress[i] : -# 190| r0_22(int) = Load : r0_21, m0_4 -# 190| r0_23(wchar_t *) = PointerAdd[4] : r0_20, r0_22 -# 190| r0_24(wchar_t) = Load : r0_23, mu0_1 -# 190| m0_25(wchar_t) = Store : r0_18, r0_24 -# 191| v0_26(void) = NoOp : -# 187| v0_27(void) = ReturnVoid : -# 187| v0_28(void) = UnmodeledUse : mu* -# 187| v0_29(void) = ExitFunction : +# 189| m0_16(wchar_t *) = Store : r0_12, r0_15 +# 190| r0_17(glval) = VariableAddress[wc] : +# 190| r0_18(glval) = VariableAddress[pwc] : +# 190| r0_19(wchar_t *) = Load : r0_18, m0_16 +# 190| r0_20(glval) = VariableAddress[i] : +# 190| r0_21(int) = Load : r0_20, m0_3 +# 190| r0_22(wchar_t *) = PointerAdd[4] : r0_19, r0_21 +# 190| r0_23(wchar_t) = Load : r0_22, mu0_1 +# 190| m0_24(wchar_t) = Store : r0_17, r0_23 +# 191| v0_25(void) = NoOp : +# 187| v0_26(void) = ReturnVoid : +# 187| v0_27(void) = UnmodeledUse : mu* +# 187| v0_28(void) = ExitFunction : # 193| PointerCompare(int *, int *) -> void # 193| Block 0 # 193| v0_0(void) = EnterFunction : # 193| mu0_1(unknown) = UnmodeledDefinition : -# 193| r0_2(int *) = InitializeParameter[p] : -# 193| r0_3(glval) = VariableAddress[p] : -# 193| m0_4(int *) = Store : r0_3, r0_2 -# 193| r0_5(int *) = InitializeParameter[q] : -# 193| r0_6(glval) = VariableAddress[q] : -# 193| m0_7(int *) = Store : r0_6, r0_5 -# 194| r0_8(glval) = VariableAddress[b] : -# 194| r0_9(bool) = Uninitialized : -# 194| m0_10(bool) = Store : r0_8, r0_9 -# 196| r0_11(glval) = VariableAddress[p] : -# 196| r0_12(int *) = Load : r0_11, m0_4 -# 196| r0_13(glval) = VariableAddress[q] : -# 196| r0_14(int *) = Load : r0_13, m0_7 -# 196| r0_15(bool) = CompareEQ : r0_12, r0_14 -# 196| r0_16(glval) = VariableAddress[b] : -# 196| m0_17(bool) = Store : r0_16, r0_15 -# 197| r0_18(glval) = VariableAddress[p] : -# 197| r0_19(int *) = Load : r0_18, m0_4 -# 197| r0_20(glval) = VariableAddress[q] : -# 197| r0_21(int *) = Load : r0_20, m0_7 -# 197| r0_22(bool) = CompareNE : r0_19, r0_21 -# 197| r0_23(glval) = VariableAddress[b] : -# 197| m0_24(bool) = Store : r0_23, r0_22 -# 198| r0_25(glval) = VariableAddress[p] : -# 198| r0_26(int *) = Load : r0_25, m0_4 -# 198| r0_27(glval) = VariableAddress[q] : -# 198| r0_28(int *) = Load : r0_27, m0_7 -# 198| r0_29(bool) = CompareLT : r0_26, r0_28 -# 198| r0_30(glval) = VariableAddress[b] : -# 198| m0_31(bool) = Store : r0_30, r0_29 -# 199| r0_32(glval) = VariableAddress[p] : -# 199| r0_33(int *) = Load : r0_32, m0_4 -# 199| r0_34(glval) = VariableAddress[q] : -# 199| r0_35(int *) = Load : r0_34, m0_7 -# 199| r0_36(bool) = CompareGT : r0_33, r0_35 -# 199| r0_37(glval) = VariableAddress[b] : -# 199| m0_38(bool) = Store : r0_37, r0_36 -# 200| r0_39(glval) = VariableAddress[p] : -# 200| r0_40(int *) = Load : r0_39, m0_4 -# 200| r0_41(glval) = VariableAddress[q] : -# 200| r0_42(int *) = Load : r0_41, m0_7 -# 200| r0_43(bool) = CompareLE : r0_40, r0_42 -# 200| r0_44(glval) = VariableAddress[b] : -# 200| m0_45(bool) = Store : r0_44, r0_43 -# 201| r0_46(glval) = VariableAddress[p] : -# 201| r0_47(int *) = Load : r0_46, m0_4 -# 201| r0_48(glval) = VariableAddress[q] : -# 201| r0_49(int *) = Load : r0_48, m0_7 -# 201| r0_50(bool) = CompareGE : r0_47, r0_49 -# 201| r0_51(glval) = VariableAddress[b] : -# 201| m0_52(bool) = Store : r0_51, r0_50 -# 202| v0_53(void) = NoOp : -# 193| v0_54(void) = ReturnVoid : -# 193| v0_55(void) = UnmodeledUse : mu* -# 193| v0_56(void) = ExitFunction : +# 193| r0_2(glval) = VariableAddress[p] : +# 193| m0_3(int *) = InitializeParameter[p] : r0_2 +# 193| r0_4(glval) = VariableAddress[q] : +# 193| m0_5(int *) = InitializeParameter[q] : r0_4 +# 194| r0_6(glval) = VariableAddress[b] : +# 194| m0_7(bool) = Uninitialized : r0_6 +# 196| r0_8(glval) = VariableAddress[p] : +# 196| r0_9(int *) = Load : r0_8, m0_3 +# 196| r0_10(glval) = VariableAddress[q] : +# 196| r0_11(int *) = Load : r0_10, m0_5 +# 196| r0_12(bool) = CompareEQ : r0_9, r0_11 +# 196| r0_13(glval) = VariableAddress[b] : +# 196| m0_14(bool) = Store : r0_13, r0_12 +# 197| r0_15(glval) = VariableAddress[p] : +# 197| r0_16(int *) = Load : r0_15, m0_3 +# 197| r0_17(glval) = VariableAddress[q] : +# 197| r0_18(int *) = Load : r0_17, m0_5 +# 197| r0_19(bool) = CompareNE : r0_16, r0_18 +# 197| r0_20(glval) = VariableAddress[b] : +# 197| m0_21(bool) = Store : r0_20, r0_19 +# 198| r0_22(glval) = VariableAddress[p] : +# 198| r0_23(int *) = Load : r0_22, m0_3 +# 198| r0_24(glval) = VariableAddress[q] : +# 198| r0_25(int *) = Load : r0_24, m0_5 +# 198| r0_26(bool) = CompareLT : r0_23, r0_25 +# 198| r0_27(glval) = VariableAddress[b] : +# 198| m0_28(bool) = Store : r0_27, r0_26 +# 199| r0_29(glval) = VariableAddress[p] : +# 199| r0_30(int *) = Load : r0_29, m0_3 +# 199| r0_31(glval) = VariableAddress[q] : +# 199| r0_32(int *) = Load : r0_31, m0_5 +# 199| r0_33(bool) = CompareGT : r0_30, r0_32 +# 199| r0_34(glval) = VariableAddress[b] : +# 199| m0_35(bool) = Store : r0_34, r0_33 +# 200| r0_36(glval) = VariableAddress[p] : +# 200| r0_37(int *) = Load : r0_36, m0_3 +# 200| r0_38(glval) = VariableAddress[q] : +# 200| r0_39(int *) = Load : r0_38, m0_5 +# 200| r0_40(bool) = CompareLE : r0_37, r0_39 +# 200| r0_41(glval) = VariableAddress[b] : +# 200| m0_42(bool) = Store : r0_41, r0_40 +# 201| r0_43(glval) = VariableAddress[p] : +# 201| r0_44(int *) = Load : r0_43, m0_3 +# 201| r0_45(glval) = VariableAddress[q] : +# 201| r0_46(int *) = Load : r0_45, m0_5 +# 201| r0_47(bool) = CompareGE : r0_44, r0_46 +# 201| r0_48(glval) = VariableAddress[b] : +# 201| m0_49(bool) = Store : r0_48, r0_47 +# 202| v0_50(void) = NoOp : +# 193| v0_51(void) = ReturnVoid : +# 193| v0_52(void) = UnmodeledUse : mu* +# 193| v0_53(void) = ExitFunction : # 204| PointerCrement(int *) -> void # 204| Block 0 # 204| v0_0(void) = EnterFunction : # 204| mu0_1(unknown) = UnmodeledDefinition : -# 204| r0_2(int *) = InitializeParameter[p] : -# 204| r0_3(glval) = VariableAddress[p] : -# 204| m0_4(int *) = Store : r0_3, r0_2 -# 205| r0_5(glval) = VariableAddress[q] : -# 205| r0_6(int *) = Uninitialized : -# 205| m0_7(int *) = Store : r0_5, r0_6 -# 207| r0_8(glval) = VariableAddress[p] : -# 207| r0_9(int *) = Load : r0_8, m0_4 -# 207| r0_10(int) = Constant[1] : -# 207| r0_11(int *) = PointerAdd[4] : r0_9, r0_10 -# 207| m0_12(int *) = Store : r0_8, r0_11 -# 207| r0_13(glval) = VariableAddress[q] : -# 207| m0_14(int *) = Store : r0_13, r0_11 -# 208| r0_15(glval) = VariableAddress[p] : -# 208| r0_16(int *) = Load : r0_15, m0_12 -# 208| r0_17(int) = Constant[1] : -# 208| r0_18(int *) = PointerSub[4] : r0_16, r0_17 -# 208| m0_19(int *) = Store : r0_15, r0_18 -# 208| r0_20(glval) = VariableAddress[q] : -# 208| m0_21(int *) = Store : r0_20, r0_18 -# 209| r0_22(glval) = VariableAddress[p] : -# 209| r0_23(int *) = Load : r0_22, m0_19 -# 209| r0_24(int) = Constant[1] : -# 209| r0_25(int *) = PointerAdd[4] : r0_23, r0_24 -# 209| m0_26(int *) = Store : r0_22, r0_25 -# 209| r0_27(glval) = VariableAddress[q] : -# 209| m0_28(int *) = Store : r0_27, r0_23 -# 210| r0_29(glval) = VariableAddress[p] : -# 210| r0_30(int *) = Load : r0_29, m0_26 -# 210| r0_31(int) = Constant[1] : -# 210| r0_32(int *) = PointerSub[4] : r0_30, r0_31 -# 210| m0_33(int *) = Store : r0_29, r0_32 -# 210| r0_34(glval) = VariableAddress[q] : -# 210| m0_35(int *) = Store : r0_34, r0_30 -# 211| v0_36(void) = NoOp : -# 204| v0_37(void) = ReturnVoid : -# 204| v0_38(void) = UnmodeledUse : mu* -# 204| v0_39(void) = ExitFunction : +# 204| r0_2(glval) = VariableAddress[p] : +# 204| m0_3(int *) = InitializeParameter[p] : r0_2 +# 205| r0_4(glval) = VariableAddress[q] : +# 205| m0_5(int *) = Uninitialized : r0_4 +# 207| r0_6(glval) = VariableAddress[p] : +# 207| r0_7(int *) = Load : r0_6, m0_3 +# 207| r0_8(int) = Constant[1] : +# 207| r0_9(int *) = PointerAdd[4] : r0_7, r0_8 +# 207| m0_10(int *) = Store : r0_6, r0_9 +# 207| r0_11(glval) = VariableAddress[q] : +# 207| m0_12(int *) = Store : r0_11, r0_9 +# 208| r0_13(glval) = VariableAddress[p] : +# 208| r0_14(int *) = Load : r0_13, m0_10 +# 208| r0_15(int) = Constant[1] : +# 208| r0_16(int *) = PointerSub[4] : r0_14, r0_15 +# 208| m0_17(int *) = Store : r0_13, r0_16 +# 208| r0_18(glval) = VariableAddress[q] : +# 208| m0_19(int *) = Store : r0_18, r0_16 +# 209| r0_20(glval) = VariableAddress[p] : +# 209| r0_21(int *) = Load : r0_20, m0_17 +# 209| r0_22(int) = Constant[1] : +# 209| r0_23(int *) = PointerAdd[4] : r0_21, r0_22 +# 209| m0_24(int *) = Store : r0_20, r0_23 +# 209| r0_25(glval) = VariableAddress[q] : +# 209| m0_26(int *) = Store : r0_25, r0_21 +# 210| r0_27(glval) = VariableAddress[p] : +# 210| r0_28(int *) = Load : r0_27, m0_24 +# 210| r0_29(int) = Constant[1] : +# 210| r0_30(int *) = PointerSub[4] : r0_28, r0_29 +# 210| m0_31(int *) = Store : r0_27, r0_30 +# 210| r0_32(glval) = VariableAddress[q] : +# 210| m0_33(int *) = Store : r0_32, r0_28 +# 211| v0_34(void) = NoOp : +# 204| v0_35(void) = ReturnVoid : +# 204| v0_36(void) = UnmodeledUse : mu* +# 204| v0_37(void) = ExitFunction : # 213| CompoundAssignment() -> void # 213| Block 0 @@ -966,74 +934,68 @@ ir.cpp: # 230| v0_0(void) = EnterFunction : # 230| mu0_1(unknown) = UnmodeledDefinition : # 231| r0_2(glval) = VariableAddress[x] : -# 231| r0_3(int) = Uninitialized : -# 231| m0_4(int) = Store : r0_2, r0_3 -# 232| r0_5(glval) = VariableAddress[y] : -# 232| r0_6(glval) = VariableAddress[x] : -# 232| r0_7(int) = Load : r0_6, m0_4 -# 232| m0_8(int) = Store : r0_5, r0_7 -# 233| v0_9(void) = NoOp : -# 230| v0_10(void) = ReturnVoid : -# 230| v0_11(void) = UnmodeledUse : mu* -# 230| v0_12(void) = ExitFunction : +# 231| m0_3(int) = Uninitialized : r0_2 +# 232| r0_4(glval) = VariableAddress[y] : +# 232| r0_5(glval) = VariableAddress[x] : +# 232| r0_6(int) = Load : r0_5, m0_3 +# 232| m0_7(int) = Store : r0_4, r0_6 +# 233| v0_8(void) = NoOp : +# 230| v0_9(void) = ReturnVoid : +# 230| v0_10(void) = UnmodeledUse : mu* +# 230| v0_11(void) = ExitFunction : # 235| Parameters(int, int) -> int # 235| Block 0 # 235| v0_0(void) = EnterFunction : # 235| mu0_1(unknown) = UnmodeledDefinition : -# 235| r0_2(int) = InitializeParameter[x] : -# 235| r0_3(glval) = VariableAddress[x] : -# 235| m0_4(int) = Store : r0_3, r0_2 -# 235| r0_5(int) = InitializeParameter[y] : -# 235| r0_6(glval) = VariableAddress[y] : -# 235| m0_7(int) = Store : r0_6, r0_5 -# 236| r0_8(glval) = VariableAddress[#return] : -# 236| r0_9(glval) = VariableAddress[x] : -# 236| r0_10(int) = Load : r0_9, m0_4 -# 236| r0_11(glval) = VariableAddress[y] : -# 236| r0_12(int) = Load : r0_11, m0_7 -# 236| r0_13(int) = Rem : r0_10, r0_12 -# 236| m0_14(int) = Store : r0_8, r0_13 -# 235| r0_15(glval) = VariableAddress[#return] : -# 235| v0_16(void) = ReturnValue : r0_15, m0_14 -# 235| v0_17(void) = UnmodeledUse : mu* -# 235| v0_18(void) = ExitFunction : +# 235| r0_2(glval) = VariableAddress[x] : +# 235| m0_3(int) = InitializeParameter[x] : r0_2 +# 235| r0_4(glval) = VariableAddress[y] : +# 235| m0_5(int) = InitializeParameter[y] : r0_4 +# 236| r0_6(glval) = VariableAddress[#return] : +# 236| r0_7(glval) = VariableAddress[x] : +# 236| r0_8(int) = Load : r0_7, m0_3 +# 236| r0_9(glval) = VariableAddress[y] : +# 236| r0_10(int) = Load : r0_9, m0_5 +# 236| r0_11(int) = Rem : r0_8, r0_10 +# 236| m0_12(int) = Store : r0_6, r0_11 +# 235| r0_13(glval) = VariableAddress[#return] : +# 235| v0_14(void) = ReturnValue : r0_13, m0_12 +# 235| v0_15(void) = UnmodeledUse : mu* +# 235| v0_16(void) = ExitFunction : # 239| IfStatements(bool, int, int) -> void # 239| Block 0 -# 239| v0_0(void) = EnterFunction : -# 239| mu0_1(unknown) = UnmodeledDefinition : -# 239| r0_2(bool) = InitializeParameter[b] : -# 239| r0_3(glval) = VariableAddress[b] : -# 239| m0_4(bool) = Store : r0_3, r0_2 -# 239| r0_5(int) = InitializeParameter[x] : -# 239| r0_6(glval) = VariableAddress[x] : -# 239| m0_7(int) = Store : r0_6, r0_5 -# 239| r0_8(int) = InitializeParameter[y] : -# 239| r0_9(glval) = VariableAddress[y] : -# 239| m0_10(int) = Store : r0_9, r0_8 -# 240| r0_11(glval) = VariableAddress[b] : -# 240| r0_12(bool) = Load : r0_11, m0_4 -# 240| v0_13(void) = ConditionalBranch : r0_12 +# 239| v0_0(void) = EnterFunction : +# 239| mu0_1(unknown) = UnmodeledDefinition : +# 239| r0_2(glval) = VariableAddress[b] : +# 239| m0_3(bool) = InitializeParameter[b] : r0_2 +# 239| r0_4(glval) = VariableAddress[x] : +# 239| m0_5(int) = InitializeParameter[x] : r0_4 +# 239| r0_6(glval) = VariableAddress[y] : +# 239| m0_7(int) = InitializeParameter[y] : r0_6 +# 240| r0_8(glval) = VariableAddress[b] : +# 240| r0_9(bool) = Load : r0_8, m0_3 +# 240| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 7 # 243| Block 1 # 243| r1_0(glval) = VariableAddress[b] : -# 243| r1_1(bool) = Load : r1_0, m0_4 +# 243| r1_1(bool) = Load : r1_0, m0_3 # 243| v1_2(void) = ConditionalBranch : r1_1 #-----| False -> Block 3 #-----| True -> Block 2 # 244| Block 2 # 244| r2_0(glval) = VariableAddress[y] : -# 244| r2_1(int) = Load : r2_0, m0_10 +# 244| r2_1(int) = Load : r2_0, m0_7 # 244| r2_2(glval) = VariableAddress[x] : # 244| m2_3(int) = Store : r2_2, r2_1 #-----| Goto -> Block 3 # 247| Block 3 -# 247| m3_0(int) = Phi : from 1:m0_7, from 2:m2_3 +# 247| m3_0(int) = Phi : from 1:m0_5, from 2:m2_3 # 247| r3_1(glval) = VariableAddress[x] : # 247| r3_2(int) = Load : r3_1, m3_0 # 247| r3_3(int) = Constant[7] : @@ -1068,9 +1030,8 @@ ir.cpp: # 253| Block 0 # 253| v0_0(void) = EnterFunction : # 253| mu0_1(unknown) = UnmodeledDefinition : -# 253| r0_2(int) = InitializeParameter[n] : -# 253| r0_3(glval) = VariableAddress[n] : -# 253| m0_4(int) = Store : r0_3, r0_2 +# 253| r0_2(glval) = VariableAddress[n] : +# 253| m0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 3 # 255| Block 1 @@ -1088,7 +1049,7 @@ ir.cpp: # 253| v2_3(void) = ExitFunction : # 254| Block 3 -# 254| m3_0(int) = Phi : from 0:m0_4, from 1:m1_4 +# 254| m3_0(int) = Phi : from 0:m0_3, from 1:m1_4 # 254| r3_1(glval) = VariableAddress[n] : # 254| r3_2(int) = Load : r3_1, m3_0 # 254| r3_3(int) = Constant[0] : @@ -1101,13 +1062,12 @@ ir.cpp: # 259| Block 0 # 259| v0_0(void) = EnterFunction : # 259| mu0_1(unknown) = UnmodeledDefinition : -# 259| r0_2(int) = InitializeParameter[n] : -# 259| r0_3(glval) = VariableAddress[n] : -# 259| m0_4(int) = Store : r0_3, r0_2 +# 259| r0_2(glval) = VariableAddress[n] : +# 259| m0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 1 # 261| Block 1 -# 261| m1_0(int) = Phi : from 0:m0_4, from 1:m1_5 +# 261| m1_0(int) = Phi : from 0:m0_3, from 1:m1_5 # 261| r1_1(int) = Constant[1] : # 261| r1_2(glval) = VariableAddress[n] : # 261| r1_3(int) = Load : r1_2, m1_0 @@ -1132,8 +1092,7 @@ ir.cpp: # 265| v0_0(void) = EnterFunction : # 265| mu0_1(unknown) = UnmodeledDefinition : # 266| r0_2(glval) = VariableAddress[j] : -# 266| r0_3(int) = Uninitialized : -# 266| m0_4(int) = Store : r0_2, r0_3 +# 266| m0_3(int) = Uninitialized : r0_2 #-----| Goto -> Block 2 # 265| Block 1 @@ -1472,24 +1431,23 @@ ir.cpp: # 341| Dereference(int *) -> int # 341| Block 0 -# 341| v0_0(void) = EnterFunction : -# 341| mu0_1(unknown) = UnmodeledDefinition : -# 341| r0_2(int *) = InitializeParameter[p] : -# 341| r0_3(glval) = VariableAddress[p] : -# 341| m0_4(int *) = Store : r0_3, r0_2 -# 342| r0_5(int) = Constant[1] : -# 342| r0_6(glval) = VariableAddress[p] : -# 342| r0_7(int *) = Load : r0_6, m0_4 -# 342| mu0_8(int) = Store : r0_7, r0_5 -# 343| r0_9(glval) = VariableAddress[#return] : -# 343| r0_10(glval) = VariableAddress[p] : -# 343| r0_11(int *) = Load : r0_10, m0_4 -# 343| r0_12(int) = Load : r0_11, mu0_1 -# 343| m0_13(int) = Store : r0_9, r0_12 -# 341| r0_14(glval) = VariableAddress[#return] : -# 341| v0_15(void) = ReturnValue : r0_14, m0_13 -# 341| v0_16(void) = UnmodeledUse : mu* -# 341| v0_17(void) = ExitFunction : +# 341| v0_0(void) = EnterFunction : +# 341| mu0_1(unknown) = UnmodeledDefinition : +# 341| r0_2(glval) = VariableAddress[p] : +# 341| m0_3(int *) = InitializeParameter[p] : r0_2 +# 342| r0_4(int) = Constant[1] : +# 342| r0_5(glval) = VariableAddress[p] : +# 342| r0_6(int *) = Load : r0_5, m0_3 +# 342| mu0_7(int) = Store : r0_6, r0_4 +# 343| r0_8(glval) = VariableAddress[#return] : +# 343| r0_9(glval) = VariableAddress[p] : +# 343| r0_10(int *) = Load : r0_9, m0_3 +# 343| r0_11(int) = Load : r0_10, mu0_1 +# 343| m0_12(int) = Store : r0_8, r0_11 +# 341| r0_13(glval) = VariableAddress[#return] : +# 341| v0_14(void) = ReturnValue : r0_13, m0_12 +# 341| v0_15(void) = UnmodeledUse : mu* +# 341| v0_16(void) = ExitFunction : # 348| AddressOf() -> int * # 348| Block 0 @@ -1507,9 +1465,8 @@ ir.cpp: # 352| Block 0 # 352| v0_0(void) = EnterFunction : # 352| mu0_1(unknown) = UnmodeledDefinition : -# 352| r0_2(int) = InitializeParameter[n] : -# 352| r0_3(glval) = VariableAddress[n] : -# 352| m0_4(int) = Store : r0_3, r0_2 +# 352| r0_2(glval) = VariableAddress[n] : +# 352| m0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 5 # 354| Block 1 @@ -1541,7 +1498,7 @@ ir.cpp: # 352| v4_4(void) = ExitFunction : # 353| Block 5 -# 353| m5_0(int) = Phi : from 0:m0_4, from 3:m3_4 +# 353| m5_0(int) = Phi : from 0:m0_3, from 3:m3_4 # 353| r5_1(glval) = VariableAddress[n] : # 353| r5_2(int) = Load : r5_1, m5_0 # 353| r5_3(int) = Constant[0] : @@ -1554,13 +1511,12 @@ ir.cpp: # 360| Block 0 # 360| v0_0(void) = EnterFunction : # 360| mu0_1(unknown) = UnmodeledDefinition : -# 360| r0_2(int) = InitializeParameter[n] : -# 360| r0_3(glval) = VariableAddress[n] : -# 360| m0_4(int) = Store : r0_3, r0_2 +# 360| r0_2(glval) = VariableAddress[n] : +# 360| m0_3(int) = InitializeParameter[n] : r0_2 #-----| Goto -> Block 1 # 362| Block 1 -# 362| m1_0(int) = Phi : from 0:m0_4, from 4:m4_0 +# 362| m1_0(int) = Phi : from 0:m0_3, from 4:m4_0 # 362| r1_1(glval) = VariableAddress[n] : # 362| r1_2(int) = Load : r1_1, m1_0 # 362| r1_3(int) = Constant[1] : @@ -1613,63 +1569,57 @@ ir.cpp: # 376| Block 0 # 376| v0_0(void) = EnterFunction : # 376| mu0_1(unknown) = UnmodeledDefinition : -# 376| r0_2(int) = InitializeParameter[x] : -# 376| r0_3(glval) = VariableAddress[x] : -# 376| m0_4(int) = Store : r0_3, r0_2 -# 376| r0_5(int) = InitializeParameter[y] : -# 376| r0_6(glval) = VariableAddress[y] : -# 376| m0_7(int) = Store : r0_6, r0_5 -# 377| r0_8(glval) = VariableAddress[#return] : -# 377| r0_9(bool) = FunctionAddress[Add] : -# 377| r0_10(glval) = VariableAddress[x] : -# 377| r0_11(int) = Load : r0_10, m0_4 -# 377| r0_12(glval) = VariableAddress[y] : -# 377| r0_13(int) = Load : r0_12, m0_7 -# 377| r0_14(int) = Invoke : r0_9, r0_11, r0_13 -# 377| m0_15(int) = Store : r0_8, r0_14 -# 376| r0_16(glval) = VariableAddress[#return] : -# 376| v0_17(void) = ReturnValue : r0_16, m0_15 -# 376| v0_18(void) = UnmodeledUse : mu* -# 376| v0_19(void) = ExitFunction : +# 376| r0_2(glval) = VariableAddress[x] : +# 376| m0_3(int) = InitializeParameter[x] : r0_2 +# 376| r0_4(glval) = VariableAddress[y] : +# 376| m0_5(int) = InitializeParameter[y] : r0_4 +# 377| r0_6(glval) = VariableAddress[#return] : +# 377| r0_7(bool) = FunctionAddress[Add] : +# 377| r0_8(glval) = VariableAddress[x] : +# 377| r0_9(int) = Load : r0_8, m0_3 +# 377| r0_10(glval) = VariableAddress[y] : +# 377| r0_11(int) = Load : r0_10, m0_5 +# 377| r0_12(int) = Invoke : r0_7, r0_9, r0_11 +# 377| m0_13(int) = Store : r0_6, r0_12 +# 376| r0_14(glval) = VariableAddress[#return] : +# 376| v0_15(void) = ReturnValue : r0_14, m0_13 +# 376| v0_16(void) = UnmodeledUse : mu* +# 376| v0_17(void) = ExitFunction : # 380| Comma(int, int) -> int # 380| Block 0 # 380| v0_0(void) = EnterFunction : # 380| mu0_1(unknown) = UnmodeledDefinition : -# 380| r0_2(int) = InitializeParameter[x] : -# 380| r0_3(glval) = VariableAddress[x] : -# 380| m0_4(int) = Store : r0_3, r0_2 -# 380| r0_5(int) = InitializeParameter[y] : -# 380| r0_6(glval) = VariableAddress[y] : -# 380| m0_7(int) = Store : r0_6, r0_5 -# 381| r0_8(glval) = VariableAddress[#return] : -# 381| r0_9(bool) = FunctionAddress[VoidFunc] : -# 381| v0_10(void) = Invoke : r0_9 -# 381| r0_11(bool) = FunctionAddress[CallAdd] : -# 381| r0_12(glval) = VariableAddress[x] : -# 381| r0_13(int) = Load : r0_12, m0_4 -# 381| r0_14(glval) = VariableAddress[y] : -# 381| r0_15(int) = Load : r0_14, m0_7 -# 381| r0_16(int) = Invoke : r0_11, r0_13, r0_15 -# 381| m0_17(int) = Store : r0_8, r0_16 -# 380| r0_18(glval) = VariableAddress[#return] : -# 380| v0_19(void) = ReturnValue : r0_18, m0_17 -# 380| v0_20(void) = UnmodeledUse : mu* -# 380| v0_21(void) = ExitFunction : +# 380| r0_2(glval) = VariableAddress[x] : +# 380| m0_3(int) = InitializeParameter[x] : r0_2 +# 380| r0_4(glval) = VariableAddress[y] : +# 380| m0_5(int) = InitializeParameter[y] : r0_4 +# 381| r0_6(glval) = VariableAddress[#return] : +# 381| r0_7(bool) = FunctionAddress[VoidFunc] : +# 381| v0_8(void) = Invoke : r0_7 +# 381| r0_9(bool) = FunctionAddress[CallAdd] : +# 381| r0_10(glval) = VariableAddress[x] : +# 381| r0_11(int) = Load : r0_10, m0_3 +# 381| r0_12(glval) = VariableAddress[y] : +# 381| r0_13(int) = Load : r0_12, m0_5 +# 381| r0_14(int) = Invoke : r0_9, r0_11, r0_13 +# 381| m0_15(int) = Store : r0_6, r0_14 +# 380| r0_16(glval) = VariableAddress[#return] : +# 380| v0_17(void) = ReturnValue : r0_16, m0_15 +# 380| v0_18(void) = UnmodeledUse : mu* +# 380| v0_19(void) = ExitFunction : # 384| Switch(int) -> void # 384| Block 0 # 384| v0_0(void) = EnterFunction : # 384| mu0_1(unknown) = UnmodeledDefinition : -# 384| r0_2(int) = InitializeParameter[x] : -# 384| r0_3(glval) = VariableAddress[x] : -# 384| m0_4(int) = Store : r0_3, r0_2 -# 385| r0_5(glval) = VariableAddress[y] : -# 385| r0_6(int) = Uninitialized : -# 385| m0_7(int) = Store : r0_5, r0_6 -# 386| r0_8(glval) = VariableAddress[x] : -# 386| r0_9(int) = Load : r0_8, m0_4 -# 386| v0_10(void) = Switch : r0_9 +# 384| r0_2(glval) = VariableAddress[x] : +# 384| m0_3(int) = InitializeParameter[x] : r0_2 +# 385| r0_4(glval) = VariableAddress[y] : +# 385| m0_5(int) = Uninitialized : r0_4 +# 386| r0_6(glval) = VariableAddress[x] : +# 386| r0_7(int) = Load : r0_6, m0_3 +# 386| v0_8(void) = Switch : r0_7 #-----| Case[-1] -> Block 2 #-----| Case[1] -> Block 3 #-----| Case[2] -> Block 4 @@ -1743,66 +1693,61 @@ ir.cpp: # 422| Block 0 # 422| v0_0(void) = EnterFunction : # 422| mu0_1(unknown) = UnmodeledDefinition : -# 422| r0_2(Point) = InitializeParameter[pt] : -# 422| r0_3(glval) = VariableAddress[pt] : -# 422| m0_4(Point) = Store : r0_3, r0_2 -# 423| r0_5(glval) = VariableAddress[#return] : -# 423| r0_6(glval) = VariableAddress[pt] : -# 423| r0_7(Point) = Load : r0_6, m0_4 -# 423| m0_8(Point) = Store : r0_5, r0_7 -# 422| r0_9(glval) = VariableAddress[#return] : -# 422| v0_10(void) = ReturnValue : r0_9, m0_8 -# 422| v0_11(void) = UnmodeledUse : mu* -# 422| v0_12(void) = ExitFunction : +# 422| r0_2(glval) = VariableAddress[pt] : +# 422| m0_3(Point) = InitializeParameter[pt] : r0_2 +# 423| r0_4(glval) = VariableAddress[#return] : +# 423| r0_5(glval) = VariableAddress[pt] : +# 423| r0_6(Point) = Load : r0_5, m0_3 +# 423| m0_7(Point) = Store : r0_4, r0_6 +# 422| r0_8(glval) = VariableAddress[#return] : +# 422| v0_9(void) = ReturnValue : r0_8, m0_7 +# 422| v0_10(void) = UnmodeledUse : mu* +# 422| v0_11(void) = ExitFunction : # 426| FieldAccess() -> void # 426| Block 0 # 426| v0_0(void) = EnterFunction : # 426| mu0_1(unknown) = UnmodeledDefinition : # 427| r0_2(glval) = VariableAddress[pt] : -# 427| r0_3(Point) = Uninitialized : -# 427| mu0_4(Point) = Store : r0_2, r0_3 -# 428| r0_5(int) = Constant[5] : -# 428| r0_6(glval) = VariableAddress[pt] : -# 428| r0_7(glval) = FieldAddress[x] : r0_6 -# 428| mu0_8(int) = Store : r0_7, r0_5 -# 429| r0_9(glval) = VariableAddress[pt] : -# 429| r0_10(glval) = FieldAddress[x] : r0_9 -# 429| r0_11(int) = Load : r0_10, mu0_1 -# 429| r0_12(glval) = VariableAddress[pt] : -# 429| r0_13(glval) = FieldAddress[y] : r0_12 -# 429| mu0_14(int) = Store : r0_13, r0_11 -# 430| r0_15(glval) = VariableAddress[p] : -# 430| r0_16(glval) = VariableAddress[pt] : -# 430| r0_17(glval) = FieldAddress[y] : r0_16 -# 430| m0_18(int *) = Store : r0_15, r0_17 -# 431| v0_19(void) = NoOp : -# 426| v0_20(void) = ReturnVoid : -# 426| v0_21(void) = UnmodeledUse : mu* -# 426| v0_22(void) = ExitFunction : +# 427| mu0_3(Point) = Uninitialized : r0_2 +# 428| r0_4(int) = Constant[5] : +# 428| r0_5(glval) = VariableAddress[pt] : +# 428| r0_6(glval) = FieldAddress[x] : r0_5 +# 428| mu0_7(int) = Store : r0_6, r0_4 +# 429| r0_8(glval) = VariableAddress[pt] : +# 429| r0_9(glval) = FieldAddress[x] : r0_8 +# 429| r0_10(int) = Load : r0_9, mu0_1 +# 429| r0_11(glval) = VariableAddress[pt] : +# 429| r0_12(glval) = FieldAddress[y] : r0_11 +# 429| mu0_13(int) = Store : r0_12, r0_10 +# 430| r0_14(glval) = VariableAddress[p] : +# 430| r0_15(glval) = VariableAddress[pt] : +# 430| r0_16(glval) = FieldAddress[y] : r0_15 +# 430| m0_17(int *) = Store : r0_14, r0_16 +# 431| v0_18(void) = NoOp : +# 426| v0_19(void) = ReturnVoid : +# 426| v0_20(void) = UnmodeledUse : mu* +# 426| v0_21(void) = ExitFunction : # 433| LogicalOr(bool, bool) -> void # 433| Block 0 -# 433| v0_0(void) = EnterFunction : -# 433| mu0_1(unknown) = UnmodeledDefinition : -# 433| r0_2(bool) = InitializeParameter[a] : -# 433| r0_3(glval) = VariableAddress[a] : -# 433| m0_4(bool) = Store : r0_3, r0_2 -# 433| r0_5(bool) = InitializeParameter[b] : -# 433| r0_6(glval) = VariableAddress[b] : -# 433| m0_7(bool) = Store : r0_6, r0_5 -# 434| r0_8(glval) = VariableAddress[x] : -# 434| r0_9(int) = Uninitialized : -# 434| m0_10(int) = Store : r0_8, r0_9 -# 435| r0_11(glval) = VariableAddress[a] : -# 435| r0_12(bool) = Load : r0_11, m0_4 -# 435| v0_13(void) = ConditionalBranch : r0_12 +# 433| v0_0(void) = EnterFunction : +# 433| mu0_1(unknown) = UnmodeledDefinition : +# 433| r0_2(glval) = VariableAddress[a] : +# 433| m0_3(bool) = InitializeParameter[a] : r0_2 +# 433| r0_4(glval) = VariableAddress[b] : +# 433| m0_5(bool) = InitializeParameter[b] : r0_4 +# 434| r0_6(glval) = VariableAddress[x] : +# 434| m0_7(int) = Uninitialized : r0_6 +# 435| r0_8(glval) = VariableAddress[a] : +# 435| r0_9(bool) = Load : r0_8, m0_3 +# 435| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 2 # 435| Block 1 # 435| r1_0(glval) = VariableAddress[b] : -# 435| r1_1(bool) = Load : r1_0, m0_7 +# 435| r1_1(bool) = Load : r1_0, m0_5 # 435| v1_2(void) = ConditionalBranch : r1_1 #-----| False -> Block 3 #-----| True -> Block 2 @@ -1815,14 +1760,14 @@ ir.cpp: # 439| Block 3 # 439| r3_0(glval) = VariableAddress[a] : -# 439| r3_1(bool) = Load : r3_0, m0_4 +# 439| r3_1(bool) = Load : r3_0, m0_3 # 439| v3_2(void) = ConditionalBranch : r3_1 #-----| False -> Block 4 #-----| True -> Block 5 # 439| Block 4 # 439| r4_0(glval) = VariableAddress[b] : -# 439| r4_1(bool) = Load : r4_0, m0_7 +# 439| r4_1(bool) = Load : r4_0, m0_5 # 439| v4_2(void) = ConditionalBranch : r4_1 #-----| False -> Block 6 #-----| True -> Block 5 @@ -1847,26 +1792,23 @@ ir.cpp: # 447| LogicalAnd(bool, bool) -> void # 447| Block 0 -# 447| v0_0(void) = EnterFunction : -# 447| mu0_1(unknown) = UnmodeledDefinition : -# 447| r0_2(bool) = InitializeParameter[a] : -# 447| r0_3(glval) = VariableAddress[a] : -# 447| m0_4(bool) = Store : r0_3, r0_2 -# 447| r0_5(bool) = InitializeParameter[b] : -# 447| r0_6(glval) = VariableAddress[b] : -# 447| m0_7(bool) = Store : r0_6, r0_5 -# 448| r0_8(glval) = VariableAddress[x] : -# 448| r0_9(int) = Uninitialized : -# 448| m0_10(int) = Store : r0_8, r0_9 -# 449| r0_11(glval) = VariableAddress[a] : -# 449| r0_12(bool) = Load : r0_11, m0_4 -# 449| v0_13(void) = ConditionalBranch : r0_12 +# 447| v0_0(void) = EnterFunction : +# 447| mu0_1(unknown) = UnmodeledDefinition : +# 447| r0_2(glval) = VariableAddress[a] : +# 447| m0_3(bool) = InitializeParameter[a] : r0_2 +# 447| r0_4(glval) = VariableAddress[b] : +# 447| m0_5(bool) = InitializeParameter[b] : r0_4 +# 448| r0_6(glval) = VariableAddress[x] : +# 448| m0_7(int) = Uninitialized : r0_6 +# 449| r0_8(glval) = VariableAddress[a] : +# 449| r0_9(bool) = Load : r0_8, m0_3 +# 449| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 3 #-----| True -> Block 1 # 449| Block 1 # 449| r1_0(glval) = VariableAddress[b] : -# 449| r1_1(bool) = Load : r1_0, m0_7 +# 449| r1_1(bool) = Load : r1_0, m0_5 # 449| v1_2(void) = ConditionalBranch : r1_1 #-----| False -> Block 3 #-----| True -> Block 2 @@ -1879,14 +1821,14 @@ ir.cpp: # 453| Block 3 # 453| r3_0(glval) = VariableAddress[a] : -# 453| r3_1(bool) = Load : r3_0, m0_4 +# 453| r3_1(bool) = Load : r3_0, m0_3 # 453| v3_2(void) = ConditionalBranch : r3_1 #-----| False -> Block 6 #-----| True -> Block 4 # 453| Block 4 # 453| r4_0(glval) = VariableAddress[b] : -# 453| r4_1(bool) = Load : r4_0, m0_7 +# 453| r4_1(bool) = Load : r4_0, m0_5 # 453| v4_2(void) = ConditionalBranch : r4_1 #-----| False -> Block 6 #-----| True -> Block 5 @@ -1911,20 +1853,17 @@ ir.cpp: # 461| LogicalNot(bool, bool) -> void # 461| Block 0 -# 461| v0_0(void) = EnterFunction : -# 461| mu0_1(unknown) = UnmodeledDefinition : -# 461| r0_2(bool) = InitializeParameter[a] : -# 461| r0_3(glval) = VariableAddress[a] : -# 461| m0_4(bool) = Store : r0_3, r0_2 -# 461| r0_5(bool) = InitializeParameter[b] : -# 461| r0_6(glval) = VariableAddress[b] : -# 461| m0_7(bool) = Store : r0_6, r0_5 -# 462| r0_8(glval) = VariableAddress[x] : -# 462| r0_9(int) = Uninitialized : -# 462| m0_10(int) = Store : r0_8, r0_9 -# 463| r0_11(glval) = VariableAddress[a] : -# 463| r0_12(bool) = Load : r0_11, m0_4 -# 463| v0_13(void) = ConditionalBranch : r0_12 +# 461| v0_0(void) = EnterFunction : +# 461| mu0_1(unknown) = UnmodeledDefinition : +# 461| r0_2(glval) = VariableAddress[a] : +# 461| m0_3(bool) = InitializeParameter[a] : r0_2 +# 461| r0_4(glval) = VariableAddress[b] : +# 461| m0_5(bool) = InitializeParameter[b] : r0_4 +# 462| r0_6(glval) = VariableAddress[x] : +# 462| m0_7(int) = Uninitialized : r0_6 +# 463| r0_8(glval) = VariableAddress[a] : +# 463| r0_9(bool) = Load : r0_8, m0_3 +# 463| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 1 #-----| True -> Block 2 @@ -1936,14 +1875,14 @@ ir.cpp: # 467| Block 2 # 467| r2_0(glval) = VariableAddress[a] : -# 467| r2_1(bool) = Load : r2_0, m0_4 +# 467| r2_1(bool) = Load : r2_0, m0_3 # 467| v2_2(void) = ConditionalBranch : r2_1 #-----| False -> Block 4 #-----| True -> Block 3 # 467| Block 3 # 467| r3_0(glval) = VariableAddress[b] : -# 467| r3_1(bool) = Load : r3_0, m0_7 +# 467| r3_1(bool) = Load : r3_0, m0_5 # 467| v3_2(void) = ConditionalBranch : r3_1 #-----| False -> Block 4 #-----| True -> Block 5 @@ -1968,26 +1907,23 @@ ir.cpp: # 475| ConditionValues(bool, bool) -> void # 475| Block 0 -# 475| v0_0(void) = EnterFunction : -# 475| mu0_1(unknown) = UnmodeledDefinition : -# 475| r0_2(bool) = InitializeParameter[a] : -# 475| r0_3(glval) = VariableAddress[a] : -# 475| m0_4(bool) = Store : r0_3, r0_2 -# 475| r0_5(bool) = InitializeParameter[b] : -# 475| r0_6(glval) = VariableAddress[b] : -# 475| m0_7(bool) = Store : r0_6, r0_5 -# 476| r0_8(glval) = VariableAddress[x] : -# 476| r0_9(bool) = Uninitialized : -# 476| m0_10(bool) = Store : r0_8, r0_9 -# 477| r0_11(glval) = VariableAddress[a] : -# 477| r0_12(bool) = Load : r0_11, m0_4 -# 477| v0_13(void) = ConditionalBranch : r0_12 +# 475| v0_0(void) = EnterFunction : +# 475| mu0_1(unknown) = UnmodeledDefinition : +# 475| r0_2(glval) = VariableAddress[a] : +# 475| m0_3(bool) = InitializeParameter[a] : r0_2 +# 475| r0_4(glval) = VariableAddress[b] : +# 475| m0_5(bool) = InitializeParameter[b] : r0_4 +# 476| r0_6(glval) = VariableAddress[x] : +# 476| m0_7(bool) = Uninitialized : r0_6 +# 477| r0_8(glval) = VariableAddress[a] : +# 477| r0_9(bool) = Load : r0_8, m0_3 +# 477| v0_10(void) = ConditionalBranch : r0_9 #-----| False -> Block 10 #-----| True -> Block 1 # 477| Block 1 # 477| r1_0(glval) = VariableAddress[b] : -# 477| r1_1(bool) = Load : r1_0, m0_7 +# 477| r1_1(bool) = Load : r1_0, m0_5 # 477| v1_2(void) = ConditionalBranch : r1_1 #-----| False -> Block 10 #-----| True -> Block 12 @@ -2005,7 +1941,7 @@ ir.cpp: # 478| r3_3(glval) = VariableAddress[x] : # 478| m3_4(bool) = Store : r3_3, r3_2 # 479| r3_5(glval) = VariableAddress[a] : -# 479| r3_6(bool) = Load : r3_5, m0_4 +# 479| r3_6(bool) = Load : r3_5, m0_3 # 479| v3_7(void) = ConditionalBranch : r3_6 #-----| False -> Block 9 #-----| True -> Block 8 @@ -2018,7 +1954,7 @@ ir.cpp: # 478| Block 5 # 478| r5_0(glval) = VariableAddress[b] : -# 478| r5_1(bool) = Load : r5_0, m0_7 +# 478| r5_1(bool) = Load : r5_0, m0_5 # 478| v5_2(void) = ConditionalBranch : r5_1 #-----| False -> Block 2 #-----| True -> Block 4 @@ -2049,7 +1985,7 @@ ir.cpp: # 479| Block 9 # 479| r9_0(glval) = VariableAddress[b] : -# 479| r9_1(bool) = Load : r9_0, m0_7 +# 479| r9_1(bool) = Load : r9_0, m0_5 # 479| v9_2(void) = ConditionalBranch : r9_1 #-----| False -> Block 6 #-----| True -> Block 8 @@ -2067,7 +2003,7 @@ ir.cpp: # 477| r11_3(glval) = VariableAddress[x] : # 477| m11_4(bool) = Store : r11_3, r11_2 # 478| r11_5(glval) = VariableAddress[a] : -# 478| r11_6(bool) = Load : r11_5, m0_4 +# 478| r11_6(bool) = Load : r11_5, m0_3 # 478| v11_7(void) = ConditionalBranch : r11_6 #-----| False -> Block 5 #-----| True -> Block 4 @@ -2080,34 +2016,31 @@ ir.cpp: # 482| Conditional(bool, int, int) -> void # 482| Block 0 -# 482| v0_0(void) = EnterFunction : -# 482| mu0_1(unknown) = UnmodeledDefinition : -# 482| r0_2(bool) = InitializeParameter[a] : -# 482| r0_3(glval) = VariableAddress[a] : -# 482| m0_4(bool) = Store : r0_3, r0_2 -# 482| r0_5(int) = InitializeParameter[x] : -# 482| r0_6(glval) = VariableAddress[x] : -# 482| m0_7(int) = Store : r0_6, r0_5 -# 482| r0_8(int) = InitializeParameter[y] : -# 482| r0_9(glval) = VariableAddress[y] : -# 482| m0_10(int) = Store : r0_9, r0_8 -# 483| r0_11(glval) = VariableAddress[z] : -# 483| r0_12(glval) = VariableAddress[a] : -# 483| r0_13(bool) = Load : r0_12, m0_4 -# 483| v0_14(void) = ConditionalBranch : r0_13 +# 482| v0_0(void) = EnterFunction : +# 482| mu0_1(unknown) = UnmodeledDefinition : +# 482| r0_2(glval) = VariableAddress[a] : +# 482| m0_3(bool) = InitializeParameter[a] : r0_2 +# 482| r0_4(glval) = VariableAddress[x] : +# 482| m0_5(int) = InitializeParameter[x] : r0_4 +# 482| r0_6(glval) = VariableAddress[y] : +# 482| m0_7(int) = InitializeParameter[y] : r0_6 +# 483| r0_8(glval) = VariableAddress[z] : +# 483| r0_9(glval) = VariableAddress[a] : +# 483| r0_10(bool) = Load : r0_9, m0_3 +# 483| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 2 #-----| True -> Block 1 # 483| Block 1 # 483| r1_0(glval) = VariableAddress[x] : -# 483| r1_1(int) = Load : r1_0, m0_7 +# 483| r1_1(int) = Load : r1_0, m0_5 # 483| r1_2(glval) = VariableAddress[#temp483:13] : # 483| m1_3(int) = Store : r1_2, r1_1 #-----| Goto -> Block 3 # 483| Block 2 # 483| r2_0(glval) = VariableAddress[y] : -# 483| r2_1(int) = Load : r2_0, m0_10 +# 483| r2_1(int) = Load : r2_0, m0_7 # 483| r2_2(glval) = VariableAddress[#temp483:13] : # 483| m2_3(int) = Store : r2_2, r2_1 #-----| Goto -> Block 3 @@ -2116,7 +2049,7 @@ ir.cpp: # 483| m3_0(int) = Phi : from 1:m1_3, from 2:m2_3 # 483| r3_1(glval) = VariableAddress[#temp483:13] : # 483| r3_2(int) = Load : r3_1, m3_0 -# 483| m3_3(int) = Store : r0_11, r3_2 +# 483| m3_3(int) = Store : r0_8, r3_2 # 484| v3_4(void) = NoOp : # 482| v3_5(void) = ReturnVoid : # 482| v3_6(void) = UnmodeledUse : mu* @@ -2124,21 +2057,18 @@ ir.cpp: # 486| Conditional_LValue(bool) -> void # 486| Block 0 -# 486| v0_0(void) = EnterFunction : -# 486| mu0_1(unknown) = UnmodeledDefinition : -# 486| r0_2(bool) = InitializeParameter[a] : -# 486| r0_3(glval) = VariableAddress[a] : -# 486| m0_4(bool) = Store : r0_3, r0_2 -# 487| r0_5(glval) = VariableAddress[x] : -# 487| r0_6(int) = Uninitialized : -# 487| mu0_7(int) = Store : r0_5, r0_6 -# 488| r0_8(glval) = VariableAddress[y] : -# 488| r0_9(int) = Uninitialized : -# 488| mu0_10(int) = Store : r0_8, r0_9 -# 489| r0_11(int) = Constant[5] : -# 489| r0_12(glval) = VariableAddress[a] : -# 489| r0_13(bool) = Load : r0_12, m0_4 -# 489| v0_14(void) = ConditionalBranch : r0_13 +# 486| v0_0(void) = EnterFunction : +# 486| mu0_1(unknown) = UnmodeledDefinition : +# 486| r0_2(glval) = VariableAddress[a] : +# 486| m0_3(bool) = InitializeParameter[a] : r0_2 +# 487| r0_4(glval) = VariableAddress[x] : +# 487| mu0_5(int) = Uninitialized : r0_4 +# 488| r0_6(glval) = VariableAddress[y] : +# 488| mu0_7(int) = Uninitialized : r0_6 +# 489| r0_8(int) = Constant[5] : +# 489| r0_9(glval) = VariableAddress[a] : +# 489| r0_10(bool) = Load : r0_9, m0_3 +# 489| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2146,7 +2076,7 @@ ir.cpp: # 489| m1_0(int) = Phi : from 2:m2_2, from 3:m3_2 # 489| r1_1(glval) = VariableAddress[#temp489:6] : # 489| r1_2(glval) = Load : r1_1, m1_0 -# 489| mu1_3(int) = Store : r1_2, r0_11 +# 489| mu1_3(int) = Store : r1_2, r0_8 # 490| v1_4(void) = NoOp : # 486| v1_5(void) = ReturnVoid : # 486| v1_6(void) = UnmodeledUse : mu* @@ -2168,12 +2098,11 @@ ir.cpp: # 492| Block 0 # 492| v0_0(void) = EnterFunction : # 492| mu0_1(unknown) = UnmodeledDefinition : -# 492| r0_2(bool) = InitializeParameter[a] : -# 492| r0_3(glval) = VariableAddress[a] : -# 492| m0_4(bool) = Store : r0_3, r0_2 -# 493| r0_5(glval) = VariableAddress[a] : -# 493| r0_6(bool) = Load : r0_5, m0_4 -# 493| v0_7(void) = ConditionalBranch : r0_6 +# 492| r0_2(glval) = VariableAddress[a] : +# 492| m0_3(bool) = InitializeParameter[a] : r0_2 +# 493| r0_4(glval) = VariableAddress[a] : +# 493| r0_5(bool) = Load : r0_4, m0_3 +# 493| v0_6(void) = ConditionalBranch : r0_5 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2218,205 +2147,195 @@ ir.cpp: # 503| Block 0 # 503| v0_0(void) = EnterFunction : # 503| mu0_1(unknown) = UnmodeledDefinition : -# 503| r0_2(int) = InitializeParameter[x] : -# 503| r0_3(glval) = VariableAddress[x] : -# 503| m0_4(int) = Store : r0_3, r0_2 -# 503| r0_5(float) = InitializeParameter[f] : -# 503| r0_6(glval) = VariableAddress[f] : -# 503| m0_7(float) = Store : r0_6, r0_5 -# 504| r0_8(glval) = VariableAddress[pt1] : -# 504| r0_9(glval) = FieldAddress[x] : r0_8 -# 504| r0_10(glval) = VariableAddress[x] : -# 504| r0_11(int) = Load : r0_10, m0_4 -# 504| m0_12(int) = Store : r0_9, r0_11 -# 504| r0_13(glval) = FieldAddress[y] : r0_8 -# 504| r0_14(glval) = VariableAddress[f] : -# 504| r0_15(float) = Load : r0_14, m0_7 -# 504| r0_16(int) = Convert : r0_15 -# 504| mu0_17(int) = Store : r0_13, r0_16 -# 505| r0_18(glval) = VariableAddress[pt2] : -# 505| r0_19(glval) = FieldAddress[x] : r0_18 -# 505| r0_20(glval) = VariableAddress[x] : -# 505| r0_21(int) = Load : r0_20, m0_4 -# 505| m0_22(int) = Store : r0_19, r0_21 -# 505| r0_23(glval) = FieldAddress[y] : r0_18 -# 505| r0_24(int) = Constant[0] : -# 505| mu0_25(int) = Store : r0_23, r0_24 -# 506| r0_26(glval) = VariableAddress[pt3] : -# 506| r0_27(glval) = FieldAddress[x] : r0_26 -# 506| r0_28(int) = Constant[0] : -# 506| m0_29(int) = Store : r0_27, r0_28 -# 506| r0_30(glval) = FieldAddress[y] : r0_26 -# 506| r0_31(int) = Constant[0] : -# 506| mu0_32(int) = Store : r0_30, r0_31 -# 508| r0_33(glval) = VariableAddress[x1] : -# 508| r0_34(int) = Constant[1] : -# 508| m0_35(int) = Store : r0_33, r0_34 -# 509| r0_36(glval) = VariableAddress[x2] : -# 509| r0_37(int) = Constant[0] : -# 509| m0_38(int) = Store : r0_36, r0_37 -# 510| v0_39(void) = NoOp : -# 503| v0_40(void) = ReturnVoid : -# 503| v0_41(void) = UnmodeledUse : mu* -# 503| v0_42(void) = ExitFunction : +# 503| r0_2(glval) = VariableAddress[x] : +# 503| m0_3(int) = InitializeParameter[x] : r0_2 +# 503| r0_4(glval) = VariableAddress[f] : +# 503| m0_5(float) = InitializeParameter[f] : r0_4 +# 504| r0_6(glval) = VariableAddress[pt1] : +# 504| r0_7(glval) = FieldAddress[x] : r0_6 +# 504| r0_8(glval) = VariableAddress[x] : +# 504| r0_9(int) = Load : r0_8, m0_3 +# 504| m0_10(int) = Store : r0_7, r0_9 +# 504| r0_11(glval) = FieldAddress[y] : r0_6 +# 504| r0_12(glval) = VariableAddress[f] : +# 504| r0_13(float) = Load : r0_12, m0_5 +# 504| r0_14(int) = Convert : r0_13 +# 504| mu0_15(int) = Store : r0_11, r0_14 +# 505| r0_16(glval) = VariableAddress[pt2] : +# 505| r0_17(glval) = FieldAddress[x] : r0_16 +# 505| r0_18(glval) = VariableAddress[x] : +# 505| r0_19(int) = Load : r0_18, m0_3 +# 505| m0_20(int) = Store : r0_17, r0_19 +# 505| r0_21(glval) = FieldAddress[y] : r0_16 +# 505| r0_22(int) = Constant[0] : +# 505| mu0_23(int) = Store : r0_21, r0_22 +# 506| r0_24(glval) = VariableAddress[pt3] : +# 506| r0_25(glval) = FieldAddress[x] : r0_24 +# 506| r0_26(int) = Constant[0] : +# 506| m0_27(int) = Store : r0_25, r0_26 +# 506| r0_28(glval) = FieldAddress[y] : r0_24 +# 506| r0_29(int) = Constant[0] : +# 506| mu0_30(int) = Store : r0_28, r0_29 +# 508| r0_31(glval) = VariableAddress[x1] : +# 508| r0_32(int) = Constant[1] : +# 508| m0_33(int) = Store : r0_31, r0_32 +# 509| r0_34(glval) = VariableAddress[x2] : +# 509| r0_35(int) = Constant[0] : +# 509| m0_36(int) = Store : r0_34, r0_35 +# 510| v0_37(void) = NoOp : +# 503| v0_38(void) = ReturnVoid : +# 503| v0_39(void) = UnmodeledUse : mu* +# 503| v0_40(void) = ExitFunction : # 512| NestedInitList(int, float) -> void # 512| Block 0 # 512| v0_0(void) = EnterFunction : # 512| mu0_1(unknown) = UnmodeledDefinition : -# 512| r0_2(int) = InitializeParameter[x] : -# 512| r0_3(glval) = VariableAddress[x] : -# 512| m0_4(int) = Store : r0_3, r0_2 -# 512| r0_5(float) = InitializeParameter[f] : -# 512| r0_6(glval) = VariableAddress[f] : -# 512| m0_7(float) = Store : r0_6, r0_5 -# 513| r0_8(glval) = VariableAddress[r1] : -# 513| r0_9(glval) = FieldAddress[topLeft] : r0_8 -# 513| r0_10(Point) = Constant[0] : -# 513| m0_11(Point) = Store : r0_9, r0_10 -# 513| r0_12(glval) = FieldAddress[bottomRight] : r0_8 -# 513| r0_13(Point) = Constant[0] : -# 513| mu0_14(Point) = Store : r0_12, r0_13 -# 514| r0_15(glval) = VariableAddress[r2] : -# 514| r0_16(glval) = FieldAddress[topLeft] : r0_15 -# 514| r0_17(glval) = FieldAddress[x] : r0_16 -# 514| r0_18(glval) = VariableAddress[x] : -# 514| r0_19(int) = Load : r0_18, m0_4 -# 514| m0_20(int) = Store : r0_17, r0_19 -# 514| r0_21(glval) = FieldAddress[y] : r0_16 -# 514| r0_22(glval) = VariableAddress[f] : -# 514| r0_23(float) = Load : r0_22, m0_7 -# 514| r0_24(int) = Convert : r0_23 -# 514| mu0_25(int) = Store : r0_21, r0_24 -# 514| r0_26(glval) = FieldAddress[bottomRight] : r0_15 -# 514| r0_27(Point) = Constant[0] : -# 514| mu0_28(Point) = Store : r0_26, r0_27 -# 515| r0_29(glval) = VariableAddress[r3] : -# 515| r0_30(glval) = FieldAddress[topLeft] : r0_29 -# 515| r0_31(glval) = FieldAddress[x] : r0_30 -# 515| r0_32(glval) = VariableAddress[x] : -# 515| r0_33(int) = Load : r0_32, m0_4 -# 515| m0_34(int) = Store : r0_31, r0_33 -# 515| r0_35(glval) = FieldAddress[y] : r0_30 -# 515| r0_36(glval) = VariableAddress[f] : -# 515| r0_37(float) = Load : r0_36, m0_7 -# 515| r0_38(int) = Convert : r0_37 -# 515| mu0_39(int) = Store : r0_35, r0_38 -# 515| r0_40(glval) = FieldAddress[bottomRight] : r0_29 -# 515| r0_41(glval) = FieldAddress[x] : r0_40 -# 515| r0_42(glval) = VariableAddress[x] : -# 515| r0_43(int) = Load : r0_42, m0_4 -# 515| mu0_44(int) = Store : r0_41, r0_43 -# 515| r0_45(glval) = FieldAddress[y] : r0_40 -# 515| r0_46(glval) = VariableAddress[f] : -# 515| r0_47(float) = Load : r0_46, m0_7 -# 515| r0_48(int) = Convert : r0_47 -# 515| mu0_49(int) = Store : r0_45, r0_48 -# 516| r0_50(glval) = VariableAddress[r4] : -# 516| r0_51(glval) = FieldAddress[topLeft] : r0_50 -# 516| r0_52(glval) = FieldAddress[x] : r0_51 -# 516| r0_53(glval) = VariableAddress[x] : -# 516| r0_54(int) = Load : r0_53, m0_4 -# 516| m0_55(int) = Store : r0_52, r0_54 -# 516| r0_56(glval) = FieldAddress[y] : r0_51 -# 516| r0_57(int) = Constant[0] : -# 516| mu0_58(int) = Store : r0_56, r0_57 -# 516| r0_59(glval) = FieldAddress[bottomRight] : r0_50 -# 516| r0_60(glval) = FieldAddress[x] : r0_59 -# 516| r0_61(glval) = VariableAddress[x] : -# 516| r0_62(int) = Load : r0_61, m0_4 -# 516| mu0_63(int) = Store : r0_60, r0_62 -# 516| r0_64(glval) = FieldAddress[y] : r0_59 -# 516| r0_65(int) = Constant[0] : -# 516| mu0_66(int) = Store : r0_64, r0_65 -# 517| v0_67(void) = NoOp : -# 512| v0_68(void) = ReturnVoid : -# 512| v0_69(void) = UnmodeledUse : mu* -# 512| v0_70(void) = ExitFunction : +# 512| r0_2(glval) = VariableAddress[x] : +# 512| m0_3(int) = InitializeParameter[x] : r0_2 +# 512| r0_4(glval) = VariableAddress[f] : +# 512| m0_5(float) = InitializeParameter[f] : r0_4 +# 513| r0_6(glval) = VariableAddress[r1] : +# 513| r0_7(glval) = FieldAddress[topLeft] : r0_6 +# 513| r0_8(Point) = Constant[0] : +# 513| m0_9(Point) = Store : r0_7, r0_8 +# 513| r0_10(glval) = FieldAddress[bottomRight] : r0_6 +# 513| r0_11(Point) = Constant[0] : +# 513| mu0_12(Point) = Store : r0_10, r0_11 +# 514| r0_13(glval) = VariableAddress[r2] : +# 514| r0_14(glval) = FieldAddress[topLeft] : r0_13 +# 514| r0_15(glval) = FieldAddress[x] : r0_14 +# 514| r0_16(glval) = VariableAddress[x] : +# 514| r0_17(int) = Load : r0_16, m0_3 +# 514| m0_18(int) = Store : r0_15, r0_17 +# 514| r0_19(glval) = FieldAddress[y] : r0_14 +# 514| r0_20(glval) = VariableAddress[f] : +# 514| r0_21(float) = Load : r0_20, m0_5 +# 514| r0_22(int) = Convert : r0_21 +# 514| mu0_23(int) = Store : r0_19, r0_22 +# 514| r0_24(glval) = FieldAddress[bottomRight] : r0_13 +# 514| r0_25(Point) = Constant[0] : +# 514| mu0_26(Point) = Store : r0_24, r0_25 +# 515| r0_27(glval) = VariableAddress[r3] : +# 515| r0_28(glval) = FieldAddress[topLeft] : r0_27 +# 515| r0_29(glval) = FieldAddress[x] : r0_28 +# 515| r0_30(glval) = VariableAddress[x] : +# 515| r0_31(int) = Load : r0_30, m0_3 +# 515| m0_32(int) = Store : r0_29, r0_31 +# 515| r0_33(glval) = FieldAddress[y] : r0_28 +# 515| r0_34(glval) = VariableAddress[f] : +# 515| r0_35(float) = Load : r0_34, m0_5 +# 515| r0_36(int) = Convert : r0_35 +# 515| mu0_37(int) = Store : r0_33, r0_36 +# 515| r0_38(glval) = FieldAddress[bottomRight] : r0_27 +# 515| r0_39(glval) = FieldAddress[x] : r0_38 +# 515| r0_40(glval) = VariableAddress[x] : +# 515| r0_41(int) = Load : r0_40, m0_3 +# 515| mu0_42(int) = Store : r0_39, r0_41 +# 515| r0_43(glval) = FieldAddress[y] : r0_38 +# 515| r0_44(glval) = VariableAddress[f] : +# 515| r0_45(float) = Load : r0_44, m0_5 +# 515| r0_46(int) = Convert : r0_45 +# 515| mu0_47(int) = Store : r0_43, r0_46 +# 516| r0_48(glval) = VariableAddress[r4] : +# 516| r0_49(glval) = FieldAddress[topLeft] : r0_48 +# 516| r0_50(glval) = FieldAddress[x] : r0_49 +# 516| r0_51(glval) = VariableAddress[x] : +# 516| r0_52(int) = Load : r0_51, m0_3 +# 516| m0_53(int) = Store : r0_50, r0_52 +# 516| r0_54(glval) = FieldAddress[y] : r0_49 +# 516| r0_55(int) = Constant[0] : +# 516| mu0_56(int) = Store : r0_54, r0_55 +# 516| r0_57(glval) = FieldAddress[bottomRight] : r0_48 +# 516| r0_58(glval) = FieldAddress[x] : r0_57 +# 516| r0_59(glval) = VariableAddress[x] : +# 516| r0_60(int) = Load : r0_59, m0_3 +# 516| mu0_61(int) = Store : r0_58, r0_60 +# 516| r0_62(glval) = FieldAddress[y] : r0_57 +# 516| r0_63(int) = Constant[0] : +# 516| mu0_64(int) = Store : r0_62, r0_63 +# 517| v0_65(void) = NoOp : +# 512| v0_66(void) = ReturnVoid : +# 512| v0_67(void) = UnmodeledUse : mu* +# 512| v0_68(void) = ExitFunction : # 519| ArrayInit(int, float) -> void # 519| Block 0 # 519| v0_0(void) = EnterFunction : # 519| mu0_1(unknown) = UnmodeledDefinition : -# 519| r0_2(int) = InitializeParameter[x] : -# 519| r0_3(glval) = VariableAddress[x] : -# 519| m0_4(int) = Store : r0_3, r0_2 -# 519| r0_5(float) = InitializeParameter[f] : -# 519| r0_6(glval) = VariableAddress[f] : -# 519| m0_7(float) = Store : r0_6, r0_5 -# 520| r0_8(glval) = VariableAddress[a1] : -# 520| r0_9(int) = Constant[0] : -# 520| r0_10(glval) = PointerAdd : r0_8, r0_9 -# 520| r0_11(unknown[12]) = Constant[0] : -# 520| mu0_12(unknown[12]) = Store : r0_10, r0_11 -# 521| r0_13(glval) = VariableAddress[a2] : -# 521| r0_14(int) = Constant[0] : -# 521| r0_15(glval) = PointerAdd : r0_13, r0_14 -# 521| r0_16(glval) = VariableAddress[x] : -# 521| r0_17(int) = Load : r0_16, m0_4 -# 521| mu0_18(int) = Store : r0_15, r0_17 -# 521| r0_19(int) = Constant[1] : -# 521| r0_20(glval) = PointerAdd : r0_13, r0_19 -# 521| r0_21(glval) = VariableAddress[f] : -# 521| r0_22(float) = Load : r0_21, m0_7 -# 521| r0_23(int) = Convert : r0_22 -# 521| mu0_24(int) = Store : r0_20, r0_23 -# 521| r0_25(int) = Constant[2] : -# 521| r0_26(glval) = PointerAdd : r0_13, r0_25 -# 521| r0_27(int) = Constant[0] : -# 521| mu0_28(int) = Store : r0_26, r0_27 -# 522| r0_29(glval) = VariableAddress[a3] : -# 522| r0_30(int) = Constant[0] : -# 522| r0_31(glval) = PointerAdd : r0_29, r0_30 -# 522| r0_32(glval) = VariableAddress[x] : -# 522| r0_33(int) = Load : r0_32, m0_4 -# 522| mu0_34(int) = Store : r0_31, r0_33 -# 522| r0_35(int) = Constant[1] : -# 522| r0_36(glval) = PointerAdd : r0_29, r0_35 -# 522| r0_37(unknown[8]) = Constant[0] : -# 522| mu0_38(unknown[8]) = Store : r0_36, r0_37 -# 523| v0_39(void) = NoOp : -# 519| v0_40(void) = ReturnVoid : -# 519| v0_41(void) = UnmodeledUse : mu* -# 519| v0_42(void) = ExitFunction : +# 519| r0_2(glval) = VariableAddress[x] : +# 519| m0_3(int) = InitializeParameter[x] : r0_2 +# 519| r0_4(glval) = VariableAddress[f] : +# 519| m0_5(float) = InitializeParameter[f] : r0_4 +# 520| r0_6(glval) = VariableAddress[a1] : +# 520| r0_7(int) = Constant[0] : +# 520| r0_8(glval) = PointerAdd : r0_6, r0_7 +# 520| r0_9(unknown[12]) = Constant[0] : +# 520| mu0_10(unknown[12]) = Store : r0_8, r0_9 +# 521| r0_11(glval) = VariableAddress[a2] : +# 521| r0_12(int) = Constant[0] : +# 521| r0_13(glval) = PointerAdd : r0_11, r0_12 +# 521| r0_14(glval) = VariableAddress[x] : +# 521| r0_15(int) = Load : r0_14, m0_3 +# 521| mu0_16(int) = Store : r0_13, r0_15 +# 521| r0_17(int) = Constant[1] : +# 521| r0_18(glval) = PointerAdd : r0_11, r0_17 +# 521| r0_19(glval) = VariableAddress[f] : +# 521| r0_20(float) = Load : r0_19, m0_5 +# 521| r0_21(int) = Convert : r0_20 +# 521| mu0_22(int) = Store : r0_18, r0_21 +# 521| r0_23(int) = Constant[2] : +# 521| r0_24(glval) = PointerAdd : r0_11, r0_23 +# 521| r0_25(int) = Constant[0] : +# 521| mu0_26(int) = Store : r0_24, r0_25 +# 522| r0_27(glval) = VariableAddress[a3] : +# 522| r0_28(int) = Constant[0] : +# 522| r0_29(glval) = PointerAdd : r0_27, r0_28 +# 522| r0_30(glval) = VariableAddress[x] : +# 522| r0_31(int) = Load : r0_30, m0_3 +# 522| mu0_32(int) = Store : r0_29, r0_31 +# 522| r0_33(int) = Constant[1] : +# 522| r0_34(glval) = PointerAdd : r0_27, r0_33 +# 522| r0_35(unknown[8]) = Constant[0] : +# 522| mu0_36(unknown[8]) = Store : r0_34, r0_35 +# 523| v0_37(void) = NoOp : +# 519| v0_38(void) = ReturnVoid : +# 519| v0_39(void) = UnmodeledUse : mu* +# 519| v0_40(void) = ExitFunction : # 530| UnionInit(int, float) -> void # 530| Block 0 # 530| v0_0(void) = EnterFunction : # 530| mu0_1(unknown) = UnmodeledDefinition : -# 530| r0_2(int) = InitializeParameter[x] : -# 530| r0_3(glval) = VariableAddress[x] : -# 530| m0_4(int) = Store : r0_3, r0_2 -# 530| r0_5(float) = InitializeParameter[f] : -# 530| r0_6(glval) = VariableAddress[f] : -# 530| m0_7(float) = Store : r0_6, r0_5 -# 531| r0_8(glval) = VariableAddress[u1] : -# 531| r0_9(glval) = FieldAddress[d] : r0_8 -# 531| r0_10(glval) = VariableAddress[f] : -# 531| r0_11(float) = Load : r0_10, m0_7 -# 531| r0_12(double) = Convert : r0_11 -# 531| m0_13(double) = Store : r0_9, r0_12 -# 533| v0_14(void) = NoOp : -# 530| v0_15(void) = ReturnVoid : -# 530| v0_16(void) = UnmodeledUse : mu* -# 530| v0_17(void) = ExitFunction : +# 530| r0_2(glval) = VariableAddress[x] : +# 530| m0_3(int) = InitializeParameter[x] : r0_2 +# 530| r0_4(glval) = VariableAddress[f] : +# 530| m0_5(float) = InitializeParameter[f] : r0_4 +# 531| r0_6(glval) = VariableAddress[u1] : +# 531| r0_7(glval) = FieldAddress[d] : r0_6 +# 531| r0_8(glval) = VariableAddress[f] : +# 531| r0_9(float) = Load : r0_8, m0_5 +# 531| r0_10(double) = Convert : r0_9 +# 531| m0_11(double) = Store : r0_7, r0_10 +# 533| v0_12(void) = NoOp : +# 530| v0_13(void) = ReturnVoid : +# 530| v0_14(void) = UnmodeledUse : mu* +# 530| v0_15(void) = ExitFunction : # 535| EarlyReturn(int, int) -> void # 535| Block 0 -# 535| v0_0(void) = EnterFunction : -# 535| mu0_1(unknown) = UnmodeledDefinition : -# 535| r0_2(int) = InitializeParameter[x] : -# 535| r0_3(glval) = VariableAddress[x] : -# 535| m0_4(int) = Store : r0_3, r0_2 -# 535| r0_5(int) = InitializeParameter[y] : -# 535| r0_6(glval) = VariableAddress[y] : -# 535| m0_7(int) = Store : r0_6, r0_5 -# 536| r0_8(glval) = VariableAddress[x] : -# 536| r0_9(int) = Load : r0_8, m0_4 -# 536| r0_10(glval) = VariableAddress[y] : -# 536| r0_11(int) = Load : r0_10, m0_7 -# 536| r0_12(bool) = CompareLT : r0_9, r0_11 -# 536| v0_13(void) = ConditionalBranch : r0_12 +# 535| v0_0(void) = EnterFunction : +# 535| mu0_1(unknown) = UnmodeledDefinition : +# 535| r0_2(glval) = VariableAddress[x] : +# 535| m0_3(int) = InitializeParameter[x] : r0_2 +# 535| r0_4(glval) = VariableAddress[y] : +# 535| m0_5(int) = InitializeParameter[y] : r0_4 +# 536| r0_6(glval) = VariableAddress[x] : +# 536| r0_7(int) = Load : r0_6, m0_3 +# 536| r0_8(glval) = VariableAddress[y] : +# 536| r0_9(int) = Load : r0_8, m0_5 +# 536| r0_10(bool) = CompareLT : r0_7, r0_9 +# 536| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2431,7 +2350,7 @@ ir.cpp: # 540| Block 3 # 540| r3_0(glval) = VariableAddress[x] : -# 540| r3_1(int) = Load : r3_0, m0_4 +# 540| r3_1(int) = Load : r3_0, m0_3 # 540| r3_2(glval) = VariableAddress[y] : # 540| m3_3(int) = Store : r3_2, r3_1 # 541| v3_4(void) = NoOp : @@ -2439,20 +2358,18 @@ ir.cpp: # 543| EarlyReturnValue(int, int) -> int # 543| Block 0 -# 543| v0_0(void) = EnterFunction : -# 543| mu0_1(unknown) = UnmodeledDefinition : -# 543| r0_2(int) = InitializeParameter[x] : -# 543| r0_3(glval) = VariableAddress[x] : -# 543| m0_4(int) = Store : r0_3, r0_2 -# 543| r0_5(int) = InitializeParameter[y] : -# 543| r0_6(glval) = VariableAddress[y] : -# 543| m0_7(int) = Store : r0_6, r0_5 -# 544| r0_8(glval) = VariableAddress[x] : -# 544| r0_9(int) = Load : r0_8, m0_4 -# 544| r0_10(glval) = VariableAddress[y] : -# 544| r0_11(int) = Load : r0_10, m0_7 -# 544| r0_12(bool) = CompareLT : r0_9, r0_11 -# 544| v0_13(void) = ConditionalBranch : r0_12 +# 543| v0_0(void) = EnterFunction : +# 543| mu0_1(unknown) = UnmodeledDefinition : +# 543| r0_2(glval) = VariableAddress[x] : +# 543| m0_3(int) = InitializeParameter[x] : r0_2 +# 543| r0_4(glval) = VariableAddress[y] : +# 543| m0_5(int) = InitializeParameter[y] : r0_4 +# 544| r0_6(glval) = VariableAddress[x] : +# 544| r0_7(int) = Load : r0_6, m0_3 +# 544| r0_8(glval) = VariableAddress[y] : +# 544| r0_9(int) = Load : r0_8, m0_5 +# 544| r0_10(bool) = CompareLT : r0_7, r0_9 +# 544| v0_11(void) = ConditionalBranch : r0_10 #-----| False -> Block 3 #-----| True -> Block 2 @@ -2466,16 +2383,16 @@ ir.cpp: # 545| Block 2 # 545| r2_0(glval) = VariableAddress[#return] : # 545| r2_1(glval) = VariableAddress[x] : -# 545| r2_2(int) = Load : r2_1, m0_4 +# 545| r2_2(int) = Load : r2_1, m0_3 # 545| m2_3(int) = Store : r2_0, r2_2 #-----| Goto -> Block 1 # 548| Block 3 # 548| r3_0(glval) = VariableAddress[#return] : # 548| r3_1(glval) = VariableAddress[x] : -# 548| r3_2(int) = Load : r3_1, m0_4 +# 548| r3_2(int) = Load : r3_1, m0_3 # 548| r3_3(glval) = VariableAddress[y] : -# 548| r3_4(int) = Load : r3_3, m0_7 +# 548| r3_4(int) = Load : r3_3, m0_5 # 548| r3_5(int) = Add : r3_2, r3_4 # 548| m3_6(int) = Store : r3_0, r3_5 #-----| Goto -> Block 1 @@ -2484,31 +2401,29 @@ ir.cpp: # 551| Block 0 # 551| v0_0(void) = EnterFunction : # 551| mu0_1(unknown) = UnmodeledDefinition : -# 551| r0_2(..(*)(..)) = InitializeParameter[pfn] : -# 551| r0_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 551| m0_4(..(*)(..)) = Store : r0_3, r0_2 -# 552| r0_5(glval) = VariableAddress[#return] : -# 552| r0_6(glval<..(*)(..)>) = VariableAddress[pfn] : -# 552| r0_7(..(*)(..)) = Load : r0_6, m0_4 -# 552| r0_8(int) = Constant[5] : -# 552| r0_9(int) = Invoke : r0_7, r0_8 -# 552| m0_10(int) = Store : r0_5, r0_9 -# 551| r0_11(glval) = VariableAddress[#return] : -# 551| v0_12(void) = ReturnValue : r0_11, m0_10 -# 551| v0_13(void) = UnmodeledUse : mu* -# 551| v0_14(void) = ExitFunction : +# 551| r0_2(glval<..(*)(..)>) = VariableAddress[pfn] : +# 551| m0_3(..(*)(..)) = InitializeParameter[pfn] : r0_2 +# 552| r0_4(glval) = VariableAddress[#return] : +# 552| r0_5(glval<..(*)(..)>) = VariableAddress[pfn] : +# 552| r0_6(..(*)(..)) = Load : r0_5, m0_3 +# 552| r0_7(int) = Constant[5] : +# 552| r0_8(int) = Invoke : r0_6, r0_7 +# 552| m0_9(int) = Store : r0_4, r0_8 +# 551| r0_10(glval) = VariableAddress[#return] : +# 551| v0_11(void) = ReturnValue : r0_10, m0_9 +# 551| v0_12(void) = UnmodeledUse : mu* +# 551| v0_13(void) = ExitFunction : # 560| EnumSwitch(E) -> int # 560| Block 0 # 560| v0_0(void) = EnterFunction : # 560| mu0_1(unknown) = UnmodeledDefinition : -# 560| r0_2(E) = InitializeParameter[e] : -# 560| r0_3(glval) = VariableAddress[e] : -# 560| m0_4(E) = Store : r0_3, r0_2 -# 561| r0_5(glval) = VariableAddress[e] : -# 561| r0_6(E) = Load : r0_5, m0_4 -# 561| r0_7(int) = Convert : r0_6 -# 561| v0_8(void) = Switch : r0_7 +# 560| r0_2(glval) = VariableAddress[e] : +# 560| m0_3(E) = InitializeParameter[e] : r0_2 +# 561| r0_4(glval) = VariableAddress[e] : +# 561| r0_5(E) = Load : r0_4, m0_3 +# 561| r0_6(int) = Convert : r0_5 +# 561| v0_7(void) = Switch : r0_6 #-----| Case[0] -> Block 4 #-----| Case[1] -> Block 2 #-----| Default -> Block 3 @@ -2562,44 +2477,43 @@ ir.cpp: # 574| r0_16(char[5]) = Load : r0_15, mu0_1 # 574| m0_17(char[5]) = Store : r0_14, r0_16 # 575| r0_18(glval) = VariableAddress[b] : -# 575| r0_19(char[2]) = Uninitialized : -# 575| m0_20(char[2]) = Store : r0_18, r0_19 -# 576| r0_21(glval) = VariableAddress[c] : -# 576| r0_22(int) = Constant[0] : -# 576| r0_23(glval) = PointerAdd : r0_21, r0_22 -# 576| r0_24(unknown[2]) = Constant[0] : -# 576| mu0_25(unknown[2]) = Store : r0_23, r0_24 -# 577| r0_26(glval) = VariableAddress[d] : -# 577| r0_27(int) = Constant[0] : -# 577| r0_28(glval) = PointerAdd : r0_26, r0_27 -# 577| r0_29(char) = Constant[0] : -# 577| mu0_30(char) = Store : r0_28, r0_29 -# 577| r0_31(int) = Constant[1] : -# 577| r0_32(glval) = PointerAdd : r0_26, r0_31 -# 577| r0_33(char) = Constant[0] : -# 577| mu0_34(char) = Store : r0_32, r0_33 -# 578| r0_35(glval) = VariableAddress[e] : -# 578| r0_36(int) = Constant[0] : -# 578| r0_37(glval) = PointerAdd : r0_35, r0_36 -# 578| r0_38(char) = Constant[0] : -# 578| mu0_39(char) = Store : r0_37, r0_38 -# 578| r0_40(int) = Constant[1] : -# 578| r0_41(glval) = PointerAdd : r0_35, r0_40 -# 578| r0_42(char) = Constant[1] : -# 578| mu0_43(char) = Store : r0_41, r0_42 -# 579| r0_44(glval) = VariableAddress[f] : -# 579| r0_45(int) = Constant[0] : -# 579| r0_46(glval) = PointerAdd : r0_44, r0_45 -# 579| r0_47(char) = Constant[0] : -# 579| mu0_48(char) = Store : r0_46, r0_47 -# 579| r0_49(int) = Constant[1] : -# 579| r0_50(glval) = PointerAdd : r0_44, r0_49 -# 579| r0_51(unknown[2]) = Constant[0] : -# 579| mu0_52(unknown[2]) = Store : r0_50, r0_51 -# 580| v0_53(void) = NoOp : -# 571| v0_54(void) = ReturnVoid : -# 571| v0_55(void) = UnmodeledUse : mu* -# 571| v0_56(void) = ExitFunction : +# 575| m0_19(char[2]) = Uninitialized : r0_18 +# 576| r0_20(glval) = VariableAddress[c] : +# 576| r0_21(int) = Constant[0] : +# 576| r0_22(glval) = PointerAdd : r0_20, r0_21 +# 576| r0_23(unknown[2]) = Constant[0] : +# 576| mu0_24(unknown[2]) = Store : r0_22, r0_23 +# 577| r0_25(glval) = VariableAddress[d] : +# 577| r0_26(int) = Constant[0] : +# 577| r0_27(glval) = PointerAdd : r0_25, r0_26 +# 577| r0_28(char) = Constant[0] : +# 577| mu0_29(char) = Store : r0_27, r0_28 +# 577| r0_30(int) = Constant[1] : +# 577| r0_31(glval) = PointerAdd : r0_25, r0_30 +# 577| r0_32(char) = Constant[0] : +# 577| mu0_33(char) = Store : r0_31, r0_32 +# 578| r0_34(glval) = VariableAddress[e] : +# 578| r0_35(int) = Constant[0] : +# 578| r0_36(glval) = PointerAdd : r0_34, r0_35 +# 578| r0_37(char) = Constant[0] : +# 578| mu0_38(char) = Store : r0_36, r0_37 +# 578| r0_39(int) = Constant[1] : +# 578| r0_40(glval) = PointerAdd : r0_34, r0_39 +# 578| r0_41(char) = Constant[1] : +# 578| mu0_42(char) = Store : r0_40, r0_41 +# 579| r0_43(glval) = VariableAddress[f] : +# 579| r0_44(int) = Constant[0] : +# 579| r0_45(glval) = PointerAdd : r0_43, r0_44 +# 579| r0_46(char) = Constant[0] : +# 579| mu0_47(char) = Store : r0_45, r0_46 +# 579| r0_48(int) = Constant[1] : +# 579| r0_49(glval) = PointerAdd : r0_43, r0_48 +# 579| r0_50(unknown[2]) = Constant[0] : +# 579| mu0_51(unknown[2]) = Store : r0_49, r0_50 +# 580| v0_52(void) = NoOp : +# 571| v0_53(void) = ReturnVoid : +# 571| v0_54(void) = UnmodeledUse : mu* +# 571| v0_55(void) = ExitFunction : # 584| VarArgs() -> void # 584| Block 0 @@ -2668,83 +2582,77 @@ ir.cpp: # 622| Block 0 # 622| v0_0(void) = EnterFunction : # 622| mu0_1(unknown) = UnmodeledDefinition : -# 622| r0_2(String &) = InitializeParameter[r] : -# 622| r0_3(glval) = VariableAddress[r] : -# 622| m0_4(String &) = Store : r0_3, r0_2 -# 622| r0_5(String *) = InitializeParameter[p] : -# 622| r0_6(glval) = VariableAddress[p] : -# 622| m0_7(String *) = Store : r0_6, r0_5 -# 622| r0_8(String) = InitializeParameter[s] : -# 622| r0_9(glval) = VariableAddress[s] : -# 622| mu0_10(String) = Store : r0_9, r0_8 -# 623| r0_11(glval) = VariableAddress[r] : -# 623| r0_12(String &) = Load : r0_11, m0_4 -# 623| r0_13(glval) = Convert : r0_12 -# 623| r0_14(bool) = FunctionAddress[c_str] : -# 623| r0_15(char *) = Invoke : r0_14, this:r0_13 -# 624| r0_16(glval) = VariableAddress[p] : -# 624| r0_17(String *) = Load : r0_16, m0_7 -# 624| r0_18(String *) = Convert : r0_17 -# 624| r0_19(bool) = FunctionAddress[c_str] : -# 624| r0_20(char *) = Invoke : r0_19, this:r0_18 -# 625| r0_21(glval) = VariableAddress[s] : -# 625| r0_22(glval) = Convert : r0_21 -# 625| r0_23(bool) = FunctionAddress[c_str] : -# 625| r0_24(char *) = Invoke : r0_23, this:r0_22 -# 626| v0_25(void) = NoOp : -# 622| v0_26(void) = ReturnVoid : -# 622| v0_27(void) = UnmodeledUse : mu* -# 622| v0_28(void) = ExitFunction : +# 622| r0_2(glval) = VariableAddress[r] : +# 622| m0_3(String &) = InitializeParameter[r] : r0_2 +# 622| r0_4(glval) = VariableAddress[p] : +# 622| m0_5(String *) = InitializeParameter[p] : r0_4 +# 622| r0_6(glval) = VariableAddress[s] : +# 622| mu0_7(String) = InitializeParameter[s] : r0_6 +# 623| r0_8(glval) = VariableAddress[r] : +# 623| r0_9(String &) = Load : r0_8, m0_3 +# 623| r0_10(glval) = Convert : r0_9 +# 623| r0_11(bool) = FunctionAddress[c_str] : +# 623| r0_12(char *) = Invoke : r0_11, this:r0_10 +# 624| r0_13(glval) = VariableAddress[p] : +# 624| r0_14(String *) = Load : r0_13, m0_5 +# 624| r0_15(String *) = Convert : r0_14 +# 624| r0_16(bool) = FunctionAddress[c_str] : +# 624| r0_17(char *) = Invoke : r0_16, this:r0_15 +# 625| r0_18(glval) = VariableAddress[s] : +# 625| r0_19(glval) = Convert : r0_18 +# 625| r0_20(bool) = FunctionAddress[c_str] : +# 625| r0_21(char *) = Invoke : r0_20, this:r0_19 +# 626| v0_22(void) = NoOp : +# 622| v0_23(void) = ReturnVoid : +# 622| v0_24(void) = UnmodeledUse : mu* +# 622| v0_25(void) = ExitFunction : # 630| C::StaticMemberFunction(int) -> int # 630| Block 0 # 630| v0_0(void) = EnterFunction : # 630| mu0_1(unknown) = UnmodeledDefinition : -# 630| r0_2(int) = InitializeParameter[x] : -# 630| r0_3(glval) = VariableAddress[x] : -# 630| m0_4(int) = Store : r0_3, r0_2 -# 631| r0_5(glval) = VariableAddress[#return] : -# 631| r0_6(glval) = VariableAddress[x] : -# 631| r0_7(int) = Load : r0_6, m0_4 -# 631| m0_8(int) = Store : r0_5, r0_7 -# 630| r0_9(glval) = VariableAddress[#return] : -# 630| v0_10(void) = ReturnValue : r0_9, m0_8 -# 630| v0_11(void) = UnmodeledUse : mu* -# 630| v0_12(void) = ExitFunction : +# 630| r0_2(glval) = VariableAddress[x] : +# 630| m0_3(int) = InitializeParameter[x] : r0_2 +# 631| r0_4(glval) = VariableAddress[#return] : +# 631| r0_5(glval) = VariableAddress[x] : +# 631| r0_6(int) = Load : r0_5, m0_3 +# 631| m0_7(int) = Store : r0_4, r0_6 +# 630| r0_8(glval) = VariableAddress[#return] : +# 630| v0_9(void) = ReturnValue : r0_8, m0_7 +# 630| v0_10(void) = UnmodeledUse : mu* +# 630| v0_11(void) = ExitFunction : # 634| C::InstanceMemberFunction(int) -> int # 634| Block 0 -# 634| v0_0(void) = EnterFunction : -# 634| mu0_1(unknown) = UnmodeledDefinition : -# 634| r0_2(glval) = InitializeThis : -# 634| r0_3(int) = InitializeParameter[x] : -# 634| r0_4(glval) = VariableAddress[x] : -# 634| m0_5(int) = Store : r0_4, r0_3 -# 635| r0_6(glval) = VariableAddress[#return] : -# 635| r0_7(glval) = VariableAddress[x] : -# 635| r0_8(int) = Load : r0_7, m0_5 -# 635| m0_9(int) = Store : r0_6, r0_8 -# 634| r0_10(glval) = VariableAddress[#return] : -# 634| v0_11(void) = ReturnValue : r0_10, m0_9 -# 634| v0_12(void) = UnmodeledUse : mu* -# 634| v0_13(void) = ExitFunction : +# 634| v0_0(void) = EnterFunction : +# 634| mu0_1(unknown) = UnmodeledDefinition : +# 634| r0_2(glval) = InitializeThis : +# 634| r0_3(glval) = VariableAddress[x] : +# 634| m0_4(int) = InitializeParameter[x] : r0_3 +# 635| r0_5(glval) = VariableAddress[#return] : +# 635| r0_6(glval) = VariableAddress[x] : +# 635| r0_7(int) = Load : r0_6, m0_4 +# 635| m0_8(int) = Store : r0_5, r0_7 +# 634| r0_9(glval) = VariableAddress[#return] : +# 634| v0_10(void) = ReturnValue : r0_9, m0_8 +# 634| v0_11(void) = UnmodeledUse : mu* +# 634| v0_12(void) = ExitFunction : # 638| C::VirtualMemberFunction(int) -> int # 638| Block 0 -# 638| v0_0(void) = EnterFunction : -# 638| mu0_1(unknown) = UnmodeledDefinition : -# 638| r0_2(glval) = InitializeThis : -# 638| r0_3(int) = InitializeParameter[x] : -# 638| r0_4(glval) = VariableAddress[x] : -# 638| m0_5(int) = Store : r0_4, r0_3 -# 639| r0_6(glval) = VariableAddress[#return] : -# 639| r0_7(glval) = VariableAddress[x] : -# 639| r0_8(int) = Load : r0_7, m0_5 -# 639| m0_9(int) = Store : r0_6, r0_8 -# 638| r0_10(glval) = VariableAddress[#return] : -# 638| v0_11(void) = ReturnValue : r0_10, m0_9 -# 638| v0_12(void) = UnmodeledUse : mu* -# 638| v0_13(void) = ExitFunction : +# 638| v0_0(void) = EnterFunction : +# 638| mu0_1(unknown) = UnmodeledDefinition : +# 638| r0_2(glval) = InitializeThis : +# 638| r0_3(glval) = VariableAddress[x] : +# 638| m0_4(int) = InitializeParameter[x] : r0_3 +# 639| r0_5(glval) = VariableAddress[#return] : +# 639| r0_6(glval) = VariableAddress[x] : +# 639| r0_7(int) = Load : r0_6, m0_4 +# 639| m0_8(int) = Store : r0_5, r0_7 +# 638| r0_9(glval) = VariableAddress[#return] : +# 638| v0_10(void) = ReturnValue : r0_9, m0_8 +# 638| v0_11(void) = UnmodeledUse : mu* +# 638| v0_12(void) = ExitFunction : # 642| C::FieldAccess() -> void # 642| Block 0 @@ -2764,27 +2672,26 @@ ir.cpp: # 645| r0_13(glval) = FieldAddress[m_a] : r0_12 # 645| mu0_14(int) = Store : r0_13, r0_11 # 646| r0_15(glval) = VariableAddress[x] : -# 646| r0_16(int) = Uninitialized : -# 646| m0_17(int) = Store : r0_15, r0_16 -# 647| r0_18(C *) = CopyValue : r0_2 -# 647| r0_19(glval) = FieldAddress[m_a] : r0_18 -# 647| r0_20(int) = Load : r0_19, mu0_1 -# 647| r0_21(glval) = VariableAddress[x] : -# 647| m0_22(int) = Store : r0_21, r0_20 -# 648| r0_23(C *) = CopyValue : r0_2 -# 648| r0_24(glval) = FieldAddress[m_a] : r0_23 -# 648| r0_25(int) = Load : r0_24, mu0_1 -# 648| r0_26(glval) = VariableAddress[x] : -# 648| m0_27(int) = Store : r0_26, r0_25 -#-----| r0_28(C *) = CopyValue : r0_2 -# 649| r0_29(glval) = FieldAddress[m_a] : r0_28 -# 649| r0_30(int) = Load : r0_29, mu0_1 -# 649| r0_31(glval) = VariableAddress[x] : -# 649| m0_32(int) = Store : r0_31, r0_30 -# 650| v0_33(void) = NoOp : -# 642| v0_34(void) = ReturnVoid : -# 642| v0_35(void) = UnmodeledUse : mu* -# 642| v0_36(void) = ExitFunction : +# 646| m0_16(int) = Uninitialized : r0_15 +# 647| r0_17(C *) = CopyValue : r0_2 +# 647| r0_18(glval) = FieldAddress[m_a] : r0_17 +# 647| r0_19(int) = Load : r0_18, mu0_1 +# 647| r0_20(glval) = VariableAddress[x] : +# 647| m0_21(int) = Store : r0_20, r0_19 +# 648| r0_22(C *) = CopyValue : r0_2 +# 648| r0_23(glval) = FieldAddress[m_a] : r0_22 +# 648| r0_24(int) = Load : r0_23, mu0_1 +# 648| r0_25(glval) = VariableAddress[x] : +# 648| m0_26(int) = Store : r0_25, r0_24 +#-----| r0_27(C *) = CopyValue : r0_2 +# 649| r0_28(glval) = FieldAddress[m_a] : r0_27 +# 649| r0_29(int) = Load : r0_28, mu0_1 +# 649| r0_30(glval) = VariableAddress[x] : +# 649| m0_31(int) = Store : r0_30, r0_29 +# 650| v0_32(void) = NoOp : +# 642| v0_33(void) = ReturnVoid : +# 642| v0_34(void) = UnmodeledUse : mu* +# 642| v0_35(void) = ExitFunction : # 652| C::MethodCalls() -> void # 652| Block 0 @@ -2839,18 +2746,17 @@ ir.cpp: # 675| Block 0 # 675| v0_0(void) = EnterFunction : # 675| mu0_1(unknown) = UnmodeledDefinition : -# 675| r0_2(int &) = InitializeParameter[r] : -# 675| r0_3(glval) = VariableAddress[r] : -# 675| m0_4(int &) = Store : r0_3, r0_2 -# 676| r0_5(glval) = VariableAddress[#return] : -# 676| r0_6(glval) = VariableAddress[r] : -# 676| r0_7(int &) = Load : r0_6, m0_4 -# 676| r0_8(int) = Load : r0_7, mu0_1 -# 676| m0_9(int) = Store : r0_5, r0_8 -# 675| r0_10(glval) = VariableAddress[#return] : -# 675| v0_11(void) = ReturnValue : r0_10, m0_9 -# 675| v0_12(void) = UnmodeledUse : mu* -# 675| v0_13(void) = ExitFunction : +# 675| r0_2(glval) = VariableAddress[r] : +# 675| m0_3(int &) = InitializeParameter[r] : r0_2 +# 676| r0_4(glval) = VariableAddress[#return] : +# 676| r0_5(glval) = VariableAddress[r] : +# 676| r0_6(int &) = Load : r0_5, m0_3 +# 676| r0_7(int) = Load : r0_6, mu0_1 +# 676| m0_8(int) = Store : r0_4, r0_7 +# 675| r0_9(glval) = VariableAddress[#return] : +# 675| v0_10(void) = ReturnValue : r0_9, m0_8 +# 675| v0_11(void) = UnmodeledUse : mu* +# 675| v0_12(void) = ExitFunction : # 679| TakeReference() -> int & # 679| Block 0 @@ -2868,48 +2774,46 @@ ir.cpp: # 685| Block 0 # 685| v0_0(void) = EnterFunction : # 685| mu0_1(unknown) = UnmodeledDefinition : -# 685| r0_2(int) = InitializeParameter[x] : -# 685| r0_3(glval) = VariableAddress[x] : -# 685| mu0_4(int) = Store : r0_3, r0_2 -# 686| r0_5(glval) = VariableAddress[r] : -# 686| r0_6(glval) = VariableAddress[x] : -# 686| m0_7(int &) = Store : r0_5, r0_6 -# 687| r0_8(glval) = VariableAddress[r2] : -# 687| r0_9(glval) = VariableAddress[r] : -# 687| r0_10(int &) = Load : r0_9, m0_7 -# 687| m0_11(int &) = Store : r0_8, r0_10 -# 688| r0_12(glval) = VariableAddress[r3] : -# 688| r0_13(bool) = FunctionAddress[ReturnReference] : -# 688| r0_14(String &) = Invoke : r0_13 -# 688| r0_15(glval) = Convert : r0_14 -# 688| m0_16(String &) = Store : r0_12, r0_15 -# 689| v0_17(void) = NoOp : -# 685| v0_18(void) = ReturnVoid : -# 685| v0_19(void) = UnmodeledUse : mu* -# 685| v0_20(void) = ExitFunction : +# 685| r0_2(glval) = VariableAddress[x] : +# 685| mu0_3(int) = InitializeParameter[x] : r0_2 +# 686| r0_4(glval) = VariableAddress[r] : +# 686| r0_5(glval) = VariableAddress[x] : +# 686| m0_6(int &) = Store : r0_4, r0_5 +# 687| r0_7(glval) = VariableAddress[r2] : +# 687| r0_8(glval) = VariableAddress[r] : +# 687| r0_9(int &) = Load : r0_8, m0_6 +# 687| m0_10(int &) = Store : r0_7, r0_9 +# 688| r0_11(glval) = VariableAddress[r3] : +# 688| r0_12(bool) = FunctionAddress[ReturnReference] : +# 688| r0_13(String &) = Invoke : r0_12 +# 688| r0_14(glval) = Convert : r0_13 +# 688| m0_15(String &) = Store : r0_11, r0_14 +# 689| v0_16(void) = NoOp : +# 685| v0_17(void) = ReturnVoid : +# 685| v0_18(void) = UnmodeledUse : mu* +# 685| v0_19(void) = ExitFunction : # 691| ArrayReferences() -> void # 691| Block 0 # 691| v0_0(void) = EnterFunction : # 691| mu0_1(unknown) = UnmodeledDefinition : # 692| r0_2(glval) = VariableAddress[a] : -# 692| r0_3(int[10]) = Uninitialized : -# 692| mu0_4(int[10]) = Store : r0_2, r0_3 -# 693| r0_5(glval) = VariableAddress[ra] : -# 693| r0_6(glval) = VariableAddress[a] : -# 693| m0_7(int(&)[10]) = Store : r0_5, r0_6 -# 694| r0_8(glval) = VariableAddress[x] : -# 694| r0_9(glval) = VariableAddress[ra] : -# 694| r0_10(int(&)[10]) = Load : r0_9, m0_7 -# 694| r0_11(int *) = Convert : r0_10 -# 694| r0_12(int) = Constant[5] : -# 694| r0_13(int *) = PointerAdd[4] : r0_11, r0_12 -# 694| r0_14(int) = Load : r0_13, mu0_1 -# 694| m0_15(int) = Store : r0_8, r0_14 -# 695| v0_16(void) = NoOp : -# 691| v0_17(void) = ReturnVoid : -# 691| v0_18(void) = UnmodeledUse : mu* -# 691| v0_19(void) = ExitFunction : +# 692| mu0_3(int[10]) = Uninitialized : r0_2 +# 693| r0_4(glval) = VariableAddress[ra] : +# 693| r0_5(glval) = VariableAddress[a] : +# 693| m0_6(int(&)[10]) = Store : r0_4, r0_5 +# 694| r0_7(glval) = VariableAddress[x] : +# 694| r0_8(glval) = VariableAddress[ra] : +# 694| r0_9(int(&)[10]) = Load : r0_8, m0_6 +# 694| r0_10(int *) = Convert : r0_9 +# 694| r0_11(int) = Constant[5] : +# 694| r0_12(int *) = PointerAdd[4] : r0_10, r0_11 +# 694| r0_13(int) = Load : r0_12, mu0_1 +# 694| m0_14(int) = Store : r0_7, r0_13 +# 695| v0_15(void) = NoOp : +# 691| v0_16(void) = ReturnVoid : +# 691| v0_17(void) = UnmodeledUse : mu* +# 691| v0_18(void) = ExitFunction : # 697| FunctionReferences() -> void # 697| Block 0 @@ -2933,34 +2837,32 @@ ir.cpp: # 704| min(int, int) -> int # 704| Block 0 -# 704| v0_0(void) = EnterFunction : -# 704| mu0_1(unknown) = UnmodeledDefinition : -# 704| r0_2(int) = InitializeParameter[x] : -# 704| r0_3(glval) = VariableAddress[x] : -# 704| m0_4(int) = Store : r0_3, r0_2 -# 704| r0_5(int) = InitializeParameter[y] : -# 704| r0_6(glval) = VariableAddress[y] : -# 704| m0_7(int) = Store : r0_6, r0_5 -# 705| r0_8(glval) = VariableAddress[#return] : -# 705| r0_9(glval) = VariableAddress[x] : -# 705| r0_10(int) = Load : r0_9, m0_4 -# 705| r0_11(glval) = VariableAddress[y] : -# 705| r0_12(int) = Load : r0_11, m0_7 -# 705| r0_13(bool) = CompareLT : r0_10, r0_12 -# 705| v0_14(void) = ConditionalBranch : r0_13 +# 704| v0_0(void) = EnterFunction : +# 704| mu0_1(unknown) = UnmodeledDefinition : +# 704| r0_2(glval) = VariableAddress[x] : +# 704| m0_3(int) = InitializeParameter[x] : r0_2 +# 704| r0_4(glval) = VariableAddress[y] : +# 704| m0_5(int) = InitializeParameter[y] : r0_4 +# 705| r0_6(glval) = VariableAddress[#return] : +# 705| r0_7(glval) = VariableAddress[x] : +# 705| r0_8(int) = Load : r0_7, m0_3 +# 705| r0_9(glval) = VariableAddress[y] : +# 705| r0_10(int) = Load : r0_9, m0_5 +# 705| r0_11(bool) = CompareLT : r0_8, r0_10 +# 705| v0_12(void) = ConditionalBranch : r0_11 #-----| False -> Block 2 #-----| True -> Block 1 # 705| Block 1 # 705| r1_0(glval) = VariableAddress[x] : -# 705| r1_1(int) = Load : r1_0, m0_4 +# 705| r1_1(int) = Load : r1_0, m0_3 # 705| r1_2(glval) = VariableAddress[#temp705:10] : # 705| m1_3(int) = Store : r1_2, r1_1 #-----| Goto -> Block 3 # 705| Block 2 # 705| r2_0(glval) = VariableAddress[y] : -# 705| r2_1(int) = Load : r2_0, m0_7 +# 705| r2_1(int) = Load : r2_0, m0_5 # 705| r2_2(glval) = VariableAddress[#temp705:10] : # 705| m2_3(int) = Store : r2_2, r2_1 #-----| Goto -> Block 3 @@ -2969,7 +2871,7 @@ ir.cpp: # 705| m3_0(int) = Phi : from 1:m1_3, from 2:m2_3 # 705| r3_1(glval) = VariableAddress[#temp705:10] : # 705| r3_2(int) = Load : r3_1, m3_0 -# 705| m3_3(int) = Store : r0_8, r3_2 +# 705| m3_3(int) = Store : r0_6, r3_2 # 704| r3_4(glval) = VariableAddress[#return] : # 704| v3_5(void) = ReturnValue : r3_4, m3_3 # 704| v3_6(void) = UnmodeledUse : mu* @@ -2979,42 +2881,38 @@ ir.cpp: # 708| Block 0 # 708| v0_0(void) = EnterFunction : # 708| mu0_1(unknown) = UnmodeledDefinition : -# 708| r0_2(int) = InitializeParameter[x] : -# 708| r0_3(glval) = VariableAddress[x] : -# 708| m0_4(int) = Store : r0_3, r0_2 -# 708| r0_5(int) = InitializeParameter[y] : -# 708| r0_6(glval) = VariableAddress[y] : -# 708| m0_7(int) = Store : r0_6, r0_5 -# 709| r0_8(glval) = VariableAddress[#return] : -# 709| r0_9(bool) = FunctionAddress[min] : -# 709| r0_10(glval) = VariableAddress[x] : -# 709| r0_11(int) = Load : r0_10, m0_4 -# 709| r0_12(glval) = VariableAddress[y] : -# 709| r0_13(int) = Load : r0_12, m0_7 -# 709| r0_14(int) = Invoke : r0_9, r0_11, r0_13 -# 709| m0_15(int) = Store : r0_8, r0_14 -# 708| r0_16(glval) = VariableAddress[#return] : -# 708| v0_17(void) = ReturnValue : r0_16, m0_15 -# 708| v0_18(void) = UnmodeledUse : mu* -# 708| v0_19(void) = ExitFunction : +# 708| r0_2(glval) = VariableAddress[x] : +# 708| m0_3(int) = InitializeParameter[x] : r0_2 +# 708| r0_4(glval) = VariableAddress[y] : +# 708| m0_5(int) = InitializeParameter[y] : r0_4 +# 709| r0_6(glval) = VariableAddress[#return] : +# 709| r0_7(bool) = FunctionAddress[min] : +# 709| r0_8(glval) = VariableAddress[x] : +# 709| r0_9(int) = Load : r0_8, m0_3 +# 709| r0_10(glval) = VariableAddress[y] : +# 709| r0_11(int) = Load : r0_10, m0_5 +# 709| r0_12(int) = Invoke : r0_7, r0_9, r0_11 +# 709| m0_13(int) = Store : r0_6, r0_12 +# 708| r0_14(glval) = VariableAddress[#return] : +# 708| v0_15(void) = ReturnValue : r0_14, m0_13 +# 708| v0_16(void) = UnmodeledUse : mu* +# 708| v0_17(void) = ExitFunction : # 715| Outer::Func(void *, char) -> long # 715| Block 0 # 715| v0_0(void) = EnterFunction : # 715| mu0_1(unknown) = UnmodeledDefinition : -# 715| r0_2(void *) = InitializeParameter[x] : -# 715| r0_3(glval) = VariableAddress[x] : -# 715| m0_4(void *) = Store : r0_3, r0_2 -# 715| r0_5(char) = InitializeParameter[y] : -# 715| r0_6(glval) = VariableAddress[y] : -# 715| m0_7(char) = Store : r0_6, r0_5 -# 716| r0_8(glval) = VariableAddress[#return] : -# 716| r0_9(long) = Constant[0] : -# 716| m0_10(long) = Store : r0_8, r0_9 -# 715| r0_11(glval) = VariableAddress[#return] : -# 715| v0_12(void) = ReturnValue : r0_11, m0_10 -# 715| v0_13(void) = UnmodeledUse : mu* -# 715| v0_14(void) = ExitFunction : +# 715| r0_2(glval) = VariableAddress[x] : +# 715| m0_3(void *) = InitializeParameter[x] : r0_2 +# 715| r0_4(glval) = VariableAddress[y] : +# 715| m0_5(char) = InitializeParameter[y] : r0_4 +# 716| r0_6(glval) = VariableAddress[#return] : +# 716| r0_7(long) = Constant[0] : +# 716| m0_8(long) = Store : r0_6, r0_7 +# 715| r0_9(glval) = VariableAddress[#return] : +# 715| v0_10(void) = ReturnValue : r0_9, m0_8 +# 715| v0_11(void) = UnmodeledUse : mu* +# 715| v0_12(void) = ExitFunction : # 720| CallNestedTemplateFunc() -> double # 720| Block 0 @@ -3036,15 +2934,14 @@ ir.cpp: # 724| Block 0 # 724| v0_0(void) = EnterFunction : # 724| mu0_1(unknown) = UnmodeledDefinition : -# 724| r0_2(bool) = InitializeParameter[b] : -# 724| r0_3(glval) = VariableAddress[b] : -# 724| m0_4(bool) = Store : r0_3, r0_2 -# 726| r0_5(glval) = VariableAddress[x] : -# 726| r0_6(int) = Constant[5] : -# 726| m0_7(int) = Store : r0_5, r0_6 -# 727| r0_8(glval) = VariableAddress[b] : -# 727| r0_9(bool) = Load : r0_8, m0_4 -# 727| v0_10(void) = ConditionalBranch : r0_9 +# 724| r0_2(glval) = VariableAddress[b] : +# 724| m0_3(bool) = InitializeParameter[b] : r0_2 +# 726| r0_4(glval) = VariableAddress[x] : +# 726| r0_5(int) = Constant[5] : +# 726| m0_6(int) = Store : r0_4, r0_5 +# 727| r0_7(glval) = VariableAddress[b] : +# 727| r0_8(bool) = Load : r0_7, m0_3 +# 727| v0_9(void) = ConditionalBranch : r0_8 #-----| False -> Block 4 #-----| True -> Block 3 @@ -3066,7 +2963,7 @@ ir.cpp: # 730| Block 4 # 730| r4_0(glval) = VariableAddress[x] : -# 730| r4_1(int) = Load : r4_0, m0_7 +# 730| r4_1(int) = Load : r4_0, m0_6 # 730| r4_2(int) = Constant[2] : # 730| r4_3(bool) = CompareLT : r4_1, r4_2 # 730| v4_4(void) = ConditionalBranch : r4_3 @@ -3075,7 +2972,7 @@ ir.cpp: # 731| Block 5 # 731| r5_0(glval) = VariableAddress[b] : -# 731| r5_1(bool) = Load : r5_0, m0_4 +# 731| r5_1(bool) = Load : r5_0, m0_3 # 731| v5_2(void) = ConditionalBranch : r5_1 #-----| False -> Block 7 #-----| True -> Block 6 @@ -3111,15 +3008,14 @@ ir.cpp: #-----| Goto -> Block 10 # 735| Block 10 -# 735| r10_0(char *) = InitializeParameter[s] : -# 735| r10_1(glval) = VariableAddress[s] : -# 735| m10_2(char *) = Store : r10_1, r10_0 -# 736| r10_3(glval) = VariableAddress[#throw736:5] : -# 736| r10_4(bool) = FunctionAddress[String] : -# 736| r10_5(glval) = VariableAddress[s] : -# 736| r10_6(char *) = Load : r10_5, m10_2 -# 736| v10_7(void) = Invoke : r10_4, this:r10_3, r10_6 -# 736| v10_8(void) = ThrowValue : r10_3, mu0_1 +# 735| r10_0(glval) = VariableAddress[s] : +# 735| m10_1(char *) = InitializeParameter[s] : r10_0 +# 736| r10_2(glval) = VariableAddress[#throw736:5] : +# 736| r10_3(bool) = FunctionAddress[String] : +# 736| r10_4(glval) = VariableAddress[s] : +# 736| r10_5(char *) = Load : r10_4, m10_1 +# 736| v10_6(void) = Invoke : r10_3, this:r10_2, r10_5 +# 736| v10_7(void) = ThrowValue : r10_2, mu0_1 #-----| Exception -> Block 2 # 738| Block 11 @@ -3128,10 +3024,9 @@ ir.cpp: #-----| Goto -> Block 12 # 738| Block 12 -# 738| r12_0(String &) = InitializeParameter[e] : -# 738| r12_1(glval) = VariableAddress[e] : -# 738| m12_2(String &) = Store : r12_1, r12_0 -# 738| v12_3(void) = NoOp : +# 738| r12_0(glval) = VariableAddress[e] : +# 738| m12_1(String &) = InitializeParameter[e] : r12_0 +# 738| v12_2(void) = NoOp : #-----| Goto -> Block 14 # 740| Block 13 @@ -3149,39 +3044,37 @@ ir.cpp: # 745| v0_0(void) = EnterFunction : # 745| mu0_1(unknown) = UnmodeledDefinition : # 745| r0_2(glval) = InitializeThis : -#-----| r0_3(Base &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| m0_5(Base &) = Store : r0_4, r0_3 -# 745| r0_6(glval) = FieldAddress[base_s] : r0_2 -# 745| r0_7(bool) = FunctionAddress[String] : -# 745| v0_8(void) = Invoke : r0_7, this:r0_6 -# 745| v0_9(void) = NoOp : -# 745| v0_10(void) = ReturnVoid : -# 745| v0_11(void) = UnmodeledUse : mu* -# 745| v0_12(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| m0_4(Base &) = InitializeParameter[p#0] : r0_3 +# 745| r0_5(glval) = FieldAddress[base_s] : r0_2 +# 745| r0_6(bool) = FunctionAddress[String] : +# 745| v0_7(void) = Invoke : r0_6, this:r0_5 +# 745| v0_8(void) = NoOp : +# 745| v0_9(void) = ReturnVoid : +# 745| v0_10(void) = UnmodeledUse : mu* +# 745| v0_11(void) = ExitFunction : # 745| Base::operator=(const Base &) -> Base & # 745| Block 0 # 745| v0_0(void) = EnterFunction : # 745| mu0_1(unknown) = UnmodeledDefinition : # 745| r0_2(glval) = InitializeThis : -#-----| r0_3(Base &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| m0_5(Base &) = Store : r0_4, r0_3 -#-----| r0_6(Base *) = CopyValue : r0_2 -#-----| r0_7(glval) = FieldAddress[base_s] : r0_6 -# 745| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Base &) = Load : r0_9, m0_5 -#-----| r0_11(glval) = FieldAddress[base_s] : r0_10 -# 745| r0_12(String &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(glval) = VariableAddress[#return] : -#-----| r0_14(Base *) = CopyValue : r0_2 -#-----| m0_15(Base &) = Store : r0_13, r0_14 -# 745| r0_16(glval) = VariableAddress[#return] : -# 745| v0_17(void) = ReturnValue : r0_16, m0_15 -# 745| v0_18(void) = UnmodeledUse : mu* -# 745| v0_19(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| m0_4(Base &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Base *) = CopyValue : r0_2 +#-----| r0_6(glval) = FieldAddress[base_s] : r0_5 +# 745| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Base &) = Load : r0_8, m0_4 +#-----| r0_10(glval) = FieldAddress[base_s] : r0_9 +# 745| r0_11(String &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(glval) = VariableAddress[#return] : +#-----| r0_13(Base *) = CopyValue : r0_2 +#-----| m0_14(Base &) = Store : r0_12, r0_13 +# 745| r0_15(glval) = VariableAddress[#return] : +# 745| v0_16(void) = ReturnValue : r0_15, m0_14 +# 745| v0_17(void) = UnmodeledUse : mu* +# 745| v0_18(void) = ExitFunction : # 748| Base::Base() -> void # 748| Block 0 @@ -3214,30 +3107,29 @@ ir.cpp: # 754| v0_0(void) = EnterFunction : # 754| mu0_1(unknown) = UnmodeledDefinition : # 754| r0_2(glval) = InitializeThis : -#-----| r0_3(Middle &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| m0_5(Middle &) = Store : r0_4, r0_3 -#-----| r0_6(Middle *) = CopyValue : r0_2 -#-----| r0_7(Base *) = ConvertToBase[Middle : Base] : r0_6 -# 754| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Middle &) = Load : r0_9, m0_5 -#-----| r0_11(Base *) = ConvertToBase[Middle : Base] : r0_10 -# 754| r0_12(Base &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(Middle *) = CopyValue : r0_2 -#-----| r0_14(glval) = FieldAddress[middle_s] : r0_13 -# 754| r0_15(bool) = FunctionAddress[operator=] : -#-----| r0_16(glval) = VariableAddress[p#0] : -#-----| r0_17(Middle &) = Load : r0_16, m0_5 -#-----| r0_18(glval) = FieldAddress[middle_s] : r0_17 -# 754| r0_19(String &) = Invoke : r0_15, this:r0_14, r0_18 -#-----| r0_20(glval) = VariableAddress[#return] : -#-----| r0_21(Middle *) = CopyValue : r0_2 -#-----| m0_22(Middle &) = Store : r0_20, r0_21 -# 754| r0_23(glval) = VariableAddress[#return] : -# 754| v0_24(void) = ReturnValue : r0_23, m0_22 -# 754| v0_25(void) = UnmodeledUse : mu* -# 754| v0_26(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| m0_4(Middle &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Middle *) = CopyValue : r0_2 +#-----| r0_6(Base *) = ConvertToBase[Middle : Base] : r0_5 +# 754| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Middle &) = Load : r0_8, m0_4 +#-----| r0_10(Base *) = ConvertToBase[Middle : Base] : r0_9 +# 754| r0_11(Base &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(Middle *) = CopyValue : r0_2 +#-----| r0_13(glval) = FieldAddress[middle_s] : r0_12 +# 754| r0_14(bool) = FunctionAddress[operator=] : +#-----| r0_15(glval) = VariableAddress[p#0] : +#-----| r0_16(Middle &) = Load : r0_15, m0_4 +#-----| r0_17(glval) = FieldAddress[middle_s] : r0_16 +# 754| r0_18(String &) = Invoke : r0_14, this:r0_13, r0_17 +#-----| r0_19(glval) = VariableAddress[#return] : +#-----| r0_20(Middle *) = CopyValue : r0_2 +#-----| m0_21(Middle &) = Store : r0_19, r0_20 +# 754| r0_22(glval) = VariableAddress[#return] : +# 754| v0_23(void) = ReturnValue : r0_22, m0_21 +# 754| v0_24(void) = UnmodeledUse : mu* +# 754| v0_25(void) = ExitFunction : # 757| Middle::Middle() -> void # 757| Block 0 @@ -3276,30 +3168,29 @@ ir.cpp: # 763| v0_0(void) = EnterFunction : # 763| mu0_1(unknown) = UnmodeledDefinition : # 763| r0_2(glval) = InitializeThis : -#-----| r0_3(Derived &) = InitializeParameter[p#0] : -#-----| r0_4(glval) = VariableAddress[p#0] : -#-----| m0_5(Derived &) = Store : r0_4, r0_3 -#-----| r0_6(Derived *) = CopyValue : r0_2 -#-----| r0_7(Middle *) = ConvertToBase[Derived : Middle] : r0_6 -# 763| r0_8(bool) = FunctionAddress[operator=] : -#-----| r0_9(glval) = VariableAddress[p#0] : -#-----| r0_10(Derived &) = Load : r0_9, m0_5 -#-----| r0_11(Middle *) = ConvertToBase[Derived : Middle] : r0_10 -# 763| r0_12(Middle &) = Invoke : r0_8, this:r0_7, r0_11 -#-----| r0_13(Derived *) = CopyValue : r0_2 -#-----| r0_14(glval) = FieldAddress[derived_s] : r0_13 -# 763| r0_15(bool) = FunctionAddress[operator=] : -#-----| r0_16(glval) = VariableAddress[p#0] : -#-----| r0_17(Derived &) = Load : r0_16, m0_5 -#-----| r0_18(glval) = FieldAddress[derived_s] : r0_17 -# 763| r0_19(String &) = Invoke : r0_15, this:r0_14, r0_18 -#-----| r0_20(glval) = VariableAddress[#return] : -#-----| r0_21(Derived *) = CopyValue : r0_2 -#-----| m0_22(Derived &) = Store : r0_20, r0_21 -# 763| r0_23(glval) = VariableAddress[#return] : -# 763| v0_24(void) = ReturnValue : r0_23, m0_22 -# 763| v0_25(void) = UnmodeledUse : mu* -# 763| v0_26(void) = ExitFunction : +#-----| r0_3(glval) = VariableAddress[p#0] : +#-----| m0_4(Derived &) = InitializeParameter[p#0] : r0_3 +#-----| r0_5(Derived *) = CopyValue : r0_2 +#-----| r0_6(Middle *) = ConvertToBase[Derived : Middle] : r0_5 +# 763| r0_7(bool) = FunctionAddress[operator=] : +#-----| r0_8(glval) = VariableAddress[p#0] : +#-----| r0_9(Derived &) = Load : r0_8, m0_4 +#-----| r0_10(Middle *) = ConvertToBase[Derived : Middle] : r0_9 +# 763| r0_11(Middle &) = Invoke : r0_7, this:r0_6, r0_10 +#-----| r0_12(Derived *) = CopyValue : r0_2 +#-----| r0_13(glval) = FieldAddress[derived_s] : r0_12 +# 763| r0_14(bool) = FunctionAddress[operator=] : +#-----| r0_15(glval) = VariableAddress[p#0] : +#-----| r0_16(Derived &) = Load : r0_15, m0_4 +#-----| r0_17(glval) = FieldAddress[derived_s] : r0_16 +# 763| r0_18(String &) = Invoke : r0_14, this:r0_13, r0_17 +#-----| r0_19(glval) = VariableAddress[#return] : +#-----| r0_20(Derived *) = CopyValue : r0_2 +#-----| m0_21(Derived &) = Store : r0_19, r0_20 +# 763| r0_22(glval) = VariableAddress[#return] : +# 763| v0_23(void) = ReturnValue : r0_22, m0_21 +# 763| v0_24(void) = UnmodeledUse : mu* +# 763| v0_25(void) = ExitFunction : # 766| Derived::Derived() -> void # 766| Block 0 @@ -3734,146 +3625,138 @@ ir.cpp: # 871| v0_0(void) = EnterFunction : # 871| mu0_1(unknown) = UnmodeledDefinition : # 872| r0_2(glval) = VariableAddress[a] : -# 872| r0_3(char[5]) = Uninitialized : -# 872| mu0_4(char[5]) = Store : r0_2, r0_3 -# 873| r0_5(glval) = VariableAddress[p] : -# 873| r0_6(glval) = VariableAddress[a] : +# 872| mu0_3(char[5]) = Uninitialized : r0_2 +# 873| r0_4(glval) = VariableAddress[p] : +# 873| r0_5(glval) = VariableAddress[a] : +# 873| r0_6(char *) = Convert : r0_5 # 873| r0_7(char *) = Convert : r0_6 -# 873| r0_8(char *) = Convert : r0_7 -# 873| m0_9(char *) = Store : r0_5, r0_8 -# 874| r0_10(glval) = StringConstant["test"] : -# 874| r0_11(char *) = Convert : r0_10 -# 874| r0_12(glval) = VariableAddress[p] : -# 874| m0_13(char *) = Store : r0_12, r0_11 -# 875| r0_14(glval) = VariableAddress[a] : -# 875| r0_15(char *) = Convert : r0_14 -# 875| r0_16(int) = Constant[0] : -# 875| r0_17(char *) = PointerAdd[1] : r0_15, r0_16 -# 875| r0_18(char *) = Convert : r0_17 -# 875| r0_19(glval) = VariableAddress[p] : -# 875| m0_20(char *) = Store : r0_19, r0_18 -# 876| r0_21(glval) = StringConstant["test"] : -# 876| r0_22(char *) = Convert : r0_21 -# 876| r0_23(int) = Constant[0] : -# 876| r0_24(char *) = PointerAdd[1] : r0_22, r0_23 -# 876| r0_25(glval) = VariableAddress[p] : -# 876| m0_26(char *) = Store : r0_25, r0_24 -# 877| r0_27(glval) = VariableAddress[ra] : -# 877| r0_28(glval) = VariableAddress[a] : -# 877| m0_29(char(&)[5]) = Store : r0_27, r0_28 -# 878| r0_30(glval) = VariableAddress[rs] : -# 878| r0_31(glval) = StringConstant["test"] : -# 878| m0_32(char(&)[5]) = Store : r0_30, r0_31 -# 879| r0_33(glval) = VariableAddress[pa] : -# 879| r0_34(glval) = VariableAddress[a] : -# 879| r0_35(char(*)[5]) = Convert : r0_34 -# 879| m0_36(char(*)[5]) = Store : r0_33, r0_35 -# 880| r0_37(glval) = StringConstant["test"] : -# 880| r0_38(glval) = VariableAddress[pa] : -# 880| m0_39(char(*)[5]) = Store : r0_38, r0_37 -# 881| v0_40(void) = NoOp : -# 871| v0_41(void) = ReturnVoid : -# 871| v0_42(void) = UnmodeledUse : mu* -# 871| v0_43(void) = ExitFunction : +# 873| m0_8(char *) = Store : r0_4, r0_7 +# 874| r0_9(glval) = StringConstant["test"] : +# 874| r0_10(char *) = Convert : r0_9 +# 874| r0_11(glval) = VariableAddress[p] : +# 874| m0_12(char *) = Store : r0_11, r0_10 +# 875| r0_13(glval) = VariableAddress[a] : +# 875| r0_14(char *) = Convert : r0_13 +# 875| r0_15(int) = Constant[0] : +# 875| r0_16(char *) = PointerAdd[1] : r0_14, r0_15 +# 875| r0_17(char *) = Convert : r0_16 +# 875| r0_18(glval) = VariableAddress[p] : +# 875| m0_19(char *) = Store : r0_18, r0_17 +# 876| r0_20(glval) = StringConstant["test"] : +# 876| r0_21(char *) = Convert : r0_20 +# 876| r0_22(int) = Constant[0] : +# 876| r0_23(char *) = PointerAdd[1] : r0_21, r0_22 +# 876| r0_24(glval) = VariableAddress[p] : +# 876| m0_25(char *) = Store : r0_24, r0_23 +# 877| r0_26(glval) = VariableAddress[ra] : +# 877| r0_27(glval) = VariableAddress[a] : +# 877| m0_28(char(&)[5]) = Store : r0_26, r0_27 +# 878| r0_29(glval) = VariableAddress[rs] : +# 878| r0_30(glval) = StringConstant["test"] : +# 878| m0_31(char(&)[5]) = Store : r0_29, r0_30 +# 879| r0_32(glval) = VariableAddress[pa] : +# 879| r0_33(glval) = VariableAddress[a] : +# 879| r0_34(char(*)[5]) = Convert : r0_33 +# 879| m0_35(char(*)[5]) = Store : r0_32, r0_34 +# 880| r0_36(glval) = StringConstant["test"] : +# 880| r0_37(glval) = VariableAddress[pa] : +# 880| m0_38(char(*)[5]) = Store : r0_37, r0_36 +# 881| v0_39(void) = NoOp : +# 871| v0_40(void) = ReturnVoid : +# 871| v0_41(void) = UnmodeledUse : mu* +# 871| v0_42(void) = ExitFunction : # 883| FuncPtrConversions(..(*)(..), void *) -> void # 883| Block 0 # 883| v0_0(void) = EnterFunction : # 883| mu0_1(unknown) = UnmodeledDefinition : -# 883| r0_2(..(*)(..)) = InitializeParameter[pfn] : -# 883| r0_3(glval<..(*)(..)>) = VariableAddress[pfn] : -# 883| m0_4(..(*)(..)) = Store : r0_3, r0_2 -# 883| r0_5(void *) = InitializeParameter[p] : -# 883| r0_6(glval) = VariableAddress[p] : -# 883| m0_7(void *) = Store : r0_6, r0_5 -# 884| r0_8(glval<..(*)(..)>) = VariableAddress[pfn] : -# 884| r0_9(..(*)(..)) = Load : r0_8, m0_4 -# 884| r0_10(void *) = Convert : r0_9 -# 884| r0_11(glval) = VariableAddress[p] : -# 884| m0_12(void *) = Store : r0_11, r0_10 -# 885| r0_13(glval) = VariableAddress[p] : -# 885| r0_14(void *) = Load : r0_13, m0_12 -# 885| r0_15(..(*)(..)) = Convert : r0_14 -# 885| r0_16(glval<..(*)(..)>) = VariableAddress[pfn] : -# 885| m0_17(..(*)(..)) = Store : r0_16, r0_15 -# 886| v0_18(void) = NoOp : -# 883| v0_19(void) = ReturnVoid : -# 883| v0_20(void) = UnmodeledUse : mu* -# 883| v0_21(void) = ExitFunction : +# 883| r0_2(glval<..(*)(..)>) = VariableAddress[pfn] : +# 883| m0_3(..(*)(..)) = InitializeParameter[pfn] : r0_2 +# 883| r0_4(glval) = VariableAddress[p] : +# 883| m0_5(void *) = InitializeParameter[p] : r0_4 +# 884| r0_6(glval<..(*)(..)>) = VariableAddress[pfn] : +# 884| r0_7(..(*)(..)) = Load : r0_6, m0_3 +# 884| r0_8(void *) = Convert : r0_7 +# 884| r0_9(glval) = VariableAddress[p] : +# 884| m0_10(void *) = Store : r0_9, r0_8 +# 885| r0_11(glval) = VariableAddress[p] : +# 885| r0_12(void *) = Load : r0_11, m0_10 +# 885| r0_13(..(*)(..)) = Convert : r0_12 +# 885| r0_14(glval<..(*)(..)>) = VariableAddress[pfn] : +# 885| m0_15(..(*)(..)) = Store : r0_14, r0_13 +# 886| v0_16(void) = NoOp : +# 883| v0_17(void) = ReturnVoid : +# 883| v0_18(void) = UnmodeledUse : mu* +# 883| v0_19(void) = ExitFunction : # 888| VarArgUsage(int) -> void # 888| Block 0 # 888| v0_0(void) = EnterFunction : # 888| mu0_1(unknown) = UnmodeledDefinition : -# 888| r0_2(int) = InitializeParameter[x] : -# 888| r0_3(glval) = VariableAddress[x] : -# 888| mu0_4(int) = Store : r0_3, r0_2 -# 889| r0_5(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 889| r0_6(__va_list_tag[1]) = Uninitialized : -# 889| mu0_7(__va_list_tag[1]) = Store : r0_5, r0_6 -# 891| r0_8(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 891| r0_9(__va_list_tag *) = Convert : r0_8 -# 891| r0_10(glval) = VariableAddress[x] : -# 891| v0_11(void) = VarArgsStart : r0_9, r0_10 -# 892| r0_12(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 892| r0_13(__va_list_tag[1]) = Uninitialized : -# 892| mu0_14(__va_list_tag[1]) = Store : r0_12, r0_13 -# 893| r0_15(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 893| r0_16(__va_list_tag *) = Convert : r0_15 -# 893| r0_17(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 893| r0_18(__va_list_tag *) = Convert : r0_17 -# 893| v0_19(void) = VarArgsStart : r0_16, r0_18 -# 894| r0_20(glval) = VariableAddress[d] : -# 894| r0_21(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 894| r0_22(__va_list_tag *) = Convert : r0_21 -# 894| r0_23(glval) = VarArg : r0_22 -# 894| r0_24(double) = Load : r0_23, mu0_1 -# 894| m0_25(double) = Store : r0_20, r0_24 -# 895| r0_26(glval) = VariableAddress[f] : -# 895| r0_27(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 895| r0_28(__va_list_tag *) = Convert : r0_27 -# 895| r0_29(glval) = VarArg : r0_28 -# 895| r0_30(double) = Load : r0_29, mu0_1 -# 895| r0_31(float) = Convert : r0_30 -# 895| m0_32(float) = Store : r0_26, r0_31 -# 896| r0_33(glval<__va_list_tag[1]>) = VariableAddress[args] : -# 896| r0_34(__va_list_tag *) = Convert : r0_33 -# 896| v0_35(void) = VarArgsEnd : r0_34 -# 897| r0_36(glval<__va_list_tag[1]>) = VariableAddress[args2] : -# 897| r0_37(__va_list_tag *) = Convert : r0_36 -# 897| v0_38(void) = VarArgsEnd : r0_37 -# 898| v0_39(void) = NoOp : -# 888| v0_40(void) = ReturnVoid : -# 888| v0_41(void) = UnmodeledUse : mu* -# 888| v0_42(void) = ExitFunction : +# 888| r0_2(glval) = VariableAddress[x] : +# 888| mu0_3(int) = InitializeParameter[x] : r0_2 +# 889| r0_4(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 889| mu0_5(__va_list_tag[1]) = Uninitialized : r0_4 +# 891| r0_6(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 891| r0_7(__va_list_tag *) = Convert : r0_6 +# 891| r0_8(glval) = VariableAddress[x] : +# 891| v0_9(void) = VarArgsStart : r0_7, r0_8 +# 892| r0_10(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 892| mu0_11(__va_list_tag[1]) = Uninitialized : r0_10 +# 893| r0_12(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 893| r0_13(__va_list_tag *) = Convert : r0_12 +# 893| r0_14(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 893| r0_15(__va_list_tag *) = Convert : r0_14 +# 893| v0_16(void) = VarArgsStart : r0_13, r0_15 +# 894| r0_17(glval) = VariableAddress[d] : +# 894| r0_18(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 894| r0_19(__va_list_tag *) = Convert : r0_18 +# 894| r0_20(glval) = VarArg : r0_19 +# 894| r0_21(double) = Load : r0_20, mu0_1 +# 894| m0_22(double) = Store : r0_17, r0_21 +# 895| r0_23(glval) = VariableAddress[f] : +# 895| r0_24(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 895| r0_25(__va_list_tag *) = Convert : r0_24 +# 895| r0_26(glval) = VarArg : r0_25 +# 895| r0_27(double) = Load : r0_26, mu0_1 +# 895| r0_28(float) = Convert : r0_27 +# 895| m0_29(float) = Store : r0_23, r0_28 +# 896| r0_30(glval<__va_list_tag[1]>) = VariableAddress[args] : +# 896| r0_31(__va_list_tag *) = Convert : r0_30 +# 896| v0_32(void) = VarArgsEnd : r0_31 +# 897| r0_33(glval<__va_list_tag[1]>) = VariableAddress[args2] : +# 897| r0_34(__va_list_tag *) = Convert : r0_33 +# 897| v0_35(void) = VarArgsEnd : r0_34 +# 898| v0_36(void) = NoOp : +# 888| v0_37(void) = ReturnVoid : +# 888| v0_38(void) = UnmodeledUse : mu* +# 888| v0_39(void) = ExitFunction : # 900| CastToVoid(int) -> void # 900| Block 0 # 900| v0_0(void) = EnterFunction : # 900| mu0_1(unknown) = UnmodeledDefinition : -# 900| r0_2(int) = InitializeParameter[x] : -# 900| r0_3(glval) = VariableAddress[x] : -# 900| mu0_4(int) = Store : r0_3, r0_2 -# 901| r0_5(glval) = VariableAddress[x] : -# 901| v0_6(void) = Convert : r0_5 -# 902| v0_7(void) = NoOp : -# 900| v0_8(void) = ReturnVoid : -# 900| v0_9(void) = UnmodeledUse : mu* -# 900| v0_10(void) = ExitFunction : +# 900| r0_2(glval) = VariableAddress[x] : +# 900| mu0_3(int) = InitializeParameter[x] : r0_2 +# 901| r0_4(glval) = VariableAddress[x] : +# 901| v0_5(void) = Convert : r0_4 +# 902| v0_6(void) = NoOp : +# 900| v0_7(void) = ReturnVoid : +# 900| v0_8(void) = UnmodeledUse : mu* +# 900| v0_9(void) = ExitFunction : # 904| ConstantConditions(int) -> void # 904| Block 0 # 904| v0_0(void) = EnterFunction : # 904| mu0_1(unknown) = UnmodeledDefinition : -# 904| r0_2(int) = InitializeParameter[x] : -# 904| r0_3(glval) = VariableAddress[x] : -# 904| m0_4(int) = Store : r0_3, r0_2 -# 905| r0_5(glval) = VariableAddress[a] : -# 905| r0_6(bool) = Constant[1] : -# 905| m0_7(bool) = Store : r0_5, r0_6 -# 906| r0_8(glval) = VariableAddress[b] : -# 906| r0_9(bool) = Constant[1] : -# 906| v0_10(void) = ConditionalBranch : r0_9 +# 904| r0_2(glval) = VariableAddress[x] : +# 904| m0_3(int) = InitializeParameter[x] : r0_2 +# 905| r0_4(glval) = VariableAddress[a] : +# 905| r0_5(bool) = Constant[1] : +# 905| m0_6(bool) = Store : r0_4, r0_5 +# 906| r0_7(glval) = VariableAddress[b] : +# 906| r0_8(bool) = Constant[1] : +# 906| v0_9(void) = ConditionalBranch : r0_8 #-----| False -> Block 3 #-----| True -> Block 2 @@ -3881,7 +3764,7 @@ ir.cpp: # 906| m1_0(int) = Phi : from 2:m2_3, from 3:m3_3 # 906| r1_1(glval) = VariableAddress[#temp906:11] : # 906| r1_2(int) = Load : r1_1, m1_0 -# 906| m1_3(int) = Store : r0_8, r1_2 +# 906| m1_3(int) = Store : r0_7, r1_2 # 907| v1_4(void) = NoOp : # 904| v1_5(void) = ReturnVoid : # 904| v1_6(void) = UnmodeledUse : mu* @@ -3889,14 +3772,14 @@ ir.cpp: # 906| Block 2 # 906| r2_0(glval) = VariableAddress[x] : -# 906| r2_1(int) = Load : r2_0, m0_4 +# 906| r2_1(int) = Load : r2_0, m0_3 # 906| r2_2(glval) = VariableAddress[#temp906:11] : # 906| m2_3(int) = Store : r2_2, r2_1 #-----| Goto -> Block 1 # 906| Block 3 # 906| r3_0(glval) = VariableAddress[x] : -# 906| r3_1(int) = Load : r3_0, m0_4 +# 906| r3_1(int) = Load : r3_0, m0_3 # 906| r3_2(glval) = VariableAddress[#temp906:11] : # 906| m3_3(int) = Store : r3_2, r3_1 #-----| Goto -> Block 1