Ignore:
Timestamp:
May 23, 2015, 8:54:44 AM (4 years ago)
Author:
cameron
Message:

Updating to LLVM 3.6

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/llvm-3.5.0.src/lib/Target/Mips/MipsSEISelLowering.cpp

    r4279 r4574  
    1212//===----------------------------------------------------------------------===//
    1313#include "MipsSEISelLowering.h"
     14#include "MipsMachineFunction.h"
    1415#include "MipsRegisterInfo.h"
    1516#include "MipsTargetMachine.h"
     
    3536                                            "counterparts"));
    3637
    37 MipsSETargetLowering::MipsSETargetLowering(MipsTargetMachine &TM,
     38MipsSETargetLowering::MipsSETargetLowering(const MipsTargetMachine &TM,
    3839                                           const MipsSubtarget &STI)
    3940    : MipsTargetLowering(TM, STI) {
     
    4647  if (Subtarget.hasDSP() || Subtarget.hasMSA()) {
    4748    // Expand all truncating stores and extending loads.
    48     unsigned FirstVT = (unsigned)MVT::FIRST_VECTOR_VALUETYPE;
    49     unsigned LastVT = (unsigned)MVT::LAST_VECTOR_VALUETYPE;
    50 
    51     for (unsigned VT0 = FirstVT; VT0 <= LastVT; ++VT0) {
    52       for (unsigned VT1 = FirstVT; VT1 <= LastVT; ++VT1)
    53         setTruncStoreAction((MVT::SimpleValueType)VT0,
    54                             (MVT::SimpleValueType)VT1, Expand);
    55 
    56       setLoadExtAction(ISD::SEXTLOAD, (MVT::SimpleValueType)VT0, Expand);
    57       setLoadExtAction(ISD::ZEXTLOAD, (MVT::SimpleValueType)VT0, Expand);
    58       setLoadExtAction(ISD::EXTLOAD, (MVT::SimpleValueType)VT0, Expand);
     49    for (MVT VT0 : MVT::vector_valuetypes()) {
     50      for (MVT VT1 : MVT::vector_valuetypes()) {
     51        setTruncStoreAction(VT0, VT1, Expand);
     52        setLoadExtAction(ISD::SEXTLOAD, VT0, VT1, Expand);
     53        setLoadExtAction(ISD::ZEXTLOAD, VT0, VT1, Expand);
     54        setLoadExtAction(ISD::EXTLOAD, VT0, VT1, Expand);
     55      }
    5956    }
    6057  }
     
    128125    setOperationAction(ISD::MULHS,            MVT::i64, Custom);
    129126    setOperationAction(ISD::MULHU,            MVT::i64, Custom);
     127    setOperationAction(ISD::SDIVREM,          MVT::i64, Custom);
     128    setOperationAction(ISD::UDIVREM,          MVT::i64, Custom);
    130129  }
    131130
     
    135134  setOperationAction(ISD::SDIVREM, MVT::i32, Custom);
    136135  setOperationAction(ISD::UDIVREM, MVT::i32, Custom);
    137   setOperationAction(ISD::SDIVREM, MVT::i64, Custom);
    138   setOperationAction(ISD::UDIVREM, MVT::i64, Custom);
    139136  setOperationAction(ISD::ATOMIC_FENCE,       MVT::Other, Custom);
    140137  setOperationAction(ISD::LOAD,               MVT::i32, Custom);
     
    228225
    229226const MipsTargetLowering *
    230 llvm::createMipsSETargetLowering(MipsTargetMachine &TM,
     227llvm::createMipsSETargetLowering(const MipsTargetMachine &TM,
    231228                                 const MipsSubtarget &STI) {
    232229  return new MipsSETargetLowering(TM, STI);
     
    330327
    331328bool
    332 MipsSETargetLowering::allowsUnalignedMemoryAccesses(EVT VT,
    333                                                     unsigned,
    334                                                     bool *Fast) const {
     329MipsSETargetLowering::allowsMisalignedMemoryAccesses(EVT VT,
     330                                                     unsigned,
     331                                                     unsigned,
     332                                                     bool *Fast) const {
    335333  MVT::SimpleValueType SVT = VT.getSimpleVT().SimpleTy;
    336334
     
    578576        Log2 == ExtendTySize) {
    579577      SDValue Ops[] = { Op0->getOperand(0), Op0->getOperand(1), Op0Op2 };
    580       DAG.MorphNodeTo(Op0.getNode(), MipsISD::VEXTRACT_ZEXT_ELT,
    581                       Op0->getVTList(),
    582                       makeArrayRef(Ops, Op0->getNumOperands()));
    583       return Op0;
     578      return DAG.getNode(MipsISD::VEXTRACT_ZEXT_ELT, SDLoc(Op0),
     579                         Op0->getVTList(),
     580                         makeArrayRef(Ops, Op0->getNumOperands()));
    584581    }
    585582  }
     
    923920        SDValue Ops[] = { Op0Op0->getOperand(0), Op0Op0->getOperand(1),
    924921                          Op0Op0->getOperand(2) };
    925         DAG.MorphNodeTo(Op0Op0.getNode(), MipsISD::VEXTRACT_SEXT_ELT,
    926                         Op0Op0->getVTList(),
    927                         makeArrayRef(Ops, Op0Op0->getNumOperands()));
    928         return Op0Op0;
     922        return DAG.getNode(MipsISD::VEXTRACT_SEXT_ELT, SDLoc(Op0Op0),
     923                           Op0Op0->getVTList(),
     924                           makeArrayRef(Ops, Op0Op0->getNumOperands()));
    929925      }
    930926    }
     
    11681164}
    11691165
    1170 bool MipsSETargetLowering::
    1171 isEligibleForTailCallOptimization(const MipsCC &MipsCCInfo,
    1172                                   unsigned NextStackOffset,
    1173                                   const MipsFunctionInfo& FI) const {
     1166bool MipsSETargetLowering::isEligibleForTailCallOptimization(
     1167    const CCState &CCInfo, unsigned NextStackOffset,
     1168    const MipsFunctionInfo &FI) const {
    11741169  if (!EnableMipsTailCalls)
    11751170    return false;
    11761171
    11771172  // Return false if either the callee or caller has a byval argument.
    1178   if (MipsCCInfo.hasByValArg() || FI.hasByvalArg())
     1173  if (CCInfo.getInRegsParamsCount() > 0 || FI.hasByvalArg())
    11791174    return false;
    11801175
     
    11881183            std::deque< std::pair<unsigned, SDValue> > &RegsToPass,
    11891184            bool IsPICCall, bool GlobalOrExternal, bool InternalLinkage,
    1190             CallLoweringInfo &CLI, SDValue Callee, SDValue Chain) const {
     1185            bool IsCallReloc, CallLoweringInfo &CLI, SDValue Callee,
     1186            SDValue Chain) const {
    11911187  Ops.push_back(Callee);
    11921188  MipsTargetLowering::getOpndList(Ops, RegsToPass, IsPICCall, GlobalOrExternal,
    1193                                   InternalLinkage, CLI, Callee, Chain);
     1189                                  InternalLinkage, IsCallReloc, CLI, Callee,
     1190                                  Chain);
    11941191}
    11951192
     
    12471244  Chain = DAG.getStore(Chain, DL, Lo, Ptr, MachinePointerInfo(),
    12481245                       Nd.isVolatile(), Nd.isNonTemporal(), Nd.getAlignment(),
    1249                        Nd.getTBAAInfo());
     1246                       Nd.getAAInfo());
    12501247
    12511248  // i32 store to higher address.
     
    12531250  return DAG.getStore(Chain, DL, Hi, Ptr, MachinePointerInfo(),
    12541251                      Nd.isVolatile(), Nd.isNonTemporal(),
    1255                       std::min(Nd.getAlignment(), 4U), Nd.getTBAAInfo());
     1252                      std::min(Nd.getAlignment(), 4U), Nd.getAAInfo());
    12561253}
    12571254
     
    27472744
    27482745  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    2749   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     2746  const TargetInstrInfo *TII =
     2747      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    27502748  const TargetRegisterClass *RC = &Mips::GPR32RegClass;
    27512749  DebugLoc DL = MI->getDebugLoc();
     
    28122810
    28132811  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    2814   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     2812  const TargetInstrInfo *TII =
     2813      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    28152814  const TargetRegisterClass *RC = &Mips::GPR32RegClass;
    28162815  DebugLoc DL = MI->getDebugLoc();
     
    28732872MachineBasicBlock * MipsSETargetLowering::
    28742873emitCOPY_FW(MachineInstr *MI, MachineBasicBlock *BB) const{
    2875   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     2874  const TargetInstrInfo *TII =
     2875      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    28762876  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    28772877  DebugLoc DL = MI->getDebugLoc();
     
    29072907  assert(Subtarget.isFP64bit());
    29082908
    2909   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     2909  const TargetInstrInfo *TII =
     2910      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    29102911  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    29112912  unsigned Fd  = MI->getOperand(0).getReg();
     
    29362937MipsSETargetLowering::emitINSERT_FW(MachineInstr *MI,
    29372938                                    MachineBasicBlock *BB) const {
    2938   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     2939  const TargetInstrInfo *TII =
     2940      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    29392941  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    29402942  DebugLoc DL = MI->getDebugLoc();
     
    29702972  assert(Subtarget.isFP64bit());
    29712973
    2972   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     2974  const TargetInstrInfo *TII =
     2975      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    29732976  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    29742977  DebugLoc DL = MI->getDebugLoc();
     
    30183021                                         unsigned EltSizeInBytes,
    30193022                                         bool IsFP) const {
    3020   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     3023  const TargetInstrInfo *TII =
     3024      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    30213025  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    30223026  DebugLoc DL = MI->getDebugLoc();
     
    31283132MipsSETargetLowering::emitFILL_FW(MachineInstr *MI,
    31293133                                  MachineBasicBlock *BB) const {
    3130   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     3134  const TargetInstrInfo *TII =
     3135      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    31313136  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    31323137  DebugLoc DL = MI->getDebugLoc();
     
    31593164  assert(Subtarget.isFP64bit());
    31603165
    3161   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     3166  const TargetInstrInfo *TII =
     3167      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    31623168  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    31633169  DebugLoc DL = MI->getDebugLoc();
     
    31873193MipsSETargetLowering::emitFEXP2_W_1(MachineInstr *MI,
    31883194                                    MachineBasicBlock *BB) const {
    3189   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     3195  const TargetInstrInfo *TII =
     3196      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    31903197  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    31913198  const TargetRegisterClass *RC = &Mips::MSA128WRegClass;
     
    32163223MipsSETargetLowering::emitFEXP2_D_1(MachineInstr *MI,
    32173224                                    MachineBasicBlock *BB) const {
    3218   const TargetInstrInfo *TII = getTargetMachine().getInstrInfo();
     3225  const TargetInstrInfo *TII =
     3226      getTargetMachine().getSubtargetImpl()->getInstrInfo();
    32193227  MachineRegisterInfo &RegInfo = BB->getParent()->getRegInfo();
    32203228  const TargetRegisterClass *RC = &Mips::MSA128DRegClass;
Note: See TracChangeset for help on using the changeset viewer.