and though bugs are the bane of my existence, rest assured the wretched thing will get the best of care here

  1. 07 Feb, 2019 10 commits
    • Hans Wennborg's avatar
      Merging r353399: · 98ebe746
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353399 | hans | 2019-02-07 13:39:35 +0100 (Thu, 07 Feb 2019) | 1 line
      
      docs: add missingkeyfunction to doctree, fix title
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353400
      98ebe746
    • Hans Wennborg's avatar
      Fix sphinx warning · ac29b659
      Hans Wennborg authored
      llvm-svn: 353398
      ac29b659
    • Martin Storsjo's avatar
      829bb6fd
    • Hans Wennborg's avatar
      Generate docs/AttributeReference.rst · cb2d048c
      Hans Wennborg authored
      $ bin/clang-tblgen -gen-attr-docs -I../cfe.src/include
          ../cfe.src/include/clang/Basic/Attr.td -o
          ../cfe.src/docs/AttributeReference.rst
      
      llvm-svn: 353396
      cb2d048c
    • Hans Wennborg's avatar
      Re-generate docs/ClangCommandLineReference.rst · 8c33d4fb
      Hans Wennborg authored
      $ bin/clang-tblgen -gen-opt-docs -I../cfe.src/include
          -I../cfe.src/include/clang/Driver -I../llvm.src/include
          ../cfe.src/include/clang/Driver/ClangOptionDocs.td -o
          ../cfe.src/docs/ClangCommandLineReference.rst
      
      llvm-svn: 353395
      8c33d4fb
    • Hans Wennborg's avatar
      Merging r353393: · 104c654a
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353393 | hans | 2019-02-07 12:13:28 +0100 (Thu, 07 Feb 2019) | 1 line
      
      Typo: s/follwing/following
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353394
      104c654a
    • Hans Wennborg's avatar
      Merging r353327: · 7399f70f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353327 | lebedevri | 2019-02-06 20:17:30 +0100 (Wed, 06 Feb 2019) | 18 lines
      
      [clang-tidy] modernize-avoid-c-arrays: avoid main function (PR40604)
      
      Summary:
      The check should ignore the main function, the program entry point.
      It is not possible to use `std::array<>` for the `argv`.
      The alternative is to use `char** argv`.
      
      Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=40604 | PR40604 ]]
      
      Reviewers: JonasToth, aaron.ballman
      
      Reviewed By: aaron.ballman
      
      Subscribers: xazax.hun, hans, cfe-commits
      
      Tags: #clang-tools-extra, #clang
      
      Differential Revision: https://reviews.llvm.org/D57787
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353391
      7399f70f
    • Hans Wennborg's avatar
      Merging r353367: · 33fc712a
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353367 | brad | 2019-02-07 03:06:58 +0100 (Thu, 07 Feb 2019) | 2 lines
      
      Add OpenBSD support to be able to get the thread name
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353388
      33fc712a
    • Hans Wennborg's avatar
      lld-link: Add some entries to the 8.0 release notes · 238045f8
      Hans Wennborg authored
      By Nico Weber!
      
      Differential revision: https://reviews.llvm.org/D57818
      
      llvm-svn: 353387
      238045f8
    • Hans Wennborg's avatar
      Merging r353304: · f5822066
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353304 | uweigand | 2019-02-06 16:10:13 +0100 (Wed, 06 Feb 2019) | 18 lines
      
      [SystemZ] Do not return INT_MIN from strcmp/memcmp
      
      The IPM sequence currently generated to compute the strcmp/memcmp
      result will return INT_MIN for the "less than zero" case.  While
      this is in compliance with the standard, strictly speaking, it
      turns out that common applications cannot handle this, e.g. because
      they negate a comparison result in order to implement reverse
      compares.
      
      This patch changes code to use a different sequence that will result
      in -2 for the "less than zero" case (same as GCC).  However, this
      requires that the two source operands of the compare instructions
      are inverted, which breaks the optimization in removeIPMBasedCompare.
      Therefore, I've removed this (and all of optimizeCompareInstr), and
      replaced it with a mostly equivalent optimization in combineCCMask
      at the DAGcombine level.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353379
      f5822066
  2. 06 Feb, 2019 4 commits
    • Hans Wennborg's avatar
      Merging r353250: · 7ec84db4
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353250 | zturner | 2019-02-06 01:50:35 +0100 (Wed, 06 Feb 2019) | 24 lines
      
      [PDB] Remove dots and normalize slashes with /PDBSOURCEPATH.
      
      In a previous patch, I made changes so that PDBs which were
      generated on non-Windows platforms contained sensical paths
      for the host.  While this is an esoteric use case, we need
      it to be supported for certain cross compilation scenarios
      especially with LLDB, which can debug things on non-Windows
      platforms.
      
      However, this regressed a case where you specify /PDBSOURCEPATH
      and use a windows-style path.  Previously, we would still remove
      dots and canonicalize slashes to backslashes, but since my
      change intentionally tried to support non-backslash paths, this
      was broken.
      
      This patch fixes the situation by trying to guess which path
      style the user is specifying when /PDBSOURCEPATH is passed.
      It is intentionally conservative, erring on the side of a
      Windows path style unless absolutely certain.  All dots are
      removed and slashes canonicalized to whatever the deduced
      path style is after appending the file path to the /PDBSOURCEPATH
      argument.
      
      Differential Revision: https://reviews.llvm.org/D57769
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353300
      7ec84db4
    • Hans Wennborg's avatar
      Merging r353224: · a2f46031
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353224 | kamil | 2019-02-05 23:20:25 +0100 (Tue, 05 Feb 2019) | 2 lines
      
      Update the ioctl(2) list in sanitizers with NetBSD 8.99.34
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353292
      a2f46031
    • Hans Wennborg's avatar
      Merging r352016: · 5581990e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352016 | phosek | 2019-01-24 04:04:42 +0100 (Thu, 24 Jan 2019) | 12 lines
      
      [libunwind] Don't abort if encoutering invalid .eh_frame_hdr
      
      Recent Linux kernel release has introduced a bug as part of the ORC
      rollout where the vDSO has a valid .eh_frame section, but it's missing
      the .eh_frame_hdr section and GNU_EH_FRAME segment has zero size. This
      causes libunwind to abort which breaks programs that use libunwind.
      
      The other unwinder implementation (libgcc, non-gnu) instead silently
      bail out unless being compiled as debug. This change modifies libunwind
      to use the same strategy.
      
      Differential Revision: https://reviews.llvm.org/D57081
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353287
      5581990e
    • Hans Wennborg's avatar
      Merging r353155: · 35f4f2f7
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353155 | hans | 2019-02-05 12:01:54 +0100 (Tue, 05 Feb 2019) | 11 lines
      
      Fix format string in bindings/go/llvm/ir_test.go (PR40561)
      
      The test started failing for me recently. I don't see any changes around
      this code, so maybe it's my local go version that changed or something.
      
      The error seems real to me: we're trying to print an Attribute with %d.
      The test talks about "attribute masks" I'm not sure what that refers to,
      but I suppose we could print the raw pointer value, since that's
      what the test seems to be comparing.
      
      Differential revision: https://reviews.llvm.org/D57672
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353279
      35f4f2f7
  3. 05 Feb, 2019 6 commits
    • Reid Kleckner's avatar
      Merging rr353218: · 30ce79ed
      Reid Kleckner authored
      ```---------------------------------------------------------------------
      r353218 | rnk | 2019-02-05 13:14:09 -0800 (Tue, 05 Feb 2019) | 19 lines
      
      [MC] Don't error on numberless .file directives on MachO
      
      Summary:
      Before r349976, MC ignored such directives when producing an object file
      and asserted when re-producing textual assembly output. I turned this
      assertion into a hard error in both cases in r349976, but this makes it
      unnecessarily difficult to write a single assembly file that supports
      both MachO and other object formats that support .file. A user reported
      this as PR40578, and we decided to go back to ignoring the directive.
      
      Fixes PR40578
      
      Reviewers: mstorsjo
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D57772
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353220
      30ce79ed
    • Hans Wennborg's avatar
      Merging r352555: · a9a9c27e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352555 | asbirlea | 2019-01-29 23:33:20 +0100 (Tue, 29 Jan 2019) | 12 lines
      
      Check bool attribute value in getOptionalBoolLoopAttribute.
      
      Summary:
      Check the bool value of the attribute in getOptionalBoolLoopAttribute
      not just its existance.
      Eliminates the warning noise generated when vectorization is explicitly disabled.
      
      Reviewers: Meinersbur, hfinkel, dmgreen
      
      Subscribers: jlebar, sanjoy, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D57260
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353167
      a9a9c27e
    • Hans Wennborg's avatar
      Merging r353082: · a10d2d23
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r353082 | meinersbur | 2019-02-04 20:55:59 +0100 (Mon, 04 Feb 2019) | 10 lines
      
      [WarnMissedTransforms] Do not warn about already vectorized loops.
      
      LoopVectorize adds llvm.loop.isvectorized, but leaves
      llvm.loop.vectorize.enable. Do not consider such a loop for user-forced
      vectorization since vectorization already happened -- by prioritizing
      llvm.loop.isvectorized except for TM_SuppressedByUser.
      
      Fixes http://llvm.org/PR40546
      
      Differential Revision: https://reviews.llvm.org/D57542
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353166
      a10d2d23
    • Hans Wennborg's avatar
      Merging r352945: · f7f9945c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352945 | mgrang | 2019-02-02 02:32:48 +0100 (Sat, 02 Feb 2019) | 13 lines
      
      [AutoUpgrade] Fix AutoUpgrade for x86.seh.recoverfp
      
      Summary: This fixes the bug in https://reviews.llvm.org/D56747#inline-502711.
      
      Reviewers: efriedma
      
      Reviewed By: efriedma
      
      Subscribers: javed.absar, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D57614
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353159
      f7f9945c
    • Hans Wennborg's avatar
      Merging r352929: · 9c110d55
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352929 | mstorsjo | 2019-02-01 23:08:09 +0100 (Fri, 01 Feb 2019) | 11 lines
      
      [COFF] Create range extension thunks for ARM64
      
      On ARM64, this is normally necessary only after a module exceeds
      128 MB in size (while the limit for thumb is 16 MB). For conditional
      branches, the range limit is only 1 MB though (the same as for thumb),
      and for the tbz instruction, the range is only 32 KB, which allows for
      a test much smaller than the full 128 MB.
      
      This fixes PR40467.
      
      Differential Revision: https://reviews.llvm.org/D57575
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353158
      9c110d55
    • Hans Wennborg's avatar
      Merging r352928: · ca26c44d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352928 | mstorsjo | 2019-02-01 23:08:03 +0100 (Fri, 01 Feb 2019) | 9 lines
      
      [COFF] Fix crashes when writing a PDB after adding thunks.
      
      When writing a PDB, the OutputSection of all chunks need to be set.
      The thunks are added directly to OutputSection after the normal
      machinery that sets it for all other chunks.
      
      This fixes part of PR40467.
      
      Differential Revision: https://reviews.llvm.org/D57574
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353157
      ca26c44d
  4. 04 Feb, 2019 3 commits
    • Hans Wennborg's avatar
      Merging r352307: · 44c79302
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352307 | void | 2019-01-27 08:24:03 +0100 (Sun, 27 Jan 2019) | 11 lines
      
      Remove Expr sugar decorating the CXXUuidofExpr node.
      
      Summary: Sugar, like ConstantExpr, causes an infinite expansion of the template object.
      
      Reviewers: rsmith, aaron.ballman
      
      Reviewed By: aaron.ballman
      
      Subscribers: riccibruno, aaron.ballman, cfe-commits, tzik, rnk
      
      Differential Revision: https://reviews.llvm.org/D57114
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353031
      44c79302
    • Hans Wennborg's avatar
      Merging r352889: · 8cc77b4a
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352889 | wolfgangp | 2019-02-01 18:11:58 +0100 (Fri, 01 Feb 2019) | 6 lines
      
      [DWARF v5] Fix DWARF emitter and consumer to produce/expect a uleb for a location description's length.
      
      Reviewer: davide, JDevliegere
      
      Differential Revision: https://reviews.llvm.org/D57550
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 353029
      8cc77b4a
    • Hans Wennborg's avatar
      Release Notes: Add Zig to External Open Source Projects Using LLVM 8 · 36e9afbd
      Hans Wennborg authored
      Zig has all tests passing in the llvm8 branch with rc1.
      Zig 0.4.0 is scheduled to be released 1 week after LLVM 8.0.0,
      and it will depend on LLVM 8.
      
      Patch by Andrew Kelley!
      
      Differential revision: https://reviews.llvm.org/D57586
      
      llvm-svn: 353019
      36e9afbd
  5. 01 Feb, 2019 11 commits
    • Krzysztof Parzyszek's avatar
      b96362ff
    • Hans Wennborg's avatar
      Merging r352246: · 61ff0b63
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352246 | mtrofin | 2019-01-25 22:49:54 +0100 (Fri, 25 Jan 2019) | 23 lines
      
      [llvm] Opt-in flag for X86DiscriminateMemOps
      
      Summary:
      Currently, if an instruction with a memory operand has no debug information,
      X86DiscriminateMemOps will generate one based on the first line of the
      enclosing function, or the last seen debug info.
      
      This may cause confusion in certain debugging scenarios. The long term
      approach would be to use the line number '0' in such cases, however, that
      brings in challenges: the base discriminator value range is limited
      (4096 values).
      
      For the short term, adding an opt-in flag for this feature.
      
      See bug 40319 (https://bugs.llvm.org/show_bug.cgi?id=40319)
      
      Reviewers: dblaikie, jmorse, gbedwell
      
      Reviewed By: dblaikie
      
      Subscribers: aprantl, eraman, hiraditya
      
      Differential Revision: https://reviews.llvm.org/D57257
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352867
      61ff0b63
    • Hans Wennborg's avatar
      Merging r352463: · f66fbcfb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352463 | sam_parker | 2019-01-29 10:04:03 +0100 (Tue, 29 Jan 2019) | 6 lines
      
      [AArch64] Update int64_t ACLE builtin arguments
          
      Re-applying r351740 with fixes (changing LL to W).
      
      Differential Revision: https://reviews.llvm.org/D56852
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352860
      f66fbcfb
    • Hans Wennborg's avatar
      Merging r352156: · c081a5fb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352156 | phosek | 2019-01-25 03:42:30 +0100 (Fri, 25 Jan 2019) | 12 lines
      
      [AArch64] Make the test for rsr and rsr64 stricter
      
      ACLE specifies that return type for rsr and rsr64 is uint32_t and
      uint64_t respectively. D56852 change the return type of rsr64 from
      unsigned long to unsigned long long which at least on Linux doesn't
      match uint64_t, but the test isn't strict enough to detect that
      because compiler implicitly converts unsigned long long to uint64_t,
      but it breaks other uses such as printf with PRIx64 type specifier.
      This change makes the test stricter enforcing that the return type
      of rsr and rsr64 builtins is what is actually specified in ACLE.
      
      Differential Revision: https://reviews.llvm.org/D57210
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352859
      c081a5fb
    • Hans Wennborg's avatar
      Merging r352770: · d4c2ff4d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352770 | tejohnson | 2019-01-31 18:18:11 +0100 (Thu, 31 Jan 2019) | 3 lines
      
      Recommit "[ThinLTO] Rename COMDATs for COFF when promoting/renaming COMDAT leader"
      
      Recommit of r352763 with fix for use after free.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352856
      d4c2ff4d
    • Hans Wennborg's avatar
      Merging r352822: · e26a2f23
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352822 | ahatanak | 2019-02-01 01:12:06 +0100 (Fri, 01 Feb 2019) | 8 lines
      
      Revert "[Sema] Make canPassInRegisters return true if the CXXRecordDecl passed"
      
      This reverts commit r350920 as it is not clear whether we should force a
      class to be returned in registers when copy and move constructors are
      both deleted.
      
      For more background, see the following discussion:
      http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20190128/259907.html
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352855
      e26a2f23
    • Hans Wennborg's avatar
      Merging r352672: · 2a08347d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352672 | epilk | 2019-01-30 22:14:08 +0100 (Wed, 30 Jan 2019) | 4 lines
      
      Don't define __has_feature(objc_fixed_enum) in non-objc mode
      
      This is only a formal language feature in ObjC, otherwise its just an
      extension. Making this change was also an ABI break.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352854
      2a08347d
    • Hans Wennborg's avatar
      Merging r352606: · 538ee731
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352606 | dim | 2019-01-30 07:31:52 +0100 (Wed, 30 Jan 2019) | 27 lines
      
      Recognize FreeBSD specific BFD names in OUTPUT_FORMAT
      
      Summary:
      After rLLD344952 ("Add OUTPUT_FORMAT linker script directive support"),
      using BFD names such as `elf64-x86-64-freebsd` the `OUTPUT_FORMAT`
      linker script command does not work anymore, resulting in errors like:
      
      ```
      ld: error: /home/dim/src/clang800-import/stand/efi/loader/arch/amd64/ldscript.amd64:2: unknown output format name: elf64-x86-64-freebsd
      >>> OUTPUT_FORMAT("elf64-x86-64-freebsd", "elf64-x86-64-freebsd", "elf64-x86-64-freebsd")
      >>>               ^
      ```
      
      To fix this, recognize a `-freebsd` suffix in BFD names, and also set
      `Configuration::OSABI` to `ELFOSABI_FREEBSD` for those cases.
      
      Add and/or update several test cases to check for the correct results of
      these new `OUTPUT_FORMAT` arguments.
      
      Reviewers: ruiu, atanasyan, grimar, hokein, emaste, espindola
      
      Reviewed By: ruiu
      
      Subscribers: nemanjai, javed.absar, arichardson, krytarowski, kristof.beyls, kbarton, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D57283
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352853
      538ee731
    • Hans Wennborg's avatar
      Merging r352482: · 15decd1d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352482 | grimar | 2019-01-29 12:46:00 +0100 (Tue, 29 Jan 2019) | 3 lines
      
      [ELF] - Remove dead `readBfdName` declaration. NFC.
      
      `readBfdName` was removed recently.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352852
      15decd1d
    • Hans Wennborg's avatar
      Merging r352435: · 9f0ae69a
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352435 | ruiu | 2019-01-28 22:45:50 +0100 (Mon, 28 Jan 2019) | 1 line
      
      Attempt to fix build failure with GCC 5.4.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352851
      9f0ae69a
    • Hans Wennborg's avatar
      Merging r352407: · 6dcd982f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352407 | ruiu | 2019-01-28 20:11:52 +0100 (Mon, 28 Jan 2019) | 1 line
      
      Refactoring. NFC.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352850
      6dcd982f
  6. 30 Jan, 2019 4 commits
  7. 29 Jan, 2019 2 commits
    • Hans Wennborg's avatar
      Merging r352539: · 3c554e2e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r352539 | arsenm | 2019-01-29 21:49:47 +0100 (Tue, 29 Jan 2019) | 9 lines
      
      Revert "OpenCL: Extend argument promotion rules to vector types"
      
      This reverts r348083. This was based on a misreading of the spec
      for printf specifiers.
      
      Also revert r343653, as without a subsequent patch, a correctly
      specified format for a vector will incorrectly warn.
      
      Fixes bug 40491.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352547
      3c554e2e
    • Hans Wennborg's avatar
      Merging r351910: · f103e430
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r351910 | cuviper | 2019-01-23 01:53:22 +0100 (Wed, 23 Jan 2019) | 18 lines
      
      [CodeView] Allow empty types in member functions
      
      Summary:
      `CodeViewDebug::lowerTypeMemberFunction` used to default to a `Void`
      return type if the function's type array was empty. After D54667, it
      started blindly indexing the 0th item for the return type, which fails
      in `getOperand` for empty arrays if assertions are enabled.
      
      This patch restores the `Void` return type for empty type arrays, and
      adds a test generated by Rust in line-only debuginfo mode.
      
      Reviewers: zturner, rnk
      
      Reviewed By: rnk
      
      Subscribers: hiraditya, JDevlieghere, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D57070
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 352546
      f103e430