mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-03 13:31:05 +00:00
Expose the lowerallocs pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2602 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3dec1f2722
commit
e04f4b60c6
@ -25,18 +25,23 @@
|
||||
#include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h"
|
||||
#include "llvm/Transforms/Instrumentation/TraceValues.h"
|
||||
#include "llvm/Transforms/Instrumentation/ProfilePaths.h"
|
||||
#include "llvm/Target/TargetData.h"
|
||||
#include "Support/CommandLine.h"
|
||||
#include "Support/Signals.h"
|
||||
#include <fstream>
|
||||
#include <memory>
|
||||
|
||||
// FIXME: This should be parameterizable eventually for different target
|
||||
// types...
|
||||
static TargetData TD("opt target");
|
||||
|
||||
// Opts enum - All of the transformations we can do...
|
||||
enum Opts {
|
||||
// Basic optimizations
|
||||
dce, die, constprop, gcse, inlining, constmerge, strip, mstrip, mergereturn,
|
||||
|
||||
// Miscellaneous Transformations
|
||||
raiseallocs, funcresolve, cleangcc, lowerrefs,
|
||||
raiseallocs, lowerallocs, funcresolve, cleangcc, lowerrefs,
|
||||
|
||||
// Printing and verifying...
|
||||
print, printm, verify,
|
||||
@ -59,6 +64,10 @@ static Pass *createPrintModulePass() {
|
||||
return new PrintModulePass(&cerr);
|
||||
}
|
||||
|
||||
static Pass *createLowerAllocationsPassNT() {
|
||||
return createLowerAllocationsPass(TD);
|
||||
}
|
||||
|
||||
// OptTable - Correlate enum Opts to Pass constructors...
|
||||
//
|
||||
struct {
|
||||
@ -93,9 +102,10 @@ struct {
|
||||
{ printm , createPrintModulePass },
|
||||
{ verify , createVerifierPass },
|
||||
|
||||
{ raiseallocs, createRaiseAllocationsPass },
|
||||
{ cleangcc , createCleanupGCCOutputPass },
|
||||
{ funcresolve, createFunctionResolvingPass },
|
||||
{ raiseallocs, createRaiseAllocationsPass },
|
||||
{ lowerallocs, createLowerAllocationsPassNT },
|
||||
{ cleangcc , createCleanupGCCOutputPass },
|
||||
{ funcresolve, createFunctionResolvingPass },
|
||||
|
||||
{ internalize, createInternalizePass },
|
||||
{ globaldce , createGlobalDCEPass },
|
||||
@ -139,6 +149,7 @@ cl::EnumList<enum Opts> OptimizationList(cl::NoFlags,
|
||||
clEnumVal(poolalloc , "Pool allocate disjoint datastructures"),
|
||||
|
||||
clEnumVal(raiseallocs, "Raise allocations from calls to instructions"),
|
||||
clEnumVal(lowerallocs, "Lower allocations from instructions to calls (TD)"),
|
||||
clEnumVal(cleangcc , "Cleanup GCC Output"),
|
||||
clEnumVal(funcresolve, "Resolve calls to foo(...) to foo(<concrete types>)"),
|
||||
clEnumVal(raise , "Raise to Higher Level"),
|
||||
|
Loading…
Reference in New Issue
Block a user