aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Transforms
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-11-01 02:41:52 +0000
committerChris Lattner <sabre@nondot.org>2001-11-01 02:41:52 +0000
commitd3f9a98f6672e270c7db5d97f67ae38f1739f210 (patch)
treec25981e4d04ed36927d28dac6e5ac7713d9b4cc6 /include/llvm/Transforms
parent068f487ee59a703a6e52ed5b96e222cbf632374a (diff)
downloadexternal_llvm-d3f9a98f6672e270c7db5d97f67ae38f1739f210.zip
external_llvm-d3f9a98f6672e270c7db5d97f67ae38f1739f210.tar.gz
external_llvm-d3f9a98f6672e270c7db5d97f67ae38f1739f210.tar.bz2
Initial checkin of level raising code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1073 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms')
-rw-r--r--include/llvm/Transforms/RaisePointerReferences.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/llvm/Transforms/RaisePointerReferences.h b/include/llvm/Transforms/RaisePointerReferences.h
new file mode 100644
index 0000000..593ccf2
--- /dev/null
+++ b/include/llvm/Transforms/RaisePointerReferences.h
@@ -0,0 +1,35 @@
+//===-- LevelChange.h - Passes for raising/lowering llvm code ----*- C++ -*--=//
+//
+// This family of passes is useful for changing the 'level' of a module. This
+// can either be raising (f.e. converting direct addressing to use getelementptr
+// for structs and arrays), or lowering (for instruction selection).
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_TRANSFORMS_LEVELCHANGE_H
+#define LLVM_TRANSFORMS_LEVELCHANGE_H
+
+#include "llvm/Pass.h"
+
+// RaisePointerReferences - Try to eliminate as many pointer arithmetic
+// expressions as possible, by converting expressions to use getelementptr and
+// friends.
+//
+struct RaisePointerReferences : public Pass {
+ static bool doit(Method *M);
+
+ virtual bool doPerMethodWork(Method *M) { return doit(M); }
+};
+
+
+// EliminateAuxillaryInductionVariables - Eliminate all aux indvars. This
+// converts all induction variables to reference a cannonical induction
+// variable (which starts at 0 and counts by 1).
+//
+struct EliminateAuxillaryInductionVariables : public Pass {
+ static bool doit(Method *M) { return false; } // TODO!
+
+ virtual bool doPerMethodWork(Method *M) { return doit(M); }
+};
+
+#endif