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

Evan Cheng evan.cheng at apple.com
Mon Jul 26 15:31:03 PDT 2010


By definition register pressure tracking in the scheduler is an approximation. We're not modeling live throughs, nor are we taking into consideration special register allocation requirement, etc.

The other major issue is register pressure excess for different register classes are the same. e.g. let's say node A will cause high GPR register pressure, node B VR128. The scheduler doesn't know whether it's better to schedule A or B first.

Evan

On Jul 26, 2010, at 3:06 PM, Eric Christopher wrote:

> 
> On Jul 26, 2010, at 2:49 PM, Evan Cheng wrote:
> 
>> The "excess register pressure" returned by HighRegPressure() is not accurate enough to factor into scheduling priority. Eliminate it and add early exits to speed up scheduling.
> 
> Excess was "number of registers used over the number in the class"?  If so it would probably only be useful when trying to schedule for conservation of registers, or to get registers back to where we can start scheduling for ILP again.
> 
> Why wasn't it accurate?  Cost problems or...?
> 
> -eric





More information about the llvm-commits mailing list