Home | History | Annotate | Download | only in SystemZ

Lines Matching refs:Terminator

94 // Represents the state of a block terminator.
96 // If this terminator is a relaxable branch, this points to the branch
100 // The address that we currently assume the terminator has.
103 // The current size of the terminator in bytes.
145 void skipTerminator(BlockPosition &Position, TerminatorInfo &Terminator,
149 bool mustRelaxBranch(const TerminatorInfo &Terminator, uint64_t Address);
154 void relaxBranch(TerminatorInfo &Terminator);
174 // accordingly and move Position to the end of the block's non-terminator
197 // Position describes the state immediately before Terminator.
198 // Update Terminator accordingly and move Position past it.
199 // Assume that Terminator will be relaxed if AssumeRelaxed.
201 TerminatorInfo &Terminator,
203 Terminator.Address = Position.Address;
204 Position.Address += Terminator.Size;
206 Position.Address += Terminator.ExtraRelaxSize;
209 // Return a description of terminator instruction MI.
211 TerminatorInfo Terminator;
212 Terminator.Size = TII->getInstSizeInBytes(MI);
217 Terminator.ExtraRelaxSize = 2;
221 Terminator.ExtraRelaxSize = 2;
226 Terminator.ExtraRelaxSize = 6;
231 Terminator.ExtraRelaxSize = 2;
236 Terminator.ExtraRelaxSize = 4;
241 Terminator.ExtraRelaxSize = 4;
246 Terminator.ExtraRelaxSize = 6;
251 Terminator.Branch = MI;
252 Terminator.TargetBlock =
255 return Terminator;
291 assert(MI->isTerminator() && "Terminator followed by non-terminator");
303 // Return true if, under current assumptions, Terminator would need to be
305 bool SystemZLongBranch::mustRelaxBranch(const TerminatorInfo &Terminator,
307 if (!Terminator.Branch)
310 const MBBInfo &Target = MBBs[Terminator.TargetBlock];
322 // Return true if, under current assumptions, any terminator needs
325 for (auto &Terminator : Terminators)
326 if (mustRelaxBranch(Terminator, Terminator.Address))
382 // Relax the branch described by Terminator.
383 void SystemZLongBranch::relaxBranch(TerminatorInfo &Terminator) {
384 MachineInstr *Branch = Terminator.Branch;
426 Terminator.Size += Terminator.ExtraRelaxSize;
427 Terminator.ExtraRelaxSize = 0;
428 Terminator.Branch = nullptr;