summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Pass a InputSectionData to classoff.Rafael Espindola2016-10-262-12/+12
| | | | | | This allows a non template class to hold input sections. llvm-svn: 285221
* Move a helper function that doesn't depend on a class out of the class.Rui Ueyama2016-10-262-10/+7
| | | | llvm-svn: 285220
* Define a helper function to demangle symbols.Rui Ueyama2016-10-264-10/+15
| | | | llvm-svn: 285219
* [PPC] Implement vector reverse elements builtins (vec_reve)Nemanja Ivanovic2016-10-263-0/+132
| | | | | | | This patch corresponds to review https://reviews.llvm.org/D25906. Committing on behalf of Tony Jiang. llvm-svn: 285218
* [AArch64] Avoid materializing constant 1 when generating cneg instructions.Chad Rosier2016-10-262-2/+24
| | | | | | | | | | | | | | | | | Instead of cmp w0, #1 orr w8, wzr, #0x1 cneg w0, w8, ne we now generate cmp w0, #1 csinv w0, w0, wzr, eq PR28965 llvm-svn: 285217
* Actually use = delete to mark constructors and operators we want to not ↵Enrico Granata2016-10-261-2/+2
| | | | | | | | exist. Just declaring them as private works, but it can confuse certain tools as it doesn't actually declare intent, and the C++11 way is more expressive anyway, so this is pure win rdar://28960209 llvm-svn: 285216
* [WebAssembly] Update the README.txt.Dan Gohman2016-10-261-9/+17
| | | | | | | | Update the README.txt with newer information, add a link to the Emscripten page explaining the current easiest way to use the LLVM wasm backend, and mention that other ways of using the LLVM wasm backend are in development. llvm-svn: 285215
* [MC] Fix comma typo in .loc parsingNirav Dave2016-10-261-1/+1
| | | | llvm-svn: 285214
* Silence unused parameter warnings in archetypes.hppCasey Carter2016-10-261-6/+6
| | | | | | Reviewed at: https://reviews.llvm.org/D25958 llvm-svn: 285213
* Reapply: "Remove debug location from common tail when tail-merging"Robert Lougher2016-10-263-8/+85
| | | | | | | | | | | | | | | | This reapplies revision 285093. Original commit message: The branch folding pass tail merges blocks into a common-tail. However, the tail retains the debug information from one of the original inputs to the merge (chosen randomly). This is a problem for sampled-based PGO, as hits on the common-tail will be attributed to whichever block was chosen, irrespective of which path was actually taken to the common-tail. This patch fixes the issue by nulling the debug location for the common-tail. Differential Revision: https://reviews.llvm.org/D25742 llvm-svn: 285212
* AMDGPU: Add missing ISA versions gfx7.x.x and 8.x.x.Yaxun Liu2016-10-261-0/+9
| | | | | | | | Patch by Laurent Morichetti. Differential Revision: https://reviews.llvm.org/D25920 llvm-svn: 285211
* AMDGPU: Refactor processor definition to use ISA version featuresYaxun Liu2016-10-265-36/+134
| | | | | | | | | | | | | | Add missing ISA versions 7.0.2/8.0.4/8.1.0. to backend. Refactor processor definition to use ISA version features. Fixed ISA version for stoney. Based on Laurent Morichetti's patch. Differential Revision: https://reviews.llvm.org/D25919 llvm-svn: 285210
* [scudo] Lay the foundation for 32-bit supportKostya Kortchinsky2016-10-264-86/+143
| | | | | | | | | | | | | | | | | | | | | | | | Summary: In order to support 32-bit platforms, we have to make some adjustments in multiple locations, one of them being the Scudo chunk header. For it to fit on 64 bits (as a reminder, on x64 it's 128 bits), I had to crunch the space taken by some of the fields. In order to keep the offset field small, the secondary allocator was changed to accomodate aligned allocations for larger alignments, hence making the offset constant for chunks serviced by it. The resulting header candidate has been added, and further modifications to allow 32-bit support will follow. Another notable change is the addition of MaybeStartBackgroudThread() to allow release of the memory to the OS. Reviewers: kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25688 llvm-svn: 285209
* [ubsan] Fix vptr.cpp test to be more resilient. NFC.Robert Lougher2016-10-261-1/+1
| | | | | | | | | | | | | | | | The test contains a switch statement in which two of the cases are tail-merged, with the call to __ubsan_handle_dynamic_type_cache_miss_abort in the common tail. When tail-merging occurs, the debug location of the tail is randomly taken from one of the merge inputs. Luckily for the test, the expected line number in the check is the one which is chosen by the tail-merge. However, if the switch cases are re-ordered the test will fail. This patch disables tail-merge, making the test resilient to changes in tail-merge, and unblocking review D25742. It does not change the semantics of the test. llvm-svn: 285208
* Introduce updateDiscriminator interface to DILocation to make it cleaner ↵Dehao Chen2016-10-263-33/+27
| | | | | | | | | | | | | | assigning discriminators. Summary: This patch introduces updateDiscriminator to DILocation so that it can be directly called by AddDiscriminator. It also makes it easier to update the discriminator later. Reviewers: dnovillo, dblaikie, aprantl, echristo Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D25959 llvm-svn: 285207
* [CMake] Adding example distribution CMake cache filesChris Bieneman2016-10-262-0/+64
| | | | | | These cache file are provided as an example of how to set up simple multi-stage CMake builds. I have a batch of documentation updates for LLVM.org which reference these files. llvm-svn: 285206
* Reduce the number of allocators.Rafael Espindola2016-10-268-37/+43
| | | | | | | | | | We used to have one allocator per file, which reduces the advantage of using an allocator in the first place. This is a small speed up is most cases. The largest speedup was in 1.014X in chromium no-gc. The largest slowdown was scylla at 1.003X. llvm-svn: 285205
* [ARM RT] Fix broken clear_cache debug build on ARMRenato Golin2016-10-261-0/+6
| | | | | | | | | clear_cache is using R7 for the SVC call and that's the frame pointer in GCC, which is only disabled on -O2/3, so Release builds finish, Debug don't. Fixes PR30797. llvm-svn: 285204
* Reapply "AMDGPU: Don't use offen if it is 0"Matt Arsenault2016-10-2612-88/+191
| | | | | | This reverts r283003 llvm-svn: 285203
* AMDGPU: Fix counting si_mask_branch as 4 bytesMatt Arsenault2016-10-262-1/+1
| | | | llvm-svn: 285202
* Fix nondeterministic output in local stack slot alloc passMatt Arsenault2016-10-261-6/+16
| | | | | | | | | | This finds all of the references to a frame index in a function, and sorts by the offset. If multiple instructions use the same offset, nothing was breaking the tie for sorting. This avoids the test failures the reverted r282999 introduced. llvm-svn: 285201
* [InstCombine] clean up commonCastTransforms; NFCSanjay Patel2016-10-261-11/+9
| | | | | | | | 1. Use 'auto' with dyn_cast. 2. Variables start with a capital letter. 3. Use proper punctuation in comments. llvm-svn: 285200
* LegalizeDAG: Support promoting [US]DIV and [US]REM operationsTom Stellard2016-10-261-1/+18
| | | | | | | | | | | | | | | | | | Summary: AMDGPU will need this one i16 is added as a legal type. This is tested by: test/CodeGen/AMDGPU/sdiv.ll test/CodeGen/AMDGPU/sdivrem24.ll test/CodeGen/AMDGPU/udiv.ll test/CodeGen/AMDGPU/udivrem24.ll Reviewers: bogner, efriedma Subscribers: efriedma, wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D25699 llvm-svn: 285199
* AMDGPU/SI: Don't emit multi-dword flat memory ops when they might access scratchTom Stellard2016-10-262-2/+41
| | | | | | | | | | | | | | Summary: A single flat memory operations that might access the scratch buffer can only access MaxPrivateElementSize bytes. Reviewers: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D25788 llvm-svn: 285198
* AMDGPU/SI: Remove unnecessary run lines from testTom Stellard2016-10-261-4/+2
| | | | | | | | | | | | | | Summary: This test had run lines disabling/enabling the promote alloca pass, but enabling/disabling promote alloca had no impact on the output. Reviewers: arsenm Subscribers: mgrang, kzhuravl, wdng, nhaehnle, yaxunl, llvm-commits, tony-tye Differential Revision: https://reviews.llvm.org/D25787 llvm-svn: 285197
* [X86] AVX512 fallback for floating-point scalar selectsZvi Rackover2016-10-262-12/+13
| | | | | | | | | | | | | Summary: In the case where of 'select i1 , f32, f32' or select i1, f64, f64 prefer lowering to masked-moves over branches. Fixes pr30561 Reviewers: igorb, aymanmus, delena Differential Revision: https://reviews.llvm.org/D25310 llvm-svn: 285196
* [InstCombine] consolidate zext tests and auto-generate checks; NFCSanjay Patel2016-10-263-48/+59
| | | | llvm-svn: 285195
* [InstCombine] auto-generate better checks; NFCSanjay Patel2016-10-261-90/+125
| | | | llvm-svn: 285194
* [PP] Replace some index based for loops with range based onesErik Verbruggen2016-10-266-25/+19
| | | | | | | | | While in the area, also change some unsigned variables to size_t, and introduce an LLVM_FALLTHROUGH instead of a comment stating that. Differential Revision: http://reviews.llvm.org/D25982 llvm-svn: 285193
* Fix use-after-scope in ASTContext.Benjamin Kramer2016-10-261-1/+1
| | | | | | | | | | | | Extend lifetime of ExceptionTypeStorage, as it is referenced by CanonicalEPI and used outside the block (ExceptionSpec.Exceptions is an ArrayRef) Patch by Sam McCall! Differential Revision: https://reviews.llvm.org/D25983 llvm-svn: 285192
* [AliasSetTracker] Make AST smarter about intrinsics that don't actually ↵Chad Rosier2016-10-262-0/+69
| | | | | | | | affect memory. Differential Revision: https://reviews.llvm.org/D25969 llvm-svn: 285191
* Delete trivial getters. NFC.Rafael Espindola2016-10-268-44/+38
| | | | llvm-svn: 285190
* DebugInfo: support for DWARFv5 DW_AT_alignment attributeVictor Leschuk2016-10-2610-28/+412
| | | | | | | | | | | | * Assume that clang passes non-zero alignment value to DIBuilder only in case when it was forced by C++11 'alignas', C11 '_Alignas' or compiler attribute '__attribute__((aligned (N)))'. * Emit DW_AT_alignment if alignment is specified for type/object. Differential Revision: https://reviews.llvm.org/D24425 llvm-svn: 285189
* [PP] Remove another unused parameterErik Verbruggen2016-10-262-3/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D25981 llvm-svn: 285188
* Don't set a software stepping breakpoint at 0 on arm or mips.Pavel Labath2016-10-262-6/+5
| | | | | | | | | | | | | | | | | | Summary: Check whether the setting the breakpoint failed during instruction emulation. If it did, the next pc is likely in unmapped memory, and the inferior will crash anyway after the next instruction. Do not return an error in this case, but just continue stepping. Reenabled the crash during step test for android/linux. Reviewers: labath Subscribers: aemerson, rengolin, tberghammer, danalbert, srhines, lldb-commits Differential Revision: https://reviews.llvm.org/D25926 Author: Jason Majors <jmajors@google.com> llvm-svn: 285187
* [ELF] Better error reporting for undefined symbolsEugene Leviant2016-10-2615-28/+149
| | | | | | | | | | | This patch make lld show following details for undefined symbol errors: - file (line) - file (function name) - file (section name + offset) Differential revision: https://reviews.llvm.org/D25826 llvm-svn: 285186
* [IndVarSimplify][DebugLoc] When widening the exit loop condition, correctly ↵Andrea Di Biagio2016-10-262-0/+13
| | | | | | | | | | | | | | | reuse the debug location of the original comparison. When the loop exit condition is canonicalized as a != compaison, reuse the debug location of the original (non canonical) comparison. Before this patch, the debug location of the new icmp was obtained from the loop latch terminator. This patch fixes the issue by correctly setting the IRBuilder's "current debug location" to the location of the original compare. Differential Revision: https://reviews.llvm.org/D25953 llvm-svn: 285185
* [modules] PR28812: Modules can return duplicate field decls.Vassil Vassilev2016-10-266-2/+50
| | | | | | | | | | | | | If two modules contain duplicate class definitions the lookup result can contain more than 2 elements. Sift the lookup results until we find a field decl. It is not necessary to do ODR checks in place as they done elsewhere. This should fix issues when compiling with libstdc++ 5.2 and 6.2. Patch developed in collaboration with Richard Smith! llvm-svn: 285184
* Revert r285181 "DebugInfo: support for DWARFv5 DW_AT_alignment attribute".Vassil Vassilev2016-10-2610-412/+28
| | | | | | The commit broke the builds. llvm-svn: 285183
* [PP] Replace some uses of unsigned with size_tErik Verbruggen2016-10-261-7/+5
| | | | | | | | | | | All values are returned by a method as size_t, and subsequently passed to functions taking a size_t, or used where a size_t is also valid. Better still, two loops (which had an unsigned), can be replaced by a range-based for loop. Differential Revision: http://reviews.llvm.org/D25939 llvm-svn: 285182
* DebugInfo: support for DWARFv5 DW_AT_alignment attributeVictor Leschuk2016-10-2610-28/+412
| | | | | | | | | | | | * Assume that clang passes non-zero alignment value to DIBuilder only in case when it was forced by C++11 'alignas', C11 '_Alignas' or compiler attribute '__attribute__((aligned (N)))'. * Emit DW_AT_alignment if alignment is specified for type/object. Differential Revision: https://reviews.llvm.org/D24425 llvm-svn: 285181
* PP: Remove unused parameters from methodsErik Verbruggen2016-10-262-9/+9
| | | | | | | | NFC Differential Revision: http://reviews.llvm.org/D25938 llvm-svn: 285180
* DebugInfo: add bitcode upgrade test for alignment Victor Leschuk2016-10-262-0/+23
| | | | | | Bitcode format was changed in D25073, this adds bitcode upgrade test. llvm-svn: 285179
* Bug 28065 - clang-format incorrectly aligns backslash.Andi-Bogdan Postelnicu2016-10-262-1/+12
| | | | llvm-svn: 285178
* [lsan] Relax check for allocator_end in ProcessGlobalRegionsCallback.Maxim Ostapenko2016-10-261-1/+1
| | | | | | Differential Revision: https://reviews.llvm.org/D25945 llvm-svn: 285177
* [CodeGen] Don't emit lifetime intrinsics for some local variablesVitaly Buka2016-10-267-8/+339
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Current generation of lifetime intrinsics does not handle cases like: ``` { char x; l1: bar(&x, 1); } goto l1; ``` We will get code like this: ``` %x = alloca i8, align 1 call void @llvm.lifetime.start(i64 1, i8* nonnull %x) br label %l1 l1: %call = call i32 @bar(i8* nonnull %x, i32 1) call void @llvm.lifetime.end(i64 1, i8* nonnull %x) br label %l1 ``` So the second time bar was called for x which is marked as dead. Lifetime markers here are misleading so it's better to remove them at all. This type of bypasses are rare, e.g. code detects just 8 functions building clang (2329 targets). PR28267 Reviewers: eugenis Subscribers: beanz, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D24693 llvm-svn: 285176
* [AVX-512] Fix the operand order for all calls to __builtin_ia32_vfmaddss3_mask.Craig Topper2016-10-261-40/+40
| | | | | | | | | | | | Summary: The preserved input should be the first argument and the vector inputs should be in the same order as the intrinsics it is used to implement. Reviewers: igorb, delena Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25902 llvm-svn: 285175
* [XRay] Be case-insensitive for error stringsDean Michael Berris2016-10-261-1/+1
| | | | | | | On Windows, "no such file or directory" is the default error translation as opposed to the capitalized form on Linux. llvm-svn: 285174
* [AVX-512] Add scalar vfmsub/vfnmsub mask3 intrinsicsCraig Topper2016-10-263-0/+140
| | | | | | | | | | | | Summary: Clang's intrinsic header currently tries to negate the third operand of a vfmadd mask3 in order to create vfmsub, but this fails isel. This patch adds scalar vfmsub and vfnmsub mask3 that we can use instead to avoid the negate. This is consistent with the packed instructions. Reviewers: igorb, delena Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D25933 llvm-svn: 285173
* Enable the use of the new dyld SPI on the currentJason Molenda2016-10-261-5/+0
| | | | | | generation macosx/ios/tvos/watchos. llvm-svn: 285172
OpenPOWER on IntegriCloud