basicblock.cpp File Reference

#include <assert.h>
#include "gc.h"
#include "types.h"
#include "statement.h"
#include "exp.h"
#include "cfg.h"
#include "register.h"
#include "rtl.h"
#include "hllcode.h"
#include "proc.h"
#include "prog.h"
#include "util.h"
#include "boomerang.h"
#include "type.h"
#include "log.h"
#include "visitor.h"

Go to the source code of this file.

Defines

#define CHECK_REAL_PHI_LOOPS   0

Functions

void checkForOverlap (LocationSet &liveLocs, LocationSet &ls, ConnectionGraph &ig, UserProc *proc)
void findConstantValues (Statement *s, std::list< int > &dests)
void findSwParams (char form, Exp *e, Exp *&expr, ADDRESS &T)
void init_basicblock ()
void printBB (PBB bb)

Variables

static char chForms [] = { 'a', 'A', 'o', 'O', 'R', 'r'}
char debug_buffer [DEBUG_BUFSIZE]
 For prints functions.
static ExpformA
static Expforma
static ExpformO
static Expformo
static Expformr
static ExpformR
static ExphlForms [] = {forma, formA, formo, formO, formR, formr}
static ExphlVfc [] = {vfc_funcptr, vfc_both, vfc_vto, vfc_vfo, vfc_none}
static Locationvfc_both
static Binaryvfc_funcptr
Locationvfc_none
Locationvfc_vfo
static Locationvfc_vto


Define Documentation

#define CHECK_REAL_PHI_LOOPS   0
 


Function Documentation

void checkForOverlap LocationSet liveLocs,
LocationSet ls,
ConnectionGraph ig,
UserProc proc
 

Definition at line 1623 of file basicblock.cpp.

References LocationSet::begin(), ConnectionGraph::connect(), DEBUG_LIVENESS, LocationSet::end(), LocationSet::findDifferentRef(), and LOG.

Referenced by BasicBlock::calcLiveness().

void findConstantValues Statement s,
std::list< int > &  dests
 

Definition at line 1989 of file basicblock.cpp.

References Statement::isPhi(), and NULL.

void findSwParams char  form,
Exp e,
Exp *&  expr,
ADDRESS T
 

Definition at line 1872 of file basicblock.cpp.

References Prog::getGlobalAddr(), Const::getInt(), Proc::getProg(), Unary::getSubExp1(), Exp::getSubExp1(), Binary::getSubExp2(), Exp::getSubExp2(), Exp::isSubscript(), NO_ADDRESS, and NULL.

void init_basicblock  ) 
 

Definition at line 1822 of file basicblock.cpp.

References forma, formA, formo, formO, and formR.

Referenced by main().

void printBB PBB  bb  ) 
 

Definition at line 368 of file basicblock.cpp.

References BasicBlock::print().


Variable Documentation

char chForms[] = { 'a', 'A', 'o', 'O', 'R', 'r'} [static]
 

Definition at line 1820 of file basicblock.cpp.

char debug_buffer[DEBUG_BUFSIZE]
 

For prints functions.

Definition at line 285 of file basicblock.cpp.

Referenced by DataIntervalMap::prints(), Statement::prints(), Signature::prints(), RTL::prints(), UserProc::prints(), Exp::prints(), DefCollector::prints(), UseCollector::prints(), Constraints::prints(), EquateMap::prints(), ConstraintMap::prints(), and BasicBlock::prints().

Exp* formA [static]
 

Initial value:

Definition at line 1767 of file basicblock.cpp.

Referenced by init_basicblock().

Exp* forma [static]
 

Initial value:

 new RefExp(
        new Binary(opArrayIndex,
            new RefExp(
                new Terminal(opWild),
                (Statement*)-1),
            new Terminal(opWild)),
        (Statement*)-1)

Definition at line 1758 of file basicblock.cpp.

Referenced by init_basicblock().

Exp* formO [static]
 

Initial value:

 new Binary(opPlus,
    Location::memOf(
        new Binary(opPlus,
            new Binary(opMult,
                new Terminal(opWild),
                new Const(4)),
            new Terminal(opWildIntConst))),
    new Terminal(opWildIntConst))

Definition at line 1786 of file basicblock.cpp.

Referenced by init_basicblock().

Exp* formo [static]
 

Initial value:

 new RefExp(
        new Binary(opArrayIndex,
            new RefExp(
                new Terminal(opWild),
                (Statement*)-1),
            new Terminal(opWild)),
        (Statement*)-1)

Definition at line 1777 of file basicblock.cpp.

Referenced by init_basicblock().

Exp* formr [static]
 

Initial value:

Definition at line 1809 of file basicblock.cpp.

Exp* formR [static]
 

Initial value:

 new Binary(opPlus,
    new Terminal(opPC),
    Location::memOf(new Binary(opPlus,
        new Terminal(opPC),
        new Binary(opPlus,
            new Binary(opMult,
                new Terminal(opWild),
                new Const(4)),
            new Const(opWildIntConst)))))

Definition at line 1797 of file basicblock.cpp.

Referenced by init_basicblock().

Exp* hlForms[] = {forma, formA, formo, formO, formR, formr} [static]
 

Definition at line 1819 of file basicblock.cpp.

Exp* hlVfc[] = {vfc_funcptr, vfc_both, vfc_vto, vfc_vfo, vfc_none} [static]
 

Definition at line 1870 of file basicblock.cpp.

Location* vfc_both [static]
 

Initial value:

 Location::memOf(
    new Binary(opPlus,
        Location::memOf(
            new Binary(opPlus,
                new Terminal(opWild),
                new Terminal(opWildIntConst))),
            new Terminal(opWildIntConst)))

Definition at line 1843 of file basicblock.cpp.

Binary* vfc_funcptr [static]
 

Initial value:

Definition at line 1836 of file basicblock.cpp.

Location* vfc_none
 

Initial value:

Definition at line 1866 of file basicblock.cpp.

Location* vfc_vfo
 

Initial value:

Definition at line 1859 of file basicblock.cpp.

Location* vfc_vto [static]
 

Initial value:

Definition at line 1852 of file basicblock.cpp.


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