OpenASIP
2.0
|
Public Member Functions | |
GeneratedTCEPlugin () | |
virtual | ~GeneratedTCEPlugin () |
virtual const TargetInstrInfo * | getInstrInfo () const override |
virtual const TargetRegisterInfo * | getRegisterInfo () const override |
virtual const TargetFrameLowering * | getFrameLowering () const override |
virtual TargetLowering * | getTargetLowering () const override |
virtual TargetTransformInfo | getTargetTransformInfo (const Function &F) const override |
virtual const TargetSubtargetInfo * | getSubtarget () const override |
virtual FunctionPass * | createISelPass (TCETargetMachine *tm) override |
virtual unsigned | spDRegNum () override |
Returns ID number of the stack pointer register. More... | |
virtual unsigned | fpDRegNum () override |
Returns ID number of the frame pointer register. More... | |
virtual unsigned | rvDRegNum () override |
virtual unsigned | rvHighDRegNum () override |
virtual std::vector< unsigned > | getParamDRegNums () const override |
virtual std::vector< unsigned > | getVectorRVDRegNums () const override |
virtual const std::string * | adfXML () override |
Returns pointer to xml string of the target machine .adf. More... | |
virtual MVT::SimpleValueType | getDefaultType () const override |
virtual std::string | rfName (unsigned dwarfRegNum) override |
virtual unsigned | registerIndex (unsigned dwarfRegNum) override |
unsigned | llvmRegisterId (const TCEString &ttaRegister) override |
unsigned int | extractElementLane (const llvm::MachineInstr &) const override |
virtual std::string | operationName (unsigned opc) const override |
virtual bool | validStackAccessOperation (const std::string &opName) const override |
Returns true if OSAL operation is valid for stack accesses. More... | |
virtual bool | hasOperation (TCEString operationName) const override |
Returns true in case the target supports the given osal operation. More... | |
virtual unsigned | opcode (TCEString operationName) const override |
Returns the opcode for the given osal operation, undefined if not found. More... | |
virtual int | getTruePredicateOpcode (unsigned opc) const override |
virtual int | getFalsePredicateOpcode (unsigned opc) const override |
unsigned int | raPortDRegNum () override |
Returns ID number of the return address register. More... | |
std::string | dataASName () override |
Returns name of the data address space. More... | |
virtual bool | hasSDIV () const override |
virtual bool | hasUDIV () const override |
virtual bool | hasSREM () const override |
virtual bool | hasUREM () const override |
virtual bool | hasMUL () const override |
virtual bool | hasROTL () const override |
virtual bool | hasROTR () const override |
virtual bool | hasSXHW () const override |
virtual bool | hasSXQW () const override |
virtual bool | hasSQRTF () const override |
virtual bool | hasSHR () const override |
virtual bool | hasSHL () const override |
virtual bool | hasSHRU () const override |
virtual bool | has8bitLoads () const override |
virtual bool | has16bitLoads () const override |
virtual int | maxVectorSize () const override |
virtual bool | analyzeCCBranch (llvm::MachineInstr &i, llvm::SmallVectorImpl< llvm::MachineOperand > &cond) const override |
virtual void | registerTargetMachine (TCETargetMachine &tm) override |
Plugin needs target machine for TragetLowering generation. More... | |
virtual int | getLoad (const TargetRegisterClass *rc) const override |
virtual int | getStore (const TargetRegisterClass *rc) const override |
virtual int | getMinOpcode (llvm::SDNode *n) const override |
virtual int | getMaxOpcode (llvm::SDNode *n) const override |
virtual int | getMinuOpcode (llvm::SDNode *n) const override |
virtual int | getMaxuOpcode (llvm::SDNode *n) const override |
virtual const llvm::TargetRegisterClass * | extrasRegClass (const llvm::TargetRegisterClass *current) const override |
virtual const llvm::TargetRegisterClass * | nodeRegClass (unsigned nodeId, const llvm::TargetRegisterClass *current) const override |
virtual int | getLoadOpcode (const EVT &vt) const override |
virtual int | getAddOpcode (const EVT &vt) const override |
virtual int | getShlOpcode (const EVT &vt) const override |
virtual int | getIorOpcode (const EVT &vt) const override |
virtual bool | isLittleEndian () const override |
virtual bool | is64bit () const override |
virtual bool | canMaterializeConstant (const ConstantInt &ci) const override |
virtual std::tuple< int, int > | getPointerAdjustment (int offset) const override |
virtual void | manualInitialize () |
Public Member Functions inherited from llvm::TCETargetMachinePlugin | |
TCETargetMachinePlugin () | |
virtual | ~TCETargetMachinePlugin () |
virtual unsigned int | extractElementLane (const MachineInstr &mi) const =0 |
virtual int | getLoadOpcode (const llvm::EVT &vt) const =0 |
virtual int | getAddOpcode (const llvm::EVT &vt) const =0 |
virtual int | getShlOpcode (const llvm::EVT &vt) const =0 |
virtual int | getIorOpcode (const llvm::EVT &vt) const =0 |
virtual const DataLayout * | getDataLayout () const |
virtual DataLayout * | getDataLayout () |
virtual TCETargetMachine * | getCurrentTargetMachine () |
virtual const TCETargetMachine * | getCurrentTargetMachine () const |
virtual const SelectionDAGTargetInfo * | getSelectionDAGInfo () const |
Private Member Functions | |
void | initialize () |
Private Attributes | |
std::map< unsigned, TCEString > | opNames_ |
std::map< unsigned, unsigned > | truePredOps_ |
std::map< unsigned, unsigned > | falsePredOps_ |
std::map< unsigned, TCEString > | regNames_ |
std::map< unsigned, unsigned > | regIndices_ |
std::map< TCEString, unsigned > | ttallvmRegMap_ |
Map for TTA register to LLVM register id conversion. More... | |
TCETools::CIStringSet | validStackAccessOperations_ |
Set of valid LLVM opcodes for stack accesses. More... | |
std::string | adfXML_ |
std::string | dataASName_ |
Additional Inherited Members | |
Protected Attributes inherited from llvm::TCETargetMachinePlugin | |
TCEInstrInfo * | instrInfo_ |
Target machine instruction info for the llvm framework. More... | |
TargetLowering * | lowering_ |
TargetFrameLowering * | frameInfo_ |
TCETargetMachine * | tm_ |
TCESubtarget * | subTarget_ |
DataLayout | dl_ |
SelectionDAGTargetInfo | tsInfo_ |
Definition at line 56 of file TCETargetMachinePlugin.cc.
GeneratedTCEPlugin::GeneratedTCEPlugin | ( | ) |
The Constructor.
Definition at line 231 of file TCETargetMachinePlugin.cc.
|
virtual |
The Destructor.
Definition at line 239 of file TCETargetMachinePlugin.cc.
References llvm::TCETargetMachinePlugin::instrInfo_, and llvm::TCETargetMachinePlugin::lowering_.
|
inlineoverridevirtual |
Returns pointer to xml string of the target machine .adf.
Implements llvm::TCETargetMachinePlugin.
Definition at line 90 of file TCETargetMachinePlugin.cc.
References adfXML_.
Referenced by TCEPluginInitializer::TCEPluginInitializer().
|
overridevirtual |
Reimplemented from llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Creates instruction selector for TCE target machine.
Implements llvm::TCETargetMachinePlugin.
Definition at line 327 of file TCETargetMachinePlugin.cc.
References llvm::createTCEISelDag().
|
overridevirtual |
Returns name of the data address space.
Implements llvm::TCETargetMachinePlugin.
Definition at line 573 of file TCETargetMachinePlugin.cc.
References dataASName_.
|
override |
Returns true in case the given opc is for an extract element operation.
Definition at line 336 of file TCETargetMachinePlugin.cc.
References assert.
|
overridevirtual |
Returns the specific register class representing registers belonging to the "extras node" inside a clustered-TTA.
current | The "more general" register class to replace. |
Implements llvm::TCETargetMachinePlugin.
Definition at line 541 of file TCETargetMachinePlugin.cc.
References getRegisterInfo().
|
inlineoverridevirtual |
Returns ID number of the frame pointer register.
Implements llvm::TCETargetMachinePlugin.
Definition at line 74 of file TCETargetMachinePlugin.cc.
|
overridevirtual |
|
inlineoverridevirtual |
Implements llvm::TCETargetMachinePlugin.
Definition at line 94 of file TCETargetMachinePlugin.cc.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
Definition at line 358 of file TCETargetMachinePlugin.cc.
References falsePredOps_.
|
overridevirtual |
Returns TargetFrameInfo object for TCE target.
Implements llvm::TCETargetMachinePlugin.
Definition at line 300 of file TCETargetMachinePlugin.cc.
References llvm::TCETargetMachinePlugin::frameInfo_.
|
overridevirtual |
Returns TargetInstrInfo object for TCE target.
Implements llvm::TCETargetMachinePlugin.
Definition at line 284 of file TCETargetMachinePlugin.cc.
References llvm::TCETargetMachinePlugin::instrInfo_.
|
overridevirtual |
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Returns TargetRegisterInfo object for TCE target.
Implements llvm::TCETargetMachinePlugin.
Definition at line 292 of file TCETargetMachinePlugin.cc.
References llvm::TCETargetMachinePlugin::instrInfo_.
Referenced by extrasRegClass(), and registerTargetMachine().
|
overridevirtual |
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
Definition at line 319 of file TCETargetMachinePlugin.cc.
References llvm::TCETargetMachinePlugin::subTarget_.
|
overridevirtual |
Returns TargetLowering object for TCE target.
Implements llvm::TCETargetMachinePlugin.
Definition at line 313 of file TCETargetMachinePlugin.cc.
References assert, and llvm::TCETargetMachinePlugin::lowering_.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
Definition at line 305 of file TCETargetMachinePlugin.cc.
References llvm::TCETargetMachinePlugin::tm_.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
Definition at line 349 of file TCETargetMachinePlugin.cc.
References truePredOps_.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
inlineoverridevirtual |
Returns true in case the target supports the given osal operation.
Implements llvm::TCETargetMachinePlugin.
Definition at line 117 of file TCETargetMachinePlugin.cc.
References MapTools::containsValue(), operationName(), and opNames_.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
private |
Referenced by manualInitialize(), and registerTargetMachine().
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
Referenced by registerTargetMachine().
|
inlineoverridevirtual |
Returns LLVM register ID corresponding to TTA register name.
ttaRegister | The name of the TTA register. For example "RF.5". |
Implements llvm::TCETargetMachinePlugin.
Definition at line 104 of file TCETargetMachinePlugin.cc.
References ttallvmRegMap_.
|
virtual |
Definition at line 248 of file TCETargetMachinePlugin.cc.
References initialize().
Referenced by TCEPluginInitializer::TCEPluginInitializer().
|
overridevirtual |
Implements llvm::TCETargetMachinePlugin.
|
overridevirtual |
Returns the specific register class representing registers belonging to a "computation node" inside a clustered-TTA.
This can be used to limit the registers to be allocated from a single node, thus also suggest scheduling the operations there. For data parallel code.
nodeId | the ID of the node (starting from 0) |
current | The "more general" register class to replace. |
Implements llvm::TCETargetMachinePlugin.
Definition at line 527 of file TCETargetMachinePlugin.cc.
|
inlineoverridevirtual |
Returns the opcode for the given osal operation, undefined if not found.
Implements llvm::TCETargetMachinePlugin.
Definition at line 121 of file TCETargetMachinePlugin.cc.
References operationName(), and opNames_.
|
overridevirtual |
Maps llvm target opcodes to target operation names.
Returns an empty string in case the operation code could not be mapped to an OSAL operation name. This is the case with pseudo ops, for example.
Implements llvm::TCETargetMachinePlugin.
Definition at line 375 of file TCETargetMachinePlugin.cc.
References TCEISD::CALL, MOVE, NOP, and opNames_.
Referenced by hasOperation(), and opcode().
|
overridevirtual |
Returns ID number of the return address register.
Implements llvm::TCETargetMachinePlugin.
Definition at line 578 of file TCETargetMachinePlugin.cc.
References RA.
|
overridevirtual |
Maps llvm register numbers to target RF indices.
Implements llvm::TCETargetMachinePlugin.
Definition at line 564 of file TCETargetMachinePlugin.cc.
References regIndices_.
|
overridevirtual |
Plugin needs target machine for TragetLowering generation.
Implements llvm::TCETargetMachinePlugin.
Definition at line 253 of file TCETargetMachinePlugin.cc.
References llvm::TCETargetMachinePlugin::frameInfo_, getRegisterInfo(), initialize(), llvm::TCETargetMachinePlugin::instrInfo_, isLittleEndian(), llvm::TCETargetMachinePlugin::lowering_, llvm::TCETargetMachine::stackAlignment(), llvm::TCETargetMachinePlugin::subTarget_, and llvm::TCETargetMachinePlugin::tm_.
|
overridevirtual |
Maps llvm register numbers to target RF names.
Implements llvm::TCETargetMachinePlugin.
Definition at line 553 of file TCETargetMachinePlugin.cc.
References regNames_.
|
inlineoverridevirtual |
Implements llvm::TCETargetMachinePlugin.
Definition at line 78 of file TCETargetMachinePlugin.cc.
|
inlineoverridevirtual |
Implements llvm::TCETargetMachinePlugin.
Definition at line 82 of file TCETargetMachinePlugin.cc.
|
inlineoverridevirtual |
Returns ID number of the stack pointer register.
Implements llvm::TCETargetMachinePlugin.
Definition at line 70 of file TCETargetMachinePlugin.cc.
|
overridevirtual |
Returns true if OSAL operation is valid for stack accesses.
Implements llvm::TCETargetMachinePlugin.
Definition at line 509 of file TCETargetMachinePlugin.cc.
References validStackAccessOperations_.
|
private |
Definition at line 202 of file TCETargetMachinePlugin.cc.
Referenced by adfXML().
|
private |
Definition at line 203 of file TCETargetMachinePlugin.cc.
Referenced by dataASName().
|
private |
Definition at line 194 of file TCETargetMachinePlugin.cc.
Referenced by getFalsePredicateOpcode().
|
private |
Definition at line 192 of file TCETargetMachinePlugin.cc.
Referenced by hasOperation(), opcode(), and operationName().
|
private |
Definition at line 196 of file TCETargetMachinePlugin.cc.
Referenced by registerIndex().
|
private |
Definition at line 195 of file TCETargetMachinePlugin.cc.
Referenced by rfName().
|
private |
Definition at line 193 of file TCETargetMachinePlugin.cc.
Referenced by getTruePredicateOpcode().
|
private |
Map for TTA register to LLVM register id conversion.
Definition at line 198 of file TCETargetMachinePlugin.cc.
Referenced by llvmRegisterId().
|
private |
Set of valid LLVM opcodes for stack accesses.
Definition at line 200 of file TCETargetMachinePlugin.cc.
Referenced by validStackAccessOperation().