Lines Matching refs:Position
117 // Used to keep track of the current position while iterating over the blocks.
119 // The address that we assume this position has.
147 void skipNonTerminators(BlockPosition &Position, MBBInfo &Block);
148 void skipTerminator(BlockPosition &Position, TerminatorInfo &Terminator,
176 // Position describes the state immediately before Block. Update Block
177 // accordingly and move Position to the end of the block's non-terminator
179 void SystemZLongBranch::skipNonTerminators(BlockPosition &Position,
181 if (Block.Alignment > Position.KnownBits) {
184 Position.Address += ((uint64_t(1) << Block.Alignment) -
185 (uint64_t(1) << Position.KnownBits));
186 Position.KnownBits = Block.Alignment;
191 Position.Address = (Position.Address + AlignMask) & ~AlignMask;
193 // Record the block's position.
194 Block.Address = Position.Address;
197 Position.Address += Block.Size;
200 // Position describes the state immediately before Terminator.
201 // Update Terminator accordingly and move Position past it.
203 void SystemZLongBranch::skipTerminator(BlockPosition &Position,
206 Terminator.Address = Position.Address;
207 Position.Address += Terminator.Size;
209 Position.Address += Terminator.ExtraRelaxSize;
274 BlockPosition Position(MF->getAlignment());
289 skipNonTerminators(Position, Block);
296 skipTerminator(Position, Terminators.back(), false);
303 return Position.Address;
338 BlockPosition Position(MF->getAlignment());
340 skipNonTerminators(Position, Block);
342 skipTerminator(Position, *TI, true);
439 BlockPosition Position(MF->getAlignment());
441 skipNonTerminators(Position, Block);
443 assert(Position.Address <= TI->Address &&
445 if (mustRelaxBranch(*TI, Position.Address))
447 skipTerminator(Position, *TI, false);