diff options
author | Bob Wilson <bob.wilson@apple.com> | 2010-04-17 00:49:11 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2010-04-17 00:49:11 +0000 |
commit | 8295d4c96c8530acb7ae0098d813b53dc4fe0a89 (patch) | |
tree | 9e3abf15b426570160db1cb7fde6d0ecc71c2b4a /lib/CodeGen/PostRASchedulerList.cpp | |
parent | 23eaf26fa3510526b11230c76ea39221277dd2ea (diff) | |
download | external_llvm-8295d4c96c8530acb7ae0098d813b53dc4fe0a89.zip external_llvm-8295d4c96c8530acb7ae0098d813b53dc4fe0a89.tar.gz external_llvm-8295d4c96c8530acb7ae0098d813b53dc4fe0a89.tar.bz2 |
As a temporary workaround for post-RA not handling DebugValue instructions,
just remove them all. Radar 7873207 (working around the root problem of
Radar 7759363).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101604 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/PostRASchedulerList.cpp')
-rw-r--r-- | lib/CodeGen/PostRASchedulerList.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/CodeGen/PostRASchedulerList.cpp b/lib/CodeGen/PostRASchedulerList.cpp index 38abcb4..79a25ef 100644 --- a/lib/CodeGen/PostRASchedulerList.cpp +++ b/lib/CodeGen/PostRASchedulerList.cpp @@ -265,6 +265,17 @@ bool PostRAScheduler::runOnMachineFunction(MachineFunction &Fn) { // Initialize register live-range state for scheduling in this block. Scheduler.StartBlock(MBB); + // FIXME: Temporary workaround for <rdar://problem/7759363>: The post-RA + // scheduler has some sort of problem with DebugValue instructions that + // causes an assertion in LeaksContext.h to fail occasionally. Just + // remove all those instructions for now. + for (MachineBasicBlock::iterator I = MBB->begin(), E = MBB->end(); + I != E; ) { + MachineInstr *MI = &*I++; + if (MI->isDebugValue()) + MI->eraseFromParent(); + } + // Schedule each sequence of instructions not interrupted by a label // or anything else that effectively needs to shut down scheduling. MachineBasicBlock::iterator Current = MBB->end(); |