gemini-code-assist[bot] commented on code in PR #18784:
URL: https://github.com/apache/tvm/pull/18784#discussion_r2809784579


##########
src/relax/backend/contrib/nnapi/codegen.cc:
##########
@@ -60,20 +60,16 @@ class CollectFromCompositeFunctionBody : public ExprVisitor 
{
         axes.push_back(std::to_string(axis.IntValue()));
       }
 
-      std::vector<std::any> axes_attr;
-      axes_attr.emplace_back(axes);
-      node_->SetAttr("axes", axes_attr);
+      node_->SetAttr("axes", axes);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   The `SetAttr` method now expects an `ffi::Array<ffi::String>`, but `axes` is 
of type `std::vector<std::string>`. This will cause a compilation error. Please 
change the type of `axes` to `ffi::Array<ffi::String>`.



##########
src/runtime/contrib/arm_compute_lib/acl_runtime.cc:
##########
@@ -309,14 +309,14 @@ class ACLRuntime : public JSONRuntimeBase {
   void CreateDepthwiseConvolution2DLayer(
       CachedLayer* layer, const JSONGraphNode& node,
       const std::shared_ptr<arm_compute::MemoryManagerOnDemand>& mm) {
-    std::vector<std::string> padding = 
node.GetAttr<std::vector<std::string>>("padding");
-    std::vector<std::string> strides = 
node.GetAttr<std::vector<std::string>>("strides");
-    std::vector<std::string> dilation = 
node.GetAttr<std::vector<std::string>>("dilation");
+    auto padding = node.GetAttr<ffi::Array<ffi::String>>("padding");
+    auto strides = node.GetAttr<ffi::Array<ffi::String>>("strides");
+    auto dilation = node.GetAttr<ffi::Array<ffi::String>>("dilation");
     arm_compute::PadStrideInfo pad_stride_info = MakeACLPadStride(padding, 
strides);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `MakeACLPadStride` expects `std::vector<std::string>` arguments, but 
`padding` and `strides` are `ffi::Array<ffi::String>`. This will cause a 
compilation error. Please convert them before calling the function.



##########
src/relax/backend/contrib/nnapi/codegen.cc:
##########
@@ -122,17 +114,9 @@ class CollectFromCompositeFunctionBody : public 
ExprVisitor {
     const int group_val = conv2d_attr->groups;
     groups.push_back(std::to_string(group_val));
 
-    std::vector<std::any> strides_attr;
-    strides_attr.emplace_back(strides);
-    node_->SetAttr("strides", strides_attr);
-
-    std::vector<std::any> padding_attr;
-    padding_attr.emplace_back(padding);
-    node_->SetAttr("padding", padding_attr);
-
-    std::vector<std::any> group_attr;
-    group_attr.emplace_back(groups);
-    node_->SetAttr("group", group_attr);
+    node_->SetAttr("strides", strides);
+    node_->SetAttr("padding", padding);
+    node_->SetAttr("group", groups);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   The `SetAttr` method now expects an `ffi::Array<ffi::String>`, but 
`strides`, `padding`, and `groups` are of type `std::vector<std::string>`. This 
will cause compilation errors. Please change their types to 
`ffi::Array<ffi::String>`.



##########
src/runtime/contrib/tensorrt/tensorrt_ops.cc:
##########
@@ -365,21 +365,20 @@ class Conv3DOpConverter : public TensorRTOpConverter {
     auto input_tensor = params->inputs.at(0).tensor;
     auto input_dims = TrtDimsToVector(input_tensor->getDimensions());
     auto weight_shape = params->inputs.at(1).weight_shape;
-    
ICHECK_EQ(params->node.GetAttr<std::vector<std::string>>("data_layout")[0], 
"NCDHW");
-    ICHECK(params->node.GetAttr<std::vector<std::string>>("out_layout")[0] == 
"" ||
-           params->node.GetAttr<std::vector<std::string>>("out_layout")[0] == 
"NCDHW");
-    
ICHECK_EQ(params->node.GetAttr<std::vector<std::string>>("kernel_layout")[0], 
"OIDHW");
-    auto str_strides = 
params->node.GetAttr<std::vector<std::string>>("strides");
-    auto str_dilation = 
params->node.GetAttr<std::vector<std::string>>("dilation");
-    auto str_padding = 
params->node.GetAttr<std::vector<std::string>>("padding");
-    int groups = 
std::stoi(params->node.GetAttr<std::vector<std::string>>("groups")[0]);
+    ICHECK_EQ(params->node.GetAttr<ffi::Array<ffi::String>>("data_layout")[0], 
"NCDHW");
+    ICHECK(params->node.GetAttr<ffi::Array<ffi::String>>("out_layout")[0] == 
"" ||
+           params->node.GetAttr<ffi::Array<ffi::String>>("out_layout")[0] == 
"NCDHW");
+    
ICHECK_EQ(params->node.GetAttr<ffi::Array<ffi::String>>("kernel_layout")[0], 
"OIDHW");
+    auto str_strides = 
params->node.GetAttr<ffi::Array<ffi::String>>("strides");
+    auto str_dilation = 
params->node.GetAttr<ffi::Array<ffi::String>>("dilation");
+    auto str_padding = 
params->node.GetAttr<ffi::Array<ffi::String>>("padding");
+    int groups = 
std::stoi(params->node.GetAttr<ffi::Array<ffi::String>>("groups")[0]);
 
     nvinfer1::Dims prepadding, postpadding;
     bool use_asymmetric_padding;
     GetPadding3D(str_padding, &use_asymmetric_padding, &prepadding, 
&postpadding);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `GetPadding3D` expects a `const std::vector<std::string>&`, but 
`str_padding` is of type `ffi::Array<ffi::String>`. This will cause a 
compilation error. Please convert it to a vector before passing it to the 
function.



##########
src/relax/backend/contrib/nnapi/codegen.cc:
##########
@@ -159,17 +143,9 @@ class CollectFromCompositeFunctionBody : public 
ExprVisitor {
       pool_size.push_back(std::to_string(size));
     }
 
-    std::vector<std::any> strides_attr;
-    strides_attr.emplace_back(strides);
-    node_->SetAttr("strides", strides_attr);
-
-    std::vector<std::any> padding_attr;
-    padding_attr.emplace_back(padding);
-    node_->SetAttr("padding", padding_attr);
-
-    std::vector<std::any> pooling_attr;
-    pooling_attr.emplace_back(pool_size);
-    node_->SetAttr("pool_size", pooling_attr);
+    node_->SetAttr("strides", strides);
+    node_->SetAttr("padding", padding);
+    node_->SetAttr("pool_size", pool_size);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   The `SetAttr` method now expects an `ffi::Array<ffi::String>`, but 
`strides`, `padding`, and `pool_size` are of type `std::vector<std::string>`. 
This will cause compilation errors. Please change their types to 
`ffi::Array<ffi::String>`.



##########
src/relax/backend/contrib/nnapi/codegen.cc:
##########
@@ -87,16 +83,12 @@ class CollectFromCompositeFunctionBody : public ExprVisitor 
{
         axis.push_back(std::to_string(dim->value));
       }
 
-      std::vector<std::any> axis_attr;
-      axis_attr.emplace_back(axis);
-      node_->SetAttr("axis", axis_attr);
+      node_->SetAttr("axis", axis);
     }
 
     {
       const std::vector<std::string> keepdims{mean_attrs->keepdims ? "1" : 
"0"};
-      std::vector<std::any> keepdims_attr;
-      keepdims_attr.emplace_back(keepdims);
-      node_->SetAttr("keepdims", keepdims_attr);
+      node_->SetAttr("keepdims", keepdims);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   The `SetAttr` method now expects an `ffi::Array<ffi::String>`, but 
`keepdims` is of type `const std::vector<std::string>`. This will cause a 
compilation error. Please change the type of `keepdims` to 
`ffi::Array<ffi::String>`.



##########
src/runtime/contrib/arm_compute_lib/acl_runtime.cc:
##########
@@ -410,12 +410,12 @@ class ACLRuntime : public JSONRuntimeBase {
    * \param node The JSON representation of the operator.
    */
   void CreatePoolingLayer(CachedLayer* layer, const JSONGraphNode& node) {
-    std::vector<std::string> padding = 
node.GetAttr<std::vector<std::string>>("padding");
-    std::vector<std::string> strides = 
node.GetAttr<std::vector<std::string>>("strides");
-    std::vector<std::string> dilation = 
node.GetAttr<std::vector<std::string>>("dilation");
-    bool ceil_mode = 
std::stoi(node.GetAttr<std::vector<std::string>>("ceil_mode")[0]);
+    auto padding = node.GetAttr<ffi::Array<ffi::String>>("padding");
+    auto strides = node.GetAttr<ffi::Array<ffi::String>>("strides");
+    auto dilation = node.GetAttr<ffi::Array<ffi::String>>("dilation");
+    bool ceil_mode = 
std::stoi(node.GetAttr<ffi::Array<ffi::String>>("ceil_mode")[0]);
     arm_compute::PadStrideInfo pad_stride_info = MakeACLPadStride(padding, 
strides, ceil_mode);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `MakeACLPadStride` expects `std::vector<std::string>` arguments, but 
`padding` and `strides` are `ffi::Array<ffi::String>`. This will cause a 
compilation error. Please convert them before calling the function.



##########
src/runtime/contrib/arm_compute_lib/acl_runtime.cc:
##########
@@ -251,17 +251,17 @@ class ACLRuntime : public JSONRuntimeBase {
    */
   void CreateConvolution2DLayer(CachedLayer* layer, const JSONGraphNode& node,
                                 const 
std::shared_ptr<arm_compute::MemoryManagerOnDemand>& mm) {
-    std::vector<std::string> padding = 
node.GetAttr<std::vector<std::string>>("padding");
-    std::vector<std::string> strides = 
node.GetAttr<std::vector<std::string>>("strides");
-    std::vector<std::string> dilation = 
node.GetAttr<std::vector<std::string>>("dilation");
+    auto padding = node.GetAttr<ffi::Array<ffi::String>>("padding");
+    auto strides = node.GetAttr<ffi::Array<ffi::String>>("strides");
+    auto dilation = node.GetAttr<ffi::Array<ffi::String>>("dilation");
     arm_compute::PadStrideInfo pad_stride_info = MakeACLPadStride(padding, 
strides);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `MakeACLPadStride` expects `std::vector<std::string>` arguments, but 
`padding` and `strides` are `ffi::Array<ffi::String>`. This will cause a 
compilation error. Please convert them before calling the function, for 
example: `std::vector<std::string> padding_vec(padding.begin(), 
padding.end());`.



##########
src/runtime/contrib/tensorrt/tensorrt_ops.cc:
##########
@@ -1073,24 +1070,23 @@ class Conv3DTransposeOpConverter : public 
TensorRTOpConverter {
   void Convert(TensorRTOpConverterParams* params) const {
     auto input_tensor = params->inputs.at(0).tensor;
     auto weight_shape = params->inputs.at(1).weight_shape;
-    
ICHECK_EQ(params->node.GetAttr<std::vector<std::string>>("data_layout")[0], 
"NCDHW");
-    ICHECK(params->node.GetAttr<std::vector<std::string>>("out_layout")[0] == 
"" ||
-           params->node.GetAttr<std::vector<std::string>>("out_layout")[0] == 
"NCDHW");
-    
ICHECK_EQ(params->node.GetAttr<std::vector<std::string>>("kernel_layout")[0], 
"OIDHW");
-    auto str_dilation = 
params->node.GetAttr<std::vector<std::string>>("dilation");
+    ICHECK_EQ(params->node.GetAttr<ffi::Array<ffi::String>>("data_layout")[0], 
"NCDHW");
+    ICHECK(params->node.GetAttr<ffi::Array<ffi::String>>("out_layout")[0] == 
"" ||
+           params->node.GetAttr<ffi::Array<ffi::String>>("out_layout")[0] == 
"NCDHW");
+    
ICHECK_EQ(params->node.GetAttr<ffi::Array<ffi::String>>("kernel_layout")[0], 
"OIDHW");
+    auto str_dilation = 
params->node.GetAttr<ffi::Array<ffi::String>>("dilation");
     ICHECK_EQ(str_dilation.size(), 3);
     ICHECK(std::stoi(str_dilation[0]) == 1 && std::stoi(str_dilation[1]) == 1 
&&
            std::stoi(str_dilation[2]) == 1);
-    auto str_strides = 
params->node.GetAttr<std::vector<std::string>>("strides");
-    auto str_padding = 
params->node.GetAttr<std::vector<std::string>>("padding");
-    auto str_output_padding = 
params->node.GetAttr<std::vector<std::string>>("output_padding");
-    int groups = 
std::stoi(params->node.GetAttr<std::vector<std::string>>("groups")[0]);
+    auto str_strides = 
params->node.GetAttr<ffi::Array<ffi::String>>("strides");
+    auto str_padding = 
params->node.GetAttr<ffi::Array<ffi::String>>("padding");
+    auto str_output_padding = 
params->node.GetAttr<ffi::Array<ffi::String>>("output_padding");
+    int groups = 
std::stoi(params->node.GetAttr<ffi::Array<ffi::String>>("groups")[0]);
     nvinfer1::Dims prepadding, postpadding;
     bool use_asymmetric_padding;
     GetPadding3D(str_padding, &use_asymmetric_padding, &prepadding, 
&postpadding);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `GetPadding3D` expects a `const std::vector<std::string>&`, but 
`str_padding` is of type `ffi::Array<ffi::String>`. This will cause a 
compilation error. Please convert it to a vector before passing it to the 
function.



##########
src/runtime/contrib/clml/clml_runtime.cc:
##########
@@ -1373,8 +1373,8 @@ class CLMLRuntime : public JSONRuntimeBase {
                                              CL_TENSOR_LAYOUT_OPTIMAL_QCOM, 
cl_dtype);
     auto output = MakeCLMLTensorFromJSONEntry(nid, {}, 
CL_TENSOR_LAYOUT_OPTIMAL_QCOM, cl_dtype);
 
-    std::string pad_mode = 
node.GetAttr<std::vector<std::string>>("pad_mode")[0];
-    std::vector<std::string> padding = 
node.GetAttr<std::vector<std::string>>("pad_width");
+    std::string pad_mode = 
node.GetAttr<ffi::Array<ffi::String>>("pad_mode")[0];
+    ffi::Array<ffi::String> padding = 
node.GetAttr<ffi::Array<ffi::String>>("pad_width");
     std::vector<cl_uint> clml_padding = GetVectorValues(padding);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `GetVectorValues` expects a `std::vector<std::string>`, but `padding` is of 
type `ffi::Array<ffi::String>`. This will cause a compilation error. Please 
convert it to a vector before passing it to the function.



##########
src/relax/backend/contrib/nnapi/codegen.cc:
##########
@@ -87,16 +83,12 @@ class CollectFromCompositeFunctionBody : public ExprVisitor 
{
         axis.push_back(std::to_string(dim->value));
       }
 
-      std::vector<std::any> axis_attr;
-      axis_attr.emplace_back(axis);
-      node_->SetAttr("axis", axis_attr);
+      node_->SetAttr("axis", axis);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   The `SetAttr` method now expects an `ffi::Array<ffi::String>`, but `axis` is 
of type `std::vector<std::string>`. This will cause a compilation error. Please 
change the type of `axis` to `ffi::Array<ffi::String>`.



##########
src/runtime/contrib/clml/clml_runtime.cc:
##########
@@ -982,9 +982,9 @@ class CLMLRuntime : public JSONRuntimeBase {
    */
   void CreateConvolution2DLayer(CachedLayer* layer, const JSONGraphNode& node,
                                 cl_convolution_mode_qcom mode, size_t nid) {
-    std::vector<std::string> padding = 
node.GetAttr<std::vector<std::string>>("padding");
-    std::vector<std::string> strides = 
node.GetAttr<std::vector<std::string>>("strides");
-    std::vector<std::string> dilation = 
node.GetAttr<std::vector<std::string>>("dilation");
+    ffi::Array<ffi::String> padding = 
node.GetAttr<ffi::Array<ffi::String>>("padding");
+    ffi::Array<ffi::String> strides = 
node.GetAttr<ffi::Array<ffi::String>>("strides");
+    ffi::Array<ffi::String> dilation = 
node.GetAttr<ffi::Array<ffi::String>>("dilation");
     std::vector<cl_uint> clml_padding = GetVectorValues(padding);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `GetVectorValues` expects a `std::vector<std::string>`, but `padding` is of 
type `ffi::Array<ffi::String>`. This will cause a compilation error. Please 
convert it to a vector before passing it to the function, for example: 
`std::vector<std::string> padding_vec(padding.begin(), padding.end());`.



##########
src/runtime/contrib/tensorrt/tensorrt_ops.cc:
##########
@@ -736,14 +735,14 @@ class Pooling3DOpConverter : public TensorRTOpConverter {
         {"nn.avg_pool3d", nvinfer1::PoolingType::kAVERAGE}};
     auto it = op_map.find(op_name);
     ICHECK(it != op_map.end()) << "Unsupported pooling type " << op_name << " 
in TensorRT";
-    ICHECK_EQ(params->node.GetAttr<std::vector<std::string>>("layout")[0], 
"NCDHW");
-    auto str_pool_size = 
params->node.GetAttr<std::vector<std::string>>("pool_size");
-    auto str_padding = 
params->node.GetAttr<std::vector<std::string>>("padding");
-    auto str_strides = 
params->node.GetAttr<std::vector<std::string>>("strides");
+    ICHECK_EQ(params->node.GetAttr<ffi::Array<ffi::String>>("layout")[0], 
"NCDHW");
+    auto str_pool_size = 
params->node.GetAttr<ffi::Array<ffi::String>>("pool_size");
+    auto str_padding = 
params->node.GetAttr<ffi::Array<ffi::String>>("padding");
+    auto str_strides = 
params->node.GetAttr<ffi::Array<ffi::String>>("strides");
     nvinfer1::DimsHW prepadding, postpadding;
     bool use_asymmetric_padding;
     GetPadding3D(str_padding, &use_asymmetric_padding, &prepadding, 
&postpadding);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `GetPadding3D` expects a `const std::vector<std::string>&`, but 
`str_padding` is of type `ffi::Array<ffi::String>`. This will cause a 
compilation error. Please convert it to a vector before passing it to the 
function.



##########
src/runtime/contrib/tensorrt/tensorrt_ops.cc:
##########
@@ -661,14 +660,14 @@ class PoolingOpConverter : public TensorRTOpConverter {
         {"nn.avg_pool2d", nvinfer1::PoolingType::kAVERAGE}};
     auto it = op_map.find(op_name);
     ICHECK(it != op_map.end()) << "Unsupported pooling type " << op_name << " 
in TensorRT";
-    ICHECK_EQ(params->node.GetAttr<std::vector<std::string>>("layout")[0], 
"NCHW");
-    auto str_pool_size = 
params->node.GetAttr<std::vector<std::string>>("pool_size");
-    auto str_padding = 
params->node.GetAttr<std::vector<std::string>>("padding");
-    auto str_strides = 
params->node.GetAttr<std::vector<std::string>>("strides");
+    ICHECK_EQ(params->node.GetAttr<ffi::Array<ffi::String>>("layout")[0], 
"NCHW");
+    auto str_pool_size = 
params->node.GetAttr<ffi::Array<ffi::String>>("pool_size");
+    auto str_padding = 
params->node.GetAttr<ffi::Array<ffi::String>>("padding");
+    auto str_strides = 
params->node.GetAttr<ffi::Array<ffi::String>>("strides");
     nvinfer1::DimsHW prepadding, postpadding;
     bool use_asymmetric_padding;
     GetPadding(str_padding, &use_asymmetric_padding, &prepadding, 
&postpadding);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `GetPadding` expects a `const std::vector<std::string>&`, but `str_padding` 
is of type `ffi::Array<ffi::String>`. This will cause a compilation error. 
Please convert it to a vector before passing it to the function.



##########
src/runtime/contrib/clml/clml_runtime.cc:
##########
@@ -1223,9 +1223,9 @@ class CLMLRuntime : public JSONRuntimeBase {
                                              CL_TENSOR_LAYOUT_OPTIMAL_QCOM, 
cl_dtype);
     auto output = MakeCLMLTensorFromJSONEntry(nid, {}, 
CL_TENSOR_LAYOUT_OPTIMAL_QCOM, cl_dtype);
 
-    std::vector<std::string> windows = 
node.GetAttr<std::vector<std::string>>("pool_size");
-    std::vector<std::string> strides = 
node.GetAttr<std::vector<std::string>>("strides");
-    std::vector<std::string> padding = 
node.GetAttr<std::vector<std::string>>("padding");
+    ffi::Array<ffi::String> windows = 
node.GetAttr<ffi::Array<ffi::String>>("pool_size");
+    ffi::Array<ffi::String> strides = 
node.GetAttr<ffi::Array<ffi::String>>("strides");
+    ffi::Array<ffi::String> padding = 
node.GetAttr<ffi::Array<ffi::String>>("padding");
     std::vector<cl_uint> clml_window = GetVectorValues(windows);
     std::vector<cl_uint> clml_stride = GetVectorValues(strides);
     std::vector<cl_uint> clml_padding = GetVectorValues(padding);

Review Comment:
   ![critical](https://www.gstatic.com/codereviewagent/critical.svg)
   
   `GetVectorValues` expects a `std::vector<std::string>`, but `windows`, 
`strides`, and `padding` are of type `ffi::Array<ffi::String>`. This will cause 
compilation errors. Please convert them to vectors before passing them to the 
function.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to