[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:
Alfonso Gregory 2021-07-29 04:40:47 +00:00 committed by Siva Chandra Reddy
parent a4edb2b1ba
commit 640ed21cce
3 changed files with 10 additions and 11 deletions

View file

@ -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

View file

@ -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

View file

@ -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);
}