mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-22 19:55:47 -04:00
35f98ce715
Summary: If we attempt to unfold an SUnit in ScheduleDAG that results in finding an already scheduled load, we must should abort the unfold as it will not improve scheduling. This fixes PR32610. Reviewers: jmolloy, sunfish, bogner, spatel Subscribers: llvm-commits, MatzeB Differential Revision: https://reviews.llvm.org/D32911 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@304321 91177308-0d34-0410-b5e6-96231b3b80d8
41 lines
1.8 KiB
LLVM
41 lines
1.8 KiB
LLVM
; RUN: llc -o - %s | FileCheck %s
|
|
|
|
; CHECK-LABEL: @pr32610
|
|
; CHECK: movl L_b$non_lazy_ptr, [[BASEREG:%[a-z]+]]
|
|
; CHECK: cmpl ([[BASEREG]]), {{%[a-z]+}}
|
|
; CHECK: cmpl ([[BASEREG]]), {{%[a-z]+}}
|
|
|
|
target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128"
|
|
target triple = "i386-apple-macosx10.13.0"
|
|
|
|
@c = external local_unnamed_addr global i32, align 4
|
|
@b = external local_unnamed_addr global [1 x i32], align 4
|
|
@d = external local_unnamed_addr global i32, align 4
|
|
|
|
; Function Attrs: norecurse nounwind optsize ssp
|
|
define void @pr32610() local_unnamed_addr #0 {
|
|
entry:
|
|
%0 = load i32, i32* getelementptr ([1 x i32], [1 x i32]* @b, i32 0, i32 undef), align 4, !tbaa !1
|
|
%cmp = icmp eq i32 undef, %0
|
|
%conv = zext i1 %cmp to i32
|
|
%tobool1.i = icmp ne i32 undef, 0
|
|
%or.cond.i = and i1 %cmp, %tobool1.i
|
|
%cond.i = select i1 %or.cond.i, i32 %conv, i32 undef
|
|
store i32 %cond.i, i32* @c, align 4, !tbaa !1
|
|
%1 = load i32, i32* getelementptr inbounds ([1 x i32], [1 x i32]* @b, i32 0, i32 0), align 4
|
|
%tobool = icmp ne i32 %1, 0
|
|
%2 = select i1 %tobool, i32 %1, i32 undef
|
|
store i32 %2, i32* @d, align 4, !tbaa !1
|
|
ret void
|
|
}
|
|
|
|
attributes #0 = { norecurse nounwind optsize ssp "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="penryn" "target-features"="+cx16,+fxsr,+mmx,+sse,+sse2,+sse3,+sse4.1,+ssse3,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
|
|
|
|
!llvm.ident = !{!0}
|
|
|
|
!0 = !{!"clang version 5.0.0 (trunk 301507) (llvm/trunk 301505)"}
|
|
!1 = !{!2, !2, i64 0}
|
|
!2 = !{!"int", !3, i64 0}
|
|
!3 = !{!"omnipotent char", !4, i64 0}
|
|
!4 = !{!"Simple C/C++ TBAA"}
|