Lines Matching full:cursor
96 static void consumeOneOperator(DIExpressionCursor &Cursor, uint64_t &Loc, in consumeOneOperator() argument
98 Cursor.consume(1); in consumeOneOperator()
102 /// Reset the Cursor to the beginning of the WorkingOps.
103 void startFromBeginning(uint64_t &Loc, DIExpressionCursor &Cursor, in startFromBeginning() argument
105 Cursor.assignNewExpr(WorkingOps); in startFromBeginning()
114 DIExpressionCursor Cursor(WorkingOps); in canonicalizeDwarfOperations() local
118 auto Op = Cursor.peek(); in canonicalizeDwarfOperations()
127 consumeOneOperator(Cursor, Loc, *Cursor.peek()); in canonicalizeDwarfOperations()
134 consumeOneOperator(Cursor, Loc, *Cursor.peek()); in canonicalizeDwarfOperations()
138 consumeOneOperator(Cursor, Loc, *Cursor.peek()); in canonicalizeDwarfOperations()
149 DIExpressionCursor Cursor(WorkingOps); in optimizeDwarfOperations() local
153 auto Op1 = Cursor.peek(); in optimizeDwarfOperations()
161 consumeOneOperator(Cursor, Loc, *Cursor.peek()); in optimizeDwarfOperations()
165 auto Op2 = Cursor.peekNext(); in optimizeDwarfOperations()
169 consumeOneOperator(Cursor, Loc, *Cursor.peek()); in optimizeDwarfOperations()
178 consumeOneOperator(Cursor, Loc, *Cursor.peek()); in optimizeDwarfOperations()
179 consumeOneOperator(Cursor, Loc, *Cursor.peek()); in optimizeDwarfOperations()
183 consumeOneOperator(Cursor, Loc, *Cursor.peek()); in optimizeDwarfOperations()
193 uint64_t &Loc, DIExpressionCursor &Cursor, in tryFoldNoOpMath() argument
198 startFromBeginning(Loc, Cursor, WorkingOps); in tryFoldNoOpMath()
209 uint64_t &Loc, DIExpressionCursor &Cursor, in tryFoldConstants() argument
219 consumeOneOperator(Cursor, Loc, Ops[0]); in tryFoldConstants()
225 startFromBeginning(Loc, Cursor, WorkingOps); in tryFoldConstants()
234 uint64_t &Loc, DIExpressionCursor &Cursor, in tryFoldCommutativeMath() argument
246 consumeOneOperator(Cursor, Loc, Ops[0]); in tryFoldCommutativeMath()
252 startFromBeginning(Loc, Cursor, WorkingOps); in tryFoldCommutativeMath()
262 DIExpressionCursor &Cursor, SmallVectorImpl<uint64_t> &WorkingOps) { in tryFoldCommutativeMathWithArgInBetween() argument
276 consumeOneOperator(Cursor, Loc, Ops[0]); in tryFoldCommutativeMathWithArgInBetween()
282 startFromBeginning(Loc, Cursor, WorkingOps); in tryFoldCommutativeMathWithArgInBetween()
291 DIExpressionCursor Cursor(ResultOps); in foldConstantMath() local
299 auto Op = Cursor.peek(); in foldConstantMath()
308 consumeOneOperator(Cursor, Loc, *Op); in foldConstantMath()
314 Op = Cursor.peekNext(); in foldConstantMath()
322 if (tryFoldNoOpMath(*Const1, Ops, Loc, Cursor, ResultOps)) in foldConstantMath()
325 Op = Cursor.peekNextN(2); in foldConstantMath()
328 consumeOneOperator(Cursor, Loc, Ops[0]); in foldConstantMath()
335 if (tryFoldConstants(*Const1, Ops, Loc, Cursor, ResultOps)) in foldConstantMath()
338 Op = Cursor.peekNextN(3); in foldConstantMath()
341 consumeOneOperator(Cursor, Loc, Ops[0]); in foldConstantMath()
348 if (tryFoldCommutativeMath(*Const1, Ops, Loc, Cursor, ResultOps)) in foldConstantMath()
351 Op = Cursor.peekNextN(4); in foldConstantMath()
353 consumeOneOperator(Cursor, Loc, Ops[0]); in foldConstantMath()
358 Op = Cursor.peekNextN(5); in foldConstantMath()
360 consumeOneOperator(Cursor, Loc, Ops[0]); in foldConstantMath()
368 if (tryFoldCommutativeMathWithArgInBetween(*Const1, Ops, Loc, Cursor, in foldConstantMath()
372 consumeOneOperator(Cursor, Loc, Ops[0]); in foldConstantMath()