aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2002-03-24 03:19:54 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2002-03-24 03:19:54 +0000
commitd32e70a09f04abd2b9e3de864871f3218589b856 (patch)
tree22944a5b4d01d07b3b61ac1ef846d68617a0f75b
parentc99afb88ab9639a37cba9a7ef591a55b14af95a0 (diff)
downloadexternal_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.cpp12
-rw-r--r--tools/opt/opt.cpp5
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);