- Dec 30, 2012
-
-
Dmitri Gribenko authored
fixed in r171243. llvm-svn: 171258
-
Bill Wendling authored
llvm-svn: 171257
-
Bill Wendling authored
llvm-svn: 171256
-
Bill Wendling authored
llvm-svn: 171255
-
Bill Wendling authored
directly. This is in preparation for removing the use of the 'Attribute' class as a collection of attributes. That will shift to the AttributeSet class instead. llvm-svn: 171253
-
Bill Wendling authored
llvm-svn: 171252
-
Nadav Rotem authored
LCSSA PHIs may have undef values. The vectorizer updates values that are used by outside users such as PHIs. The bug happened because undefs are not loop values. This patch handles these PHIs. PR14725 llvm-svn: 171251
-
Dmitri Gribenko authored
This is done to avoid odd test failures, like the one fixed in r171243. llvm-svn: 171250
-
Bill Wendling authored
* One that accepts a single Attribute::AttrKind. * One that accepts an Attribute::AttrKind plus a list of values. This is for attributes defined like this: #1 = attributes { align = 4 } * One that accepts a string, for target-specific attributes like this: #2 = attributes { "cpu=cortex-a8" } llvm-svn: 171249
-
Dmitri Gribenko authored
This test did not test anything at all (except for opt crashing, but that was not the reason why it was added). llvm-svn: 171248
-
Bill Wendling authored
stored here is of a certain kind. This is in preparation for when an Attribute object represents a single attribute, instead of a bitmask of attributes. llvm-svn: 171247
-
Dmitri Gribenko authored
This is done to avoid odd test failures, like the one fixed in r171243. llvm-svn: 171246
-
Bill Wendling authored
already uniquified. Note: This will be expanded in the future to add more than just one pointer value. llvm-svn: 171245
-
Bill Wendling authored
s/Raw/getBitMask/g to be more in line with current naming conventions. This method won't be sticking around. llvm-svn: 171244
-
NAKAMURA Takumi authored
Larry Evans reported it fails if source tree contains "load", like "download". llvm-svn: 171243
-
- Dec 29, 2012
-
-
Craig Topper authored
Remove intrinsic specific instructions for (V)SQRTPS/PD. Instead lower to target-independent ISD nodes and use the existing patterns for those. llvm-svn: 171237
-
Craig Topper authored
llvm-svn: 171229
-
Craig Topper authored
Remove intrinsic specific instructions for SSE/SSE2/AVX floating point max/min instructions. Lower them to target specific nodes and use those patterns instead. This also allows them to be commuted if UnsafeFPMath is enabled. llvm-svn: 171227
-
Jakub Staszak authored
llvm-svn: 171226
-
Jakub Staszak authored
llvm-svn: 171225
-
Bill Wendling authored
llvm-svn: 171221
-
Bill Wendling authored
llvm-svn: 171220
-
- Dec 28, 2012
-
-
Chandler Carruth authored
deleted this, but apparantly not. Charmingly, Clang didn't warn on it but GCC did. llvm-svn: 171197
-
Chandler Carruth authored
propagating one of the values it simplified to a constant across a myriad of instructions. Notably, ptrtoint instructions when we had a constant pointer (say, 0) didn't propagate that, blocking a massive number of down-stream optimizations. This was uncovered when investigating why we fail to inline and delete the boilerplate in: void f() { std::vector<int> v; v.push_back(1); } It turns out most of the efforts I've made thus far to improve the analysis weren't making it far purely because of this. After this is fixed, the store-to-load forwarding patch enables LLVM to optimize the above to an empty function. We still can't nuke a second push_back, but for different reasons. There is a very real chance this will cause somewhat noticable changes in inlining behavior, so please let me know if you see regressions (or improvements!) because of this patch. llvm-svn: 171196
-
Chandler Carruth authored
how to propagate constants through insert and extract value instructions. With the recent improvements to instsimplify, this allows inline cost analysis to constant fold through intrinsic functions, including notably the with.overflow intrinsic math routines which often show up inside of STL abstractions. This is yet another piece in the puzzle of breaking down the code for: void f() { std::vector<int> v; v.push_back(1); } But it still isn't enough. There are a pile of bugs in inline cost still blocking this. llvm-svn: 171195
-
Chandler Carruth authored
constant folding calls. Add the initial tests for this which show that now instsimplify can simplify blindingly obvious code patterns expressed with both intrinsics and library calls. llvm-svn: 171194
-
Chandler Carruth authored
are nice and decomposed so that we can simplify synthesized calls as easily as actually call instructions. The internal utility still has the same behavior, it just now operates on a more generic interface so that I can extend the set of call simplifications that instsimplify knows about. llvm-svn: 171189
-
Alexey Samsonov authored
llvm-svn: 171183
-
Nadav Rotem authored
llvm-svn: 171180
-
Nadav Rotem authored
llvm-svn: 171179
-
Nadav Rotem authored
AVX: Move the ZEXT/ANYEXT DAGCo optimizations to the lowering of these optimizations. The old test cases still cover all of these lowering/optimizations. The single change that we have is that now anyext does not need to zero a register, because it does not use the exact code path as the zero_extend. llvm-svn: 171178
-
Nadav Rotem authored
llvm-svn: 171172
-
- Dec 27, 2012
-
-
Craig Topper authored
llvm-svn: 171171
-
Nadav Rotem authored
llvm-svn: 171170
-
Craig Topper authored
llvm-svn: 171166
-
Chandler Carruth authored
instructions. This just exposes the already present reverse iterators of the instruction ilist. llvm-svn: 171159
-
Chandler Carruth authored
re-use that for SlotIndexes. This way other users who want half-open semantics can share the implementation. llvm-svn: 171158
-
Chandler Carruth authored
getAnalysisUsage implementations. llvm-svn: 171157
-
Sean Silva authored
This came up for the N+1'st time today in IRC. llvm-svn: 171155
-
Sean Silva authored
llvm-svn: 171154
-