@@ -453,8 +453,8 @@ class FrontendGenImpl {
453
453
}
454
454
455
455
// Generate a string vector from the dimParams option string
456
- void getInputDimParamsVecFromOption (std::string optionStr,
457
- SmallVector< std::string> ¶mStrVec , std::string ¶mStrForAllArgs) {
456
+ void getInputDimParamsMapFromOption (std::string optionStr,
457
+ std::map< int , std::string> ¶mStrMap , std::string ¶mStrForAllArgs) {
458
458
std::stringstream paramStrStream (optionStr);
459
459
std::string dimParamStr;
460
460
while (std::getline (paramStrStream, dimParamStr, ' |' )) {
@@ -466,9 +466,7 @@ class FrontendGenImpl {
466
466
if (idx < 0 ) // set all arguments
467
467
paramStrForAllArgs = dimParamStr;
468
468
else {
469
- while ((int )paramStrVec.size () <= idx) // Expand paramStrVec
470
- paramStrVec.emplace_back (" " );
471
- paramStrVec[idx] = dimParamStr;
469
+ paramStrMap[idx] = dimParamStr;
472
470
}
473
471
}
474
472
return ;
@@ -514,9 +512,9 @@ class FrontendGenImpl {
514
512
// See https://github.com/onnx/onnx/blob/main/docs/IR.md for more
515
513
// information about dim_param.
516
514
llvm::SmallVector<std::string, 4 > inputDimParams, outputDimParams;
517
- llvm::SmallVector< std::string> inputDimParamsFromOption;
515
+ std::map< int , std::string> inputDimParamsFromOption;
518
516
std::string inputDimParamsFromOptionForAllArgs;
519
- getInputDimParamsVecFromOption (options_.dimParams , inputDimParamsFromOption,
517
+ getInputDimParamsMapFromOption (options_.dimParams , inputDimParamsFromOption,
520
518
inputDimParamsFromOptionForAllArgs);
521
519
522
520
// Import the input tensor types that are not constant and not initialized.
@@ -532,8 +530,8 @@ class FrontendGenImpl {
532
530
// option OR all dimensions in the original onnx model. Dimensions
533
531
// from the option and the model in a single input tensor are not
534
532
// merged.
535
- if (inputIndex < ( int ) inputDimParamsFromOption.size () &&
536
- ! inputDimParamsFromOption[inputIndex]. empty ())
533
+ if (inputDimParamsFromOption.find (inputIndex) !=
534
+ inputDimParamsFromOption. end ())
537
535
inputDimParams.emplace_back (inputDimParamsFromOption[inputIndex]);
538
536
else if (!inputDimParamsFromOptionForAllArgs.empty ())
539
537
inputDimParams.emplace_back (inputDimParamsFromOptionForAllArgs);
0 commit comments