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

  1. 26 Jul, 2017 12 commits
    • Hans Wennborg's avatar
      Merging r308978: · 71ae69fb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308978 | fedor.sergeev | 2017-07-25 08:28:28 -0700 (Tue, 25 Jul 2017) | 16 lines
      
      [Sparc] invalid adjustments in TLS_LE/TLS_LDO relocations removed
      
      Summary:
      Some SPARC TLS relocations were applying nontrivial adjustments
      to zero value, leading to unexpected non-zero values in ELF and then
      Solaris linker failures.
      
      Getting rid of these adjustments.
      
      Fixes PR33825.
      
      Reviewers: rafael, asb, jyknight
      
      Subscribers: joerg, jyknight, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D35567
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309187
      71ae69fb
    • Hans Wennborg's avatar
      Merging r308808, r308813 and r308906: · f48bf900
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308808 | arsenm | 2017-07-21 16:56:13 -0700 (Fri, 21 Jul 2017) | 6 lines
      
      RA: Remove assert on empty live intervals
      
      This is possible if there is an undef use when
      splitting the vreg during spilling.
      
      Fixes bug 33620.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r308813 | arsenm | 2017-07-21 17:24:01 -0700 (Fri, 21 Jul 2017) | 6 lines
      
      RA: Remove another assert on empty intervals
      
      This case is similar to the one fixed in r308808,
      except when rematerializing.
      
      Fixes bug 33884.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r308906 | arsenm | 2017-07-24 11:07:55 -0700 (Mon, 24 Jul 2017) | 6 lines
      
      RA: Replace asserts related to empty live intervals
      
      These don't exactly assert the same thing anymore, and
      allow empty live intervals with non-empty uses.
      
      Removed in r308808 and r308813.
      ------------------------------------------------------------------------
      
      llvm-svn: 309171
      f48bf900
    • Matt Arsenault's avatar
      Merging rr308903: · c4c93b74
      Matt Arsenault authored
      ```---------------------------------------------------------------------
      r308903 | arsenm | 2017-07-24 11:06:15 -0700 (Mon, 24 Jul 2017) | 5 lines
      
      AMDGPU: Fix allocating pseudo-registers
      
      There's no need for these to be part of a class since
      they are immediately replaced. New unreachable hit in
      existing tests.'
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309157
      c4c93b74
    • Hans Wennborg's avatar
      Merging r309147: · 91174ebd
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r309147 | jroelofs | 2017-07-26 11:13:57 -0700 (Wed, 26 Jul 2017) | 4 lines
      
      Partial fix for PR33858
      
      https://reviews.llvm.org/D35848
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309150
      91174ebd
    • Hans Wennborg's avatar
      Merging r308871: · c68cac09
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308871 | chill | 2017-07-24 02:19:32 -0700 (Mon, 24 Jul 2017) | 17 lines
      
      [libunwind] Handle .ARM.exidx tables without sentinel last entry
      
      UnwindCursor<A, R>::getInfoFromEHABISection assumes the last
      entry in the index table never corresponds to a real function.
      Indeed, GNU ld always inserts an EXIDX_CANTUNWIND entry,
      containing the end of the .text section. However, the EHABI specification
      (http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038b/IHI0038B_ehabi.pdf)
      does not seem to contain text that requires the presence of a sentinel entry.
      In that sense the libunwind implementation isn't compliant with the specification.
      
      This patch makes getInfoFromEHABISection examine the last entry in the index
      table if upper_bound returns the end iterator.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=31091
      
      Differential revision: https://reviews.llvm.org/D35265
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309143
      c68cac09
    • Hans Wennborg's avatar
      Merging r309058: · 819eb09f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r309058 | majnemer | 2017-07-25 16:33:58 -0700 (Tue, 25 Jul 2017) | 9 lines
      
      [CodeGen] Correctly model std::byte's aliasing properties
      
      std::byte, when defined as an enum, needs to be given special treatment
      with regards to its aliasing properties. An array of std::byte is
      allowed to be used as storage for other types.
      
      This fixes PR33916.
      
      Differential Revision: https://reviews.llvm.org/D35824
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309135
      819eb09f
    • Hans Wennborg's avatar
      Merging r308950: · dfe8875c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308950 | mstorsjo | 2017-07-24 22:20:01 -0700 (Mon, 24 Jul 2017) | 22 lines
      
      [AArch64] Reserve a 16 byte aligned amount of fixed stack for win64 varargs
      
      Create a dummy 8 byte fixed object for the unused slot below the first
      stored vararg.
      
      Alternative ideas tested but skipped: One could try to align the whole
      fixed object to 16, but I haven't found how to add an offset to the stack
      frame used in LowerWin64_VASTART.
      
      If only the size of the fixed stack object size is padded but not the offset, via
      MFI.CreateFixedObject(alignTo(GPRSaveSize, 16), -(int)GPRSaveSize, false),
      PrologEpilogInserter crashes due to "Attempted to reset backwards range!".
      
      This fixes misconceptions about where registers are spilled, since
      AArch64FrameLowering.cpp assumes the offset from fixed objects is
      aligned to 16 bytes (and the Win64 case there already manually aligns
      the offset to 16 bytes).
      
      This fixes cases where local stack allocations could overwrite callee
      saved registers on the stack.
      
      Differential Revision: https://reviews.llvm.org/D35720
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309132
      dfe8875c
    • Hans Wennborg's avatar
      Merging r308891: · f94d921e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308891 | d0k | 2017-07-24 09:18:09 -0700 (Mon, 24 Jul 2017) | 16 lines
      
      [CodeGenPrepare] Cut off FindAllMemoryUses if there are too many uses.
      
      This avoids excessive compile time. The case I'm looking at is
      Function.cpp from an old version of LLVM that still had the giant memcmp
      string matcher in it. Before r308322 this compiled in about 2 minutes,
      after it, clang takes infinite* time to compile it. With this patch
      we're at 5 min, which is still bad but this is a pathological case.
      
      The cut off at 20 uses was chosen by looking at other cut-offs in LLVM
      for user scanning. It's probably too high, but does the job and is very
      unlikely to regress anything.
      
      Fixes PR33900.
      
      * I'm impatient and aborted after 15 minutes, on the bug report it was
        killed after 2h.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309131
      f94d921e
    • Hans Wennborg's avatar
      Merging r308824: · 5f3aa46d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308824 | yamaguchi | 2017-07-22 05:35:15 -0700 (Sat, 22 Jul 2017) | 5 lines
      
      [Bash-autocompletion] Fixed typo and add '-' after -Wno
      
      Summary: -Wno-<warning> was autocompleted as -Wno<warning>, so fixed this typo.
      
      Differential Revision: https://reviews.llvm.org/D35762
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309130
      5f3aa46d
    • Hans Wennborg's avatar
      Merging r308998 and r309002: · 6a7307ea
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308998 | nico | 2017-07-25 11:08:03 -0700 (Tue, 25 Jul 2017) | 7 lines
      
      lld: only write .manifest files if /manifest is passed, PR33925
      
      Also emit an error if /manifestinput: is used without /manifest:embed.
      Increases compatibility with link.exe
      
      https://reviews.llvm.org/D35842
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r309002 | nico | 2017-07-25 11:39:38 -0700 (Tue, 25 Jul 2017) | 6 lines
      
      Attempt to fix lld tests on Windows after 308998.
      
      The test used /manifestinput: without /manifest:embed, which isn't actually
      supported.  Just remove this part of the test for now; if it's important to
      check this the llvm-readobj part should be extended to check this.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 309128
      6a7307ea
    • Hans Wennborg's avatar
      Merging r308986 and r308963: · 01884d24
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308963 | rksimon | 2017-07-25 03:33:36 -0700 (Tue, 25 Jul 2017) | 1 line
      
      [X86] Add 24-byte memcmp tests (PR33914)
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r308986 | rksimon | 2017-07-25 10:04:37 -0700 (Tue, 25 Jul 2017) | 9 lines
      
      [X86][CGP] Reduce memcmp() expansion to 2 load pairs (PR33914)
      
      D35067/rL308322 attempted to support up to 4 load pairs for memcmp inlining which resulted in regressions for some optimized libc memcmp implementations (PR33914).
      
      Until we can match these more optimal cases, this patch reduces the memcmp expansion to a maximum of 2 load pairs (which matches what we do for -Os).
      
      This patch should be considered for the 5.0.0 release branch as well
      
      Differential Revision: https://reviews.llvm.org/D35830
      ------------------------------------------------------------------------
      
      llvm-svn: 309127
      01884d24
    • Hans Wennborg's avatar
      Merging r309115: · 5e62a55b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r309115 | hahnfeld | 2017-07-26 06:55:00 -0700 (Wed, 26 Jul 2017) | 15 lines
      
      [CMake] Disable building libomptarget and add CMake switch
      
      Introduce OPENMP_ENABLE_LIBOMPTARGET which defaults to OFF at the moment.
      
      libomptarget is not yet ready for prime time:
       - Offloading to NVIDIA GPUs is not completed yet (compiler, device RTL)
       - The generic ELF plugin for offloading to the host (meant for testing)
         uses a single instance of the OpenMP runtime (libomp). That is why
         omp_is_initial_device() returns 1 which makes the tests fail.
      Because of these reasons, we want to disable building (and testing!)
      for release 5.0.
      
      See https://bugs.llvm.org/show_bug.cgi?id=33859
      
      Differential Revision: https://reviews.llvm.org/D35719
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309126
      5e62a55b
  2. 25 Jul, 2017 2 commits
    • Tom Stellard's avatar
      Merging r308912: · f53e3212
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r308912 | tstellar | 2017-07-24 15:28:30 -0400 (Mon, 24 Jul 2017) | 14 lines
      
      test-release.sh: Fix phase2 and phase3 binary comparision
      
      Summary:
      scudo_utils.cpp.o from compiler-rt has one of the host compiler's builtin
      include paths stored in the .debug_line section.  So we need to do
      sed 's,Phase1,Phase2,g` on the Phase2 object file so it matches Phase3.
      
      Reviewers: hans
      
      Reviewed By: hans
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D34989
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 309003
      f53e3212
    • Hans Wennborg's avatar
      Merging r308897: · 2ca86003
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308897 | nico | 2017-07-24 09:54:11 -0700 (Mon, 24 Jul 2017) | 9 lines
      
      Work around an MSVC2017 update 3 codegen bug.
      
      C2017 update 3 produces a clang that crashes when compiling clang. Disabling
      optimizations for StmtProfiler::VisitCXXOperatorCallExpr() makes the crash go
      away.
      
      Patch from Bruce Dawson <brucedawson@chromium.org>!
      https://reviews.llvm.org/D35757
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308988
      2ca86003
  3. 24 Jul, 2017 2 commits
    • Rui Ueyama's avatar
      Merging r308935: · c5bf9e22
      Rui Ueyama authored
      ```---------------------------------------------------------------------
      r308935 | tstellar | 2017-07-24 16:13:31 -0700 (Mon, 24 Jul 2017) | 13 lines
      
      Fix ObjCPass on big-endian host
      
      Summary:
      This fixes test/mach-o/objc-image-info-pass-output.yaml on
      big-endian hosts.
      
      Reviewers: lhames, kledzik, ruiu
      
      Reviewed By: ruiu
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D35052
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308937
      c5bf9e22
    • Rui Ueyama's avatar
      Fix typos and grammatical errors. · dfc54902
      Rui Ueyama authored
      Pointed out by Nico Weber.
      
      llvm-svn: 308934
      dfc54902
  4. 22 Jul, 2017 1 commit
  5. 21 Jul, 2017 8 commits
    • Rui Ueyama's avatar
      Merging r308492: · 674d6c52
      Rui Ueyama authored
      ```---------------------------------------------------------------------
      r308492 | rafael | 2017-07-19 09:45:05 -0700 (Wed, 19 Jul 2017) | 20 lines
      
      Bring back r307364.
      
      In addition this includes a change to prefer symbols with a default
      version @@ over unversioned symbols.
      
      Original commit message:
      
      [ELF] - Handle symbols with default version early.
      
      This fixes last testcase provided in PR28414.
      In short issue is next: when we had X@@Version symbol in object A,
      we did not resolve it to X early. Then when in another object B
      we had reference to undefined X, symbol X from archive was fetched.
      Since both archive and object A contains another symbol Z, duplicate
      symbol definition was triggered as a result.
      
      Correct behavior is to use X@@Version from object A instead and do not fetch
      any symbols from archive.
      
      Differential revision: https://reviews.llvm.org/D35059
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308788
      674d6c52
    • Rui Ueyama's avatar
      Merging r308728: · d9bbfe9d
      Rui Ueyama authored
      ```---------------------------------------------------------------------
      r308728 | ikudrin | 2017-07-21 04:26:08 -0700 (Fri, 21 Jul 2017) | 3 lines
      
      [ELF] Avoid data race in ObjectFile<ELFT>::getDILineInfo().
      
      Differential Revision: https://reviews.llvm.org/D35537
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308786
      d9bbfe9d
    • Rui Ueyama's avatar
      Add more contents to lld 5.0 release notes. · 0f8b85b5
      Rui Ueyama authored
      llvm-svn: 308778
      0f8b85b5
    • Hans Wennborg's avatar
      ReleaseNotes: fix sphinx error · aaa5fa6a
      Hans Wennborg authored
      llvm-svn: 308730
      aaa5fa6a
    • Hans Wennborg's avatar
      Regenerate ClangCommandLineReference.rst · 177e29da
      Hans Wennborg authored
      I ran:
      
      $ 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: 308720
      177e29da
    • Hans Wennborg's avatar
      Merging r308503: · 1852dd26
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308503 | davide | 2017-07-19 11:09:46 -0700 (Wed, 19 Jul 2017) | 3 lines
      
      [X86] Don't try to scale down if that exceeds the bitwidth.
      
      Fixes the crash reported in PR33844.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308718
      1852dd26
    • Hans Wennborg's avatar
      Merging r308512: · 22c994fb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308512 | pfaffe | 2017-07-19 12:20:58 -0700 (Wed, 19 Jul 2017) | 4 lines
      
      [CMake] Fix r307650: Readd missing dependency.
      
      The commit erroneously removed the dependency of the Polly tests on
      things like opt and FileCheck. Add that dependency back.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308717
      22c994fb
    • Rui Ueyama's avatar
      Add contents to lld 5.0's release notes. · cc566f1e
      Rui Ueyama authored
      llvm-svn: 308700
      cc566f1e
  6. 20 Jul, 2017 2 commits
  7. 19 Jul, 2017 13 commits
    • Hans Wennborg's avatar
      Merging r308484: · aa4b5574
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308484 | hans | 2017-07-19 08:06:31 -0700 (Wed, 19 Jul 2017) | 1 line
      
      Defeat another -Wunused-but-set-variable warning
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308488
      aa4b5574
    • Hans Wennborg's avatar
      Merging r308483: · 4936ca49
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308483 | hans | 2017-07-19 08:03:38 -0700 (Wed, 19 Jul 2017) | 12 lines
      
      Defeat a GCC -Wunused-result warning
      
      It was warning like:
      
      ../llvm-project/llvm/lib/Support/ErrorHandling.cpp:172:51: warning:
      ignoring return value of ‘ssize_t write(int, const void*, size_t)’,
               declared with attribute warn_unused_result [-Wunused-result]
                  (void)::write(2, OOMMessage, strlen(OOMMessage));
      
      Work around the warning by storing the return value in a variable and
      casting that to void instead. We already did this for the other write()
      call in this file.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308487
      4936ca49
    • Matt Arsenault's avatar
      Add some 5.0 release notes · cb6592cf
      Matt Arsenault authored
      Note speculatable and alloca address space change.
      
      llvm-svn: 308482
      cb6592cf
    • Hans Wennborg's avatar
      Generate docs/AttributeReference.rst · 03601601
      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: 308481
      03601601
    • Hans Wennborg's avatar
      Drop 'svn' suffix from version number. · 9bfb21b7
      Hans Wennborg authored
      llvm-svn: 308472
      9bfb21b7
    • Hans Wennborg's avatar
      Drop 'svn' suffix from version number. · fad0760e
      Hans Wennborg authored
      llvm-svn: 308471
      fad0760e
    • Hans Wennborg's avatar
      Drop 'svn' suffix from version number. · 58b68590
      Hans Wennborg authored
      llvm-svn: 308470
      58b68590
    • Hans Wennborg's avatar
      Drop 'svn' suffix from version number. · 2ad6823e
      Hans Wennborg authored
      llvm-svn: 308469
      2ad6823e
    • Hans Wennborg's avatar
      Merging r308455: · da85f00d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r308455 | hans | 2017-07-19 05:31:01 -0700 (Wed, 19 Jul 2017) | 16 lines
      
      Revert r308441 "Recommit r308327: Add a warning for missing '#pragma pack (pop)' and suspicious uses of '#pragma pack' in included files"
      
      This seems to have broken the sanitizer-x86_64-linux buildbot. Reverting until
      it's fixed, especially since this landed just before the 5.0 branch.
      
      > This commit adds a new -Wpragma-pack warning. It warns in the following cases:
      >
      > - When a translation unit is missing terminating #pragma pack (pop) directives.
      > - When entering an included file if the current alignment value as determined
      >   by '#pragma pack' directives is different from the default alignment value.
      > - When leaving an included file that changed the state of the current alignment
      >   value.
      >
      > rdar://10184173
      >
      > Differential Revision: https://reviews.llvm.org/D35484
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 308457
      da85f00d
    • Hans Wennborg's avatar
      Creating release_50 branch off revision 308441 · 60062468
      Hans Wennborg authored
      llvm-svn: 308454
      llvm-svn: 308453
      llvm-svn: 308452
      llvm-svn: 308451
      llvm-svn: 308450
      llvm-svn: 308449
      llvm-svn: 308448
      llvm-svn: 308447
      llvm-svn: 308446
      llvm-svn: 308444
      llvm-svn: 308443
      60062468
    • Alex Lorenz's avatar
      Recommit r308327: Add a warning for missing '#pragma pack (pop)' · 287f684c
      Alex Lorenz authored
      and suspicious uses of '#pragma pack' in included files
      
      This commit adds a new -Wpragma-pack warning. It warns in the following cases:
      
      - When a translation unit is missing terminating #pragma pack (pop) directives.
      - When entering an included file if the current alignment value as determined
        by '#pragma pack' directives is different from the default alignment value.
      - When leaving an included file that changed the state of the current alignment
        value.
      
      rdar://10184173
      
      Differential Revision: https://reviews.llvm.org/D35484
      
      llvm-svn: 308441
      287f684c
    • Tobias Grosser's avatar
      [ScopInfo] Use AnyPHINode in tryGetValueStored() · 37eadd55
      Tobias Grosser authored
      This was an oversight in the previous commit. Michael already suggested this
      beforehand.
      
      llvm-svn: 308440
      37eadd55
    • NAKAMURA Takumi's avatar
      Recommit r274270, [CMake] Module builds depend on target intrinsics_gen to be built first. · 87d7c68d
      NAKAMURA Takumi authored
      The builder clang-x86_64-linux-selfhost-modules-2 complains. Investigating.
      
      llvm-svn: 308439
      87d7c68d