- Jun 17, 2013
-
-
Andrew Trick authored
llvm-svn: 184133
-
Andrew Trick authored
A complex, expensive heuristic with little value in the current design. llvm-svn: 184132
-
Andrew Trick authored
llvm-svn: 184130
-
Andrew Trick authored
This eliminates the MultiPressure scheduling "reason". It was sensitive to queue order. We don't like being sensitive to queue order. llvm-svn: 184129
-
- Jun 15, 2013
-
-
Andrew Trick authored
llvm-svn: 184039
-
Andrew Trick authored
llvm-svn: 184038
-
Andrew Trick authored
Replace the ill-defined MinLatency and ILPWindow properties with with straightforward buffer sizes: MCSchedMode::MicroOpBufferSize MCProcResourceDesc::BufferSize These can be used to more precisely model instruction execution if desired. Disabled some misched tests temporarily. They'll be reenabled in a few commits. llvm-svn: 184032
-
Andrew Trick authored
"Counts" refer to scaled resource counts within a region. CurrMOps is simply the number of micro-ops to be issue in the current cycle. llvm-svn: 184031
-
Andrew Trick authored
llvm-svn: 184030
-
Andrew Trick authored
Heuristics compare the critical path in the scheduled code, called ExpectedLatency, with the latency of instructions remaining to be scheduled. There are two ways to look at remaining latency: (1) Dependent latency includes the latency between unscheduled and scheduled instructions. (2) Independent latency is simply the height (bottom-up) or depth (top-down) of instructions currently in the ready Q. llvm-svn: 184029
-
Andrew Trick authored
llvm-svn: 184028
-
- Jun 14, 2013
-
-
Jakub Staszak authored
llvm-svn: 183960
-
- May 01, 2013
-
-
Andrew Trick authored
I'll fix the heuristic in a general way in a follow-up commit. llvm-svn: 180815
-
- Apr 25, 2013
-
-
Andrew Trick authored
Fixes PR15838. Need to check for blocks with nothing but dbg.value. I'm not sure how to force this situation with a unit test. I tried to reduce the test case in PR15838 (1k lines of metadata) but gave up. llvm-svn: 180227
-
- Apr 24, 2013
-
-
Andrew Trick authored
For now, we just reschedule instructions that use the copied vregs and let regalloc elliminate it. I would really like to eliminate the copies on-the-fly during scheduling, but we need a complete implementation of repairIntervalsInRange() first. The general strategy is for the register coalescer to eliminate as many global copies as possible and shrink live ranges to be extended-basic-block local. The coalescer should not have to worry about resolving local copies (e.g. it shouldn't attemp to reorder instructions). The scheduler is a much better place to deal with local interference. The coalescer side of this equation needs work. llvm-svn: 180193
-
Andrew Trick authored
llvm-svn: 180191
-
- Apr 13, 2013
-
-
Andrew Trick authored
llvm-svn: 179452
-
Andrew Trick authored
The register allocator expects minimal physreg live ranges. Schedule physreg copies accordingly. This is slightly tricky when they occur in the middle of the scheduling region. For now, this is handled by rescheduling the copy when its associated instruction is scheduled. Eventually we may instead bundle them, but only if we can preserve the bundles as parallel copies during regalloc. llvm-svn: 179449
-
- Apr 05, 2013
-
-
Andrew Trick authored
llvm-svn: 178823
-
Andrew Trick authored
For now, just save the compile time since the ConvergingScheduler heuristics don't use this analysis. We'll probably enable it later after compile-time investigation. llvm-svn: 178822
-
Andrew Trick authored
I'm getting more serious about tuning and enabling on x86/ARM. Start by making the trace readable. llvm-svn: 178821
-
- Mar 21, 2013
-
-
Matt Arsenault authored
llvm-svn: 177620
-
- Mar 10, 2013
-
-
Jakub Staszak authored
llvm-svn: 176787
-
- Mar 08, 2013
-
-
Andrew Trick authored
This verifies live intervals both before and after scheduling. It's useful for anyone hacking on live interval update. Note that we don't yet pass verification all the time. We don't yet handle updating nonallocatable live intervals perfectly. llvm-svn: 176685
-
- Feb 16, 2013
-
-
Jakub Staszak authored
updateScheduledPressure method. llvm-svn: 175362
-
- Feb 13, 2013
-
-
Andrew Trick authored
llvm-svn: 175067
-
- Jan 29, 2013
-
-
Andrew Trick authored
llvm-svn: 173775
-
- Jan 25, 2013
-
-
Jakub Staszak authored
llvm-svn: 173497
-
Andrew Trick authored
llvm-svn: 173433
-
Andrew Trick authored
llvm-svn: 173432
-
Andrew Trick authored
Allow the strategy to select SchedDFS. Allow the results of SchedDFS to affect initialization of the scheduler state. llvm-svn: 173425
-
Andrew Trick authored
interface and allow other strategies to select it. llvm-svn: 173413
-
- Jan 24, 2013
-
-
Andrew Trick authored
llvm-svn: 173318
-
- Jan 11, 2013
-
-
Andrew Trick authored
llvm-svn: 172224
-
Andrew Trick authored
llvm-svn: 172223
-
- Jan 09, 2013
-
-
Andrew Trick authored
This was an experimental option, but needs to be defined per-target. e.g. PPC A2 needs to aggressively hide latency. I converted some in-order scheduling tests to A2. Hal is working on more test cases. llvm-svn: 171946
-
- Dec 18, 2012
-
-
Andrew Trick authored
llvm-svn: 170453
-
Andrew Trick authored
llvm-svn: 170452
-
Andrew Trick authored
llvm-svn: 170451
-
Andrew Trick authored
llvm-svn: 170450
-