12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #ifndef LLVM_TOOLS_OPT_NEWPMDRIVER_H
- #define LLVM_TOOLS_OPT_NEWPMDRIVER_H
- #include "llvm/ADT/ArrayRef.h"
- #include "llvm/Support/CommandLine.h"
- namespace llvm {
- class StringRef;
- class Module;
- class TargetMachine;
- class ToolOutputFile;
- class TargetLibraryInfoImpl;
- extern cl::opt<bool> DebugifyEach;
- extern cl::opt<std::string> DebugifyExport;
- namespace opt_tool {
- enum OutputKind {
- OK_NoOutput,
- OK_OutputAssembly,
- OK_OutputBitcode,
- OK_OutputThinLTOBitcode,
- };
- enum VerifierKind {
- VK_NoVerifier,
- VK_VerifyInAndOut,
- VK_VerifyEachPass
- };
- enum PGOKind {
- NoPGO,
- InstrGen,
- InstrUse,
- SampleUse
- };
- enum CSPGOKind { NoCSPGO, CSInstrGen, CSInstrUse };
- }
- void printPasses(raw_ostream &OS);
- bool runPassPipeline(StringRef Arg0, Module &M, TargetMachine *TM,
- TargetLibraryInfoImpl *TLII, ToolOutputFile *Out,
- ToolOutputFile *ThinLinkOut, ToolOutputFile *OptRemarkFile,
- StringRef PassPipeline, ArrayRef<StringRef> PassInfos,
- opt_tool::OutputKind OK, opt_tool::VerifierKind VK,
- bool ShouldPreserveAssemblyUseListOrder,
- bool ShouldPreserveBitcodeUseListOrder,
- bool EmitSummaryIndex, bool EmitModuleHash,
- bool EnableDebugify);
- }
- #endif
|