[PATCH] R600/SI: Fix verifier error with pseudo store instructions.

Tom Stellard tom at stellard.net
Wed Apr 30 15:00:20 PDT 2014


On Wed, Apr 30, 2014 at 09:52:16PM +0000, Matt Arsenault wrote:
> Use i32 instead of specifying SReg_32. When this is 
> the pseudo INDIRECT_BASE_ADDR, this would give a bogus
> verifier error.
> 
> No test since I for some reason haven't reproduced this on trunk without a set of patches that I've been working on.
> 

Does this allow you to enable the -verify-machineinstrs flag for these tests:

LLVM :: CodeGen/R600/array-ptr-calc-i32.ll
LLVM :: CodeGen/R600/insert_vector_elt.ll
LLVM :: CodeGen/R600/private-memory.ll

-Tom


> http://reviews.llvm.org/D3577
> 
> Files:
>   lib/Target/R600/SIInstrInfo.td
> 
> Index: lib/Target/R600/SIInstrInfo.td
> ===================================================================
> --- lib/Target/R600/SIInstrInfo.td
> +++ lib/Target/R600/SIInstrInfo.td
> @@ -137,7 +137,7 @@
>  }]>;
>  
>  def FRAMEri32 : Operand<iPTR> {
> -  let MIOperandInfo = (ops SReg_32:$ptr, i32imm:$index);
> +  let MIOperandInfo = (ops i32:$ptr, i32imm:$index);
>  }
>  
>  //===----------------------------------------------------------------------===//

> Index: lib/Target/R600/SIInstrInfo.td
> ===================================================================
> --- lib/Target/R600/SIInstrInfo.td
> +++ lib/Target/R600/SIInstrInfo.td
> @@ -137,7 +137,7 @@
>  }]>;
>  
>  def FRAMEri32 : Operand<iPTR> {
> -  let MIOperandInfo = (ops SReg_32:$ptr, i32imm:$index);
> +  let MIOperandInfo = (ops i32:$ptr, i32imm:$index);
>  }
>  
>  //===----------------------------------------------------------------------===//

> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list