diff options
author | Aiden Grossman <agrossman154@yahoo.com> | 2023-11-26 12:20:49 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-26 12:20:49 -0800 |
commit | 5a74805bd6b28af7744b88c0cfe2e2b68ac1779f (patch) | |
tree | fafdeb8aa2b2413e7f4517c6c3f62fa39d498078 /llvm/test/Analysis | |
parent | cd9829c231e32dc73cfe1957f84b1645e9105196 (diff) | |
download | llvm-5a74805bd6b28af7744b88c0cfe2e2b68ac1779f.zip llvm-5a74805bd6b28af7744b88c0cfe2e2b68ac1779f.tar.gz llvm-5a74805bd6b28af7744b88c0cfe2e2b68ac1779f.tar.bz2 |
[LVI] Add NewPM printer pass (#73425)
This patch adds a NewPM printer pass for the LazyValueAnalysis.
Diffstat (limited to 'llvm/test/Analysis')
-rw-r--r-- | llvm/test/Analysis/LazyValueAnalysis/print.ll | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/llvm/test/Analysis/LazyValueAnalysis/print.ll b/llvm/test/Analysis/LazyValueAnalysis/print.ll new file mode 100644 index 0000000..6b4938a --- /dev/null +++ b/llvm/test/Analysis/LazyValueAnalysis/print.ll @@ -0,0 +1,49 @@ +; RUN: opt %s -disable-output -passes="jump-threading,print<lazy-value-info>" 2>&1 | FileCheck %s + +; first to populate the values. + +define i32 @constraint(i32 %a) { +; CHECK-LABEL: LVI for function 'constraint': +chklt64: +; CHECK-LABEL: chklt64: +; CHECK-NEXT: ; LatticeVal for: 'i32 %a' is: overdefined +; CHECK-NEXT: ; LatticeVal for: ' %cmp = icmp slt i32 %a, 64' in BB: '%chklt64' is: overdefined +; CHECK-NEXT: ; LatticeVal for: ' %cmp = icmp slt i32 %a, 64' in BB: '%chkgt0' is: constantrange<-1, 0> +; CHECK-NEXT: ; LatticeVal for: ' %cmp = icmp slt i32 %a, 64' in BB: '%notinbounds' is: overdefined +; CHECK-NEXT: %cmp = icmp slt i32 %a, 64 +; CHECK-NEXT: ; LatticeVal for: ' br i1 %cmp, label %chkgt0, label %notinbounds' in BB: '%chklt64' is: overdefined +; CHECK-NEXT: ; LatticeVal for: ' br i1 %cmp, label %chkgt0, label %notinbounds' in BB: '%chkgt0' is: overdefined +; CHECK-NEXT: ; LatticeVal for: ' br i1 %cmp, label %chkgt0, label %notinbounds' in BB: '%notinbounds' is: overdefined +; CHECK-NEXT: br i1 %cmp, label %chkgt0, label %notinbounds + %cmp = icmp slt i32 %a, 64 + br i1 %cmp, label %chkgt0, label %notinbounds + +chkgt0: +; CHECK-LABEL: chkgt0: +; CHECK-NEXT: ; LatticeVal for: 'i32 %a' is: constantrange<-2147483648, 64> +; CHECK-NEXT: ; LatticeVal for: ' %cmp1 = icmp sgt i32 %a, 0' in BB: '%chkgt0' is: overdefined +; CHECK-NEXT: ; LatticeVal for: ' %cmp1 = icmp sgt i32 %a, 0' in BB: '%inbounds' is: constantrange<-1, 0> +; CHECK-NEXT: %cmp1 = icmp sgt i32 %a, 0 +; CHECK-NEXT: ; LatticeVal for: ' br i1 %cmp1, label %inbounds, label %notinbounds' in BB: '%chkgt0' is: overdefined +; CHECK-NEXT: ; LatticeVal for: ' br i1 %cmp1, label %inbounds, label %notinbounds' in BB: '%inbounds' is: overdefined +; CHECK-NEXT: br i1 %cmp1, label %inbounds, label %notinbounds + %cmp1 = icmp sgt i32 %a, 0 + br i1 %cmp1, label %inbounds, label %notinbounds + +inbounds: +; CHECK-LABEL: inbounds: +; CHECK-NEXT: ; LatticeVal for: 'i32 %a' is: constantrange<1, 64> +; CHECK-NEXT: ; LatticeVal for: ' ret i32 %a' in BB: '%inbounds' is: overdefined +; CHECK-NEXT: ret i32 %a + ret i32 %a + +notinbounds: +; CHECK-LABEL: notinbounds: +; CHECK-NEXT: ; LatticeVal for: 'i32 %a' is: constantrange<64, 1> +; CHECK-NEXT: ; LatticeVal for: ' %sum = add i32 %a, 64' in BB: '%notinbounds' is: constantrange<128, 65> +; CHECK-NEXT: %sum = add i32 %a, 64 +; CHECK-NEXT: ; LatticeVal for: ' ret i32 %sum' in BB: '%notinbounds' is: overdefined +; CHECK-NEXT: ret i32 %sum + %sum = add i32 %a, 64 + ret i32 %sum +} |