[llvm] r362158 - [MIR-Canon] Fixing case where MachineFunction is empty.

Puyan Lotfi via llvm-commits llvm-commits at lists.llvm.org
Thu May 30 14:37:25 PDT 2019


Author: zer0
Date: Thu May 30 14:37:25 2019
New Revision: 362158

URL: http://llvm.org/viewvc/llvm-project?rev=362158&view=rev
Log:
[MIR-Canon] Fixing case where MachineFunction is empty.

In cases where the machine function is empty: bail on the RPO traversal.

Differential Revision: https://reviews.llvm.org/D62617


Added:
    llvm/trunk/test/CodeGen/MIR/AArch64/empty-MF.mir
Modified:
    llvm/trunk/lib/CodeGen/MIRCanonicalizerPass.cpp

Modified: llvm/trunk/lib/CodeGen/MIRCanonicalizerPass.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MIRCanonicalizerPass.cpp?rev=362158&r1=362157&r2=362158&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MIRCanonicalizerPass.cpp (original)
+++ llvm/trunk/lib/CodeGen/MIRCanonicalizerPass.cpp Thu May 30 14:37:25 2019
@@ -104,6 +104,8 @@ INITIALIZE_PASS_END(MIRCanonicalizer, "m
                     "Rename Register Operands Canonically", false, false)
 
 static std::vector<MachineBasicBlock *> GetRPOList(MachineFunction &MF) {
+  if (MF.empty())
+    return {};
   ReversePostOrderTraversal<MachineBasicBlock *> RPOT(&*MF.begin());
   std::vector<MachineBasicBlock *> RPOList;
   for (auto MBB : RPOT) {

Added: llvm/trunk/test/CodeGen/MIR/AArch64/empty-MF.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MIR/AArch64/empty-MF.mir?rev=362158&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/MIR/AArch64/empty-MF.mir (added)
+++ llvm/trunk/test/CodeGen/MIR/AArch64/empty-MF.mir Thu May 30 14:37:25 2019
@@ -0,0 +1,11 @@
+# RUN: llc -mtriple aarch64-- -run-pass mir-canonicalizer %s -o - | FileCheck %s
+# CHECK: ...
+# CHECK-NEXT: ---
+# CHECK-NEXT: name:            foo
+# CHECK: body:             |
+# CHECK-EMPTY:
+# CHECK-NEXT: ...
+---
+name: foo
+body:             |
+...




More information about the llvm-commits mailing list