10 #ifndef LLVM_LIB_CODEGEN_SAFESTACKCOLORING_H 11 #define LLVM_LIB_CODEGEN_SAFESTACKCOLORING_H 42 struct BlockLifetimeInfo {
110 void dumpBlockLiveness();
111 void dumpLiveRanges();
114 void collectMarkers();
115 void calculateLocalLiveness();
116 void calculateLiveIntervals();
120 : F(F), Allocas(Allocas), NumAllocas(Allocas.
size()) {}
166 #endif // LLVM_LIB_CODEGEN_SAFESTACKCOLORING_H void resize(unsigned N, bool t=false)
resize - Grow or shrink the bitvector.
const_iterator end(StringRef path)
Get end iterator over path.
This class represents a set of interesting instructions where an alloca is live.
This class represents lattice values for constants.
static raw_ostream & operator<<(raw_ostream &OS, const BitVector &V)
Compute live ranges of allocas.
bool Overlaps(const LiveRange &Other) const
const LiveRange & getLiveRange(AllocaInst *AI)
Returns a set of "interesting" instructions where the given alloca is live.
int find_first() const
find_first - Returns the index of the first set bit, -1 if none of the bits are set.
int find_next(unsigned Prev) const
find_next - Returns the index of the next set bit following the "Prev" bit.
void AddRange(unsigned start, unsigned end)
LiveRange getFullLiveRange()
Returns a live range that represents an alloca that is live throughout the entire function...
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory)...
bool anyCommon(const BitVector &RHS) const
Test if any common bits are set.
void Join(const LiveRange &Other)
auto size(R &&Range, typename std::enable_if< std::is_same< typename std::iterator_traits< decltype(Range.begin())>::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr) -> decltype(std::distance(Range.begin(), Range.end()))
Get the size of a range.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
StackColoring(Function &F, ArrayRef< AllocaInst *> Allocas)
This class implements an extremely fast bulk output stream that can only output to a stream...
void SetMaximum(int size)
an instruction to allocate memory on the stack