Skip to content

Commit 1fcca0b

Browse files
committed
Use std::map instead of SmallVector for inputDimParamsFromOption in src/Builder/FrontendDialectTransformer.cpp
Signed-off-by: Yasushi Negishi <[email protected]>
1 parent 25a63f7 commit 1fcca0b

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/Builder/FrontendDialectTransformer.cpp

+7-9
Original file line numberDiff line numberDiff line change
@@ -453,8 +453,8 @@ class FrontendGenImpl {
453453
}
454454

455455
// Generate a string vector from the dimParams option string
456-
void getInputDimParamsVecFromOption(std::string optionStr,
457-
SmallVector<std::string> &paramStrVec, std::string &paramStrForAllArgs) {
456+
void getInputDimParamsMapFromOption(std::string optionStr,
457+
std::map<int, std::string> &paramStrMap, std::string &paramStrForAllArgs) {
458458
std::stringstream paramStrStream(optionStr);
459459
std::string dimParamStr;
460460
while (std::getline(paramStrStream, dimParamStr, '|')) {
@@ -466,9 +466,7 @@ class FrontendGenImpl {
466466
if (idx < 0) // set all arguments
467467
paramStrForAllArgs = dimParamStr;
468468
else {
469-
while ((int)paramStrVec.size() <= idx) // Expand paramStrVec
470-
paramStrVec.emplace_back("");
471-
paramStrVec[idx] = dimParamStr;
469+
paramStrMap[idx] = dimParamStr;
472470
}
473471
}
474472
return;
@@ -514,9 +512,9 @@ class FrontendGenImpl {
514512
// See https://github.com/onnx/onnx/blob/main/docs/IR.md for more
515513
// information about dim_param.
516514
llvm::SmallVector<std::string, 4> inputDimParams, outputDimParams;
517-
llvm::SmallVector<std::string> inputDimParamsFromOption;
515+
std::map<int, std::string> inputDimParamsFromOption;
518516
std::string inputDimParamsFromOptionForAllArgs;
519-
getInputDimParamsVecFromOption(options_.dimParams, inputDimParamsFromOption,
517+
getInputDimParamsMapFromOption(options_.dimParams, inputDimParamsFromOption,
520518
inputDimParamsFromOptionForAllArgs);
521519

522520
// Import the input tensor types that are not constant and not initialized.
@@ -532,8 +530,8 @@ class FrontendGenImpl {
532530
// option OR all dimensions in the original onnx model. Dimensions
533531
// from the option and the model in a single input tensor are not
534532
// merged.
535-
if (inputIndex < (int)inputDimParamsFromOption.size() &&
536-
!inputDimParamsFromOption[inputIndex].empty())
533+
if (inputDimParamsFromOption.find(inputIndex) !=
534+
inputDimParamsFromOption.end())
537535
inputDimParams.emplace_back(inputDimParamsFromOption[inputIndex]);
538536
else if (!inputDimParamsFromOptionForAllArgs.empty())
539537
inputDimParams.emplace_back(inputDimParamsFromOptionForAllArgs);

0 commit comments

Comments
 (0)