1. Feb 20, 2019
    • Hans Wennborg's avatar
      ReleaseNotes: initial ppc support in llvm-exegesis · d6e87c2d
      Hans Wennborg authored
      llvm-svn: 354448
      d6e87c2d
    • Hans Wennborg's avatar
      Merging r354422: · 5decb133
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354422 | tstellar | 2019-02-20 02:40:35 +0100 (Wed, 20 Feb 2019) | 11 lines
      
      ELF: Fix typo in --build-id option description
      
      Reviewers: ruiu, espindola
      
      Reviewed By: ruiu
      
      Subscribers: emaste, arichardson, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D58265
      ------------------------------------------------------------------------
      
      llvm-svn: 354440
      5decb133
  2. Feb 19, 2019
  3. Feb 18, 2019
    • Hans Wennborg's avatar
      Merging r354034 and r354117: · cc3d3f1f
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354034 | rksimon | 2019-02-14 15:45:32 +0100 (Thu, 14 Feb 2019) | 1 line
      
      [X86][AVX] Add PR40730 test case
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r354117 | rksimon | 2019-02-15 12:39:21 +0100 (Fri, 15 Feb 2019) | 9 lines
      
      [X86][AVX] lowerShuffleAsLanePermuteAndPermute - fully populate the lane shuffle mask (PR40730)
      
      As detailed on PR40730, we are not correctly filling in the lane shuffle mask (D53148/rL344446) - we fill in for the correct src lane but don't add it to the correct mask element, so any reference to the correct element is likely to see an UNDEF mask index.
      
      This allows constant folding to propagate UNDEFs prior to the lane mask being (correctly) lowered to vperm2f128.
      
      This patch fixes the issue by fully populating the lane shuffle mask - this is more than is necessary (if we only filled in the required mask elements we might be able to match other shuffle instructions - broadcasts etc.), but its the most cautious approach as this needs to be cherrypicked into the 8.0.0 release branch.
      
      Differential Revision: https://reviews.llvm.org/D58237
      ------------------------------------------------------------------------
      
      llvm-svn: 354260
      cc3d3f1f
    • Hans Wennborg's avatar
      Merging r353907: · 60514070
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353907 | rnk | 2019-02-13 02:39:32 +0100 (Wed, 13 Feb 2019) | 6 lines
      
      [MC] Make symbol version errors non-fatal
      
      We stil don't have a source location, which is pretty lame, but at least
      we won't tell the user to file a clang bug report anymore.
      
      Fixes PR40712
      ------------------------------------------------------------------------
      
      llvm-svn: 354257
      60514070
    • Hans Wennborg's avatar
      Merging r354122: · 81bd9dbd
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354122 | mgorny | 2019-02-15 13:13:02 +0100 (Fri, 15 Feb 2019) | 10 lines
      
      [lldb] [MainLoop] Add kevent() EINTR handling
      
      Add missing EINTR handling for kevent() calls.  If the call is
      interrupted, return from Poll() as if zero events were returned and let
      the polling resume on next iteration.  This fixes test flakiness
      on NetBSD.
      
      Includes a test case suggested by Pavel Labath on D42206.
      
      Differential Revision: https://reviews.llvm.org/D58230
      ------------------------------------------------------------------------
      
      llvm-svn: 354255
      81bd9dbd
    • Hans Wennborg's avatar
      Merging r354029: · 096ef4c9
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354029 | mgorny | 2019-02-14 14:52:31 +0100 (Thu, 14 Feb 2019) | 7 lines
      
      [lldb] [MainLoop] Report errno for failed kevent()
      
      Modify the kevent() error reporting to use errno rather than returning
      the return value.  At least on FreeBSD and NetBSD, kevent() always
      returns -1 in case of error, and the actual error is returned via errno.
      
      Differential Revision: https://reviews.llvm.org/D58229
      ------------------------------------------------------------------------
      
      llvm-svn: 354254
      096ef4c9
    • Hans Wennborg's avatar
      Merging r353642: · 46fbca35
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353642 | teemperor | 2019-02-10 16:23:58 +0100 (Sun, 10 Feb 2019) | 13 lines
      
      lldb: Fix compilation on OpenBSD
      
      Summary: Update the OpenBSD Host.cpp for the new SetFile() function signature. Fixes compiling lldb on OpenBSD.
      
      Reviewers: krytarowski
      
      Reviewed By: krytarowski
      
      Subscribers: lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D57907
      ------------------------------------------------------------------------
      
      llvm-svn: 354253
      46fbca35
    • Hans Wennborg's avatar
      Merging r354144: · 783fd931
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354144 | spatel | 2019-02-15 17:31:55 +0100 (Fri, 15 Feb 2019) | 3 lines
      
      [InstCombine] fix crash while trying to narrow a binop of shuffles (PR40734)
      
      https://bugs.llvm.org/show_bug.cgi?id=40734
      ------------------------------------------------------------------------
      
      llvm-svn: 354252
      783fd931
    • Hans Wennborg's avatar
      Merging r354128 and r354131: · 25c79d97
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354128 | courbet | 2019-02-15 13:58:06 +0100 (Fri, 15 Feb 2019) | 1 line
      
      [MergeICmps][NFC] Improve doc.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r354131 | courbet | 2019-02-15 15:17:17 +0100 (Fri, 15 Feb 2019) | 15 lines
      
      [MergeICmps] Make base ordering really deterministic.
      
      Summary:
      The idea is that we now manipulate bases through a `unsigned BaseID` based on
      order of appearance in the comparison chain rather than through the `Value*`.
      
      Fixes 40714.
      
      Reviewers: gchatelet
      
      Subscribers: mgrang, jfb, jdoerfert, llvm-commits, hans
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D58274
      ------------------------------------------------------------------------
      
      llvm-svn: 354249
      25c79d97
    • Hans Wennborg's avatar
      Merging r354147: · 07a74394
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354147 | jfb | 2019-02-15 18:26:29 +0100 (Fri, 15 Feb 2019) | 27 lines
      
      Variable auto-init of blocks capturing self after init bugfix
      
      Summary:
      Blocks that capture themselves (and escape) after initialization currently codegen wrong because this:
      
        bool capturedByInit =
            Init && emission.IsEscapingByRef && isCapturedBy(D, Init);
      
        Address Loc =
            capturedByInit ? emission.Addr : emission.getObjectAddress(*this);
      
      Already adjusts Loc from thr alloca to a GEP. This code:
      
          if (emission.IsEscapingByRef)
            Loc = emitBlockByrefAddress(Loc, &D, /*follow=*/false);
      
      Was trying to do the same adjustment, and a GEP on a GEP (returning an int) triggers an assertion.
      
      <rdar://problem/47943027>
      
      Reviewers: ahatanak
      
      Subscribers: jkorous, dexonsmith, cfe-commits, rjmccall
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D58218
      ------------------------------------------------------------------------
      
      llvm-svn: 354248
      07a74394
    • Hans Wennborg's avatar
      Merging r354035: · a7da36bd
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354035 | brunoricci | 2019-02-14 16:43:17 +0100 (Thu, 14 Feb 2019) | 23 lines
      
      [Sema] Fix a regression introduced in "[AST][Sema] Remove CallExpr::setNumArgs"
      
      D54902 removed CallExpr::setNumArgs in preparation of tail-allocating the
      arguments of CallExpr. It did this by allocating storage for
      max(number of arguments, number of parameters in the prototype). The
      temporarily nulled arguments however causes issues in BuildResolvedCallExpr
      when typo correction is done just after the creation of the call expression.
      
      This was unfortunately missed by the tests /:
      
      To fix this, delay setting the number of arguments to
      max(number of arguments, number of parameters in the prototype) until we are
      ready for it. It would be nice to have this encapsulated in CallExpr but this
      is the best I can come up with under the constraint that we cannot add
      anything the CallExpr.
      
      Fixes PR40286.
      
      Differential Revision: https://reviews.llvm.org/D57948
      
      Reviewed By: aaron.ballman
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 354247
      a7da36bd
  4. Feb 15, 2019
    • Hans Wennborg's avatar
      Merging r353943: · 80159280
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353943 | baloghadamsoftware | 2019-02-13 13:25:47 +0100 (Wed, 13 Feb 2019) | 22 lines
      
      [Analyzer] Crash fix for FindLastStoreBRVisitor
      
      FindLastStoreBRVisitor tries to find the first node in the exploded graph where
      the current value was assigned to a region. This node is called the "store
      site". It is identified by a pair of Pred and Succ nodes where Succ already has
      the binding for the value while Pred does not have it. However the visitor
      mistakenly identifies a node pair as the store site where the value is a
      `LazyCompoundVal` and `Pred` does not have a store yet but `Succ` has it. In
      this case the `LazyCompoundVal` is different in the `Pred` node because it also
      contains the store which is different in the two nodes. This error may lead to
      crashes (a declaration is cast to a parameter declaration without check) or
      misleading bug path notes.
      
      In this patch we fix this problem by checking for unequal `LazyCompoundVals`: if
      their region is equal, and their store is the same as the store of their nodes
      we consider them as equal when looking for the "store site". This is an
      approximation because we do not check for differences of the subvalues
      (structure members or array elements) in the stores.
      
      Differential Revision: https://reviews.llvm.org/D58067
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 354130
      80159280
    • Hans Wennborg's avatar
      Merging r354074: · ff290924
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r354074 | epilk | 2019-02-14 23:48:01 +0100 (Thu, 14 Feb 2019) | 9 lines
      
      [Sema] Fix-up a -Wfloat-conversion diagnostic
      
      We were warning on valid ObjC property reference exprs, and passing
      in the wrong arguments to DiagnoseFloatingImpCast (leading to a badly
      worded diagnostic).
      
      rdar://47644670
      
      Differential revision: https://reviews.llvm.org/D58145
      ------------------------------------------------------------------------
      
      llvm-svn: 354129
      ff290924
  5. Feb 14, 2019
    • Hans Wennborg's avatar
      Merging r353968: · 11521347
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353968 | ruiu | 2019-02-13 19:51:15 +0100 (Wed, 13 Feb 2019) | 10 lines
      
      Recover elf32-bigmips and elf32-powerpc support in LLD
      
      This fixes a 7.0 -> 8.0 regression when parsing
      OUTPUT_FORMAT("elf32-powerpc"); or elf32-bigmips directive in ldscripts
      as well as an unknown emulation error when lld is invoked by clang due
      to missed elf32ppclinux case.
      
      Patch by vit9696
      
      Differential Revision: https://reviews.llvm.org/D58005
      ------------------------------------------------------------------------
      
      llvm-svn: 354016
      11521347
    • Hans Wennborg's avatar
      Merging r353976: · c957a992
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353976 | epilk | 2019-02-13 21:32:37 +0100 (Wed, 13 Feb 2019) | 11 lines
      
      [Sema] Delay checking whether objc_designated_initializer is being applied to an init method
      
      This fixes a regression that was caused by r335084, which reversed
      the order that attributes are applied. objc_method_family can change
      whether a method is an init method, so the order that these
      attributes are applied matters. The commit fixes this by delaying the
      init check until after all attributes have been applied.
      
      rdar://47829358
      
      Differential revision: https://reviews.llvm.org/D58152
      ------------------------------------------------------------------------
      
      llvm-svn: 354015
      c957a992
  6. Feb 13, 2019
    • Hans Wennborg's avatar
      Revert r350404 · 6e3c4d58
      Hans Wennborg authored
      This caused https://bugs.llvm.org/show_bug.cgi?id=40642:
      "After 350404, clang drops volatile load"
      
      > Refactor the way we handle diagnosing unused expression results.
      >
      > Rather than sprinkle calls to DiagnoseUnusedExprResult() around in places
      > where we want diagnostics, we now diagnose unused expression statements and
      > full expressions in a more generic way when acting on the final expression
      > statement. This results in more appropriate diagnostics for [[nodiscard]] where
      > we were previously lacking them, such as when the body of a for loop is not a
      > compound statement.
      >
      > This patch fixes PR39837.
      
      llvm-svn: 353935
      6e3c4d58
    • Hans Wennborg's avatar
      Merging r352707, r352714, r352886, r352892, r352895, r352908, r352917,... · be8c9e3e
      Hans Wennborg authored
      Merging r352707, r352714, r352886, r352892, r352895, r352908, r352917, r352935, r353213, r353733, and r353758
      
      ------------------------------------------------------------------------
      r352707 | evandro | 2019-01-31 01:49:27 +0100 (Thu, 31 Jan 2019) | 1 line
      
      [InstCombine] Simplify check clauses in test (NFC)
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r352714 | evandro | 2019-01-31 02:41:39 +0100 (Thu, 31 Jan 2019) | 3 lines
      
      [InstCombine] Expand testing for Windows (NFC)
      
      Added the checks to the existing cases when the target is Win64.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r352886 | evandro | 2019-02-01 17:57:53 +0100 (Fri, 01 Feb 2019) | 1 line
      
      [InstCombine] Refactor test checks (NFC)
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r352892 | evandro | 2019-02-01 18:39:48 +0100 (Fri, 01 Feb 2019) | 3 lines
      
      [InstCombine] Expand Windows test (NFC)
      
      Add checks for Win64 to existing cases.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r352895 | evandro | 2019-02-01 19:34:20 +0100 (Fri, 01 Feb 2019) | 1 line
      
      [InstCombine] Refactor test checks (NFC)
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r352908 | evandro | 2019-02-01 21:42:03 +0100 (Fri, 01 Feb 2019) | 3 lines
      
      [InstCombine] Expand Windows test (NFC)
      
      Run checks for Win64 as well.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r352917 | evandro | 2019-02-01 22:14:10 +0100 (Fri, 01 Feb 2019) | 3 lines
      
      [InstCombine] Expand Windows test (NFC)
      
      Run checks for Win32 as well.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r352935 | evandro | 2019-02-01 23:52:05 +0100 (Fri, 01 Feb 2019) | 1 line
      
      [InstCombine] Refactor test checks (NFC)
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353213 | evandro | 2019-02-05 21:24:21 +0100 (Tue, 05 Feb 2019) | 3 lines
      
      [TargetLibraryInfo] Regroup run time functions for Windows (NFC)
      
      Regroup supported and unsupported functions by precision and C standard.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353733 | evandro | 2019-02-11 20:02:28 +0100 (Mon, 11 Feb 2019) | 8 lines
      
      [TargetLibraryInfo] Update run time support for Windows
      
      It seems that the run time for Windows has changed and supports more math
      functions than it used to, especially on AArch64, ARM, and AMD64.
      
      Fixes PR40541.
      
      Differential revision: https://reviews.llvm.org/D57625
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353758 | evandro | 2019-02-11 23:12:01 +0100 (Mon, 11 Feb 2019) | 6 lines
      
      [TargetLibraryInfo] Update run time support for Windows
      
      It seems that, since VC19, the `float` C99 math functions are supported for all
      targets, unlike the C89 ones.
      
      According to the discussion at https://reviews.llvm.org/D57625.
      ------------------------------------------------------------------------
      
      llvm-svn: 353934
      be8c9e3e
  7. Feb 12, 2019
    • Hans Wennborg's avatar
      [WebAssembly] Backport custom import name changes for LLVM to 8.0. · 33a2b521
      Hans Wennborg authored
      Specifically, this backports r352479, r352931, r353474, and r353476
      to the 8.0 branch. The trunk patches don't apply cleanly to 8.0 due to
      some contemporaneous mass-rename and mass-clang-tidy patches, so
      this merges them to simplify rebasing.
      
      r352479 [WebAssembly] Re-enable main-function signature rewriting
      r352931 [WebAssembly] Add codegen support for the import_field attribute
      r353474 [WebAssembly] Fix imported function symbol names that differ from their import names in the .o format
      r353476 [WebAssembly] Update test output after rL353474. NFC.
      
      By Dan Gohman!
      
      llvm-svn: 353835
      33a2b521
    • Hans Wennborg's avatar
      [WebAssembly] Backport custom import name changes for clang to 8.0. · 16b7c087
      Hans Wennborg authored
      Specifically, this backports r352106, r352108, r352930, and r352936
      to the 8.0 branch. The trunk patches don't apply cleanly to 8.0 due to
      some contemporaneous mass-rename and mass-clang-tidy patches, so
      this merges them to simplify rebasing.
      
      r352106 [WebAssembly] Add an import_module function attribute
      r352108 [WebAssembly] Add WebAssemblyImportModule to pragma-attribute-supported-attributes-list.test
      r352930 [WebAssembly] Add an import_field function attribute
      r352936 [WebAssembly] Fix ImportName's position in this test.
      
      By Dan Gohman!
      
      llvm-svn: 353834
      16b7c087
    • Hans Wennborg's avatar
      [WebAssembly] Backport custom import name changes for lld to 8.0. · ef182d5f
      Hans Wennborg authored
      Specifically, this backports r352645, r352828, and r353473 to the
      8.0 branch. The trunk patches don't apply cleanly to 8.0 due to
      some contemporaneous mass-rename and mass-clang-tidy patches, so
      this merges them to simplify rebasing.
      
      r352645 [WebAssembly] Fix crash with LTO + relocatable + undefined symbols
      r352828 [WebAssembly] Support imports from custom module names
      r353473 [WebAssembly] Fix imported function symbol names that differ from their import names in the .o format
      
      By Dan Gohman!
      
      llvm-svn: 353833
      ef182d5f
    • Hans Wennborg's avatar
      Merging r353656: · 33e25307
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353656 | brad | 2019-02-11 03:53:16 +0100 (Mon, 11 Feb 2019) | 4 lines
      
      long double is double on OpenBSD/NetBSD/PPC.
      
      Patch by George Koehler.
      
      ------------------------------------------------------------------------
      
      llvm-svn: 353831
      33e25307
    • Hans Wennborg's avatar
      Merging r351322: · ae61627a
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r351322 | pfaffe | 2019-01-16 12:14:07 +0100 (Wed, 16 Jan 2019) | 9 lines
      
      [MSan] Apply the ctor creation scheme of TSan
      
      Summary: To avoid adding an extern function to the global ctors list, apply the changes of D56538 also to MSan.
      
      Reviewers: chandlerc, vitalybuka, fedor.sergeev, leonardchan
      
      Subscribers: hiraditya, bollu, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D56734
      ------------------------------------------------------------------------
      
      llvm-svn: 353830
      ae61627a
    • Hans Wennborg's avatar
      Merging r353402: · a576b44d
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353402 | mstorsjo | 2019-02-07 13:46:49 +0100 (Thu, 07 Feb 2019) | 7 lines
      
      [clang-cl] support /Oy- on aarch64
      
      MSVC supports /Oy- on aarch64, so clang-cl should too.
      
      Patch by Nathan Froyd!
      
      Differential Revision: https://reviews.llvm.org/D57838
      ------------------------------------------------------------------------
      
      llvm-svn: 353829
      a576b44d
    • Hans Wennborg's avatar
      Merging r353493: · eb0faeb1
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353493 | efriedma | 2019-02-08 02:17:49 +0100 (Fri, 08 Feb 2019) | 9 lines
      
      [COFF, ARM64] Fix types for _ReadStatusReg, _WriteStatusReg
      
      r344765 added those intrinsics, but used the wrong types.
      
      Patch by Mike Hommey
      
      Differential Revision: https://reviews.llvm.org/D57636
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 353828
      eb0faeb1
    • Hans Wennborg's avatar
      Merging r353480: · dfde9d6b
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353480 | petarj | 2019-02-07 23:57:33 +0100 (Thu, 07 Feb 2019) | 15 lines
      
      [mips][micromips] Fix how values in .gcc_except_table are calculated
      
      When a landing pad is calculated in a program that is compiled for micromips
      with -fPIC flag, it will point to an even address.
      Such an error will cause a segmentation fault, as the instructions in
      micromips are aligned on odd addresses. This patch sets the last bit of the
      offset where a landing pad is, to 1, which will effectively be an odd
      address and point to the instruction exactly.
      
      r344591 fixed this issue for -static compilation.
      
      Patch by Aleksandar Beserminji.
      
      Differential Revision: https://reviews.llvm.org/D57677
      
      ------------------------------------------------------------------------
      
      llvm-svn: 353827
      dfde9d6b
    • Hans Wennborg's avatar
      Merging r353431: · e57cf6c5
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353431 | stulova | 2019-02-07 18:32:37 +0100 (Thu, 07 Feb 2019) | 9 lines
      
      [OpenCL][PR40603] In C++ preserve compatibility with OpenCL C v2.0
      
      Valid OpenCL C code should still compile in C++ mode.
      
      This change enables extensions and OpenCL types.
      
      Differential Revision: https://reviews.llvm.org/D57824
      
      
      ------------------------------------------------------------------------
      
      llvm-svn: 353826
      e57cf6c5
    • Hans Wennborg's avatar
      Merging r353411: · df368fd7
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353411 | erichkeane | 2019-02-07 16:14:11 +0100 (Thu, 07 Feb 2019) | 7 lines
      
      Fix r350643 to limit COFF emission to <= 32 BYTES instead of BITS.
      
      The patch in r350643 incorrectly sets the COFF emission based on bits
      instead of bytes. This patch converts the 32 via CharUnits to bits to
      compare the correct values.
      
      Change-Id: Icf38a16470ad5ae3531374969c033557ddb0d323
      ------------------------------------------------------------------------
      
      llvm-svn: 353825
      df368fd7
    • Hans Wennborg's avatar
      Merging r353308 and r353383: · 2ccd8c10
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353308 | tnorthover | 2019-02-06 16:26:35 +0100 (Wed, 06 Feb 2019) | 5 lines
      
      AArch64: enforce even/odd register pairs for CASP instructions.
      
      ARMv8.1a CASP instructions need the first of the pair to be an even register
      (otherwise the encoding is unallocated). We enforced this during assembly, but
      not CodeGen before.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353383 | tnorthover | 2019-02-07 11:35:34 +0100 (Thu, 07 Feb 2019) | 4 lines
      
      AArch64: implement copy for paired GPR registers.
      
      When doing 128-bit atomics using CASP we might need to copy a GPRPair to a
      different register, but that was unimplemented up to now.
      ------------------------------------------------------------------------
      
      llvm-svn: 353822
      2ccd8c10
    • Hans Wennborg's avatar
      Merging r353142: · e5523662
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353142 | ctopper | 2019-02-05 07:13:14 +0100 (Tue, 05 Feb 2019) | 13 lines
      
      [X86] Change MS inline asm clobber list filter to check for 'fpsr' instead of 'fpsw' after D57641.
      
      Summary: The backend used to print the x87 FPSW register as 'fpsw', but gcc inline asm uses 'fpsr'. After D57641, the backend now uses 'fpsr' to match.
      
      Reviewers: rnk
      
      Reviewed By: rnk
      
      Subscribers: eraman, cfe-commits, llvm-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D57642
      ------------------------------------------------------------------------
      
      llvm-svn: 353819
      e5523662
    • Hans Wennborg's avatar
      Merging r352607 r352608 r353015 r353061 r353138 r353141 r353334 r353489 · 018cd5fd
      Hans Wennborg authored
      And re-generate expectations for a test:
      $ utils/update_llc_test_checks.py --llc-binary ../build.release/bin/llc test/CodeGen/X86/x87-schedule.ll
      
      Will also merge cfe r353142 for a clang-side test.
      
      This merge was requested in PR40667.
      
      
      ------------------------------------------------------------------------
      r352607 | ctopper | 2019-01-30 08:08:44 +0100 (Wed, 30 Jan 2019) | 1 line
      
      [X86] Add FPSW as a Def on some FP instructions that were missing it.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r352608 | ctopper | 2019-01-30 08:33:24 +0100 (Wed, 30 Jan 2019) | 5 lines
      
      [X86] Remove a couple places where we unnecessarily pass 0 to the EmitPriority of some FP instruction aliases. NFC
      
      As far as I can tell we already won't emit these aliases due to an operand count check in the tablegen code. Removing these because I couldn't make sense of the inconsistency between fadd and fmul from reading the code.
      
      I checked the AsmMatcher and AsmWriter files before and after this change and there were no differences.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353015 | ctopper | 2019-02-04 05:15:10 +0100 (Mon, 04 Feb 2019) | 3 lines
      
      [X86] Print %st(0) as %st when its implicit to the instruction. Continue printing it as %st(0) when its encoded in the instruction.
      
      This is a step back from the change I made in r352985. This appears to be more consistent with gcc and objdump behavior.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353061 | ctopper | 2019-02-04 18:28:18 +0100 (Mon, 04 Feb 2019) | 5 lines
      
      [X86] Print all register forms of x87 fadd/fsub/fdiv/fmul as having two arguments where on is %st.
      
      All of these instructions consume one encoded register and the other register is %st. They either write the result to %st or the encoded register. Previously we printed both arguments when the encoded register was written. And we printed one argument when the result was written to %st. For the stack popping forms the encoded register is always the destination and we didn't print both operands. This was inconsistent with gcc and objdump and just makes the output assembly code harder to read.
      
      This patch changes things to always print both operands making us consistent with gcc and objdump. The parser should still be able to handle the single register forms just as it did before. This also matches the GNU assembler behavior.
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353138 | ctopper | 2019-02-05 05:48:23 +0100 (Tue, 05 Feb 2019) | 1 line
      
      [X86] Add test case from PR40529. NFC
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353141 | ctopper | 2019-02-05 07:13:06 +0100 (Tue, 05 Feb 2019) | 16 lines
      
      [X86] Connect the default fpsr and dirflag clobbers in inline assembly to the registers we have defined for them.
      
      Summary:
      We don't currently map these constraints to physical register numbers so they don't make it to the MachineIR representation of inline assembly.
      
      This could have problems for proper dependency tracking in the machine schedulers though I don't have a test case that shows that.
      
      Reviewers: rnk
      
      Reviewed By: rnk
      
      Subscribers: eraman, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D57641
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353334 | ctopper | 2019-02-06 20:50:59 +0100 (Wed, 06 Feb 2019) | 1 line
      
      [X86] Change the CPU on the test case for pr40529.ll to really show the bug. NFC
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353489 | ctopper | 2019-02-08 01:44:39 +0100 (Fri, 08 Feb 2019) | 14 lines
      
      [X86] Add FPCW as a register and start using it as an implicit use on floating point instructions.
      
      Summary:
      FPCW contains the rounding mode control which we manipulate to implement fp to integer conversion by changing the roudning mode, storing the value to the stack, and then changing the rounding mode back. Because we didn't model FPCW and its dependency chain, other instructions could be scheduled into the middle of the sequence.
      
      This patch introduces the register and adds it as an implciit def of FLDCW and implicit use of the FP binary arithmetic instructions and store instructions. There are more instructions that need to be updated, but this is a good start. I believe this fixes at least the reduced test case from PR40529.
      
      Reviewers: RKSimon, spatel, rnk, efriedma, andrew.w.kaylor
      
      Subscribers: dim, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D57735
      ------------------------------------------------------------------------
      
      llvm-svn: 353818
      018cd5fd
    • Hans Wennborg's avatar
      Merging r353551 and r353809: · 75ff7d07
      Hans Wennborg authored
      Also removed the text about Clang 9.
      
      ------------------------------------------------------------------------
      r353551 | metzman | 2019-02-08 20:35:04 +0100 (Fri, 08 Feb 2019) | 13 lines
      
      Document libFuzzer on Windows.
      
      Summary:
      Document that libFuzzer supports Windows, how to get it,
      and its limitations.
      
      Reviewers: kcc, morehouse, rnk, metzman
      
      Reviewed By: kcc, rnk, metzman
      
      Subscribers: hans, rnk
      
      Differential Revision: https://reviews.llvm.org/D57597
      ------------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r353809 | hans | 2019-02-12 10:08:52 +0100 (Tue, 12 Feb 2019) | 1 line
      
      LibFuzzer.rst: double backticks
      ------------------------------------------------------------------------
      
      llvm-svn: 353811
      75ff7d07
    • Hans Wennborg's avatar
      ReleaseNotes about the toolchain version cmake check · 0cbe0b9f
      Hans Wennborg authored
      Based on text from JF!
      
      llvm-svn: 353808
      0cbe0b9f
    • Hans Wennborg's avatar
      Merging r353495: · e055d7ff
      Hans Wennborg authored
      ------------------------------------------------------------------------
      r353495 | jfb | 2019-02-08 02:29:17 +0100 (Fri, 08 Feb 2019) | 32 lines
      
      Variable auto-init: fix __block initialization
      
      Summary:
      Automatic initialization [1] of __block variables was trampling over the block's
      headers after they'd been initialized, which caused self-init usage to crash,
      such as here:
      
        typedef struct XYZ { void (^block)(); } *xyz_t;
        __attribute__((noinline))
        xyz_t create(void (^block)()) {
          xyz_t myself = malloc(sizeof(struct XYZ));
          myself->block = block;
          return myself;
        }
        int main() {
          __block xyz_t captured = create(^(){ (void)captured; });
        }
      
      This type of code shouldn't be broken by variable auto-init, even if it's
      sketchy.
      
      [1] With -ftrivial-auto-var-init=pattern
      
      <rdar://problem/47798396>
      
      Reviewers: rjmccall, pcc, kcc
      
      Subscribers: jkorous, dexonsmith, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D57797
      ------------------------------------------------------------------------
      
      llvm-svn: 353807
      e055d7ff