Lines Matching full:terminator

98 // Represents the state of a block terminator.
100 // If this terminator is a relaxable branch, this points to the branch
104 // The address that we currently assume the terminator has.
107 // The current size of the terminator in bytes.
151 void skipTerminator(BlockPosition &Position, TerminatorInfo &Terminator,
155 bool mustRelaxBranch(const TerminatorInfo &Terminator, uint64_t Address);
160 void relaxBranch(TerminatorInfo &Terminator);
180 // accordingly and move Position to the end of the block's non-terminator
202 // Position describes the state immediately before Terminator.
203 // Update Terminator accordingly and move Position past it.
204 // Assume that Terminator will be relaxed if AssumeRelaxed.
206 TerminatorInfo &Terminator,
208 Terminator.Address = Position.Address;
209 Position.Address += Terminator.Size;
211 Position.Address += Terminator.ExtraRelaxSize;
224 // EH_SjLj_Setup is a dummy terminator instruction of size 0,
231 // Return a description of terminator instruction MI.
233 TerminatorInfo Terminator;
234 Terminator.Size = getInstSizeInBytes(MI, TII);
239 Terminator.ExtraRelaxSize = 2;
243 Terminator.ExtraRelaxSize = 2;
248 Terminator.ExtraRelaxSize = 6;
252 Terminator.ExtraRelaxSize = 0;
257 Terminator.ExtraRelaxSize = 2;
262 Terminator.ExtraRelaxSize = 4;
267 Terminator.ExtraRelaxSize = 4;
272 Terminator.ExtraRelaxSize = 6;
277 Terminator.Branch = &MI;
278 Terminator.TargetBlock =
281 return Terminator;
317 assert(MI->isTerminator() && "Terminator followed by non-terminator");
329 // Return true if, under current assumptions, Terminator would need to be
331 bool SystemZLongBranch::mustRelaxBranch(const TerminatorInfo &Terminator,
333 if (!Terminator.Branch || Terminator.ExtraRelaxSize == 0)
336 const MBBInfo &Target = MBBs[Terminator.TargetBlock];
348 // Return true if, under current assumptions, any terminator needs
351 for (auto &Terminator : Terminators)
352 if (mustRelaxBranch(Terminator, Terminator.Address))
408 // Relax the branch described by Terminator.
409 void SystemZLongBranch::relaxBranch(TerminatorInfo &Terminator) {
410 MachineInstr *Branch = Terminator.Branch;
452 Terminator.Size += Terminator.ExtraRelaxSize;
453 Terminator.ExtraRelaxSize = 0;
454 Terminator.Branch = nullptr;