|
LLVM 24.0.0git
|
Post-legalization combines on generic MachineInstrs. More...
#include "RISCV.h"#include "RISCVTargetMachine.h"#include "llvm/CodeGen/GlobalISel/CSEInfo.h"#include "llvm/CodeGen/GlobalISel/Combiner.h"#include "llvm/CodeGen/GlobalISel/CombinerHelper.h"#include "llvm/CodeGen/GlobalISel/CombinerInfo.h"#include "llvm/CodeGen/GlobalISel/GIMatchTableExecutorImpl.h"#include "llvm/CodeGen/GlobalISel/GISelValueTracking.h"#include "llvm/CodeGen/GlobalISel/MIPatternMatch.h"#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFunctionAnalysisManager.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachinePassManager.h"#include "llvm/CodeGen/TargetPassConfig.h"#include "llvm/IR/Analysis.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/FormatVariadic.h"#include "RISCVGenPostLegalizeGICombiner.inc"Go to the source code of this file.
Macros | |
| #define | GET_GICOMBINER_DEPS |
| #define | DEBUG_TYPE "riscv-postlegalizer-combiner" |
| #define | GET_GICOMBINER_TYPES |
| #define | GET_GICOMBINER_CLASS_MEMBERS |
| #define | GET_GICOMBINER_IMPL |
| #define | GET_GICOMBINER_CONSTRUCTOR_INITS |
Functions | |
| static bool | runCombinerOnMachineFunction (MachineFunction &MF, function_ref< bool()> ShouldSkip, function_ref< GISelValueTracking *()> GetVT, function_ref< MachineDominatorTree *()> GetMDT, function_ref< GISelCSEInfo *()> GetCSEInfo) |
| INITIALIZE_PASS_BEGIN (RISCVPostLegalizerCombinerLegacy, DEBUG_TYPE, "Combine RISC-V MachineInstrs after legalization", false, false) INITIALIZE_PASS_END(RISCVPostLegalizerCombinerLegacy | |
Variables | |
| DEBUG_TYPE | |
| Combine RISC V MachineInstrs after | legalization |
| Combine RISC V MachineInstrs after | false |
Post-legalization combines on generic MachineInstrs.
The combines here must preserve instruction legality.
Combines which don't rely on instruction legality should go in the RISCVPreLegalizerCombiner.
Definition in file RISCVPostLegalizerCombiner.cpp.
| #define DEBUG_TYPE "riscv-postlegalizer-combiner" |
Definition at line 42 of file RISCVPostLegalizerCombiner.cpp.
| #define GET_GICOMBINER_CLASS_MEMBERS |
Definition at line 117 of file RISCVPostLegalizerCombiner.cpp.
| #define GET_GICOMBINER_CONSTRUCTOR_INITS |
| #define GET_GICOMBINER_DEPS |
Definition at line 38 of file RISCVPostLegalizerCombiner.cpp.
| #define GET_GICOMBINER_IMPL |
Definition at line 122 of file RISCVPostLegalizerCombiner.cpp.
| #define GET_GICOMBINER_TYPES |
Definition at line 49 of file RISCVPostLegalizerCombiner.cpp.
| INITIALIZE_PASS_BEGIN | ( | RISCVPostLegalizerCombinerLegacy | , |
| DEBUG_TYPE | , | ||
| "Combine RISC-V MachineInstrs after legalization" | , | ||
| false | , | ||
| false | ) |
References DEBUG_TYPE, and INITIALIZE_PASS_DEPENDENCY.
|
static |
Definition at line 173 of file RISCVPostLegalizerCombiner.cpp.
References assert(), F, llvm::MachineFunction::getFunction(), llvm::TargetMachine::getOptLevel(), llvm::MachineFunction::getProperties(), llvm::MachineFunction::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::None, and llvm::reportFatalUsageError().
Referenced by llvm::RISCVPostLegalizerCombinerPass::run(), llvm::WebAssemblyPostLegalizerCombinerPass::run(), and llvm::WebAssemblyPreLegalizerCombinerPass::run().
| DEBUG_TYPE |
Definition at line 210 of file RISCVPostLegalizerCombiner.cpp.
| Combine RISC V MachineInstrs after false |
Definition at line 211 of file RISCVPostLegalizerCombiner.cpp.
| Combine RISC V MachineInstrs after legalization |
Definition at line 211 of file RISCVPostLegalizerCombiner.cpp.