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

  1. 25 Aug, 2017 6 commits
    • Hans Wennborg's avatar
      Merging r311792: · 16b04ba2
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311792 | djasper | 2017-08-25 12:14:53 -0700 (Fri, 25 Aug 2017) | 9 lines
      
      [Format] Invert nestingAndIndentLevel pair in WhitespaceManager used for
      alignments
      
      Indent should be compared before nesting level to determine if a token
      is on the same scope as the one we align with. Because it was inverted,
      clang-format sometimes tried to align tokens with tokens from outer
      scopes, causing the assert(Shift >= 0) to fire.
      
      This fixes bug #33507. Patch by Beren Minor, thank you!
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311800
      16b04ba2
    • Hans Wennborg's avatar
      Merging r311695: · 6493242f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311695 | rsmith | 2017-08-24 13:10:33 -0700 (Thu, 24 Aug 2017) | 9 lines
      
      [ubsan] PR34266: When sanitizing the 'this' value for a member function that happens to be a lambda call operator, use the lambda's 'this' pointer, not the captured enclosing 'this' pointer (if any).
      
      Do not sanitize the 'this' pointer of a member call operator for a lambda with
      no capture-default, since that call operator can legitimately be called with a
      null this pointer from the static invoker function. Any actual call with a null
      this pointer should still be caught in the caller (if it is being sanitized).
      
      This reinstates r311589 (reverted in r311680) with the above fix.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311799
      6493242f
    • Simon Dardis's avatar
      [mips][Release Notes] Release notes for 5.0 · f84d026a
      Simon Dardis authored
      Reviewers: atanasyan, nitesh.jain
      
      Differential Revision: https://reviews.llvm.org/D37077
      
      llvm-svn: 311771
      f84d026a
    • Hans Wennborg's avatar
      ReleaseNotes: Note about opt-viewer.py, by Adam Nemet · 419b8efe
      Hans Wennborg authored
      llvm-svn: 311738
      419b8efe
    • Hans Wennborg's avatar
      Merging r311674: · 1c2f283d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311674 | hans | 2017-08-24 10:00:36 -0700 (Thu, 24 Aug 2017) | 3 lines
      
      Mark allocator_oom_test.cc unsupported on arm & aarch64 (PR33972)
      
      The buildbots don't seem to like it.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311736
      1c2f283d
    • Eric Fiselier's avatar
      Update ABI lists for 5.0 · 3d589e8d
      Eric Fiselier authored
      llvm-svn: 311735
      3d589e8d
  2. 24 Aug, 2017 15 commits
  3. 23 Aug, 2017 13 commits
    • Hans Wennborg's avatar
      Merging r311555: · ab640dfb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311555 | oleg | 2017-08-23 07:26:31 -0700 (Wed, 23 Aug 2017) | 14 lines
      
      [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets
      
      Summary:
      This is a patch for PR34167.
      
      On HF targets functions like `__{eq,lt,le,ge,gt}df2` and `__{eq,lt,le,ge,gt}sf2` expect their arguments to be passed in d/s registers, while some of the AEABI builtins pass them in r registers.
      
      Reviewers: compnerd, peter.smith, asl
      
      Reviewed By: peter.smith, asl
      
      Subscribers: peter.smith, aemerson, dberris, javed.absar, llvm-commits, asl, kristof.beyls
      
      Differential Revision: https://reviews.llvm.org/D36675
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311606
      ab640dfb
    • Hans Wennborg's avatar
      Merging r311554: · 5f78a79e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311554 | mcrosier | 2017-08-23 07:10:06 -0700 (Wed, 23 Aug 2017) | 10 lines
      
      [Reassociate] Don't canonicalize x + (-Constant * y) -> x - (Constant * y)..
      
      ..if the resulting subtract will be broken up later.  This can cause us to get
      into an infinite loop.
      
      x + (-5.0 * y)      -> x - (5.0 * y)       ; Canonicalize neg const
      x - (5.0 * y)       -> x + (0 - (5.0 * y)) ; Break up subtract
      x + (0 - (5.0 * y)) -> x + (-5.0 * y)      ; Replace 0-X with X*-1.
      
      PR34078
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311603
      5f78a79e
    • Hans Wennborg's avatar
      Merging r311565: · a58f36d2
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311565 | hans | 2017-08-23 08:43:28 -0700 (Wed, 23 Aug 2017) | 8 lines
      
      LowerAtomic: Don't skip optnone functions; atomic still need lowering (PR34020)
      
      The lowering isn't really an optimization, so optnone shouldn't make a
      difference. ARM relies on the pass running when using "-mthread-model
      single", because in that mode, it doesn't run AtomicExpand. See bug for
      more details.
      
      Differential Revision: https://reviews.llvm.org/D37040
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311602
      a58f36d2
    • Hans Wennborg's avatar
      Revert r307529 "This patch completely replaces the scheduling information for... · 8f166cc6
      Hans Wennborg authored
      Revert r307529 "This patch completely replaces the scheduling information for the SandyBridge architecture"
      
      This caused PR34080, which seems to have been fixed by r310792, but that change
      introduced severe performance regressions.
      
      Reverting to unblock the 5.0.0 release while these issues are worked out on trunk.
      
      Also reverting a few tests that were added later and depended on the new scheduling:
      
          LLVM :: CodeGen/X86/f16c-schedule.ll
          LLVM :: CodeGen/X86/lea32-schedule.ll
          LLVM :: CodeGen/X86/lea64-schedule.ll
          LLVM :: CodeGen/X86/popcnt-schedule.ll
      
      llvm-svn: 311600
      8f166cc6
    • Hans Wennborg's avatar
      Revert r309328 and r309290 (which merged r309327 and r309226). · 1bbc6d00
      Hans Wennborg authored
      The header change caused problems; see PR34182, and PR33858 from #9 onwards, as
      well as the discussion on the r309226 cfe-commits thread.
      
      These changes don't seem to be addressing any regression from 4.0.0, so rather
      than scrambling to fix this on the branch, let's revert to safety.
      
      llvm-svn: 311597
      1bbc6d00
    • Hans Wennborg's avatar
      Merging r311572: · d0c62f90
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311572 | ctopper | 2017-08-23 09:41:02 -0700 (Wed, 23 Aug 2017) | 9 lines
      
      [AVX512] Don't create SHRUNKBLEND SDNodes for 512-bit vectors
      
      There are no 512-bit blend instructions so we shouldn't create SHRUNKBLEND for them.
      
      On a side note, it looks like there may be a missed opportunity for constant folding TESTM when LHS and RHS are equal.
      
      This fixes PR34139.
      
      Differential Revision: https://reviews.llvm.org/D36992
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311593
      d0c62f90
    • Hans Wennborg's avatar
      Merging r311330: · 301eb2b8
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311330 | ibiryukov | 2017-08-21 05:03:08 -0700 (Mon, 21 Aug 2017) | 16 lines
      
      Fixed a crash on replaying Preamble's PP conditional stack.
      
      Summary:
      The crash occurs when the first token after a preamble is a macro
      expansion.
      Fixed by moving replayPreambleConditionalStack from Parser into
      Preprocessor. It is now called right after the predefines file is
      processed.
      
      Reviewers: erikjv, bkramer, klimek, yvvan
      
      Reviewed By: bkramer
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D36872
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311591
      301eb2b8
    • Hans Wennborg's avatar
      Merging r311579: · 5b257ba2
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311579 | compnerd | 2017-08-23 10:23:12 -0700 (Wed, 23 Aug 2017) | 6 lines
      
      Process: fix FXSAVE on x86
      
      The FXSAVE member `ftw` (FPU Tag Word) was given the wrong size (8-bit)
      instead of the correct width (16-bit) as per the x87 Programmer's
      Manual.  Adjust this to ensure that we print out the complete value for
      the register.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311585
      5b257ba2
    • Hans Wennborg's avatar
      Merging r311496: · 76c1c287
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311496 | hans | 2017-08-22 14:54:37 -0700 (Tue, 22 Aug 2017) | 1 line
      
      [profile] Fix warning about C++ style comment in C file
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311584
      76c1c287
    • Hans Wennborg's avatar
      Merging r311495: · 9c1a363f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311495 | hans | 2017-08-22 14:54:37 -0700 (Tue, 22 Aug 2017) | 6 lines
      
      [esan] Use stack_t instead of struct sigaltstack (PR34011)
      
      The struct tag is going away in soon-to-be-released glibc 2.26 and the
      stack_t typedef seems to have been there forever.
      
      Patch by Bernhard Rosenkraenzer!
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311583
      9c1a363f
    • Renato Golin's avatar
      [ARM] more release notes updates for 5.0 · c3f2f85c
      Renato Golin authored
      llvm-svn: 311578
      c3f2f85c
    • Hans Wennborg's avatar
      Merging r311532: · d3baa293
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311532 | krasimir | 2017-08-23 00:18:36 -0700 (Wed, 23 Aug 2017) | 24 lines
      
      [clang-format] Align trailing comments if ColumnLimit is 0
      
      Summary:
      ColumnLimit = 0 means no limit, so comment should always be aligned if requested. This was broken with
      
        https://llvm.org/svn/llvm-project/cfe/trunk@304687
      
      introduced via
      
        https://reviews.llvm.org/D33830
      
      and is included in 5.0.0-rc2. This commit fixes it and adds a unittest for this property.
      
      Should go into clang-5.0 IMHO.
      
      Contributed by @pboettch!
      
      Reviewers: djasper, krasimir
      
      Reviewed By: djasper, krasimir
      
      Subscribers: hans, klimek
      
      Differential Revision: https://reviews.llvm.org/D36967
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311573
      d3baa293
    • Florian Hahn's avatar
      [RelNotes,AArch64] Mention improved instruction fusion and fun alignment. · a2c40bdb
      Florian Hahn authored
      Reviewers: t.p.northover, hans, kristof.beyls
      
      Reviewed By: hans
      
      Subscribers: aemerson, rengolin, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D36965
      
      llvm-svn: 311539
      a2c40bdb
  4. 22 Aug, 2017 6 commits
    • Hans Wennborg's avatar
      Merging r311397: · 5e5333b7
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311397 | ahatanak | 2017-08-21 15:46:46 -0700 (Mon, 21 Aug 2017) | 8 lines
      
      [Driver][Darwin] Do not pass -munwind-table if -fno-excpetions is
      supplied.
      
      With this change, -fno-exceptions disables unwind tables unless
      -funwind-tables is supplied too or the target is x86-64 (x86-64 requires
      emitting unwind tables).
      
      rdar://problem/33934446
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311505
      5e5333b7
    • Hans Wennborg's avatar
      Merging r311391: · fc37a76c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311391 | stl_msft | 2017-08-21 15:19:33 -0700 (Mon, 21 Aug 2017) | 28 lines
      
      [Driver] Recognize DevDiv internal builds of MSVC, with a different directory structure.
      
      This is a reasonably non-intrusive change, which I've verified
      works for both x86 and x64 DevDiv-internal builds.
      
      The idea is to change `bool IsVS2017OrNewer` into a 3-state
      `ToolsetLayout VSLayout`. Either a build is DevDiv-internal,
      released VS 2017 or newer, or released VS 2015 or older. When looking at
      the directory structure, if instead of `"VC"` we see `"x86ret"`, `"x86chk"`,
      `"amd64ret"`, or `"amd64chk"`, we recognize this as a DevDiv-internal build.
      
      After we get past the directory structure validation, we use this knowledge
      to regenerate paths appropriately. `llvmArchToDevDivInternalArch()` knows how
      we use `"i386"` subdirectories, and `MSVCToolChain::getSubDirectoryPath()`
      uses that. It also knows that DevDiv-internal builds have an `"inc"`
      subdirectory instead of `"include"`.
      
      This may still not be the "right" fix in any sense, but I believe that it's
      non-intrusive in the sense that if the special directory names aren't found,
      no codepaths are affected. (`ToolsetLayout::OlderVS` and
      `ToolsetLayout::VS2017OrNewer` correspond to `IsVS2017OrNewer` being `false`
      or `true`, respectively.) I searched for all references to `IsVS2017OrNewer`,
      which are places where Clang cares about VS's directory structure, and the
      only one that isn't being patched is some logic to deal with
      cross-compilation. I'm fine with that not working for DevDiv-internal builds
      for the moment (we typically test the native compilers), so I added a comment.
      
      Fixes D36860.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311500
      fc37a76c
    • Kit Barton's avatar
      [Docs] Update release notes for PPC · 6db70364
      Kit Barton authored
      llvm-svn: 311486
      6db70364
    • Anastasia Stulova's avatar
      [Docs] Added release notes for OpenCL. · d43534a1
      Anastasia Stulova authored
      Differential Revision: https://reviews.llvm.org/D36951
      
      llvm-svn: 311485
      d43534a1
    • Hans Wennborg's avatar
      Merging r311387: · 002ca6e8
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311387 | steven_wu | 2017-08-21 14:49:13 -0700 (Mon, 21 Aug 2017) | 16 lines
      
      [IR] AutoUpgrade ModuleFlagBehavior for PIC and PIE level
      
      Summary:
      From r303590, ModuleFlagBehavior for PIC and PIE level is changed from
      Error to Max. This will cause bitcode compatibility issue when linking
      against a bitcode static archive built with old compiler.
      Add an auto-ugprade path to upgrade the the ModuleFlagBehavior in the
      old bitcode to match the new one so IRLinker can link them.
      
      Reviewers: tejohnson, mehdi_amini, dexonsmith
      
      Reviewed By: dexonsmith
      
      Subscribers: hans, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D36556
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311481
      002ca6e8
    • Hans Wennborg's avatar
      Merging r311263: · 0955a082
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r311263 | ctopper | 2017-08-19 15:02:02 -0700 (Sat, 19 Aug 2017) | 1 line
      
      [AVX512] Use alignedstore256 in a pattern that's emitting a 256-bit movaps from an extract subvector operation.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 311478
      0955a082