[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
|
static SPIRV::MemorySemantics::MemorySemantics
|
||||||
getSPIRVMemSemantics(std::memory_order MemOrder) {
|
getSPIRVMemSemantics(std::memory_order MemOrder) {
|
||||||
switch (MemOrder) {
|
switch (MemOrder) {
|
||||||
case std::memory_order::memory_order_relaxed:
|
case std::memory_order_relaxed:
|
||||||
return SPIRV::MemorySemantics::None;
|
return SPIRV::MemorySemantics::None;
|
||||||
case std::memory_order::memory_order_acquire:
|
case std::memory_order_acquire:
|
||||||
return SPIRV::MemorySemantics::Acquire;
|
return SPIRV::MemorySemantics::Acquire;
|
||||||
case std::memory_order::memory_order_release:
|
case std::memory_order_release:
|
||||||
return SPIRV::MemorySemantics::Release;
|
return SPIRV::MemorySemantics::Release;
|
||||||
case std::memory_order::memory_order_acq_rel:
|
case std::memory_order_acq_rel:
|
||||||
return SPIRV::MemorySemantics::AcquireRelease;
|
return SPIRV::MemorySemantics::AcquireRelease;
|
||||||
case std::memory_order::memory_order_seq_cst:
|
case std::memory_order_seq_cst:
|
||||||
return SPIRV::MemorySemantics::SequentiallyConsistent;
|
return SPIRV::MemorySemantics::SequentiallyConsistent;
|
||||||
default:
|
default:
|
||||||
report_fatal_error("Unknown CL memory scope");
|
report_fatal_error("Unknown CL memory scope");
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "SPIRVSubtarget.h"
|
#include "SPIRVSubtarget.h"
|
||||||
#include "SPIRVTargetMachine.h"
|
#include "SPIRVTargetMachine.h"
|
||||||
#include "SPIRVUtils.h"
|
#include "SPIRVUtils.h"
|
||||||
|
#include "llvm/ADT/StringExtras.h"
|
||||||
#include "llvm/Analysis/ValueTracking.h"
|
#include "llvm/Analysis/ValueTracking.h"
|
||||||
#include "llvm/CodeGen/IntrinsicLowering.h"
|
#include "llvm/CodeGen/IntrinsicLowering.h"
|
||||||
#include "llvm/IR/IRBuilder.h"
|
#include "llvm/IR/IRBuilder.h"
|
||||||
@ -30,7 +31,6 @@
|
|||||||
#include "llvm/IR/IntrinsicsSPIRV.h"
|
#include "llvm/IR/IntrinsicsSPIRV.h"
|
||||||
#include "llvm/Transforms/Utils/Cloning.h"
|
#include "llvm/Transforms/Utils/Cloning.h"
|
||||||
#include "llvm/Transforms/Utils/LowerMemIntrinsics.h"
|
#include "llvm/Transforms/Utils/LowerMemIntrinsics.h"
|
||||||
#include <charconv>
|
|
||||||
#include <regex>
|
#include <regex>
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
@ -228,9 +228,7 @@ static SmallVector<Metadata *> parseAnnotation(Value *I,
|
|||||||
} else {
|
} else {
|
||||||
MDsItem.push_back(MDString::get(Ctx, Item));
|
MDsItem.push_back(MDString::get(Ctx, Item));
|
||||||
}
|
}
|
||||||
} else if (int32_t Num;
|
} else if (int32_t Num; llvm::to_integer(StringRef(Item), Num, 10)) {
|
||||||
std::from_chars(Item.data(), Item.data() + Item.size(), Num)
|
|
||||||
.ec == std::errc{}) {
|
|
||||||
MDsItem.push_back(
|
MDsItem.push_back(
|
||||||
ConstantAsMetadata::get(ConstantInt::get(Int32Ty, Num)));
|
ConstantAsMetadata::get(ConstantInt::get(Int32Ty, Num)));
|
||||||
} else {
|
} else {
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "llvm/IR/TypedPointerType.h"
|
#include "llvm/IR/TypedPointerType.h"
|
||||||
#include <queue>
|
#include <queue>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <unordered_map>
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user