This is an automated email from the ASF dual-hosted git repository. tqchen pushed a commit to branch refactor-s2 in repository https://gitbox.apache.org/repos/asf/tvm.git
commit 982787bc1bef74046770ff5c7002fdf818119e5c Author: tqchen <[email protected]> AuthorDate: Mon Apr 21 11:19:58 2025 -0400 Fix chost caller --- src/target/llvm/codegen_cpu.cc | 2 +- src/target/source/codegen_c_host.cc | 4 ++-- src/tir/transforms/make_packed_api.cc | 15 +++++++-------- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/target/llvm/codegen_cpu.cc b/src/target/llvm/codegen_cpu.cc index e8fc5e0dbb..638b243173 100644 --- a/src/target/llvm/codegen_cpu.cc +++ b/src/target/llvm/codegen_cpu.cc @@ -355,7 +355,7 @@ CodeGenLLVM::TypedPointer CodeGenCPU::CreateStructRefPtr(DataType t, llvm::Value buf = builder_->CreatePointerCast(buf, llvmGetPointerTo(t_float64_, 0)); return TypedPointer(t_float64_, buf); } else if (t.is_handle()) { - builder_->CreatePointerCast(buf, llvmGetPointerTo(t_void_p_, 0)); + buf = builder_->CreatePointerCast(buf, llvmGetPointerTo(t_void_p_, 0)); return TypedPointer(t_void_p_, buf); } else { LOG(DEBUG) << "DataType " << t << " cannot be stored into a TVMFFIAny's value field"; diff --git a/src/target/source/codegen_c_host.cc b/src/target/source/codegen_c_host.cc index c1859fa436..9ee05530e2 100644 --- a/src/target/source/codegen_c_host.cc +++ b/src/target/source/codegen_c_host.cc @@ -222,8 +222,8 @@ void CodeGenCHost::PrintCallPacked(const CallNode* op) { const StringImmNode* func_name = op->args[0].as<StringImmNode>(); ICHECK(func_name != nullptr) << "tvm_call_[c]packed_lowered expects first argument as function name"; - int64_t begin = op->args[3].as<IntImmNode>()->value; - int64_t end = op->args[4].as<IntImmNode>()->value; + int64_t begin = op->args[2].as<IntImmNode>()->value; + int64_t end = op->args[3].as<IntImmNode>()->value; int64_t num_args = end - begin; ICHECK_GE(num_args, 0); diff --git a/src/tir/transforms/make_packed_api.cc b/src/tir/transforms/make_packed_api.cc index 271c742146..3d0ace67f7 100644 --- a/src/tir/transforms/make_packed_api.cc +++ b/src/tir/transforms/make_packed_api.cc @@ -98,16 +98,15 @@ class ReturnRewriter : public StmtMutator { Stmt WriteToOut(PrimExpr val) { auto info = ConvertForFFI(val); - Stmt store_tindex = tir::Evaluate(tir::Call( - DataType::Int(32), tir::builtin::tvm_struct_set(), - {ret_var_, IntImm(DataType::Int(32), 0), - IntImm(DataType::Int(32), tir::builtin::kTVMFFIAnyTypeIndex), - IntImm(DataType::Int(32), info.type_index)})); - Stmt store_val = + Stmt store_tindex = tir::Evaluate(tir::Call(DataType::Int(32), tir::builtin::tvm_struct_set(), {ret_var_, IntImm(DataType::Int(32), 0), - IntImm(DataType::Int(32), tir::builtin::kTVMFFIAnyUnionValue), - info.expr})); + IntImm(DataType::Int(32), tir::builtin::kTVMFFIAnyTypeIndex), + IntImm(DataType::Int(32), info.type_index)})); + Stmt store_val = tir::Evaluate( + tir::Call(DataType::Int(32), tir::builtin::tvm_struct_set(), + {ret_var_, IntImm(DataType::Int(32), 0), + IntImm(DataType::Int(32), tir::builtin::kTVMFFIAnyUnionValue), info.expr})); Stmt ret_zero = Evaluate(tvm::ret(0)); return SeqStmt({store_tindex, store_val, ret_zero}); }
