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

  1. 23 Nov, 2019 1 commit
  2. 21 Nov, 2019 5 commits
    • Paul Robinson's avatar
      Merging r373220: · 28c1f51f
      Paul Robinson authored
      ```---------------------------------------------------------------------
      r373220 | probinson | 2019-09-30 08:11:23 -0700 (Mon, 30 Sep 2019) | 12 lines
      
      [SSP] [3/3] cmpxchg and addrspacecast instructions can now
      trigger stack protectors.  Fixes PR42238.
      
      Add test coverage for llvm.memset, as proxy for all llvm.mem*
      intrinsics. There are two issues here: (1) they could be lowered to a
      libc call, which could be intercepted, and do Bad Stuff; (2) with a
      non-constant size, they could overwrite the current stack frame.
      
      The test was mostly written by Matt Arsenault in r363169, which was
      later reverted; I tweaked what he had and added the llvm.memset part.
      
      Differential Revision: https://reviews.llvm.org/D67845
      ```
      
      ---------------------------------------------------------------------
      28c1f51f
    • Paul Robinson's avatar
      Merging r373219: · 76817ab1
      Paul Robinson authored
      ```---------------------------------------------------------------------
      r373219 | probinson | 2019-09-30 08:08:38 -0700 (Mon, 30 Sep 2019) | 3 lines
      
      [SSP] [2/3] Refactor an if/dyn_cast chain to switch on opcode. NFC
      
      Differential Revision: https://reviews.llvm.org/D67844
      ```
      
      ---------------------------------------------------------------------
      76817ab1
    • Paul Robinson's avatar
      Merging r373216: · c1d76f45
      Paul Robinson authored
      ```---------------------------------------------------------------------
      r373216 | probinson | 2019-09-30 08:01:35 -0700 (Mon, 30 Sep 2019) | 7 lines
      
      [SSP] [1/3] Revert "StackProtector: Use PointerMayBeCaptured"
      "Captured" and "relevant to Stack Protector" are not the same thing.
      
      This reverts commit f29366b1.
      aka r363169.
      
      Differential Revision: https://reviews.llvm.org/D67842
      ```
      
      ---------------------------------------------------------------------
      
      To avoid changing the ABI, the VisitedPHIs member from the StackProtector class
      was replaced with a local variable in StackProtector::RequiresStackProtector().
      c1d76f45
    • Michał Górny's avatar
      [lldb] [Python] Build readline override module only on Linux · 6d7bc603
      Michał Górny authored
      Restrict building the readline override to Linux only.  It both does not
      build on *BSD systems, and is largely irrelevant since they default to
      using libedit over readline anyway.  This restores the behavior
      of the old readline override that also was built only on Linux.
      
      Differential Revision: https://reviews.llvm.org/D69846
      
      (cherry picked from commit df3ae1eb)
      6d7bc603
    • serge-sans-paille's avatar
      Revert and patch "[Python] Remove readline module" · 186c848d
      serge-sans-paille authored
      Fix https://bugs.llvm.org/show_bug.cgi?id=43830 while avoiding polluting the
      global Python namespace.
      
      This both reverts r357277 to rebundle a version of Python's readline module
      based on libedit.
      
      However, this patch also provides two improvements over the previous
      implementation:
      
      1. use PyMem_RawMalloc instead of PyMem_Malloc, as expected by PyOS_Readline
         (prevents to segfault upon exit of interactive session)
      2. patch the readline module upon embedded interpreter loading, instead of
         patching it globally, which should prevent any side effect on other
         modules/packages
      3. only activate the patched module if libedit is actually linked in lldb
      
      Differential Revision: https://reviews.llvm.org/D69793
      
      (cherry picked from commit 9357b5d0)
      186c848d
  3. 20 Nov, 2019 5 commits
    • Wei Mi's avatar
      Merging r370547: · d1f4d6a4
      Wei Mi authored
      ```---------------------------------------------------------------------
      r370547 | wmi | 2019-08-30 16:01:22 -0700 (Fri, 30 Aug 2019) | 24 lines
      
      [GVN] Verify value equality before doing phi translation for call instruction
      
      This is an updated version of https://reviews.llvm.org/D66909 to fix PR42605.
      
      Basically, current phi translatation translates an old value number to an new
      value number for a call instruction based on the literal equality of call
      expression, without verifying there is no clobber in between. This is incorrect.
      
      To get a finegrain check, use MachineDependence analysis to do the job. However,
      this is still not ideal. Although given a call instruction,
      `MemoryDependenceResults::getCallDependencyFrom` returns identical call
      instructions without clobber in between using MemDepResult with its DepType to
      be `Def`. However, identical is too strict here and we want it to be relaxed a
      little to consider phi-translation -- callee is the same, param operands can be
      different. That means changing the semantic of `MemDepResult::Def` and I don't
      know the potential impact.
      
      So currently the patch is still conservative to only handle
      MemDepResult::NonFuncLocal, which means the current call has no function local
      clobber. If there is clobber, even if the clobber doesn't stand in between the
      current call and the call with the new value, we won't do phi-translate.
      
      Differential Revision: https://reviews.llvm.org/D67013
      ```
      
      ---------------------------------------------------------------------
      d1f4d6a4
    • Aaron Puchert's avatar
      Merging r373148: · e5b24939
      Aaron Puchert authored
      ```---------------------------------------------------------------------
      r373148 | aaronpuchert | 2019-09-28 06:28:50 -0700 (Sat, 28 Sep 2019) | 9 lines
      
      Don't install example analyzer plugins
      
      Summary: Fixes PR43430.
      
      Reviewers: hintonda, NoQ, Szelethus, lebedev.ri
      
      Reviewed By: lebedev.ri
      
      Differential Revision: https://reviews.llvm.org/D68172
      ```
      
      ---------------------------------------------------------------------
      e5b24939
    • Thomas Lively's avatar
      [WebAssembly] Fix miscompile of select with and · 7185aa61
      Thomas Lively authored
      Summary:
      Rolls back the remaining bad optimizations introduced in
      eb15d001. Some of them were already rolled back in e661f946 and
      this finishes the job.
      
      Fixes https://bugs.llvm.org/show_bug.cgi?id=44012.
      
      Reviewers: dschuff, aheejin
      
      Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D70347
      
      (cherry picked from commit 194d7ec0)
      7185aa61
    • Tom Stellard's avatar
      GitHub Actions: Pull source code from current repo when dumping the ABI · 5bb85aee
      Tom Stellard authored
      This makes it possible for this step to work during pull requests.
      5bb85aee
    • Tom Stellard's avatar
      GitHub Actions: Only run tests on pushes to release/** branches · d24c8dde
      Tom Stellard authored
      This prevents the tests from being run twice on pull requests
      since pull requests first require creating a new branch (which was
      also triggering CI runs).
      d24c8dde
  4. 19 Nov, 2019 1 commit
    • Fangrui Song's avatar
      Merging r367981: · 0f34f1b9
      Fangrui Song authored
      ```---------------------------------------------------------------------
      r367981 | maskray | 2019-08-05 23:25:32 -0700 (Mon, 05 Aug 2019) | 27 lines
      
      [Driver] Prioritize SYSROOT/usr/include over RESOURCE_DIR/include on linux-musl
      
      On a musl-based Linux distribution, stdalign.h stdarg.h stdbool.h stddef.h stdint.h stdnoreturn.h are expected to be provided by musl (/usr/include), instead of RESOURCE_DIR/include.
      Reorder RESOURCE_DIR/include to fix the search order problem.
      (Currently musl doesn't provide stdatomic.h. stdatomic.h is still found in RESOURCE_DIR/include.)
      
      gcc on musl has a similar search order:
      
      ```
       /usr/lib/gcc/x86_64-alpine-linux-musl/8.3.0/../../../../include/c++/8.3.0
       /usr/lib/gcc/x86_64-alpine-linux-musl/8.3.0/../../../../include/c++/8.3.0/x86_64-alpine-linux-musl
       /usr/lib/gcc/x86_64-alpine-linux-musl/8.3.0/../../../../include/c++/8.3.0/backward
       /usr/local/include
       /usr/include/fortify
       /usr/include
       /usr/lib/gcc/x86_64-alpine-linux-musl/8.3.0/include
      ```
      
      This is different from a glibc-based distribution where RESOURCE_DIR/include is placed before SYSROOT/usr/include.
      
      According to the maintainer of musl:
      
      > musl does not support use/mixing of compiler-provided std headers with its headers, and intentionally has no mechanism for communicating with such headers as to which types have already been defined or still need to be defined. If the current include order, with clang's headers before the libc ones, works in some situations, it's only by accident.
      
      Reviewed by: phosek
      
      Differential Revision: https://reviews.llvm.org/D65699
      ```
      
      ---------------------------------------------------------------------
      0f34f1b9
  5. 18 Nov, 2019 2 commits
  6. 16 Nov, 2019 1 commit
    • Sam Elliott's avatar
      Merging r375403: · 8af4ee9f
      Sam Elliott authored
      ```---------------------------------------------------------------------
      r375403 | lenary | 2019-10-21 03:00:34 -0700 (Mon, 21 Oct 2019) | 30 lines
      
      [MemCpyOpt] Fixing Incorrect Code Motion while Handling Aggregate Type Values
      
      Summary:
      When MemCpyOpt is handling aggregate type values, if an instruction (let's call it P) between the targeting load (L) and store (S) clobbers the source pointer of L, it will try to hoist S before P. This process will also hoist S's data dependency instructions.
      
      However, the current implementation has a bug that if one of S's dependency instructions is //also// a user of P, MemCpyOpt will not prevent it from being hoisted above P and cause a use-before-define error. For example, in the newly added test file (i.e. `aggregate-type-crash.ll`), it will try to hoist both `store %my_struct %1, %my_struct* %3` and its dependent, `%3 = bitcast i8* %2 to %my_struct*`, above `%2 = call i8* @my_malloc(%my_struct* %0)`. Creating the following BB:
      ```
      entry:
        %1 = bitcast i8* %4 to %my_struct*
        %2 = bitcast %my_struct* %1 to i8*
        %3 = bitcast %my_struct* %0 to i8*
        call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %2, i8* align 4 %3, i64 8, i1 false)
        %4 = call i8* @my_malloc(%my_struct* %0)
        ret void
      ```
      Where there is a use-before-define error between `%1` and `%4`.
      
      Update: The compiler for the Pony Programming Language [also encounter the same bug](https://github.com/ponylang/ponyc/issues/3140)
      
      Patch by Min-Yih Hsu (myhsu)
      
      Reviewers: eugenis, pcc, dblaikie, dneilson, t.p.northover, lattner
      
      Reviewed By: eugenis
      
      Subscribers: lenary, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66060
      ```
      
      ---------------------------------------------------------------------
      8af4ee9f
  7. 15 Nov, 2019 2 commits
  8. 13 Nov, 2019 6 commits
    • Amy Huang's avatar
      Fix merge issues in b288f7d6 · 840845a1
      Amy Huang authored
      840845a1
    • Amy Huang's avatar
      [codeview] Fix for PR43479 · b288f7d6
      Amy Huang authored
      Summary:
      Add instruction marker to MachineInstr ExtraInfo. This does almost the
      same thing as Pre/PostInstrSymbols, except that it doesn't create a label until
      printing instructions. This allows for labels to be put around instructions that
      are deleted/duplicated somewhere.
      Use this marker to track heap alloc site call instructions.
      
      Reviewers: rnk
      
      Subscribers: MatzeB, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D69536
      
      cherry picked from 74204304 with some
      modifications.
      b288f7d6
    • Leonard Chan's avatar
      [Sema] Add MacroQualified case for FunctionTypeUnwrapper · bc6d0f15
      Leonard Chan authored
      This is a fix for PR43315. An assertion error is hit for this minimal example:
      
      ```
      //clang -cc1 -triple x86_64-- -S tstVMStructRC-min.cpp
      int (a b)();  // Assertion `Chunk.Kind == DeclaratorChunk::Function' failed.
      ```
      
      This is because we do not cover the case in the FunctionTypeUnwrapper where it
      receives a MacroQualifiedType. We have not run into this earlier because this
      is a unique case where the __attribute__ contains both __cdecl__ and
      __regparm__ (in that order), and we are compiling for x86_64. Changing the
      architecture or the order of __cdecl__ and __regparm__ does not raise the
      assertion.
      
      Differential Revision: https://reviews.llvm.org/D67992
      
      (cherry picked from commit e278c138)
      bc6d0f15
    • Michal Gorny's avatar
      Merging r371733: · 2cec4d08
      Michal Gorny authored
      ```---------------------------------------------------------------------
      r371733 | mgorny | 2019-09-12 06:06:12 -0700 (Thu, 12 Sep 2019) | 7 lines
      
      [clang] [unittest] Import LLVMTestingSupport if necessary
      
      Add LLVMTestingSupport directory from LLVM_MAIN_SRC_DIR when building
      clang stand-alone and LLVMTestingSupport library is not present.  This
      is needed to fix stand-alone builds without clang-tools-extra.
      
      Differential Revision: https://reviews.llvm.org/D67452
      ```
      
      ---------------------------------------------------------------------
      2cec4d08
    • Craig Topper's avatar
      Merging r373397: · 933cfc66
      Craig Topper authored
      ```---------------------------------------------------------------------
      r373397 | ctopper | 2019-10-01 14:55:55 -0700 (Tue, 01 Oct 2019) | 8 lines
      
      [X86] convertToThreeAddress, make sure second operand of SUB32ri is really an immediate before calling getImm().
      
      It might be a symbol instead. We can't fold those since we can't
      negate them.
      
      Similar for other SUB with immediates.
      
      Fixes PR43529.
      ```
      
      ---------------------------------------------------------------------
      933cfc66
    • Hans Wennborg's avatar
      Merging r373049: · 28726b90
      Hans Wennborg authored
      ```---------------------------------------------------------------------
      r373049 | hans | 2019-09-27 01:14:45 -0700 (Fri, 27 Sep 2019) | 4 lines
      
      Fix the 'directory' field in DumpCompilationDatabase and add test
      
      This broke in r371027 due to a missing negation
      (llvm::sys::fs::current_path returns false on success).
      ```
      
      ---------------------------------------------------------------------
      28726b90
  9. 12 Nov, 2019 4 commits
    • Muhammad Omair Javaid's avatar
      Revert "Fix lookup of symbols at the same address with no size vs. size" · 5ab44f3e
      Muhammad Omair Javaid authored
      This reverts commit 3f594ed1.
      
      This change has cause LLDB expression evaluation to fail on Arm Linux.
      
      Differential Revision: https://reviews.llvm.org/D63540
      
      (cherry picked from commit a6c40f56)
      5ab44f3e
    • Sanjay Patel's avatar
      Merging r372886: · 7a140f4a
      Sanjay Patel authored
      ```---------------------------------------------------------------------
      r372886 | spatel | 2019-09-25 08:08:33 -0700 (Wed, 25 Sep 2019) | 7 lines
      
      [DAGCombiner] add one-use restriction to vector transform with cheap extract
      
      We might be able to do better on the example in the test,
      but in general, we should not scalarize a splatted vector
      binop if there are other uses of the binop. Otherwise, we
      can end up with code as we had - a scalar op that is
      redundant with a vector op.
      ```
      
      ---------------------------------------------------------------------
      7a140f4a
    • Sanjay Patel's avatar
      Merging r372883: · 07c14222
      Sanjay Patel authored
      ```---------------------------------------------------------------------
      r372883 | spatel | 2019-09-25 07:57:45 -0700 (Wed, 25 Sep 2019) | 1 line
      
      [x86] add test for multi-use scalarization of vector binop; NFC
      ```
      
      ---------------------------------------------------------------------
      07c14222
    • Amara Emerson's avatar
      Merging r372675: · 0acab01d
      Amara Emerson authored
      ```---------------------------------------------------------------------
      r372675 | aemerson | 2019-09-23 17:09:23 -0700 (Mon, 23 Sep 2019) | 7 lines
      
      [GlobalISel][IRTranslator] Fix switch table lowering to use signed LE not unsigned.
      
      We were miscompiling switch value comparisons with the wrong signedness, which
      shows up when we have things like switch case values with i1 types, which end up
      being legalized incorrectly.
      
      Fixes PR43383
      ```
      
      ---------------------------------------------------------------------
      0acab01d
  10. 08 Nov, 2019 8 commits
    • Jian Cai's avatar
      Merging r372038: · 4e858e4a
      Jian Cai authored
      ```---------------------------------------------------------------------
      r372038 | jcai19 | 2019-09-16 14:47:47 -0700 (Mon, 16 Sep 2019) | 15 lines
      
      [compiler-rt][crt]  make test case nontrivial in check_cxx_section_exists
      
      Summary:
      .init_array gets optimized away when building with -O2 and as a result,
      check_cxx_section_exists failed to pass -DCOMPILER_RT_HAS_INITFINI_ARRAY
      when building crtbegin.o and crtend.o, which causes binaries linked with
      them encounter segmentation fault. See https://crbug.com/855759 for
      details. This change prevents .init_array section to be optimized away
      even with -O2 or higher optimization level.
      
      Subscribers: dberris, mgorny, #sanitizers, llvm-commits
      
      Tags: #sanitizers, #llvm
      
      Differential Revision: https://reviews.llvm.org/D67628
      ```
      
      ---------------------------------------------------------------------
      4e858e4a
    • Simon Atanasyan's avatar
      Merging r374598: · 8b0167fd
      Simon Atanasyan authored
      ```---------------------------------------------------------------------
      r374598 | atanasyan | 2019-10-11 14:51:33 -0700 (Fri, 11 Oct 2019) | 12 lines
      
      [mips] Store 64-bit `li.d' operand as a single 8-byte value
      
      Now assembler generates two consecutive `.4byte` directives to store
      64-bit `li.d' operand. The first directive stores high 4-byte of the
      value. The second directive stores low 4-byte of the value. But on
      64-bit system we load this value at once and get wrong result if the
      system is little-endian.
      
      This patch fixes the bug. It stores the `li.d' operand as a single
      8-byte value.
      
      Differential Revision: https://reviews.llvm.org/D68778
      ```
      
      ---------------------------------------------------------------------
      8b0167fd
    • Sam Clegg's avatar
      Merging r375077: · 6851dcc0
      Sam Clegg authored
      ```---------------------------------------------------------------------
      r375077 | sbc | 2019-10-16 20:21:02 -0700 (Wed, 16 Oct 2019) | 10 lines
      
      [lld][WebAssembly] Fix for weak references to data symbols in archives
      
      Fix a bug where were not handling relocations against weakly undefined
      data symbol.  Add a test for this case.  Also ensure that the weak
      references to data symbols are not pulled in from archive files by
      default (but are if `-u <name>` is added to the command line).
      
      Fixes: PR43696
      
      Differential Revision: https://reviews.llvm.org/D69073
      ```
      
      ---------------------------------------------------------------------
      6851dcc0
    • Simon Atanasyan's avatar
      Merging r374544 and r374548: · 94970749
      Simon Atanasyan authored
      ```---------------------------------------------------------------------
      r374544 | atanasyan | 2019-10-11 05:33:12 -0700 (Fri, 11 Oct 2019) | 12 lines
      
      [mips] Fix loading "double" immediate into a GPR and FPR
      
      If a "double" (64-bit) value has zero low 32-bits, it's possible to load
      such value into a GP/FP registers as an instruction immediate. But now
      assembler loads only high 32-bits of the value.
      
      For example, if a target register is GPR the `li.d $4, 1.0` instruction
      converts into the `lui $4, 16368` one. As a result, we get `0x3FF00000`
      in the register. While a correct representation of the `1.0` value is
      `0x3FF0000000000000`. The patch fixes that.
      
      Differential Revision: https://reviews.llvm.org/D68776
      ```
      
      ---------------------------------------------------------------------
      
      ------------------------------------------------------------------------
      r374548 | atanasyan | 2019-10-11 05:58:37 -0700 (Fri, 11 Oct 2019) | 1 line
      
      [mips] Follow-up to r374544. Fix test case.
      ------------------------------------------------------------------------
      94970749
    • Simon Atanasyan's avatar
      Merging r374165: · 74232111
      Simon Atanasyan authored
      ```---------------------------------------------------------------------
      r374165 | atanasyan | 2019-10-09 06:12:27 -0700 (Wed, 09 Oct 2019) | 1 line
      
      [mips] Rename local variable. NFC
      ```
      
      ---------------------------------------------------------------------
      74232111
    • Simon Atanasyan's avatar
      Merging r374164: · af1f5f7d
      Simon Atanasyan authored
      ```---------------------------------------------------------------------
      r374164 | atanasyan | 2019-10-09 06:12:21 -0700 (Wed, 09 Oct 2019) | 8 lines
      
      [mips] Split expandLoadImmReal into multiple methods. NFC
      
      The `expandLoadImmReal` handles four different and almost non-overlapping
      cases: loading a "single" float immediate into a GPR, loading a "single"
      float immediate into a FPR, and the same couple for a "double" float
      immediate.
      
      It's better to move each `else if` branch into separate methods.
      ```
      
      ---------------------------------------------------------------------
      af1f5f7d
    • James Henderson's avatar
      [llvm-objcopy] Preserve .ARM.attributes section when stripping files · 2c69f984
      James Henderson authored
      This works around a bug in Debian's patchset for glibc. The bug is
      described in detail in the upstream debian bug:
      https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943798, but the short
      version of it is that glibc on any Debian based distro don't load
      libraries unless it has a .ARM.attribute section.
      
      Reviewed by: jhenderson, rupprecht, MaskRay, jakehehrlich
      
      Differential Revision: https://reviews.llvm.org/D69188
      
      Patch by Tobias Hieta.
      
      (cherry picked from commit fb4a5501)
      2c69f984
    • Austin Kerbow's avatar
      Merging r375265: · 64bc08ac
      Austin Kerbow authored
      ```---------------------------------------------------------------------
      r375265 | kerbowa | 2019-10-18 11:20:30 -0700 (Fri, 18 Oct 2019) | 13 lines
      
      AMDGPU: Fix SMEM WAR hazard for gfx10 readlane
      
      Summary: Hazard recognizer fails to see hazard with V_READLANE_B32_gfx10.
      
      Reviewers: rampitec
      
      Reviewed By: rampitec
      
      Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D69172
      ```
      
      ---------------------------------------------------------------------
      64bc08ac
  11. 07 Nov, 2019 1 commit
    • Sam Clegg's avatar
      Merging r368310: · cf231596
      Sam Clegg authored
      ```---------------------------------------------------------------------
      r368310 | sbc | 2019-08-08 09:58:36 -0700 (Thu, 08 Aug 2019) | 11 lines
      
      [lld][WebAssembly] Add optional symbols after input file handling
      
      This allows undefined references in input files be resolved by the
      optional symbols.  Previously we were doing this before input file
      reading which means it was working only for command line symbols
      references (i.e. -u or --export).
      
      Also use addOptionalDataSymbol for __dso_handle and make all optional
      symbols hidden by default.
      
      Differential Revision: https://reviews.llvm.org/D65920
      ```
      
      ---------------------------------------------------------------------
      cf231596
  12. 05 Nov, 2019 1 commit
    • Pengfei Wang's avatar
      [WinEH] Allocate space in funclets stack to save XMM CSRs · 9a9b6492
      Pengfei Wang authored
      Summary:
      This is an alternate approach to D63396
      
      Currently funclets reuse the same stack slots that are used in the
      parent function for saving callee-saved xmm registers. If the parent
      function modifies a callee-saved xmm register before an excpetion is
      thrown, the catch handler will overwrite the original saved value.
      
      This patch allocates space in funclets stack for saving callee-saved xmm
      registers and uses RSP instead RBP to access memory.
      Signed-off-by: default avatarPengfei Wang <pengfei.wang@intel.com>
      
      Reviewers: rnk, RKSimon, craig.topper, annita.zhang, LuoYuanke, andrew.w.kaylor
      
      Subscribers: hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D66596Signed-off-by: default avatarPengfei Wang <pengfei.wang@intel.com>
      llvm-svn: 370005
      (cherry picked from commit 564fb58a)
      9a9b6492
  13. 30 Oct, 2019 1 commit
    • Reid Kleckner's avatar
      [MS] Fix constexpr data member pointer conversions · 2d75b245
      Reid Kleckner authored
      Constexpr data member conversions work by starting with the class that
      originally introduced the field, and converting from there to the type
      that the user desires. Before this change, Clang was using the
      inheritance model from the final destination class type instead of the
      model from the class that originally introduced the field. To fix this,
      find the relevant FieldDecl and take its parent class instead of using
      the member pointer type the user provided.
      
      Indirect field decls require some special handling to find the parent
      class.
      
      Fixes PR43803
      
      (cherry picked from commit 07ee46d6)
      2d75b245
  14. 28 Oct, 2019 1 commit
    • Reid Kleckner's avatar
      [codeview] Workaround for PR43479, don't re-emit instr labels · a4b77f5f
      Reid Kleckner authored
      Summary:
      In the long run we should come up with another mechanism for marking
      call instructions as heap allocation sites, and remove this workaround.
      For now, we've had two bug reports about this, so let's apply this
      workaround. SLH (the other client of instruction labels) probably has
      the same bug, but the solution there is more likely to be to mark the
      call instruction as not duplicatable, which doesn't work for debug info.
      
      Reviewers: akhuang
      
      Subscribers: aprantl, hiraditya, aganea, chandlerc, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D69068
      
      llvm-svn: 375137
      (cherry picked from commit fc69ad09)
      a4b77f5f
  15. 15 Oct, 2019 1 commit
    • Tom Stellard's avatar
      Merging r372188: · 1c4b5a8d
      Tom Stellard authored
      ```---------------------------------------------------------------------
      r372188 | meinersbur | 2019-09-17 15:59:43 -0700 (Tue, 17 Sep 2019) | 13 lines
      
      [CodeGen] Handle outlining of CopyStmts.
      
      Since the removal of extensions nodes from schedule trees in r362257 it
      is possible to emit parallel code for SCoPs containing
      matrix-multiplications. However, the code looking for references used in
      outlined statement was not prepared to handle CopyStmts introduced by
      the matrix-matrix multiplication detection.
      
      In this case, CopyStmts do not introduce references in addition to the
      ones captured by MemoryAccesses, i.e. we change the assertion to accept
      CopyStmts and add a regression test for this case.
      
      This fixes llvm.org/PR43164
      ```
      
      ---------------------------------------------------------------------
      
      llvm-svn: 374861
      1c4b5a8d