[SPIR-V] Improve portability of the code (#123584)
Adding SPIRV to LLVM_ALL_TARGETS (https://github.com/llvm/llvm-project/pull/119653) revealed a series of minor compilation problems and sanitizer complaints. This PR is to address the problem.
This commit is contained in:
parent
96c4f978d0
commit
fe7cb15606
@ -535,15 +535,15 @@ extern Register insertAssignInstr(Register Reg, Type *Ty, SPIRVType *SpirvTy,
|
||||
static SPIRV::MemorySemantics::MemorySemantics
|
||||
getSPIRVMemSemantics(std::memory_order MemOrder) {
|
||||
switch (MemOrder) {
|
||||
case std::memory_order::memory_order_relaxed:
|
||||
case std::memory_order_relaxed:
|
||||
return SPIRV::MemorySemantics::None;
|
||||
case std::memory_order::memory_order_acquire:
|
||||
case std::memory_order_acquire:
|
||||
return SPIRV::MemorySemantics::Acquire;
|
||||
case std::memory_order::memory_order_release:
|
||||
case std::memory_order_release:
|
||||
return SPIRV::MemorySemantics::Release;
|
||||
case std::memory_order::memory_order_acq_rel:
|
||||
case std::memory_order_acq_rel:
|
||||
return SPIRV::MemorySemantics::AcquireRelease;
|
||||
case std::memory_order::memory_order_seq_cst:
|
||||
case std::memory_order_seq_cst:
|
||||
return SPIRV::MemorySemantics::SequentiallyConsistent;
|
||||
default:
|
||||
report_fatal_error("Unknown CL memory scope");
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "SPIRVSubtarget.h"
|
||||
#include "SPIRVTargetMachine.h"
|
||||
#include "SPIRVUtils.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/Analysis/ValueTracking.h"
|
||||
#include "llvm/CodeGen/IntrinsicLowering.h"
|
||||
#include "llvm/IR/IRBuilder.h"
|
||||
@ -30,7 +31,6 @@
|
||||
#include "llvm/IR/IntrinsicsSPIRV.h"
|
||||
#include "llvm/Transforms/Utils/Cloning.h"
|
||||
#include "llvm/Transforms/Utils/LowerMemIntrinsics.h"
|
||||
#include <charconv>
|
||||
#include <regex>
|
||||
|
||||
using namespace llvm;
|
||||
@ -228,9 +228,7 @@ static SmallVector<Metadata *> parseAnnotation(Value *I,
|
||||
} else {
|
||||
MDsItem.push_back(MDString::get(Ctx, Item));
|
||||
}
|
||||
} else if (int32_t Num;
|
||||
std::from_chars(Item.data(), Item.data() + Item.size(), Num)
|
||||
.ec == std::errc{}) {
|
||||
} else if (int32_t Num; llvm::to_integer(StringRef(Item), Num, 10)) {
|
||||
MDsItem.push_back(
|
||||
ConstantAsMetadata::get(ConstantInt::get(Int32Ty, Num)));
|
||||
} else {
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "llvm/IR/TypedPointerType.h"
|
||||
#include <queue>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
|
||||
namespace llvm {
|
||||
|
Loading…
x
Reference in New Issue
Block a user