diff options
author | Christudasan Devadasan <christudasan.devadasan@amd.com> | 2023-11-16 10:30:03 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-16 10:30:03 +0530 |
commit | ce7fd498ed91344c23f0864bbd5b84d65eaae3ef (patch) | |
tree | 0d297ede1e4b78147282db94e2e169eaf97cbabc /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | e8fc282ff26b4d1d71a316bf036fc486b420ea19 (diff) | |
download | llvm-ce7fd498ed91344c23f0864bbd5b84d65eaae3ef.zip llvm-ce7fd498ed91344c23f0864bbd5b84d65eaae3ef.tar.gz llvm-ce7fd498ed91344c23f0864bbd5b84d65eaae3ef.tar.bz2 |
[AMDGPU] RA inserted scalar instructions can be at the BB top (#72140)
We adjust the insertion point at the BB top for spills/copies during RA
to ensure they are placed after the exec restore instructions required
for the divergent control flow execution. This is, however, required
only for the vector operations. The insertions for scalar registers can
still go to the BB top.
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineBasicBlock.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp index d9e2268..4410fb7 100644 --- a/llvm/lib/CodeGen/MachineBasicBlock.cpp +++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp @@ -223,13 +223,13 @@ MachineBasicBlock::SkipPHIsAndLabels(MachineBasicBlock::iterator I) { MachineBasicBlock::iterator MachineBasicBlock::SkipPHIsLabelsAndDebug(MachineBasicBlock::iterator I, - bool SkipPseudoOp) { + Register Reg, bool SkipPseudoOp) { const TargetInstrInfo *TII = getParent()->getSubtarget().getInstrInfo(); iterator E = end(); while (I != E && (I->isPHI() || I->isPosition() || I->isDebugInstr() || (SkipPseudoOp && I->isPseudoProbe()) || - TII->isBasicBlockPrologue(*I))) + TII->isBasicBlockPrologue(*I, Reg))) ++I; // FIXME: This needs to change if we wish to bundle labels / dbg_values // inside the bundle. |