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
[LLVM] Stringref API deprecation fixes
The `startswith`/`endswith` functions in `StringRef` API were [changed](https://reviews.llvm.org/D136030) to
`starts_with` and `ends_with` to be compatible with `std::string` and
the older APIs were deprecated and removed.
  • Loading branch information
quic-sanirudh committed May 6, 2024
commit 71faa6abcdb884d35be369418cbdd6de0f3e5e32
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