LLVM API Documentation
#include "llvm/Support/Compiler.h"
#include "llvm/Support/SwapByteOrder.h"
#include <cassert>
#include <cstring>
#include <type_traits>
Go to the source code of this file.
Namespaces | |
namespace | llvm |
List of target independent CodeGen pass IDs. | |
Defines | |
#define | R2(n) n, n + 2 * 64, n + 1 * 64, n + 3 * 64 |
#define | R4(n) R2(n), R2(n + 2 * 16), R2(n + 1 * 16), R2(n + 3 * 16) |
#define | R6(n) R4(n), R4(n + 2 * 4), R4(n + 1 * 4), R4(n + 3 * 4) |
Enumerations | |
enum | llvm::ZeroBehavior { llvm::ZB_Undefined, llvm::ZB_Max, llvm::ZB_Width } |
The behavior an operation has on an input of 0. More... | |
Functions | |
template<typename T > | |
std::enable_if < std::numeric_limits< T > ::is_integer &&!std::numeric_limits< T > ::is_signed, std::size_t > ::type | llvm::countTrailingZeros (T Val, ZeroBehavior ZB=ZB_Width) |
Count number of 0's from the least significant bit to the most stopping at the first 1. | |
template<typename T > | |
std::enable_if < std::numeric_limits< T > ::is_integer &&!std::numeric_limits< T > ::is_signed, std::size_t > ::type | llvm::countLeadingZeros (T Val, ZeroBehavior ZB=ZB_Width) |
Count number of 0's from the most significant bit to the least stopping at the first 1. | |
template<typename T > | |
std::enable_if < std::numeric_limits< T > ::is_integer &&!std::numeric_limits< T > ::is_signed, T >::type | llvm::findFirstSet (T Val, ZeroBehavior ZB=ZB_Max) |
Get the index of the first set bit starting from the least significant bit. | |
template<typename T > | |
std::enable_if < std::numeric_limits< T > ::is_integer &&!std::numeric_limits< T > ::is_signed, T >::type | llvm::findLastSet (T Val, ZeroBehavior ZB=ZB_Max) |
Get the index of the last set bit starting from the least significant bit. | |
template<typename T > | |
T | llvm::reverseBits (T Val) |
Reverse the bits in Val . | |
uint32_t | llvm::Hi_32 (uint64_t Value) |
Hi_32 - This function returns the high 32 bits of a 64 bit value. | |
uint32_t | llvm::Lo_32 (uint64_t Value) |
Lo_32 - This function returns the low 32 bits of a 64 bit value. | |
uint64_t | llvm::Make_64 (uint32_t High, uint32_t Low) |
template<unsigned N> | |
bool | llvm::isInt (int64_t x) |
isInt - Checks if an integer fits into the given bit width. | |
template<> | |
bool | llvm::isInt< 8 > (int64_t x) |
template<> | |
bool | llvm::isInt< 16 > (int64_t x) |
template<> | |
bool | llvm::isInt< 32 > (int64_t x) |
template<unsigned N, unsigned S> | |
bool | llvm::isShiftedInt (int64_t x) |
template<unsigned N> | |
bool | llvm::isUInt (uint64_t x) |
isUInt - Checks if an unsigned integer fits into the given bit width. | |
template<> | |
bool | llvm::isUInt< 8 > (uint64_t x) |
template<> | |
bool | llvm::isUInt< 16 > (uint64_t x) |
template<> | |
bool | llvm::isUInt< 32 > (uint64_t x) |
template<unsigned N, unsigned S> | |
bool | llvm::isShiftedUInt (uint64_t x) |
bool | llvm::isUIntN (unsigned N, uint64_t x) |
bool | llvm::isIntN (unsigned N, int64_t x) |
bool | llvm::isMask_32 (uint32_t Value) |
bool | llvm::isMask_64 (uint64_t Value) |
bool | llvm::isShiftedMask_32 (uint32_t Value) |
bool | llvm::isShiftedMask_64 (uint64_t Value) |
bool | llvm::isPowerOf2_32 (uint32_t Value) |
bool | llvm::isPowerOf2_64 (uint64_t Value) |
uint16_t | llvm::ByteSwap_16 (uint16_t Value) |
uint32_t | llvm::ByteSwap_32 (uint32_t Value) |
uint64_t | llvm::ByteSwap_64 (uint64_t Value) |
unsigned | llvm::CountLeadingOnes_32 (uint32_t Value) |
unsigned | llvm::CountLeadingOnes_64 (uint64_t Value) |
unsigned | llvm::CountTrailingOnes_32 (uint32_t Value) |
unsigned | llvm::CountTrailingOnes_64 (uint64_t Value) |
unsigned | llvm::CountPopulation_32 (uint32_t Value) |
unsigned | llvm::CountPopulation_64 (uint64_t Value) |
unsigned | llvm::Log2_32 (uint32_t Value) |
unsigned | llvm::Log2_64 (uint64_t Value) |
unsigned | llvm::Log2_32_Ceil (uint32_t Value) |
unsigned | llvm::Log2_64_Ceil (uint64_t Value) |
uint64_t | llvm::GreatestCommonDivisor64 (uint64_t A, uint64_t B) |
double | llvm::BitsToDouble (uint64_t Bits) |
float | llvm::BitsToFloat (uint32_t Bits) |
uint64_t | llvm::DoubleToBits (double Double) |
uint32_t | llvm::FloatToBits (float Float) |
int | llvm::IsNAN (float f) |
Platform-independent wrappers for the C99 isnan() function. | |
int | llvm::IsNAN (double d) |
int | llvm::IsInf (float f) |
Platform-independent wrappers for the C99 isinf() function. | |
int | llvm::IsInf (double d) |
uint64_t | llvm::MinAlign (uint64_t A, uint64_t B) |
uintptr_t | llvm::alignAddr (void *Addr, size_t Alignment) |
Aligns Addr to Alignment bytes, rounding up. | |
size_t | llvm::alignmentAdjustment (void *Ptr, size_t Alignment) |
Returns the necessary adjustment for aligning Ptr to Alignment bytes, rounding up. | |
uint64_t | llvm::NextPowerOf2 (uint64_t A) |
uint64_t | llvm::PowerOf2Floor (uint64_t A) |
uint64_t | llvm::RoundUpToAlignment (uint64_t Value, uint64_t Align) |
uint64_t | llvm::OffsetToAlignment (uint64_t Value, uint64_t Align) |
int64_t | llvm::abs64 (int64_t x) |
template<unsigned B> | |
int32_t | llvm::SignExtend32 (uint32_t x) |
int32_t | llvm::SignExtend32 (uint32_t X, unsigned B) |
Sign extend number in the bottom B bits of X to a 32-bit int. Requires 0 < B <= 32. | |
template<unsigned B> | |
int64_t | llvm::SignExtend64 (uint64_t x) |
int64_t | llvm::SignExtend64 (uint64_t X, unsigned B) |
Sign extend number in the bottom B bits of X to a 64-bit int. Requires 0 < B <= 64. | |
Variables | |
static const unsigned char | llvm::BitReverseTable256 [256] |
Macro compressed bit reversal table for 256 bits. | |
const float | llvm::huge_valf = HUGE_VALF |
#define R2 | ( | n | ) | n, n + 2 * 64, n + 1 * 64, n + 3 * 64 |
Referenced by foldLogOpOfMaskedICmpsHelper(), llvm::isARMArea1Register(), and llvm::isARMLowRegister().
Referenced by llvm::isARMArea1Register(), and llvm::isARMLowRegister().