#include "bolt/Core/BinaryBasicBlock.h"
#include "bolt/Core/BinaryContext.h"
#include "bolt/Core/BinaryFunction.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/MC/MCInst.h"
#include "llvm/Support/Errc.h"
#define DEBUG_TYPE …
namespace llvm {
namespace bolt {
constexpr uint32_t BinaryBasicBlock::INVALID_OFFSET;
bool operator<(const BinaryBasicBlock &LHS, const BinaryBasicBlock &RHS) { … }
bool BinaryBasicBlock::hasCFG() const { … }
bool BinaryBasicBlock::isEntryPoint() const { … }
bool BinaryBasicBlock::hasInstructions() const { … }
const JumpTable *BinaryBasicBlock::getJumpTable() const { … }
void BinaryBasicBlock::adjustNumPseudos(const MCInst &Inst, int Sign) { … }
BinaryBasicBlock::iterator BinaryBasicBlock::getFirstNonPseudo() { … }
BinaryBasicBlock::reverse_iterator BinaryBasicBlock::getLastNonPseudo() { … }
bool BinaryBasicBlock::validateSuccessorInvariants() { … }
BinaryBasicBlock *BinaryBasicBlock::getSuccessor(const MCSymbol *Label) const { … }
BinaryBasicBlock *BinaryBasicBlock::getSuccessor(const MCSymbol *Label,
BinaryBranchInfo &BI) const { … }
BinaryBasicBlock *BinaryBasicBlock::getLandingPad(const MCSymbol *Label) const { … }
int32_t BinaryBasicBlock::getCFIStateAtInstr(const MCInst *Instr) const { … }
void BinaryBasicBlock::addSuccessor(BinaryBasicBlock *Succ, uint64_t Count,
uint64_t MispredictedCount) { … }
void BinaryBasicBlock::replaceSuccessor(BinaryBasicBlock *Succ,
BinaryBasicBlock *NewSucc,
uint64_t Count,
uint64_t MispredictedCount) { … }
void BinaryBasicBlock::removeAllSuccessors() { … }
void BinaryBasicBlock::removeSuccessor(BinaryBasicBlock *Succ) { … }
void BinaryBasicBlock::addPredecessor(BinaryBasicBlock *Pred) { … }
void BinaryBasicBlock::removePredecessor(BinaryBasicBlock *Pred,
bool Multiple) { … }
void BinaryBasicBlock::removeDuplicateConditionalSuccessor(MCInst *CondBranch) { … }
void BinaryBasicBlock::updateJumpTableSuccessors() { … }
void BinaryBasicBlock::adjustExecutionCount(double Ratio) { … }
bool BinaryBasicBlock::analyzeBranch(const MCSymbol *&TBB, const MCSymbol *&FBB,
MCInst *&CondBranch,
MCInst *&UncondBranch) { … }
MCInst *BinaryBasicBlock::getTerminatorBefore(MCInst *Pos) { … }
bool BinaryBasicBlock::hasTerminatorAfter(MCInst *Pos) { … }
bool BinaryBasicBlock::swapConditionalSuccessors() { … }
void BinaryBasicBlock::addBranchInstruction(const BinaryBasicBlock *Successor) { … }
void BinaryBasicBlock::addTailCallInstruction(const MCSymbol *Target) { … }
uint32_t BinaryBasicBlock::getNumCalls() const { … }
uint32_t BinaryBasicBlock::getNumPseudos() const { … }
ErrorOr<std::pair<double, double>>
BinaryBasicBlock::getBranchStats(const BinaryBasicBlock *Succ) const { … }
void BinaryBasicBlock::dump() const { … }
uint64_t BinaryBasicBlock::estimateSize(const MCCodeEmitter *Emitter) const { … }
BinaryBasicBlock::BinaryBranchInfo &
BinaryBasicBlock::getBranchInfo(const BinaryBasicBlock &Succ) { … }
const BinaryBasicBlock::BinaryBranchInfo &
BinaryBasicBlock::getBranchInfo(const BinaryBasicBlock &Succ) const { … }
BinaryBasicBlock *BinaryBasicBlock::splitAt(iterator II) { … }
}
}