Nadav Rotem
|
0bbbc52dc8
LoopVectorizer: Implement a new heuristics for selecting the unroll factor.
|
12 years ago |
Benjamin Kramer
|
1af132dcf3
LoopVectorizer: Emit memory checks into their own basic block.
|
12 years ago |
Nadav Rotem
|
6a459e65c8
LoopVectorizer cost model. Honor the user command line flag that selects the vectorization factor even if the target machine does not have any vector registers.
|
12 years ago |
Nadav Rotem
|
b6db95f42b
Fix PR14547. Handle induction variables of small sizes smaller than i32 (i8 and i16).
|
12 years ago |
Nadav Rotem
|
a675c74208
ARM Cost Model: We need to detect the max bitwidth of types in the loop in order to select the max vectorization factor.
|
12 years ago |
Nadav Rotem
|
c560bf638b
LoopVectorizer: Fix a bug in the vectorization of BinaryOperators. The BinaryOperator can be folded to an Undef, and we don't want to set NSW flags to undef vals.
|
12 years ago |
Nadav Rotem
|
14925e6b88
ARM Cost model: Use the size of vector registers and widest vectorizable instruction to determine the max vectorization factor.
|
12 years ago |
Nadav Rotem
|
83be7b0dd3
Cost Model: Move the 'max unroll factor' variable to the TTI and add initial Cost Model support on ARM.
|
12 years ago |
Nadav Rotem
|
8327474e4b
Code cleanup: refactor the switch statements in the generation of reduction variables into an IR builder call.
|
12 years ago |
Nadav Rotem
|
aae3d6fb53
Rename the enum members to match the LLVM coding style.
|
12 years ago |
Nadav Rotem
|
111e5fe7e0
LoopVectorizer: Add support for floating point reductions
|
12 years ago |
Nadav Rotem
|
9a6c6a3736
LoopVectorizer: When we vectorizer and widen loops we process many elements at once. This is a good thing, except for
|
12 years ago |
Chandler Carruth
|
1cbeaeb194
Simplify LoopVectorize to require target transform info and rely on it
|
12 years ago |
Chandler Carruth
|
f3252b12e0
Merge the unused header file for LoopVectorizer into the source file.
|
12 years ago |
Chandler Carruth
|
bb00800ff4
Fix the enumerator names for ShuffleKind to match tho coding standards,
|
12 years ago |
Chandler Carruth
|
be04929f7f
Move TargetTransformInfo to live under the Analysis library. This no
|
12 years ago |
Chandler Carruth
|
be73c7b903
Switch the loop vectorizer from VTTI to just use TTI directly.
|
12 years ago |
Nadav Rotem
|
d5b92c3891
|
12 years ago |
Paul Redmond
|
5767d91956
Do not vectorize loops with subtraction reductions
|
12 years ago |
Nadav Rotem
|
608467d1e1
Fix a warning
|
12 years ago |
Nadav Rotem
|
e503319874
LoopVectorizer:
|
12 years ago |
Nadav Rotem
|
e4159491a7
LoopVectorizer: Add support for loop-unrolling during vectorization for increasing the ILP. At the moment this feature is disabled by default and this commit should not cause any functional changes.
|
12 years ago |
Nadav Rotem
|
00a6bcaeb4
Avoid vectorization when the function has the "noimplicitflot" attribute.
|
12 years ago |
Chandler Carruth
|
0b8c9a80f2
Move all of the header files which are involved in modelling the LLVM IR
|
12 years ago |
Benjamin Kramer
|
6c30749583
Add IRBuilder::CreateVectorSplat and use it to simplify code.
|
12 years ago |
Bill Wendling
|
831737d329
Remove the Function::getFnAttributes method in favor of using the AttributeSet
|
12 years ago |
Nadav Rotem
|
db2367512e
LoopVectorizer: Fix a bug in the code that updates the loop exiting block.
|
12 years ago |
Nadav Rotem
|
5dd839430c
If all of the write objects are identified then we can vectorize the loop even if the read objects are unidentified.
|
12 years ago |
Nadav Rotem
|
13eb1e7817
LoopVectorizer: Optimize the vectorization of consecutive memory access when the iteration step is -1
|
12 years ago |
Hal Finkel
|
1d59f5fa53
LoopVectorize: Enable vectorization of the fmuladd intrinsic
|
12 years ago |