Lines Matching defs:Const1
42 /// Try to fold \p Const1 and \p Const2 by applying \p Operator and returning
45 foldOperationIfPossible(uint64_t Const1, uint64_t Const2,
51 auto Result = SaturatingAdd(Const1, Const2, &ResultOverflowed);
57 if (Const1 < Const2)
59 return Const1 - Const2;
63 static_cast<uint64_t>(countl_zero(Const1)) < Const2)
65 return Const1 << Const2;
69 static_cast<uint64_t>(countr_zero(Const1)) < Const2)
71 return Const1 >> Const2;
74 auto Result = SaturatingMultiply(Const1, Const2, &ResultOverflowed);
81 return Const1 / Const2;
193 static bool tryFoldNoOpMath(uint64_t Const1,
198 if (isNeutralElement(Ops[1].getOp(), Const1)) {
206 /// {DW_OP_constu, Const1, DW_OP_constu, Const2, DW_OP_[plus,
207 /// minus, mul, div, shl, shr] -> {DW_OP_constu, Const1 [+, -, *, /, <<, >>]
209 static bool tryFoldConstants(uint64_t Const1,
219 Const1, *Const2, static_cast<dwarf::LocationAtom>(Ops[2].getOp()));
231 /// {DW_OP_constu, Const1, DW_OP_[plus, mul], DW_OP_constu, Const2,
232 /// DW_OP_[plus, mul]} -> {DW_OP_constu, Const1 [+, *] Const2, DW_OP_[plus,
234 static bool tryFoldCommutativeMath(uint64_t Const1,
246 auto Result = foldOperationIfPossible(Const1, *Const2, Operand1);
258 /// {DW_OP_constu, Const1, DW_OP_[plus, mul], DW_OP_LLVM_arg, Arg1,
260 /// {DW_OP_constu, Const1 [+, *] Const2, DW_OP_[plus, mul], DW_OP_LLVM_arg,
263 uint64_t Const1, ArrayRef<DIExpression::ExprOperand> Ops, uint64_t &Loc,
276 auto Result = foldOperationIfPossible(Const1, *Const2, Operand1);
306 auto Const1 = isConstantVal(*Op);
308 if (!Const1) {
324 if (tryFoldNoOpMath(*Const1, Ops, Loc, Cursor, ResultOps))
337 if (tryFoldConstants(*Const1, Ops, Loc, Cursor, ResultOps))
350 if (tryFoldCommutativeMath(*Const1, Ops, Loc, Cursor, ResultOps))
370 if (tryFoldCommutativeMathWithArgInBetween(*Const1, Ops, Loc, Cursor,