Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/target/llvm/codegen_hexagon.cc
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,16 @@ void CodeGenHexagon::InitTarget() {
const auto hvx_length_feature = "+hvx-length"; // +hvx-length{64|128}b
for (const std::string& f : llvm_target_->GetTargetFeatures()) {
llvm::StringRef fs(f);
#if TVM_LLVM_VERSION >= 180
if (!fs.starts_with(hvx_length_feature)) continue;

ICHECK(fs.ends_with("b")) << "malformed target feature: " << f;
#else
if (!fs.startswith(hvx_length_feature)) continue;

ICHECK(fs.endswith("b")) << "malformed target feature: " << f;
#endif

int hvx_bytes = 0;
size_t len_begin = std::strlen(hvx_length_feature);
ICHECK(!fs.substr(len_begin, fs.size() - len_begin - 1).getAsInteger(10, hvx_bytes))
Expand Down Expand Up @@ -639,7 +646,11 @@ runtime::Module BuildHexagon(IRModule mod, Target target) {
Map<String, String> extra_args;
if (target->attrs.count("mcpu")) {
std::string mcpu = Downcast<String>(target->attrs.at("mcpu"));
#if TVM_LLVM_VERSION >= 180
ICHECK(llvm::StringRef(mcpu).starts_with("hexagon"))
#else
ICHECK(llvm::StringRef(mcpu).startswith("hexagon"))
#endif
<< "unexpected -mcpu value in target:" << mcpu;
extra_args.Set("hex_arch", llvm::StringRef(mcpu).drop_front(strlen("hexagon")).str());
}
Expand Down
4 changes: 4 additions & 0 deletions src/target/llvm/codegen_llvm.cc
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,11 @@ std::unique_ptr<llvm::Module> CodeGenLLVM::Finish() {
void CodeGenLLVM::HandleImport(const std::string& code) {
llvm::StringRef code_str(code);
std::unique_ptr<llvm::Module> mlib;
#if TVM_LLVM_VERSION >= 180
if (code_str.ends_with(".ll") || code_str.ends_with(".bc")) {
#else
if (code_str.endswith(".ll") || code_str.endswith(".bc")) {
#endif
mlib = llvm_target_->GetInstance().LoadIR(code);
} else {
mlib = llvm_target_->GetInstance().ParseIR(code);
Expand Down
4 changes: 4 additions & 0 deletions src/target/llvm/llvm_instance.cc
Original file line number Diff line number Diff line change
Expand Up @@ -916,7 +916,11 @@ std::string LLVMTarget::GetTargetMetadata(const llvm::Module& module) {
if (llvm::Metadata* tvm_target = module.getModuleFlag("tvm_target")) {
auto* mdstr = llvm::cast<llvm::MDString>(tvm_target);
llvm::StringRef meta = mdstr->getString();
#if TVM_LLVM_VERSION >= 180
if (meta.starts_with("llvm")) {
#else
if (meta.startswith("llvm")) {
#endif
return meta.str();
}
}
Expand Down