summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [ConstantRangeTest] Fix typos in test names; NFCNikita Popov2019-04-111-4/+4
| | | | llvm-svn: 358227
* [cmake] Fix dependency issue in TableGenPengxuan Zheng2019-04-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: There is a bug in add_tablegen which causes cmake to fail with the following error message if LLVM_TABLEGEN is set. CMake Error at cmake/modules/TableGen.cmake:147 (add_dependencies): The dependency target "LLVM-tablegen-host" of target "CLANG-tablegen-host" does not exist. Call Stack (most recent call first): tools/clang/utils/TableGen/CMakeLists.txt:3 (add_tablegen) The issue happens because setting LLVM_TABLEGEN causes cmake to skip generating the LLVM-tablegen-host target. As a result, a non-existent target was added for CLANG-tablegen-host causing cmake to fail. In order to fix this issue, this patch adds a guard to check the validity of the dependency target before adding it as a dependency. Reviewers: aganea, smeenai Reviewed By: aganea Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60576 llvm-svn: 358226
* [PGO] Better handling of profile hash mismatchRong Xu2019-04-113-6/+127
| | | | | | | | | | | We currently assume profile hash conflicts will be caught by an upfront check and we assert for the cases that escape the check. The assumption is not always true as there are chances of conflict. This patch prints a warning and skips annotating the function for the escaped cases,. Differential Revision: https://reviews.llvm.org/D60154 llvm-svn: 358225
* [lldb] [lit/Register] XFAIL on DarwinMichal Gorny2019-04-111-0/+1
| | | | llvm-svn: 358224
* [AArch64][GlobalISel] Flesh out vector load/store support for more types.Amara Emerson2019-04-116-71/+448
| | | | | | | Some of these were legalizing into smaller vector types unnecessarily, others were simply not supported yet. llvm-svn: 358223
* [AArch64][GlobalISel] Legalization and ISel support for load/stores of ↵Amara Emerson2019-04-118-25/+260
| | | | | | | | | | | | | | | | vectors of pointers. Loads and store of values with type like <2 x p0> currently don't get imported because SelectionDAG has no knowledge of pointer types. To leverage the existing support for vector load/stores, we can bitcast the value to have s64 element types instead. We do this as a custom legalization. This patch also adds support for general loads of <2 x s64>, and relaxes some type conditions on selecting G_BITCAST. Differential Revision: https://reviews.llvm.org/D60534 llvm-svn: 358221
* [DebugInfo] Combine Trivial and NonTrivial flagsAaron Smith2019-04-1114-35/+34
| | | | | | | | | | | | | | | | Summary: Companion to https://reviews.llvm.org/D59347 Reviewers: rnk, zturner, probinson, dblaikie, deadalnix Subscribers: aprantl, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59348 llvm-svn: 358220
* [DebugInfo] Combine Trivial and NonTrivial flagsAaron Smith2019-04-112-10/+14
| | | | | | | | | | | | | | | | | | | | | Summary: These flags are used when emitting debug info and needed to initialize subprogram and member function attributes (function options) for Codeview. These function options are used to create an accurate compiler type for UDT symbols (class/struct/union) from PDBs. The Trivial flag was introduced in https://reviews.llvm.org/D45122 It's been pointed out that Trivial and NonTrivial may imply each other and that seems to be the case in the current tests. This change combines them into a single flag -- NonTrivial -- and updates the corresponding unit tests. There is an additional change to llvm to update the flags. Reviewers: rnk, zturner, dblaikie, probinson, Hui Reviewed By: dblaikie Subscribers: aprantl, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D59347 llvm-svn: 358219
* [X86] Restrict vselect handling in scalarizeExtEltFP to only case to pre ↵Craig Topper2019-04-112-0/+29
| | | | | | | | | | type legalization where the setcc result type is vXi1. If the vector setcc has been legalized then we will need to convert a vector boolean of 0 or -1 to a scalar boolean of 0 or 1. The added test case previously crashed in 32-bit mode by creating a setcc with an i64 condition that type legalization couldn't expand. llvm-svn: 358218
* [X86] Add 32-bit command line to extractelement-fp.ll so I can add a test ↵Craig Topper2019-04-111-246/+806
| | | | | | | | case for a 32-bit only crasher. NFC This is a bit ugly for ABI reasons about how floats/doubles are returned. llvm-svn: 358217
* [test] Fix & re-enable CommandScriptImmediateOutputFile on WindowsJonas Devlieghere2019-04-112-4/+5
| | | | | | | Apparently the shlex module produces garbage on Windows. I've added a hand rolled split instead that should suffice for this test. llvm-svn: 358216
* [X86] Add patterns for using movss/movsd for atomic load/store of f32/64. ↵Craig Topper2019-04-114-141/+130
| | | | | | | | | | | | | | Remove atomic fadd pseudos use isel patterns instead. This patch adds patterns for turning bitcasted atomic load/store into movss/sd. It also removes the pseudo instructions for atomic RMW fadd. Instead just adding isel patterns for folding an atomic load into addss/sd. And relying on the new movss/sd store pattern to handle the write part. This also makes the fadd patterns use VEX and EVEX instructions when AVX or AVX512F are enabled. Differential Revision: https://reviews.llvm.org/D60394 llvm-svn: 358215
* Recommit r358211 "[X86] Use FILD/FIST to implement i64 atomic load on 32-bit ↵Craig Topper2019-04-118-396/+428
| | | | | | | | | | | | targets with X87, but no SSE2" With correct test checks this time. If we have X87, but not SSE2 we can atomicaly load an i64 value into the significand of an 80-bit extended precision x87 register using fild. We can then use a fist instruction to convert it back to an i64 integ This matches what gcc and icc do for this case and removes an existing FIXME. llvm-svn: 358214
* [test] Disable CommandScriptImmediateOutputFile on WindowsJonas Devlieghere2019-04-111-0/+2
| | | | | | | | | | | | | | | | | | | Somehow the path gets messed up. The command looks correct, but the python path is not. (lldb) mywrite E:\build_slave\lldb-x64-windows-ninja\build\tools\lldb\lit\Commands\ CommandScriptImmediateOutput\Output\ CommandScriptImmediateOutputFile.test.tmp.read.txt r No such file or directory: 'E:build_slavelldb-x64-windows-ninjabuildtoolslldblitCommands CommandScriptImmediateOutputOutput CommandScriptImmediateOutputFile.test.tmp.read.txt' Maybe the shlex module is escaping it? llvm-svn: 358213
* Revert r358211 "[X86] Use FILD/FIST to implement i64 atomic load on 32-bit ↵Craig Topper2019-04-118-382/+323
| | | | | | | | targets with X87, but no SSE2" I seem to have messed up the test checks. llvm-svn: 358212
* [X86] Use FILD/FIST to implement i64 atomic load on 32-bit targets with X87, ↵Craig Topper2019-04-118-323/+382
| | | | | | | | | | | | but no SSE2 If we have X87, but not SSE2 we can atomicaly load an i64 value into the significand of an 80-bit extended precision x87 register using fild. We can then use a fist instruction to convert it back to an i64 integer and store it to a stack temporary. From there we can do two 32-bit loads to get the value into integer registers without worrying about atomicness. This matches what gcc and icc do for this case and removes an existing FIXME. Differential Revision: https://reviews.llvm.org/D60156 llvm-svn: 358211
* [X86] Pre-commit i64 volatile test case for D60156. NFCCraig Topper2019-04-111-0/+32
| | | | llvm-svn: 358210
* [TSan][libdispatch] Re-enable disabled testsJulian Lettner2019-04-112-6/+0
| | | | | | | | I re-activated "broad strokes suppressions" (ignore_noninstrumented_modules=1) in my last commit. Re-enable tests that only fail on our bots to check if they work now. llvm-svn: 358209
* [TSan][libdispatch] Turn ignore_noninstrumented_modules=1 back on for DarwinJulian Lettner2019-04-111-0/+3
| | | | llvm-svn: 358208
* [libFuzzer] Make MutateWithMask work when the Mask is shorter than the input.Max Moroz2019-04-111-3/+3
| | | | | | | | | | | | | | | | | | | Summary: Before this change, MutateWithMask used to assert that Mask should be of sufficient length (>= Size of the input). However, in real cases we may have inputs that are longer than the Mask they have inherited from the based inputs. Reviewers: kcc, morehouse Reviewed By: kcc Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D60571 llvm-svn: 358207
* [TSan][libdispatch] Replace usage of NSMutableData with stack arrayJulian Lettner2019-04-115-10/+10
| | | | | | | | Reviewed By: kubamracek Differential Revision: https://reviews.llvm.org/D60477 llvm-svn: 358205
* [TSan][libdispatch] Change test to have two simultaneous timersJulian Lettner2019-04-111-1/+1
| | | | | | | | | | | Change test semantics by waiting for both timer callbacks at the end instead of serializing operations: start/wait timer 1 then 2. Reviewed By: kubamracek Differential Revision: https://reviews.llvm.org/D60476 llvm-svn: 358204
* [TSan][libdispatch] Replace CFRunLoop with dispatch_semaphore, pt. 2Julian Lettner2019-04-1111-83/+97
| | | | | | | | Reviewed By: kubamracek Differential Revision: https://reviews.llvm.org/D60475 llvm-svn: 358203
* Revert "tsan: Update test expectations."Matt Morehouse2019-04-111-2/+2
| | | | | | This reverts r357831 to go with r358113. llvm-svn: 358202
* Support objc_nonlazy_class attribute on Objective-C implementationsErik Pilkington2019-04-116-16/+29
| | | | | | | | Fixes rdar://49523079 Differential revision: https://reviews.llvm.org/D60544 llvm-svn: 358201
* Add support for attributes on @implementations in Objective-CErik Pilkington2019-04-1115-32/+106
| | | | | | | | | We want to make objc_nonlazy_class apply to implementations, but ran into this. There doesn't seem to be any reason that this isn't supported. Differential revision: https://reviews.llvm.org/D60542 llvm-svn: 358200
* Revert "Use llvm::lower_bound. NFC"Ali Tamur2019-04-119-32/+45
| | | | | | | | | This reverts commit rL358161. This patch have broken the test: llvm/test/tools/llvm-exegesis/X86/uops-CMOV16rm-noreg.s llvm-svn: 358199
* Fix sphinx documentation warning.Zachary Turner2019-04-111-1/+1
| | | | llvm-svn: 358198
* [PDB Docs] Add skeleton of documentation for CodeView symbols.Zachary Turner2019-04-112-28/+259
| | | | llvm-svn: 358197
* [pstl] Remove our custom FindTBB CMake fileLouis Dionne2019-04-112-67/+0
| | | | | | | | | | | | | | | | Summary: The TBBConfig file installed by TBB 2019 Update 5 works properly, so we don't need this workaround anymore. Reviewers: rodgert, MikeDvorskiy Subscribers: mgorny, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D60467 llvm-svn: 358196
* Fix PR41465 - Use __builtin_mul_overflow instead of hand-rolled check.Eric Fiselier2019-04-112-4/+31
| | | | | | | | | On ARM the hand-rolled check causes a call to __aeabi_uidiv, which we may not have a definition for. Using the builtin avoids the generation of any library call. llvm-svn: 358195
* New document skeleton describing how to add a constrained floating-pointKevin P. Neal2019-04-112-0/+99
| | | | | | | | | intrinsic. Reviewed by: andrew.w.kaylor, cameron.mcinally Differential Revision: https://reviews.llvm.org/D59833 llvm-svn: 358194
* [pstl] Setup the _PSTL_VERSION macro like _LIBCPP_VERSION, and add release notesLouis Dionne2019-04-114-8/+68
| | | | | | | | | | | | Reviewers: rodgert, MikeDvorskiy Subscribers: mgorny, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D60464 llvm-svn: 358193
* [ConstantFold] ExtractConstantBytes - handle shifts on large integer typesSimon Pilgrim2019-04-112-14/+52
| | | | | | | | Use APInt instead of getZExtValue from the ConstantInt until we can confirm that the shift amount is in range. Reduced from OSS-Fuzz #14169 - https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=14169 llvm-svn: 358192
* [NFC] Correct outdated links to the Itanium C++ ABI documentationLouis Dionne2019-04-1110-10/+10
| | | | | | | | Those are now hosted on GitHub. rdar://problem/36557462 llvm-svn: 358191
* [libFuzzer] Fallback to default Mutate when MutateWithMask fails.Max Moroz2019-04-112-1/+4
| | | | | | | | | | | | | | | | | | | | | | Summary: In case the current corpus input doesn't have bytes going into the focus function, MutateWithMask is useless and may fail gently, allowing the default mutation routine happen, rather than crashing on an assertion. For more context and the initial fix suggestion, see: https://github.com/google/oss-fuzz/issues/1632#issuecomment-481862879 Reviewers: kcc, morehouse Reviewed By: kcc Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D60567 llvm-svn: 358190
* [libc++] Make sure we don't eagerly diagnose non-const comparators for ↵Louis Dionne2019-04-1110-21/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | containers of incomplete types Summary: In r348529, I improved the library-defined diagnostic for using containers with a non-const comparator/hasher. However, the check is now performed too early, which leads to the diagnostic being emitted in cases where it shouldn't. See PR41360 for details. This patch moves the diagnostic to the destructor of the containers, which means that the diagnostic will only be emitted when the container is instantiated at a point where the comparator and the key/value are required to be complete. We still retain better diagnostics than before r348529, because the diagnostics are performed in the containers themselves instead of __tree and __hash_table. As a drive-by fix, I improved the diagnostic to mention that we can't find a _viable_ const call operator, as suggested by EricWF in PR41360. Reviewers: EricWF, mclow.lists Subscribers: christof, jkorous, dexonsmith, libcxx-commits, zoecarver Tags: #libc Differential Revision: https://reviews.llvm.org/D60540 llvm-svn: 358189
* [lldb] [lit/Register] Mark x86-mm-xmm-read XFAIL on WindowsMichal Gorny2019-04-111-0/+1
| | | | llvm-svn: 358188
* [DAGCombiner] refactor narrowing of extracted vector binop; NFCSanjay Patel2019-04-111-20/+19
| | | | | | | There's a TODO comment about handling patterns with insert_subvector, and we do want to match that. llvm-svn: 358187
* [X86] SimplifyDemandedVectorElts - add X86ISD::VPERMV3 mask supportSimon Pilgrim2019-04-112-5/+3
| | | | | | Completes SimplifyDemandedVectorElts's basic variable shuffle mask support which should help D60512 + D60562 llvm-svn: 358186
* Make llvm-nm -help great againSerge Guelton2019-04-112-33/+61
| | | | | | | | | Only display help from the llvm-nm category instead of all llvm options, which make it much more usable. There's still an issue with -s, which is probably a bug in llvm::cl and worth another commit. Differential Revision: https://reviews.llvm.org/D60411 llvm-svn: 358185
* [lldb] [lit/Register] Fix test to use %clangxxMichal Gorny2019-04-111-1/+1
| | | | llvm-svn: 358184
* [RISCV] Diagnose invalid second input register operand when using %tprel_addRoger Ferrer Ibanez2019-04-112-2/+27
| | | | | | | | | | | | | | | | | | | RISCVMCCodeEmitter::expandAddTPRel asserts that the second operand must be x4/tp. As we are not currently checking this in the RISCVAsmParser, the assert is easy to trigger due to wrong assembly input. This patch does a late check of this constraint. An alternative could be using a singleton register class for x4/tp similar to the current one for sp. Unfortunately it does not result in a good diagnostic. Because add is an overloaded mnemonic, if no matching is possible, the diagnostic of the first failing alternative seems to be used as the diagnostic itself. This means that this case the %tprel_add is diagnosed as an invalid operand (because the real add instruction only has 3 operands). Differential Revision: https://reviews.llvm.org/D60528 llvm-svn: 358183
* [X86][AVX] Tweak X86ISD::VPERMV3 demandedelts testSimon Pilgrim2019-04-111-3/+3
| | | | | | Original test was too dependent on the order of the combines that could cause the inserted element being demanded after all llvm-svn: 358182
* Fixed possible out of bound array access.Andrey Churbanov2019-04-111-2/+2
| | | | | | | | The check of index value moved to before the write to the array. Differential Revision: https://reviews.llvm.org/D60471 llvm-svn: 358181
* [test] Convert CommandScriptImmediateOutput from pexpect to litJonas Devlieghere2019-04-114-101/+62
| | | | | | | | | This converts the CommandScriptImmediateOutput test from a python test using pexpect to a lit test. Differential revision: https://reviews.llvm.org/D60566 llvm-svn: 358180
* [X86] Add MM register mapping from CodeView to MC register idLuo, Yuanke2019-04-111-0/+9
| | | | | | | Differential Revision: https://reviews.llvm.org/D60437 Change-Id: I2183a6d825d0284b22705d423b88882992b236c5 llvm-svn: 358179
* [lldb] [Process/NetBSD] Fix wrongly mapping mm* registersMichal Gorny2019-04-113-2/+79
| | | | | | | | | | | | | Fix mistake that mapped mm* registers into the space for xmm* registers, rather than the one shared with st* registers. In other words, 'register read mmN' now correctly shows the mmN register rather than part of xmmN. Includes a minimal lit regression test. Differential Revision: https://reviews.llvm.org/D60325 llvm-svn: 358178
* [llvm] [lit] Add target-x86* featuresMichal Gorny2019-04-111-0/+4
| | | | | | | | | | | Add a 'target-x86' and 'target-x86_64' feature sthat indicates that the default target is 32-bit or 64-bit x86, appropriately. Combined with 'native' feature, we're going to use this to control x86-specific LLDB native process tests. Differential Revision: https://reviews.llvm.org/D60474 llvm-svn: 358177
* YAMLIO: Fix serialization of strings with embedded nulsPavel Labath2019-04-112-6/+11
| | | | | | | | | | | | | | | | | | | | | | Summary: A bug/typo in Output::scalarString caused us to round-trip a StringRef through a const char *. This meant that any strings with embedded nuls were unintentionally cut short at the first such character. (It also could have caused accidental buffer overruns, but it seems that all StringRefs coming into this functions were formed from null-terminated strings.) This patch fixes the bug and adds an appropriate test. Reviewers: sammccall, jhenderson Subscribers: kristina, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60505 llvm-svn: 358176
OpenPOWER on IntegriCloud