- Nov 04, 2012
-
-
Tobias Grosser authored
Use 'opt < %s' instead of just 'opt %s' to ensure that no temporary files are created. llvm-svn: 167372
-
- Nov 02, 2012
-
-
Tobias Grosser authored
llvm-svn: 167284
-
Tobias Grosser authored
llvm-svn: 167283
-
- Nov 01, 2012
-
-
Tobias Grosser authored
Similar to LLVM we now follow the policy of only having LLVM-IR level tests in the Polly test suite. Testing for miscompilation of larger programs should be done with the llvm test suite. llvm-svn: 167255
-
Tobias Grosser authored
Instead of calculating exact value (flow) dependences, it is also possible to calculate memory based dependences. Sometimes memory based dependences are a lot easier to calculate. To evaluate the benefits, we add an option to calculate memory based dependences (use -polly-value-dependences=false). llvm-svn: 167251
-
Tobias Grosser authored
The detection of values that need to be copied in to the generated OpenMP subfunction also detects the array base addresses needed in the SCoP. Hence, it is not necessary to unconditionally copy all the base addresses to the generated function. Test cases are modified to reflect this change. Arrays which are global variables do not occur in the struct passed to the subfunction anymore. A test case for base address copy-in is added in copy_in_array.{c,ll}. Committed with slight modifications Contributed by: Armin Groesslinger <armin.groesslinger@uni-passau.de> llvm-svn: 167215
-
Tobias Grosser authored
In addition to the arrays and clast variables a SCoP statement may also refer to values defined before the SCoP or to function arguments. Detect these values and add them to the set of values passed to the function generated for OpenMP parallel execution of a clast. Committed with additional test cases and some refactoring. Contributed by: Armin Groesslinger <armin.groesslinger@uni-passau.de> llvm-svn: 167214
-
Tobias Grosser authored
When generating OpenMP or GPGPU code the original ValueMap and ClastVars must be kept. We already recovered the original ClastVars by reverting the changes, but we did not keep the content of the ValueMap. This patch keeps now an explicit copy of both maps and restores them after generating OpenMP or GPGPU code. This is an adapted version of a patch contributed by: Armin Groesslinger <armin.groesslinger@uni-passau.de> llvm-svn: 167213
-
- Oct 21, 2012
-
-
Tobias Grosser authored
On Linux there is no difference between shared modules and shared libaries, both are '.so' files. However, on darwin only shared modules are '.so' files. Shared libraries have the '.dynlib' suffix. Fix test cases on darwin by expecting a shared module suffix for Polly instead of a shared library suffix. This fixes PR14135 Reported by: Jack Howarth <howarth@bromo.med.uc.edu> llvm-svn: 166402
-
- Oct 16, 2012
-
-
Tobias Grosser authored
The bug was within isl. To fix it, we simply update the isl version that is used by Polly. We still have some changes within Polly to be able to write a proper test case. Reported-by:
Sameer Sahasrabuddhe <Sameer.Sahasrabuddhe@amd.com> llvm-svn: 166021
-
Tobias Grosser authored
Previously isl always generated '<=' or '>='. However, in many cases '<' or '>' leads to simpler code. This commit updates isl and adds the relevant code generation support to Polly. llvm-svn: 166020
-
- Sep 11, 2012
-
-
Tobias Grosser authored
At the moment we can handle such arrays only by conservatively assuming that each access to such an array may touch any element in the array. It would be great if we could improve Polly/LLVM at some point, such that we can recover the multi-dimensionality of the accesses. llvm-svn: 163619
-
Tobias Grosser authored
This ensures that the isl sets/maps we operate on have the same parameter dimensions. Operations on objects with different parameter dimensions are not allow and trigger assertions. llvm-svn: 163618
-
- Aug 03, 2012
-
-
Tobias Grosser authored
Translate the selected parallel loop body into a ptx string and run it with the cuda driver API. We limit this preliminary implementation to target the following special test cases: - Support only 2-dimensional parallel loops with or without only one innermost non-parallel loop. - Support write memory access to only one array in a SCoP. The patch was committed with smaller changes to the build system: There is now a flag to enable gpu code generation explictly. This was required as we need the llvm.codegen() patch applied on the llvm sources, to compile this feature correctly. Also, enabling gpu code generation does not require cuda. This requirement was removed to allow 'make polly-test' runs, even without an installed cuda runtime. Contributed by: Yabin Hu <yabin.hwu@gmail.com> llvm-svn: 161239
-
- Aug 01, 2012
-
-
Hongbin Zheng authored
operand tree. This patch fix Bug 13491, and the original "FIXME" in IndependentBlocks.cpp. Patched by Kevin Fan<kevin.fan@gmail.com>. llvm-svn: 161105
-
- Jul 13, 2012
-
-
Tobias Grosser authored
I did not take into account, that this patch fails to compile without the llvm.codegen patch applied. This breaks buildbots. I revert this until we found a solution to commit this without buildbots complaining. This reverts commit cb43ab80e94434e780a66be3b9a6ad466822fe33. llvm-svn: 160165
-
Tobias Grosser authored
Translate the selected parallel loop body into a ptx string and run it with cuda driver API. We limit this preliminary implementation to target the following special test cases: - Support only 2-dimensional parallel loops with or without only one innermost non-parallel loop. - Support write memory access to only one array in a SCoP. Contributed by: Yabin Hu <yabin.hwu@gmail.com> llvm-svn: 160164
-
- Jun 11, 2012
-
-
Tobias Grosser authored
llvm-svn: 158306
-
- May 22, 2012
-
-
Tobias Grosser authored
Derive the maximal and minimal values of a parameter from the type it has. Add this information to the scop context. This information is needed, to derive optimal types during code generation. llvm-svn: 157245
-
- May 06, 2012
-
-
Hongbin Zheng authored
llvm-svn: 156255
-
- Apr 27, 2012
-
-
Tobias Grosser authored
This is an incomplete implementation of the SCEV based code generation. When finished it will remove the need for -indvars -enable-iv-rewrite. For the moment it is still disabled. Even though it passes 'make polly-test', there are still loose ends especially in respect of OpenMP code generation. llvm-svn: 155717
-
- Apr 24, 2012
-
-
Tobias Grosser authored
llvm-svn: 155438
-
- Apr 16, 2012
-
-
Tobias Grosser authored
llvm-svn: 154808
-
- Apr 12, 2012
-
-
Tobias Grosser authored
This fixes two crashes that appeared in case of: - A load of a non vectorizable type (e.g. float**) - An instruction that is not vectorizable (e.g. call) llvm-svn: 154586
-
- Apr 11, 2012
-
-
Hongbin Zheng authored
This reverts commit 97bd8d50881000c11b65b0e033996ec5f57bcd15. llvm-svn: 154487
-
- Apr 07, 2012
-
-
Tobias Grosser authored
Grouped unrolling means that we unroll a loop such that the different instances of a certain statement are scheduled right after each other, but we do not generate any vector code. The idea here is that we can schedule the bb vectorizer right afterwards and use it heuristics to decide when vectorization should be performed. llvm-svn: 154251
-
- Apr 03, 2012
-
-
Tobias Grosser authored
To avoid overflows we still use a larger type (i64) while calculating the value of the old ivs. However, we truncate the result to the type of the old iv when providing it to the new code. A corresponding test case is added to the polly test suite. Also, a failing test case is fixed. This fixes PR12311. Contributed by: Tsingray Liu <tsingrayliu@gmail.com> llvm-svn: 153952
-
- Apr 01, 2012
-
-
Tobias Grosser authored
llvm-svn: 153839
-
Tobias Grosser authored
When deriving new values for the statements of a SCoP, we assumed that parameter values are constant within the SCoP and consquently do not need to be rewritten. For OpenMP code generation this assumption is wrong, as such values are not available in the OpenMP subfunction and consequently also may need to be rewritten. Committed with some changes. Contributed-By:
Johannes Doerfert <s9jodoer@stud.uni-saarland.de> llvm-svn: 153838
-
- Mar 30, 2012
-
-
Hongbin Zheng authored
tests by simply typing "make -C tools/polly/test", like llvm's regression tests. llvm-svn: 153739
-
Hongbin Zheng authored
llvm-svn: 153738
-
- Mar 29, 2012
-
-
Tobias Grosser authored
llvm-svn: 153645
-
Hongbin Zheng authored
llvm-svn: 153644
-
Hongbin Zheng authored
r152924, by $(LibDir). Because we assume polly built by autoconf is always in llvm tree. llvm-svn: 153642
-
- Mar 26, 2012
-
-
Hongbin Zheng authored
llvm-svn: 153440
-
- Mar 23, 2012
-
-
Tobias Grosser authored
The prefix is not needed, as all test cases are already in a separate folder. llvm-svn: 153320
-
Tobias Grosser authored
This also adds support for modifiable write accesses (until now only read accesses where supported). We currently do not derive an exact type for the expression, but assume that i64 is good enough. This will be improved in future patches. Contributed by: Yabin Hu <yabin.hwu@gmail.com> llvm-svn: 153319
-
- Mar 16, 2012
-
-
Tobias Grosser authored
We currently do not support pointer types in affine expressions. Hence, we disallow in the SCoP detection. Later we may decide to add support for them. This fixes PR12277 Reported-By:
Sebastian Pop <sebpop@gmail.com> llvm-svn: 152928
-
Hongbin Zheng authored
llvm-svn: 152924
-
Hongbin Zheng authored
This reverts commit 7dd9b6327b54b08ece32a4607d5ac093b518b79a. llvm-svn: 152923
-