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

  1. 02 Nov, 2018 3 commits
    • Tom Stellard's avatar
      Merging r342354: · 204289af
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r342354 | kristina | 2018-09-16 15:21:59 -0700 (Sun, 16 Sep 2018) | 11 lines
      
      [DebugInfo] Fix build when std::vector::iterator is a pointer
      
      std::vector::iterator type may be a pointer, then
      iterator::value_type fails to compile since iterator is not a class,
      namespace, or enumeration.
      
      Patch by orivej (Orivej Desh)
      
      Differential Revision: https://reviews.llvm.org/D52142
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345923
      204289af
    • Tom Stellard's avatar
      Merging r344454, r344455, r344645: · bbaf33ed
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r344454 | xbolva00 | 2018-10-13 08:21:55 -0700 (Sat, 13 Oct 2018) | 11 lines
      
      [InstCombine] Fixed crash with aliased functions
      
      Summary: Fixes PR39177
      
      Reviewers: spatel, jbuening
      
      Reviewed By: jbuening
      
      Subscribers: jbuening, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D53129
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r344455 | xbolva00 | 2018-10-13 08:26:13 -0700 (Sat, 13 Oct 2018) | 2 lines
      
      [NFC] Fixed duplicated test file
      
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r344645 | xbolva00 | 2018-10-16 14:18:31 -0700 (Tue, 16 Oct 2018) | 9 lines
      
      [InstCombine] Cleanup libfunc attribute inferring
      
      Reviewers: efriedma
      
      Reviewed By: efriedma
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D53338
      ------------------------------------------------------------------------
      
      llvm-svn: 345921
      bbaf33ed
    • Tom Stellard's avatar
      Merging r341312: · 74c32a11
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r341312 | psmith | 2018-09-03 05:36:32 -0700 (Mon, 03 Sep 2018) | 13 lines
      
      [Aarch64] Fix linker emulation for Aarch64 big endian
      
      This patch fixes target linker emulation for aarch64 big endian.
      aarch64_be_linux is not recognized by gnu ld. The equivalent emulation
      mode supported by gnu ld is aarch64linuxb.
      
      Patch by: Bharathi Seshadri
      
      Reviewed by: Peter Smith
      
      Differential Revision: https://reviews.llvm.org/D42930
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345920
      74c32a11
  2. 31 Oct, 2018 2 commits
    • Tom Stellard's avatar
      Merging r345002: · 32d26969
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r345002 | dim | 2018-10-22 22:53:15 -0700 (Mon, 22 Oct 2018) | 41 lines
      
      Don't mess up RelIplt symbols during relocatable processing
      
      Summary:
      During upgrading of the FreeBSD source tree with lld 7.0.0, I noticed
      that it started complaining about `crt1.o` having an "index past the
      end of the symbol table".
      
      Such a symbol table looks approximately like this, viewed with `readelf
      -s` (note the `Ndx` field being messed up):
      
      ```
      Symbol table '.symtab' contains 4 entries:
         Num:    Value  Size Type    Bind   Vis      Ndx Name
           0: 00000000     0 NOTYPE  LOCAL  DEFAULT  UND
           1: 00000000     0 SECTION LOCAL  DEFAULT    1
           2: 00000000     0 NOTYPE  WEAK   HIDDEN  RSV[0xffff] __rel_iplt_end
           3: 00000000     0 NOTYPE  WEAK   HIDDEN  RSV[0xffff] __rel_iplt_start
      ```
      
      At first, it seemed that recent ifunc relocation work had caused this:
      <https://reviews.freebsd.org/rS339351>, but it turned out that it was
      due to incorrect processing of the object files by lld, when using `-r`
      (a.k.a. --relocatable).
      
      Bisecting showed that rL324421 ("Convert a use of Config->Static") was
      the commit where this new behavior began.  Simply reverting it solved
      the issue, and the `__rel_iplt` symbols had an index of `UND` again.
      
      Looking at Rafael's commit message, I think he simply missed the
      possibility of `--relocatable` being in effect, so I have added an
      additional check for it.
      
      I also added a simple regression test case.
      
      Reviewers: grimar, ruiu, emaste, espindola
      
      Reviewed By: ruiu
      
      Subscribers: arichardson, krytarowski, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D53515
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345739
      32d26969
    • Tom Stellard's avatar
      Merging r343669: · 8beaae23
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r343669 | grimar | 2018-10-03 02:59:08 -0700 (Wed, 03 Oct 2018) | 6 lines
      
      [ELF] - Fix BB after r343668
      
      This stops testing the value of .rela.plt section offset.
      
      Also makes _start global to eliminate
      'cannot find entry symbol _start' warning.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345732
      8beaae23
  3. 26 Oct, 2018 3 commits
    • Tom Stellard's avatar
      Merging r341778: · f0ed63b7
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r341778 | rsmith | 2018-09-09 23:35:32 -0700 (Sun, 09 Sep 2018) | 5 lines
      
      PR33222: Require the declared return type not the actual return type to
      match when checking for redeclaration of a function template.
      
      This properly handles differences in deduced return types, particularly
      when performing redeclaration checks for a friend function template.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345412
      f0ed63b7
    • Tom Stellard's avatar
      Merging r341775: · ea49dcd1
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r341775 | rsmith | 2018-09-09 22:32:13 -0700 (Sun, 09 Sep 2018) | 2 lines
      
      Part of PR33222: defer enforcing return type mismatch for dependent
      friend function declarations of class templates.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345409
      ea49dcd1
    • Tom Stellard's avatar
      Merging r344325: · 9e981fb6
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r344325 | evgeny777 | 2018-10-12 00:24:02 -0700 (Fri, 12 Oct 2018) | 4 lines
      
      [ThinLTO] Don't import GV which contains blockaddress
      
      Differential revision: https://reviews.llvm.org/D53139
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345401
      9e981fb6
  4. 25 Oct, 2018 2 commits
    • Tom Stellard's avatar
      Merging r340025: · 1696eef2
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r340025 | erichkeane | 2018-08-17 06:43:39 -0700 (Fri, 17 Aug 2018) | 8 lines
      
      Fix for bug 38508 - Don't do PCH processing when only generating preprocessor output
      
      This clang-cl driver change removes the PCH options when we are only generating
      preprocessed output. This is similar to the behavior of Y-.
      
      Patch by: mikerice
      Differential Revision: https://reviews.llvm.org/D50640
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345311
      1696eef2
    • Tom Stellard's avatar
      Merging r339424: · ccf7f511
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r339424 | hans | 2018-08-10 04:40:50 -0700 (Fri, 10 Aug 2018) | 1 line
      
      clang-cl: accept -fcrash-diagnostics-dir=
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345304
      ccf7f511
  5. 23 Oct, 2018 1 commit
    • Tom Stellard's avatar
      Merging r342897: · 6d5c2a5a
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r342897 | mgorny | 2018-09-24 09:10:25 -0700 (Mon, 24 Sep 2018) | 5 lines
      
      [python] [tests] Update test_code_completion
      
      Update expected completions to match output generated by clang-7.0.
      
      Differential Revision: https://reviews.llvm.org/D50171
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 345000
      6d5c2a5a
  6. 22 Oct, 2018 6 commits
    • Tom Stellard's avatar
      Merging r344368: · a8b61d16
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r344368 | ruiu | 2018-10-12 10:07:32 -0700 (Fri, 12 Oct 2018) | 10 lines
      
      [lld] Add more complete support for the INCLUDE command.
      
      Patch by Ian Tessier.
      
      This change adds INCLUDE support to the MEMORY and SECTION commands, and
      to output sections, as per:
      
      https://sourceware.org/binutils/docs/ld/File-Commands.html#File-Commands
      
      Differential Revision: https://reviews.llvm.org/D52951
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344926
      a8b61d16
    • Tom Stellard's avatar
      Merging r343668: · b8dce5ad
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r343668 | grimar | 2018-10-03 02:33:00 -0700 (Wed, 03 Oct 2018) | 20 lines
      
      [ELF] - Do not forget to include to .dymsym symbols that were converted to Defined.
      
      This is the fix for
      "Bug 39104 - LLD links incorrect ELF executable if version script contains "local: *;"
      (https://bugs.llvm.org/show_bug.cgi?id=39104).
      
      The issue happens when we have non-PIC program call to function in a shared library.
      (for example, the PR above has R_X86_64_PC32 relocation against __libc_start_main)
      
      LLD converts symbol to Defined in that case with the use of replaceWithDefined()
      
      The issue is that after above we create a broken relocation because do not
      include the symbol into .dynsym.
      
      That happens when the version script is used because we treat the symbol as
      STB_LOCAL if the following condition match:
      VersionId == VER_NDX_LOCAL && isDefined() and do not include it to
      .dynsym because of that. Patch fixes the issue.
      
      Differential revision: https://reviews.llvm.org/D52724
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344925
      b8dce5ad
    • Tom Stellard's avatar
      Merging r344824: · 8e5d7e51
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r344824 | ctopper | 2018-10-19 18:30:00 -0700 (Fri, 19 Oct 2018) | 14 lines
      
      [X86] When checking the bits in cpu_features for function multiversioning dispatcher in the resolver, make sure all the required bits are set. Not just one of them
      
      Summary:
      The multiversioning code repurposed the code from __builtin_cpu_supports for checking if a single feature is enabled. That code essentially performed (_cpu_features & (1 << C)) != 0. But with the multiversioning path, the mask is no longer guaranteed to be a power of 2. So we return true anytime any one of the bits in the mask is set not just all of the bits.
      
      The correct check is (_cpu_features & mask) == mask
      
      Reviewers: erichkeane, echristo
      
      Reviewed By: echristo
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D53460
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344923
      8e5d7e51
    • Tom Stellard's avatar
      Merging r344264: · f2ee78cc
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r344264 | mstorsjo | 2018-10-11 10:45:51 -0700 (Thu, 11 Oct 2018) | 8 lines
      
      [COFF] Set proper pointer size alignment for LocalImportChunk
      
      When these are accessed with load/store instructions on ARM64,
      it becomes strictly necessary to have them properly aligned.
      
      This fixes PR39228.
      
      Differential Revision: https://reviews.llvm.org/D53128
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344920
      f2ee78cc
    • Tom Stellard's avatar
      Merging r342461: · dfebe573
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r342461 | devnexen | 2018-09-18 03:31:10 -0700 (Tue, 18 Sep 2018) | 10 lines
      
      [Xray] llvm-xray fix possible segfault
      
      top argument when superior to the instrumentated code list capacity can lead to a segfault.
      
      Reviewers: dberris
      
      Reviewed By: dberris
      
      Differential Revision: https://reviews.llvm.org/D52224
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344918
      dfebe573
    • Tom Stellard's avatar
      Merging r342815: · 0447cd66
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r342815 | ericwf | 2018-09-22 12:22:36 -0700 (Sat, 22 Sep 2018) | 14 lines
      
      Fix incorrectly aligned exceptions in 32 bit builds.
      
      This patch fixes a bug where exceptions in 32 bit builds
      would be incorrectly aligned because malloc only provides 8 byte aligned
      memory where 16 byte alignment is needed.
      
      This patch makes libc++abi correctly use posix_memalign when it's
      available. This requires defining _LIBCPP_BUILDING_LIBRARY so that
      libc++ only defines _LIBCPP_HAS_NO_ALIGNED_ALLOCATION when libc doesn't
      support it and not when aligned new/delete are disable for other
      reasons.
      
      This bug somehow made it into the 7.0 release, making it a regression.
      Therefore this patch should be included in the next dot release.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344917
      0447cd66
  7. 19 Oct, 2018 4 commits
    • Tom Stellard's avatar
      Merging r343373: · cddf73ef
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r343373 | rksimon | 2018-09-29 06:25:22 -0700 (Sat, 29 Sep 2018) | 3 lines
      
      [X86][SSE] Fixed issue with v2i64 variable shifts on 32-bit targets
      
      The shift amount might have peeked through a extract_subvector, altering the number of vector elements in the 'Amt' variable - so we were incorrectly calculating the ratio when peeking through bitcasts, resulting in incorrectly detecting splats.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344810
      cddf73ef
    • Tom Stellard's avatar
      Merging r343428: · 80adf409
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r343428 | ctopper | 2018-09-30 16:43:30 -0700 (Sun, 30 Sep 2018) | 3 lines
      
      [X86] Change an llvm_unreachable to a report_fatal_error so the optimizer will stop making us reach the other report_fatal_error in this function.
      
      There's a conditional report_fatal_error just above this llvm_unreachable. The optimizer when seeing the unreachable removes the conditional and just makes any other error trigger the existing report_fatal_error.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344805
      80adf409
    • Tom Stellard's avatar
      Merging r343443: · 78605c68
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r343443 | ctopper | 2018-10-01 00:08:41 -0700 (Mon, 01 Oct 2018) | 9 lines
      
      [X86] Stop X86DomainReassignment from creating copies between GR8/GR16 physical registers and k-registers.
      
      We can only copy between a k-register and a GR32/GR64 register.
      
      This patch detects that the copy will be illegal and prevents the domain reassignment from happening for that closure.
      
      This probably isn't the best fix, and we should probably figure out how to handle this correctly.
      
      Fixes PR38803.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344804
      78605c68
    • Tom Stellard's avatar
      Merging r343347: · 8c4d80af
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r343347 | cmatthews | 2018-09-28 10:55:18 -0700 (Fri, 28 Sep 2018) | 4 lines
      
      make lit builtins a package
      
      cat.py is not being installed when lit is installed from source. So
      tests that use the internal shell fail when using cat.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 344792
      8c4d80af
  8. 13 Sep, 2018 1 commit
  9. 11 Sep, 2018 6 commits
  10. 10 Sep, 2018 6 commits
    • Hans Wennborg's avatar
      docs: drop doxygen link; it doesn't work · 78bdb222
      Hans Wennborg authored
      llvm-svn: 341829
      78bdb222
    • Hans Wennborg's avatar
      docs: drop another in-progress warning · f0e9472a
      Hans Wennborg authored
      llvm-svn: 341828
      f0e9472a
    • Hans Wennborg's avatar
      ReleaseNotes: tiny fix · 494f9e4c
      Hans Wennborg authored
      llvm-svn: 341805
      494f9e4c
    • Hans Wennborg's avatar
      ReleaseNotes: minor tweaks · 1db9b3ef
      Hans Wennborg authored
      llvm-svn: 341804
      1db9b3ef
    • Hans Wennborg's avatar
      Merging r341642: · 3472e2a5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r341642 | tnorthover | 2018-09-07 11:21:25 +0200 (Fri, 07 Sep 2018) | 8 lines
      
      ARM: fix Thumb2 CodeGen for ldrex with folded frame-index.
      
      Because t2LDREX (& t2STREX) were marked as AddrModeNone, but did allow a
      FrameIndex operand, rewriteT2FrameIndex asserted. This gives them a
      proper addressing-mode and tells the rewriter about it so that encodable
      offsets are exploited and others are rejected.
      
      Should fix PR38828.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 341783
      3472e2a5
    • Hans Wennborg's avatar
      Merging r341670 and r341672: · 3065b0a7
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r341670 | tstellar | 2018-09-07 17:42:01 +0200 (Fri, 07 Sep 2018) | 15 lines
      
      MachO: Fix out-of-bounds memory access in getString16
      
      Summary:
      This fixes the following tests when gcc is compiled with gcc8:
      
      lld :: mach-o/do-not-emit-unwind-fde-arm64.yaml
      lld :: mach-o/eh-frame-relocs-arm64.yaml
      
      llvm.org/PR38096
      
      Reviewers: lhames, kledzik, javed.absar
      
      Subscribers: kristof.beyls, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D51547
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r341672 | tstellar | 2018-09-07 17:51:52 +0200 (Fri, 07 Sep 2018) | 3 lines
      
      MachO: Change getString16() back to inline function
      
      This was accidentally changed in r341670.
      ------------------------------------------------------------------------
      
      llvm-svn: 341780
      3065b0a7
  11. 07 Sep, 2018 6 commits