Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/AMDGPU/GCNDPPCombine.cpp
Show First 20 Lines • Show All 551 Lines • ▼ Show 20 Lines | bool GCNDPPCombine::runOnMachineFunction(MachineFunction &MF) { | ||||
bool Changed = false; | bool Changed = false; | ||||
for (auto &MBB : MF) { | for (auto &MBB : MF) { | ||||
for (auto I = MBB.rbegin(), E = MBB.rend(); I != E;) { | for (auto I = MBB.rbegin(), E = MBB.rend(); I != E;) { | ||||
auto &MI = *I++; | auto &MI = *I++; | ||||
if (MI.getOpcode() == AMDGPU::V_MOV_B32_dpp && combineDPPMov(MI)) { | if (MI.getOpcode() == AMDGPU::V_MOV_B32_dpp && combineDPPMov(MI)) { | ||||
Changed = true; | Changed = true; | ||||
++NumDPPMovsCombined; | ++NumDPPMovsCombined; | ||||
} else if (MI.getOpcode() == AMDGPU::V_MOV_B64_DPP_PSEUDO) { | |||||
auto Split = TII->expandMovDPP64(MI); | |||||
for (auto M : { Split.first, Split.second }) { | |||||
if (combineDPPMov(*M)) | |||||
++NumDPPMovsCombined; | |||||
} | |||||
Changed = true; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
return Changed; | return Changed; | ||||
} | } | ||||
vpykhtin: Changed should depend on the Split done. |
Changed should depend on the Split done.