|
LLVM 22.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 | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
|
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, KeyT, KeyFunctorT, SparseT >::begin(), llvm::SparseSet< ValueT, KeyT, KeyFunctorT, SparseT >::end(), llvm::SparseSet< ValueT, KeyT, KeyFunctorT, SparseT >::erase(), I, 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 |