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

  1. 22 Aug, 2018 3 commits
    • Hans Wennborg's avatar
      Merging r339667: · 623c2520
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339667 | theraven | 2018-08-14 12:04:36 +0200 (Tue, 14 Aug 2018) | 11 lines
      
      Add a stub mangling for ObjC selectors in the Microsoft ABI.
      
      This mangling is used only for outlined SEH finally blocks, which have
      internal linkage.
      
      This fixes the failure of CodeGenObjC/2007-04-03-ObjcEH.m on builds with
      expensive checks enabled, on Windows.  This test should probably be
      specifying a triple: it currently picks up whatever the host environment
      is using.  Unfortunately, I have no idea what it is trying to test,
      because it contains no comments and predates Clang having working
      Objective-C IR generation.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340437
      623c2520
    • Hans Wennborg's avatar
      Merging r340406: · 780e7970
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340406 | ericwf | 2018-08-22 15:29:52 +0200 (Wed, 22 Aug 2018) | 12 lines
      
      Attempt to unbreak filesystem tests on certain linux distros.
      
      On some platforms clock_gettime is in librt, which we don't
      link by default when building the tests. However it is required
      by the filesystem tests.
      
      This patch introduces a workaround which links librt whenever
      the filesystem tests are enabled. The workaround should later
      be replaced with a patch that selectively links both libc++fs
      and librt only when building filesystem specific tests. However,
      the way the test configuration is set up right now, this is
      non-trivial.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340419
      780e7970
    • Hans Wennborg's avatar
      Notify pending API removal in the release notes · 7642c02f
      Hans Wennborg authored
      Patch by Stephen Kelly.
      
      Differential Revision: https://reviews.llvm.org/D51069
      
      llvm-svn: 340375
      7642c02f
  2. 21 Aug, 2018 10 commits
    • Hans Wennborg's avatar
      Merging r340303: · 3b7811f6
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340303 | ctopper | 2018-08-21 19:15:33 +0200 (Tue, 21 Aug 2018) | 9 lines
      
      [BypassSlowDivision] Teach bypass slow division not to interfere with div by constant where constants have been constant hoisted, but not moved from their basic block
      
      DAGCombiner doesn't pay attention to whether constants are opaque before doing the div by constant optimization. So BypassSlowDivision shouldn't introduce control flow that would make DAGCombiner unable to see an opaque constant. This can occur when a div and rem of the same constant are used in the same basic block. it will be hoisted, but not leave the block.
      
      Longer term we probably need to look into the X86 immediate cost model used by constant hoisting and maybe not mark div/rem immediates for hoisting at all.
      
      This fixes the case from PR38649.
      
      Differential Revision: https://reviews.llvm.org/D51000
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340359
      3b7811f6
    • Hans Wennborg's avatar
      Merging r339674: · 09ca0cdd
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339674 | aemerson | 2018-08-14 14:04:25 +0200 (Tue, 14 Aug 2018) | 3 lines
      
      [GlobalISel][IRTranslator] Fix a bug in handling repeating struct types during argument lowering.
      
      Differential Revision: https://reviews.llvm.org/D49442
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340358
      09ca0cdd
    • Hans Wennborg's avatar
      Merging r340158: · 9fa66d83
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340158 | s.desmalen | 2018-08-20 11:16:59 +0200 (Mon, 20 Aug 2018) | 16 lines
      
      [AArch64][SVE] Asm: Add SVE System registers
      
      This patch adds system registers for controlling aspects of SVE:
      - ZCR_EL1  (r/w)   visible at EL1 and EL0.
      - ZCR_EL2  (r/w)   visible at EL2 and Non-secure EL1 and EL0.
      - ZCR_EL3  (r/w)   visible at all exception levels.
      
      and a system register identifying SVE:
      - ID_AA64ZFR0_EL1  (r)  SVE Feature identifier.
      
      Reviewers: SjoerdMeijer, samparker, pbarrio, fhahn, javed.absar
      
      Reviewed By: SjoerdMeijer
      
      Differential Revision: https://reviews.llvm.org/D50885
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340355
      9fa66d83
    • Hans Wennborg's avatar
      Merging r340181: · 7a72546f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340181 | abataev | 2018-08-20 18:00:22 +0200 (Mon, 20 Aug 2018) | 7 lines
      
      [OPENMP][BLOCKS]Fix PR38923: reference to a global variable is captured
      by a block.
      
      Added checks for capturing of the variable in the block when trying to
      emit correct address for the variable with the reference type. This
      extra check allows correctly identify the variables that are not
      captured in the block context.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340352
      7a72546f
    • Hans Wennborg's avatar
      Merging r340191: · d8568622
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340191 | abataev | 2018-08-20 20:03:40 +0200 (Mon, 20 Aug 2018) | 6 lines
      
      [OPENMP] Fix crash on the emission of the weak function declaration.
      
      If the function is actually a weak reference, it should not be marked as
      deferred definition as this is only a declaration. Patch adds checks for
      the definitions if they must be emitted. Otherwise, only declaration is
      emitted.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340351
      d8568622
    • Hans Wennborg's avatar
      Merging r339091: · e23b77ca
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339091 | stella.stamenova | 2018-08-07 06:08:46 +0200 (Tue, 07 Aug 2018) | 12 lines
      
      [lit, tests] Fix failing lit test: shtest-format.py
      
      Summary:
      The problem here is that on windows double quotes are used for paths (usually) while single quotes are not. This is not generally a problem for the tests because the lit infrastructure tends to treat both the same. One (and possibly only) exception is when some tests are run in an external shell such as some of the shtest-format tests. In this case on windows the path to python was not created correctly because it had single quotes and the test failed.
      
      This same test is already failing with python 3 which is why our testing missed the new failure. This patch will take care of the immediate failure with python 2 and I'll send a follow up for the python 3 failure.
      
      Reviewers: asmith, zturner
      
      Subscribers: delcypher, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50373
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340349
      e23b77ca
    • Hans Wennborg's avatar
      Merging r339372, r339373, r339374, and r339379 · 9d0c8d3f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339372 | steveire | 2018-08-09 22:05:03 +0200 (Thu, 09 Aug 2018) | 5 lines
      
      Add getBeginLoc API to replace getLocStart
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50346
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r339373 | steveire | 2018-08-09 22:05:18 +0200 (Thu, 09 Aug 2018) | 7 lines
      
      Add getBeginLoc API to replace getStartLoc
      
      Reviewers: teemperor!
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50347
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r339374 | steveire | 2018-08-09 22:05:47 +0200 (Thu, 09 Aug 2018) | 5 lines
      
      Add getEndLoc API to replace getLocEnd
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50348
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r339379 | steveire | 2018-08-09 22:21:09 +0200 (Thu, 09 Aug 2018) | 1 line
      
      Fix build
      ------------------------------------------------------------------------
      
      llvm-svn: 340332
      9d0c8d3f
    • Hans Wennborg's avatar
      Merging r339895 and r339896: · 5396514e
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339895 | niravd | 2018-08-16 18:31:14 +0200 (Thu, 16 Aug 2018) | 13 lines
      
      [MC][X86] Enhance X86 Register expression handling to more closely match GCC.
      
      Allow the comparison of x86 registers in the evaluation of assembler
      directives. This generalizes and simplifies the extension from r334022
      to catch another case found in the Linux kernel.
      
      Reviewers: rnk, void
      
      Reviewed By: rnk
      
      Subscribers: hiraditya, nickdesaulniers, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50795
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r339896 | d0k | 2018-08-16 18:50:23 +0200 (Thu, 16 Aug 2018) | 1 line
      
      [MC] Remove unused variable
      ------------------------------------------------------------------------
      
      llvm-svn: 340329
      5396514e
    • Hans Wennborg's avatar
      Merging r339822: · e71890b6
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339822 | carrot | 2018-08-16 00:08:26 +0200 (Thu, 16 Aug 2018) | 12 lines
      
      
      [CodeGenPrepare] Add BothExtension type to PromotedInsts
      
      This patch fixes PR38125.
      
      Instruction extension types are recorded in PromotedInsts, it can be used later in function canGetThrough. If an instruction has two users with different extension types, it will be inserted into PromotedInsts two times in function promoteOperandForOther. The second one overwrites the first one, and the final extension type is wrong, later causes problem in canGetThrough.
      
      This patch changes the simple bool extension type to 2-bit enum type, add a BothExtension type in addition to zero/sign extension. When an user sees BothExtension for an instruction, it actually knows nothing about how that instruction is extended.
      
      Differential Revision: https://reviews.llvm.org/D49512
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340294
      e71890b6
    • Hans Wennborg's avatar
      Merging r340048: · 72bbf8c5
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r340048 | nico | 2018-08-17 19:19:06 +0200 (Fri, 17 Aug 2018) | 10 lines
      
      Make __shiftleft128 / __shiftright128 real compiler built-ins.
      
      r337619 added __shiftleft128 / __shiftright128 as functions in intrin.h.
      Microsoft's STL plans on using these functions, and they're using intrin0.h
      which just has declarations of built-ins to not pull in the huge intrin.h
      header in the standard library headers. That requires that these functions are
      real built-ins.
      
      https://reviews.llvm.org/D50907
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340289
      72bbf8c5
  3. 17 Aug, 2018 14 commits
    • Reid Kleckner's avatar
      Merging r340101: · 8a2eba80
      Reid Kleckner authored
      ```---------------------------------------------------------------------
      r340101 | rnk | 2018-08-17 15:11:31 -0700 (Fri, 17 Aug 2018) | 14 lines
      
      Don't warn on returning the address of a label from a statement expression
      
      Summary:
      There isn't anything inherently wrong with returning a label from a
      statement expression. In practice, the Linux kernel uses this pattern to
      materialize PCs.
      
      Fixes PR38569
      
      Reviewers: niravd, rsmith, nickdesaulniers
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50805
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340103
      8a2eba80
    • Reid Kleckner's avatar
      Merging r340079: · 786ae53d
      Reid Kleckner authored
      ```---------------------------------------------------------------------
      r340079 | rnk | 2018-08-17 13:59:27 -0700 (Fri, 17 Aug 2018) | 20 lines
      
      [MS] Mangle a hash of the main file path into anonymous namespaces
      
      Summary:
      This is needed to avoid conflicts in mangled names for codeview types in
      anonymous namespaces. In CodeView, types refer to each other typically
      through forward declarations, which contain mangled names. These names
      have to be unique, otherwise the debugger will look up the mangled name
      and find the wrong definition.
      
      Furthermore, ThinLTO will deduplicate the types, and debug info
      verification can fail when the types have the wrong sizes. This is
      PR38608.
      
      Fixes PR38609.
      
      Reviewers: majnemer, inglorion, hans
      
      Subscribers: mehdi_amini, aprantl, JDevlieghere, dexonsmith, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50877
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340087
      786ae53d
    • Hans Wennborg's avatar
      Merging r338841: · 3fd44a10
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r338841 | jmorse | 2018-08-03 12:13:35 +0200 (Fri, 03 Aug 2018) | 11 lines
      
      [Windows FS] Allow moving files in TempFile::keep
      
      In r338216 / D49860 TempFile::keep was extended to allow keeping across
      filesystems. The aim on Windows was to have this happen in rename_internal
      using the existing system API. However, to fix an issue and preserve the
      idea of "renaming" not being a move, put Windows keep-across-filesystem in
      TempFile::keep.
      
      Differential Revision: https://reviews.llvm.org/D50048
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 340030
      3fd44a10
    • Hans Wennborg's avatar
      Merging r339945: · 54989e78
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339945 | ctopper | 2018-08-16 23:54:02 +0200 (Thu, 16 Aug 2018) | 9 lines
      
      [X86] In EFLAGS copy pass, don't emit EXTRACT_SUBREG instructions since we're after peephole
      
      Normally the peephole pass converts EXTRACT_SUBREG to COPY instructions. But we're after peephole so we can't rely on it to clean these up.
      
      To fix this, the eflags pass now emits a COPY with a subreg input.
      
      I also noticed that in 32-bit mode we need to constrain the input to the copy to ensure the subreg is valid. Otherwise we'll fail verify-machineinstrs
      
      Differential Revision: https://reviews.llvm.org/D50656
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339999
      54989e78
    • Hans Wennborg's avatar
      Backport r339704 to 7.0 for PR38598 · 7cea4193
      Hans Wennborg authored
      > Author: abataev
      > Date: Tue Aug 14 11:31:20 2018
      > New Revision: 339704
      >
      > URL: http://llvm.org/viewvc/llvm-project?rev=339704&view=rev
      > Log:
      > [OPENMP] Fix processing of declare target construct.
      >
      > The attribute marked as inheritable since OpenMP 5.0 supports it +
      > additional fixes to support new functionality.
      
      llvm-svn: 339998
      7cea4193
    • Hans Wennborg's avatar
      Merging r339883: · b90baad8
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339883 | hans | 2018-08-16 17:12:12 +0200 (Thu, 16 Aug 2018) | 10 lines
      
      [cmake] Prevent LLVMgold.so from being unloaded on Linux
      
      Extend the fix from D40459 to also apply to modules such as the LLVM
      gold plugin. This is needed because current binutils master (and future
      binutils 2.32) calls dlclose() on bfd plugins as part of a recent fix
      for https://sourceware.org/bugzilla/show_bug.cgi?id=23460.
      
      Patch by Evangelos Foutras!
      
      Differential Revision: https://reviews.llvm.org/D50416
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339993
      b90baad8
    • Hans Wennborg's avatar
      Merging r339816: · 42db5f37
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339816 | marshall | 2018-08-15 23:19:08 +0200 (Wed, 15 Aug 2018) | 1 line
      
      Selectively import timespec_get into namespace std, since some C libraries don't have it. Reviewed as https://reviews.llvm.org/D50799
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339992
      42db5f37
    • Hans Wennborg's avatar
      Merging r339804: · ad568e4f
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339804 | marshall | 2018-08-15 21:27:53 +0200 (Wed, 15 Aug 2018) | 1 line
      
      Mark the at_exit and at_quick_exit tests as unsupported under C++98 an 03, since those calls were introduced in C++11.  They're already guarded by an ifdef in the code, so this is a 'belt-and-suspenders' change.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339991
      ad568e4f
    • Hans Wennborg's avatar
      Merging r339742: · 96148317
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339742 | ldionne | 2018-08-15 02:18:01 +0200 (Wed, 15 Aug 2018) | 11 lines
      
      [libc++] Disable failing C11 feature tests for <cfloat> and <float.h>
      
      Summary:
      Those tests are breaking the test bots. A Bugzilla has been filed to
      make sure those tests are re-enabled: https://bugs.llvm.org/show_bug.cgi?id=38572
      
      Reviewers: mclow.lists, EricWF
      
      Subscribers: krytarowski, christof, dexonsmith, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50748
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339990
      96148317
    • Hans Wennborg's avatar
      Merging r339741: · c558aeea
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339741 | ldionne | 2018-08-15 02:16:41 +0200 (Wed, 15 Aug 2018) | 12 lines
      
      [libc++] Detect C11 features on non-Clang compilers
      
      Summary:
      The macros were inside `#if defined(_LIBCPP_COMPILER_CLANG)`, which means
      we would never detect C11 features on non-Clang compilers. According to
      Marshall Clow, this is not the intended behavior.
      
      Reviewers: mclow.lists, EricWF
      
      Subscribers: krytarowski, christof, dexonsmith, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50748
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339989
      c558aeea
    • Hans Wennborg's avatar
      Merging r339702: · ff0e60f3
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339702 | ldionne | 2018-08-14 20:16:56 +0200 (Tue, 14 Aug 2018) | 11 lines
      
      [libc++] Fix incorrect definition of TEST_HAS_C11_FEATURES
      
      Summary:
      The macro was not defined in C++11 mode when it should have been, at least
      according to how _LIBCPP_HAS_C11_FEATURES is defined.
      
      Reviewers: mclow.lists, EricWF, jfb, dexonsmith
      
      Subscribers: christof, dexonsmith, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50719
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339988
      ff0e60f3
    • Hans Wennborg's avatar
      Merging r339675: · 719997b0
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339675 | ldionne | 2018-08-14 15:29:17 +0200 (Tue, 14 Aug 2018) | 15 lines
      
      [libc++] Add missing #include in C11 features tests
      
      Summary:
      These #includes are quite important, since otherwise any
      
          #if TEST_STD_VER > 14 && defined(TEST_HAS_C11_FEATURES)
      
      checks are always false, and so we don't actually test for C11 support
      in the standard library.
      
      Reviewers: mclow.lists, EricWF
      
      Subscribers: christof, dexonsmith, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50674
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339987
      719997b0
    • Hans Wennborg's avatar
      Merging r339904: · ea525abf
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339904 | maskray | 2018-08-16 19:22:02 +0200 (Thu, 16 Aug 2018) | 11 lines
      
      [ELF] mergeSections: remove non-alive MergeInputSection
      
      Summary: This makes it conform to what the comment says. Otherwise when getErrPlace() is called afterwards, cast<InputSection>(D) will cause incompatible cast as MergeInputSection is not a subclass of InputSection.
      
      Reviewers: ruiu, grimar, espindola, pcc
      
      Reviewed By: grimar
      
      Subscribers: emaste, arichardson, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50742
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339986
      ea525abf
    • Hans Wennborg's avatar
      Merging r339515: · 25fb1ca6
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339515 | d0k | 2018-08-12 13:43:03 +0200 (Sun, 12 Aug 2018) | 4 lines
      
      [InstSimplify] Guard against large shift amounts.
      
      These are always UB, but can happen for large integer inputs. Testing it
      is very fragile as -simplifycfg will nuke the UB top-down.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339985
      25fb1ca6
  4. 16 Aug, 2018 11 commits
    • Hans Wennborg's avatar
      Merging r339874: · 099600fc
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339874 | ldionne | 2018-08-16 14:44:28 +0200 (Thu, 16 Aug 2018) | 25 lines
      
      [libcxx] By default, do not use internal_linkage to hide symbols from the ABI
      
      Summary:
      https://reviews.llvm.org/D49240 led to symbol size problems in Chromium, and
      we expect this may be the case in other projects built in debug mode too.
      Instead, unless users explicitly ask for internal_linkage, we use always_inline
      like we used to.
      
      In the future, when we have a solution that allows us to drop always_inline
      without falling back on internal_linkage, we can replace always_inline by
      that.
      
      Note that this commit introduces a change in contract for existing libc++
      users: by default, libc++ used to guarantee that TUs built with different
      versions of libc++ could be linked together. With the introduction of the
      _LIBCPP_HIDE_FROM_ABI_PER_TU macro, the default behavior is that TUs built
      with different libc++ versions are not guaranteed to link. This is a change
      in contract but not a change in behavior, since the current implementation
      still allows linking TUs built with different libc++ versions together.
      
      Reviewers: EricWF, mclow.lists, dexonsmith, hans, rnk
      
      Subscribers: christof, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D50652
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339882
      099600fc
    • Hans Wennborg's avatar
      Merging r339865: · ada3e3cd
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339865 | yroux | 2018-08-16 13:38:09 +0200 (Thu, 16 Aug 2018) | 7 lines
      
      [libcxxabi] Fix test_exception_address_alignment test for ARM
      
      Check _LIBCXXABI_ARM_EHABI macro instead of libunwind version.
      
      Fixes PR34182
      
      Differential revision: https://reviews.llvm.org/D50170
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339881
      ada3e3cd
    • Hans Wennborg's avatar
      Merging r339769: · 4f88bfa0
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339769 | nemanjai | 2018-08-15 14:58:13 +0200 (Wed, 15 Aug 2018) | 12 lines
      
      [PowerPC] Don't run BV DAG Combine before legalization if it assumes legal types
      
      When trying to combine a DAG that builds a vector out of sign-extensions of
      vector extracts, the code assumes legal input types. Due to that, we have to
      disable this combine prior to legalization.
      In some cases, the DAG will look slightly different after legalization so
      account for that in the matching code.
      
      This is a fix for https://bugs.llvm.org/show_bug.cgi?id=38087
      
      Differential Revision: https://reviews.llvm.org/D49080
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339859
      4f88bfa0
    • Hans Wennborg's avatar
      Merging r339536: · e4f6c94b
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339536 | ctopper | 2018-08-13 08:53:49 +0200 (Mon, 13 Aug 2018) | 3 lines
      
      [SelectionDAG] In PromoteFloatOp_BITCAST, insert a bitcast after the fp_to_fp16 in case the result type isn't a scalar integer.
      
      This is another variation of PR38533. In this case, the result type of the bitcast is legal and 16-bits wide, but not a scalar integer. So we need to emit the convert to i16 and then bitcast it to the true result type. This new bitcast will be further type legalized if necessary.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339857
      e4f6c94b
    • Hans Wennborg's avatar
      Merging r339535: · f273c33c
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339535 | ctopper | 2018-08-13 08:53:47 +0200 (Mon, 13 Aug 2018) | 5 lines
      
      [SelectionDAG] In PromoteIntRes_BITCAST, when the input is TypePromoteFloat, make sure the output type is scalar. For vectors, use a store and load of temporary.
      
      Previously if the result type was a vector, we emitted a FP_TO_FP16 with a vector result type which isn't valid.
      
      This is basically the opposite case of the root cause of PR38533.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339856
      f273c33c
    • Hans Wennborg's avatar
      Merging r339533: · 7b0a6d32
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339533 | ctopper | 2018-08-13 07:26:49 +0200 (Mon, 13 Aug 2018) | 5 lines
      
      [SelectionDAG] In PromoteFloatRes_BITCAST, insert a bitcast before the fp16_to_fp in case the input type isn't an i16.
      
      The bitcast can be further legalized as needed.
      
      Fixes PR38533.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339855
      7b0a6d32
    • Hans Wennborg's avatar
      Merging r339743: · 9dc31a87
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339743 | ldionne | 2018-08-15 02:30:03 +0200 (Wed, 15 Aug 2018) | 14 lines
      
      [libcxx] Fix XFAILs for aligned allocation tests on older OSX versions
      
      Summary:
      Since r338934, Clang emits an error when aligned allocation functions are
      used in conjunction with a system libc++ dylib that does not support those
      functions. This causes some tests to fail when testing against older libc++
      dylibs. This commit marks those tests as UNSUPPORTED, and also documents the
      various reasons for the tests being unsupported.
      
      Reviewers: vsapsai, EricWF
      
      Subscribers: christof, dexonsmith, cfe-commits, mclow.lists, EricWF
      
      Differential Revision: https://reviews.llvm.org/D50341
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339854
      9dc31a87
    • Hans Wennborg's avatar
      Merging r339166: · 8d3b6bcd
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339166 | abataev | 2018-08-07 21:21:05 +0200 (Tue, 07 Aug 2018) | 12 lines
      
      [SLP] Fix insert point for reused extract instructions.
      
      Summary:
      Reworked the previously committed patch to insert shuffles for reused
      extract element instructions in the correct position. Previous logic was
      incorrect, and might lead to the crash with PHIs and EH instructions.
      
      Reviewers: efriedma, javed.absar
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D50143
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339853
      8d3b6bcd
    • Hans Wennborg's avatar
      Merging r339794: · b2177de8
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339794 | dim | 2018-08-15 19:30:32 +0200 (Wed, 15 Aug 2018) | 8 lines
      
      For FreeBSD, don't define _M in nasty_macros.hpp
      
      Because FreeBSD uses _M in its <sys/types.h>, and it is hard to avoid
      including that header, only define _M to NASTY_MACRO for other operating
      systems.  This fixes almost 2000 unexpected test failures.
      
      Discussed with Eric Fiselier.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339852
      b2177de8
    • Hans Wennborg's avatar
      Merging r339603: · 5dfcfbf9
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339603 | abataev | 2018-08-13 21:04:24 +0200 (Mon, 13 Aug 2018) | 4 lines
      
      [OPENMP] Fix emission of the loop doacross constructs.
      
      The number of loops associated with the OpenMP loop constructs should
      not be considered as the number loops to collapse.
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339851
      5dfcfbf9
    • Hans Wennborg's avatar
      Merging r339697: · db1dc2ea
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r339697 | mstorsjo | 2018-08-14 19:33:10 +0200 (Tue, 14 Aug 2018) | 8 lines
      
      [CMake] Fix the LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY option
      
      This option should be available if LIBCXX_ENABLE_SHARED is enabled,
      not LIBCXX_ENABLE_STATIC.
      
      This fixes a typo from SVN r337814.
      
      Differential Revision: https://reviews.llvm.org/D50691
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 339850
      db1dc2ea
  5. 14 Aug, 2018 2 commits