boomerang.h File Reference


Detailed Description

Interface for the boomerang singleton object.

Revision
1.77
// 1.61.2.2 04 Dec 2002: Trent: Created

Definition in file boomerang.h.

#include <iostream>
#include <string>
#include <set>
#include <vector>
#include <map>
#include "types.h"

Go to the source code of this file.

Classes

class  Boomerang
 Controls the loading, decoding, decompilation and code generation for a program. More...
class  Watcher
 Virtual class to monitor the decompilation. More...

Defines

#define ADHOC_TYPE_ANALYSIS   (!Boomerang::get()->dfaTypeAnalysis && !Boomerang::get()->conTypeAnalysis)
#define CON_TYPE_ANALYSIS   (Boomerang::get()->conTypeAnalysis)
#define DEBUG_GEN   (Boomerang::get()->debugGen)
#define DEBUG_LIVENESS   (Boomerang::get()->debugLiveness)
#define DEBUG_PROOF   (Boomerang::get()->debugProof)
#define DEBUG_RANGE_ANALYSIS   0
#define DEBUG_SWITCH   (Boomerang::get()->debugSwitch)
#define DEBUG_TA   (Boomerang::get()->debugTA)
#define DEBUG_UNUSED   (Boomerang::get()->debugUnused)
#define DFA_TYPE_ANALYSIS   (Boomerang::get()->dfaTypeAnalysis)
#define DUMP_XML   (Boomerang::get()->dumpXML)
#define EXPERIMENTAL   (Boomerang::get()->experimental)
#define LOG   Boomerang::get()->log()
#define LOGTAIL   Boomerang::get()->logTail()
#define USE_DOMINANCE_NUMS   1
#define VERBOSE   (Boomerang::get()->vFlag)


Define Documentation

#define ADHOC_TYPE_ANALYSIS   (!Boomerang::get()->dfaTypeAnalysis && !Boomerang::get()->conTypeAnalysis)
 

Definition at line 307 of file boomerang.h.

#define CON_TYPE_ANALYSIS   (Boomerang::get()->conTypeAnalysis)
 

Definition at line 306 of file boomerang.h.

Referenced by UserProc::typeAnalysis().

#define DEBUG_GEN   (Boomerang::get()->debugGen)
 

Definition at line 308 of file boomerang.h.

Referenced by BasicBlock::WriteBB().

#define DEBUG_LIVENESS   (Boomerang::get()->debugLiveness)
 

Definition at line 304 of file boomerang.h.

Referenced by BasicBlock::calcLiveness(), checkForOverlap(), Cfg::findInterferences(), and BasicBlock::getLiveOut().

#define DEBUG_PROOF   (Boomerang::get()->debugProof)
 

Definition at line 302 of file boomerang.h.

Referenced by UserProc::findPreserveds(), UserProc::findSpPreservation(), and UserProc::prove().

#define DEBUG_RANGE_ANALYSIS   0
 

Definition at line 56 of file boomerang.h.

Referenced by RangeMap::isSubset(), JunctionStatement::rangeAnalysis(), BranchStatement::rangeAnalysis(), RangeMap::substInto(), Range::unionWith(), and Range::widenWith().

#define DEBUG_SWITCH   (Boomerang::get()->debugSwitch)
 

Definition at line 310 of file boomerang.h.

Referenced by UserProc::processDecodedICTs().

#define DEBUG_TA   (Boomerang::get()->debugTA)
 

Definition at line 301 of file boomerang.h.

Referenced by Prog::conTypeAnalysis(), Unary::descendType(), Signature::dfaTypeAnalysis(), UserProc::dfaTypeAnalysis(), Prog::globalTypeAnalysis(), Assignment::setTypeFor(), and Constraints::substIntoEquates().

#define DEBUG_UNUSED   (Boomerang::get()->debugUnused)
 

Definition at line 303 of file boomerang.h.

