diff options
author | Chris Lattner <sabre@nondot.org> | 2004-11-07 00:43:24 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2004-11-07 00:43:24 +0000 |
commit | 26818012e3f268a40d9602735b627d2ae18e9ad6 (patch) | |
tree | a50f43c148ff7732a7a1510bcbacc9707a4635a9 | |
parent | 8226db66a2a1b8df268ed4df9709bfbca7bab156 (diff) |
Decompose* is V9 specific, make it internal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17547 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/SparcV9/DecomposeMultiDimRefs.cpp | 2 | ||||
-rw-r--r-- | lib/Target/SparcV9/SparcV9Internals.h | 14 |
2 files changed, 15 insertions, 1 deletions
diff --git a/lib/Target/SparcV9/DecomposeMultiDimRefs.cpp b/lib/Target/SparcV9/DecomposeMultiDimRefs.cpp index 40e1be5d46..e530611647 100644 --- a/lib/Target/SparcV9/DecomposeMultiDimRefs.cpp +++ b/lib/Target/SparcV9/DecomposeMultiDimRefs.cpp @@ -15,7 +15,7 @@ // //===----------------------------------------------------------------------===// -#include "llvm/Transforms/Scalar.h" +#include "SparcV9Internals.h" #include "llvm/DerivedTypes.h" #include "llvm/Constants.h" #include "llvm/Constant.h" diff --git a/lib/Target/SparcV9/SparcV9Internals.h b/lib/Target/SparcV9/SparcV9Internals.h index 1f6599892c..6cdc9285f1 100644 --- a/lib/Target/SparcV9/SparcV9Internals.h +++ b/lib/Target/SparcV9/SparcV9Internals.h @@ -29,6 +29,7 @@ namespace llvm { class LiveRange; class SparcV9TargetMachine; class ModulePass; +class GetElementPtrInst; enum SparcV9InstrSchedClass { SPARC_NONE, /* Instructions with no scheduling restrictions */ @@ -97,6 +98,19 @@ FunctionPass *createStackSlotsPass(const TargetMachine &TM); /// FunctionPass *createPreSelectionPass(const TargetMachine &TM); +// DecomposeMultiDimRefs - Convert multi-dimensional references consisting of +// any combination of 2 or more array and structure indices into a sequence of +// instructions (using getelementpr and cast) so that each instruction has at +// most one index (except structure references, which need an extra leading +// index of [0]). +// This pass decomposes all multi-dimensional references in a function. +FunctionPass *createDecomposeMultiDimRefsPass(); + +// This function decomposes a single instance of such a reference. +// Return value: true if the instruction was replaced; false otherwise. +// +bool DecomposeArrayRef(GetElementPtrInst* GEP); + /// Peephole optimization pass operating on machine code /// FunctionPass *createPeepholeOptsPass(const TargetMachine &TM); |