forked from OSchip/llvm-project
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. llvm-svn: 230895
This commit is contained in:
parent
7149aabf8b
commit
8ec82e88c3
|
@ -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…
Reference in New Issue