summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ELF2] Add DT_INIT and DT_FINI dynamic table entriesIgor Kudrin2015-10-057-4/+83
| | | | | | | | | | | | | | The entries are added if there are "_init" or "_fini" entries in the symbol table respectively. According to the behavior of ld, entries are inserted even for undefined symbols. Symbol names can be overridden by using -init and -fini command line switches. If used, these switches neither add new symbol table entries nor require those symbols to be resolved. Differential Revision: http://reviews.llvm.org/D13385 llvm-svn: 249297
* Fix test failure on Windows buildbots for the mips-mti-linux toolchain.Vasileios Kalintiris2015-10-051-6/+6
| | | | | | | Try to make the Windows buildbots happy by fixing the regexes that match the paths to CRT files. llvm-svn: 249296
* [ELF2] Add --undefined optionDenis Protivensky2015-10-057-6/+96
| | | | | | | | | Add symbol specified with -u as undefined which may cause additional object files from archives to be linked into the resulting binary. Differential Revision: http://reviews.llvm.org/D13345 llvm-svn: 249295
* Re-commit "Add support for the new mips-mti-linux toolchain."Vasileios Kalintiris2015-10-0517-25/+296
| | | | | | | | | | | r249137 added support for the new mips-mti-linux toolchain. However, the new tests of that commit, broke some buildbots because they didn't use the correct regular expressions to capture the filename of Clang & LLD. This commit re-applies the changes of r249137 and fixes the tests in r249137 in order to match the filenames of the Clang and LLD executable. llvm-svn: 249294
* Fix bug in modernize-use-nullptr.Angel Garcia Gomez2015-10-052-7/+33
| | | | | | | | | | | | | | | | | Summary: https://llvm.org/bugs/show_bug.cgi?id=24960 modernize-use-nullptr would hit an assertion in some cases involving macros and initializer lists, due to finding a node with more than one parent (the two forms of the initializer list). However, this doesn't mean that the replacement is incorrect, so instead of just rejecting this case I tried to find a way to make it work. Looking at the semantic form of the InitListExpr made sense to me (looking at both forms results in false negatives) but I am not sure of the things that we can miss by skipping the syntactic form. Reviewers: klimek Subscribers: cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D13246 llvm-svn: 249291
* clang-format: Remove sentence in option cost threshold that weakens theDaniel Jasper2015-10-051-2/+0
| | | | | | | statement. Specifically, we don't want people that have already written a patch to just write a style guide for their 1-person project. llvm-svn: 249290
* clang-format: Document threshold for adding new options.Daniel Jasper2015-10-051-0/+22
| | | | llvm-svn: 249289
* Reformat partially.NAKAMURA Takumi2015-10-056-46/+38
| | | | llvm-svn: 249288
* Reformat 3 files in llvm/include/llvm/CodeGen/.NAKAMURA Takumi2015-10-053-178/+167
| | | | llvm-svn: 249287
* Trailing whitespaces.NAKAMURA Takumi2015-10-053-6/+6
| | | | llvm-svn: 249286
* Prune trailing whitespaces in comment lines.NAKAMURA Takumi2015-10-055-6/+6
| | | | llvm-svn: 249285
* Reformat blank lines.NAKAMURA Takumi2015-10-0519-44/+38
| | | | llvm-svn: 249284
* [CMake] Move CLANG_INCLUDE_TESTS in advance of add_subdirectory(tools).NAKAMURA Takumi2015-10-051-4/+4
| | | | | | The target "check-clang-tools" is affected by CLANG_INCLUDE_TESTS but it was undefined in 1st configuration procedure. llvm-svn: 249283
* Module Debugging: Emit (ObjC) function declarations in the module scopeAdrian Prantl2015-10-042-1/+3
| | | | | | when building a module. llvm-svn: 249282
* Fix makefile build on OSX when ARM targets are not enabledKeno Fischer2015-10-041-0/+2
| | | | | | | | | | | | | | | Summary: When LLVM/Clang is built without ARM support, the ios_kext runtime library is not built, but without this patch, the Makefile still tries to copy it. This is a recent regression, because the ios_kext library used to also be built on x86_64. Reviewers: beanz Subscribers: aemerson, cfe-commits, rengolin Differential Revision: http://reviews.llvm.org/D13421 llvm-svn: 249281
* [SelectionDAGBuilder] Remove dead codeDavid Majnemer2015-10-041-1/+1
| | | | | | We already check for LandingPadInst two lines above. llvm-svn: 249280
* Add -f[no-]declspec to control recognition of __declspec as a keywordSaleem Abdulrasool2015-10-0411-10/+68
| | | | | | | | | | | | | | | In versions of clang prior to r238238, __declspec was recognized as a keyword in all modes. It was then changed to only be enabled when Microsoft or Borland extensions were enabled (and for CUDA, as a temporary measure). There is a desire to support __declspec in Playstation code, and possibly other environments. This commit adds a command-line switch to allow explicit enabling/disabling of the recognition of __declspec as a keyword. Recognition is enabled by default in Microsoft, Borland, CUDA, and PS4 environments, and disabled in all other environments. Patch by Warren Ristow! llvm-svn: 249279
* [CMake] [darwin] Removing a line of debug code that I accidentally committed.Chris Bieneman2015-10-041-1/+0
| | | | llvm-svn: 249278
* Remove unused private field introduced by r249270.Teresa Johnson2015-10-041-5/+2
| | | | llvm-svn: 249277
* Remove non-executed statements during SCoP simplifcationJohannes Doerfert2015-10-046-14/+110
| | | | | | | | | | 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
* [FIX] Domain generation for non-affine loopsJohannes Doerfert2015-10-042-5/+39
| | | | llvm-svn: 249275
* [FIX] Count affine loops correctlyJohannes Doerfert2015-10-0413-50/+244
| | | | | | | The "unprofitable" heuristic was broken and counted boxed loops even though we do not represent and optimize them. llvm-svn: 249274
* [FIX] Approximate non-affine loops correctlyJohannes Doerfert2015-10-043-63/+116
| | | | | | | | | | 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
* [FIX] Check loop latches for valid control too.Johannes Doerfert2015-10-041-6/+7
| | | | | | | | | 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
* [NFC] Remove unused classesJohannes Doerfert2015-10-042-24/+0
| | | | llvm-svn: 249271
* Support for function summary index bitcode sections and files.Teresa Johnson2015-10-0420-46/+1633
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Make ScopAnnotator a function-local variable to ensure it is freed at each runTobias Grosser2015-10-041-3/+1
| | | | | | | | | | | | 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
* IRBuilder: Use AssertingVHTobias Grosser2015-10-042-5/+9
| | | | llvm-svn: 249268
* Use AssertingVH for ValueToValue MapsTobias Grosser2015-10-041-1/+2
| | | | | | | | 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
* BlockGenerator: Use plain Value * instead of const Value *Tobias Grosser2015-10-042-50/+45
| | | | | | | | | 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
* BlockGenerators: Use auto to be less sensitive to type changesTobias Grosser2015-10-041-13/+13
| | | | llvm-svn: 249265
* Consolidate the different ValueMapTypes we are usingTobias Grosser2015-10-048-19/+25
| | | | | | | | | | 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
* [X86][SSE4A] Added shuffle decode tests for 'special case' SSE4A ↵Simon Pilgrim2015-10-041-0/+61
| | | | | | EXTRQI/INSERTQI ops. llvm-svn: 249263
* [SPARCv9] Add support for the rdpr/wrpr instructions.Joerg Sonnenberger2015-10-045-0/+314
| | | | llvm-svn: 249262
* AVX512: Implemented encoding and intrinsics for VPERMILPS/PD instructions.Igor Breger2015-10-0411-61/+1142
| | | | | | | | Added tests for intrinsics and encoding. Differential Revision: http://reviews.llvm.org/D12690 llvm-svn: 249261
* Pass SourceRange by value in a test I missed in r249259.Craig Topper2015-10-041-2/+2
| | | | llvm-svn: 249260
* SourceRanges are small and trivially copyable, don't them by reference.Craig Topper2015-10-0428-76/+73
| | | | llvm-svn: 249259
* SourceRanges are small and trivially copyable, don't them by reference. NFCCraig Topper2015-10-042-3/+3
| | | | llvm-svn: 249258
* [WinEH] Permit branch folding in the face of funcletsDavid Majnemer2015-10-046-87/+157
| | | | | | | | 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
* cmake: ensure readline python module target is added before finishing swig.Todd Fiala2015-10-041-0/+6
| | | | | | | | | | | 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
* [ELF2/AArch64] R_AARCH64_ABS{16,32} can fail.Davide Italiano2015-10-042-0/+14
| | | | | | Add tests to ensure we handle this case this case gracefully. llvm-svn: 249255
* [ELF2/AArch64] Add support for AARCH64_ABS{16,32,64} relocations.Davide Italiano2015-10-042-0/+58
| | | | | | I saw these in the wild while trying to link shared libraries. llvm-svn: 249254
* Fix typo in READMEJeroen Ketema2015-10-041-1/+1
| | | | llvm-svn: 249253
* Diagnose const atomics in __atomic builtins.Eric Fiselier2015-10-043-10/+45
| | | | | | | | | | | 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
* [DAGCombiner] Generalize FADD constant combines to work with vectorsSimon Pilgrim2015-10-033-40/+66
| | | | | | | | Updated the FADD combines to work with vectors as well as scalars. Differential Revision: http://reviews.llvm.org/D13416 llvm-svn: 249251
* add test cases that demonstrate bad behaviorSanjay Patel2015-10-031-0/+52
| | | | | | | These are based on PR25016 and likely caused by a bug in MachineCombiner's definition of improvesCriticalPathLen(). llvm-svn: 249249
* include equal sign in debug equations; NFCSanjay Patel2015-10-031-2/+2
| | | | llvm-svn: 249248
* [llvm-size] Attempt to fix a test failure on Windows.Davide Italiano2015-10-031-1/+1
| | | | llvm-svn: 249247
* [ELF/AArch64] Support R_AARCH64_ADR_PREL_PG_H121 relocation.Davide Italiano2015-10-032-0/+23
| | | | llvm-svn: 249246
* [llvm-size] Fix time to check if time of use bug.Davide Italiano2015-10-032-8/+2
| | | | | | This was the last tool relying on this pattern. llvm-svn: 249244
OpenPOWER on IntegriCloud