mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Strength reduce vectors into arrays. NFCI.
This commit is contained in:
parent
331adaa4f4
commit
54b3fec3ad
@ -4205,7 +4205,7 @@ static void writeIdentificationBlock(BitstreamWriter &Stream) {
|
||||
Abbv->Add(BitCodeAbbrevOp(bitc::IDENTIFICATION_CODE_EPOCH));
|
||||
Abbv->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));
|
||||
auto EpochAbbrev = Stream.EmitAbbrev(std::move(Abbv));
|
||||
SmallVector<unsigned, 1> Vals = {bitc::BITCODE_CURRENT_EPOCH};
|
||||
constexpr std::array<unsigned, 1> Vals = {bitc::BITCODE_CURRENT_EPOCH};
|
||||
Stream.EmitRecord(bitc::IDENTIFICATION_CODE_EPOCH, Vals, EpochAbbrev);
|
||||
Stream.ExitBlock();
|
||||
}
|
||||
|
@ -3288,7 +3288,6 @@ SDValue DAGTypeLegalizer::WidenVecRes_Convert_StrictFP(SDNode *N) {
|
||||
|
||||
EVT WidenVT = TLI.getTypeToTransformTo(*DAG.getContext(), N->getValueType(0));
|
||||
unsigned WidenNumElts = WidenVT.getVectorNumElements();
|
||||
SmallVector<EVT, 2> WidenVTs = { WidenVT, MVT::Other };
|
||||
|
||||
EVT InVT = InOp.getValueType();
|
||||
EVT InEltVT = InVT.getVectorElementType();
|
||||
@ -3299,7 +3298,7 @@ SDValue DAGTypeLegalizer::WidenVecRes_Convert_StrictFP(SDNode *N) {
|
||||
|
||||
// Otherwise unroll into some nasty scalar code and rebuild the vector.
|
||||
EVT EltVT = WidenVT.getVectorElementType();
|
||||
SmallVector<EVT, 2> EltVTs = { EltVT, MVT::Other };
|
||||
std::array<EVT, 2> EltVTs = {EltVT, MVT::Other};
|
||||
SmallVector<SDValue, 16> Ops(WidenNumElts, DAG.getUNDEF(EltVT));
|
||||
SmallVector<SDValue, 32> OpChains;
|
||||
// Use the original element count so we don't do more scalar opts than
|
||||
|
@ -3637,7 +3637,7 @@ SDValue ARMTargetLowering::LowerINTRINSIC_VOID(
|
||||
unsigned Reg = MF.addLiveIn(ARM::LR, getRegClassFor(MVT::i32));
|
||||
SDValue ReturnAddress =
|
||||
DAG.getCopyFromReg(DAG.getEntryNode(), dl, Reg, PtrVT);
|
||||
std::vector<EVT> ResultTys = {MVT::Other, MVT::Glue};
|
||||
constexpr EVT ResultTys[] = {MVT::Other, MVT::Glue};
|
||||
SDValue Callee =
|
||||
DAG.getTargetExternalSymbol("\01__gnu_mcount_nc", PtrVT, 0);
|
||||
SDValue RegisterMask = DAG.getRegisterMask(Mask);
|
||||
|
@ -2201,29 +2201,29 @@ void HexagonDAGToDAGISel::SelectHVXDualOutput(SDNode *N) {
|
||||
SDNode *Result;
|
||||
switch (IID) {
|
||||
case Intrinsic::hexagon_V6_vaddcarry: {
|
||||
SmallVector<SDValue, 3> Ops = { N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3) };
|
||||
std::array<SDValue, 3> Ops = {N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3)};
|
||||
SDVTList VTs = CurDAG->getVTList(MVT::v16i32, MVT::v512i1);
|
||||
Result = CurDAG->getMachineNode(Hexagon::V6_vaddcarry, SDLoc(N), VTs, Ops);
|
||||
break;
|
||||
}
|
||||
case Intrinsic::hexagon_V6_vaddcarry_128B: {
|
||||
SmallVector<SDValue, 3> Ops = { N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3) };
|
||||
std::array<SDValue, 3> Ops = {N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3)};
|
||||
SDVTList VTs = CurDAG->getVTList(MVT::v32i32, MVT::v1024i1);
|
||||
Result = CurDAG->getMachineNode(Hexagon::V6_vaddcarry, SDLoc(N), VTs, Ops);
|
||||
break;
|
||||
}
|
||||
case Intrinsic::hexagon_V6_vsubcarry: {
|
||||
SmallVector<SDValue, 3> Ops = { N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3) };
|
||||
std::array<SDValue, 3> Ops = {N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3)};
|
||||
SDVTList VTs = CurDAG->getVTList(MVT::v16i32, MVT::v512i1);
|
||||
Result = CurDAG->getMachineNode(Hexagon::V6_vsubcarry, SDLoc(N), VTs, Ops);
|
||||
break;
|
||||
}
|
||||
case Intrinsic::hexagon_V6_vsubcarry_128B: {
|
||||
SmallVector<SDValue, 3> Ops = { N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3) };
|
||||
std::array<SDValue, 3> Ops = {N->getOperand(1), N->getOperand(2),
|
||||
N->getOperand(3)};
|
||||
SDVTList VTs = CurDAG->getVTList(MVT::v32i32, MVT::v1024i1);
|
||||
Result = CurDAG->getMachineNode(Hexagon::V6_vsubcarry, SDLoc(N), VTs, Ops);
|
||||
break;
|
||||
|
@ -376,7 +376,7 @@ static bool CheckXWPInstr(MachineInstr *MI, bool ReduceToLwp,
|
||||
|
||||
// Returns true if the registers Reg1 and Reg2 are consecutive
|
||||
static bool ConsecutiveRegisters(unsigned Reg1, unsigned Reg2) {
|
||||
static SmallVector<unsigned, 31> Registers = {
|
||||
constexpr std::array<unsigned, 31> Registers = {
|
||||
Mips::AT, Mips::V0, Mips::V1, Mips::A0, Mips::A1, Mips::A2, Mips::A3,
|
||||
Mips::T0, Mips::T1, Mips::T2, Mips::T3, Mips::T4, Mips::T5, Mips::T6,
|
||||
Mips::T7, Mips::S0, Mips::S1, Mips::S2, Mips::S3, Mips::S4, Mips::S5,
|
||||
|
@ -688,9 +688,9 @@ bool WebAssemblyLowerEmscriptenEHSjLj::runOnModule(Module &M) {
|
||||
if (SetjmpF) {
|
||||
// Register saveSetjmp function
|
||||
FunctionType *SetjmpFTy = SetjmpF->getFunctionType();
|
||||
SmallVector<Type *, 4> Params = {SetjmpFTy->getParamType(0),
|
||||
IRB.getInt32Ty(), Type::getInt32PtrTy(C),
|
||||
IRB.getInt32Ty()};
|
||||
std::array<Type *, 4> Params = {SetjmpFTy->getParamType(0),
|
||||
IRB.getInt32Ty(), Type::getInt32PtrTy(C),
|
||||
IRB.getInt32Ty()};
|
||||
FunctionType *FTy =
|
||||
FunctionType::get(Type::getInt32PtrTy(C), Params, false);
|
||||
SaveSetjmpF =
|
||||
|
@ -868,7 +868,7 @@ public:
|
||||
int getExternalUsesCost(const std::pair<Value *, int> &LHS,
|
||||
const std::pair<Value *, int> &RHS) {
|
||||
int Cost = 0;
|
||||
SmallVector<std::pair<Value *, int>, 2> Values = {LHS, RHS};
|
||||
std::array<std::pair<Value *, int>, 2> Values = {LHS, RHS};
|
||||
for (int Idx = 0, IdxE = Values.size(); Idx != IdxE; ++Idx) {
|
||||
Value *V = Values[Idx].first;
|
||||
// Calculate the absolute lane, using the minimum relative lane of LHS
|
||||
|
Loading…
Reference in New Issue
Block a user