Tobias Grosser
32152cbd1c
CodeGen: Extract code into the new function copyVectorInstruction
...
llvm-svn: 151904
2012-03-02 11:27:18 +00:00
Tobias Grosser
fc1153fb09
CodeGen: Sink loop to iterate vector lanes down into copyInstruction
...
llvm-svn: 151903
2012-03-02 11:27:15 +00:00
Tobias Grosser
8b4bf8b2fa
CodeGenerator: Rename functions to show they produce vector code
...
llvm-svn: 151902
2012-03-02 11:27:11 +00:00
Tobias Grosser
b35d9c1dfc
Fix typo
...
llvm-svn: 151901
2012-03-02 11:27:08 +00:00
Tobias Grosser
8927a44f90
CodeGen: No need to forward the vector dimension
...
llvm-svn: 151900
2012-03-02 11:27:05 +00:00
Tobias Grosser
f81a691ef7
CodeGen: Store the vector width in the block generator
...
This allows us to remove a lot of redundant parameters.
llvm-svn: 151899
2012-03-02 11:27:02 +00:00
Tobias Grosser
32386750a6
CodeGen: Remove dead code
...
llvm-svn: 151898
2012-03-02 11:26:59 +00:00
Tobias Grosser
8412cda5ad
Codegen: Add Pass as a member variable of BlockGenerator
...
llvm-svn: 151897
2012-03-02 11:26:55 +00:00
Tobias Grosser
14bcbd5380
CodeGen: Simplify and Prettify code
...
llvm-svn: 151896
2012-03-02 11:26:52 +00:00
Tobias Grosser
c941ede854
CodeGen: Hide the private implementation of the block generator
...
llvm-svn: 151895
2012-03-02 11:26:49 +00:00
Tobias Grosser
262df3b9e7
CodeGen: Start with uppercase letter
...
llvm-svn: 151894
2012-03-02 11:26:46 +00:00
Tobias Grosser
ce3f537ae2
CodeGen: Only check once if a loop is parallel
...
Suggested by: Sebastian Pop <sebpop@gmail.com>
llvm-svn: 151893
2012-03-02 11:26:42 +00:00
Tobias Grosser
9a44b97913
Revert "CodeGeneration: Implement ceild/floord exactly as CLooG does"
...
I think I did not get the implementation right. As the current implementation
works well, we will just stick with it for now.
llvm-svn: 150691
2012-02-16 14:13:19 +00:00
Tobias Grosser
62a3c96e5d
CodeGen: Code following a clast_guard comes after the merge block
...
llvm-svn: 150675
2012-02-16 09:56:21 +00:00
Tobias Grosser
e04f318772
CodeGeneration: Implement ceild/floord exactly as CLooG does
...
llvm-svn: 150673
2012-02-16 09:56:14 +00:00
Tobias Grosser
906eafe32c
CodeGen: Simplify code slightly
...
llvm-svn: 150672
2012-02-16 09:56:10 +00:00
Tobias Grosser
f12cea4257
CodeGen: Update the BasicBlock pointer correctly when creating 'polly.split...'
...
Problem reported by: Ryan Taylor <ryta1203@gmail.com>
llvm-svn: 150577
2012-02-15 09:58:53 +00:00
Tobias Grosser
cb47dfeb96
CodeGen: Retain the old BB names within the original SCoP
...
llvm-svn: 150576
2012-02-15 09:58:50 +00:00
Tobias Grosser
b61e6318ac
CodeGen: Name stmt bbs 'polly.stmt.' + OriginalName
...
llvm-svn: 150575
2012-02-15 09:58:46 +00:00
Tobias Grosser
0ac9214c2f
Recommit "CodeGen: Maintain a valid CFG during code generation"
...
When I first tried to commit this patch, the builder pointed after generation
of a loop still into the loop body. This means that code that was supposed to
be generated after the loop was generated right into the loop body. We fixed
this by pointing the builder to the BB after the loop, as soon as code
generation of the loop body itself is finished.
llvm-svn: 150480
2012-02-14 14:02:27 +00:00
Tobias Grosser
1773fb1c00
Revert "CodeGen: Maintain a valid CFG during code generation"
...
This commit contained some bugs. Revert it until I get around to fix them.
llvm-svn: 150431
2012-02-13 23:31:43 +00:00
Tobias Grosser
5c853bab78
CodeGen: Remove unused variable.
...
llvm-svn: 150376
2012-02-13 12:29:34 +00:00
Tobias Grosser
0b6c613a10
CodeGen: Maintain a valid CFG during code generation
...
Before this change we built the CFG such that it was only valid after code was
fully generated. During code generation itself, it was often incomplete. After
this change always maintain a valid CFG. This will later allow us to use the
SCEVExpander during code generation. This is the first step to get rid of the
independent blocks pass.
llvm-svn: 150339
2012-02-12 12:09:53 +00:00
Tobias Grosser
194beea739
CodeGen: Remove unused instruction
...
llvm-svn: 150338
2012-02-12 12:09:49 +00:00
Tobias Grosser
8518bbe39f
CodeGen: Always name merge block
...
llvm-svn: 150337
2012-02-12 12:09:46 +00:00
Tobias Grosser
bd608a8949
CodeGen: Start variable names with uppercase letter.
...
llvm-svn: 150336
2012-02-12 12:09:41 +00:00
Tobias Grosser
0dbbdd7637
Codegen: Give split and merge basic blocks better names
...
llvm-svn: 150335
2012-02-12 12:09:37 +00:00
Tobias Grosser
d855cc5720
CodeGen: Further improve style
...
llvm-svn: 150334
2012-02-12 12:09:32 +00:00
Tobias Grosser
b1c9599faa
CodeGen: Move generation of OpenMP out of the way
...
We also fix some style issues. This change contains no functional change.
llvm-svn: 150333
2012-02-12 12:09:27 +00:00
Tobias Grosser
5772e65be0
CodeGeneration: Rephrase comment slightly
...
llvm-svn: 149502
2012-02-01 14:23:33 +00:00
Tobias Grosser
bda1f8f808
CodeGeneration: Order includes alphabetically
...
llvm-svn: 149501
2012-02-01 14:23:29 +00:00
Tobias Grosser
fc98d453df
Remove unneeded default case
...
This silences a clang warning.
llvm-svn: 149073
2012-01-26 19:53:01 +00:00
Tobias Grosser
9bc5eb08c2
CodeGen: Separate declaration and definition of ClastStmtCodeGen
...
llvm-svn: 148814
2012-01-24 16:42:32 +00:00
Tobias Grosser
bb137e3f03
CodeGen: Separate declaration and definition of ClastExpCodeGen
...
llvm-svn: 148813
2012-01-24 16:42:28 +00:00
Tobias Grosser
e5b4232572
CodeGen: Use getNullValue to simplify some code
...
llvm-svn: 148812
2012-01-24 16:42:25 +00:00
Tobias Grosser
70e8cdbbd1
CodeGen: Separate declaration and definitions of BlockGenerator
...
llvm-svn: 148811
2012-01-24 16:42:21 +00:00
Tobias Grosser
28dd48613e
ScopInfo: Add isStrideX to unify stride checking
...
llvm-svn: 148810
2012-01-24 16:42:16 +00:00
Raghesh Aloor
ea6c99c1d9
Memaccess: Removing some unwanted code
...
llvm-svn: 148100
2012-01-13 06:02:13 +00:00
Raghesh Aloor
a71989c94e
Memaccess: Using isl_map_dim_max
...
Use isl_map_dim_max to extract the details of the changed
access relation. Only constant access functions are supported
now.
llvm-svn: 147305
2011-12-28 02:48:26 +00:00
Raghesh Aloor
46eceba361
Memacess: Some style changes
...
llvm-svn: 146255
2011-12-09 14:27:17 +00:00
Tobias Grosser
545bc31324
CodeGen: Style improvements.
...
llvm-svn: 145932
2011-12-06 10:48:27 +00:00
Tobias Grosser
29ee0b14d5
Do not use getNameStr() anymore.
...
Instead we switch to the recommended getName(). This fixes compilation with
recent versions of LLVM.
llvm-svn: 144909
2011-11-17 14:52:36 +00:00
Tobias Grosser
7ffe4e8b0b
Fix placement of the '*' that marks a pointer
...
Suggested by Sebastian Pop.
llvm-svn: 144902
2011-11-17 12:56:10 +00:00
Tobias Grosser
67707b7131
Enable prevectorization with -enable-polly-vector.
...
This removes the separate prevector options for the Pluto and isl scheduler.
llvm-svn: 142774
2011-10-23 20:59:40 +00:00
Tobias Grosser
73600b8edd
Initialize the passes early and properly.
...
llvm-svn: 141455
2011-10-08 00:30:40 +00:00
Tobias Grosser
5d45381294
ScopInfo: Only give away a copy of the access relation.
...
Also take the chance and rename access functions to access relations. This is
because we do not only allow plain functions to describe an access, but we
can have any access relation that can be described with linear constraints.
llvm-svn: 141257
2011-10-06 00:04:11 +00:00
Tobias Grosser
f53388034d
Adapt to introduction of isl_space
...
Polly should now be compiled with CLooG 0c252c88946b27b7b61a1a8d8fd7f94d2461dbfd
and isl 56b7d238929980e62218525b4b3be121af386edf. The most convenient way to
update is utils/checkout_cloog.sh.
llvm-svn: 141251
2011-10-06 00:03:35 +00:00
Tobias Grosser
c92151516f
CodeGen: Support for Cast Operations in vector code generation
...
llvm-svn: 139097
2011-09-04 11:45:52 +00:00
Tobias Grosser
8b00a51164
CodeGen: Remove unused code
...
llvm-svn: 139096
2011-09-04 11:45:45 +00:00
Tobias Grosser
7551c3000a
CodeGen: Better separate scalar and vector code generation.
...
llvm-svn: 139095
2011-09-04 11:45:41 +00:00