Referenced by UserProc::countRefs(), UserProc::removeRedundantParameters(), UserProc::removeRedundantReturns(), Prog::removeUnusedGlobals(), UserProc::removeUnusedLocals(), and UserProc::updateForUseChange().

#define DFA_TYPE_ANALYSIS   (Boomerang::get()->dfaTypeAnalysis)
 

Definition at line 305 of file boomerang.h.

Referenced by UserProc::typeAnalysis().

#define DUMP_XML   (Boomerang::get()->dumpXML)
 

Definition at line 309 of file boomerang.h.

Referenced by UserProc::printAnalysedXML(), UserProc::printCallGraphXML(), Proc::printCallGraphXML(), UserProc::printDecodedXML(), Proc::printDetailsXML(), UserProc::printSSAXML(), and UserProc::printXML().

#define EXPERIMENTAL   (Boomerang::get()->experimental)
 

Definition at line 311 of file boomerang.h.

Referenced by Localiser::postVisit(), Statement::propagateTo(), and CallStatement::updateArguments().

#define LOG   Boomerang::get()->log()
 

Definition at line 53 of file boomerang.h.

Referenced by ImpRefStatement::accept(), ImplicitAssign::accept(), PhiAssign::accept(), Assign::accept(), DataIntervalMap::addItem(), CallStatement::addSigParam(), GotoStatement::adjustFixedDest(), Decompiler::alert_decompile_debug_point(), BasicBlock::calcLiveness(), checkForOverlap(), UserProc::clearUses(), Cfg::commonPDom(), condToRelational(), Prog::conTypeAnalysis(), UserProc::conTypeAnalysis(), UserProc::countRefs(), Exp::createDotFile(), FrontEnd::createReturnBlock(), FrontEnd::decode(), Prog::decodeEntryPoint(), Prog::decodeFragment(), FrontEnd::decodeFragment(), FrontEnd::decodeInstruction(), Prog::decompile(), UserProc::decompile(), Unary::descendType(), Statement::dfaMapLocals(), Signature::dfaTypeAnalysis(), UserProc::dfaTypeAnalysis(), Statement::doPropagateTo(), UserProc::doRenameBlockVars(), Constraints::doSolve(), UserProc::earlyDecompile(), UserProc::eliminateDuplicateArgs(), CallStatement::ellipsisProcessing(), Cfg::findInterferences(), UserProc::findPreserveds(), UserProc::findSpPreservation(), UserProc::fixCallAndPhiRefs(), UserProc::fixUglyBranches(), Prog::fromSSAform(), UserProc::fromSSAform(), BranchStatement::genConstraints(), CallStatement::generateCode(), BasicBlock::getCond(), Prog::getDefaultCluster(), BasicBlock::getDest(), FrontEnd::getLibSignature(), BasicBlock::getLiveOut(), Signature::getStackRegister(), UserProc::getSymbolExp(), Prog::globalTypeAnalysis(), PentiumFrontEnd::helperFunc(), UserProc::initialiseDecompile(), UserProc::initialParameters(), DataIntervalMap::isClear(), RangeMap::isSubset(), UserProc::logSuspectMemoryDefs(), UserProc::lookupParam(), UserProc::mapExpressionsToLocals(), UserProc::mapLocalsAndParams(), UserProc::mapParameters(), PointerType::match(), Type::match(), Location::match(), Terminal::match(), Const::match(), RefExp::match(), Ternary::match(), Unary::match(), Binary::match(), Statement::mayAlias(), SizeType::meetWith(), UserProc::middleDecompile(), Cfg::newBB(), Prog::newGlobalName(), UserProc::newLocal(), Prog::newProc(), TargetQueue::nextAddress(), Boomerang::objcDecode(), Const::operator<(), Const::operator==(), Location::polySimplify(), Ternary::print(), Terminal::print(), Binary::print(), Const::print(), UserProc::printDFG(), Signature::printToLog(), UserProc::printToLog(), Cfg::printToLog(), BasicBlock::printToLog(), UserProc::processDecodedICTs(), UserProc::processFloatConstants(), SparcFrontEnd::processProc(), FrontEnd::processProc(), PentiumFrontEnd::processStringInst(), BasicBlock::processSwitch(), UserProc::propagateStatements(), Statement::propagateTo(), UserProc::prove(), UserProc::prover(), CallingConvention::StdC::PPCSignature::qualified(), CallingConvention::StdC::SparcSignature::qualified(), CallingConvention::StdC::ST20Signature::qualified(), CallingConvention::StdC::PentiumSignature::qualified(), CallingConvention::Win32Signature::qualified(), CallStatement::rangeAnalysis(), JunctionStatement::rangeAnalysis(), BranchStatement::rangeAnalysis(), UserProc::rangeAnalysis(), Prog::readSymbolFile(), UserProc::recursionGroupAnalysis(), UserProc::removeCallLiveness(), UserProc::removeNullStatements(), Proc::removeParameter(), UserProc::removeRedundantParameters(), UserProc::removeRedundantReturns(), Prog::removeUnusedGlobals(), UserProc::removeUnusedLocals(), UserProc::remUnusedStmtEtc(), UserProc::searchRegularLocals(), UserProc::setLocalType(), Prog::setNewProc(), Signature::setParamType(), PointerType::setPointsTo(), Assignment::setTypeFor(), RTL::simplify(), Cfg::simplify(), Constraints::solve(), RangeMap::substInto(), Constraints::substIntoEquates(), UserProc::typeAnalysis(), BasicBlock::undoComputedBB(), Constraints::unify(), Range::unionWith(), UserProc::updateArguments(), UserProc::updateCallDefines(), UserProc::updateCalls(), UserProc::updateForUseChange(), StmtSsaXformer::visit(), TargetQueue::visit(), Range::widenWith(), and BasicBlock::WriteBB().

