[llvm] AMDGPU: Fix temporal divergence introduced by machine-sink and performance regression introduced by D155343 (PR #67456)

Nicolai Hähnle via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 4 12:45:34 PDT 2023


================
@@ -734,6 +735,8 @@ bool MachineSinking::runOnMachineFunction(MachineFunction &MF) {
 
         MadeChange = true;
         ++NumSplit;
+        CI->clear();
+        CI->compute(MF);
----------------
nhaehnle wrote:

Thanks. Please take a note to improve compile-time further as a separate follow-up change. Basically, it should be possible to update cycle-info when splitting a critical edge without recomputing the whole thing (adding an `onEdgeSplit` method like for MBFI).

I haven't thought about it too deeply, but I think what it boils down to is that the new basic block is a member of least cycle containing both the source and the destination of the critical edge.

https://github.com/llvm/llvm-project/pull/67456


More information about the llvm-commits mailing list