"...Transforms/git@repo.hca.bsc.es:lalbano/llvm-bpevl.git" did not exist on "09020ec2a7199fca2835e6dbbac9d89f9222a843"
- Sep 14, 2012
-
-
Andrew Trick authored
llvm-svn: 163915
-
- Sep 12, 2012
-
-
Manman Ren authored
"#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)" No functional change. Update r163339. llvm-svn: 163653
-
- Sep 11, 2012
-
-
Andrew Trick authored
The Hexagon target decided to use a lot of functionality from the target-independent scheduler. That's fine, and other targets should be able to do the same. This reorg and API update makes that easy. For the record, ScheduleDAGMI was not meant to be subclassed. Instead, new scheduling algorithms should be able to implement MachineSchedStrategy and be done. But if need be, it's nice to be able to extend ScheduleDAGMI, so I also made that easier. The target scheduler is somewhat more apt to break that way though. llvm-svn: 163580
-
- Sep 06, 2012
-
-
Manman Ren authored
No functional change. llvm-svn: 163339
-
- Aug 23, 2012
-
-
Andrew Trick authored
The logic for recomputing latency based on a ScheduleDAG edge was shady. This bypasses the problem by requiring the client to provide operand indices. This ensures consistent use of the machine model's API. llvm-svn: 162420
-
- Aug 22, 2012
-
-
Craig Topper authored
Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed. llvm-svn: 162347
-
- Jul 23, 2012
-
-
Sylvestre Ledru authored
llvm-svn: 160621
-
- Jul 07, 2012
-
-
Andrew Trick authored
subtarget CPU descriptions and support new features of MachineScheduler. MachineModel has three categories of data: 1) Basic properties for coarse grained instruction cost model. 2) Scheduler Read/Write resources for simple per-opcode and operand cost model (TBD). 3) Instruction itineraties for detailed per-cycle reservation tables. These will all live side-by-side. Any subtarget can use any combination of them. Instruction itineraries will not change in the near term. In the long run, I expect them to only be relevant for in-order VLIW machines that have complex contraints and require a precise scheduling/bundling model. Once itineraries are only actively used by VLIW-ish targets, they could be replaced by something more appropriate for those targets. This tablegen backend rewrite sets things up for introducing MachineModel type #2: per opcode/operand cost model. llvm-svn: 159891
-
- Jul 02, 2012
-
-
Andrew Trick authored
llvm-svn: 159599
-
- Jun 29, 2012
-
-
Andrew Trick authored
llvm-svn: 159408
-
Andrew Trick authored
llvm-svn: 159407
-
- Jun 16, 2012
-
-
Benjamin Kramer authored
llvm-svn: 158608
-
- Jun 06, 2012
-
-
Andrew Trick authored
Allow targets to access this API. It's required for RegisterPressure. llvm-svn: 158102
-
Andrew Trick authored
Make it a general utility for use by Targets. llvm-svn: 158097
-
- Jun 05, 2012
-
-
Andrew Trick authored
Minimum latency determines per-cycle scheduling groups. Expected latency determines critical path and cost. llvm-svn: 158021
-
Andrew Trick authored
llvm-svn: 157975
-
- May 25, 2012
-
-
Andrew Trick authored
llvm-svn: 157455
-
Kaelyn Uhrain authored
llvm-svn: 157438
-
Andrew Trick authored
(except the part about choosing direction) llvm-svn: 157437
-
Andrew Trick authored
llvm-svn: 157429
-
Andrew Trick authored
llvm-svn: 157428
-
Andrew Trick authored
The Hazard checker implements in-order contraints, or interlocked resources. Ready instructions with hazards do not enter the available queue and are not visible to other heuristics. The major code change is the addition of SchedBoundary to encapsulate the state at the top or bottom of the schedule, including both a pending and available queue. The scheduler now counts cycles in sync with the hazard checker. These are minimum cycle counts based on known hazards. Targets with no itinerary (x86_64) currently remain at cycle 0. To fix this, we need to provide some maximum issue width for all targets. We also need to add the concept of expected latency vs. minimum latency. llvm-svn: 157427
-
Andrew Trick authored
llvm-svn: 157426
-
Andrew Trick authored
llvm-svn: 157425
-
Andrew Trick authored
llvm-svn: 157424
-
- May 18, 2012
-
-
Andrew Trick authored
llvm-svn: 157020
-
- May 17, 2012
-
-
Andrew Trick authored
llvm-svn: 157007
-
Andrew Trick authored
Introduce the basic strategy for register pressure scheduling. 1) Respect target limits at all times. 2) Indentify critical register classes (pressure sets). Track pressure within the scheduled region. Avoid increasing scheduled pressure for critical registers. 3) Avoid exceeding the max pressure of the region prior to scheduling. Added logic for picking between the top and bottom ready Q's based on regpressure heuristics. Status: functional but needs to be asjusted to achieve good results. llvm-svn: 157006
-
Andrew Trick authored
llvm-svn: 157005
-
Andrew Trick authored
llvm-svn: 157003
-
- May 10, 2012
-
-
Andrew Trick authored
llvm-svn: 156576
-
Andrew Trick authored
llvm-svn: 156575
-
Andrew Trick authored
Prioritize the instruction that comes closest to keeping pressure under the target's limit. Then prioritize instructions that avoid increasing the max pressure in the scheduled region. The max pressure heuristic is a tad aggressive. Later I'll fix it to consider the unscheduled pressure as well. WIP: This is mostly functional but untested and not likely to do much good yet. llvm-svn: 156574
-
Andrew Trick authored
llvm-svn: 156573
-
Andrew Trick authored
llvm-svn: 156572
-
Andrew Trick authored
llvm-svn: 156571
-
- Apr 24, 2012
-
-
Andrew Trick authored
llvm-svn: 155486
-
Andrew Trick authored
llvm-svn: 155458
-
Andrew Trick authored
llvm-svn: 155457
-
Andrew Trick authored
The DAG builder is a convenient place to do it. Hopefully this is more efficient than a separate traversal over the same region. llvm-svn: 155456
-