1. Oct 03, 2019
    • Jonas Devlieghere's avatar
      [JSON] Use LLVM's library for encoding JSON in GDBRemoteCommunicationServerLLGS · 9beb4567
      Jonas Devlieghere authored
      This patch replaces the LLDB's JSON implementation with the one from
      LLVM in GDBRemoteCommunicationServerLLGS.
      
      Differential revision: https://reviews.llvm.org/D68299
      
      llvm-svn: 373497
      9beb4567
    • Craig Topper's avatar
      [X86] Rewrite to the vXi1 subvector insertion code to not rely on the value of... · 74c7d6be
      Craig Topper authored
      [X86] Rewrite to the vXi1 subvector insertion code to not rely on the value of bits that might be undef
      
      The previous code tried to do a trick where we would extract the subvector from the location we were inserting. Then xor that with the new value. Take the xored value and clear out the bits above the subvector size. Then shift that xored subvector to the insert location. And finally xor that with the original vector. Since the old subvector was used in both xors, this would leave just the new subvector at the inserted location. Since the surrounding bits had been zeroed no other bits of the original vector would be modified.
      
      Unfortunately, if the old subvector came from undef we might aggressively propagate the undef. Then we end up with the XORs not cancelling because they aren't using the same value for the two uses of the old subvector. @bkramer gave me a case that demonstrated this, but we haven't reduced it enough to make it easily readable to see what's happening.
      
      This patch uses a safer, but more costly approach. It isolate the bits above the insertion and bits below the insert point and ORs those together leaving 0 for the insertion location. Then widens the subvector with 0s in the upper bits, shifts it into position with 0s in the lower bits. Then we do another OR.
      
      Differential Revision: https://reviews.llvm.org/D68311
      
      llvm-svn: 373495
      74c7d6be
    • Aditya Kumar's avatar
      Fix: Actually erase remove the elements from AssumeHandles · 0cacf136
      Aditya Kumar authored
      Reviewers: sdmitriev, tejohnson
      
      Reviewed by: tejohnson
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68318
      
      llvm-svn: 373494
      0cacf136
    • Thomas Lively's avatar
      [WebAssembly] Error when using wasm64 for ISel · 5b74c39d
      Thomas Lively authored
      Summary:
      64-bit WebAssembly (wasm64) is not specified and not supported in the
      WebAssembly backend. We do have support for it in clang, however, and
      we would like to keep that support because we expect wasm64 to be
      specified and supported in the future. For now add an error when
      trying to use wasm64 from the backend to minimize user confusion from
      unexplained crashes.
      
      Reviewers: aheejin, dschuff, sunfish
      
      Subscribers: sbc100, jgravelle-google, hiraditya, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68254
      
      llvm-svn: 373493
      5b74c39d
    • GN Sync Bot's avatar
      gn build: Merge r373489 · 9ba60b38
      GN Sync Bot authored
      llvm-svn: 373492
      9ba60b38
    • Piotr Sobczak's avatar
      [AMDGPU] Extend buffer intrinsics with swizzling · 265e94e6
      Piotr Sobczak authored
      Summary:
      Extend cachepolicy operand in the new VMEM buffer intrinsics
      to supply information whether the buffer data is swizzled.
      Also, propagate this information to MIR.
      
      Intrinsics updated:
      int_amdgcn_raw_buffer_load
      int_amdgcn_raw_buffer_load_format
      int_amdgcn_raw_buffer_store
      int_amdgcn_raw_buffer_store_format
      int_amdgcn_raw_tbuffer_load
      int_amdgcn_raw_tbuffer_store
      int_amdgcn_struct_buffer_load
      int_amdgcn_struct_buffer_load_format
      int_amdgcn_struct_buffer_store
      int_amdgcn_struct_buffer_store_format
      int_amdgcn_struct_tbuffer_load
      int_amdgcn_struct_tbuffer_store
      
      Furthermore, disable merging of VMEM buffer instructions
      in SI Load/Store optimizer, if the "swizzled" bit on the instruction
      is on.
      
      The default value of the bit is 0, meaning that data in buffer
      is linear and buffer instructions can be merged.
      
      There is no difference in the generated code with this commit.
      However, in the future it will be expected that front-ends
      use buffer intrinsics with correct "swizzled" bit set.
      
      Reviewers: arsenm, nhaehnle, tpr
      
      Reviewed By: nhaehnle
      
      Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, arphaman, jfb, Petar.Avramovic, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68200
      
      llvm-svn: 373491
      265e94e6
    • Aaron Ballman's avatar
      Add the misc-init-local-variables check. · b879fd05
      Aaron Ballman authored
      This checks finds all primitive type local variables (integers, doubles, pointers) that are declared without an initial value. Includes fixit functionality to initialize said variables with a default value. This is zero for most types and NaN for floating point types. The use of NaNs is copied from the D programming language.
      
      Patch by Jussi Pakkanen.
      
      llvm-svn: 373489
      b879fd05
    • Florian Hahn's avatar
      [Local] Remove unused LazyValueInfo pointer from removeUnreachableBlock. · eb6700b5
      Florian Hahn authored
      There are no users that pass in LazyValueInfo, so we can simplify the
      function a bit.
      
      Reviewers: brzycki, asbirlea, davide
      
      Reviewed By: davide
      
      Differential Revision: https://reviews.llvm.org/D68297
      
      llvm-svn: 373488
      eb6700b5
    • Louis Dionne's avatar
      ef315b53
    • Teresa Johnson's avatar
      [ThinLTO/WPD] Ensure devirtualized targets use promoted symbol when necessary · 077cc3fc
      Teresa Johnson authored
      Summary:
      This fixes a hole in the handling of devirtualized targets that were
      local but need promoting due to devirtualization in another module. We
      were not correctly referencing the promoted symbol in some cases. Make
      sure the code that updates the name also looks at the ExportedGUIDs set
      by utilizing a callback that checks all conditions (the callback
      utilized by the internalization/promotion code).
      
      Reviewers: pcc, davidxl, hiraditya
      
      Subscribers: mehdi_amini, Prazek, inglorion, steven_wu, dexonsmith, dang, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D68159
      
      llvm-svn: 373485
      077cc3fc
    • Simon Pilgrim's avatar
      [CodeGen] Remove unused MachineMemOperand::print wrappers (PR41772) · 49c23908
      Simon Pilgrim authored
      As noted on PR41772, the static analyzer reports that the MachineMemOperand::print partial wrappers set a number of args to null pointers that were then dereferenced in the actual implementation.
      
      It turns out that these wrappers are not being used at all (hence why we're not seeing any crashes), so I'd like to propose we just get rid of them.
      
      Differential Revision: https://reviews.llvm.org/D68208
      
      llvm-svn: 373484
      49c23908
    • Sanjay Patel's avatar
      [SLP] add test for vectorization of different widths (PR28457); NFC · 3f4726b8
      Sanjay Patel authored
      llvm-svn: 373483
      3f4726b8
    • Michal Gorny's avatar
      [llvm] [cmake] Add install targets for missing distribution components · c2c419ca
      Michal Gorny authored
      Add install targets as necessary to include all files normally installed
      in LLVM_DISTRIBUTION_COMPONENTS.  This includes targets for Sphinx docs,
      opt-viewer Python modules and TableGens.
      
      Differential Revision: https://reviews.llvm.org/D68339
      
      llvm-svn: 373482
      c2c419ca
    • Simon Pilgrim's avatar
      LowerExpectIntrinsic handlePhiDef - silence static analyzer dyn_cast<PHINode>... · 91b4085b
      Simon Pilgrim authored
      LowerExpectIntrinsic handlePhiDef - silence static analyzer dyn_cast<PHINode> null dereference warning. NFCI.
      
      The static analyzer is warning about a potential null dereference, but we should be able to use cast<PHINode> directly and if not assert will fire for us.
      
      llvm-svn: 373481
      91b4085b
    • Simon Pilgrim's avatar
      Type - silence static analyzer getAs<> null dereference warnings. NFCI. · 96ab296e
      Simon Pilgrim authored
      The static analyzer is warning about potential null dereferences, but in these cases we should be able to use castAs<> directly and if not assert will fire for us.
      
      llvm-svn: 373480
      96ab296e
  2. Oct 02, 2019