A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://llvm.org/doxygen/PointerIntPair_8h_source.html below:

LLVM: include/llvm/ADT/PointerIntPair.h Source File

14#ifndef LLVM_ADT_POINTERINTPAIR_H 15#define LLVM_ADT_POINTERINTPAIR_H 29 static_assert

(

sizeof

(

Ptr

) ==

sizeof

(intptr_t),

""

);

33 static_assert

(std::is_trivially_destructible<Ptr>::value,

""

);

34 static_assert

(std::is_trivially_copy_constructible<Ptr>::value,

""

);

35 static_assert

(std::is_trivially_move_constructible<Ptr>::value,

""

);

39 constexpr

intptr_t

asInt

()

const

{

41

std::memcpy(&R, Data,

sizeof

(R));

45 constexpr operator

intptr_t()

const

{

return asInt

(); }

48

std::memcpy(Data, &V,

sizeof

(Data));

56 alignas

(

Ptr

)

unsigned char

Data[

sizeof

(

Ptr

)];

60template

<

typename

T,

typename

Enable>

struct

DenseMapInfo;

61template

<

typename

Po

int

erT,

unsigned

IntBits,

typename

PtrTraits>

62struct

PointerIntPairInfo;

78 typename

PtrTraits = PointerLikeTypeTraits<PointerTy>,

79 typename Info

= PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>

96

IntType

getInt

()

const

{

return

(IntType)Info::getInt(

Value

); }

103 Value

= Info::updateInt(

Value

,

static_cast<

intptr_t

>

(IntVal));

107 Value

= Info::updatePointer(0, PtrVal);

111 Value

= Info::updateInt(Info::updatePointer(0, PtrVal),

112 static_cast<

intptr_t

>

(IntVal));

121 "Can only return the address if IntBits is cleared and " 122 "PtrTraits doesn't change the pointer"

);

123 return Value

.getPointerAddress();

127 return reinterpret_cast<void

*

>

(

Value

.asInt());

131 Value

=

reinterpret_cast<

intptr_t

>

(Val);

136 P

.setFromOpaqueValue(V);

143

(void)PtrTraits::getFromVoidPointer(V);

167template

<

typename

Po

int

erT,

unsigned

IntBits,

typename

PtrTraits>

169 static_assert

(PtrTraits::NumLowBitsAvailable <

170

std::numeric_limits<uintptr_t>::digits,

171 "cannot use a pointer type that has all bits free"

);

172 static_assert

(IntBits <= PtrTraits::NumLowBitsAvailable,

173 "PointerIntPair with integer size too large for pointer"

);

177

~(uintptr_t)(((intptr_t)1 << PtrTraits::NumLowBitsAvailable) - 1),

181 IntShift

= (uintptr_t)PtrTraits::NumLowBitsAvailable - IntBits,

184 IntMask

= (uintptr_t)(((intptr_t)1 << IntBits) - 1),

191 return

PtrTraits::getFromVoidPointer(

201 reinterpret_cast<

intptr_t

>

(PtrTraits::getAsVoidPointer(

Ptr

));

203 "Pointer is not sufficiently aligned"

);

205 return

PtrWord | (OrigValue & ~PointerBitMask);

209

intptr_t IntWord =

static_cast<

intptr_t

>

(

Int

);

210 assert

((IntWord & ~

IntMask

) == 0 &&

"Integer too large for field"

);

218template

<

typename

Po

int

erTy,

unsigned

IntBits,

typename

IntType>

223

uintptr_t Val =

static_cast<

uintptr_t

>

(-1);

224

Val <<= PointerLikeTypeTraits<Ty>::NumLowBitsAvailable;

225 return

Ty::getFromOpaqueValue(

reinterpret_cast<void

*

>

(Val));

229

uintptr_t Val =

static_cast<

uintptr_t

>

(-2);

230

Val <<= PointerLikeTypeTraits<PointerTy>::NumLowBitsAvailable;

231 return

Ty::getFromOpaqueValue(

reinterpret_cast<void

*

>

(Val));

