mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-12 02:33:33 +00:00
Rename pass to DecomposeMultiDimRefs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1960 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c99afb88ab
commit
d32e70a09f
@ -10,6 +10,7 @@
|
|||||||
#include "llvm/Transforms/Instrumentation/TraceValues.h"
|
#include "llvm/Transforms/Instrumentation/TraceValues.h"
|
||||||
#include "llvm/Transforms/ChangeAllocations.h"
|
#include "llvm/Transforms/ChangeAllocations.h"
|
||||||
#include "llvm/Transforms/HoistPHIConstants.h"
|
#include "llvm/Transforms/HoistPHIConstants.h"
|
||||||
|
#include "llvm/Transforms/Scalar/DecomposeMultiDimRefs.h"
|
||||||
#include "llvm/Assembly/PrintModulePass.h"
|
#include "llvm/Assembly/PrintModulePass.h"
|
||||||
#include "llvm/Bytecode/WriteBytecodePass.h"
|
#include "llvm/Bytecode/WriteBytecodePass.h"
|
||||||
#include "llvm/Transforms/ConstantMerge.h"
|
#include "llvm/Transforms/ConstantMerge.h"
|
||||||
@ -92,8 +93,13 @@ int main(int argc, char **argv) {
|
|||||||
|
|
||||||
// Eliminate duplication in constant pool
|
// Eliminate duplication in constant pool
|
||||||
Passes.add(createDynamicConstantMergePass());
|
Passes.add(createDynamicConstantMergePass());
|
||||||
|
}
|
||||||
// Then write out the module with tracing code before code generation
|
|
||||||
|
// Decompose multi-dimensional refs into a sequence of 1D refs
|
||||||
|
Passes.add(createDecomposeMultiDimRefsPass());
|
||||||
|
|
||||||
|
// Write out the module with tracing code just before code generation
|
||||||
|
if (TraceValues != TraceOff) { // If tracing enabled...
|
||||||
assert(InputFilename != "-" &&
|
assert(InputFilename != "-" &&
|
||||||
"files on stdin not supported with tracing");
|
"files on stdin not supported with tracing");
|
||||||
string traceFileName = GetFileNameRoot(InputFilename) + ".trace.bc";
|
string traceFileName = GetFileNameRoot(InputFilename) + ".trace.bc";
|
||||||
@ -104,7 +110,7 @@ int main(int argc, char **argv) {
|
|||||||
<< "Use -f command line argument to force output\n";
|
<< "Use -f command line argument to force output\n";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream *os = new std::ofstream(traceFileName.c_str());
|
std::ostream *os = new std::ofstream(traceFileName.c_str());
|
||||||
if (!os->good()) {
|
if (!os->good()) {
|
||||||
cerr << "Error opening " << traceFileName
|
cerr << "Error opening " << traceFileName
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include "llvm/Transforms/Scalar/IndVarSimplify.h"
|
#include "llvm/Transforms/Scalar/IndVarSimplify.h"
|
||||||
#include "llvm/Transforms/Scalar/InstructionCombining.h"
|
#include "llvm/Transforms/Scalar/InstructionCombining.h"
|
||||||
#include "llvm/Transforms/Scalar/PromoteMemoryToRegister.h"
|
#include "llvm/Transforms/Scalar/PromoteMemoryToRegister.h"
|
||||||
|
#include "llvm/Transforms/Scalar/DecomposeMultiDimRefs.h"
|
||||||
#include "llvm/Transforms/Instrumentation/TraceValues.h"
|
#include "llvm/Transforms/Instrumentation/TraceValues.h"
|
||||||
#include "llvm/Transforms/Instrumentation/ProfilePaths.h"
|
#include "llvm/Transforms/Instrumentation/ProfilePaths.h"
|
||||||
#include "Support/CommandLine.h"
|
#include "Support/CommandLine.h"
|
||||||
@ -38,7 +39,7 @@ enum Opts {
|
|||||||
dce, die, constprop, inlining, constmerge, strip, mstrip, mergereturn,
|
dce, die, constprop, inlining, constmerge, strip, mstrip, mergereturn,
|
||||||
|
|
||||||
// Miscellaneous Transformations
|
// Miscellaneous Transformations
|
||||||
raiseallocs, cleangcc,
|
raiseallocs, cleangcc, lowerrefs,
|
||||||
|
|
||||||
// Printing and verifying...
|
// Printing and verifying...
|
||||||
print, verify,
|
print, verify,
|
||||||
@ -91,6 +92,7 @@ struct {
|
|||||||
{ globaldce , createGlobalDCEPass },
|
{ globaldce , createGlobalDCEPass },
|
||||||
{ swapstructs, createSwapElementsPass },
|
{ swapstructs, createSwapElementsPass },
|
||||||
{ sortstructs, createSortElementsPass },
|
{ sortstructs, createSortElementsPass },
|
||||||
|
{ lowerrefs, createDecomposeMultiDimRefsPass }
|
||||||
};
|
};
|
||||||
|
|
||||||
// Command line option handling code...
|
// Command line option handling code...
|
||||||
@ -129,6 +131,7 @@ cl::EnumList<enum Opts> OptimizationList(cl::NoFlags,
|
|||||||
clEnumVal(paths , "Insert path profiling instrumentation"),
|
clEnumVal(paths , "Insert path profiling instrumentation"),
|
||||||
clEnumVal(print , "Print working method to stderr"),
|
clEnumVal(print , "Print working method to stderr"),
|
||||||
clEnumVal(verify , "Verify module is well formed"),
|
clEnumVal(verify , "Verify module is well formed"),
|
||||||
|
clEnumVal(lowerrefs , "Decompose multi-dimensional structure/array refs to use one index per instruction"),
|
||||||
0);
|
0);
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user