[PATCH] D92461: [dfsan] Add a test case for phi

stephan.yichao.zhao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 1 22:09:46 PST 2020


stephan.yichao.zhao created this revision.
stephan.yichao.zhao added a reviewer: morehouse.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
stephan.yichao.zhao requested review of this revision.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D92461

Files:
  llvm/test/Instrumentation/DataFlowSanitizer/phi.ll


Index: llvm/test/Instrumentation/DataFlowSanitizer/phi.ll
===================================================================
--- /dev/null
+++ llvm/test/Instrumentation/DataFlowSanitizer/phi.ll
@@ -0,0 +1,24 @@
+; RUN: opt < %s -dfsan -S | FileCheck %s
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
+target triple = "x86_64-unknown-linux-gnu"
+
+define {i32, i32} @test({i32, i32} %a, i1 %c) {
+  ; CHECK: [[E0:%.*]] = load i16, i16* getelementptr inbounds ([64 x i16], [64 x i16]* @__dfsan_arg_tls, i64 0, i64 0), align 2
+  ; CHECK: [[E3:%.*]] = phi i16 [ [[E0]], %T ], [ [[E0]], %F ]
+  ; CHECK: store i16 [[E3]], i16* @__dfsan_retval_tls, align 2
+
+entry:
+  br i1 %c, label %T, label %F
+  
+T:
+  %at = insertvalue {i32, i32} %a, i32 1, 0
+  br label %done
+  
+F:
+  %af = insertvalue {i32, i32} %a, i32 1, 1
+  br label %done
+  
+done:
+  %b = phi {i32, i32} [%at, %T], [%af, %F]
+  ret {i32, i32} %b  
+}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92461.308875.patch
Type: text/x-patch
Size: 1040 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201202/027af121/attachment.bin>


More information about the llvm-commits mailing list