summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix -Wcovered-switch-default.Rui Ueyama2017-02-221-3/+1
| | | | llvm-svn: 295799
* Attempt to placate MSVC buildbot.Rui Ueyama2017-02-221-1/+1
| | | | | | | | | I really do not understand what is going on on some Windows buildbots, but FileCheck command on some buildbot behaves like long lines were truncated. I'll try to find a cause of the issue, but let me relax the test so that they'll succeed on all buildbots. llvm-svn: 295798
* AMDGPU: Add cvt.pkrtz intrinsicMatt Arsenault2017-02-2218-51/+351
| | | | | | Convert llvm.SI.packf16 test uses llvm-svn: 295797
* [LoopUnroll] Enable PGO-based loop peeling by default.Michael Kuperstein2017-02-222-3/+3
| | | | | | | | | This enables peeling of loops with low dynamic iteration count by default, when profile information is available. Differential Revision: https://reviews.llvm.org/D27734 llvm-svn: 295796
* [XRay] Change the ppc trampoline asm file into a different name, to not ↵Tim Shen2017-02-222-1/+1
| | | | | | collide with the cc file. NFC. llvm-svn: 295795
* Fix assertion failure when generating debug information for a variableRichard Smith2017-02-222-2/+20
| | | | | | | | | | declaration declared using class template argument deduction. Patch by Eric Fiselier (who is busy and asked me to commit this on his behalf)! Differential Revision: https://reviews.llvm.org/D30082 llvm-svn: 295794
* Attempt to fix buildbot.Rui Ueyama2017-02-221-2/+0
| | | | | | | | I added this log message to test the /msvclto option, but this output might confuse FileCheck. This patch attempts to fix it by removing it. llvm-svn: 295793
* AMDGPU: Remove some uses of llvm.SI.export in testsMatt Arsenault2017-02-2233-1065/+952
| | | | | | Merge some of the old, smaller tests into more complete versions. llvm-svn: 295792
* [c++1z] Mark constexpr lambdas as done on status page and start advertisingRichard Smith2017-02-213-3/+4
| | | | | | | | them via feature test macro __cpp_constexpr. Thanks to Faisal for implementing this feature! llvm-svn: 295791
* Fix deduction of type of pack-expanded non-type template parameter.Richard Smith2017-02-213-57/+112
| | | | | | | | | We need to look through the PackExpansionType in the parameter type when deducing, and we need to consider the possibility of deducing arguments for packs that are not lexically mentioned in the pattern (but are nonetheless deducible) when figuring out which packs are covered by a pack deduction scope. llvm-svn: 295790
* AMDGPU: Remove llvm.AMDGPU.clamp intrinsicMatt Arsenault2017-02-2111-825/+776
| | | | llvm-svn: 295789
* AMDGPU: Redefine clamp node as clamp 0.0-1.0Matt Arsenault2017-02-2115-33/+713
| | | | | | | | | | | Change implementation to use max instead of add. min/max/med3 do not flush denormals regardless of the mode, so it is OK to use it whether or not they are enabled. Also allow using clamp with f16, and use knowledge of dx10_clamp. llvm-svn: 295788
* Do not use errs() or outs() directly. Instead use message(), log() or error()Rui Ueyama2017-02-2114-65/+73
| | | | | | | | | LLD is a multi-threaded program. errs() or outs() are not guaranteed to be thread-safe (they are actually not). LLD's message(), log() or error() are thread-safe. We should use them. llvm-svn: 295787
* Hook up OpenBSD AArch64 supportBrad Smith2017-02-213-2/+198
| | | | llvm-svn: 295786
* [NVPTX] Unify vectorization of load/stores of aggregate arguments and return ↵Artem Belevich2017-02-219-746/+1384
| | | | | | | | | | | | | | | | | | | | | | | | | | | | values. Original code only used vector loads/stores for explicit vector arguments. It could also do more loads/stores than necessary (e.g v5f32 would touch 8 f32 values). Aggregate types were loaded one element at a time, even the vectors contained within. This change attempts to generalize (and simplify) parameter space loads/stores so that vector loads/stores can be used more broadly. Functionality of the patch has been verified by compiling thrust test suite and manually checking the differences between PTX generated by llvm with and without the patch. General algorithm: * ComputePTXValueVTs() flattens input/output argument into a flat list of scalars to load/store and returns their types and offsets. * VectorizePTXValueVTs() uses that data to create vectorization plan which returns an array of flags marking boundaries of vectorized load/stores. Scalars are represented as 1-element vectors. * Code that generates loads/stores implements a simple state machine that constructs a vector according to the plan. Differential Revision: https://reviews.llvm.org/D30011 llvm-svn: 295784
* AMDGPU: Formatting fixesMatt Arsenault2017-02-211-4/+5
| | | | llvm-svn: 295783
* DAG: Check if extract_vector_elt is legal or customMatt Arsenault2017-02-211-1/+1
| | | | | | | Avoids test regressions in future AMDGPU commits when more vector types are custom lowered. llvm-svn: 295782
* Declare lgamma library builtins as never being constJacob Gravelle2017-02-212-6/+17
| | | | | | | | | | | | | | | Summary: POSIX requires lgamma writes to an external global variable, signgam. This prevents annotating lgamma with readnone, which is incorrect on targets that write to signgam. Reviewers: efriedma, rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D29778 llvm-svn: 295781
* [ELF] Insert linkerscript symbols directly into symbol tablePetr Hosek2017-02-214-15/+30
| | | | | | | | | | This change exposes the symbol table insert method and uses it to insert the linkerscript defined symbols directly into the symbol table to avoid unnecessarily pulling the object out of an archive. Differential Revision: https://reviews.llvm.org/D30224 llvm-svn: 295780
* Fix for pr31836 - pp_nonportable_path on absolute paths: broken delimitersTaewook Oh2017-02-212-1/+14
| | | | | | | | | | | | | | Summary: This is a patch for PR31836. As the bug replaces the path separators in the included file name with the characters following them, the test script makes sure that there's no "Ccase-insensitive-include-pr31836.h" in the warning message. Reviewers: rsmith, eric_niebler Reviewed By: eric_niebler Subscribers: karies, cfe-commits Differential Revision: https://reviews.llvm.org/D30000 llvm-svn: 295779
* [XRay] Merge xray clang flag tests, and add powerpc64le.Tim Shen2017-02-213-29/+6
| | | | | | | | | | | | Summary: I'm not sure why they were in different files, but it's kind of harder to maintain. I create this patch partially for initiate a discussion. Reviewers: dberris Subscribers: nemanjai, cfe-commits Differential Revision: https://reviews.llvm.org/D30118 llvm-svn: 295778
* [AArch64, X86] Add statistics for the MacroFusion passEvandro Menezes2017-02-212-0/+8
| | | | llvm-svn: 295777
* [AArch64, X86] Guard against both instrs being wild cardsEvandro Menezes2017-02-212-10/+12
| | | | | | If both instrs are wild cards, the result can be a crash. llvm-svn: 295776
* [AArch64] Add test case for fusion of literal generationEvandro Menezes2017-02-211-0/+46
| | | | | | | Add test case from https://reviews.llvm.org/D28698 that was somehow lost in transit. llvm-svn: 295775
* [AArch64] Add test case for fusion of AES crypto operationsEvandro Menezes2017-02-211-0/+207
| | | | | | | Add test case from https://reviews.llvm.org/D28491 that was somehow lost in transit. llvm-svn: 295774
* [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2017-02-2110-182/+296
| | | | | | other minor fixes (NFC). llvm-svn: 295773
* Add `-z nocopyreloc` option.Rui Ueyama2017-02-214-1/+28
| | | | | | | This option disable creating copy relocations. ld.bfd and ld.gold have the same option. llvm-svn: 295772
* [compiler-rt] Prevent symbolizer from starting itself.Vitaly Buka2017-02-211-0/+16
| | | | | | | | | | | | | | Summary: If symbolizer was instrumented with sanitizer and crash, it may try to call itself again causing infinite recursion of crashing processes. Reviewers: eugenis Subscribers: kubamracek, llvm-commits, dberris Differential Revision: https://reviews.llvm.org/D30222 llvm-svn: 295771
* Try to fix the buildbot on OSX.Zachary Turner2017-02-211-16/+0
| | | | | | | | | Since I'm only seeing failures on OSX, and it's saying permission denied, I'm suspecting this is due to the addition of the MAP_RESILIENT_CODESIGN and/or MAP_RESILIENT_MEDIA flags. Speculatively trying to remove those to get the bots working. llvm-svn: 295770
* Try to fix Android build.Zachary Turner2017-02-211-1/+3
| | | | llvm-svn: 295769
* [Support] Add a function to check if a file resides locally.Zachary Turner2017-02-216-31/+211
| | | | | | Differential Revision: https://reviews.llvm.org/D30010 llvm-svn: 295768
* Make default value for disable-licm-promotion in licm explicit.Xin Tong2017-02-211-1/+2
| | | | llvm-svn: 295767
* [asan] Re-enable a test on i386-darwin.Anna Zaks2017-02-211-1/+0
| | | | | | | | This test has been reverted in r279918 due to flaky atos support in the OS some machines in the buildbot fleet were running. This should not be a problem anymore. llvm-svn: 295766
* Don't modify archive members unless really needed.Rafael Espindola2017-02-216-29/+80
| | | | | | | | | | | For whatever reason ld64 requires that member headers (not the member themselves) should be aligned. The only way to do that is to edit the previous member so that it ends at an aligned boundary. Since modifying data put in an archive is an undesirable property, llvm-ar should only do it when it is absolutely necessary. llvm-svn: 295765
* Only enable AddDiscriminator pass when -fdebug-info-for-profiling is trueDehao Chen2017-02-212-5/+6
| | | | | | | | | | | | | | Summary: AddDiscriminator pass is only useful for sample pgo. This patch restricts AddDiscriminator to -fdebug-info-for-profiling so that it does not introduce unecessary debug size increases for non-sample-pgo builds. Reviewers: dblaikie, aprantl Reviewed By: dblaikie Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D30220 llvm-svn: 295764
* Fix copy and paste mistake in header comment, NFC.Erik Pilkington2017-02-211-1/+1
| | | | llvm-svn: 295763
* Fix PR31896.Evgeniy Stepanov2017-02-212-5/+24
| | | | | | Address of an alias of a global with offset is incorrectly lowered as an address of the global (i.e. ignoring offset). llvm-svn: 295762
* [compiler-rt][asan] Fix incorrect macro preventing ICF with MSVCEtienne Bergeron2017-02-211-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The DLL thunks are stubs added to an instrumented DLL to redirect ASAN API calls to the real ones in the main executable. These thunks must contain dummy code before __asan_init got called. Unfortunately, MSVC linker is doing ICF and is merging functions with the same body. In our case, this two ASAN thunks were incorrectly merged: ``` asan_interface.inc:16 INTERFACE_FUNCTION(__asan_before_dynamic_init) ``` ``` sanitizer_common_interface.inc:16 INTERFACE_FUNCTION(__sanitizer_verify_contiguous_container) ``` The same thunk got patched twice. After the second patching, calls to `__asan_before_dynamic_init` are redirected to `__sanitizer_verify_contiguous_container` and trigger a DCHECK on incorrect operands/ The problem was caused by the macro that is only using __LINE__ to prevent collapsing code. ``` #define INTERCEPT_SANITIZER_FUNCTION(name) extern "C" __declspec(noinline) void name() { volatile int prevent_icf = (__LINE__ << 8); (void)prevent_icf; ``` The current patch is adding __COUNTER__ which is safer than __LINE__. Also, to precent ICF (guarantee that code is different), we are using a unique attribute: - the name of the function Reviewers: rnk Reviewed By: rnk Subscribers: llvm-commits, kubamracek, chrisha, dberris Differential Revision: https://reviews.llvm.org/D30219 llvm-svn: 295761
* Try to fix line endings.Zachary Turner2017-02-212-640/+640
| | | | llvm-svn: 295759
* [InstCombine] canonicalize non-obivous forms of integer min/maxSanjay Patel2017-02-213-39/+37
| | | | | | | | | | | | | | | | This is part of trying to clean up our handling of min/max patterns in IR. By converting these to canonical form, we're more likely to recognize them because there are various places in InstCombine that don't use matchSelectPattern or m_SMax and friends. The backend fixups referenced in the now deleted TODO comment were added with: https://reviews.llvm.org/rL291392 https://reviews.llvm.org/rL289738 If there's any codegen fallout from this change, we should be able to address it in DAGCombiner or target-specific lowering. llvm-svn: 295758
* AMDGPU: Remove dead declarations in testsMatt Arsenault2017-02-212-8/+0
| | | | llvm-svn: 295757
* Remove svn:eol-style property from 2 files.Zachary Turner2017-02-212-640/+640
| | | | | | There are still over 3400 files remaining with this property set, but there are tens of thousands more with the property not set. Until we decide what to do on a global scale, this at least unblocks me temporarily. llvm-svn: 295756
* AMDGPU: Remove dead declarations from MIR testsMatt Arsenault2017-02-213-48/+5
| | | | llvm-svn: 295755
* AMDGPU: Remove llvm.AMDGPU.flbit intrinsicMatt Arsenault2017-02-213-29/+0
| | | | llvm-svn: 295754
* AMDGPU: Don't use stack space for SGPR->VGPR spillsMatt Arsenault2017-02-2111-94/+876
| | | | | | | | | | | | | | | | Before frame offsets are calculated, try to eliminate the frame indexes used by SGPR spills. Then we can delete them after. I think for now we can be sure that no other instruction will be re-using the same frame indexes. It should be easy to notice if this assumption ever breaks since everything asserts if it tries to use a dead frame index later. The unused emergency stack slot seems to still be left behind, so an additional 4 bytes is still wasted. llvm-svn: 295753
* [LoopSimplify] Simplify how we compute UniqueExitXin Tong2017-02-211-8/+1
| | | | | | | | | | | | Summary: Simplify how we compute UniqueExit. Reuse ExitBlockSet. Reviewers: sanjoy, efriedma, hfinkel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30182 llvm-svn: 295751
* More comments for getUniqueExitBlocks. NFCIXin Tong2017-02-211-1/+2
| | | | llvm-svn: 295750
* Teach the IR verifier to reject conflicting debug info for function arguments.Adrian Prantl2017-02-212-0/+64
| | | | | | | | | | | Conflicting debug info for function arguments causes hard-to-debug assertions in the DWARF backend, so the Verifier should reject it. For performance reasons this only checks function arguments from non-inlined debug intrinsics for now. rdar://problem/30520286 llvm-svn: 295749
* [CodeGenPrepare] Sink and duplicate more 'and' instructions.Geoff Berry2017-02-2110-91/+403
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Rework the code that was sinking/duplicating (icmp and, 0) sequences into blocks where they were being used by conditional branches to form more tbz instructions on AArch64. The new code is more general in that it just looks for 'and's that have all icmp 0's as users, with a target hook used to select which subset of 'and' instructions to consider. This change also enables 'and' sinking for X86, where it is more widely beneficial than on AArch64. The 'and' sinking/duplicating code is moved into the optimizeInst phase of CodeGenPrepare, where it can take advantage of the fact the OptimizeCmpExpression has already sunk/duplicated any icmps into the blocks where they are used. One minor complication from this change is that optimizeLoadExt needed to be updated to always mark 'and's it has determined should be in the same block as their feeding load in the InsertedInsts set to avoid an infinite loop of hoisting and sinking the same 'and'. This change fixes a regression on X86 in the tsan runtime caused by moving GVNHoist to a later place in the optimization pipeline (see PR31382). Reviewers: t.p.northover, qcolombet, MatzeB Subscribers: aemerson, mcrosier, sebpop, llvm-commits Differential Revision: https://reviews.llvm.org/D28813 llvm-svn: 295746
* AMDGPU : AMDGPU : Update AMDGPU Trap Handler ABI.Wei Ding2017-02-211-41/+49
| | | | | | Differential Revision: http://reviews.llvm.org/D29913 llvm-svn: 295745
OpenPOWER on IntegriCloud