[llvm-commits] [llvm] r109079 - /llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp

Evan Cheng evan.cheng at apple.com
Wed Jul 21 23:25:01 PDT 2010


Fixed. Sorry about the breakage.

Evan
On Jul 21, 2010, at 11:01 PM, Owen Anderson wrote:

> Evan,
> 
> I went ahead and reverted it to fix the buildbots.
> 
> --Owen
> 
> On Jul 21, 2010, at 10:18 PM, Evan Cheng wrote:
> 
>> Author: evancheng
>> Date: Thu Jul 22 00:18:41 2010
>> New Revision: 109079
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=109079&view=rev
>> Log:
>> Initialize RegLimit only when register pressure is being tracked.
>> 
>> Modified:
>>   llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
>> 
>> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp?rev=109079&r1=109078&r2=109079&view=diff
>> ==============================================================================
>> --- llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp (original)
>> +++ llvm/trunk/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp Thu Jul 22 00:18:41 2010
>> @@ -1036,7 +1036,7 @@
>>    std::vector<SUnit*> Queue;
>>    SF Picker;
>>    unsigned CurQueueId;
>> -    bool isBottomUp;
>> +    bool TracksRegPressure;
>> 
>>  protected:
>>    // SUnits - The SUnits for the current graph.
>> @@ -1061,20 +1061,22 @@
>> 
>>  public:
>>    RegReductionPriorityQueue(MachineFunction &mf,
>> -                              bool isbottomup,
>> +                              bool tracksrp,
>>                              const TargetInstrInfo *tii,
>>                              const TargetRegisterInfo *tri,
>>                              const TargetLowering *tli)
>> -      : Picker(this), CurQueueId(0), isBottomUp(isbottomup),
>> +      : Picker(this), CurQueueId(0), TracksRegPressure(tracksrp),
>>        MF(mf), TII(tii), TRI(tri), TLI(tli), scheduleDAG(NULL) {
>> -      unsigned NumRC = TRI->getNumRegClasses();
>> -      RegLimit.resize(NumRC);
>> -      RegPressure.resize(NumRC);
>> -      std::fill(RegLimit.begin(), RegLimit.end(), 0);
>> -      std::fill(RegPressure.begin(), RegPressure.end(), 0);
>> -      for (TargetRegisterInfo::regclass_iterator I = TRI->regclass_begin(),
>> -             E = TRI->regclass_end(); I != E; ++I)
>> -        RegLimit[(*I)->getID()] = tri->getAllocatableSet(MF, *I).count() - 1;
>> +      if (TracksRegPressure) {
>> +        unsigned NumRC = TRI->getNumRegClasses();
>> +        RegLimit.resize(NumRC);
>> +        RegPressure.resize(NumRC);
>> +        std::fill(RegLimit.begin(), RegLimit.end(), 0);
>> +        std::fill(RegPressure.begin(), RegPressure.end(), 0);
>> +        for (TargetRegisterInfo::regclass_iterator I = TRI->regclass_begin(),
>> +               E = TRI->regclass_end(); I != E; ++I)
>> +          RegLimit[(*I)->getID()] = tri->getAllocatableSet(MF, *I).count() - 1;
>> +      }
>>    }
>> 
>>    void initNodes(std::vector<SUnit> &sunits) {
>> @@ -1207,7 +1209,10 @@
>>      return false;
>>    }
>> 
>> -    void OpenPredLives(SUnit *SU) {
>> +    void ScheduledNode(SUnit *SU) {
>> +      if (!TracksRegPressure)
>> +        return;
>> +
>>      const SDNode *N = SU->getNode();
>>      if (!N->isMachineOpcode())
>>        return;
>> @@ -1260,9 +1265,14 @@
>>        else
>>          RegPressure[RCId] -= TLI->getRepRegClassCostFor(VT);
>>      }
>> +
>> +      dumpRegPressure();
>>    }
>> 
>> -    void ClosePredLives(SUnit *SU) {
>> +    void UnscheduledNode(SUnit *SU) {
>> +      if (!TracksRegPressure)
>> +        return;
>> +
>>      const SDNode *N = SU->getNode();
>>      if (!N->isMachineOpcode())
>>        return;
>> @@ -1317,19 +1327,7 @@
>>        unsigned RCId = TLI->getRepRegClassFor(VT)->getID();
>>        RegPressure[RCId] += TLI->getRepRegClassCostFor(VT);
>>      }
>> -    }
>> 
>> -    void ScheduledNode(SUnit *SU) {
>> -      if (!TLI || !isBottomUp)
>> -        return;
>> -      OpenPredLives(SU);
>> -      dumpRegPressure();
>> -    }
>> -
>> -    void UnscheduledNode(SUnit *SU) {
>> -      if (!TLI || !isBottomUp)
>> -        return;
>> -      ClosePredLives(SU);
>>      dumpRegPressure();
>>    }
>> 
>> @@ -1851,7 +1849,7 @@
>>  const TargetRegisterInfo *TRI = TM.getRegisterInfo();
>> 
>>  BURegReductionPriorityQueue *PQ =
>> -    new BURegReductionPriorityQueue(*IS->MF, true, TII, TRI, 0);
>> +    new BURegReductionPriorityQueue(*IS->MF, false, TII, TRI, 0);
>>  ScheduleDAGRRList *SD = new ScheduleDAGRRList(*IS->MF, true, false, PQ);
>>  PQ->setScheduleDAG(SD);
>>  return SD;  
>> @@ -1877,7 +1875,7 @@
>>  const TargetRegisterInfo *TRI = TM.getRegisterInfo();
>> 
>>  SrcRegReductionPriorityQueue *PQ =
>> -    new SrcRegReductionPriorityQueue(*IS->MF, true, TII, TRI, 0);
>> +    new SrcRegReductionPriorityQueue(*IS->MF, false, TII, TRI, 0);
>>  ScheduleDAGRRList *SD = new ScheduleDAGRRList(*IS->MF, true, false, PQ);
>>  PQ->setScheduleDAG(SD);
>>  return SD;  
>> 
>> 
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 





More information about the llvm-commits mailing list