addBranchMetadataToEndOfBodyIfNeeded(ShPtr< Statement > &body, const ShPtr< CFGNode > &clause, const ShPtr< CFGNode > &ifSuccessor) const | retdec::llvmir2hll::StructureConverter | private |
addClausesWithTheSameCond(ShPtr< SwitchStmt > switchStmt, const ExprVector &conds, const ShPtr< Statement > &clauseBody) const | retdec::llvmir2hll::StructureConverter | private |
addGotoTargetIfNotExists(const ShPtr< CFGNode > &node) | retdec::llvmir2hll::StructureConverter | private |
addUnvisitedSuccessorsToQueue(const ShPtr< CFGNode > &node, CFGNodeQueue &toBeVisited, CFGNode::CFGNodeSet &visited) const | retdec::llvmir2hll::StructureConverter | private |
addUnvisitedSuccessorsToQueueInLoop(const ShPtr< CFGNode > &node, CFGNodeQueue &toBeVisited, CFGNode::CFGNodeSet &visited, llvm::Loop *loop) const | retdec::llvmir2hll::StructureConverter | private |
basePass | retdec::llvmir2hll::StructureConverter | private |
bbConverter | retdec::llvmir2hll::StructureConverter | private |
BBSet typedef | retdec::llvmir2hll::StructureConverter | private |
BFSFindFirst(ShPtr< CFGNode > cfg, std::function< bool(ShPtr< CFGNode >)> pred) const | retdec::llvmir2hll::StructureConverter | private |
BFSTraverse(ShPtr< CFGNode > cfg, std::function< bool(ShPtr< CFGNode >)> inspectFunc) const | retdec::llvmir2hll::StructureConverter | private |
BFSTraverseLoop(ShPtr< CFGNode > cfg, std::function< bool(ShPtr< CFGNode >)> inspectFunc) const | retdec::llvmir2hll::StructureConverter | private |
canBeCloned(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
canBeForLoop(llvm::Loop *loop) const | retdec::llvmir2hll::StructureConverter | private |
CFGNodeQueue typedef | retdec::llvmir2hll::StructureConverter | private |
CFGNodeStack typedef | retdec::llvmir2hll::StructureConverter | private |
CFGNodeVector typedef | retdec::llvmir2hll::StructureConverter | private |
cleanUp() | retdec::llvmir2hll::StructureConverter | private |
completelyReduceLoop(ShPtr< CFGNode > loopNode) | retdec::llvmir2hll::StructureConverter | private |
converter | retdec::llvmir2hll::StructureConverter | private |
convertFuncBody(llvm::Function &func) | retdec::llvmir2hll::StructureConverter | |
correctUndefinedLabels() | retdec::llvmir2hll::StructureConverter | private |
createCFG(llvm::BasicBlock &root) | retdec::llvmir2hll::StructureConverter | private |
detectBackEdges(ShPtr< CFGNode > cfg) const | retdec::llvmir2hll::StructureConverter | private |
DFSNodeState enum name | retdec::llvmir2hll::StructureConverter | private |
existsPathWithoutLoopsBetween(const ShPtr< CFGNode > &node1, const ShPtr< CFGNode > &node2) const | retdec::llvmir2hll::StructureConverter | private |
fallsThroughToAnotherCase(const ShPtr< CFGNode > &clauseNode, const ShPtr< CFGNode > &switchNode, bool hasDefault) const | retdec::llvmir2hll::StructureConverter | private |
findContinueOrBreakStatements(ShPtr< Statement > parent, SwitchParent sp) | retdec::llvmir2hll::StructureConverter | private |
findFirstClauseWithSinglePred(const SwitchClauseVector &clauses) const | retdec::llvmir2hll::StructureConverter | private |
fixClonedGotos(ShPtr< Statement > statement) | retdec::llvmir2hll::StructureConverter | private |
generatedNodes | retdec::llvmir2hll::StructureConverter | private |
generatedPHINodes | retdec::llvmir2hll::StructureConverter | private |
getAssignsToPHINodes(const ShPtr< CFGNode > &from, const ShPtr< CFGNode > &to) | retdec::llvmir2hll::StructureConverter | private |
getClauseBody(const ShPtr< CFGNode > &clauseNode, const ShPtr< CFGNode > &switchNode, const ShPtr< CFGNode > &switchSuccessor, const CFGNode::CFGNodeSet &generated) | retdec::llvmir2hll::StructureConverter | private |
getGotoForSuccessor(const ShPtr< CFGNode > &node, const ShPtr< CFGNode > &target) | retdec::llvmir2hll::StructureConverter | private |
getIfClauseBody(const ShPtr< CFGNode > &node, const ShPtr< CFGNode > &clause, const ShPtr< CFGNode > &ifSuccessor) | retdec::llvmir2hll::StructureConverter | private |
getIfClauseBodyClone(const ShPtr< CFGNode > &node, const ShPtr< CFGNode > &clause, const ShPtr< CFGNode > &ifSuccessor) | retdec::llvmir2hll::StructureConverter | private |
getIfStmt(const ShPtr< Expression > &cond, const ShPtr< Statement > &trueBody, const ShPtr< Statement > &falseBody=nullptr) const | retdec::llvmir2hll::StructureConverter | private |
getLabel(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
getLoopFor(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
getLoopSuccessor(const ShPtr< CFGNode > &loopNode) const | retdec::llvmir2hll::StructureConverter | private |
getPHICopiesForSuccessor(llvm::BasicBlock *currBB, llvm::BasicBlock *succ) | retdec::llvmir2hll::StructureConverter | private |
getStatementCount(ShPtr< Statement > statement) | retdec::llvmir2hll::StructureConverter | private |
getSuccessorsBody(const ShPtr< CFGNode > &node, const ShPtr< CFGNode > &succ) | retdec::llvmir2hll::StructureConverter | private |
getSuccessorsBodyClone(const ShPtr< CFGNode > &node, const ShPtr< CFGNode > &succ) | retdec::llvmir2hll::StructureConverter | private |
getSwitchClauses(const ShPtr< CFGNode > &switchNode, bool hasDefault) const | retdec::llvmir2hll::StructureConverter | private |
getSwitchStmt(const ShPtr< CFGNode > &switchNode, const ShPtr< CFGNode > &switchSuccessor, bool hasDefault) | retdec::llvmir2hll::StructureConverter | private |
getSwitchSuccessor(const ShPtr< CFGNode > &switchNode) const | retdec::llvmir2hll::StructureConverter | private |
getTripCount(llvm::Loop *loop) const | retdec::llvmir2hll::StructureConverter | private |
gotoTargets | retdec::llvmir2hll::StructureConverter | private |
gotoTargetsSet | retdec::llvmir2hll::StructureConverter | private |
gotoTargetsToCfgNodes | retdec::llvmir2hll::StructureConverter | private |
hasDefaultClause(const ShPtr< CFGNode > &switchNode, const ShPtr< CFGNode > &switchSuccessor) const | retdec::llvmir2hll::StructureConverter | private |
hasOnlySwitchOrClausesInPreds(const ShPtr< CFGNode > &clauseNode, const ShPtr< CFGNode > &switchNode, bool hasDefault) const | retdec::llvmir2hll::StructureConverter | private |
initialiazeLLVMAnalyses(llvm::Function &func) | retdec::llvmir2hll::StructureConverter | private |
insertClonedLoopTargets(ShPtr< Statement > origParent, ShPtr< Statement > newParent) | retdec::llvmir2hll::StructureConverter | private |
inspectCFGNode(ShPtr< CFGNode > node) | retdec::llvmir2hll::StructureConverter | private |
isClauseTerminatedByBreak(const ShPtr< CFGNode > &clauseNode, const ShPtr< CFGNode > &switchSuccessor) const | retdec::llvmir2hll::StructureConverter | private |
isContinueStatement(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
isForLoop(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
isIfElseStatement(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
isIfElseStatementWithContinue(const ShPtr< CFGNode > &node, std::size_t succ) const | retdec::llvmir2hll::StructureConverter | private |
isIfStatement(const ShPtr< CFGNode > &node, std::size_t succ) const | retdec::llvmir2hll::StructureConverter | private |
isIfStatementWithBreakByGotoInLoop(const ShPtr< CFGNode > &node, std::size_t succ) const | retdec::llvmir2hll::StructureConverter | private |
isIfStatementWithBreakInLoop(const ShPtr< CFGNode > &node, std::size_t succ) const | retdec::llvmir2hll::StructureConverter | private |
isIfStatementWithTerminatingBranch(const ShPtr< CFGNode > &node, std::size_t succ) const | retdec::llvmir2hll::StructureConverter | private |
isIfStatementWithTerminatingBranchToClone(const ShPtr< CFGNode > &node, std::size_t succ) const | retdec::llvmir2hll::StructureConverter | private |
isInParentLoopOf(const ShPtr< CFGNode > &node, llvm::Loop *loop) const | retdec::llvmir2hll::StructureConverter | private |
isLoopHeader(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
isLoopHeader(const ShPtr< CFGNode > &node, llvm::Loop *loop) const | retdec::llvmir2hll::StructureConverter | private |
isNestedWhileTrueLoopWithContinueInHeader(const ShPtr< CFGNode > &node, std::size_t succ) const | retdec::llvmir2hll::StructureConverter | private |
isNodeAfterAllSwitchClauses(const ShPtr< CFGNode > &node, const ShPtr< CFGNode > &switchNode) const | retdec::llvmir2hll::StructureConverter | private |
isNodeAfterSwitchClause(const ShPtr< CFGNode > &node, const ShPtr< CFGNode > &clauseNode) const | retdec::llvmir2hll::StructureConverter | private |
isNodeOutsideLoop(const ShPtr< CFGNode > &node, llvm::Loop *loop) const | retdec::llvmir2hll::StructureConverter | private |
isReducibleClause(const ShPtr< CFGNode > &clauseNode, const ShPtr< CFGNode > &switchNode, const ShPtr< CFGNode > &switchSuccessor, bool hasDefault=true) const | retdec::llvmir2hll::StructureConverter | private |
isSequence(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
isSequenceWithTerminatingBranchToClone(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
isSwitchStatement(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
isWhileTrueLoop(const ShPtr< CFGNode > &node) const | retdec::llvmir2hll::StructureConverter | private |
labelsHandler | retdec::llvmir2hll::StructureConverter | private |
loopHeaders | retdec::llvmir2hll::StructureConverter | private |
loopInfo | retdec::llvmir2hll::StructureConverter | private |
LoopSet typedef | retdec::llvmir2hll::StructureConverter | private |
loopTargets | retdec::llvmir2hll::StructureConverter | private |
MapBBToBBSet typedef | retdec::llvmir2hll::StructureConverter | private |
MapBBToCFGNode typedef | retdec::llvmir2hll::StructureConverter | private |
MapCFGNodeToDFSNodeState typedef | retdec::llvmir2hll::StructureConverter | private |
MapCFGNodeToSwitchClause typedef | retdec::llvmir2hll::StructureConverter | private |
MapLoopToCFGNode typedef | retdec::llvmir2hll::StructureConverter | private |
MapStmtToClones typedef | retdec::llvmir2hll::StructureConverter | private |
MapStmtToTargetNode typedef | retdec::llvmir2hll::StructureConverter | private |
MapTargetToGoto typedef | retdec::llvmir2hll::StructureConverter | private |
NonCopyable(const NonCopyable &)=delete | retdec::utils::NonCopyable | private |
NonCopyable()=default | retdec::utils::NonCopyable | private |
operator=(const NonCopyable &)=delete | retdec::utils::NonCopyable | private |
popFromQueue(CFGNodeQueue &queue) const | retdec::llvmir2hll::StructureConverter | private |
reduceCFG(ShPtr< CFGNode > cfg) | retdec::llvmir2hll::StructureConverter | private |
reducedLoops | retdec::llvmir2hll::StructureConverter | private |
reducedSwitches | retdec::llvmir2hll::StructureConverter | private |
reduceSwitchStatement(ShPtr< CFGNode > node) | retdec::llvmir2hll::StructureConverter | private |
reduceToContinueStatement(ShPtr< CFGNode > node) | retdec::llvmir2hll::StructureConverter | private |
reduceToForLoop(ShPtr< CFGNode > node) | retdec::llvmir2hll::StructureConverter | private |
reduceToIfElseStatement(ShPtr< CFGNode > node) | retdec::llvmir2hll::StructureConverter | private |
reduceToIfElseStatementWithBreakByGotoInLoop(ShPtr< CFGNode > node, std::size_t succ) | retdec::llvmir2hll::StructureConverter | private |
reduceToIfElseStatementWithBreakInLoop(ShPtr< CFGNode > node, std::size_t succ) | retdec::llvmir2hll::StructureConverter | private |
reduceToIfElseStatementWithContinue(ShPtr< CFGNode > node, std::size_t succ) | retdec::llvmir2hll::StructureConverter | private |
reduceToIfStatement(ShPtr< CFGNode > node, std::size_t succ) | retdec::llvmir2hll::StructureConverter | private |
reduceToIfStatementClone(ShPtr< CFGNode > node, std::size_t succ) | retdec::llvmir2hll::StructureConverter | private |
reduceToNestedWhileTrueLoopWithContinueInHeader(ShPtr< CFGNode > node, std::size_t succ) | retdec::llvmir2hll::StructureConverter | private |
reduceToSequence(ShPtr< CFGNode > node) | retdec::llvmir2hll::StructureConverter | private |
reduceToSequenceClone(ShPtr< CFGNode > node) | retdec::llvmir2hll::StructureConverter | private |
reduceToWhileTrueLoop(ShPtr< CFGNode > node) | retdec::llvmir2hll::StructureConverter | private |
removeReducedSuccsOfSwitch(const ShPtr< CFGNode > &switchNode, bool hasDefault) const | retdec::llvmir2hll::StructureConverter | private |
replaceBreakOrContinueOutsideLoop(ShPtr< Statement > statement, SwitchParent sp) | retdec::llvmir2hll::StructureConverter | private |
replaceGoto(CFGNodeVector &targets) | retdec::llvmir2hll::StructureConverter | private |
resModule | retdec::llvmir2hll::StructureConverter | private |
scalarEvolution | retdec::llvmir2hll::StructureConverter | private |
sortSwitchClauses(const SwitchClauseVector &clauses, const ShPtr< CFGNode > &switchSuccessor) const | retdec::llvmir2hll::StructureConverter | private |
statementsOnStack | retdec::llvmir2hll::StructureConverter | private |
statementsStack | retdec::llvmir2hll::StructureConverter | private |
stmtClones | retdec::llvmir2hll::StructureConverter | private |
structureByGotos(ShPtr< CFGNode > cfg) | retdec::llvmir2hll::StructureConverter | private |
StructureConverter(llvm::Pass *basePass, ShPtr< LLVMValueConverter > conv, ShPtr< Module > module) | retdec::llvmir2hll::StructureConverter | |
SwitchClause typedef | retdec::llvmir2hll::StructureConverter | private |
SwitchClauseVector typedef | retdec::llvmir2hll::StructureConverter | private |
targetReferences | retdec::llvmir2hll::StructureConverter | private |
~NonCopyable()=default | retdec::utils::NonCopyable | private |