diff options
author | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-03-24 03:19:54 +0000 |
---|---|---|
committer | Vikram S. Adve <vadve@cs.uiuc.edu> | 2002-03-24 03:19:54 +0000 |
commit | d32e70a09f04abd2b9e3de864871f3218589b856 (patch) | |
tree | 22944a5b4d01d07b3b61ac1ef846d68617a0f75b | |
parent | c99afb88ab9639a37cba9a7ef591a55b14af95a0 (diff) | |
download | external_llvm-d32e70a09f04abd2b9e3de864871f3218589b856.zip external_llvm-d32e70a09f04abd2b9e3de864871f3218589b856.tar.gz external_llvm-d32e70a09f04abd2b9e3de864871f3218589b856.tar.bz2 |
Rename pass to DecomposeMultiDimRefs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1960 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | tools/llc/llc.cpp | 12 | ||||
-rw-r--r-- | tools/opt/opt.cpp | 5 |
2 files changed, 13 insertions, 4 deletions
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp index c4422ad..140151b 100644 --- a/tools/llc/llc.cpp +++ b/tools/llc/llc.cpp @@ -10,6 +10,7 @@ #include "llvm/Transforms/Instrumentation/TraceValues.h" #include "llvm/Transforms/ChangeAllocations.h" #include "llvm/Transforms/HoistPHIConstants.h" +#include "llvm/Transforms/Scalar/DecomposeMultiDimRefs.h" #include "llvm/Assembly/PrintModulePass.h" #include "llvm/Bytecode/WriteBytecodePass.h" #include "llvm/Transforms/ConstantMerge.h" @@ -92,8 +93,13 @@ int main(int argc, char **argv) { // Eliminate duplication in constant pool 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 != "-" && "files on stdin not supported with tracing"); 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"; return 1; } - + std::ostream *os = new std::ofstream(traceFileName.c_str()); if (!os->good()) { cerr << "Error opening " << traceFileName diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index a7ad98e..3fad1ec 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -26,6 +26,7 @@ #include "llvm/Transforms/Scalar/IndVarSimplify.h" #include "llvm/Transforms/Scalar/InstructionCombining.h" #include "llvm/Transforms/Scalar/PromoteMemoryToRegister.h" +#include "llvm/Transforms/Scalar/DecomposeMultiDimRefs.h" #include "llvm/Transforms/Instrumentation/TraceValues.h" #include "llvm/Transforms/Instrumentation/ProfilePaths.h" #include "Support/CommandLine.h" @@ -38,7 +39,7 @@ enum Opts { dce, die, constprop, inlining, constmerge, strip, mstrip, mergereturn, // Miscellaneous Transformations - raiseallocs, cleangcc, + raiseallocs, cleangcc, lowerrefs, // Printing and verifying... print, verify, @@ -91,6 +92,7 @@ struct { { globaldce , createGlobalDCEPass }, { swapstructs, createSwapElementsPass }, { sortstructs, createSortElementsPass }, + { lowerrefs, createDecomposeMultiDimRefsPass } }; // Command line option handling code... @@ -129,6 +131,7 @@ cl::EnumList<enum Opts> OptimizationList(cl::NoFlags, clEnumVal(paths , "Insert path profiling instrumentation"), clEnumVal(print , "Print working method to stderr"), clEnumVal(verify , "Verify module is well formed"), + clEnumVal(lowerrefs , "Decompose multi-dimensional structure/array refs to use one index per instruction"), 0); |