diff options
| author | Nicolai Haehnle <nhaehnle@gmail.com> | 2019-10-08 12:46:20 +0000 |
|---|---|---|
| committer | Nicolai Haehnle <nhaehnle@gmail.com> | 2019-10-08 12:46:20 +0000 |
| commit | 7febdb7f27dfd3c5aab75ee07e1d36d30124fecc (patch) | |
| tree | 22d794606b9f046b83e49791ae17232a4fd62824 /llvm/lib/CodeGen/MachineSSAUpdater.cpp | |
| parent | 5cce533525d6d5174da796622a79bada6b48bba3 (diff) | |
| download | bcm5719-llvm-7febdb7f27dfd3c5aab75ee07e1d36d30124fecc.tar.gz bcm5719-llvm-7febdb7f27dfd3c5aab75ee07e1d36d30124fecc.zip | |
MachineSSAUpdater: insert IMPLICIT_DEF at top of basic block
Summary:
When getValueInMiddleOfBlock happens to be called for a basic block
that has no incoming value at all, an IMPLICIT_DEF is inserted in that
block via GetValueAtEndOfBlockInternal. This IMPLICIT_DEF must be at
the top of its basic block or it will likely not reach the use that
the caller intends to insert.
Issue: https://github.com/GPUOpen-Drivers/llpc/issues/204
Reviewers: arsenm, rampitec
Subscribers: jvesely, wdng, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D68183
llvm-svn: 374040
Diffstat (limited to 'llvm/lib/CodeGen/MachineSSAUpdater.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/MachineSSAUpdater.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MachineSSAUpdater.cpp b/llvm/lib/CodeGen/MachineSSAUpdater.cpp index 3370b52ede4..258a5f9e048 100644 --- a/llvm/lib/CodeGen/MachineSSAUpdater.cpp +++ b/llvm/lib/CodeGen/MachineSSAUpdater.cpp @@ -292,7 +292,7 @@ public: MachineSSAUpdater *Updater) { // Insert an implicit_def to represent an undef value. MachineInstr *NewDef = InsertNewDef(TargetOpcode::IMPLICIT_DEF, - BB, BB->getFirstTerminator(), + BB, BB->getFirstNonPHI(), Updater->VRC, Updater->MRI, Updater->TII); return NewDef->getOperand(0).getReg(); |

