Skip to content

Commit 0856623

Browse files
committed
+test -deadcode
1 parent 504b68b commit 0856623

File tree

2 files changed

+29
-6
lines changed

2 files changed

+29
-6
lines changed

llvm/lib/Target/EVM/EVMPeephole.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,7 @@ static bool isNegatedAndJumpedOn(const MachineBasicBlock &MBB,
5454
++I;
5555
if (I == MBB.end())
5656
return false;
57-
if (I->getOpcode() == EVM::PseudoJUMPI)
58-
return true;
59-
if (I->getOpcode() != EVM::PUSH4_S)
60-
return false;
61-
++I;
62-
return I != MBB.end() && I->getOpcode() == EVM::JUMPI;
57+
return I->getOpcode() == EVM::PseudoJUMPI;
6358
}
6459

6560
bool EVMPeephole::optimizeConditionaJumps(MachineBasicBlock &MBB) const {

llvm/test/CodeGen/EVM/brcond.ll

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,3 +423,31 @@ false:
423423
unreachable
424424
}
425425

426+
define void @br_or(i256 %a, i256 %b, i256 %c) {
427+
; CHECK-LABEL: br_or:
428+
; CHECK: ; %bb.0:
429+
; CHECK-NEXT: JUMPDEST
430+
; CHECK-NEXT: SWAP3
431+
; CHECK-NEXT: POP
432+
; CHECK-NEXT: SWAP1
433+
; CHECK-NEXT: DUP3
434+
; CHECK-NEXT: SWAP1
435+
; CHECK-NEXT: EQ
436+
; CHECK-NEXT: ISZERO
437+
; CHECK-NEXT: SWAP2
438+
; CHECK-NEXT: SUB
439+
; CHECK-NEXT: OR
440+
; CHECK-NEXT: PUSH4 @.BB20_2
441+
; CHECK-NEXT: JUMPI
442+
; CHECK-NEXT: ; %bb.1: ; %false
443+
; CHECK-NEXT: .BB20_2: ; %true
444+
; CHECK-NEXT: JUMPDEST
445+
%cond1 = icmp ne i256 %a, %b
446+
%cond2 = icmp ne i256 %a, %c
447+
%cond = or i1 %cond1, %cond2
448+
br i1 %cond, label %true, label %false
449+
false:
450+
unreachable
451+
true:
452+
unreachable
453+
}

0 commit comments

Comments
 (0)