LLVM API Documentation

InstrScheduling.cpp File Reference

#include "SchedPriorities.h"
#include "llvm/BasicBlock.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/Target/TargetMachine.h"
#include "../MachineCodeForInstruction.h"
#include "../LiveVar/FunctionLiveVarInfo.h"
#include "../SparcV9InstrInfo.h"
#include "llvm/Support/CommandLine.h"
#include <algorithm>
#include <iostream>

Include dependency graph for InstrScheduling.cpp:

Go to the source code of this file.

Namespaces

namespace  llvm

Classes

class  llvm::InstrGroup
class  llvm::ScheduleIterator< _NodeType >
class  llvm::InstrSchedule
class  llvm::DelaySlotInfo
class  llvm::SchedulingManager

Functions

static void llvm::AssignInstructionsToSlots (class SchedulingManager &S, unsigned maxIssue)
static void llvm::RecordSchedule (MachineBasicBlock &MBB, const SchedulingManager &S)
static void llvm::MarkSuccessorsReady (SchedulingManager &S, const SchedGraphNode *node)
static unsigned llvm::FindSlotChoices (SchedulingManager &S, DelaySlotInfo *&getDelaySlotInfo)
static unsigned llvm::ChooseOneGroup (SchedulingManager &S)
static void llvm::ForwardListSchedule (SchedulingManager &S)
static bool llvm::NodeCanFillDelaySlot (const SchedulingManager &S, const SchedGraphNode *node, const SchedGraphNode *brNode, bool nodeIsPredecessor)
static void llvm::MarkNodeForDelaySlot (SchedulingManager &S, SchedGraph *graph, SchedGraphNode *node, const SchedGraphNode *brNode, bool nodeIsPredecessor)
void llvm::FindUsefulInstructionsForDelaySlots (SchedulingManager &S, SchedGraphNode *brNode, std::vector< SchedGraphNode * > &sdelayNodeVec)
static void llvm::ReplaceNopsWithUsefulInstr (SchedulingManager &S, SchedGraphNode *node, std::vector< SchedGraphNode * > sdelayNodeVec, SchedGraph *graph)
static void llvm::ChooseInstructionsForDelaySlots (SchedulingManager &S, MachineBasicBlock &MBB, SchedGraph *graph)
static bool llvm::ConflictsWithChoices (const SchedulingManager &S, MachineOpCode opCode)
static bool llvm::ViolatesMinimumGap (const SchedulingManager &S, MachineOpCode opCode, const CycleCount_t inCycle)
bool llvm::instrIsFeasible (const SchedulingManager &S, MachineOpCode opCode)
FunctionPass * llvm::createInstructionSchedulingWithSSAPass (const TargetMachine &TM)

Variables

SchedDebugLevel_t llvm::SchedDebugLevel
static cl::opt< bool > llvm::EnableFillingDelaySlots ("sched-fill-delay-slots", cl::Hidden, cl::desc("Fill branch delay slots during local scheduling"))
static cl::opt< SchedDebugLevel_t,
true > 
llvm::SDL_opt ("dsched", cl::Hidden, cl::location(SchedDebugLevel), cl::desc("enable instruction scheduling debugging information"), cl::values(clEnumValN(Sched_NoDebugInfo,"n","disable debug output"), clEnumValN(Sched_PrintMachineCode,"y","print machine code after scheduling"), clEnumValN(Sched_PrintSchedTrace,"t","print trace of scheduling actions"), clEnumValN(Sched_PrintSchedGraphs,"g","print scheduling graphs"), clEnumValEnd))
const TargetMachine & target


Variable Documentation

const TargetMachine& target

Definition at line 1441 of file InstrScheduling.cpp.

Referenced by ConstantToAlignment(), ConstantToSize(), llvm::ConvertConstantToIntType(), llvm::DeleteInstruction(), llvm::IsUselessCopy(), llvm::RemoveUselessCopies(), llvm::ModuloSchedulingSBPass::runOnFunction(), llvm::ModuloSchedulingPass::runOnFunction(), llvm::SchedGraph::SchedGraph(), llvm::SchedGraphSet::SchedGraphSet(), SizeToAlignment(), and TypeToAlignment().