For Loop Conversion
authorSam Panzer <espanz@gmail.com>
Fri, 24 Aug 2012 22:10:10 +0000 (22:10 +0000)
committerSam Panzer <espanz@gmail.com>
Fri, 24 Aug 2012 22:10:10 +0000 (22:10 +0000)
commit4483b0c56dee773f1a80b263e3e3603fe9fd8400
tree55e7bbcbcd322aae45a3f08008cbffd7992497f0
parent68a35af3122008adcfd663bc35df26089d537911
For Loop Conversion

Loop Converter Skeleton - array-step-1

Added a check to loop increments - array-step-2b

Added a check on the loop's condition expression - array-step-2c

Finished array matcher - array-step-2

Retrieved matched nodes - array-step-3

Analysis for array loop indices - array-step-4

Added checking for naming and variable scope

Added confidence level and count-only command line args

Added aliased variable elision

Added support for iterator-based loops

Added support for single-iterator loops which call end() repeatedly

Added support for converting array-like containers

llvm-svn: 162610
28 files changed:
clang-tools-extra/CMakeLists.txt
clang-tools-extra/loop-convert/CMakeLists.txt [new file with mode: 0644]
clang-tools-extra/loop-convert/LoopActions.cpp [new file with mode: 0644]
clang-tools-extra/loop-convert/LoopActions.h [new file with mode: 0644]
clang-tools-extra/loop-convert/LoopConvert.cpp [new file with mode: 0644]
clang-tools-extra/loop-convert/LoopMatchers.cpp [new file with mode: 0644]
clang-tools-extra/loop-convert/LoopMatchers.h [new file with mode: 0644]
clang-tools-extra/loop-convert/StmtAncestor.cpp [new file with mode: 0644]
clang-tools-extra/loop-convert/StmtAncestor.h [new file with mode: 0644]
clang-tools-extra/loop-convert/VariableNaming.cpp [new file with mode: 0644]
clang-tools-extra/loop-convert/VariableNaming.h [new file with mode: 0644]
clang-tools-extra/test/CMakeLists.txt
clang-tools-extra/test/loop-convert/Inputs/negative-header.h [new file with mode: 0644]
clang-tools-extra/test/loop-convert/Inputs/structures.h [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-array.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-confidence.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-dependency.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-iterator.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-naming.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-negative-iterator.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-negative-multi-end-call.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-negative-pseudoarray.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-negative.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-nesting.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-nocompile.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-pseudoarray.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/loop-convert-single-iterator.cpp [new file with mode: 0644]
clang-tools-extra/test/loop-convert/negative-pseudoarray-extra.cpp [new file with mode: 0644]