mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-27 18:26:06 +00:00
[NewGVN] Fold equivalent freeze instructions
Differential Revision: https://reviews.llvm.org/D152529
This commit is contained in:
parent
b27b5dcc00
commit
c0ad1b4597
@ -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:
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user