[libc][NFC] Add noreturn and constexpr qualifiers where appropriate
These functions make it clear to the compiler and user what the intended behavior is so llvm can make them go as fast as possible. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D106807
This commit is contained in:
parent
a4edb2b1ba
commit
640ed21cce
|
@ -14,10 +14,9 @@
|
|||
namespace __llvm_libc {
|
||||
|
||||
template <typename T>
|
||||
static inline cpp::EnableIfType<cpp::IsIntegral<T>::Value, T> integerAbs(T n) {
|
||||
if (n < 0)
|
||||
return -n;
|
||||
return n;
|
||||
static constexpr cpp::EnableIfType<cpp::IsIntegral<T>::Value, T>
|
||||
integerAbs(T n) {
|
||||
return (n < 0) ? -n : n;
|
||||
}
|
||||
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -18,17 +18,17 @@ namespace internal {
|
|||
// of a function call by inlining them.
|
||||
// ------------------------------------------------------
|
||||
|
||||
static inline int isalpha(unsigned ch) { return (ch | 32) - 'a' < 26; }
|
||||
static constexpr int isalpha(unsigned ch) { return (ch | 32) - 'a' < 26; }
|
||||
|
||||
static inline int isdigit(unsigned ch) { return (ch - '0') < 10; }
|
||||
static constexpr int isdigit(unsigned ch) { return (ch - '0') < 10; }
|
||||
|
||||
static inline int isalnum(unsigned ch) { return isalpha(ch) || isdigit(ch); }
|
||||
static constexpr int isalnum(unsigned ch) { return isalpha(ch) || isdigit(ch); }
|
||||
|
||||
static inline int isgraph(unsigned ch) { return 0x20 < ch && ch < 0x7f; }
|
||||
static constexpr int isgraph(unsigned ch) { return 0x20 < ch && ch < 0x7f; }
|
||||
|
||||
static inline int islower(unsigned ch) { return (ch - 'a') < 26; }
|
||||
static constexpr int islower(unsigned ch) { return (ch - 'a') < 26; }
|
||||
|
||||
static inline int isupper(unsigned ch) { return (ch - 'A') < 26; }
|
||||
static constexpr int isupper(unsigned ch) { return (ch - 'A') < 26; }
|
||||
|
||||
} // namespace internal
|
||||
} // namespace __llvm_libc
|
||||
|
|
|
@ -36,7 +36,7 @@ public:
|
|||
public:
|
||||
ErrorReporter(llvm::SMLoc L, llvm::SourceMgr &SM) : Loc(L), SrcMgr(SM) {}
|
||||
|
||||
void printFatalError(llvm::Twine Msg) const {
|
||||
[[noreturn]] void printFatalError(llvm::Twine Msg) const {
|
||||
SrcMgr.PrintMessage(Loc, llvm::SourceMgr::DK_Error, Msg);
|
||||
std::exit(1);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue