diff options
author | Chris Lattner <sabre@nondot.org> | 2001-11-01 02:41:52 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-11-01 02:41:52 +0000 |
commit | d3f9a98f6672e270c7db5d97f67ae38f1739f210 (patch) | |
tree | c25981e4d04ed36927d28dac6e5ac7713d9b4cc6 /include/llvm/Transforms | |
parent | 068f487ee59a703a6e52ed5b96e222cbf632374a (diff) | |
download | external_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.h | 35 |
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 |