1. Mar 25, 2014
    • Tom Stellard's avatar
      Merging r201097: · 67b2b929
      Tom Stellard authored
      ------------------------------------------------------------------------
      r201097 | thomas.stellard | 2014-02-10 08:58:30 -0800 (Mon, 10 Feb 2014) | 9 lines
      
      R600/SI: Initialize M0 and emit S_WQM_B64 whenever DS instructions are
      used
      
      DS instructions that access local memory can only uses addresses that
      are less than or equal to the value of M0.  When M0 is uninitialized,
      then we experience undefined behavior.
      
      This patch also changes the behavior to emit S_WQM_B64 on pixel shaders
      no matter what kind of DS instruction is used.
      
      llvm-svn: 204648
      67b2b929
    • Tom Stellard's avatar
      Merging r201096: · b65e0fbe
      Tom Stellard authored
      ------------------------------------------------------------------------
      r201096 | thomas.stellard | 2014-02-10 08:58:27 -0800 (Mon, 10 Feb 2014) | 6 lines
      
      R600/SI: Only use S_WQM_B64 in pixel shaders
      
      This doesn't change any functionality, since we only have two shader
      types (compute and pixel) that use local memory.  We're just changing
      the logic to match the documentation.
      
      llvm-svn: 204647
      b65e0fbe
    • Tom Stellard's avatar
      Merging r200830: · a84de341
      Tom Stellard authored
      ------------------------------------------------------------------------
      r200830 | michel.daenzer | 2014-02-05 01:48:05 -0800 (Wed, 05 Feb 2014) | 8 lines
      
      R600/SI: Add pattern for zero-extending i1 to i32
      
      Fixes opencl-example if_* tests with radeonsi.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74469
      
      
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      llvm-svn: 204646
      a84de341
    • Tom Stellard's avatar
      Merging r200776: · b2395127
      Tom Stellard authored
      ------------------------------------------------------------------------
      r200776 | thomas.stellard | 2014-02-04 09:18:43 -0800 (Tue, 04 Feb 2014) | 9 lines
      
      R600/SI: Expand i1 BR_CC
      
      This fixes a crashes in the OpenCV test suite and also the scrypt
      kernel in bfgminer.
      
      I was unable to come up with a reduced test case for this.
      
      https://bugs.freedesktop.org/show_bug.cgi?id=72785
      
      llvm-svn: 204645
      b2395127
    • Tom Stellard's avatar
      Merging r200775: · 0f3fb678
      Tom Stellard authored
      ------------------------------------------------------------------------
      r200775 | thomas.stellard | 2014-02-04 09:18:42 -0800 (Tue, 04 Feb 2014) | 5 lines
      
      R600/SI: Don't assume copies will be coalesced in SIFixSGPRCopies
      
      There is no lit test for this, because it would be too big and
      complicated, but it does fix a crash in the Arithm/Absdiff.* OpenCV
      test.
      
      llvm-svn: 204644
      0f3fb678
    • Tom Stellard's avatar
      Merging r200743: · 02649904
      Tom Stellard authored
      
      
      ------------------------------------------------------------------------
      r200743 | michel.daenzer | 2014-02-03 23:12:38 -0800 (Mon, 03 Feb 2014) | 11 lines
      
      R600/SI: Fix fneg for 0.0
      
      V_ADD_F32 with source modifier does not produce -0.0 for this. Just
      manipulate the sign bit directly instead.
      
      Also add a pattern for (fneg (fabs ...)).
      
      Fixes a bunch of bit encoding piglit tests with radeonsi.
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      llvm-svn: 204643
      02649904
    • Tom Stellard's avatar
      Merging r200283: · 90e82888
      Tom Stellard authored
      
      
      ------------------------------------------------------------------------
      r200283 | michel.daenzer | 2014-01-27 19:01:16 -0800 (Mon, 27 Jan 2014) | 6 lines
      
      R600/SI: Add pattern for truncating i32 to i1
      
      Fixes half a dozen piglit tests with radeonsi.
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      llvm-svn: 204642
      90e82888
    • Tom Stellard's avatar
      Merging r199919: · ecbc40a6
      Tom Stellard authored
      ------------------------------------------------------------------------
      r199919 | thomas.stellard | 2014-01-23 10:49:34 -0800 (Thu, 23 Jan 2014) | 10 lines
      
      R600: Remove successive JUMP in AnalyzeBranch when AllowModify is true
      
      This fixes a crash in the OpenCV OpenCL test suite.
      
      There is no lit test for this, because the test would be very large
      and could easily be invalidated by changes to the scheduler
      or other parts of the compiler.
      
      Patch by:  Vincent Lejeune
      
      llvm-svn: 204641
      ecbc40a6
    • Tom Stellard's avatar
      Merging r199918: · 57b2876b
      Tom Stellard authored
      ------------------------------------------------------------------------
      r199918 | thomas.stellard | 2014-01-23 10:49:33 -0800 (Thu, 23 Jan 2014) | 8 lines
      
      R600: Disable the BFE pattern
      
      This pattern uses an SDNodeXForm, which isn't being emitted for some
      reason.  I can get it to work by attaching the PatLeaf that has the
      XForm to the argument in the output pattern, but this results in an
      immediate being used in a register operand, which the backend can't
      handle yet.
      
      llvm-svn: 204640
      57b2876b
    • Tom Stellard's avatar
      Merging r199917: · 1d661aaa
      Tom Stellard authored
      ------------------------------------------------------------------------
      r199917 | thomas.stellard | 2014-01-23 10:49:31 -0800 (Thu, 23 Jan 2014) | 6 lines
      
      R600: Correctly handle vertex fetch clauses the precede ENDIFs
      
      The control flow finalizer would sometimes use an ALU_POP_AFTER
      instruction before the vetex fetch clause instead of using a POP
      instruction after it.
      
      llvm-svn: 204639
      1d661aaa
    • Tom Stellard's avatar
      Merging r202336: · eabf85e3
      Tom Stellard authored
      
      
      ------------------------------------------------------------------------
      r202336 | michel.daenzer | 2014-02-26 17:47:02 -0800 (Wed, 26 Feb 2014) | 4 lines
      
      R600/SI: Allow SI_KILL for geometry shaders
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      llvm-svn: 204638
      eabf85e3
    • Tom Stellard's avatar
      Merging r200196: · efd98d10
      Tom Stellard authored
      
      
      ------------------------------------------------------------------------
      r200196 | michel.daenzer | 2014-01-26 23:20:51 -0800 (Sun, 26 Jan 2014) | 4 lines
      
      R600/SI: Add intrinsic for BUFFER_LOAD_DWORD* instructions
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      llvm-svn: 204637
      efd98d10
    • Tom Stellard's avatar
      Merging r200195: · 55d060fe
      Tom Stellard authored
      
      
      ------------------------------------------------------------------------
      r200195 | michel.daenzer | 2014-01-26 23:20:44 -0800 (Sun, 26 Jan 2014) | 4 lines
      
      R600/SI: Add intrinsic for S_SENDMSG instruction
      
      Reviewed-by: default avatarTom Stellard <thomas.stellard@amd.com>
      llvm-svn: 204636
      55d060fe
  2. Mar 20, 2014
    • Tom Stellard's avatar
      Bump version to 3.4.1 · 26344c16
      Tom Stellard authored
      llvm-svn: 204266
      26344c16
    • Tom Stellard's avatar
      Merging r203025: · ff1805df
      Tom Stellard authored
      ------------------------------------------------------------------------
      r203025 | richard-llvm | 2014-03-05 15:32:50 -0800 (Wed, 05 Mar 2014) |
      3 lines
      
      PR19010: Make sure we initialize (empty) indirect base class subobjects
      when
      evaluating trivial default initialization of a literal class type.
      
      llvm-svn: 204263
      ff1805df
    • Tom Stellard's avatar
      Merging r202720: · 36642863
      Tom Stellard authored
      ------------------------------------------------------------------------
      r202720 | thomas.stellard | 2014-03-03 07:22:00 -0800 (Mon, 03 Mar 2014) | 8 lines
      
      Add patch level to llvm version in CMake and Autoconf
      
      The shared library generated by autoconf will now be called
      libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)$(VERSION_SUFFIX).so
      and a symlink named
      libLLVM-$(VERSION_MAJOR).$(VERSION_MINOR)$(VERSION_SUFFIX).so will
      also be created in the install directory.
      
      llvm-svn: 204262
      36642863
  3. Mar 18, 2014
    • Tom Stellard's avatar
      Merging r200954: · b94c7d80
      Tom Stellard authored
      ------------------------------------------------------------------------
      r200954 | richard-llvm | 2014-02-06 15:35:16 -0800 (Thu, 06 Feb 2014) | 9 lines
      
      Temporary fix for PR18473: Don't try to evaluate the initializer for a
      type-dependent variable, even if the initializer isn't value-dependent.  This
      happens for ParenListExprs composed of non-value-dependent subexpressions, for
      instance.
      
      We should really give ParenListExprs (and InitListExprs) the type of the
      initialized entity if they're used to represent a dependent initialization (and
      if so, set them to be type-, value- and instantiation-dependent).
      
      llvm-svn: 204050
      b94c7d80
  4. Mar 14, 2014
    • Tom Stellard's avatar
      Merging r202721: · 15af0667
      Tom Stellard authored
      ------------------------------------------------------------------------
      r202721 | thomas.stellard | 2014-03-03 07:22:14 -0800 (Mon, 03 Mar 2014) | 2 lines
      
      Update tests for addition of patch level to LLVM version
      
      llvm-svn: 203870
      15af0667
  5. Feb 25, 2014
    • Tom Stellard's avatar
      Merging r197503, r197505, r197520: · d5c64f05
      Tom Stellard authored
      ------------------------------------------------------------------------
      r197520 | dexonsmith | 2013-12-17 12:28:21 -0800 (Tue, 17 Dec 2013) | 7
      lines
      
      Assert that the last operand is actually EFLAGS
      
      This is another follow-up to r197503, after a post-commit review by
      Andy.
      
      <rdar://problem/15627766>
      
      ------------------------------------------------------------------------
      r197505 | dexonsmith | 2013-12-17 08:20:37 -0800 (Tue, 17 Dec 2013) | 6
      lines
      
      Setting the CPU in the new vaargs test
      
      Trying to fix buildbots after r197503 (test passes locally).
      
      <rdar://problem/15627766>
      
      ------------------------------------------------------------------------
      r197503 | dexonsmith | 2013-12-17 07:54:45 -0800 (Tue, 17 Dec 2013) | 17
      lines
      
      Revert "Revert "Mark vastart_save_xmm_regs as changing EFLAGS""
      
      This reverts commit r197481, recommiting r197469 with an extra fix.
      
      The vastart_save_xmm_regs pseudo-instruction expands to a test and a
      branch, so it modifies EFLAGS.  Mark it so, or else the scheduler might
      place it in the middle of another test+branch.
      
      This fixes a bug exposed by r192750, which changed the initial scheduler
      to source-order as part of enabling the MI Scheduler for X86.
      
      This re-commit changes the VASTART_SAVE_XMM_REGS custom inserter not to
      try to save %flags, and adds a test that catches the bad behavior of
      r197469.
      
      <rdar://problem/15627766>
      
      ------------------------------------------------------------------------
      
      llvm-svn: 202060
      d5c64f05
  6. Jan 07, 2014
  7. Dec 28, 2013
    • Bill Wendling's avatar
      Merging r197314: · 29eea135
      Bill Wendling authored
      ------------------------------------------------------------------------
      r197314 | logan | 2013-12-13 22:45:09 -0800 (Fri, 13 Dec 2013) | 9 lines
      
      Fix GCC unknown pragma warning in libc++.
      
      We should check defined(__clang__) before the usage of the
      clang diagnostic pragmas.
      
      The [-Wswitch] warning in src/future.cpp should be ignored.
      As the result, the equivalent GCC pragma is added.
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 198100
      29eea135
  8. Dec 24, 2013
  9. Dec 23, 2013
    • Bill Wendling's avatar
      ---Merging r196453 · 0e1066e6
      Bill Wendling authored
          Parse: Recover better from bad definitions with base specifiers
          
          We would skip until the next comma, hoping good things whould lie there,
          however this would fail when we have such things as this:
          
          struct A {};
          template <typename>
          struct D;
          template <>
          struct D<C> : B, A::D;
          
          Once this happens, we would believe that D with a nested namespace
          specifier of A was a variable that was being declared. We would go on
          to complain that there was an extraneous 'template <>' on their variable
          declaration.
          
          Crashes would happen when 'A' gets defined as 'enum class A {}' as
          various asserts would fire.
          
          Instead, we should skip up until the semicolon if we see that we are in
          the middle of a definition and the current token is a ':'
          
          This fixes PR17084.
      
      llvm-svn: 197905
      0e1066e6
  10. Dec 21, 2013
  11. Dec 20, 2013
    • Bill Wendling's avatar
      Merging r197492: · 849a06ce
      Bill Wendling authored
      ------------------------------------------------------------------------
      r197492 | dyatkovskiy | 2013-12-17 04:07:33 -0800 (Tue, 17 Dec 2013) | 26 lines
      
      Fix for PR18045:
      http://llvm.org/bugs/show_bug.cgi?id=18045
      
      Short issue description:
      For X86 machines with sse < sse4.1 we got failures for some
      particular load/store vector sequences:
      
      $ clang-trunk -m32 -O2 test-case.c
      fatal error: error in backend: Cannot select: 0x4200920: v4i32,ch = load 0x41d6ab0, 0x4205850,
            0x41dcb10<LD16[getelementptr inbounds ([4 x i32]* @e, i32 0, i32 0)](align=4)> [ORD=82]
            [ID=58]
        0x4205850: i32 = X86ISD::Wrapper 0x41d5490 [ORD=26] [ID=43]
          0x41d5490: i32 = TargetGlobalAddress<[4 x i32]* @e> 0 [ORD=26] [ID=23]
        0x41dcb10: i32 = undef [ID=2]
      
      The reason is that EltsFromConsecutiveLoads could emit such load instruction
      both before and after legalize stage. Though this instruction is not legal for
      machines with SSSE3 and lower.
      
      The fix: In EltsFromConsecutiveLoads, if we have passed legalize stage, we
      check whether nodes it emits are legal. 
      
      P.S.: If you get failure in time from 12:00 and till 22:00 (UTC-8),
      perhaps I'll slow with response, so you better reject this commit. Thanks!
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 197779
      849a06ce
    • Bill Wendling's avatar
      Merging r197718: · 4ed3bde6
      Bill Wendling authored
      ------------------------------------------------------------------------
      r197718 | hans | 2013-12-19 12:32:44 -0800 (Thu, 19 Dec 2013) | 10 lines
      
      Make sys::ThreadLocal<> zero-initialized on non-thread builds (PR18205)
      
      According to the docs, ThreadLocal<>::get() should return NULL
      if no object has been set. This patch makes that the case also for non-thread
      builds and adds a very basic unit test to check it.
      
      (This was causing PR18205 because PrettyStackTraceHead didn't get zero-
      initialized and we'd crash trying to read past the end of that list. We didn't
      notice this so much on Linux since we'd crash after printing all the entries,
      but on Mac we print into a SmallString, and would crash before printing that.)
      ------------------------------------------------------------------------
      
      llvm-svn: 197778
      4ed3bde6
  12. Dec 19, 2013
  13. Dec 17, 2013
    • Bill Wendling's avatar
      Update notes. · 48b544e6
      Bill Wendling authored
      llvm-svn: 197468
      48b544e6
    • Bill Wendling's avatar
      Merging r197409: · e4b2a6e3
      Bill Wendling authored
      ------------------------------------------------------------------------
      r197409 | rikka | 2013-12-16 11:19:18 -0800 (Mon, 16 Dec 2013) | 4 lines
      
      Make Sema::BuildCXXNestedNameSpecifier correctly clear the previous
      CXXScopeSpec when necessary while performing typo correction. This fixes
      the crash reported in PR18213 (the problem existed since r185487, and
      r193020 made it easier to hit).
      ------------------------------------------------------------------------
      
      llvm-svn: 197463
      e4b2a6e3
    • Bill Wendling's avatar
      Merging r197449: · 55637a32
      Bill Wendling authored
      ------------------------------------------------------------------------
      r197449 | arnolds | 2013-12-16 17:11:01 -0800 (Mon, 16 Dec 2013) | 7 lines
      
      LoopVectorizer: Don't if-convert constant expressions that can trap
      
      A phi node operand or an instruction operand could be a constant expression that
      can trap (division). Check that we don't vectorize such cases.
      
      PR16729
      radar://15653590
      ------------------------------------------------------------------------
      
      llvm-svn: 197453
      55637a32
    • Bill Wendling's avatar
      Fix link. · 4a062ea7
      Bill Wendling authored
      llvm-svn: 197443
      4a062ea7
    • Bill Wendling's avatar
      Add blurb about leak sanitizer. · dd9a1386
      Bill Wendling authored
      llvm-svn: 197417
      dd9a1386
  14. Dec 16, 2013