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

  1. 30 Jul, 2015 19 commits
    • Hans Wennborg's avatar
      Merging r243642, r243643, and r243644: · 6e8ff106
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243642 | uweigand | 2015-07-30 07:08:36 -0700 (Thu, 30 Jul 2015) | 29 lines
      
      Add support for System z vector language extensions
      
      The z13 vector facility has an associated language extension,
      closely modeled on AltiVec/VSX.  The main differences are:
      
      - vector long, vector float and vector pixel are not supported
      
      - vector long long and vector double are supported (like VSX)
      
      - comparison operators return a vector rather than a scalar integer
      
      - shift operators behave like the OpenCL shift operators
      
      - vector bool is only supported as argument to certain operators;
        some operators allow mixing a bool with a non-bool vector 
      
      This patch adds clang support for the extension.  It is closely modelled
      on the AltiVec support.  Similarly to the -faltivec option, there's a
      new -fzvector option to enable the extensions (as well as an -mzvector
      alias for compatibility with GCC).  There's also a separate LangOpt.
      
      The extension as implemented here is intended to be compatible with
      the -mzvector extension recently implemented by GCC.
      
      Based on a patch by Richard Sandiford.
      
      Differential Revision: http://reviews.llvm.org/D11001
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243643 | uweigand | 2015-07-30 07:10:43 -0700 (Thu, 30 Jul 2015) | 18 lines
      
      [SystemZ] Add support for vecintrin.h vector built-in functions
      
      This patch adds support for the System Z vector built-in functions.
      The API-defined header file has the name vecintrin.h.
      
      The user-level functions are defined in the same style as the clang
      version of altivec.h, making heavy use of the __overloadable__ and
      __always_inline__ attributes.  Where possible the functions expand to
      generic operations rather than specific built-in functions, in the hope
      that that form can be optimised better.
      
      Where a built-in routine is specified to require an immediate integer
      argument, the __enable_if__ attribute is used to verify the argument is
      in fact constant and in the appropriate range.
      
      Based on a patch by Richard Sandiford.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243644 | uweigand | 2015-07-30 08:53:58 -0700 (Thu, 30 Jul 2015) | 21 lines
      
      Fix sanitizer fallout from r243642
      
      The memory-sanitizer build bot reported:
      
      ==5574== WARNING: MemorySanitizer: use-of-uninitialized-value
          #0 0x7f03089e15f6 in
      clang::Parser::TryAltiVecTokenOutOfLine(clang::DeclSpec&,
      clang::SourceLocation, char const*&, unsigned int&, bool&)
      /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/tools/clang/lib/Parse/ParseDecl.cpp:6290:11
      
      This is because the "Ident_pixel" variable was uninitialized
      in the getLangOpts().ZVector case, but we'd still call into
      clang::Parser::TryAltiVecTokenOutOfLine, which uses the variable.
      
      The simplest fix for this without sprinkling !getLangOpts().ZVector
      checks all over the code seems to be to just initialize the variable
      to nullptr; this will then do the right thing on ZVector.
      
      Checked in to unbreak the build bots.
      ------------------------------------------------------------------------
      
      llvm-svn: 243699
      6e8ff106
    • Hans Wennborg's avatar
      Merging r243618: · 6b7585ca
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243618 | jaydeep | 2015-07-29 22:06:51 -0700 (Wed, 29 Jul 2015) | 7 lines
      
      [LLDB][MIPS] Create Unix Signals based on target architecture
          SUMMARY:
          The patch creates Unix Signals based on target architecture. For MIPS it creates MipsLinuxSignals.
          
          Reviewers: clayborg
          Subscribers: mohit.bhakkad, sagar, lldb-commits
          Differential Revision: http://reviews.llvm.org/D11455
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243665
      6b7585ca
    • Hans Wennborg's avatar
      Merging r243057: · 390ed68b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243057 | spatel | 2015-07-23 15:56:53 -0700 (Thu, 23 Jul 2015) | 16 lines
      
      fix crash in machine trace metrics due to processing dbg_value instructions (PR24199)
      
      The test in PR24199 ( https://llvm.org/bugs/show_bug.cgi?id=24199 ) crashes because machine
      trace metrics was not ignoring dbg_value instructions when calculating data dependencies.
      
      The machine-combiner pass asks machine trace metrics to calculate an instruction trace, 
      does some reassociations, and calls MachineInstr::eraseFromParentAndMarkDBGValuesForRemoval()
      along with MachineTraceMetrics::invalidate(). The dbg_value instructions have their operands
      invalidated, but the instructions are not expected to be deleted.
      
      On a subsequent loop iteration of the machine-combiner pass, machine trace metrics would be
      called again and die while accessing the invalid debug instructions.
      
      Differential Revision: http://reviews.llvm.org/D11423
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243662
      390ed68b
    • Hans Wennborg's avatar
      Merging r243589 and r243609: · 9f19c533
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243589 | lhames | 2015-07-29 16:12:33 -0700 (Wed, 29 Jul 2015) | 6 lines
      
      [MCJIT] Fix PR20656 by teaching MCJIT to honor ExecutionEngine's global mapping.
      
      This is important for users of the C API who can't supply custom symbol
      resolvers yet.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243609 | lhames | 2015-07-29 19:05:37 -0700 (Wed, 29 Jul 2015) | 2 lines
      
      [MCJIT] Fix a memory leak in a unit test that was introduced in r243589.
      ------------------------------------------------------------------------
      
      llvm-svn: 243655
      9f19c533
    • Daniel Sanders's avatar
      Merging r243645: · ca430b6e
      Daniel Sanders authored
      ```---------------------------------------------------------------------
      r243645 | dsanders | 2015-07-30 17:11:04 +0100 (Thu, 30 Jul 2015) | 11 lines
      
      [libcxxabi][mips] Correct float_data::mangled_size for all ABI's.
      
      Summary:
      Patch by Nitesh Jain and Jaydeep Patil with a small revision to use ABIs rather
      than Architecture Revisions (which currently imply particular ABIs).
      
      Fixes test_demangle.pass.cpp (PR24149).
      
      Subscribers: mclow.lists, jaydeep, nitesh.jain, hans, cfe-commits
      
      Differential Revision: http://reviews.llvm.org/D11483
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243654
      ca430b6e
    • Hans Wennborg's avatar
      Merging r243206: · 896c94f2
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243206 | majnemer | 2015-07-24 22:57:24 -0700 (Fri, 24 Jul 2015) | 10 lines
      
      [CodeGen] Don't UBSan-ize the argument to __builtin_frame_address
      
      __builtin_frame_address requires its argument to be a constant
      expression which already implies that it cannot have undefined behavior.
      However, we used EmitScalarExpr to emit the argument causing UBSan to
      try to check for overflow.
      
      Instead, use the constant expression emission system.
      
      This fixes PR24256.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243653
      896c94f2
    • Hans Wennborg's avatar
      Merging r243638 and r243640: · db9a51ac
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243638 | vkalintiris | 2015-07-30 05:39:33 -0700 (Thu, 30 Jul 2015) | 12 lines
      
      [mips][FastISel] Remove hidden mips-fast-isel option.
      
      Summary:
      This hidden option would disable code generation through FastISel by
      default. It was removed from the available options and from the
      Fast-ISel tests that required it in order to run the tests.
      
      Reviewers: dsanders
      
      Subscribers: qcolombet, llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D11610
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243640 | vkalintiris | 2015-07-30 06:13:09 -0700 (Thu, 30 Jul 2015) | 5 lines
      
      [mips] Fix out-of-date debug information in test file.
      
      Update the debug info in the check-lines because the change in r243638
      introduced a constant initialization before the prologue's end as part
      of a register spill.
      ------------------------------------------------------------------------
      
      llvm-svn: 243650
      db9a51ac
    • Daniel Sanders's avatar
      Merging r243296: · 68e239ab
      Daniel Sanders authored
      ```---------------------------------------------------------------------
      r243296 | dsanders | 2015-07-27 19:20:17 +0100 (Mon, 27 Jul 2015) | 16 lines
      
      [libcxxabi] Add -funwind-tables to the test compilation options.
      
      Summary:
      backtrace_test.pass.cpp depends on unwind tables. These are generated by
      -funwind-tables which is the default for x86 but not for other targets.
      
      Thanks to Nitesh Jain for helping to narrow this down.
      
      Fixes PR24148
      
      Reviewers: jroelofs
      
      Subscribers: cfe-commits, jroelofs, llvm-commits, hans
      
      Differential Revision: http://reviews.llvm.org/D11529
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243649
      68e239ab
    • Hans Wennborg's avatar
      Merging r243636: · 7cb5d069
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243636 | vkalintiris | 2015-07-30 04:51:44 -0700 (Thu, 30 Jul 2015) | 34 lines
      
      [mips][FastISel] Apply only zero-extension to constants prior to their materialization.
      
      Summary:
      Previously, we would sign-extend non-boolean negative constants and
      zero-extend otherwise. This was problematic for PHI instructions with
      negative values that had a type with bitwidth less than that of the
      register used for materialization.
      
      More specifically, ComputePHILiveOutRegInfo() assumes the constants
      present in a PHI node are zero extended in their container and
      afterwards deduces the known bits.
      
      For example, previously we would materialize an i16 -4 with the
      following instruction:
      
        addiu $r, $zero, -4
      
      The register would end-up with the 32-bit 2's complement representation
      of -4. However, ComputePHILiveOutRegInfo() would generate a constant
      with the upper 16-bits set to zero. The SelectionDAG builder would use
      that information to generate an AssertZero node that would remove any
      subsequent trunc & zero_extend nodes.
      
      In theory, we should modify ComputePHILiveOutRegInfo() to consult
      target-specific hooks about the way they prefer to materialize the
      given constants. However, git-blame reports that this specific code
      has not been touched since 2011 and it seems to be working well for every
      target so far.
      
      Reviewers: dsanders
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D11592
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243648
      7cb5d069
    • Hans Wennborg's avatar
      Merging r243485: · 77ef3e60
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243485 | vkalintiris | 2015-07-28 14:43:31 -0700 (Tue, 28 Jul 2015) | 12 lines
      
      [mips][FastISel] Fix call lowering by bailing out on "fastcc" calls.
      
      Summary:
      Currently, we support only the MIPS O32 ABI calling convention for call
      lowering. With this change we avoid using the O32 calling convetion for
      lowering calls marked as using the fast calling convention.
      
      Reviewers: dsanders
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D11515
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243647
      77ef3e60
    • Hans Wennborg's avatar
      Merging r243469: · bf41dc4e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243469 | vkalintiris | 2015-07-28 12:57:25 -0700 (Tue, 28 Jul 2015) | 12 lines
      
      [mips][FastISel] Fix generated code for IR's select instruction.
      
      Summary:
      Generate correct code for the select instruction by zero-extending
      it's boolean/condition operand to GPR-width. This is necessary because
      the conditional-move instructions operate on the whole register.
      
      Reviewers: dsanders
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D11506
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243646
      bf41dc4e
    • Daniel Sanders's avatar
      Merging r243633: · 4a08cec9
      Daniel Sanders authored
      ```---------------------------------------------------------------------
      r243633 | dsanders | 2015-07-30 11:14:57 +0100 (Thu, 30 Jul 2015) | 11 lines
      
      [test-release.sh] Add -no-libunwind to disable it on targets that don't support it.
      
      Summary:
      Mips doesn't implement unw_getcontext() or libunwind::Registers_*::jumpto() yet
      so we must disable libunwind for this release.
      
      Reviewers: hans
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D11563
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243634
      4a08cec9
    • Daniel Sanders's avatar
      [mips] Remove libunwind from the list of new features. · ad25393b
      Daniel Sanders authored
      The context save and restore functions have not yet been implemented for MIPS
      so it will be disabled for this release.
      
      llvm-svn: 243631
      ad25393b
    • Renato Golin's avatar
      Merging r243352, r243353: · df91cc64
      Renato Golin authored
      [ARM] Changes to Arch/CPU handling to help with -Wa,-mfpu etc. (nfc)
      [ARM] Implement -Wa,-mfpu and friends for assemblers
      
      llvm-svn: 243629
      df91cc64
    • Hans Wennborg's avatar
      Merging r243615: · e314cfdc
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243615 | nico | 2015-07-29 20:41:05 -0700 (Wed, 29 Jul 2015) | 1 line
      
      Revert r243604, it (very likely) caused PR24312.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243617
      e314cfdc
    • Hans Wennborg's avatar
      Merging r243604: · 0a72d8f8
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243604 | hans | 2015-07-29 18:45:17 -0700 (Wed, 29 Jul 2015) | 13 lines
      
      [CMake] Pass -march=i686 when targeting i686 (PR24222)
      
      Clang will not define __i686__, even when the target triple is i686,
      without -march=i686.
      
      With this patch, the compiler-rt build will successfully detect that
      Clang can target i686.
      
      The open_memstream.cc test is a little funny. Before my patch, it
      was invoked with "-m32 -m64". To make it work after my -march
      change, I had to add '-march=x86-64'.
      
      Differential Revision: http://reviews.llvm.org/D11618
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243608
      0a72d8f8
    • Hans Wennborg's avatar
      Merging r243463, r243538, and r243594: · 78356d85
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243463 | rtrieu | 2015-07-28 12:06:16 -0700 (Tue, 28 Jul 2015) | 6 lines
      
      Do not give a -Wredundant-move warning when removing the move will result in an
      error.
      
      If the object being moved has a move constructor and a deleted copy constructor,
      std::move is required, otherwise Clang will give a deleted constructor error.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243538 | rtrieu | 2015-07-29 10:03:34 -0700 (Wed, 29 Jul 2015) | 7 lines
      
      Disable -Wpessimizing-move and -Wredundant-move in template instantiations.
      
      Dependent types can throw off the analysis for these warnings, possibly giving
      conflicting warnings and fix-its.  Disabling the warning in template
      instantiations will prevent this problem, and will still catch the
      non-dependent cases in templates.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243594 | rtrieu | 2015-07-29 16:47:19 -0700 (Wed, 29 Jul 2015) | 7 lines
      
      Fix -Wredundant-move warning.
      
      Without DR1579 implemented, the only case for -Wredundant-move is for a
      parameter being returned with the same type as the function return type.  Also
      include a check to verify that the move constructor will be used by matching
      nodes in the AST dump.
      ------------------------------------------------------------------------
      
      llvm-svn: 243607
      78356d85
    • Hans Wennborg's avatar
      Merging r242854: · 4ca52e9a
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r242854 | rtrieu | 2015-07-21 16:38:30 -0700 (Tue, 21 Jul 2015) | 3 lines
      
      Change a test to follow the formatting of the rest of the tests in the file.
      No functional change.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243606
      4ca52e9a
    • Hans Wennborg's avatar
      Merging r242600: · 584a5639
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r242600 | davide | 2015-07-17 18:15:19 -0700 (Fri, 17 Jul 2015) | 8 lines
      
      [Sema] Emit correct warning when copy-elision is not possible.
      
      If we're returning a function parameter, copy elision isn't possible,
      so we now warn for redundant move.
      
      PR:		23819
      Differential Revision:	 http://reviews.llvm.org/D11305
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243605
      584a5639
  2. 29 Jul, 2015 4 commits
    • Hans Wennborg's avatar
      Merging r243343: · d834a191
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243343 | akirtzidis | 2015-07-27 16:16:53 -0700 (Mon, 27 Jul 2015) | 4 lines
      
      [sema] Fix infinite loop when using a boolean value as designated initializer.
      
      For designated indices use the max array size type bitwidth, not the bitwidth of the index value itself.
      rdar://21942503
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243562
      d834a191
    • Hans Wennborg's avatar
      Merging r243531: · 9400d2cc
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243531 | hans | 2015-07-29 09:29:06 -0700 (Wed, 29 Jul 2015) | 7 lines
      
      test-release.sh: Add option for building the OpenMP run-time
      
      This isn't part of the official release process, but provides a convenient way
      to build binaries for those who want to experiment with it. Hopefully the run-
      time can be part of the regular build and release process for 3.8.
      
      Differential Revision: http://reviews.llvm.org/D11494
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243537
      9400d2cc
    • Hans Wennborg's avatar
      Merging r243519: · 5e57f799
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243519 | wschmidt | 2015-07-29 07:31:57 -0700 (Wed, 29 Jul 2015) | 14 lines
      
      [PPC] Fix PR24216: Don't generate splat for misaligned shuffle mask
      
      Given certain shuffle-vector masks, LLVM emits splat instructions
      which splat the wrong bytes from the source register.  The issue is
      that the function PPC::isSplatShuffleMask() in PPCISelLowering.cpp
      does not ensure that the splat pattern found is requesting bytes that
      are aligned on an EltSize boundary.  This patch detects this situation
      as not a valid splat mask, resulting in a permute being generated
      instead of a splat.
      
      Patch and test case by Tyler Kenney, cleaned up a bit by me.
      
      This is a simple bug fix that would be good to incorporate into 3.7.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243528
      5e57f799
    • Hans Wennborg's avatar
      Merging r243500: (conflicts resolved manually since the branch doesn't have r243293) · 2b53f11c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243500 | spatel | 2015-07-28 16:28:22 -0700 (Tue, 28 Jul 2015) | 16 lines
      
      ignore duplicate divisor uses when transforming into reciprocal multiplies (PR24141)
      
      PR24141: https://llvm.org/bugs/show_bug.cgi?id=24141
      contains a test case where we have duplicate entries in a node's uses() list.
      
      After r241826, we use CombineTo() to delete dead nodes when combining the uses into
      reciprocal multiplies, but this fails if we encounter the just-deleted node again in
      the list.
      
      The solution in this patch is to not add duplicate entries to the list of users that
      we will subsequently iterate over. For the test case, this avoids triggering the
      combine divisors logic entirely because there really is only one user of the divisor.
      
      Differential Revision: http://reviews.llvm.org/D11345
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243524
      2b53f11c
  3. 28 Jul, 2015 8 commits
    • Hans Wennborg's avatar
      Merging r243277, r243280, r243285, and r243289 · 08ae2b71
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243277 | sfantao | 2015-07-27 09:38:06 -0700 (Mon, 27 Jul 2015) | 4 lines
      
      [OpenMP] Add capture for threadprivate variables used in copyin clause
      if TLS is enabled in OpenMP code generation.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243280 | sfantao | 2015-07-27 09:59:45 -0700 (Mon, 27 Jul 2015) | 4 lines
      
      [OpenMP] Add TLS requirement for the copyin clause codegen test. This is an
      attempt to fix regressions triggered by r243277.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243285 | sfantao | 2015-07-27 10:30:41 -0700 (Mon, 27 Jul 2015) | 2 lines
      
      [OpenMP] Fix copyin clause codegen regression caused by r243277. 
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243289 | sfantao | 2015-07-27 10:49:18 -0700 (Mon, 27 Jul 2015) | 3 lines
      
      [OpenMP] Fix copyin codegen test regression in order used in compare
      instruction. 
      ------------------------------------------------------------------------
      
      llvm-svn: 243443
      08ae2b71
    • Hans Wennborg's avatar
      Merging r243417: · 649bfe3d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243417 | kbeyls | 2015-07-28 07:23:47 -0700 (Tue, 28 Jul 2015) | 3 lines
      
      RegParmMax must be 0 for AArch64, as the regparm function attribute is not supported on AArch64.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243442
      649bfe3d
    • Hans Wennborg's avatar
      Merging r243276: · 0511116c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243276 | jlpeyton | 2015-07-27 09:23:42 -0700 (Mon, 27 Jul 2015) | 4 lines
      
      Update Build_With_CMake.txt to reflect changes in CMake refactor
      
      This just updates the documentation regarding how to build libomp with CMake.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243440
      0511116c
    • Hans Wennborg's avatar
      Merging r243073: · ad7497b3
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243073 | logan | 2015-07-23 17:16:48 -0700 (Thu, 23 Jul 2015) | 10 lines
      
      unwind: Fix libc++abi and libgcc build.
      
      To build libc++abi without libunwind, we should make sure that all
      function calls to _Unwind_{Get,Set}{GR,IP}() are inlined as function
      calls to _Unwind_VRS_{Get,Set}().  Otherwise, libc++abi.so will fail to
      link since libgcc does not provide these symbol at all.
      
      This commit fixes the problem by providing both the inlined version and
      exported version.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243437
      ad7497b3
    • Hans Wennborg's avatar
      Merging rr242642: · 0a5b126d
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r242642 | logan | 2015-07-19 08:23:10 -0700 (Sun, 19 Jul 2015) | 5 lines
      
      libunwind: Introduce __libunwind_config.h.
      
      Introduce __libunwind_config.h to avoid cross repository circular
      dependency with libcxxabi.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243436
      0a5b126d
    • Hans Wennborg's avatar
      Merging r243361: · 45304585
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243361 | spatel | 2015-07-27 17:48:32 -0700 (Mon, 27 Jul 2015) | 17 lines
      
      fix invalid load folding with SSE/AVX FP logical instructions (PR22371)
      
      This is a follow-up to the FIXME that was added with D7474 ( http://reviews.llvm.org/rL229531 ).
      I thought this load folding bug had been made hard-to-hit, but it turns out to be very easy
      when targeting 32-bit x86 and causes a miscompile/crash in Wine:
      https://bugs.winehq.org/show_bug.cgi?id=38826
      https://llvm.org/bugs/show_bug.cgi?id=22371#c25
      
      The quick fix is to simply remove the scalar FP logical instructions from the load folding table
      in X86InstrInfo, but that causes us to miss load folds that should be possible when lowering fabs,
      fneg, fcopysign. So the majority of this patch is altering those lowerings to use *vector* FP
      logical instructions (because that's all x86 gives us anyway). That lets us do the load folding 
      legally.
      
      Differential Revision: http://reviews.llvm.org/D11477
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243435
      45304585
    • Hans Wennborg's avatar
      Merging r243196: · 8ab69e43
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243196 | davide | 2015-07-24 18:19:32 -0700 (Fri, 24 Jul 2015) | 6 lines
      
      [SemaTemplate] Detect instantiation of unparsed exceptions.
      
      This fixes the clang crash reported in PR24000.
      
      Differential Revision:	http://reviews.llvm.org/D11341
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243433
      8ab69e43
    • Daniel Sanders's avatar
      [mips] Update release notes for 3.7.0 release. · cade945d
      Daniel Sanders authored
      llvm-svn: 243404
      cade945d
  4. 27 Jul, 2015 7 commits
    • Hans Wennborg's avatar
      Merging r243098, r243101, r243105, r243144, and r243153. · ba00de65
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243098 | yrnkrn | 2015-07-24 01:50:15 -0700 (Fri, 24 Jul 2015) | 7 lines
      
      Add extensive tests for the mingw toolchain and remove trailing slash from Arch.
      
      Address Richard Smith comments: remove the trailing seperator from the Arch
      variable, implement six mingw_* trees under tools/clangtest/Driver/Inputs
      and merge linux and Windows tests into a universal test that uses these trees.
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243101 | yrnkrn | 2015-07-24 02:31:57 -0700 (Fri, 24 Jul 2015) | 3 lines
      
      Try to appease clang buildbot by forcing libstdc++ in mingw.cpp test.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243105 | yrnkrn | 2015-07-24 04:01:45 -0700 (Fri, 24 Jul 2015) | 4 lines
      
      Apparently some of the bots add .svn dirs inside the test/Driver/Inputs 
      directory structure. Try to make mingw toolchain resilient to such surprises.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243144 | yrnkrn | 2015-07-24 12:18:17 -0700 (Fri, 24 Jul 2015) | 5 lines
      
      Base the sys-root/mingw/include path on sysroot and not on /usr.
      
      Thanks to Richard Smith for pointing this out!
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r243153 | yrnkrn | 2015-07-24 13:18:27 -0700 (Fri, 24 Jul 2015) | 4 lines
      
      Select the highest version of the mingw toolchain found using Generic_GCC::GCCVersion
      similar to the way Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple works.
      ------------------------------------------------------------------------
      
      llvm-svn: 243325
      ba00de65
    • Hans Wennborg's avatar
      Merging r242973: · dc75a9da
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r242973 | hans | 2015-07-22 16:54:51 -0700 (Wed, 22 Jul 2015) | 3 lines
      
      Downgrade error about adding 'dllimport' to used free function to warning (PR24215)
      
      The code will still work as it can reference the function via its thunk.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243320
      dc75a9da
    • Hans Wennborg's avatar
      Merging r243294: · 719f7b1f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243294 | mareko | 2015-07-27 11:16:08 -0700 (Mon, 27 Jul 2015) | 9 lines
      
      AMDGPU: don't match vgpr loads for constant loads
      
      Author: Dave Airlie <airlied@redhat.com>
      
      In order to implement indirect sampler loads, we don't
      want to match on a VGPR load but an SGPR one for constants,
      as we cannot feed VGPRs to the sampler only SGPRs.
      
      this should be applicable for llvm 3.7 as well.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243317
      719f7b1f
    • Hans Wennborg's avatar
      Merging r243263: · 79dde6d4
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243263 | mareko | 2015-07-27 04:37:42 -0700 (Mon, 27 Jul 2015) | 3 lines
      
      AMDGPU/SI: Fix the V_FRACT_F64 SI bug workaround
      
      This is a candidate for 3.7.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243316
      79dde6d4
    • Renato Golin's avatar
      Merging r243262: · ad2319a2
      Renato Golin authored
      Setting ARM dynamic linker name from commandline
      
      Currently trigger to select hard-float linker is only based of -gnueabihf
      appearing in target triplet, but we should also select it when hardfloat
      is requested via cmdline.
      
      Patch by Khem Raj.
      
      llvm-svn: 243299
      ad2319a2
    • Hans Wennborg's avatar
      Merging r243165: · a7981210
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243165 | hans | 2015-07-24 14:24:48 -0700 (Fri, 24 Jul 2015) | 11 lines
      
      LibompMicroTests.cmake: Invoke 'test' instead of using '[ x -eq y ]'
      
      I was getting this cmake error on Mac OS X:
      
        CMake Error: Error in cmake code at
        /tmp/openmp/runtime/cmake/LibompMicroTests.cmake:140:
        Parse error.  Function missing ending ")".  Instead found bad character with text "[".
      
      Perhaps invoking 'test' is less confusing for cmake.
      
      Differential Revision: http://reviews.llvm.org/D11493
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243295
      a7981210
    • Hans Wennborg's avatar
      Merging r243170: · de668477
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243170 | samsonov | 2015-07-24 15:01:07 -0700 (Fri, 24 Jul 2015) | 14 lines
      
      [CMake] Workaround for PR24222: don't fail if we can't target COMPILER_RT_TEST_TARGET_TRIPLE unless it was explicitly set.
      
      Summary:
      Although we assume that we can always target host triple, relax
      this check to avoid failing at configure-time for cases when we are
      not able to correctly infer/verify host triple for some reasons.
      
      See http://llvm.org/bugs/show_bug.cgi?id=24222 for more details.
      
      Reviewers: hans
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D11496
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243278
      de668477
  5. 24 Jul, 2015 2 commits
    • Hans Wennborg's avatar
      [OPENMP] Info in release notes about OpenMP support in clang. · cd18cfd4
      Hans Wennborg authored
      Add info about completion of OpenMP 3.1 + support for some elements of OpenMP 4.0
      
      Patch by Alexey Bataev!
      
      Differential Revision: http://reviews.llvm.org/D11059
      
      llvm-svn: 243164
      cd18cfd4
    • Hans Wennborg's avatar
      Merging r243116: · 5710ae38
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r243116 | hans | 2015-07-24 09:16:09 -0700 (Fri, 24 Jul 2015) | 10 lines
      
      test-release.sh: Defer test errors until the end
      
      This makes the script run to the end and produce tarballs even on test
      failures, and then highlights any errors afterwards.
      
      (I first tried just storing the errors in a global variable, but that
      didn't work as the "test_llvmCore" function invocation is actually
      running as a sub-shell.)
      
      Differential Revision: http://reviews.llvm.org/D11478
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 243117
      5710ae38