LLVM 20.0.0git
|
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/ProfileSummaryInfo.h"
#include "llvm/CodeGen/LazyMachineBlockFrequencyInfo.h"
#include "llvm/CodeGen/MachineCombinerPattern.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/MachineSizeOpts.h"
#include "llvm/CodeGen/MachineTraceMetrics.h"
#include "llvm/CodeGen/RegisterClassInfo.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSchedule.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "machine-combiner" |
Functions | |
STATISTIC (NumInstCombined, "Number of machineinst combined") | |
INITIALIZE_PASS_BEGIN (MachineCombiner, DEBUG_TYPE, "Machine InstCombiner", false, false) INITIALIZE_PASS_END(MachineCombiner | |
static void | insertDeleteInstructions (MachineBasicBlock *MBB, MachineInstr &MI, SmallVectorImpl< MachineInstr * > &InsInstrs, SmallVectorImpl< MachineInstr * > &DelInstrs, MachineTraceMetrics::Ensemble *TraceEnsemble, SparseSet< LiveRegUnit > &RegUnits, const TargetInstrInfo *TII, unsigned Pattern, bool IncrementalUpdate) |
Inserts InsInstrs and deletes DelInstrs. | |
Variables | |
static cl::opt< unsigned > | inc_threshold ("machine-combiner-inc-threshold", cl::Hidden, cl::desc("Incremental depth computation will be used for basic " "blocks with more instructions."), cl::init(500)) |
static cl::opt< bool > | dump_intrs ("machine-combiner-dump-subst-intrs", cl::Hidden, cl::desc("Dump all substituted intrs"), cl::init(false)) |
static cl::opt< bool > | VerifyPatternOrder ("machine-combiner-verify-pattern-order", cl::Hidden, cl::desc("Verify that the generated patterns are ordered by increasing latency"), cl::init(false)) |
DEBUG_TYPE | |
Machine | InstCombiner |
Machine | false |
#define DEBUG_TYPE "machine-combiner" |
Definition at line 37 of file MachineCombiner.cpp.
INITIALIZE_PASS_BEGIN | ( | MachineCombiner | , |
DEBUG_TYPE | , | ||
"Machine InstCombiner" | , | ||
false | , | ||
false | |||
) |
|
static |
Inserts InsInstrs and deletes DelInstrs.
Incrementally updates instruction depths if requested.
MBB | basic block to insert instructions in |
MI | current machine instruction |
InsInstrs | new instructions to insert in MBB |
DelInstrs | instruction to delete from MBB |
TraceEnsemble | is a pointer to the machine trace information |
RegUnits | set of live registers, needed to compute instruction depths |
TII | is target instruction info, used to call target hook |
Pattern | is used to call target hook finalizeInsInstrs |
IncrementalUpdate | if true, compute instruction depths incrementally, otherwise invalidate the trace |
Definition at line 481 of file MachineCombiner.cpp.
References llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::begin(), llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::end(), llvm::SparseSet< ValueT, KeyFunctorT, SparseT >::erase(), I, llvm::MachineBasicBlock::insert(), llvm::MachineTraceMetrics::Ensemble::invalidate(), MBB, MI, TII, and llvm::MachineTraceMetrics::Ensemble::updateDepth().
STATISTIC | ( | NumInstCombined | , |
"Number of machineinst combined" | |||
) |
DEBUG_TYPE |
Definition at line 134 of file MachineCombiner.cpp.
|
static |
Machine false |
Definition at line 135 of file MachineCombiner.cpp.
|
static |
Definition at line 134 of file MachineCombiner.cpp.
|
static |