Lines Matching refs:dwarf
21 if (Op.getOp() == dwarf::DW_OP_constu) in isConstantVal()
29 case dwarf::DW_OP_plus: in isNeutralElement()
30 case dwarf::DW_OP_minus: in isNeutralElement()
31 case dwarf::DW_OP_shl: in isNeutralElement()
32 case dwarf::DW_OP_shr: in isNeutralElement()
34 case dwarf::DW_OP_mul: in isNeutralElement()
35 case dwarf::DW_OP_div: in isNeutralElement()
46 dwarf::LocationAtom Operator) { in foldOperationIfPossible()
50 case dwarf::DW_OP_plus: { in foldOperationIfPossible()
56 case dwarf::DW_OP_minus: { in foldOperationIfPossible()
61 case dwarf::DW_OP_shl: { in foldOperationIfPossible()
66 case dwarf::DW_OP_shr: { in foldOperationIfPossible()
71 case dwarf::DW_OP_mul: { in foldOperationIfPossible()
77 case dwarf::DW_OP_div: { in foldOperationIfPossible()
89 static bool operationsAreFoldableAndCommutative(dwarf::LocationAtom Operator1, in operationsAreFoldableAndCommutative()
90 dwarf::LocationAtom Operator2) { in operationsAreFoldableAndCommutative()
92 (Operator1 == dwarf::DW_OP_plus || Operator1 == dwarf::DW_OP_mul); in operationsAreFoldableAndCommutative()
124 if (OpRaw >= dwarf::DW_OP_lit0 && OpRaw <= dwarf::DW_OP_lit31) { in canonicalizeDwarfOperations()
125 ResultOps.push_back(dwarf::DW_OP_constu); in canonicalizeDwarfOperations()
126 ResultOps.push_back(OpRaw - dwarf::DW_OP_lit0); in canonicalizeDwarfOperations()
130 if (OpRaw == dwarf::DW_OP_plus_uconst) { in canonicalizeDwarfOperations()
131 ResultOps.push_back(dwarf::DW_OP_constu); in canonicalizeDwarfOperations()
133 ResultOps.push_back(dwarf::DW_OP_plus); in canonicalizeDwarfOperations()
159 if (Op1Raw == dwarf::DW_OP_constu && Op1->getArg(0) == 0) { in optimizeDwarfOperations()
160 ResultOps.push_back(dwarf::DW_OP_lit0); in optimizeDwarfOperations()
175 if (Op1Raw == dwarf::DW_OP_constu && Op2Raw == dwarf::DW_OP_plus) { in optimizeDwarfOperations()
176 ResultOps.push_back(dwarf::DW_OP_plus_uconst); in optimizeDwarfOperations()
217 Const1, *Const2, static_cast<dwarf::LocationAtom>(Ops[2].getOp())); in tryFoldConstants()
223 WorkingOps[Loc] = dwarf::DW_OP_constu; in tryFoldConstants()
238 auto Operand1 = static_cast<dwarf::LocationAtom>(Ops[1].getOp()); in tryFoldCommutativeMath()
239 auto Operand2 = static_cast<dwarf::LocationAtom>(Ops[3].getOp()); in tryFoldCommutativeMath()
250 WorkingOps[Loc] = dwarf::DW_OP_constu; in tryFoldCommutativeMath()
265 auto Operand1 = static_cast<dwarf::LocationAtom>(Ops[1].getOp()); in tryFoldCommutativeMathWithArgInBetween()
266 auto Operand2 = static_cast<dwarf::LocationAtom>(Ops[3].getOp()); in tryFoldCommutativeMathWithArgInBetween()
267 auto Operand3 = static_cast<dwarf::LocationAtom>(Ops[5].getOp()); in tryFoldCommutativeMathWithArgInBetween()
269 if (!Const2 || Ops[2].getOp() != dwarf::DW_OP_LLVM_arg || in tryFoldCommutativeMathWithArgInBetween()
280 WorkingOps[Loc] = dwarf::DW_OP_constu; in tryFoldCommutativeMathWithArgInBetween()