OpenASIP 2.2
Loading...
Searching...
No Matches
Macros | Functions
BF2Scheduler.cc File Reference
#include "BF2Scheduler.hh"
#include "BF2ScheduleFront.hh"
#include "DataDependenceGraph.hh"
#include "SimpleResourceManager.hh"
#include "FunctionUnit.hh"
#include "Unit.hh"
#include "Machine.hh"
#include "Terminal.hh"
#include "TerminalRegister.hh"
#include "HWOperation.hh"
#include "FUPort.hh"
#include "MoveNodeSet.hh"
#include "Operation.hh"
#include "Move.hh"
#include "ControlUnit.hh"
#include "BUMoveNodeSelector.hh"
#include "LLVMTCECmdLineOptions.hh"
#include "MachineConnectivityCheck.hh"
#include "InterPassData.hh"
#include "RegisterCopyAdder.hh"
#include "MoveGuard.hh"
#include "DisassemblyRegister.hh"
#include "BasicBlockNode.hh"
#include "BasicBlock.hh"
#include "BasicBlockScheduler.hh"
#include "UnboundedRegisterFile.hh"
#include "RegisterRenamer.hh"
#include "MapTools.hh"
#include "BFScheduleBU.hh"
#include "ProgramAnnotation.hh"
#include "MoveNodeDuplicator.hh"
#include "BFSwapOperands.hh"
#include "BFShareOperand.hh"
#include "BFSchedulePreLoopShared.hh"
#include "BFRemoveLoopChecks.hh"
#include "LoopAnalyzer.hh"
#include "BFPostpassBypasser.hh"
Include dependency graph for BF2Scheduler.cc:

Go to the source code of this file.

Macros

#define REMOVE_LOOP_CHECKS_WITH_LOOPBUFFER
 
#define ENABLE_PRE_LOOP_SHARING
 

Functions

void annotateAllInputs (ProgramOperation &po, TTAProgram::ProgramAnnotation::Id id, const std::string &payload)
 
void annotateAllOutputs (ProgramOperation &po, TTAProgram::ProgramAnnotation::Id id, const std::string &payload)
 

Detailed Description

Definition of BF2Scheduler class.

Bypassing Bottom-up Breadth-First-Search Instruction Scheduler (BubblefishScheduler)

Author
Heikki Kultala 2014-2020(heikki.kultala-no.spam-tuni.fi)
Note
rating: red

Definition in file BF2Scheduler.cc.

Macro Definition Documentation

◆ ENABLE_PRE_LOOP_SHARING

#define ENABLE_PRE_LOOP_SHARING

Definition at line 90 of file BF2Scheduler.cc.

◆ REMOVE_LOOP_CHECKS_WITH_LOOPBUFFER

#define REMOVE_LOOP_CHECKS_WITH_LOOPBUFFER

Definition at line 89 of file BF2Scheduler.cc.

Function Documentation

◆ annotateAllInputs()

void annotateAllInputs ( ProgramOperation po,
TTAProgram::ProgramAnnotation::Id  id,
const std::string &  payload 
)

Definition at line 1524 of file BF2Scheduler.cc.

1526 {
1527 for (int i = 0; i < po.inputMoveCount(); i++) {
1528 MoveNode& inputNode = po.inputMove(i);
1529 TTAProgram::Move& m = inputNode.move();
1530 m.addAnnotation(
1531 TTAProgram::ProgramAnnotation(id, payload));
1532 }
1533}
TTAProgram::Move & move()
int inputMoveCount() const
MoveNode & inputMove(int index) const
void addAnnotation(const ProgramAnnotation &annotation)

References TTAProgram::AnnotatedInstructionElement::addAnnotation(), ProgramOperation::inputMove(), ProgramOperation::inputMoveCount(), and MoveNode::move().

Referenced by BF2Scheduler::reservePreallocatedFUs().

Here is the call graph for this function:

◆ annotateAllOutputs()

void annotateAllOutputs ( ProgramOperation po,
TTAProgram::ProgramAnnotation::Id  id,
const std::string &  payload 
)

Definition at line 1535 of file BF2Scheduler.cc.

1537 {
1538 for (int i = 0; i < po.outputMoveCount(); i++) {
1539 MoveNode& outputNode = po.outputMove(i);
1540 TTAProgram::Move& m = outputNode.move();
1541 m.addAnnotation(
1542 TTAProgram::ProgramAnnotation(id, payload));
1543 }
1544}
int outputMoveCount() const
MoveNode & outputMove(int index) const

References TTAProgram::AnnotatedInstructionElement::addAnnotation(), MoveNode::move(), ProgramOperation::outputMove(), and ProgramOperation::outputMoveCount().

Referenced by BF2Scheduler::reservePreallocatedFUs().

Here is the call graph for this function: