#include "llvm/GlobalVariable.h"
#include "llvm/Function.h"
#include "llvm/Transforms/IPO/GlobalDCE.h"
-#include "llvm/Transforms/ConstantMerge.h"
-#include "llvm/Transforms/CleanupGCCOutput.h"
+#include "llvm/Transforms/IPO.h"
#include "Support/CommandLine.h"
#include <memory>
struct FunctionExtractorPass : public Pass {
- const char *getPassName() const { return "Function Extractor"; }
-
bool run(Module &M) {
// Mark all global variables to be internal
for (Module::giterator I = M.gbegin(), E = M.gend(); I != E; ++I)
};
+static RegisterPass<FunctionExtractorPass> X("extract", "Function Extractor");
+
+
int main(int argc, char **argv) {
cl::ParseCommandLineOptions(argc, argv, " llvm extractor\n");
Passes.add(new FunctionExtractorPass());
Passes.add(createGlobalDCEPass()); // Delete unreachable globals
Passes.add(createConstantMergePass()); // Merge dup global constants
- Passes.add(createCleanupGCCOutputPass()); // Fix gccisms
+ Passes.add(createDeadTypeEliminationPass()); // Remove dead types...
Passes.add(new WriteBytecodePass(&std::cout)); // Write bytecode to file...
Passes.run(*M.get());
#include "llvm/GlobalVariable.h"
#include "llvm/Function.h"
#include "llvm/Transforms/IPO/GlobalDCE.h"
-#include "llvm/Transforms/ConstantMerge.h"
-#include "llvm/Transforms/CleanupGCCOutput.h"
+#include "llvm/Transforms/IPO.h"
#include "Support/CommandLine.h"
#include <memory>
struct FunctionExtractorPass : public Pass {
- const char *getPassName() const { return "Function Extractor"; }
-
bool run(Module &M) {
// Mark all global variables to be internal
for (Module::giterator I = M.gbegin(), E = M.gend(); I != E; ++I)
};
+static RegisterPass<FunctionExtractorPass> X("extract", "Function Extractor");
+
+
int main(int argc, char **argv) {
cl::ParseCommandLineOptions(argc, argv, " llvm extractor\n");
Passes.add(new FunctionExtractorPass());
Passes.add(createGlobalDCEPass()); // Delete unreachable globals
Passes.add(createConstantMergePass()); // Merge dup global constants
- Passes.add(createCleanupGCCOutputPass()); // Fix gccisms
+ Passes.add(createDeadTypeEliminationPass()); // Remove dead types...
Passes.add(new WriteBytecodePass(&std::cout)); // Write bytecode to file...
Passes.run(*M.get());