1. Mar 08, 2024
  2. Mar 07, 2024
    • sylvain-audi's avatar
      [NFC][Asan] Prepare AddressSanitizer to detect inserted runtime calls (#84223) · d6b3be37
      sylvain-audi authored
      This is in preparation for an upcoming commit that will add "funclet"
      OpBundle to the inserted runtime calls where the function's EH
      personality requires it.
      
      See PR https://github.com/llvm/llvm-project/pull/82533
      d6b3be37
    • Joseph Huber's avatar
      [LinkerWrapper] Use the correct empty file on Windows (#84322) · a213df5d
      Joseph Huber authored
      Summary:
      The clang-offload-bundler uses an empty file to control the bundles made
      for embedding. Previously this still used `/dev/null` by mistake even on
      Windows.
      a213df5d
    • Alexey Bataev's avatar
      [SLP]Improve minbitwidth analysis. · 4ce52e2d
      Alexey Bataev authored
      This improves overall analysis for minbitwidth in SLP. It allows to
      analyze the trees with store/insertelement root nodes. Also, instead of
      using single minbitwidth, detected from the very first analysis stage,
      it tries to detect the best one for each trunc/ext subtree in the graph
      and use it for the subtree.
      Results in better code and less vector register pressure.
      
      Metric: size..text
      
      Program                                                                                                                                                size..text
                                                                                                                                                             results     results0    diff
                                                                            test-suite :: SingleSource/Benchmarks/Adobe-C++/simple_types_loop_invariant.test    92549.00    92609.00  0.1%
                                                                                        test-suite :: External/SPEC/CINT2017speed/625.x264_s/625.x264_s.test   663381.00   663493.00  0.0%
                                                                                         test-suite :: External/SPEC/CINT2017rate/525.x264_r/525.x264_r.test   663381.00   663493.00  0.0%
                                                                                                     test-suite :: MultiSource/Benchmarks/Bullet/bullet.test   307182.00   307214.00  0.0%
                                                                                   test-suite :: External/SPEC/CFP2017speed/638.imagick_s/638.imagick_s.test  1394420.00  1394484.00  0.0%
                                                                                    test-suite :: External/SPEC/CFP2017rate/538.imagick_r/538.imagick_r.test  1394420.00  1394484.00  0.0%
                                                                                      test-suite :: External/SPEC/CFP2017rate/510.parest_r/510.parest_r.test  2040257.00  2040273.00  0.0%
      
                                                                                    test-suite :: External/SPEC/CFP2017rate/526.blender_r/526.blender_r.test 12396098.00 12395858.00 -0.0%
                                                                                               test-suite :: External/SPEC/CINT2006/445.gobmk/445.gobmk.test   909944.00   909768.00 -0.0%
      
      SingleSource/Benchmarks/Adobe-C++/simple_types_loop_invariant - 4 scalar
      instructions remain scalar (good).
      Spec2017/x264 - the whole function idct4x4dc is vectorized using <16
      x i16> instead of <16 x i32>, also zext/trunc are removed. In other
      places last vector zext/sext removed and replaced by
      extractelement + scalar zext/sext pair.
      MultiSource/Benchmarks/Bullet/bullet - reduce or <4 x i32> replaced by
      reduce or <4 x i8>
      Spec2017/imagick - Removed extra zext from 2 packs of the operations.
      Spec2017/parest - Removed extra zext, replaced by extractelement+scalar
      zext
      Spec2017/blender - the whole bunch of vector zext/sext replaced by
      extractelement+scalar zext/sext, some extra code vectorized in smaller
      types.
      Spec2006/gobmk - fixed cost estimation, some small code remains scalar.
      
      Reviewers: RKSimon
      
      Pull Request: https://github.com/llvm/llvm-project/pull/84334
      4ce52e2d
    • Michael Maitland's avatar
      Revert "[GISEL] Add IRTranslation for shufflevector on scalable vector types" (#84330) · 552da248
      Michael Maitland authored
      Reverts llvm/llvm-project#80378
      
      causing Buildbot failures that did not show up with check-llvm or CI.
      552da248
    • SahilPatidar's avatar
      [DAG] Fix Failure to reassociate SMAX/SMIN/UMAX/UMIN (#82175) · 9e0f5909
      SahilPatidar authored
      Resolve #58110
      9e0f5909
    • David Spickett's avatar
      [lldb][test][FreeBSD] xfail TestPlatformConnect on AArch64 · 03588a27
      David Spickett authored
      Details in the linked issue. Might fail on other architectures
      but I can't confirm, they can add to this if it does.
      03588a27
    • Jordan Rupprecht's avatar
      [lldb][test] Enforce `pexpect` system availability by default (#84270) · 3239b4dc
      Jordan Rupprecht authored
      This switches the default of `LLDB_TEST_USE_VENDOR_PACKAGES` from `ON`
      to `OFF` in preparation for eventually deleting it. All known LLDB
      buildbots have this package installed, so flipping the default will
      uncover any other users.
      
      If this breaks anything, the preferred fix is to install `pexpect` on
      the host system. The second fix is to build with cmake option
      `-DLLDB_TEST_USE_VENDOR_PACKAGES=ON` as a temporary measure until
      `pexpect` can be installed. If neither of those work, reverting this
      patch is OK.
      3239b4dc
    • Michael Maitland's avatar
      [GISEL] Add IRTranslation for shufflevector on scalable vector types (#80378) · 2b8aaef0
      Michael Maitland authored
      This patch is stacked on
      https://github.com/llvm/llvm-project/pull/80372,
      https://github.com/llvm/llvm-project/pull/80307, and
      https://github.com/llvm/llvm-project/pull/80306.
      
      ShuffleVector on scalable vector types gets IRTranslate'd to
      G_SPLAT_VECTOR since a ShuffleVector that has operates on scalable
      vectors is a splat vector where the value of the splat vector is the 0th
      element of the first operand, because the index mask operand is the
      zeroinitializer (undef and poison are treated as zeroinitializer here).
      This is analogous to what happens in SelectionDAG for ShuffleVector.
      
      `buildSplatVector` is renamed to`buildBuildVectorSplatVector`. I did not
      make this a separate patch because it would cause problems to revert
      that change without reverting this change too.
      2b8aaef0