[llvm] [AMDGPU] Detect kills in register sets when trying to form V_CMPX instructions. (PR #68293)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 5 04:48:52 PDT 2023
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 777a6e6f10b2b90496d248b7fa904fce834484be 609673d2acad5d96793e73855dba6ac83cbe9c9c -- llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp b/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
index 239bcfe5e33f..6f6ffa99d59b 100644
--- a/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
+++ b/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
@@ -48,12 +48,12 @@ class SIOptimizeExecMasking : public MachineFunctionPass {
MCRegister Reg, bool UseLiveOuts = false,
bool IgnoreStart = false) const;
bool isRegisterInUseAfter(MachineInstr &Stop, MCRegister Reg) const;
- MachineInstr *findInstrBackwards(MachineInstr &Origin,
- std::function<bool(MachineInstr *)> Pred,
- ArrayRef<MCRegister> NonModifiableRegs,
- MachineInstr *Terminator = nullptr,
- SmallVectorImpl<MachineOperand *> *KillFlagCandidates = nullptr,
- unsigned MaxInstructions = 20) const;
+ MachineInstr *findInstrBackwards(
+ MachineInstr &Origin, std::function<bool(MachineInstr *)> Pred,
+ ArrayRef<MCRegister> NonModifiableRegs,
+ MachineInstr *Terminator = nullptr,
+ SmallVectorImpl<MachineOperand *> *KillFlagCandidates = nullptr,
+ unsigned MaxInstructions = 20) const;
bool optimizeExecSequence();
void tryRecordVCmpxAndSaveexecSequence(MachineInstr &MI);
bool optimizeVCMPSaveExecSequence(MachineInstr &SaveExecInstr,
@@ -333,7 +333,7 @@ static bool isLiveOut(const MachineBasicBlock &MBB, unsigned Reg) {
// registers given in NonModifiableRegs is modified by the current instruction.
MachineInstr *SIOptimizeExecMasking::findInstrBackwards(
MachineInstr &Origin, std::function<bool(MachineInstr *)> Pred,
- ArrayRef<MCRegister> NonModifiableRegs, MachineInstr *Terminator,
+ ArrayRef<MCRegister> NonModifiableRegs, MachineInstr *Terminator,
SmallVectorImpl<MachineOperand *> *KillFlagCandidates,
unsigned MaxInstructions) const {
MachineBasicBlock::reverse_iterator A = Origin.getReverseIterator(),
@@ -355,7 +355,8 @@ MachineInstr *SIOptimizeExecMasking::findInstrBackwards(
// would not be detected by clearKillFlags, since they will cause the
// register to be dead at a later place, causing the verifier to fail.
// We use the candidates to clear the kill flags later.
- if (Terminator && KillFlagCandidates && A != Terminator && A->killsRegister(Reg, TRI)) {
+ if (Terminator && KillFlagCandidates && A != Terminator &&
+ A->killsRegister(Reg, TRI)) {
for (MachineOperand &MO : A->operands()) {
if (MO.isReg() && MO.isKill()) {
Register Candidate = MO.getReg();
``````````
</details>
https://github.com/llvm/llvm-project/pull/68293
More information about the llvm-commits
mailing list