summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [CMake] Make LLVM_VERSION_* variables user definableChris Bieneman2015-10-141-4/+12
| | | | | | CMake's set command overwrites existing values. Package maintainers may want or need to set the version variables manually, so we need to only set them if they are not already defined. Note I use the "if(NOT DEFINED ...)" syntax deliberately in the last case because empty string is a valid value for the suffx, but not the other variables. llvm-svn: 250333
* add x86 codegen tests for 'add nsw' followed by 'sext'Sanjay Patel2015-10-141-0/+179
| | | | llvm-svn: 250332
* [PowerPC] Fix invalid lxvdsx optimization (PR25157)Bill Schmidt2015-10-142-0/+60
| | | | | | | | | | | | PR25157 identifies a bug where a load plus a vector shuffle is incorrectly converted into an LXVDSX instruction. That optimization is only valid if the load is of a doubleword, and in the noted case, it was not. This corrects that problem. Joint patch with Eric Schweitz, who provided the bugpoint-reduced test case. llvm-svn: 250324
* [Bugpoint] Use 'CC' instead of 'GCC' for variable naming.Davide Italiano2015-10-146-149/+149
| | | | | | | | | | We now use clang by default and fallback to gcc when requested. With this commit, names reflect reality. No functional change intended. Discussed with: Rafael Espindola. llvm-svn: 250321
* [IDFCalculator] Use DominatorTreeBase instead of DominatorTreeDaniel Berlin2015-10-141-3/+3
| | | | | | | | | | | | | | | | | Summary: IDFCalculator used a DominatorTree instance for its calculations. Since the PostDominatorTree struct is not a subclass of DominatorTree, it wasn't possible to use PDT in IDFCalculator to compute post-dominance frontiers. This patch makes IDFCalculator work with a DominatorTreeBase<BasicBlock> instead, which enables PDTs to be utilized. Patch by Victor Campos (vhscampos@gmail.com) Reviewers: dberlin Subscribers: dberlin, llvm-commits Differential Revision: http://reviews.llvm.org/D13725 llvm-svn: 250320
* [Bugpoint] Use clang by default.Davide Italiano2015-10-141-2/+9
| | | | | | | | | | We now rely on gcc only if either of the following is true: 1) -gcc option is passed by the user 2) clang is not found in the default path. Differential Revision: http://reviews.llvm.org/D13642 llvm-svn: 250318
* [LoopUnswitch] Correct misleading comments.Chen Li2015-10-141-2/+1
| | | | | | | | | | Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13738 llvm-svn: 250317
* Add 'other' in description of extractvalue operands.Arch D. Robison2015-10-141-1/+1
| | | | llvm-svn: 250314
* Sample profiles - Add documentation for binary profile encoding. NFC.Diego Novillo2015-10-142-103/+174
| | | | | | | | This adds documentation for the binary profile encoding and moves the documentation for the text encoding into the header file SampleProfReader.h. llvm-svn: 250309
* A doccomment for CombineTo, and some NFC refactoringsArtyom Skrobov2015-10-141-39/+34
| | | | | | | | | | | | | | Summary: Caching SDLoc(N), instead of recreating it in every single function call, keeps the code denser, and allows to unwrap long lines. Reviewers: sunfish, atrick, sdmitrouk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13726 llvm-svn: 250305
* Merge DAGCombiner::visitSREM and DAGCombiner::visitUREM (NFC)Artyom Skrobov2015-10-141-66/+34
| | | | | | | | | | | | Summary: The two implementations had more code in common than not. Reviewers: sunfish, MatzeB, sdmitrouk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D13724 llvm-svn: 250302
* [llvm-readobj/ELF] fix: add correct test inputsIgor Kudrin2015-10-144-0/+0
| | | | llvm-svn: 250292
* [llvm-readobj/ELF] Print GNU Hash sectionIgor Kudrin2015-10-1411-0/+132
| | | | | | | | Add a new command line switch, -gnu-hash-table, to print the content of that section. Differential Revision: http://reviews.llvm.org/D13696 llvm-svn: 250291
* [x86][FastISel] Teach how to select nontemporal stores.Andrea Di Biagio2015-10-142-16/+103
| | | | | | | | | | | | | | | | | | | | | | This patch teaches x86 fast-isel how to select nontemporal stores. On x86, we can use MOVNTI for nontemporal stores of doublewords/quadwords. Instructions (V)MOVNTPS/PD/DQ can be used for SSE2/AVX aligned nontemporal vector stores. Before this patch, fast-isel always selected 'movd/movq' instead of 'movnti' for doubleword/quadword nontemporal stores. In the case of nontemporal stores of aligned vectors, fast-isel always selected movaps/movapd/movdqa instead of movntps/movntpd/movntdq. With this patch, if we use SSE2/AVX intrinsics for nontemporal stores we now always get the expected (V)MOVNT instructions. The lack of fast-isel support for nontemporal stores was spotted when analyzing the -O0 codegen for nontemporal stores. Differential Revision: http://reviews.llvm.org/D13698 llvm-svn: 250285
* [CMake] Add LLVM_VERSION_PATCH to the -current_version flag for libLTO and ↵Chris Bieneman2015-10-142-2/+2
| | | | | | | | libLLVM. This is to match autoconf where LLVM_SUBMIT_SUBVERSION is usually set to ${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}. llvm-svn: 250277
* [CMake] Fixing the bots I broke.Chris Bieneman2015-10-141-7/+7
| | | | | | I meant to put the POLICY setting below the version defaults. llvm-svn: 250276
* [CMake] Set Policy CMP0048 to NEWChris Bieneman2015-10-141-11/+21
| | | | | | | | | | | | | | CMake 3.0 introduced the VERSION option for the project() command. If you don't specify the VERSION in the function it will clear out variables matching ${PROJECT_NAME}_VERSION_${MAJOR|MINOR|PATCH|TWEAK}. This makes overriding LLVM_VERSION_* not work properly with newer versions of CMake. To make this work properly we need to: (1) Optionally set the policy to NEW (2) Move default versions and setting PACKAGE_VERSION to before the call to project() (3) If the policy is set, pass the VERSION and LANGUAGES options in the new format This change should have no behavioral change for CMake versions before 3.0, and it makes the behavior of later versions match the earlier versions. llvm-svn: 250275
* Add a instrumentation test for LinuxXinliang David Li2015-10-141-0/+1
| | | | | | Make sure __llvm_profile_init is not emitted. llvm-svn: 250274
* [X86] Update CPU detection to only enable XSAVE features if the OS has ↵Craig Topper2015-10-141-14/+16
| | | | | | enabled them and the saving of YMM state. This seems to be consistent with gcc behavior. llvm-svn: 250269
* [X86] Add XSAVE feature flags to their various processors.Craig Topper2015-10-141-3/+23
| | | | llvm-svn: 250268
* Use range-based for loops. NFCCraig Topper2015-10-141-9/+7
| | | | llvm-svn: 250266
* Revert r250204 and r250240 due to bot failure. We failed to build PGO-ed clang.Manman Ren2015-10-147-235/+5
| | | | llvm-svn: 250264
* [msan] Fix crash on multiplication by a non-integer constant.Evgeniy Stepanov2015-10-142-9/+38
| | | | | | Fixes PR25160. llvm-svn: 250260
* [asan] Disabling speculative loads under asan. Patch by Mike AizatskyKostya Serebryany2015-10-142-1/+45
| | | | llvm-svn: 250259
* Rename one of our two llvm::GCOVOptions classes to llvm::GCOV::Options. We usedRichard Smith2015-10-144-15/+11
| | | | | | | to get away with this because llvm/Support/GCOV.h was an implementation detail of the llvm-gcov tool, but it's now being used by FDO. llvm-svn: 250258
* Split -pedantic and -Wno-long-long into two separate flags so libc++ can ↵Eric Fiselier2015-10-131-1/+2
| | | | | | remove -pedantic llvm-svn: 250255
* [SCEV] Use `SCEV::isAllOnesValue` directly; NFC.Sanjoy Das2015-10-131-8/+4
| | | | | | | Instead of `dyn_cast` ing to `SCEVConstant` and checking the contained `ConstantInteger. llvm-svn: 250251
* [CMake] Add compatibility and current versioning to libLTO to match autoconf ↵Chris Bieneman2015-10-131-0/+10
| | | | | | | | support. This also adds LLVM_LTO_VERSION_OFFSET to support functional equivalence to autoconf. llvm-svn: 250245
* [CMake] libLLVM's compatibility version should be 1.Chris Bieneman2015-10-131-1/+1
| | | | | | This is in matching with the autoconf build system. llvm-svn: 250244
* Sample profile reader - remove dead code. NFC.Diego Novillo2015-10-132-35/+0
| | | | | | | This removes old remnants from the gcov reader. I missed these when I re-wrote it recently. llvm-svn: 250242
* Sample profiles - Add a name table to the binary encoding.Diego Novillo2015-10-137-38/+146
| | | | | | | | Binary encoded profiles used to encode all function names inline at every reference. This is clearly suboptimal in terms of space. This patch fixes this by adding a name table to the header of the file. llvm-svn: 250241
* Update MachineBranchProbabilityInfo::normalizeEdgeWeights to make sure there ↵Cong Hou2015-10-132-22/+73
| | | | | | | | is no zero weight in the output, and also add a missing test for JumpThreading. The test is for the patch in http://reviews.llvm.org/D10979 but was missing when committing that patch. llvm-svn: 250240
* Add missing #include, found by modules build.Richard Smith2015-10-132-8/+83
| | | | llvm-svn: 250239
* [InlineFunction] Correctly inline TerminatePadInstDavid Majnemer2015-10-132-5/+64
| | | | | | | | | | | We forgot to append the terminatepad's arguments which resulted in us treating the old terminatepad as an argument to the new terminatepad causing us to crash immediately. Instead, add the old terminatepad's arguments to the new terminatepad. This fixes PR25155. llvm-svn: 250234
* [WebAssembly] Remove a TODO comment which is no longer needed. NFC.Dan Gohman2015-10-131-7/+0
| | | | llvm-svn: 250233
* [uselistorder] Insert blank line, NFCVedant Kumar2015-10-131-0/+1
| | | | llvm-svn: 250231
* Fix layering violation: Analysis should not include headers from TransformsRichard Smith2015-10-131-2/+2
| | | | | | (and in this case isn't even using anything from those headers). llvm-svn: 250228
* Typo.Chad Rosier2015-10-131-1/+1
| | | | llvm-svn: 250224
* Tweak to r250117 and change to use ErrorOr and drop isSizeValid forKevin Enderby2015-10-133-26/+13
| | | | | | | | | | ArchiveMemberHeader, suggestion by Rafael Espíndola. Also The clang-x86-win2008-selfhost bot still does not like the malformed-machos 00000031.a test, so removing it for now. All the other bots are fine with it however. llvm-svn: 250222
* [WinEH] Add CoreCLR EH table emissionJoseph Tremoulet2015-10-133-3/+521
| | | | | | | | | | | | | | | | | | Summary: Emit the handler and clause locations immediately after the standard xdata. Clauses are emitted in the same order and format used to communiate them to the CLR Execution Engine. Add a lit test to verify correct table generation on a small but interesting example function. Reviewers: majnemer, andrew.w.kaylor, rnk Subscribers: pgavlin, AndyAyers, llvm-commits Differential Revision: http://reviews.llvm.org/D13451 llvm-svn: 250219
* AMDGPU: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-139-18/+17
| | | | | | | | | | | | | | | | | | One of the changes in lib/Target/AMDGPU/AMDGPUMCInstLower.cpp was a new one. Previously, bundle iterators and single-instruction iterators could be compared to each other (comparing on underlying pointers). I changed a comparison from using `MBB->end()` to using `MBB->instr_end()`, since both end iterators should point at the some place anyway. I don't think the implicit conversion between the two iterator types is a good idea since it's fairly easy to accidentally compare to the wrong thing (they aren't always end iterators). Otherwise I would have just added the conversion. Even with that, no there should be functionality change here. llvm-svn: 250218
* AArch64: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-136-15/+12
| | | | llvm-svn: 250216
* SelectionDAG: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-138-50/+50
| | | | llvm-svn: 250214
* Scalar: Remove remaining ilist iterator implicit conversionsDuncan P. N. Exon Smith2015-10-1327-240/+240
| | | | | | | | | | | | | | | | | | | Remove remaining `ilist_iterator` implicit conversions from LLVMScalarOpts. This change exposed some scary behaviour in lib/Transforms/Scalar/SCCP.cpp around line 1770. This patch changes a call from `Function::begin()` to `&Function::front()`, since the return was immediately being passed into another function that takes a `Function*`. `Function::front()` started to assert, since the function was empty. Note that `Function::end()` does not point at a legal `Function*` -- it points at an `ilist_half_node` -- so the other function was getting garbage before. (I added the missing check for `Function::isDeclaration()`.) Otherwise, no functionality change intended. llvm-svn: 250211
* [AArch64] Check the size of the vector before accessing its elements.Akira Hatanaka2015-10-132-1/+10
| | | | | | | | This fixes an assert in AArch64AsmParser::MatchAndEmitInstruction. rdar://problem/23081753 llvm-svn: 250207
* Update the branch weight metadata in JumpThreading pass.Cong Hou2015-10-136-5/+184
| | | | | | | | Currently in JumpThreading pass, the branch weight metadata is not updated after CFG modification. Consider the jump threading on PredBB, BB, and SuccBB. After jump threading, the weight on BB->SuccBB should be adjusted as some of it is contributed by the edge PredBB->BB, which doesn't exist anymore. This patch tries to update the edge weight in metadata on BB->SuccBB by scaling it by 1 - Freq(PredBB->BB) / Freq(BB->SuccBB). Differential revision: http://reviews.llvm.org/D10979 llvm-svn: 250204
* [PGO]: Eliminate calls to __llvm_profile_register_function for Linux.Xinliang David Li2015-10-132-4/+10
| | | | | | | | | On Linux, the profile runtime can use __start_SECTNAME and __stop_SECTNAME symbols defined by the linker to locate the start and end location of a named section (with C name). This eliminates the need for instrumented binary to call __llvm_profile_register_function during start-up time. llvm-svn: 250199
* Scalar: Remove some implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-1310-61/+62
| | | | | | | Remove some of the implicit ilist iterator conversions in LLVMScalarOpts. More to go. llvm-svn: 250197
* ExecutionEngine: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-131-5/+4
| | | | llvm-svn: 250193
* OrcJIT: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-131-1/+1
| | | | llvm-svn: 250192
OpenPOWER on IntegriCloud