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

  1. 02 Mar, 2016 6 commits
  2. 01 Mar, 2016 1 commit
  3. 26 Feb, 2016 1 commit
  4. 23 Feb, 2016 1 commit
    • Hans Wennborg's avatar
      Merging r261669: · 0f8c38be
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261669 | aaronballman | 2016-02-23 10:55:15 -0800 (Tue, 23 Feb 2016) | 1 line
      
      Amends r252104 to evaluate the controlling expression in an unevaluated context. This eliminates false-positive diagnostics about null pointer dereferences (etc) in the controlling expression.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261684
      0f8c38be
  5. 22 Feb, 2016 6 commits
    • Quentin Colombet's avatar
      [AArch64] Fix bug in prolog clobbering live reg when shrink wrapping. · 797d25cd
      Quentin Colombet authored
      This adapts r261349 to the release branch.
      
      llvm-svn: 261586
      797d25cd
    • Hans Wennborg's avatar
      Merging r261441, r261447, and r261546: · b5585dd3
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261441 | nemanjai | 2016-02-20 10:16:25 -0800 (Sat, 20 Feb 2016) | 12 lines
      
      Fix for PR 26500
      
      This patch corresponds to review:
      http://reviews.llvm.org/D17294
      
      It ensures that whatever block we are emitting the prologue/epilogue into, we
      have the necessary scratch registers. It takes away the hard-coded register
      numbers for use as scratch registers as registers that are guaranteed to be
      available in the function prologue/epilogue are not guaranteed to be available
      within the function body. Since we shrink-wrap, the prologue/epilogue may end
      up in the function body.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r261447 | nemanjai | 2016-02-20 12:45:37 -0800 (Sat, 20 Feb 2016) | 6 lines
      
      Fix the build bot break caused by rL261441.
      
      The patch has a necessary call to a function inside an assert. Which is fine
      when you have asserts turned on. Not so much when they're off. Sorry about
      the regression.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r261546 | nemanjai | 2016-02-22 10:04:00 -0800 (Mon, 22 Feb 2016) | 6 lines
      
      Fix for PR26690 take 2
      
      This is what was meant to be in the initial commit to fix this bug. The
      parens were missing. This commit also adds a test case for the bug and
      has undergone full testing on PPC and X86.
      ------------------------------------------------------------------------
      
      llvm-svn: 261572
      b5585dd3
    • Hans Wennborg's avatar
      Merging r261422: · 5bf5432b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261422 | rdivacky | 2016-02-20 00:31:24 -0800 (Sat, 20 Feb 2016) | 10 lines
      
      Fix handling of vaargs on PPC32 when going from regsave to overflow.
      
      It can happen that when we only have 1 more register left in the regsave
      area we need to store a value bigger than 1 register and therefore we
      go to the overflow area. In this case we have to leave the last slot
      in the regsave area unused and keep using overflow area. Do this
      by storing a limit value to the used register counter in the overflow block.
      
      Issue diagnosed by and solution tested by Mark Millard!
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261553
      5bf5432b
    • Hans Wennborg's avatar
      Merging r261387: · 459f68e1
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261387 | davide | 2016-02-19 16:44:47 -0800 (Fri, 19 Feb 2016) | 8 lines
      
      [X86ISelLowering] Fix TLSADDR lowering when shrink-wrapping is enabled.
      
      TLSADDR nodes are lowered into actuall calls inside MC. In order to prevent
      shrink-wrapping from pushing prologue/epilogue past them (which result
      in TLS variables being accessed before the stack frame is set up), we 
      put markers, so that the stack gets adjusted properly.
      Thanks to Quentin Colombet for guidance/help on how to fix this problem!
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261542
      459f68e1
    • Hans Wennborg's avatar
      Merging r261384: · b672e71f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261384 | qcolombet | 2016-02-19 16:32:29 -0800 (Fri, 19 Feb 2016) | 4 lines
      
      [RegAllocFast] Properly track the physical register definitions on calls.
      
      PR26485
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261539
      b672e71f
    • Michael Wong's avatar
  6. 19 Feb, 2016 10 commits
    • Hans Wennborg's avatar
      Merging r261368: · 05d9e8b7
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261368 | hans | 2016-02-19 13:40:12 -0800 (Fri, 19 Feb 2016) | 3 lines
      
      Revert r255691 "[LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions."
      
      It caused PR26509.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261369
      05d9e8b7
    • Hans Wennborg's avatar
      Merging r261360: · 3c312953
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261360 | dim | 2016-02-19 12:14:11 -0800 (Fri, 19 Feb 2016) | 19 lines
      
      Fix incorrect selection of AVX512 sqrt when OptForSize is on
      
      Summary:
      When optimizing for size, sqrt calls can be incorrectly selected as
      AVX512 VSQRT instructions.  This is because X86InstrAVX512.td has a
      `Requires<[OptForSize]>` in its `avx512_sqrt_scalar` multiclass
      definition.  Even if the target does not support AVX512, the class can
      apparently still be chosen, leading to an incorrect selection of
      `vsqrtss`.
      
      In PR26625, this lead to an assertion: Reg >= X86::FP0 && Reg <=
      X86::FP6 && "Expected FP register!", because the `vsqrtss` instruction
      requires an XMM register, which is not available on i686 CPUs.
      
      Reviewers: grosbach, resistor, joker.eph
      
      Subscribers: spatel, emaste, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D17414
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261367
      3c312953
    • Hans Wennborg's avatar
      Merging r261365: · 9b9dcd1e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261365 | hans | 2016-02-19 13:26:31 -0800 (Fri, 19 Feb 2016) | 3 lines
      
      Revert r253557 "Alternative to long nops for X86 CPUs, by Andrey Turetsky"
      
      Turns out the new nop sequences aren't actually nops on x86_64 (PR26554).
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261366
      9b9dcd1e
    • Hans Wennborg's avatar
      Merging r261148: · cf401074
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261148 | samsonov | 2016-02-17 12:40:10 -0800 (Wed, 17 Feb 2016) | 1 line
      
      [TSan] PR26609: Fix two test cases.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261359
      cf401074
    • Renato Golin's avatar
      Merge r261310: Add test for ARM: fix VFP asm constraints · cde5a9c7
      Renato Golin authored
      llvm-svn: 261357
      cde5a9c7
    • Renato Golin's avatar
      Merge r261309: ARM: fix VFP asm constraints · d0afc6ad
      Renato Golin authored
      llvm-svn: 261343
      d0afc6ad
    • Renato Golin's avatar
      f85e06f6
    • Hans Wennborg's avatar
      Merging r261306: · e0c1ea44
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261306 | matze | 2016-02-18 20:44:19 -0800 (Thu, 18 Feb 2016) | 1 line
      
      LegalizeDAG: Fix ExpandFCOPYSIGN assuming the same type on both inputs
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261334
      e0c1ea44
    • Hans Wennborg's avatar
      Merging r261263: · 50a6cde3
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261263 | rnk | 2016-02-18 13:24:30 -0800 (Thu, 18 Feb 2016) | 1 line
      
      Un-XFAIL the last C++ EH test, it was fixed by r261258
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261283
      50a6cde3
    • Hans Wennborg's avatar
      Merging r261258: · 478bb6c7
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261258 | rnk | 2016-02-18 12:57:41 -0800 (Thu, 18 Feb 2016) | 14 lines
      
      [IR] Straighten out bundle overload of IRBuilder::CreateCall
      
      IRBuilder has two ways of putting bundle operands on calls: the default
      operand bundle, and an overload of CreateCall that takes an operand
      bundle list.
      
      Previously, this overload used a default argument of None. This made it
      impossible to distinguish between the case were the caller doesn't care
      about bundles, and the case where the caller explicitly wants no
      bundles. We behaved as if they wanted the latter behavior rather than
      the former, which led to problems with simplifylibcalls and WinEH.
      
      This change fixes it by making the parameter non-optional, so we can
      distinguish these two cases.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261282
      478bb6c7
  7. 18 Feb, 2016 4 commits
    • Hans Wennborg's avatar
      Merging r261209: · f3f66180
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261209 | abataev | 2016-02-18 05:48:15 -0800 (Thu, 18 Feb 2016) | 4 lines
      
      [OPENMP] Fix codegen for lastprivate loop counters.
      
      Patch fixes bug with codegen for lastprivate loop counters. Also it may
      improve performance for lastprivates calculations in some cases.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261257
      f3f66180
    • Hans Wennborg's avatar
      Merging r261080: · 3960a65c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261080 | abataev | 2016-02-17 02:29:05 -0800 (Wed, 17 Feb 2016) | 3 lines
      
      [OPENMP] Fix handling loop-based directives with arrays.
      Patch fixes possible problems with correct handling arrays as
      expressions in initialization, conditions etc in loop-based constructs.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261256
      3960a65c
    • Hans Wennborg's avatar
      Merging r261193: · 387e0584
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261193 | hahnfeld | 2016-02-17 23:08:26 -0800 (Wed, 17 Feb 2016) | 6 lines
      
      [compiler-rt] Return correct size of struct pthread for glibc-2.12.2
      
      There seems to be a difference between 2.12.1 and 2.12.2 in 64-bit build.
      Tested on Scientific Linux 6.6, based on RHEL.
      
      Differential Revision: http://reviews.llvm.org/D17190
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261244
      387e0584
    • Hans Wennborg's avatar
      Merging r257763: · 5c8ed5d9
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r257763 | djasper | 2016-01-14 05:36:46 -0800 (Thu, 14 Jan 2016) | 8 lines
      
      clang-format: Fix incorrectly enforced linebreak with ColumnLimit 0.
      
      Before:
        aaaa[bbbb]
            .cccc();
      
      After:
        aaaa[bbbb].cccc();
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261225
      5c8ed5d9
  8. 17 Feb, 2016 11 commits
    • Hans Wennborg's avatar
      Merging the tsan parts of r260669 and r261142: · 8cd2a975
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r260669 | dsanders | 2016-02-12 02:35:53 -0800 (Fri, 12 Feb 2016) | 9 lines
      
      [msan+tsan] Bring back the tests that disappeared after r260230 and r259512.
      
      The lit test-suite containing the unit tests needs to be explicitly specified
      as an argument to lit.py since it is no longer discovered when the other tests
      are run (because they are one directory deeper).
      
      dfsan, lsan, and sanitizer_common don't show the same problem.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r261142 | samsonov | 2016-02-17 11:35:51 -0800 (Wed, 17 Feb 2016) | 1 line
      
      [tests] Slightly improve a fix in r260669.
      ------------------------------------------------------------------------
      
      llvm-svn: 261162
      8cd2a975
    • Hans Wennborg's avatar
      Merging r259874: · 35a3d6eb
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r259874 | compnerd | 2016-02-04 20:12:40 -0800 (Thu, 04 Feb 2016) | 8 lines
      
      CodeGen: correct Windows ARM C++ assertion
      
      Because the Decl is explicitly passed as nullptr further up the call chain, it
      is possible to invoke isa on a nullptr, which will assert.  Guard against the
      nullptr.
      
      Take the opportunity to reuse the helper method rather than re-implementing this
      logic.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261158
      35a3d6eb
    • Hans Wennborg's avatar
      Merging r261073: · 2eaca528
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261073 | hahnfeld | 2016-02-16 23:12:18 -0800 (Tue, 16 Feb 2016) | 6 lines
      
      [compiler-rt][msan] Ensure initialisation before calling __msan_unpoison
      
      __msan_unpoison uses intercepted memset which currently leads to a SEGV
      when linking with libc++ under CentOS 7.
      
      Differential Revision: http://reviews.llvm.org/D17263
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261138
      2eaca528
    • Hans Wennborg's avatar
      Merging r261039: · 73f43518
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r261039 | rnk | 2016-02-16 16:17:33 -0800 (Tue, 16 Feb 2016) | 6 lines
      
      [X86] Fix a shrink-wrapping miscompile around __chkstk
      
      __chkstk clobbers EAX. If EAX is live across the prologue, then we have
      to take extra steps to save it. We already had code to do this if EAX
      was a register parameter. This change adapts it to work when shrink
      wrapping is used.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261136
      73f43518
    • David Majnemer's avatar
      Merging r258616: · b12faa78
      David Majnemer authored
      ```---------------------------------------------------------------------
      r258616 | majnemer | 2016-01-22 22:00:44 -0800 (Fri, 22 Jan 2016) | 3 lines
      
      [PruneEH] Don't try to insert a terminator after another terminator
      
      LLVM's BasicBlock has a single terminator, it is not valid to have two.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261132
      b12faa78
    • David Majnemer's avatar
      Merging r258611: · 15d1d494
      David Majnemer authored
      ```---------------------------------------------------------------------
      r258611 | majnemer | 2016-01-22 21:41:29 -0800 (Fri, 22 Jan 2016) | 6 lines
      
      [PruneEH] FuncletPads must not have undef operands
      
      Instead of RAUW with undef, replace the first non-token instruction with
      unreachable.
      
      This fixes PR26263.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261131
      15d1d494
    • David Majnemer's avatar
      Merging r258610: · cf0d5781
      David Majnemer authored
      ```---------------------------------------------------------------------
      r258610 | majnemer | 2016-01-22 21:41:27 -0800 (Fri, 22 Jan 2016) | 3 lines
      
      [PruneEH] Unify invoke and call handling in DeleteBasicBlock
      
      No functionality change is intended.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261130
      cf0d5781
    • David Majnemer's avatar
      Merging r258609: · 12ba8962
      David Majnemer authored
      ```---------------------------------------------------------------------
      r258609 | majnemer | 2016-01-22 21:41:22 -0800 (Fri, 22 Jan 2016) | 5 lines
      
      [PruneEH] Reuse code from removeUnwindEdge
      
      PruneEH had functionality idential to removeUnwindEdge.
      Consolidate around removeUnwindEdge.
      No functionality change is intended.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261129
      12ba8962
    • David Majnemer's avatar
      Merging r259702: · 596f5595
      David Majnemer authored
      ```---------------------------------------------------------------------
      r259702 | majnemer | 2016-02-03 13:30:34 -0800 (Wed, 03 Feb 2016) | 7 lines
      
      [LoopStrengthReduce] Don't rewrite PHIs with incoming values from CatchSwitches
      
      Bail out if we have a PHI on an EHPad that gets a value from a
      CatchSwitchInst.  Because the CatchSwitchInst cannot be split, there is
      no good place to stick any instructions.
      
      This fixes PR26373.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261126
      596f5595
    • David Majnemer's avatar
      Merging r260164: · 47ef236f
      David Majnemer authored
      ```---------------------------------------------------------------------
      r260164 | akaylor | 2016-02-08 14:52:51 -0800 (Mon, 08 Feb 2016) | 5 lines
      
      [regalloc][WinEH] Do not mark intervals as not spillable if they contain a regmask
      
      Differential Revision: http://reviews.llvm.org/D16831
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261125
      47ef236f
    • David Majnemer's avatar
      Merging r260733: · dab488a6
      David Majnemer authored
      ```---------------------------------------------------------------------
      r260733 | akaylor | 2016-02-12 13:10:16 -0800 (Fri, 12 Feb 2016) | 5 lines
      
      [WinEH] Prevent EH state numbering from skipping nested cleanup pads that never return
      
      Differential Revision: http://reviews.llvm.org/D17208
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 261124
      dab488a6