[llvm-branch-commits] [llvm] [GlobalISel] Fix miscompile when narrowing vector load/stores to non-byte-sized types (PR #136739)

2025-04-23 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler updated https://github.com/llvm/llvm-project/pull/136739 >From e88a6e177837b478b4dc20def1b59f193b950965 Mon Sep 17 00:00:00 2001 From: Tobias Stadler Date: Wed, 9 Apr 2025 13:32:02 +0100 Subject: [PATCH 1/2] [GlobalISel] Fix miscompile when narrowing vector lo

[llvm-branch-commits] [llvm] [GlobalISel] Fix miscompile when narrowing vector load/stores to non-byte-sized types (PR #136739)

2025-04-22 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler created https://github.com/llvm/llvm-project/pull/136739 LegalizerHelper::reduceLoadStoreWidth does not work for non-byte-sized types, because this would require (un)packing of bits across byte boundaries. Precommit tests: #134904 >From e88a6e177837b478b4dc20

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-16 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler updated https://github.com/llvm/llvm-project/pull/102167 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-16 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler updated https://github.com/llvm/llvm-project/pull/102167 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-15 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler edited https://github.com/llvm/llvm-project/pull/102163 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-15 Thread Tobias Stadler via llvm-branch-commits
@@ -45,61 +45,190 @@ cl::OptionCategory GICombinerOptionCategory( ); } // end namespace llvm -/// This class acts as the glue the joins the CombinerHelper to the overall +/// This class acts as the glue that joins the CombinerHelper to the overall /// Combine algorithm. The C

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-14 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler updated https://github.com/llvm/llvm-project/pull/102163 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-14 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler updated https://github.com/llvm/llvm-project/pull/102163 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-12 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler updated https://github.com/llvm/llvm-project/pull/102163 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-12 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler updated https://github.com/llvm/llvm-project/pull/102163 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [llvm] [GlobalISel] Don't remove from unfinalized GISelWorkList (PR #102158)

2024-08-11 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler updated https://github.com/llvm/llvm-project/pull/102158 >From 1f5757a4c3989755623d66c43575c858dcb13f75 Mon Sep 17 00:00:00 2001 From: Tobias Stadler Date: Tue, 6 Aug 2024 17:13:59 +0200 Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20change

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler edited https://github.com/llvm/llvm-project/pull/102163 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler edited https://github.com/llvm/llvm-project/pull/102163 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
tobias-stadler wrote: > Is this a fundamental issue of the combiner or do we have to revisit the > situation when the combiner becomes slowly more powerful? This is a fundamental issue of combiner-style algorithms. Fixed-point iteration just burns too much compile-time for no good reason. Both

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler edited https://github.com/llvm/llvm-project/pull/102167 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler edited https://github.com/llvm/llvm-project/pull/102163 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler edited https://github.com/llvm/llvm-project/pull/102167 ___ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
@@ -33,8 +33,7 @@ define noundef i1 @logger(i32 noundef %logLevel, ptr %ea, ptr %pll) { ; CHECK-GI-NEXT:b.hi .LBB1_2 ; CHECK-GI-NEXT: // %bb.1: // %land.rhs ; CHECK-GI-NEXT:ldr x8, [x1] -; CHECK-GI-NEXT:ldrb w8, [x8] -; CHECK-GI-NEXT:and w0, w8, #0x1 +; CHECK-

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
@@ -88,7 +95,8 @@ body: | %cmp2:_(s32) = G_ICMP intpred(sge), %cmp_lhs(s64), %add $w0 = COPY %cmp2(s32) -RET_ReallyLR implicit $w0 +$w1 = COPY %cmp1(s32) tobias-stadler wrote: cmp1 was dead in the input IR, but according to the com

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
@@ -9,6 +9,8 @@ body: | bb.1: ; CHECK-LABEL: name: crash_fn ; CHECK: [[C:%[0-9]+]]:_(p0) = G_CONSTANT i64 0 +; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 0 +; CHECK-NEXT: [[C2:%[0-9]+]]:_(s1) = G_CONSTANT i1 false tobias-st

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
@@ -257,10 +257,10 @@ define i32 @udiv_div_by_180(i32 %x) ; ; GISEL-LABEL: udiv_div_by_180: ; GISEL: // %bb.0: -; GISEL-NEXT:uxtb w8, w0 -; GISEL-NEXT:mov w9, #5826 // =0x16c2 -; GISEL-NEXT:movk w9, #364, lsl #16 -; GISEL-NEXT:umull x8, w8, w9 +; GISEL-NEX

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
tobias-stadler wrote: CTMark O0: ``` Program compile_instructions size..text base-O0 patch-O0 diff base-O0patch-O0 diff 7zip/7zip-benchmark

[llvm-branch-commits] [AArch64][GlobalISel] Disable fixed-point iteration in all Combiners (PR #102167)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler created https://github.com/llvm/llvm-project/pull/102167 Disable fixed-point iteration in all AArch64 Combiners after #102163. See inline comments for justification of test changes. ___ llvm-branch-commits mailing l

[llvm-branch-commits] [GlobalISel] Combiner: Observer-based DCE and retrying of combines (PR #102163)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler created https://github.com/llvm/llvm-project/pull/102163 Continues the work for disabling fixed-point iteration in the Combiner (#94291). This introduces improved Observer-based heuristics in the GISel Combiner to retry combining defs/uses of modified instructi

[llvm-branch-commits] [GlobalISel] Don't remove from unfinalized GISelWorkList (PR #102158)

2024-08-06 Thread Tobias Stadler via llvm-branch-commits
https://github.com/tobias-stadler created https://github.com/llvm/llvm-project/pull/102158 Remove a hack from GISelWorkList caused by the Combiner removing instructions from an unfinalized GISelWorkList during the DCE phase. This is in preparation for larger changes to the WorkListMaintainer.