summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [DAGCombiner] prepare shuffle-of-splat to handle more patterns; NFCSanjay Patel2019-04-221-11/+16
| | | | llvm-svn: 358884
* [LLVM-C] Add accessors to the default floating-point metadata nodeRobert Widmann2019-04-222-1/+30
| | | | | | | | | | | | | | | | Summary: Add a getter and setter pair for floating-point accuracy metadata. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60527 llvm-svn: 358883
* [Sema] ADL: Associated namespaces for class types and enumeration types (CWG ↵Bruno Ricci2019-04-223-32/+96
| | | | | | | | | | | | | | | | | | | 1691) CWG 1691 changed the definition of the namespaces associated with a class type or enumeration type. For a class type, the associated namespaces are the innermost enclosing namespaces of the associated classes. For an enumeration type, the associated namespace is the innermost enclosing namespace of its declaration. This also fixes CWG 1690 and CWG 1692. Differential Revision: https://reviews.llvm.org/D60573 Reviewed By: rjmccall, rsmith llvm-svn: 358882
* [Sema][NFC] Add more tests for the behavior of argument-dependent name lookupBruno Ricci2019-04-225-0/+565
| | | | | | | | | | | | | | | | | | | | | | | The goal here is to exercise each rule in [basic.lookup.argdep] at least once. These new tests expose what I believe are 2 issues: 1. CWG 1691 needs to be implemented (p2: [...] Its associated namespaces are the innermost enclosing namespaces of its associated classes [...]) The corresponding tests are adl_class_type::X2 and adl_class_type::X5. 2. The end of paragraph 2 ([...] Additionally, if the aforementioned set of overloaded functions is named with a template-id, its associated classes and namespaces also include those of its type template-arguments and its template template-arguments.) is not implemented. Closely related, the restriction on non-dependent parameter types in this same paragraph needs to be removed. The corresponding tests are in adl_overload_set (both issues are from CWG 997). Differential Revision: https://reviews.llvm.org/D60570 Reviewed By: riccibruno, Quuxplusone llvm-svn: 358881
* [NewPM] Add Option handling for SimpleLoopUnswitchSerguei Katkov2019-04-2212-58/+96
| | | | | | | | | | | This patch enables passing options to SimpleLoopUnswitch via the passes pipeline. Reviewers: chandlerc, fedor.sergeev, leonardchan, philip.pfaffe Reviewed By: fedor.sergeev Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D60676 llvm-svn: 358880
* [AMDGPU] Regenerate uitofp i8 to float conversion tests. Simon Pilgrim2019-04-221-119/+771
| | | | | | Prep work for D60462 llvm-svn: 358879
* [NewPM] Add dummy Test for LoopVectorize option parsing.Serguei Katkov2019-04-221-0/+10
| | | | llvm-svn: 358878
* [analyzer][www] Moving MoveChecker out of alpha is no longer an open project.Kristof Umann2019-04-221-10/+0
| | | | llvm-svn: 358877
* Revert "[ConstantRange] Rename make{Guaranteed -> Exact}NoWrapRegion() NFC"Nikita Popov2019-04-226-65/+66
| | | | | | | | | | This reverts commit 7bf4d7c07f2fac862ef34c82ad0fef6513452445. After thinking about this more, this isn't right, the range is not exact in the same sense as makeExactICmpRegion(). This needs a separate function. llvm-svn: 358876
* [ConstantRange] Rename make{Guaranteed -> Exact}NoWrapRegion() NFCNikita Popov2019-04-226-66/+65
| | | | | | | | Following D60632 makeGuaranteedNoWrapRegion() always returns an exact nowrap region. Rename the function accordingly. This is in line with the naming of makeExactICmpRegion(). llvm-svn: 358875
* [LLD][ELF] - Handle quoted strings in the linker scripts correctly.George Rimar2019-04-222-1/+14
| | | | | | | | | | | | | | This is the https://bugs.llvm.org/show_bug.cgi?id=41356, Seems it is kind of unusual case but it is possible to have sections that require quotes for their namings. Like "aaa bbb". This patch adds support for those. Differential revision: https://reviews.llvm.org/D60901 llvm-svn: 358874
* [NativePDB] Add anonymous namespaces supportAleksandr Urakov2019-04-226-11/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds anonymous namespaces support to the native PDB plugin. I had to reference from the main function variables of the types that are inside of the anonymous namespace to include them in debug info. Without the references they are not included. I think it's because they are static, then are visible only in the current translation unit, so they are not needed without any references to them. There is also the problem case with variables of types that are nested in template structs. For now I've left FIXME in the test because this case is not related to the change. Reviewers: zturner, asmith, labath, stella.stamenova, amccarth Reviewed By: amccarth Subscribers: zloyrobot, aprantl, teemperor, lldb-commits, leonid.mashinskiy Tags: #lldb Differential Revision: https://reviews.llvm.org/D60817 llvm-svn: 358873
* [X86] Reject 512-bit types in getRegForInlineAsmConstraint when AVX512 is ↵Craig Topper2019-04-221-2/+5
| | | | | | not enabled. Same for 256 bit and AVX. llvm-svn: 358872
* [WebAssembly] Fix R_WASM_FUNCTION_OFFSET_I32 relocation warningsSam Clegg2019-04-221-6/+7
| | | | | | | | | | | | | | | We were incorrectly used the symbol table version of the function rather than the object-local version when checking the existing relocation value. This was causing erroneous warnings for comat symbols defined in multiple object.s Fixes: https://bugs.llvm.org/show_bug.cgi?id=40503 Differential Revision: https://reviews.llvm.org/D60928 llvm-svn: 358871
* [ELF][X86] Allow R_386_TLS_LDO_32 and R_X86_64_DTPOFF{32,64} to preemptable ↵Fangrui Song2019-04-227-9/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | local-dynamic symbols Summary: Fixes PR35242. A simplified reproduce: thread_local int i; int f() { return i; } % {g++,clang++} -fPIC -shared -ftls-model=local-dynamic -fuse-ld=lld a.cc ld.lld: error: can't create dynamic relocation R_X86_64_DTPOFF32 against symbol: i in readonly segment; recompile object files with -fPIC or pass '-Wl,-z,notext' to allow text relocations in the output In isStaticLinkTimeConstant(), Syn.IsPreemptible is true, so it is not seen as a constant. The error is then issued in processRelocAux(). A symbol of the local-dynamic TLS model cannot be preempted but it can preempt symbols of the global-dynamic TLS model in other DSOs. So it makes some sense that the variable is not static. This patch fixes the linking error by changing getRelExpr() on R_386_TLS_LDO_32 and R_X86_64_DTPOFF{32,64} from R_ABS to R_DTPREL. R_PPC64_DTPREL_* and R_MIPS_TLS_DTPREL_* need similar fixes, but they are not handled in this patch. As a bonus, we use `if (Expr == R_ABS && !Config->Shared)` to find ld-to-le opportunities. R_ABS is overloaded here for such STT_TLS symbols. A dedicated R_DTPREL is clearer. Differential Revision: https://reviews.llvm.org/D60945 llvm-svn: 358870
* [JITLink] Remove a lot of reduntant 'JITLink_' prefixes. NFC.Lang Hames2019-04-2213-33/+37
| | | | llvm-svn: 358869
* [ELF][X86] Rename R_RELAX_TLS_GD_TO_IE_END to R_RELAX_TLS_GD_TO_IE_GOTPLTFangrui Song2019-04-223-4/+4
| | | | | | | | | | Summary: This relocation type is used by R_386_TLS_GD. Its formula is the same as R_GOTPLT (e.g R_X86_64_GOT{32,64} R_386_TLS_GOTIE). Rename it to be clearer. Differential Revision: https://reviews.llvm.org/D60941 llvm-svn: 358868
* [cmake] Add llvm-jit to LLVM_TEST_DEPENDSFangrui Song2019-04-221-0/+1
| | | | | | Otherwise llvm-jit would say "utils/lit/lit/llvm/subst.py:127: note: Did not find llvm-jitlink in ..." llvm-svn: 358867
* [clangd] Support dependent bases in type hierarchyFangrui Song2019-04-222-47/+69
| | | | | | | | | | | | Patch by Nathan Ridge! Dependent bases are handled heuristically, by replacing them with the class template that they are a specialization of, where possible. Care is taken to avoid infinite recursion. Differential Revision: https://reviews.llvm.org/D59756 llvm-svn: 358866
* [JITLink] Fix section start address calculation in eh-frame recorder.Lang Hames2019-04-221-0/+3
| | | | | | | | | | Section atoms are not sorted, so we need to scan the whole section to find the start address. No test case: Found by inspection, and any reproduction would depend on pointer ordering. llvm-svn: 358865
* Attemp get llvm-jitlink building on WindowsNico Weber2019-04-211-6/+4
| | | | | | | | By removing an include of dlfcn.h that looks unused. And clang-format a too-long line while here. llvm-svn: 358864
* [JITLink] Add an option to dump relocated section content.Lang Hames2019-04-211-3/+82
| | | | | | | | The -dump-relocated-section-content option will dump the contents of each section after relocations are applied, and before any checks are run or code executed. llvm-svn: 358863
* gn build: Re-run `git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py ↵Nico Weber2019-04-212-2/+1
| | | | | | format` llvm-svn: 358862
* gn build: Merge r358749Nico Weber2019-04-213-9/+11
| | | | | | | | | | | | Since the symlinks list for llvm-symbolizer is now never empty, the :symlinks target no longer needs an explicit dep on :llvm-symbolizer -- there will be at least one dep on a symlink, and each symlink depends on :llvm-symbolizer already. Since llvm-symbolizer:symlinks now produces symlinks that check-llvm uses, make llvm/test depend on the symlink target. llvm-svn: 358861
* gn build: Merge r358818 (JITLink)Nico Weber2019-04-216-0/+56
| | | | llvm-svn: 358860
* [cmake] Fix bug in r358779 - [CMake] Pass monorepo build settings in cross ↵Don Hinton2019-04-211-2/+7
| | | | | | | | | compile Escape semicolons in the targets list so that cmake doesn't expand them to spaces. llvm-svn: 358859
* Attempt to fix LLVM_ENABLE_THREADS=OFF build after r358665Nico Weber2019-04-211-0/+2
| | | | llvm-svn: 358858
* llvm-undname: Fix hex escapes in wchar_t, char16_t, char32_t stringsNico Weber2019-04-212-8/+9
| | | | | | | | | | | | | | | | | llvm-undname used to put '\x' in front of every pair of nibbles, but u"\xD7\xFF" produces a string with 6 bytes: \xD7 \0 \xFF \0 (and \0\0). Correct for a single character (plus terminating \0) is u\xD7FF instead. Now, wchar_t, char16_t, and char32_t strings roundtrip from source to clang-cl (and cl.exe) and then llvm-undname. (...at least as long as it's not a string like L"\xD7FF" L"foo" which gets demangled as L"\xD7FFfoo", where the compiler then considers the "f" as part of the hex escape. That seems ok.) Also add a comment saying that the "almost-valid" char32_t string I added in my last commit is actually produced by compilers. llvm-svn: 358857
* llvm-undname: Fix stack overflow on almost-validNico Weber2019-04-212-3/+13
| | | | | | | | | | | | | | | | | If a unsigned with all 4 bytes non-0 was passed to outputHex(), there were two off-by-ones in it: - Both MaxPos and Pos left space for the final \0, which left the buffer one byte to small. Set MaxPos to 16 instead of 15 to fix. - The `assert(Pos >= 0);` was after a `Pos--`, move it up one line. Since valid Unicode codepoints are <= 0x10ffff, this could never really happen in practice. Found by oss-fuzz. llvm-svn: 358856
* [ConstantRange] Add saturating add/sub methodsNikita Popov2019-04-213-0/+142
| | | | | | | | | | | | | | | | Add support for uadd_sat and friends to ConstantRange, so we can handle uadd.sat and friends in LVI. The implementation is forwarding to the corresponding APInt methods with appropriate bounds. One thing worth pointing out here is that the handling of wrapping ranges is not maximally accurate. A simple example is that adding 0 to a wrapped range will return a full range, rather than the original wrapped range. The tests also only check that the non-wrapping envelope is correct and minimal. Differential Revision: https://reviews.llvm.org/D60946 llvm-svn: 358855
* [ConstantRange] Add getNonEmpty() constructorNikita Popov2019-04-214-64/+27
| | | | | | | | | | | | | | ConstantRanges have an annoying special case: If upper and lower are the same, it can be either an empty or a full set. When constructing constant ranges nearly always a full set is intended, but this still requires an explicit check in many places. This revision adds a getNonEmpty() constructor that disambiguates this case: If upper and lower are the same, a full set is created. Differential Revision: https://reviews.llvm.org/D60947 llvm-svn: 358854
* [AArch64] add tests with multiple binop+splat vals; NFCSanjay Patel2019-04-211-0/+33
| | | | | | See D60890 for context. llvm-svn: 358853
* llvm-undname: Fix stack overflow on invalid found by oss-fuzzNico Weber2019-04-212-1/+6
| | | | llvm-svn: 358852
* gn build: Fix build after r358837Nico Weber2019-04-211-1/+0
| | | | llvm-svn: 358851
* Minidump: yamlify module-related unit testsPavel Labath2019-04-216-134/+60
| | | | | | | | | | | | | The tests reading the untouched module list are now not using any lldb code (as module list loading lives in llvm now), so they can be removed. The "filtering" of the module list remains (and probably will remain) an lldb concept, so I keep those tests, but replace the checked-in binaries with their yaml equivalents. The binaries which are no longer referenced by any tests have been removed. llvm-svn: 358850
* [Sema][MSVC] Fix bogus microsoft-pure-definition warning on member function ↵Bruno Ricci2019-04-212-1/+13
| | | | | | | | | | | | | | | | | | | | | | of class template Clang emits a warning when using a pure specifier =0 in a function definition at class scope (a MS-specific construct), when using -fms-extensions. However, to detect this, it was using FD->isCanonicalDecl() on function declaration, which was also detecting out-of-class definition of member functions of class templates. Fix this by using !FD->isOutOfLine() instead. Fixes PR21334. Differential Revision: https://reviews.llvm.org/D29707 Reviewed By: riccibruno Reviewers: rnk, riccibruno Patch By: Rudy Pons llvm-svn: 358849
* @skipIfLinux flaky lldb-mi testsPavel Labath2019-04-213-0/+3
| | | | llvm-svn: 358848
* Make TestVSCode_step pass reliablyPavel Labath2019-04-211-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The test was failing occasionally (1% of runs or so), because of unpredictable timings between the two threads spawned by the test. If the second thread hit the breakpoint right as we were stepping out of the function on the first thread, we would still be stuck at the inner frame when the process stopped. This would cause errors like: File "/home/worker/lldb-x86_64-debian/lldb-x86_64-debian/llvm/tools/lldb/packages/Python/lldbsuite/test/tools/lldb-vscode/step/TestVSCode_step.py", line 67, in test_step self.assertEqual(x1, x3, 'verify step out variable') AssertionError: 2 != 1 : verify step out variable AFAICT, lldb-vscode is doing the right thing here, and the problem is that the test is not taking this sequence of events into account. Since the test is about testing stepping, it does not seem necessary to have threads in the inferior at all, so I just rewrite the test to execute the code we're supposed to step through directly on the main thread. Reviewers: clayborg, jgorbe Subscribers: jfb, lldb-commits Differential Revision: https://reviews.llvm.org/D60608 llvm-svn: 358847
* modify-python-lldb.py: Remove docstring formatting codePavel Labath2019-04-213-79/+60
| | | | | | | | | | | The strings have been already cleaned up in r358683, so this code is not doing anything anymore. While comparing the outputs before and after removing the formatting code, I've found a couple of docstrings that managed to escape my perl script in r358683, so I format them manually with this patch. llvm-svn: 358846
* [ARM] Rewrite isLegalT2AddressImmediateDavid Green2019-04-212-94/+618
| | | | | | | | | | | | | | | | | | | | | This does two main things, firstly adding some at least basic addressing modes for i64 types, and secondly treats floats and doubles sensibly when there is no fpu. The floating point change can help codesize in some cases, especially with D60294. Most backends seems to not consider the exact VT in isLegalAddressingMode, instead switching on type size. That is now what this does when the target does not have an fpu (as the float data will be loaded using LDR's). i64's currently use the address range of an LDRD (even though they may be legalised and loaded with an LDR). This is at least better than marking them all as illegal addressing modes. I have not attempted to do much with vectors yet. That will need changing once MVE is added. Differential Revision: https://reviews.llvm.org/D60677 llvm-svn: 358845
* [X86] Add the rounding control operand to the printing for some scalar FMA ↵Craig Topper2019-04-213-5/+5
| | | | | | instructions. llvm-svn: 358844
* [CachePruning] Simplify comparatorFangrui Song2019-04-211-9/+2
| | | | llvm-svn: 358843
* [JITLink] Add dependency on MCParser to unit test after rL358818Fangrui Song2019-04-211-0/+1
| | | | | | This is required by -DBUILD_SHARED_LIBS=on builds for createMCAsmParser. llvm-svn: 358842
* [X86] Don't form masked vfpclass instruction from and+vfpclass unless the ↵Craig Topper2019-04-211-28/+36
| | | | | | fpclass only has a single use. llvm-svn: 358841
* [JITLink] Remove an overly strict error check in JITLink's eh-frame parser.Lang Hames2019-04-212-13/+4
| | | | | | | | The error check required FDEs to refer to the most recent CIE, but the eh-frame spec allows them to refer to any previously seen CIE. This patch removes the offending check. llvm-svn: 358840
* [BinaryFormat] Fix bitfield-ordering of MachO::relocation_info on big-endian.Lang Hames2019-04-211-0/+5
| | | | | | | | Hopefully this will fix the JITLink regression test failures on big-endian testers (e.g. http://lab.llvm.org:8011/builders/clang-s390x-linux-lnt/builds/12702) llvm-svn: 358839
* [JITLink] Factor basic common GOT and stub creation code into its own class.Lang Hames2019-04-212-72/+130
| | | | llvm-svn: 358838
* [gn] Move Features.inc to clangd, create a config for itPetr Hosek2019-04-213-20/+25
| | | | | | | | | | | ClangdLSPServer and clangd unittests now include Features.inc so we need to append the target_gen_dir that contains it to their include_dirs. To do so, we use a public config that's applied to any target that depends on the features one. Differential Revision: https://reviews.llvm.org/D60919 llvm-svn: 358837
* [JITLink] Add dependencies on MCDissassembler and Target to unit test.Lang Hames2019-04-211-0/+2
| | | | llvm-svn: 358836
* llvm-undname: Improve string literal demangling with embedded \0 charsNico Weber2019-04-202-2/+15
| | | | | | | | | - Don't assert when a string looks like a u32 string to the heuristic but doesn't have a length that's 0 mod 4. Instead, classify those as u16 with embedded \0 chars. Found by oss-fuzz. - Print embedded nul bytes as \0 instead of \x00. llvm-svn: 358835
OpenPOWER on IntegriCloud