[all-commits] [llvm/llvm-project] 3fb5b1: Revert 24633ea and 760e7d0 "Enable FoldImmediate f...
Jeff Niu via All-commits
all-commits at lists.llvm.org
Tue Oct 24 00:09:02 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 3fb5b18e81d81d675f8ed57372e2f7ad60a1d548
https://github.com/llvm/llvm-project/commit/3fb5b18e81d81d675f8ed57372e2f7ad60a1d548
Author: Mogball <jeff at modular.com>
Date: 2023-10-24 (Tue, 24 Oct 2023)
Changed paths:
M llvm/lib/CodeGen/PeepholeOptimizer.cpp
M llvm/lib/Target/X86/X86InstrInfo.cpp
M llvm/lib/Target/X86/X86InstrInfo.h
M llvm/test/CodeGen/AMDGPU/peephole-fold-imm.mir
M llvm/test/CodeGen/X86/GlobalISel/phi.ll
M llvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
M llvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
M llvm/test/CodeGen/X86/fast-isel-freeze.ll
R llvm/test/CodeGen/X86/foldimmediate-size.ll
R llvm/test/CodeGen/X86/foldimmediate.mir
M llvm/test/CodeGen/X86/pcsections-atomics.ll
R llvm/test/CodeGen/X86/peephole-copy.mir
M llvm/test/CodeGen/X86/physreg-pairs.ll
M llvm/test/CodeGen/X86/popcnt.ll
M llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
M llvm/test/CodeGen/X86/remat-phys-dead.ll
M llvm/test/CodeGen/X86/select_const_i128.ll
M llvm/test/CodeGen/X86/shrink_vmul.ll
M llvm/test/CodeGen/X86/speculative-load-hardening-call-and-ret.ll
M llvm/test/CodeGen/X86/swifterror.ll
M llvm/test/CodeGen/X86/vector-shuffle-combining-avx512bwvl.ll
Log Message:
-----------
Revert 24633ea and 760e7d0 "Enable FoldImmediate for X86"
This reverts commits 24633eac38d46cd4b253ba53258165ee08d886cd
and 760e7d00d142ba85fcf48c00e0acc14a355da7c3.
I have confirmed that these commits are introducing a new crash in the
peephole optimizer. I have minimized a test case, which you can find
below.
```llvmir
; ModuleID = 'bugpoint-reduced-simplified.bc'
source_filename = "/mnt/big/modular/Kernels/mojo/Mogg/MOGG.mojo"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
declare dso_local void @foo({ { ptr, [4 x i64], [4 x i64], i1 }, { ptr, [4 x i64], [4 x i64], i1 } }, { ptr }, { ptr, i64, i8 })
define dso_local void @bad_fn(ptr %0, ptr %1, ptr %2) {
%4 = load i64, ptr null, align 8
%5 = insertvalue [4 x i64] poison, i64 12, 1
%6 = insertvalue [4 x i64] %5, i64 poison, 2
%7 = insertvalue [4 x i64] %6, i64 poison, 3
%8 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } poison, [4 x i64] %7, 1
%9 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } %8, [4 x i64] poison, 2
%10 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } %9, i1 poison, 3
%11 = icmp ne i64 %4, 1
%12 = or i1 false, %11
%13 = select i1 %12, i64 %4, i64 0
%14 = zext i1 %12 to i64
%15 = insertvalue [4 x i64] poison, i64 12, 1
%16 = insertvalue [4 x i64] %15, i64 poison, 2
%17 = insertvalue [4 x i64] %16, i64 %13, 3
%18 = insertvalue [4 x i64] poison, i64 %14, 3
%19 = icmp eq i64 0, 0
%20 = icmp eq i64 0, 0
%21 = icmp eq i64 %13, 0
%22 = and i1 %20, %19
%23 = select i1 %22, i1 %21, i1 false
%24 = select i1 %23, i1 %12, i1 false
%25 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } poison, [4 x i64] %17, 1
%26 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } %25, [4 x i64] %18, 2
%27 = insertvalue { ptr, [4 x i64], [4 x i64], i1 } %26, i1 %24, 3
%28 = insertvalue { { ptr, [4 x i64], [4 x i64], i1 }, { ptr, [4 x i64], [4 x i64], i1 } } undef, { ptr, [4 x i64], [4 x i64], i1 } %10, 0
%29 = insertvalue { { ptr, [4 x i64], [4 x i64], i1 }, { ptr, [4 x i64], [4 x i64], i1 } } %28, { ptr, [4 x i64], [4 x i64], i1 } %27, 1
br label %31
30: ; preds = %3
br label %softmax_pass
31: ; preds = %31
%exitcond.not.i = icmp eq i64 poison, 3
br i1 %exitcond.not.i, label %37, label %31
32: ; preds = %31
br i1 poison, label %34, label %33
33: ; preds = %32
br label %34
34: ; preds = %33, %32
br i1 poison, label %35, label %36
35: ; preds = %34
br label %softmax_pass
36: ; preds = %34
br i1 poison, label %37, label %.critedge.i
37: ; preds = %36
br i1 poison, label %38, label %.critedge.i
38: ; preds = %37
br i1 poison, label %40, label %39
39: ; preds = %38
br label %40
40: ; preds = %39, %38
br i1 poison, label %.lr.ph28.i, label %._crit_edge.i
.lr.ph28.i: ; preds = %40
br label %41
41: ; preds = %51, %.lr.ph28.i
br i1 poison, label %.thread, label %42
42: ; preds = %41
br i1 poison, label %43, label %44
43: ; preds = %42
br label %45
44: ; preds = %42
br label %45
45: ; preds = %44, %43
br i1 poison, label %46, label %.thread
46: ; preds = %45
br label %47
.thread: ; preds = %45, %41
br label %47
47: ; preds = %.thread, %46
br i1 poison, label %51, label %48
48: ; preds = %47
br i1 poison, label %49, label %50
49: ; preds = %48
br label %51
50: ; preds = %48
br label %51
51: ; preds = %50, %49, %47
call void @foo({ { ptr, [4 x i64], [4 x i64], i1 }, { ptr, [4 x i64], [4 x i64], i1 } } %29, { ptr } poison, { ptr, i64, i8 } poison)
br i1 poison, label %._crit_edge.i, label %41
._crit_edge.i: ; preds = %51, %40
br label %softmax_pass
.critedge.i: ; preds = %37, %36
br i1 poison, label %.lr.ph.i, label %softmax_pass
.lr.ph.i: ; preds = %.lr.ph.i, %.critedge.i
store { ptr, [4 x i64], [4 x i64], i1 } %10, ptr poison, align 8
br i1 poison, label %.lr.ph.i, label %softmax_pass
softmax_pass: ; preds = %.lr.ph.i, %.critedge.i, %._crit_edge.i, %35, %30
ret void
}
```
More information about the All-commits
mailing list