1. Sep 25, 2021
    • Albion Fung's avatar
      [PowerPC][NFC] Add test case in preparation for codegen change · 3678df5a
      Albion Fung authored
      This test case tests doubles inserted into vector ints,
      and help make apparent the optimizations a future patch
      will make.
      3678df5a
    • liuke's avatar
      Fix wrong FixIt about union in cppcoreguidelines-pro-type-member-init · e4902480
      liuke authored
      At most one variant member of a union may have a default member
      initializer. The case of anonymous records with multiple levels of
      nesting like the following also needs to meet this rule. The original
      logic is to horizontally obtain all the member variables in a record
      that need to be initialized and then filter to the variables that need
      to be fixed. Obviously, it is impossible to correctly initialize the
      desired variables according to the nesting relationship.
      
      See Example 3 in class.union
      
      union U {
        U() {}
        int x;  // int x{};
        union {
          int k;  // int k{};  <==  wrong fix
        };
        union {
          int z;  // int z{};  <== wrong fix
          int y;
        };
      };
      e4902480
    • Erich Keane's avatar
      Write test for CWG1772/CWG1762/CWG1779, mark them 'done', and update · 8dd42ffc
      Erich Keane authored
      cxx_dr_status.html
      
      I noticed that these two DRs are currently working correctly, so I
      added a pair of lit tests that check the AST (which is most useful for
      CWG1779, since 'dependent' is really only observable in an ast dump) to
      make sure __func__ works correctly in dependent cases, and in lambda
      operator().
      
      Also noticed that CWG1762, mostly an 'example' change, works correctly,
      so added a test so that it gets marked 'done' as well.
      
      Additionally, I regenerated cxx_dr_status.html, updating it for Clang
      13's release, based on the cwg_status.html from August 12, 2021.
      
      Differential Revision: https://reviews.llvm.org/D109956
      8dd42ffc
    • Victor Huang's avatar
      [PowerPC] Mark splat immediate instructions as rematerializable · 6e1aaf18
      Victor Huang authored
      This patch marks splat immediate instructions XXSPLTIW and XXSPLTIDP as
      rematerializable to prevent MachineLICM from moving them out of loops.
      
      Reviewed By: lei, amy
      
      Differential revision: https://reviews.llvm.org/D108823
      6e1aaf18
    • Hans Wennborg's avatar
      Re-apply "[JumpThreading] Ignore free instructions" · 1e9afab8
      Hans Wennborg authored
      It seems the crashes we saw wasn't caused by this (see comments on the review).
      
      > This is basically D108837 but for jump threading. Free instructions
      > should be ignored for the threading decision. JumpThreading already
      > skips some free instructions (like pointer bitcasts), but does not
      > skip various free intrinsics -- in fact, it currently gives them a
      > fairly large cost of 2.
      >
      > Differential Revision: https://reviews.llvm.org/D110290
      
      This reverts commit 4604695d.
      1e9afab8
    • Valentin Clement's avatar
      321be24a
    • Stanislav Mekhanoshin's avatar
      [AMDGPU] Always reserve flat scratch SGPR for architected flat scratch · 082e22f3
      Stanislav Mekhanoshin authored
      With architected flat scratch it becomes readonly. We must always
      reserve SGPR pair for it even if we do not use scratch at all since
      an attempt to write to SGPRs mapped to FLAT_SCRATCH results in
      memory violation.
      
      This is not needed since GFX10 with architected flat scratch though
      since special SGPRs are not carving space from normal SGPRs.
      
      Differential Revision: https://reviews.llvm.org/D110376
      082e22f3
    • Alex Zinenko's avatar
      [mlir] Linalg: ensure tile-and-pad always creates padding as requested · 5988a3b7
      Alex Zinenko authored
      Initially, the padding transformation and the related operation were only used
      to guarantee static shapes of subtensors in tiled operations. The
      transformation would not insert the padding operation if the shapes were
      already static, and the overall code generation would actively remove such
      "noop" pads. However, this transformation can be also used to pack data into
      smaller tensors and marshall them into faster memory, regardless of the size
      mismatches. In context of expert-driven transformation, we should assume that,
      if padding is requested, a potentially padded tensor must be always created.
      Update the transformation accordingly. To do this, introduce an optional
      `packing` attribute to the `pad_tensor` op that serves as an indication that
      the padding is an intentional choice (as opposed to side effect of type
      normalization) and should be left alone by cleanups.
      
      Reviewed By: nicolasvasilache
      
      Differential Revision: https://reviews.llvm.org/D110425
      5988a3b7
    • Quinn Pham's avatar
      [PowerPC] Add range check for vec_genpcvm builtins · 3b0240e6
      Quinn Pham authored
      This patch adds range checking for some Power10 altivec builtins. Range
      checking is done in SemaChecking.
      
      Reviewed By: #powerpc, lei, Conanap
      
      Differential Revision: https://reviews.llvm.org/D109780
      3b0240e6
    • Florian Hahn's avatar
      Recommit "[DSE] Track earliest escape, use for loads in isReadClobber." · 6f28fb70
      Florian Hahn authored
      This reverts the revert commit df56fc6e.
      
      This version of the patch adjusts the location where the EarliestEscapes
      cache is cleared when an instruction gets removed. The earliest escaping
      instruction does not have to be a memory instruction.
      
      It could be a ptrtoint instruction like in the added test
      @earliest_escape_ptrtoint, which subsequently gets removed. We need to
      invalidate the EarliestEscape entry referring to the ptrtoint when
      deleting it.
      
      This fixes the crash mentioned in
      https://bugs.chromium.org/p/chromium/issues/detail?id=1252762#c6
      6f28fb70
  2. Sep 24, 2021