OpenASIP 2.2
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
llvm::TCEPassConfig Class Reference

#include <TCETargetMachine.hh>

Inheritance diagram for llvm::TCEPassConfig:
Inheritance graph
Collaboration diagram for llvm::TCEPassConfig:
Collaboration graph

Public Member Functions

 TCEPassConfig (LLVMTargetMachine *tm, PassManagerBase &pm, TCETargetMachinePlugin *plugin)
 
virtual bool addPreISel ()
 
virtual bool addInstSelector ()
 
virtual void addPreRegAlloc ()
 
virtual void addPreSched2 ()
 

Public Attributes

TCETargetMachinePluginplugin_
 

Detailed Description

Definition at line 81 of file TCETargetMachine.hh.

Constructor & Destructor Documentation

◆ TCEPassConfig()

llvm::TCEPassConfig::TCEPassConfig ( LLVMTargetMachine *  tm,
PassManagerBase &  pm,
TCETargetMachinePlugin plugin 
)
inline

Definition at line 83 of file TCETargetMachine.hh.

86 :
87 TargetPassConfig(*tm, pm),
88plugin_(plugin) {
89 assert(plugin_ != NULL);
90 }
#define assert(condition)
TCETargetMachinePlugin * plugin_

References assert, and plugin_.

Member Function Documentation

◆ addInstSelector()

bool TCEPassConfig::addInstSelector ( )
virtual

Creates an instruction selector instance.

Definition at line 256 of file TCETargetMachine.cc.

257{
258 addPass(plugin_->createISelPass(static_cast<TCETargetMachine*>(TM)));
259 return false;
260}
#define addPass(P)
virtual FunctionPass * createISelPass(TCETargetMachine *tm)=0

References addPass, llvm::TCETargetMachinePlugin::createISelPass(), and plugin_.

Here is the call graph for this function:

◆ addPreISel()

bool TCEPassConfig::addPreISel ( )
virtual

Definition at line 274 of file TCETargetMachine.cc.

274 {
277 if (options != NULL && !options->disableHWLoops() &&
278 ((static_cast<TCETargetMachine*>(TM))->ttaMach_)
279 ->hasOperation("hwloop"))
280 #ifdef LLVM_OLDER_THAN_17
281 addPass(createHardwareLoopsPass());
282 #else
283 addPass(createHardwareLoopsLegacyPass());
284 #endif
285
286
287 // lower floating point stuff.. maybe could use plugin as param instead machine...
289 *((static_cast<TCETargetMachine*>(TM))->ttaMach_)));
290
291 if ((static_cast<TCETargetMachine*>(TM))->emulationModule_ != NULL) {
293 *((static_cast<TCETargetMachine*>(TM))->emulationModule_)));
294 }
295
296 CodeGenOpt::Level OptLevel = getOptLevel();
297
298 // NOTE: This must be added before Machine function analysis pass..
299 // needed by POMBuilder to prevent writing debug data to data section
300 // might be good to disable when printing out machine function code...
301 // However, it need to comment out to support debug info
302// PM.add(createStripSymbolsPass(/*bool OnlyDebugInfo=*/true));
303
304 return false;
305}
Pass * createLinkBitcodePass(Module &input)
Pass * createLowerMissingInstructionsPass(const TTAMachine::Machine &mach)
static MachInfoCmdLineOptions options
Definition MachInfo.cc:46
static CmdLineOptions * cmdLineOptions()

References addPass, Application::cmdLineOptions(), createLinkBitcodePass(), createLowerMissingInstructionsPass(), and options.

Here is the call graph for this function:

◆ addPreRegAlloc()

void TCEPassConfig::addPreRegAlloc ( )
virtual

Some extra passes needed by TCE

Parameters
pmFunction pass manager to add isel pass.
fastNot used.

Definition at line 269 of file TCETargetMachine.cc.

269 {
270}

◆ addPreSched2()

void TCEPassConfig::addPreSched2 ( )
virtual

Definition at line 463 of file TCETargetMachine.cc.

463 {
464 addPass(&IfConverterID);
465}

References addPass.

Member Data Documentation

◆ plugin_

TCETargetMachinePlugin* llvm::TCEPassConfig::plugin_

Definition at line 98 of file TCETargetMachine.hh.

Referenced by addInstSelector(), and TCEPassConfig().


The documentation for this class was generated from the following files: