Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

BasicBlockCounter Class Reference

#include <BasicBlockCounter.h>

Inheritance diagram for BasicBlockCounter:

CommonMethods XCoffFileGen List of all members.

Public Member Functions

 BasicBlockCounter (XCoffFile *xcoff, char *extension, uint32_t phaseNo)
virtual ~BasicBlockCounter ()
void selectInstrumentationPoints (char *blockFile)
uint32_t maxByteCountPerInst ()
uint32_t byteCountForInst (uint32_t instPointIdx, uint64_t instStubAddress, TextSection *textSect)
uint32_t generateCodeForInst (uint32_t instPointIdx, uint64_t instStubAddress, TextSection *textSect, BaseGen *gen, uint32_t genBufferOffset)
uint32_t bytesPerBufferEntry ()
uint32_t howManyBufferEntry ()
bool filterBlockForInst (BasicBlock *bb)
char * getSharedLibFuncName (uint32_t i)
char * getGenClassName ()
uint32_t spaceForBlockInfo ()
void getSharedLibraryPathAndObj (char **path, char **name, char **obj)
void initializeReservedData (DataSection *dataSect, BaseGen *gen)

Constructor & Destructor Documentation

BasicBlockCounter::BasicBlockCounter XCoffFile xcoff,
char *  extension,
uint32_t  phaseNo
 

Definition at line 8 of file BasicBlockCounter.C.

virtual BasicBlockCounter::~BasicBlockCounter  )  [inline, virtual]
 

Definition at line 10 of file BasicBlockCounter.h.


Member Function Documentation

uint32_t BasicBlockCounter::byteCountForInst uint32_t  instPointIdx,
uint64_t  instStubAddress,
TextSection textSect
[virtual]
 

Reimplemented from XCoffFileGen.

Definition at line 54 of file BasicBlockCounter.C.

References ASSERT, BasicBlock::findFirstInstPoint(), CommonMethods::getDataOffsetForInst(), RawSection::inRange(), Instruction::isInJumpInsnRange(), Instruction::isInLoadOffsetInsnRange(), and SECOND_HALFWORD.

uint32_t BasicBlockCounter::bytesPerBufferEntry  )  [inline, virtual]
 

Reimplemented from CommonMethods.

Definition at line 18 of file BasicBlockCounter.h.

Referenced by generateCodeForInst().

bool BasicBlockCounter::filterBlockForInst BasicBlock bb  )  [virtual]
 

Reimplemented from CommonMethods.

Definition at line 208 of file BasicBlockCounter.C.

References BasicBlock::getNumOfFloatPOps(), BasicBlock::getNumOfMemoryOps(), BasicBlock::isJumpTable(), and BasicBlock::isTrace().

Referenced by selectInstrumentationPoints().

uint32_t BasicBlockCounter::generateCodeForInst uint32_t  instPointIdx,
uint64_t  instStubAddress,
TextSection textSect,
BaseGen gen,
uint32_t  genBufferOffset
[virtual]
 

Reimplemented from XCoffFileGen.

Definition at line 94 of file BasicBlockCounter.C.

References ASSERT, Instruction::bits(), bytesPerBufferEntry(), BasicBlock::findFirstInstPoint(), CommonMethods::generateFuncCallFull(), Instruction::generateIncrement(), Instruction::generateJumpInsn(), Instruction::generateLoad32BitHigh(), Instruction::generateLoad32BitLow(), Instruction::generateLoadDouble(), Instruction::generateLoadDoubleIndx(), Instruction::generateLoadWord(), Instruction::generateLoadWordIndx(), Instruction::generateStoreDouble(), Instruction::generateStoreDoubleIndx(), Instruction::generateStoreWord(), Instruction::generateStoreWordIndx(), CommonMethods::getDataOffsetForInst(), CommonMethods::getGPRSaveOffset(), BasicBlock::getHashCode(), BasicBlock::getInstructionIterator(), BaseGen::getParsedBase(), RawSection::getSectHeader(), HashCode::getValue(), RawSection::inRange(), Instruction::isInJumpInsnRange(), Instruction::isInLoadOffsetInsnRange(), LAST_VOLATILE_REG, maxByteCountPerInst(), PRINT_INFOR, RawSection::readInstruction(), REG_TOC, AddressIterator::skipTo(), CommonMethods::updateTOCRegister(), BaseGen::writeInstructions(), and BaseGen::writeWord().

char* BasicBlockCounter::getGenClassName  )  [inline, virtual]
 

Reimplemented from XCoffFileGen.

Definition at line 25 of file BasicBlockCounter.h.

char* BasicBlockCounter::getSharedLibFuncName uint32_t  i  )  [inline, virtual]
 

Reimplemented from XCoffFileGen.

Definition at line 21 of file BasicBlockCounter.h.

References ASSERT, and CommonMethods::getNumOfSharedLibFuncs().

void BasicBlockCounter::getSharedLibraryPathAndObj char **  path,
char **  name,
char **  obj
[virtual]
 

Reimplemented from XCoffFileGen.

Definition at line 219 of file BasicBlockCounter.C.

References ASSERT, XCoffFileGen::getPathToInstLib(), and XCoffFile::is64Bit().

uint32_t BasicBlockCounter::howManyBufferEntry  )  [inline, virtual]
 

Reimplemented from CommonMethods.

Definition at line 19 of file BasicBlockCounter.h.

void BasicBlockCounter::initializeReservedData DataSection dataSect,
BaseGen gen
[virtual]
 

Reimplemented from XCoffFileGen.

Definition at line 230 of file BasicBlockCounter.C.

References RawSection::getSectHeader(), and BaseGen::writeString().

uint32_t BasicBlockCounter::maxByteCountPerInst  )  [inline, virtual]
 

Reimplemented from XCoffFileGen.

Definition at line 14 of file BasicBlockCounter.h.

Referenced by generateCodeForInst().

void BasicBlockCounter::selectInstrumentationPoints char *  blockFile  )  [virtual]
 

Reimplemented from XCoffFileGen.

Definition at line 13 of file BasicBlockCounter.C.

References ASSERT, filterBlockForInst(), CommonMethods::findTerminationBlock(), XCoffFile::getAllBlocks(), BasicBlock::getHashCode(), XCoffFile::getNumberOfBlocks(), HashCode::getValue(), PRINT_DEBUG, PRINT_ERROR, and PRINT_INFOR.

uint32_t BasicBlockCounter::spaceForBlockInfo  )  [inline, virtual]
 

Reimplemented from CommonMethods.

Definition at line 26 of file BasicBlockCounter.h.


The documentation for this class was generated from the following files:
Generated on Mon Jan 28 11:08:37 2008 for PMaCInstrumentor by doxygen 1.3.5