[llvm] c0ad1b4 - [NewGVN] Fold equivalent freeze instructions
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 9 13:03:34 PDT 2023
Author: Jay Foad
Date: 2023-06-09T20:57:36+01:00
New Revision: c0ad1b459742117990d38186deaeb49e75bb26f3
URL: https://github.com/llvm/llvm-project/commit/c0ad1b459742117990d38186deaeb49e75bb26f3
DIFF: https://github.com/llvm/llvm-project/commit/c0ad1b459742117990d38186deaeb49e75bb26f3.diff
LOG: [NewGVN] Fold equivalent freeze instructions
Differential Revision: https://reviews.llvm.org/D152529
Added:
Modified:
llvm/lib/Transforms/Scalar/NewGVN.cpp
llvm/test/Transforms/NewGVN/freeze.ll
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Scalar/NewGVN.cpp b/llvm/lib/Transforms/Scalar/NewGVN.cpp
index 3de55759ed3a0..12dd161fb788e 100644
--- a/llvm/lib/Transforms/Scalar/NewGVN.cpp
+++ b/llvm/lib/Transforms/Scalar/NewGVN.cpp
@@ -1994,6 +1994,7 @@ NewGVN::performSymbolicEvaluation(Value *V,
break;
case Instruction::BitCast:
case Instruction::AddrSpaceCast:
+ case Instruction::Freeze:
return createExpression(I);
break;
case Instruction::ICmp:
diff --git a/llvm/test/Transforms/NewGVN/freeze.ll b/llvm/test/Transforms/NewGVN/freeze.ll
index d96580f49d9fc..d775736f0f187 100644
--- a/llvm/test/Transforms/NewGVN/freeze.ll
+++ b/llvm/test/Transforms/NewGVN/freeze.ll
@@ -4,9 +4,7 @@
define i1 @f(i1 %a) {
; CHECK-LABEL: @f(
; CHECK-NEXT: [[B:%.*]] = freeze i1 [[A:%.*]]
-; CHECK-NEXT: [[C:%.*]] = freeze i1 [[A]]
-; CHECK-NEXT: [[D:%.*]] = and i1 [[B]], [[C]]
-; CHECK-NEXT: ret i1 [[D]]
+; CHECK-NEXT: ret i1 [[B]]
;
%b = freeze i1 %a
%c = freeze i1 %a
@@ -17,10 +15,9 @@ define i1 @f(i1 %a) {
define void @f_multipleuses(i1 %a) {
; CHECK-LABEL: @f_multipleuses(
; CHECK-NEXT: [[B:%.*]] = freeze i1 [[A:%.*]]
-; CHECK-NEXT: [[C:%.*]] = freeze i1 [[A]]
; CHECK-NEXT: call void @use1(i1 [[B]])
-; CHECK-NEXT: call void @use1(i1 [[C]])
-; CHECK-NEXT: call void @use1(i1 [[C]])
+; CHECK-NEXT: call void @use1(i1 [[B]])
+; CHECK-NEXT: call void @use1(i1 [[B]])
; CHECK-NEXT: ret void
;
%b = freeze i1 %a
More information about the llvm-commits
mailing list