- Jan 04, 2013
-
-
Nadav Rotem authored
Move the loop vectorizer from O2 to O3. It looks like the increase in code size actually hurts the performance on many programs. llvm-svn: 171471
-
Nadav Rotem authored
1. Add code to estimate register pressure. 2. Add code to select the unroll factor based on register pressure. 3. Add bits to TargetTransformInfo to provide the number of registers. llvm-svn: 171469
-
- Jan 03, 2013
-
-
Michael Gottesman authored
Changed two debug statements that state that a queue had finished being processed when said queue was really a list to state a list had finished being processed. llvm-svn: 171465
-
Michael Gottesman authored
llvm-svn: 171464
-
Michael Gottesman authored
llvm-svn: 171463
-
Michael Gottesman authored
Added DEBUG message for ObjCARC when an inline asm marker is inserted for architectures where this is required to perform a retainAutoreleasedReturnValue optimization. llvm-svn: 171462
-
Nadav Rotem authored
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. llvm-svn: 171436
-
Nadav Rotem authored
llvm-svn: 171429
-
- Jan 02, 2013
-
-
Shuxin Yang authored
- Fix a typo llvm-svn: 171399
-
Chandler Carruth authored
code that includes Intrinsics.gen directly. This never showed up in my testing because the old Intrinsics.gen was still kicking around in the make build system and was correct there. =[ Thankfully, some of the bots to clean rebuilds and that caught this. llvm-svn: 171373
-
Chandler Carruth authored
into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. llvm-svn: 171366
-
Chandler Carruth authored
utils/sort_includes.py script. Most of these are updating the new R600 target and fixing up a few regressions that have creeped in since the last time I sorted the includes. llvm-svn: 171362
-
- Jan 01, 2013
-
-
Benjamin Kramer authored
llvm-svn: 171349
-
Benjamin Kramer authored
No functionality change. llvm-svn: 171348
-
Michael Gottesman authored
Added DEBUG message when ObjCARC replaces a call which returns its argument verbatim with its argument to temporarily undo an optimization. Specifically these calls return their argument verbatim, as a low-level optimization. However, this makes high-level optimizations harder. We undo any uses of this optimization that the front-end emitted. We redo them later in the contract pass. llvm-svn: 171346
-
Michael Gottesman authored
Added DEBUG messages to the top of several processing loops in ObjCARC.cpp that emit what instructions are being visited. This is a part of a larger effort of adding DEBUG messages to the ARC Optimizer Backend. llvm-svn: 171345
-
- Dec 31, 2012
-
-
Jakub Staszak authored
Also add an assert to avoid confusion in the code where is known that C1 <= C2. llvm-svn: 171310
-
Chris Lattner authored
promoting a store in a loop. This was noticed when working on PR14753, but isn't directly related. llvm-svn: 171281
-
Chris Lattner authored
PR14753 llvm-svn: 171279
-
Jakub Staszak authored
llvm-svn: 171272
-
Bill Wendling authored
Remove the getAttributesAtIndex and getNumAttrs methods in favor of using the getAttrSomewhere predicate. This prevents the uses of 'Attribute' as a collection of attributes. llvm-svn: 171271
-
Jakub Staszak authored
if C1 and C2 differ only with one bit. Fixes PR14708. llvm-svn: 171270
-
- Dec 30, 2012
-
-
Nuno Lopes authored
The later API is nicer than the former, and is correct regarding wrap-around offsets (if anyone cares). There are a few more places left with duplicated code, which I'll remove soon. llvm-svn: 171259
-
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
-
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
-
- Dec 28, 2012
-
-
Alexey Samsonov authored
llvm-svn: 171183
-
- Dec 27, 2012
-
-
Chandler Carruth authored
getAnalysisUsage implementations. llvm-svn: 171157
-
Alexey Samsonov authored
[ASan] Fix lifetime intrinsics handling. Now for each intrinsic we check if it describes one of 'interesting' allocas. Assume that allocas can go through casts and phi-nodes before apperaring as llvm.lifetime arguments llvm-svn: 171153
-
Nadav Rotem authored
If all of the write objects are identified then we can vectorize the loop even if the read objects are unidentified. PR14719. llvm-svn: 171124
-
- Dec 26, 2012
-
-
Nick Lewycky authored
such as by a compiler warning, a check in clang -fsanitizer=undefined, being optimized to unreachable, or a combination of the above. PR14722. llvm-svn: 171119
-
Nadav Rotem authored
LoopVectorizer: Optimize the vectorization of consecutive memory access when the iteration step is -1 llvm-svn: 171114
-
Evgeniy Stepanov authored
Origin alignment is as high as the alignment of the corresponding application location, but never less than 4. llvm-svn: 171110
-
Evgeniy Stepanov authored
llvm-svn: 171109
-
Hal Finkel authored
For the time being this includes only some dummy test cases. Once the generic implementation of the intrinsics cost function does something other than assuming scalarization in all cases, or some target specializes the interface, some real test cases can be added. Also, for consistency, I changed the type of IID from unsigned to Intrinsic::ID in a few other places. llvm-svn: 171079
-
Hal Finkel authored
llvm-svn: 171076
-
- Dec 25, 2012
-
-
Hal Finkel authored
llvm-svn: 171075
-
Evgeniy Stepanov authored
VectorType::getInteger() can not be used with them, because pointer size depends on the target. llvm-svn: 171070
-
Evgeniy Stepanov authored
llvm-svn: 171069
-
Alexey Samsonov authored
llvm-svn: 171061
-