forked from OSchip/llvm-project
91ca9adc9e
"using namespace" pollutes the namespace of every file that includes such a header and universally considered a bad thing. Even the variant namespace polly { using namespace llvm; } (previously used by LoopGenerators.h) imports more symbols than the file is in control of. The header may include a fixed set of files from LLVM, but the header itself may by be included together with other headers from LLVM. For instance, LLVM's MemorySSA.h and Polly's ScopInfo.h both declare a class 'MemoryAccess' which may conflict. Instead of prefixing everything in Polly's header files, this patch adds 'using' statements to import only the symbols that are actually referenced in Polly. This approach is also used by MLIR to import commonly used symbols into the mlir namespace. This patch also puts the symbols declared in IslNodeBuilder.h into the Polly namespace to also be able to use the imported symbols. |
||
---|---|---|
.. | ||
cmake | ||
docs | ||
include/polly | ||
lib | ||
test | ||
tools | ||
unittests | ||
utils | ||
www | ||
.arclint | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
CREDITS.txt | ||
LICENSE.txt | ||
README |
README
Polly - Polyhedral optimizations for LLVM ----------------------------------------- http://polly.llvm.org/ Polly uses a mathematical representation, the polyhedral model, to represent and transform loops and other control flow structures. Using an abstract representation it is possible to reason about transformations in a more general way and to use highly optimized linear programming libraries to figure out the optimal loop structure. These transformations can be used to do constant propagation through arrays, remove dead loop iterations, optimize loops for cache locality, optimize arrays, apply advanced automatic parallelization, drive vectorization, or they can be used to do software pipelining.