OpenASIP
2.0
|
#include <LLVMTCEPOMBuilder.hh>
Public Member Functions | |
LLVMTCEPOMBuilder () | |
virtual | ~LLVMTCEPOMBuilder () |
virtual unsigned | spDRegNum () const |
virtual unsigned | raPortDRegNum () const |
virtual TCEString | registerFileName (unsigned llvmRegNum) const |
virtual int | registerIndex (unsigned llvmRegNum) const |
virtual TCEString | operationName (const MachineInstr &mi) const |
virtual TTAProgram::Terminal * | createFUTerminal (const MachineOperand &) const |
bool | doFinalization (Module &m) |
bool | doInitialization (Module &M) |
TTAProgram::Instruction * | emitMove (const MachineInstr *mi, TTAProgram::CodeSnippet *proc, bool conditional=false, bool trueGuard=true) |
Public Member Functions inherited from llvm::LLVMTCEBuilder | |
LLVMTCEBuilder (char &ID) | |
LLVMTCEBuilder (const TargetMachine &tm, TTAMachine::Machine *mach, char &ID, bool functionAtATime=false) | |
virtual | ~LLVMTCEBuilder () |
TTAProgram::Program * | result () |
TTAProgram::Instruction * | firstInstructionOfBasicBlock (const llvm::BasicBlock *bb) |
bool | isProgramUsingRestrictedPointers () const |
virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
virtual bool | isTTATarget () const |
void | deleteDeadProcedures () |
void | setInitialStackPointerValue (unsigned value) |
Static Public Attributes | |
static char | ID = 0 |
Static Public Attributes inherited from llvm::LLVMTCEBuilder | |
static char | ID = 0 |
Additional Inherited Members | |
Protected Member Functions inherited from llvm::LLVMTCEBuilder | |
bool | doInitialization (Module &M) |
bool | runOnMachineFunction (MachineFunction &MF) |
bool | doFinalization (Module &M) |
bool | hasAmbiguousASpaceRefs (const TTAProgram::Instruction &instr) const |
virtual bool | writeMachineFunction (MachineFunction &MF) |
void | initDataSections () |
std::shared_ptr< TTAProgram::Move > | createMove (const MachineOperand &src, const MachineOperand &dst, TTAProgram::MoveGuard *guard) |
const TargetMachine & | targetMachine () const |
TCEString | registerName (unsigned llvmRegNum) const |
std::string | mbbName (const MachineBasicBlock &mbb) |
const TTAMachine::HWOperation & | getHWOperation (std::string opName) |
TTAProgram::TerminalRegister * | createTerminalRegister (const std::string &rfName, int index) |
TTAProgram::Terminal * | createTerminal (const MachineOperand &mo, int bitLimit=0) |
std::shared_ptr< TTAProgram::Move > | createMove (TTAProgram::Terminal *src, TTAProgram::Terminal *dst, const TTAMachine::Bus &bus, TTAProgram::MoveGuard *guard=NULL) |
void | emitConstantPool (const llvm::MachineConstantPool &cp) |
virtual TTAProgram::Terminal * | createMBBReference (const MachineOperand &mo) |
virtual TTAProgram::Terminal * | createSymbolReference (const MachineOperand &mo) |
virtual TTAProgram::Terminal * | createProgramOperationReference (const MachineOperand &mo) |
virtual TTAProgram::Terminal * | createSymbolReference (const TCEString &symbolName) |
TTAProgram::Instruction * | emitInstruction (const MachineInstr *mi, TTAProgram::CodeSnippet *proc) |
TTAProgram::Instruction * | emitInlineAsm (const MachineFunction &mf, const MachineInstr *mi, TTAProgram::BasicBlock *bb, TTAProgram::InstructionReferenceManager &irm) |
void | fixProgramOperationReferences () |
void | addLabelForProgramOperation (TCEString label, ProgramOperationPtr po) |
virtual void | emitSPInitialization () |
void | emitSPInitialization (TTAProgram::CodeSnippet &target) |
void | clearFunctionBookkeeping () |
Static Protected Member Functions inherited from llvm::LLVMTCEBuilder | |
static bool | isInlineAsm (const MachineInstr &instr) |
Protected Attributes inherited from llvm::LLVMTCEBuilder | |
std::map< std::string, TTAProgram::Instruction * > | codeLabels_ |
Code labels. More... | |
TTAMachine::Machine * | mach_ |
Machine for building the program. More... | |
const llvm::TargetMachine * | tm_ |
Target machine description. More... | |
llvm::Mangler * | mang_ |
Mangler for mangling label strings. More... | |
TTAProgram::Program * | prog_ |
Current program being built. More... | |
std::set< std::string > | opset_ |
The operations supported by the current target machine. More... | |
bool | functionAtATime_ |
PRegionMarkerAnalyzer * | pregions_ |
int | spillMoveCount_ |
unsigned | initialStackPointerValue_ |
MachineFrameInfo * | curFrameInfo_ |
LLVMTCECmdLineOptions * | options_ = nullptr |
The compiler options. More... | |
Implements building TCE POM from TTA-style (MOVE) sequential input from LLVM codegen.
Definition at line 81 of file LLVMTCEPOMBuilder.hh.
llvm::LLVMTCEPOMBuilder::LLVMTCEPOMBuilder | ( | ) |
Definition at line 67 of file LLVMTCEPOMBuilder.cc.
|
inlinevirtual |
Definition at line 85 of file LLVMTCEPOMBuilder.hh.
|
virtual |
Reimplemented from llvm::LLVMTCEBuilder.
Definition at line 131 of file LLVMTCEPOMBuilder.cc.
References assert, TTAMachine::Machine::functionUnitNavigator(), TTAMachine::HWOperation::io(), TTAMachine::FUPort::isTriggering(), TTAMachine::Machine::Navigator< ComponentType >::item(), llvm::LLVMTCEBuilder::mach_, TTAMachine::FunctionUnit::operation(), operationName(), TTAMachine::FunctionUnit::port(), TCEString::split(), llvm::LLVMTCEBuilder::targetMachine(), and Conversion::toInt().
bool llvm::LLVMTCEPOMBuilder::doFinalization | ( | Module & | m | ) |
Definition at line 190 of file LLVMTCEPOMBuilder.cc.
References TTAProgram::Program::convertSymbolRefsToInsRefs(), llvm::LLVMTCEBuilder::doFinalization(), and llvm::LLVMTCEBuilder::prog_.
bool llvm::LLVMTCEPOMBuilder::doInitialization | ( | Module & | M | ) |
Definition at line 184 of file LLVMTCEPOMBuilder.cc.
References llvm::LLVMTCEBuilder::doInitialization(), TTAMachine::Machine::loadFromADF(), and llvm::LLVMTCEBuilder::mach_.
|
virtual |
Creates POM instruction for a move.
mi | Move machine instruction. |
proc | POM procedure to add the move to. |
Reimplemented from llvm::LLVMTCEBuilder.
Definition at line 98 of file LLVMTCEPOMBuilder.cc.
References TTAProgram::CodeSnippet::add(), TTAProgram::Instruction::addMove(), llvm::LLVMTCEBuilder::createMove(), llvm::LLVMTCEBuilder::createTerminal(), llvm::LLVMTCEBuilder::emitMove(), llvm::LLVMTCEBuilder::result(), llvm::LLVMTCEBuilder::targetMachine(), UniversalMachine::universalBus(), and TTAProgram::Program::universalMachine().
|
virtual |
Implements llvm::LLVMTCEBuilder.
Definition at line 126 of file LLVMTCEPOMBuilder.cc.
Referenced by createFUTerminal().
|
virtual |
Implements llvm::LLVMTCEBuilder.
Definition at line 77 of file LLVMTCEPOMBuilder.cc.
|
virtual |
Implements llvm::LLVMTCEBuilder.
Definition at line 82 of file LLVMTCEPOMBuilder.cc.
References abortWithError.
|
virtual |
Implements llvm::LLVMTCEBuilder.
Definition at line 90 of file LLVMTCEPOMBuilder.cc.
References abortWithError.
|
virtual |
Implements llvm::LLVMTCEBuilder.
Definition at line 72 of file LLVMTCEPOMBuilder.cc.
|
static |
Definition at line 83 of file LLVMTCEPOMBuilder.hh.