summaryrefslogtreecommitdiff
path: root/lib/Target/ARM
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-12-28 21:56:57 +0000
committerAndrew Trick <atrick@apple.com>2013-12-28 21:56:57 +0000
commit9e76e1d78504e6ef7782b87e87d99fb77de6bb86 (patch)
treeb57cc713fb6c9f97eb5ddb2b336d2e9e7cbf8ee1 /lib/Target/ARM
parent8e62b298e1db137b839da627103e2536b1695742 (diff)
downloadllvm-9e76e1d78504e6ef7782b87e87d99fb77de6bb86.tar.gz
llvm-9e76e1d78504e6ef7782b87e87d99fb77de6bb86.tar.bz2
llvm-9e76e1d78504e6ef7782b87e87d99fb77de6bb86.tar.xz
Add a PostMachineScheduler pass with generic implementation.
PostGenericScheduler uses either the new machine model or the hazard checker for top-down scheduling. Most of the infrastructure for PreRA machine scheduling is reused. With a some tuning, this should allow MachineScheduler to be default for all ARM targets, including cortex-A9, using the new machine model. Likewise, with additional tuning, it should be able to replace PostRAScheduler for all targets. The PostMachineScheduler pass does not currently run the AntiDepBreaker. There is less need for it on targets that are already running preRA MachineScheduler. I want to prove it's necessary before committing to the maintenance burden. The PostMachineScheduler also currently removes kill flags and adds them all back later. This is a bit ridiculous. I'd prefer passes to directly use a liveness utility than rely on flags. A test case that enables this scheduler will be included in a subsequent checkin that updates the A9 model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198122 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM')
0 files changed, 0 insertions, 0 deletions