[PATCH] D33408: MachineCSE: Respect interblock physreg liveness
Mattias Eriksson V via llvm-commits
llvm-commits at lists.llvm.org
Wed May 24 10:09:07 PDT 2017
Hi!
This is my mistake. I apologize!
I think this is the right way to fix this:
diff --git a/test/CodeGen/MIR/Generic/machine-cse-physreg.mir b/test/CodeGen/MIR/Generic/machine-cse-physreg.mir
index 5206e89cf77..3866ef983ce 100644
--- a/test/CodeGen/MIR/Generic/machine-cse-physreg.mir
+++ b/test/CodeGen/MIR/Generic/machine-cse-physreg.mir
@@ -1,4 +1,5 @@
# RUN: llc -mtriple thumbv5e -run-pass=machine-cse -o - %s | FileCheck %s
+# REQUIRES: arm
# This is a contrived example made to expose a bug in
# MachineCSE, see PR32538.
Can someone commit this for me (or revert)? I don't have commit access yet.
--
Mattias
On 05/24/17 18:27, Zachary Turner wrote:
> Hello, this new test fails for me.
>
> FAIL: LLVM :: CodeGen/MIR/Generic/machine-cse-physreg.mir (6862 of 20759)
> ******************** TEST 'LLVM ::
> CodeGen/MIR/Generic/machine-cse-physreg.mir' FAILED ********************
> Script:
> --
> D:/src/llvmbuild/ninja/./bin\llc.EXE -mtriple thumbv5e
> -run-pass=machine-cse -o -
> D:\src\llvm-mono\llvm\test\CodeGen\MIR\Generic\machine-cse-physreg.mir |
> D:/src/llvmbuild/ninja/./bin\FileCheck.EXE
> D:\src\llvm-mono\llvm\test\CodeGen\MIR\Generic\machine-cse-physreg.mir
> --
> Exit Code: 2
>
> Command Output (stdout):
> --
> $ "D:/src/llvmbuild/ninja/./bin\llc.EXE" "-mtriple" "thumbv5e"
> "-run-pass=machine-cse" "-o" "-"
> "D:\src\llvm-mono\llvm\test\CodeGen\MIR\Generic\machine-cse-physreg.mir"
> # command stderr:
> D:/src/llvmbuild/ninja/./bin\llc.EXE: : error: unable to get target for
> 'thumbv5e', see --version and --triple.
>
> error: command failed with exit status: 1
> $ "D:/src/llvmbuild/ninja/./bin\FileCheck.EXE"
> "D:\src\llvm-mono\llvm\test\CodeGen\MIR\Generic\machine-cse-physreg.mir"
> # command stderr:
> FileCheck error: '-' is empty.
> FileCheck command line: D:/src/llvmbuild/ninja/./bin\FileCheck.EXE
> D:\src\llvm-mono\llvm\test\CodeGen\MIR\Generic\machine-cse-physreg.mir
>
> error: command failed with exit status: 2
>
> --
>
> I compile with LLVM_TARGETS_TO_BUILD=X86. It looks like perhaps this
> test assumes that thumb target is available? Can you please fix the
> test to not fail when the appropriate target is not available?
>
> On Wed, May 24, 2017 at 2:35 AM Mikael Holmén via Phabricator via
> llvm-commits <llvm-commits at lists.llvm.org
> <mailto:llvm-commits at lists.llvm.org>> wrote:
>
> This revision was automatically updated to reflect the committed
> changes.
> Closed by commit rL303731: MachineCSE: Respect interblock physreg
> liveness (authored by uabelho).
>
> Changed prior to commit:
> https://reviews.llvm.org/D33408?vs=99746&id=100057#toc
>
> Repository:
> rL LLVM
>
> https://reviews.llvm.org/D33408
>
> Files:
> llvm/trunk/lib/CodeGen/MachineCSE.cpp
> llvm/trunk/test/CodeGen/MIR/Generic/machine-cse-physreg.mir
>
>
> Index: llvm/trunk/test/CodeGen/MIR/Generic/machine-cse-physreg.mir
> ===================================================================
> --- llvm/trunk/test/CodeGen/MIR/Generic/machine-cse-physreg.mir
> +++ llvm/trunk/test/CodeGen/MIR/Generic/machine-cse-physreg.mir
> @@ -0,0 +1,35 @@
> +# RUN: llc -mtriple thumbv5e -run-pass=machine-cse -o - %s |
> FileCheck %s
> +
> +# This is a contrived example made to expose a bug in
> +# MachineCSE, see PR32538.
> +
> +# MachineCSE must not remove this def of %cpsr:
> +# CHECK-LABEL: bb.1:
> +# CHECK: , %cpsr = tLSLri
> +
> +...
> +---
> +name: spam
> +registers:
> + - { id: 0, class: tgpr }
> + - { id: 1, class: tgpr }
> + - { id: 2, class: tgpr }
> + - { id: 3, class: tgpr }
> +liveins:
> + - { reg: '%r0', virtual-reg: '%0' }
> +body: |
> + bb.0:
> + liveins: %r0
> + %0 = COPY %r0
> + %1, %cpsr = tLSLri %0, 2, 14, _
> + tCMPi8 %0, 5, 14, _, implicit-def %cpsr
> + tBcc %bb.8, 8, %cpsr
> +
> + bb.1:
> + %2, %cpsr = tLSLri %0, 2, 14, _
> +
> + bb.8:
> + liveins: %cpsr
> + %3 = COPY %cpsr
> + tSTRi killed %3, %0, 0, 14, _
> +...
> Index: llvm/trunk/lib/CodeGen/MachineCSE.cpp
> ===================================================================
> --- llvm/trunk/lib/CodeGen/MachineCSE.cpp
> +++ llvm/trunk/lib/CodeGen/MachineCSE.cpp
> @@ -180,8 +180,8 @@
> I = skipDebugInstructionsForward(I, E);
>
> if (I == E)
> - // Reached end of block, register is obviously dead.
> - return true;
> + // Reached end of block, we don't know if register is dead or
> not.
> + return false;
>
> bool SeenDef = false;
> for (const MachineOperand &MO : I->operands()) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list