class StackColoring

Declaration

class StackColoring { /* full declaration omitted */ };

Description

Compute live ranges of allocas. Live ranges are represented as sets of "interesting" instructions, which are defined as instructions that may start or end an alloca's lifetime. These are: * lifetime.start and lifetime.end intrinsics * first instruction of any basic block Interesting instructions are numbered in the depth-first walk of the CFG, and in the program order inside each basic block.

Declared at: llvm/lib/CodeGen/SafeStackColoring.h:37

Method Overview

Methods

StackColoring(llvm::Function& F,
              ArrayRef<llvm::AllocaInst*> Allocas)

Declared at: llvm/lib/CodeGen/SafeStackColoring.h:118

Parameters

llvm::Function& F
ArrayRef<llvm::AllocaInst*> Allocas

llvm::safestack::StackColoring::LiveRange
getFullLiveRange()

Description

Returns a live range that represents an alloca that is live throughout the entire function.

Declared at: llvm/lib/CodeGen/SafeStackColoring.h:131

const llvm::safestack::StackColoring::LiveRange&
getLiveRange(llvm::AllocaInst* AI)

Description

Returns a set of "interesting" instructions where the given alloca is live. Not all instructions in a function are interesting: we pick a set that is large enough for LiveRange::Overlaps to be correct.

Declared at: llvm/lib/CodeGen/SafeStackColoring.h:127

Parameters

llvm::AllocaInst* AI

void removeAllMarkers()

Declared at: llvm/lib/CodeGen/SafeStackColoring.h:122

void run()

Declared at: llvm/lib/CodeGen/SafeStackColoring.h:121