OpenASIP  2.0
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 }

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 }

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

Referenced by BF2Scheduler::reservePreallocatedFUs().

Here is the call graph for this function:
MoveNode
Definition: MoveNode.hh:65
TTAProgram::Move
Definition: Move.hh:55
ProgramOperation::inputMoveCount
int inputMoveCount() const
Definition: ProgramOperation.cc:600
ProgramOperation::outputMoveCount
int outputMoveCount() const
Definition: ProgramOperation.cc:610
TTAProgram::AnnotatedInstructionElement::addAnnotation
void addAnnotation(const ProgramAnnotation &annotation)
Definition: AnnotatedInstructionElement.cc:63
MoveNode::move
TTAProgram::Move & move()
TTAProgram::ProgramAnnotation
Definition: ProgramAnnotation.hh:49
ProgramOperation::outputMove
MoveNode & outputMove(int index) const
Definition: ProgramOperation.cc:632
ProgramOperation::inputMove
MoveNode & inputMove(int index) const
Definition: ProgramOperation.cc:621