mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 21:29:41 +00:00
Make VTs and UnicodeCharSet ctors constexpr if the compiler supports it.
There are static variables of this around that we really want to go into a read-only segment. Sadly compilers are not smart enough to figure that out without constexpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230895 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
30fa873958
commit
f5582d938e
@ -161,8 +161,8 @@ namespace llvm {
|
||||
|
||||
SimpleValueType SimpleTy;
|
||||
|
||||
MVT() : SimpleTy((SimpleValueType)(INVALID_SIMPLE_VALUE_TYPE)) {}
|
||||
MVT(SimpleValueType SVT) : SimpleTy(SVT) { }
|
||||
LLVM_CONSTEXPR MVT() : SimpleTy(INVALID_SIMPLE_VALUE_TYPE) {}
|
||||
LLVM_CONSTEXPR MVT(SimpleValueType SVT) : SimpleTy(SVT) { }
|
||||
|
||||
bool operator>(const MVT& S) const { return SimpleTy > S.SimpleTy; }
|
||||
bool operator<(const MVT& S) const { return SimpleTy < S.SimpleTy; }
|
||||
|
@ -34,10 +34,9 @@ namespace llvm {
|
||||
Type *LLVMTy;
|
||||
|
||||
public:
|
||||
EVT() : V((MVT::SimpleValueType)(MVT::INVALID_SIMPLE_VALUE_TYPE)),
|
||||
LLVMTy(nullptr) {}
|
||||
EVT(MVT::SimpleValueType SVT) : V(SVT), LLVMTy(nullptr) { }
|
||||
EVT(MVT S) : V(S), LLVMTy(nullptr) {}
|
||||
LLVM_CONSTEXPR EVT() : V(MVT::INVALID_SIMPLE_VALUE_TYPE), LLVMTy(nullptr) {}
|
||||
LLVM_CONSTEXPR EVT(MVT::SimpleValueType SVT) : V(SVT), LLVMTy(nullptr) {}
|
||||
LLVM_CONSTEXPR EVT(MVT S) : V(S), LLVMTy(nullptr) {}
|
||||
|
||||
bool operator==(EVT VT) const {
|
||||
return !(*this != VT);
|
||||
|
@ -50,9 +50,13 @@ public:
|
||||
/// the UnicodeCharSet instance, and should not change. Array is validated by
|
||||
/// the constructor, so it makes sense to create as few UnicodeCharSet
|
||||
/// instances per each array of ranges, as possible.
|
||||
#ifdef NDEBUG
|
||||
LLVM_CONSTEXPR UnicodeCharSet(CharRanges Ranges) : Ranges(Ranges) {}
|
||||
#else
|
||||
UnicodeCharSet(CharRanges Ranges) : Ranges(Ranges) {
|
||||
assert(rangesAreValid());
|
||||
}
|
||||
#endif
|
||||
|
||||
/// \brief Returns true if the character set contains the Unicode code point
|
||||
/// \p C.
|
||||
|
Loading…
x
Reference in New Issue
Block a user