Home | History | Annotate | Download | only in src

Lines Matching refs:Variable

35 // variable's definitions overlap Cur, and trimming is with respect Cur.start.
38 bool overlapsDefs(const Cfg *Func, const Variable *Item, const Variable *Var) {
51 void dumpDisableOverlap(const Cfg *Func, const Variable *Var,
71 void dumpLiveRange(const Variable *Var, const Cfg *Func) {
119 for (Variable *Var : Vars) {
127 // Don't bother if the variable has a null live range, which means it was
173 Variable *Var = Vars[VarNum];
175 << ", variable " << Var->getName() << "\n";
178 Variable *Var = Vars[VarNum];
179 Str << "LR use before def, instruction " << LREnd[VarNum] << ", variable "
215 // range for each variable that is pre-colored or infinite weight.
233 if (const Variable *Var = Instr.getDest()) {
248 Variable *Var = Vars[i];
280 Variable *Var = Vars[VarNum];
282 << ", variable " << Var->getName() << "\n";
285 Variable *Var = Vars[VarNum];
287 << ", variable " << Var->getName() << "\n";
297 // Variable has a live range spanning a call.
308 for (Variable *Var : Vars) {
319 for (Variable *Var : Evicted) {
325 void LinearScan::init(RegAllocKind Kind, CfgSet<Variable *> ExcludeVars) {
363 auto CompareRanges = [](const Variable *L, const Variable *R) {
436 Variable *Preg = Target->getPhysicalRegister(RegNum, Iter.Cur->getType());
439 Variable *SpillLoc = Func->makeVariable(Iter.Cur->getType());
448 void LinearScan::handleActiveRangeExpiredOrInactive(const Variable *Cur) {
451 Variable *Item = Active[Index];
477 void LinearScan::handleInactiveRangeExpiredOrReactivated(const Variable *Cur) {
480 Variable *Item = Inactive[Index];
502 // the current Variable has an unambiguous "first" definition. The preference is
503 // some source Variable of the defining instruction that either is assigned a
505 // free but overlap is allowed. Overlap is allowed when the Variable under
508 // overlap is only allowed when preferred Variable definition instructions do
509 // not appear within the current Variable's live range.
568 for (const Variable *Item : Inactive) {
578 // Disable AllowOverlap if an Inactive variable, which is not Prefer,
597 for (Variable *Item : reverse_range(UnhandledPrecolored)) {
620 void LinearScan::allocatePrecoloredRegister(Variable *Cur) {
665 for (const Variable *Item : Active) {
678 for (const Variable *Item : Inactive) {
718 // assigned to a non-infinite-weight variable. This could happen if some
719 // variable was previously assigned an alias of such a register.
740 Variable *Item = Active[Index];
757 Variable *Item = Inactive[Index];
800 // for each Variable.
801 for (Variable *Item : Handled) {
835 // are assigned to Variable::RegNum for each Variable.
845 for (Variable *Var : UnhandledPrecolored) {
911 // Disable AllowOverlap if an Active variable, which is not Prefer, shares
915 for (const Variable *Item : Active) {
959 // overlap with its linked variable.
988 void LinearScan::dumpLiveRangeTrace(const char *Label, const Variable *Item) {
1009 for (const Variable *Item : Handled) {
1014 for (const Variable *Item : reverse_range(Unhandled)) {
1019 for (const Variable *Item : Active) {
1024 for (const Variable *Item : Inactive) {