Go to the documentation of this file.
18 #ifndef LLVM_IR_IRPRINTINGPASSES_H
19 #define LLVM_IR_IRPRINTINGPASSES_H
36 const std::string &Banner =
"",
37 bool ShouldPreserveUseListOrder =
false);
42 const std::string &Banner =
"");
60 bool ShouldPreserveUseListOrder;
65 bool ShouldPreserveUseListOrder =
false);
A set of analyses that are preserved following a run of a transformation pass.
Pass for printing a Function as LLVM's text IR assembly.
This is an optimization pass for GlobalISel generic memory operations.
We currently emits eax Perhaps this is what we really should generate is Is imull three or four cycles eax eax The current instruction priority is based on pattern complexity The former is more complex because it folds a load so the latter will not be emitted Perhaps we should use AddedComplexity to give LEA32r a higher priority We should always try to match LEA first since the LEA matching code does some estimate to determine whether the match is profitable if we care more about code then imull is better It s two bytes shorter than movl leal On a Pentium M
print lazy value Lazy Value Info Printer Pass
A CRTP mix-in to automatically provide informational APIs needed for passes.
This currently compiles esp xmm0 movsd esp eax eax esp ret We should use not the dag combiner This is because dagcombine2 needs to be able to see through the X86ISD::Wrapper which DAGCombine can t really do The code for turning x load into a single vector load is target independent and should be moved to the dag combiner The code for turning x load into a vector load can only handle a direct load from a global or a direct load from the stack It should be generalized to handle any load from P
void printLLVMNameWithoutPrefix(raw_ostream &OS, StringRef Name)
Print out a name of an LLVM value without any prefixes.
PreservedAnalyses run(Function &F, AnalysisManager< Function > &)
PreservedAnalyses run(Module &M, AnalysisManager< Module > &)
This class implements an extremely fast bulk output stream that can only output to a stream.
A Module instance is used to store all the information related to an LLVM module.
Machine Check Debug Module
bool isIRPrintingPass(Pass *P)
Return true if a pass is for IR printing.
Pass for printing a Module as LLVM's text IR assembly.
A container for analyses that lazily runs them and caches their results.
FunctionPass * createPrintFunctionPass(raw_ostream &OS, const std::string &Banner="")
Create and return a pass that prints functions to the specified raw_ostream as they are processed.
ModulePass * createPrintModulePass(raw_ostream &OS, const std::string &Banner="", bool ShouldPreserveUseListOrder=false)
Create and return a pass that writes the module to the specified raw_ostream.