diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-07-19 19:32:00 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2019-07-19 19:32:00 +0000 |
| commit | c14334e95924b875a70eb16b0f53a1820239d9cb (patch) | |
| tree | fa5412fa350828b683c2f625bd69bd84e658c79d /llvm/lib | |
| parent | a3c83b7511a56a1bc79784078caab0ad7f8c7abb (diff) | |
| download | bcm5719-llvm-c14334e95924b875a70eb16b0f53a1820239d9cb.tar.gz bcm5719-llvm-c14334e95924b875a70eb16b0f53a1820239d9cb.zip | |
LiveIntervals: Fix handleMove asserting on BUNDLE
The top-level BUNDLE instruction should behave as an ordinary
instruction. It is supposed to have all relevant registers as implicit
operands. Moving it should work as any other instruction. I believe
the assert intended to avoid moving instructions inside bundles.
llvm-svn: 366605
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/CodeGen/LiveIntervals.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervals.cpp b/llvm/lib/CodeGen/LiveIntervals.cpp index aa85569063b..c4bc6ae6d7d 100644 --- a/llvm/lib/CodeGen/LiveIntervals.cpp +++ b/llvm/lib/CodeGen/LiveIntervals.cpp @@ -1439,7 +1439,10 @@ private: }; void LiveIntervals::handleMove(MachineInstr &MI, bool UpdateFlags) { - assert(!MI.isBundled() && "Can't handle bundled instructions yet."); + // It is fine to move a bundle as a whole, but not an individual instruction + // inside it. + assert((!MI.isBundled() || MI.getOpcode() == TargetOpcode::BUNDLE) && + "Cannot move instruction in bundle"); SlotIndex OldIndex = Indexes->getInstructionIndex(MI); Indexes->removeMachineInstrFromMaps(MI); SlotIndex NewIndex = Indexes->insertMachineInstrInMaps(MI); |