235

uintptr_t

IV

=

reinterpret_cast<

uintptr_t

>

(V.getOpaqueValue());

243template

<

typename PointerTy

,

unsigned

IntBits,

typename

IntType,

249 return P

.getOpaqueValue();

262 static constexpr int

NumLowBitsAvailable =

263

PtrTraits::NumLowBitsAvailable - IntBits;

267template

<std::size_t

I

,

typename PointerTy

,

unsigned

IntBits,

typename

IntType,

268 typename

PtrTraits,

typename Info

>

271 static_assert

(

I

< 2);

272 if constexpr

(

I

== 0)

281template

<

typename PointerTy

,

unsigned

IntBits,

typename

IntType,

282 typename

PtrTraits,

typename Info

>

284 llvm

::PointerIntPair<PointerTy, IntBits, IntType, PtrTraits, Info>>

285

: std::integral_constant<std::size_t, 2> {};

287template

<std::size_t

I

,

typename

PointerTy,

unsigned

IntBits,

typename

IntType,

288 typename

PtrTraits,

typename Info

>

290 I

,

llvm

::PointerIntPair<PointerTy, IntBits, IntType, PtrTraits, Info>>

291

: std::conditional<I == 0, PointerTy, IntType> {};

Analysis containing CSE Info

assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())

static const uint32_t IV[8]

PointerIntPair - This class implements a pair of a pointer and small integer.

bool operator<(const PointerIntPair &RHS) const

void setPointer(PointerTy PtrVal) &

PointerIntPair(PointerTy PtrVal)

bool operator!=(const PointerIntPair &RHS) const

static PointerIntPair getFromOpaqueValue(const void *V)

bool operator==(const PointerIntPair &RHS) const

PointerIntPair(PointerTy PtrVal, IntType IntVal)

void initWithPointer(PointerTy PtrVal) &

bool operator<=(const PointerIntPair &RHS) const

void setInt(IntType IntVal) &

void setPointerAndInt(PointerTy PtrVal, IntType IntVal) &

void * getOpaqueValue() const

constexpr PointerIntPair()=default

bool operator>=(const PointerIntPair &RHS) const

static PointerIntPair getFromOpaqueValue(void *V)

PointerTy * getAddrOfPointer()

bool operator>(const PointerIntPair &RHS) const

PointerTy const * getAddrOfPointer() const

PointerTy getPointer() const

void setFromOpaqueValue(void *Val) &

LLVM Value Representation.

This is an optimization pass for GlobalISel generic memory operations.

decltype(auto) get(const PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info > &Pair)

Implement std::hash so that hash_code can be used in STL containers.

static unsigned getHashValue(Ty V)

static Ty getTombstoneKey()

static bool isEqual(const Ty &LHS, const Ty &RHS)

An information struct used to provide DenseMap with the various necessary components for a given valu...

static PointerT getPointer(intptr_t Value)

static intptr_t updateInt(intptr_t OrigValue, intptr_t Int)

static intptr_t getInt(intptr_t Value)

@ IntShift

IntShift - The number of low bits that we reserve for other uses, and keep zero.

@ PointerBitMask

PointerBitMask - The bits that come from the pointer.

@ IntMask

IntMask - This is the unshifted mask for valid bits of the int type.

static intptr_t updatePointer(intptr_t OrigValue, PointerT Ptr)

static void * getAsVoidPointer(const PointerIntPair< PointerTy, IntBits, IntType > &P)

static PointerIntPair< PointerTy, IntBits, IntType > getFromVoidPointer(void *P)

static PointerIntPair< PointerTy, IntBits, IntType > getFromVoidPointer(const void *P)

A traits type that is used to handle pointer types and things that are just wrappers for pointers as ...

constexpr intptr_t asInt() const

constexpr PunnedPointer(intptr_t i=0)

const Ptr * getPointerAddress() const

Ptr * getPointerAddress()

constexpr PunnedPointer & operator=(intptr_t V)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4