[llvm-commits] [llvm] r170673 - in /llvm/trunk/lib/Target/Mips: Mips16RegisterInfo.cpp MipsInstrInfo.td

Hal Finkel hfinkel at anl.gov
Thu Dec 20 06:08:20 PST 2012


----- Original Message -----
> From: "Reed Kotler" <rkotler at mips.com>
> To: llvm-commits at cs.uiuc.edu
> Sent: Thursday, December 20, 2012 12:57:00 AM
> Subject: [llvm-commits] [llvm] r170673 - in /llvm/trunk/lib/Target/Mips: Mips16RegisterInfo.cpp MipsInstrInfo.td
> 
> Author: rkotler
> Date: Thu Dec 20 00:57:00 2012
> New Revision: 170673
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=170673&view=rev
> Log:
> There is one more patch to finish large frames. Make sure we assert
> on code that has large frames which will not yet compile correctly.
> 
> 
> Modified:
>     llvm/trunk/lib/Target/Mips/Mips16RegisterInfo.cpp
>     llvm/trunk/lib/Target/Mips/MipsInstrInfo.td
> 
> Modified: llvm/trunk/lib/Target/Mips/Mips16RegisterInfo.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/Mips16RegisterInfo.cpp?rev=170673&r1=170672&r2=170673&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/Mips16RegisterInfo.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/Mips16RegisterInfo.cpp Thu Dec 20
> 00:57:00 2012
> @@ -146,6 +146,10 @@
>  
>    DEBUG(errs() << "Offset     : " << Offset << "\n" <<
>    "<--------->\n");
>  
> +  if (!MI.isDebugValue() && ( ((FrameReg != Mips::SP) &&
> !isInt<16>(Offset)) ||
> +      ((FrameReg == Mips::SP) && !isInt<15>(Offset)) )) {
> +    assert(false && "frame offset does not fit in instruction");

use llvm_unreachable here.

 -Hal

> +  }
>    MI.getOperand(OpNo).ChangeToRegister(FrameReg, false);
>    MI.getOperand(OpNo + 1).ChangeToImmediate(Offset);
>  
> 
> Modified: llvm/trunk/lib/Target/Mips/MipsInstrInfo.td
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MipsInstrInfo.td?rev=170673&r1=170672&r2=170673&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MipsInstrInfo.td (original)
> +++ llvm/trunk/lib/Target/Mips/MipsInstrInfo.td Thu Dec 20 00:57:00
> 2012
> @@ -298,6 +298,10 @@
>  // e.g. addi, andi
>  def immSExt16  : PatLeaf<(imm), [{ return
>  isInt<16>(N->getSExtValue()); }]>;
>  
> +// Node immediate fits as 15-bit sign extended on target immediate.
> +// e.g. addi, andi
> +def immSExt15  : PatLeaf<(imm), [{ return
> isInt<15>(N->getSExtValue()); }]>;
> +
>  // Node immediate fits as 16-bit zero extended on target immediate.
>  // The LO16 param means that only the lower 16 bits of the node
>  // immediate are caught.
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-- 
Hal Finkel
Postdoctoral Appointee
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-commits mailing list