@@ -8390,12 +8390,7 @@ SDValue RISCVTargetLowering::lowerINIT_TRAMPOLINE(SDValue Op,
83908390 return Encoding;
83918391 };
83928392
8393- SDValue OutChains[6];
8394- SDValue OutChainsLPAD[7];
8395- if (HasCFBranch)
8396- assert(std::size(OutChainsLPAD) == StaticChainIdx + 2);
8397- else
8398- assert(std::size(OutChains) == StaticChainIdx + 2);
8393+ SmallVector<SDValue> OutChains;
83998394
84008395 SmallVector<uint32_t> Encodings;
84018396 if (!HasCFBranch) {
@@ -8451,16 +8446,14 @@ SDValue RISCVTargetLowering::lowerINIT_TRAMPOLINE(SDValue Op,
84518446 .addImm(0))});
84528447 }
84538448
8454- SDValue *OutChainsUsed = HasCFBranch ? OutChainsLPAD : OutChains;
8455-
84568449 // Store encoded instructions.
84578450 for (auto [Idx, Encoding] : llvm::enumerate(Encodings)) {
84588451 SDValue Addr = Idx > 0 ? DAG.getNode(ISD::ADD, dl, MVT::i64, Trmp,
84598452 DAG.getConstant(Idx * 4, dl, MVT::i64))
84608453 : Trmp;
8461- OutChainsUsed[Idx] = DAG.getTruncStore(
8454+ OutChains.push_back( DAG.getTruncStore(
84628455 Root, dl, DAG.getConstant(Encoding, dl, MVT::i64), Addr,
8463- MachinePointerInfo(TrmpAddr, Idx * 4), MVT::i32);
8456+ MachinePointerInfo(TrmpAddr, Idx * 4), MVT::i32)) ;
84648457 }
84658458
84668459 // Now store the variable part of the trampoline.
@@ -8476,21 +8469,16 @@ SDValue RISCVTargetLowering::lowerINIT_TRAMPOLINE(SDValue Op,
84768469 {StaticChainOffset, StaticChain},
84778470 {FunctionAddressOffset, FunctionAddress},
84788471 };
8479- for (auto [Idx, OffsetValue] : llvm::enumerate( OffsetValues) ) {
8472+ for (auto & OffsetValue : OffsetValues) {
84808473 SDValue Addr =
84818474 DAG.getNode(ISD::ADD, dl, MVT::i64, Trmp,
84828475 DAG.getConstant(OffsetValue.Offset, dl, MVT::i64));
84838476 OffsetValue.Addr = Addr;
8484- OutChainsUsed[Idx + StaticChainIdx] =
8485- DAG.getStore(Root, dl, OffsetValue.Value, Addr,
8486- MachinePointerInfo(TrmpAddr, OffsetValue.Offset));
8477+ OutChains.push_back(DAG.getStore(Root, dl, OffsetValue.Value, Addr,
8478+ MachinePointerInfo(TrmpAddr, OffsetValue.Offset)));
84878479 }
84888480
8489- SDValue StoreToken;
8490- if (HasCFBranch)
8491- StoreToken = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, OutChainsLPAD);
8492- else
8493- StoreToken = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, OutChains);
8481+ SDValue StoreToken = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, OutChains);
84948482
84958483 // The end of instructions of trampoline is the same as the static chain
84968484 // address that we computed earlier.
0 commit comments