#define LOGTAIL   Boomerang::get()->logTail()
 

Definition at line 54 of file boomerang.h.

#define USE_DOMINANCE_NUMS   1
 

Definition at line 36 of file boomerang.h.

#define VERBOSE   (Boomerang::get()->vFlag)
 

Definition at line 300 of file boomerang.h.

Referenced by Cfg::commonPDom(), FrontEnd::createReturnBlock(), FrontEnd::decode(), Prog::decodeEntryPoint(), Prog::decompile(), UserProc::decompile(), UserProc::doRenameBlockVars(), UserProc::earlyDecompile(), UserProc::findPreserveds(), UserProc::findSpPreservation(), UserProc::fixUglyBranches(), UserProc::generateCode(), BasicBlock::getCond(), BasicBlock::getDest(), Signature::getStackRegister(), UserProc::initialiseDecompile(), RangeMap::isSubset(), Statement::mayAlias(), UserProc::middleDecompile(), Cfg::newBB(), Prog::newGlobalName(), Boomerang::objcDecode(), Location::polySimplify(), UserProc::printDFG(), FrontEnd::processProc(), CallingConvention::StdC::PPCSignature::qualified(), CallingConvention::StdC::SparcSignature::qualified(), CallingConvention::StdC::ST20Signature::qualified(), CallingConvention::StdC::PentiumSignature::qualified(), CallingConvention::Win32Signature::qualified(), JunctionStatement::rangeAnalysis(), BranchStatement::rangeAnalysis(), UserProc::recursionGroupAnalysis(), UserProc::remUnusedStmtEtc(), Prog::setNewProc(), PointerType::setPointsTo(), RTL::simplify(), Cfg::simplify(), RangeMap::substInto(), Constraints::substIntoEquates(), Range::unionWith(), UserProc::updateCalls(), Signature::usesNewParam(), and Range::widenWith().


Generated on Tue Sep 19 21:18:36 2006 for Boomerang by  doxygen 1.4.6