- Oct 04, 2015
-
-
Johannes Doerfert authored
A statement with an empty domain complicates the invariant load hoisting and does not help any subsequent analysis or transformation. In fact it might introduce parameter dimensions or increase the schedule dimensionality. To this end, we remove statements with an empty domain early in the SCoP simplification. llvm-svn: 249276
-
Johannes Doerfert authored
llvm-svn: 249275
-
Johannes Doerfert authored
The "unprofitable" heuristic was broken and counted boxed loops even though we do not represent and optimize them. llvm-svn: 249274
-
Johannes Doerfert authored
Before isValidCFG() could hide the fact that a loop is non-affine by over-approximation. This is problematic if a subregion of the loop contains an exit/latch block and is over-approximated. Now we do not over-approximate in the isValidCFG function if we check loop control. If such control is non-affine the whole loop is over-approximated, not only a subregion. llvm-svn: 249273
-
Johannes Doerfert authored
This patch cannot be tested on its own as the isValidCFG currently hides the fact that control is actually non-affine with over-approximation. This will be corrected in the next patch and a test for non-affine latches will be added. llvm-svn: 249272
-
Johannes Doerfert authored
llvm-svn: 249271
-
Teresa Johnson authored
Summary: The bitcode format is described in this document: https://drive.google.com/file/d/0B036uwnWM6RWdnBLakxmeDdOeXc/view For more info on ThinLTO see: https://sites.google.com/site/llvmthinlto The first customer is ThinLTO, however the data structures are designed and named more generally based on prior feedback. There are a few comments regarding how certain interfaces are used by ThinLTO, and the options added here to gold currently have ThinLTO-specific names as the behavior they provoke is currently ThinLTO-specific. This patch includes support for generating per-module function indexes, the combined index file via the gold plugin, and several tests (more are included with the associated clang patch D11908). Reviewers: dexonsmith, davidxl, joker.eph Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13107 llvm-svn: 249270
-
Tobias Grosser authored
When the ScopAnnotator was a class member variable some of the maps it contains have not been properly cleared. As a result we had dangling pointers to llvm::Value(s) which got detected by the AssertingVH we recently added. No test case as this issue is hard to reproduce reliably as subsequent optimizations need to delete some of the llvm::Values we still keep in our lists. llvm-svn: 249269
-
Tobias Grosser authored
llvm-svn: 249268
-
Tobias Grosser authored
By using AssertingVH we will see assertions in case Values to which still pointers in our maps exists are deleted. This is very useful as we previously had some bugs that were caused by such stale Value pointers. llvm-svn: 249267
-
Tobias Grosser authored
The use of const qualified Value pointers prevents the use of AssertingVH. We could probably think of adding const support to AssertingVH, but as const correctness seems to currently provide limited benefit in Polly, we do not do this yet. llvm-svn: 249266
-
Tobias Grosser authored
llvm-svn: 249265
-
Tobias Grosser authored
There have been various places where llvm::DenseMap<const llvm::Value *, llvm::Value *> types have been defined, but all types have been expected to be identical. We make this more clear by consolidating the different types and use BlockGenerator::ValueMapT wherever there is a need for types to match BlockGenerator::ValueMapT. llvm-svn: 249264
-
Simon Pilgrim authored
llvm-svn: 249263
-
Joerg Sonnenberger authored
llvm-svn: 249262
-
Igor Breger authored
Added tests for intrinsics and encoding. Differential Revision: http://reviews.llvm.org/D12690 llvm-svn: 249261
-
Craig Topper authored
llvm-svn: 249260
-
Craig Topper authored
llvm-svn: 249259
-
Craig Topper authored
llvm-svn: 249258
-
David Majnemer authored
Track which basic blocks belong to which funclets. Permit branch folding to fire but only if it can prove that doing so will not cause code in one funclet to be reused in another. llvm-svn: 249257
-
Todd Fiala authored
When the readline target exists (only for non-Android Linux currently), ensure that target is made a dependency of the finish_swig python-wrap-up steps. This ensures it is built when building the lldb target. Fixes: https://llvm.org/bugs/show_bug.cgi?id=25038 llvm-svn: 249256
-
Davide Italiano authored
Add tests to ensure we handle this case this case gracefully. llvm-svn: 249255
-
Davide Italiano authored
I saw these in the wild while trying to link shared libraries. llvm-svn: 249254
-
Jeroen Ketema authored
llvm-svn: 249253
-
Eric Fiselier authored
Diagnose when a pointer to const T is used as the first argument in at atomic builtin unless that builtin is a load operation. This is already checked for C11 atomics builtins but not for __atomic ones. This patch was given the LGTM by rsmith when it was part of a larger review. (See http://reviews.llvm.org/D10407) llvm-svn: 249252
-
Simon Pilgrim authored
Updated the FADD combines to work with vectors as well as scalars. Differential Revision: http://reviews.llvm.org/D13416 llvm-svn: 249251
-
Sanjay Patel authored
These are based on PR25016 and likely caused by a bug in MachineCombiner's definition of improvesCriticalPathLen(). llvm-svn: 249249
-
Sanjay Patel authored
llvm-svn: 249248
-
Davide Italiano authored
llvm-svn: 249247
-
Davide Italiano authored
llvm-svn: 249246
-
Davide Italiano authored
This was the last tool relying on this pattern. llvm-svn: 249244
-
Simon Pilgrim authored
The custom lowering in LowerExtendedLoad is doing the equivalent shuffle, so make use of existing lowering code to reduce duplication. llvm-svn: 249243
-
Rafael Espindola authored
llvm-svn: 249242
-
Rafael Espindola authored
llvm-svn: 249241
-
Simon Pilgrim authored
llvm-svn: 249240
-
Tobias Grosser authored
llvm-svn: 249239
-
Tobias Grosser authored
By using asserting value handles, we will get assertions when we forget to clear any of the Value maps instead of difficult to debug undefined behavior. llvm-svn: 249238
-
Tobias Grosser authored
By using asserting value handles, we will get assertions when we forget to clear any of the Value maps instead of difficult to debug undefined behavior. llvm-svn: 249237
-
Simon Pilgrim authored
visitSIGN_EXTEND_INREG calls SelectionDAG::getNode to constant fold scalar constants but handles vector constants itself, despite getNode being capable of dealing with them. This required a minor change to the getNode implementation to actually deal with cases where the scalars of a BUILD_VECTOR were wider integers than the vector type - which was the only extra ability of the visitSIGN_EXTEND_INREG implementation. No codegen intended and all existing tests remain the same. llvm-svn: 249236
-
- Oct 03, 2015
-
-
Yaron Keren authored
+couple more of double-negated !SourceLocation.isInvalid() unfixed in r249228. llvm-svn: 249235
-