[PATCH] D129208: [MachineVerifier] Try harder to verify LiveIntervals

Jay Foad via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 6 08:04:35 PDT 2022


foad added inline comments.


================
Comment at: llvm/test/CodeGen/AMDGPU/si-lower-control-flow.mir:33
   ; GCN-NEXT:   [[S_AND_B64_:%[0-9]+]]:sreg_64 = S_AND_B64 [[COPY]], undef %1:sreg_64, implicit-def dead $scc
-  ; GCN-NEXT:   [[S_XOR_B64_:%[0-9]+]]:sreg_64 = S_XOR_B64 [[S_AND_B64_]], [[COPY]], implicit-def dead $scc
-  ; GCN-NEXT:   $exec = S_MOV_B64_term killed [[S_AND_B64_]]
+  ; GCN-NEXT:   dead %0:sreg_64 = S_XOR_B64 [[S_AND_B64_]], [[COPY]], implicit-def dead $scc
+  ; GCN-NEXT:   $exec = S_MOV_B64_term [[S_AND_B64_]]
----------------
This is a side effect of LiveIntervals being available when SILowerControlFlow runs.

SILowerControlFlow says:
```
  // This doesn't actually need LiveIntervals, but we can preserve them.
  LIS = getAnalysisIfAvailable<LiveIntervals>();
```
but in fact the presence of LiveIntervals does affect the output as shown by these diffs, so the perhaps the pass should call AU.addUsedIfAvailable<LiveIntervals>() in its getAnalysisUsage?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D129208/new/

https://reviews.llvm.org/D129208



More information about the llvm-commits mailing list