#
92da4240 |
| 24-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MachineScheduler: enable biasCriticalPath for all DAGs.
llvm-svn: 173318
|
#
5907292d |
| 11-Jan-2013 |
Andrew Trick <atrick@apple.com> |
Follow-up typo correction from building the wrong branch.
llvm-svn: 172224
|
#
ae182ce4 |
| 11-Jan-2013 |
Andrew Trick <atrick@apple.com> |
Fix typo from r170452. Affects -enable-misched heuristics.
llvm-svn: 172223
|
#
9f0b95f2 |
| 09-Jan-2013 |
Andrew Trick <atrick@apple.com> |
MIsched: add an ILP window property to machine model.
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
MIsched: add an ILP window property to machine model.
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
show more ...
|
Revision tags: llvmorg-3.2.0 |
|
#
ef235698 |
| 18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: Cleanup, redundant statement.
llvm-svn: 170453
|
#
d6d5ad3d |
| 18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: Heuristics, compare latency more precisely. It matters more for some targets.
llvm-svn: 170452
|
#
44f54d97 |
| 18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: Remove SchedRemainder::IsResourceLimited. I don't know how to compute it.
llvm-svn: 170451
|
#
493b867b |
| 18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: cleanup, use the proper iterator type.
llvm-svn: 170450
|
#
ffb6168e |
| 18-Dec-2012 |
Andrew Trick <atrick@apple.com> |
MISched: minor improvement, initialize remaining resources before the first scheduling decision.
llvm-svn: 170449
|
Revision tags: llvmorg-3.2.0-rc3 |
|
#
ed0881b2 |
| 03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib.
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module
Use the new script to sort the includes of every file under lib.
Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented.
Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =]
llvm-svn: 169131
show more ...
|
#
b767d1eb |
| 01-Dec-2012 |
Andrew Trick <atrick@apple.com> |
misched: Fix RegisterPressureTracker handling of DebugVals.
Assertion failed: (TopRPTracker.getPos() == RegionBegin && "bad initial Top tracker"). rdar://12790302.
llvm-svn: 169072
|
#
e7ea8aa4 |
| 01-Dec-2012 |
Andrew Trick <atrick@apple.com> |
misched: fix RegionBegin when DebugValues get shuffled to the top.
assert (RemainingInstrs == 0 && "Instruction count mismatch!")
rdar://12776937.
llvm-svn: 169069
|
Revision tags: llvmorg-3.2.0-rc2 |
|
#
aa598b3b |
| 29-Nov-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
misched: Recompute priority queue when DFSResults are updated.
This was found by MSVC10's STL debug mode on a test from the test suite. Sadly std::is_heap isn't standard so there is no way to assert
misched: Recompute priority queue when DFSResults are updated.
This was found by MSVC10's STL debug mode on a test from the test suite. Sadly std::is_heap isn't standard so there is no way to assert this without writing our own heap verify, which looks like overkill to me.
llvm-svn: 168885
show more ...
|
#
48d392e8 |
| 28-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Analysis that partitions the DAG into subtrees.
This is a simple, cheap infrastructure for analyzing the shape of a DAG. It recognizes uniform DAGs that take the shape of bottom-up subtrees
misched: Analysis that partitions the DAG into subtrees.
This is a simple, cheap infrastructure for analyzing the shape of a DAG. It recognizes uniform DAGs that take the shape of bottom-up subtrees, such as the included matrix multiplication example. This is useful for heuristics that balance register pressure with ILP. Two canonical expressions of the heuristic are implemented in scheduling modes: -misched-ilpmin and -misched-ilpmax.
llvm-svn: 168773
show more ...
|
#
cd1c2f9f |
| 28-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: rename ScheduleDAGILP to ScheduleDFS to prepare for other heuristics.
llvm-svn: 168772
|
#
cf7e6971 |
| 28-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Debug output fix. Use an always valid iterator.
llvm-svn: 168767
|
Revision tags: llvmorg-3.2.0-rc1 |
|
#
108c88c5 |
| 13-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Allow subtargets to enable misched and dependent options.
This allows me to begin enabling (or backing out) misched by default for one subtarget at a time. To run misched we typically want
misched: Allow subtargets to enable misched and dependent options.
This allows me to begin enabling (or backing out) misched by default for one subtarget at a time. To run misched we typically want to: - Disable SelectionDAG scheduling (use the source order scheduler) - Enable more aggressive coalescing (until we decide to always run the coalescer this way) - Enable MachineScheduler pass itself.
Disabling PostRA sched may follow for some subtargets.
llvm-svn: 167826
show more ...
|
#
ec369d53 |
| 12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: rename interfaceto avoid gcc warnings
llvm-svn: 167753
|
#
26328024 |
| 12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Target-independent support for MacroFusion.
Uses the infrastructure from r167742 to support clustering instructure that the target processor can "fuse". e.g. cmp+jmp.
Next step: target hoo
misched: Target-independent support for MacroFusion.
Uses the infrastructure from r167742 to support clustering instructure that the target processor can "fuse". e.g. cmp+jmp.
Next step: target hook implementations with test cases, and enable.
llvm-svn: 167744
show more ...
|
#
a7714a0f |
| 12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Target-independent support for load/store clustering.
This infrastructure is generally useful for any target that wants to strongly prefer two instructions to be adjacent after scheduling.
misched: Target-independent support for load/store clustering.
This infrastructure is generally useful for any target that wants to strongly prefer two instructions to be adjacent after scheduling.
A following checkin will add target-specific hooks with unit tests. Then this feature will be enabled by default with misched.
llvm-svn: 167742
show more ...
|
#
f1ff84c6 |
| 12-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Infrastructure for weak DAG edges.
This adds support for weak DAG edges to the general scheduling infrastructure in preparation for MachineScheduler support for heuristics based on weak edg
misched: Infrastructure for weak DAG edges.
This adds support for weak DAG edges to the general scheduling infrastructure in preparation for MachineScheduler support for heuristics based on weak edges.
llvm-svn: 167738
show more ...
|
#
c280f418 |
| 09-Nov-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Silence GCC warning about falling off the end of a non-void function.
llvm-svn: 167618
|
#
3ca33acb |
| 07-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Heuristics based on the machine model.
misched is disabled by default. With -enable-misched, these heuristics balance the schedule to simultaneously avoid saturating processor resources, ex
misched: Heuristics based on the machine model.
misched is disabled by default. With -enable-misched, these heuristics balance the schedule to simultaneously avoid saturating processor resources, expose ILP, and minimize register pressure. I've been analyzing the performance of these heuristics on everything in the llvm test suite in addition to a few other benchmarks. I would like each heuristic check to be verified by a unit test, but I'm still trying to figure out the best way to do that. The heuristics are still in considerable flux, but as they are refined we should be rigorous about unit testing the improvements.
llvm-svn: 167527
show more ...
|
#
4d1fa712 |
| 06-Nov-2012 |
Andrew Trick <atrick@apple.com> |
misched: Rename RemainingCount to avoid confusion with remaining resources.
llvm-svn: 167443
|
#
d9d4be0d |
| 16-Oct-2012 |
Andrew Trick <atrick@apple.com> |
misched: Added handleMove support for updating all kill flags, not just for allocatable regs.
This is a medium term workaround until we have a more robust solution in the form of a register liveness
misched: Added handleMove support for updating all kill flags, not just for allocatable regs.
This is a medium term workaround until we have a more robust solution in the form of a register liveness utility for postRA passes.
llvm-svn: 166001
show more ...
|