mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-13 04:38:24 +00:00
* Add a stub to FunctionPass so that subclasses can declare that they do not
modify the CFG. It currently does nothing, but will in the future. * Changes to make the public PassManager.h be MUCH smaller, and devoid of implementation details. Now PassManager is just a Pimpl class that wraps PassManagerT<Module>, but lib/VMCore/Pass.cpp is now the only class that has to #include PassManagerT.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2383 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
36
include/llvm/PassManager.h
Normal file
36
include/llvm/PassManager.h
Normal file
@ -0,0 +1,36 @@
|
||||
//===- llvm/PassManager.h - Container for Passes -----------------*- C++ -*--=//
|
||||
//
|
||||
// This file defines the PassManager class. This class is used to hold,
|
||||
// maintain, and optimize execution of Pass's. The PassManager class ensures
|
||||
// that analysis results are available before a pass runs, and that Pass's are
|
||||
// destroyed when the PassManager is destroyed.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef LLVM_PASSMANAGER_H
|
||||
#define LLVM_PASSMANAGER_H
|
||||
|
||||
class Pass;
|
||||
class Module;
|
||||
template<class UnitType> class PassManagerT;
|
||||
|
||||
class PassManager {
|
||||
PassManagerT<Module> *PM; // This is a straightforward Pimpl class
|
||||
public:
|
||||
PassManager();
|
||||
~PassManager();
|
||||
|
||||
// add - Add a pass to the queue of passes to run. This passes ownership of
|
||||
// the Pass to the PassManager. When the PassManager is destroyed, the pass
|
||||
// will be destroyed as well, so there is no need to delete the pass. This
|
||||
// implies that all passes MUST be allocated with 'new'.
|
||||
//
|
||||
void add(Pass *P);
|
||||
|
||||
// run - Execute all of the passes scheduled for execution. Keep track of
|
||||
// whether any of the functions modifies the program, and if so, return true.
|
||||
//
|
||||
bool run(Module *M);
|
||||
};
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user