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.
152 void skipTerminator(BlockPosition &Position, TerminatorInfo &Terminator,
156 bool mustRelaxBranch(const TerminatorInfo &Terminator, uint64_t Address);
161 void relaxBranch(TerminatorInfo &Terminator);
178 // accordingly and move Position to the end of the block's non-terminator
200 // Position describes the state immediately before Terminator.
201 // Update Terminator accordingly and move Position past it.
202 // Assume that Terminator will be relaxed if AssumeRelaxed.
204 TerminatorInfo &Terminator, in skipTerminator() argument
206 Terminator.Address = Position.Address; in skipTerminator()
207 Position.Address += Terminator.Size; in skipTerminator()
209 Position.Address += Terminator.ExtraRelaxSize; in skipTerminator()
212 // Return a description of terminator instruction MI.
214 TerminatorInfo Terminator; in describeTerminator() local
215 Terminator.Size = TII->getInstSizeInBytes(MI); in describeTerminator()
220 Terminator.ExtraRelaxSize = 2; in describeTerminator()
224 Terminator.ExtraRelaxSize = 2; in describeTerminator()
229 Terminator.ExtraRelaxSize = 6; in describeTerminator()
233 Terminator.ExtraRelaxSize = 0; in describeTerminator()
238 Terminator.ExtraRelaxSize = 2; in describeTerminator()
243 Terminator.ExtraRelaxSize = 4; in describeTerminator()
248 Terminator.ExtraRelaxSize = 4; in describeTerminator()
253 Terminator.ExtraRelaxSize = 6; in describeTerminator()
258 Terminator.Branch = &MI; in describeTerminator()
259 Terminator.TargetBlock = in describeTerminator()
262 return Terminator; in describeTerminator()
298 assert(MI->isTerminator() && "Terminator followed by non-terminator"); in initMBBInfo()
310 // Return true if, under current assumptions, Terminator would need to be
312 bool SystemZLongBranch::mustRelaxBranch(const TerminatorInfo &Terminator, in mustRelaxBranch() argument
314 if (!Terminator.Branch || Terminator.ExtraRelaxSize == 0) in mustRelaxBranch()
317 const MBBInfo &Target = MBBs[Terminator.TargetBlock]; in mustRelaxBranch()
329 // Return true if, under current assumptions, any terminator needs
332 for (auto &Terminator : Terminators) in mustRelaxABranch() local
333 if (mustRelaxBranch(Terminator, Terminator.Address)) in mustRelaxABranch()
389 // Relax the branch described by Terminator.
390 void SystemZLongBranch::relaxBranch(TerminatorInfo &Terminator) { in relaxBranch() argument
391 MachineInstr *Branch = Terminator.Branch; in relaxBranch()
433 Terminator.Size += Terminator.ExtraRelaxSize; in relaxBranch()
434 Terminator.ExtraRelaxSize = 0; in relaxBranch()
435 Terminator.Branch = nullptr; in relaxBranch()