From 560a2e44aefc842a3eb83115e15ccb97e221e922 Mon Sep 17 00:00:00 2001 From: tqchen Date: Sat, 14 Oct 2017 17:07:24 -0700 Subject: [PATCH 1/2] [CODEGEN] Force not inline compute core for better debug --- src/codegen/llvm/codegen_cpu.cc | 2 ++ src/pass/make_api.cc | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/codegen/llvm/codegen_cpu.cc b/src/codegen/llvm/codegen_cpu.cc index 7b3d1301f756..f5cbfe7ec0eb 100644 --- a/src/codegen/llvm/codegen_cpu.cc +++ b/src/codegen/llvm/codegen_cpu.cc @@ -318,6 +318,8 @@ void CodeGenCPU::CreateComputeScope(const AttrStmt* op) { // set non alias. #if TVM_LLVM_VERSION >= 50 fcompute->addParamAttr(idx + 1, llvm::Attribute::NoAlias); + // always not inline compute function to make the code structure clean + fcompute->addFnAttr(llvm::Attribute::NoInline); #else fcompute->setDoesNotAlias(idx + 1); #endif diff --git a/src/pass/make_api.cc b/src/pass/make_api.cc index fd1dbd88e4ed..5f124e5690c6 100644 --- a/src/pass/make_api.cc +++ b/src/pass/make_api.cc @@ -79,7 +79,8 @@ LoweredFunc MakeAPI(Stmt body, args.push_back(v_packed_arg_type_ids); args.push_back(v_num_packed_args); std::ostringstream os; - os << "expected num_args to be " << num_packed_args; + + os << name << ": num_args should be " << num_packed_args; seq_init.emplace_back( MakeAssertEQ(v_num_packed_args, num_packed_args, os.str())); } @@ -98,19 +99,19 @@ LoweredFunc MakeAPI(Stmt body, Type t = v_arg.type(); if (t.is_handle()) { std::ostringstream msg; - msg << "Expect argument " << i << " to be pointer"; + msg << name << ": Expect arg[" << i << "] to be pointer"; seq_check.emplace_back( AssertStmt::make(tcode == kHandle || tcode == kArrayHandle || tcode == kNull, msg.str(), nop)); } else if (t.is_int() || t.is_uint()) { std::ostringstream msg; - msg << "Expect argument " << i << " to be int"; + msg << name << ": Expect arg[" << i << "] to be int"; seq_check.emplace_back(AssertStmt::make(tcode == kInt, msg.str(), nop)); } else { CHECK(t.is_float()); std::ostringstream msg; - msg << "Expect argument " << i << " to be float"; + msg << name << ": Expect arg[" << i << "] to be float"; seq_check.emplace_back(AssertStmt::make(tcode == kFloat, msg.str(), nop)); } } else { From 945ef167516704a6a5c63637955935eaa8f58dd5 Mon Sep 17 00:00:00 2001 From: tqchen Date: Sat, 14 Oct 2017 17:09:45 -0700 Subject: [PATCH 2/2] also support llvm4 --- src/codegen/llvm/codegen_cpu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/codegen/llvm/codegen_cpu.cc b/src/codegen/llvm/codegen_cpu.cc index f5cbfe7ec0eb..2c571e851e9c 100644 --- a/src/codegen/llvm/codegen_cpu.cc +++ b/src/codegen/llvm/codegen_cpu.cc @@ -319,10 +319,10 @@ void CodeGenCPU::CreateComputeScope(const AttrStmt* op) { #if TVM_LLVM_VERSION >= 50 fcompute->addParamAttr(idx + 1, llvm::Attribute::NoAlias); // always not inline compute function to make the code structure clean - fcompute->addFnAttr(llvm::Attribute::NoInline); #else fcompute->setDoesNotAlias(idx + 1); #endif + fcompute->addFnAttr(llvm::Attribute::NoInline); } } std::swap(function_, fcompute);