diff options
author | Nuno Lopes <nunoplopes@sapo.pt> | 2012-07-20 22:39:33 +0000 |
---|---|---|
committer | Nuno Lopes <nunoplopes@sapo.pt> | 2012-07-20 22:39:33 +0000 |
commit | 78435f6bb7574d3d26f8c5151e2c140c525b7994 (patch) | |
tree | f78c9a1e38b094ab49d15ca3bd581805a9b23f58 /test/Transforms | |
parent | e288cd100f86631ec0ade2a85930397a4ea7b21e (diff) | |
download | external_llvm-78435f6bb7574d3d26f8c5151e2c140c525b7994.zip external_llvm-78435f6bb7574d3d26f8c5151e2c140c525b7994.tar.gz external_llvm-78435f6bb7574d3d26f8c5151e2c140c525b7994.tar.bz2 |
move the bounds checking pass to the instrumentation folder, where it belongs. I dunno why in the world I dropped it in the Scalar folder in the first place.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160587 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms')
-rw-r--r-- | test/Transforms/BoundsChecking/lit.local.cfg | 1 | ||||
-rw-r--r-- | test/Transforms/BoundsChecking/many-trap.ll | 16 | ||||
-rw-r--r-- | test/Transforms/BoundsChecking/phi.ll | 52 | ||||
-rw-r--r-- | test/Transforms/BoundsChecking/simple.ll | 118 |
4 files changed, 0 insertions, 187 deletions
diff --git a/test/Transforms/BoundsChecking/lit.local.cfg b/test/Transforms/BoundsChecking/lit.local.cfg deleted file mode 100644 index 19eebc0..0000000 --- a/test/Transforms/BoundsChecking/lit.local.cfg +++ /dev/null @@ -1 +0,0 @@ -config.suffixes = ['.ll', '.c', '.cpp'] diff --git a/test/Transforms/BoundsChecking/many-trap.ll b/test/Transforms/BoundsChecking/many-trap.ll deleted file mode 100644 index 0bbb959..0000000 --- a/test/Transforms/BoundsChecking/many-trap.ll +++ /dev/null @@ -1,16 +0,0 @@ -; RUN: opt < %s -bounds-checking -S | FileCheck %s -; RUN: opt < %s -bounds-checking -bounds-checking-single-trap -S | FileCheck -check-prefix=SINGLE %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" - -; CHECK: @f1 -define void @f1(i64 %x) nounwind { - %1 = alloca i128, i64 %x - %2 = load i128* %1, align 4 - %3 = load i128* %1, align 4 - ret void -; CHECK: call void @llvm.trap() -; CHECK: call void @llvm.trap() -; CHECK-NOT: call void @llvm.trap() -; SINGLE: call void @llvm.trap() -; SINGLE-NOT: call void @llvm.trap() -} diff --git a/test/Transforms/BoundsChecking/phi.ll b/test/Transforms/BoundsChecking/phi.ll deleted file mode 100644 index 86b5922..0000000 --- a/test/Transforms/BoundsChecking/phi.ll +++ /dev/null @@ -1,52 +0,0 @@ -; RUN: opt < %s -bounds-checking -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" - -@global = private unnamed_addr constant [10 x i8] c"ola\00mundo\00", align 1 - -; CHECK: f1 -; no checks are possible here -; CHECK-NOT: trap -define void @f1(i8* nocapture %c) { -entry: - %0 = load i8* %c, align 1 - %tobool1 = icmp eq i8 %0, 0 - br i1 %tobool1, label %while.end, label %while.body - -while.body: - %c.addr.02 = phi i8* [ %incdec.ptr, %while.body ], [ %c, %entry ] - %incdec.ptr = getelementptr inbounds i8* %c.addr.02, i64 -1 - store i8 100, i8* %c.addr.02, align 1 - %1 = load i8* %incdec.ptr, align 1 - %tobool = icmp eq i8 %1, 0 - br i1 %tobool, label %while.end, label %while.body - -while.end: - ret void -} - - -; CHECK: f2 -define void @f2() { -while.body.i.preheader: - %addr = getelementptr inbounds [10 x i8]* @global, i64 0, i64 9 - br label %while.body.i - -while.body.i: -; CHECK: phi -; CHECK-NEXT: phi -; CHECK-NOT: phi - %c.addr.02.i = phi i8* [ %incdec.ptr.i, %while.body.i ], [ %addr, %while.body.i.preheader ] - %incdec.ptr.i = getelementptr inbounds i8* %c.addr.02.i, i64 -1 -; CHECK: sub i64 10, %0 -; CHECK-NEXT: icmp ult i64 10, %0 -; CHECK-NEXT: icmp ult i64 {{.*}}, 1 -; CHECK-NEXT: or i1 -; CHECK-NEXT: br {{.*}}, label %trap - store i8 100, i8* %c.addr.02.i, align 1 - %0 = load i8* %incdec.ptr.i, align 1 - %tobool.i = icmp eq i8 %0, 0 - br i1 %tobool.i, label %fn.exit, label %while.body.i - -fn.exit: - ret void -} diff --git a/test/Transforms/BoundsChecking/simple.ll b/test/Transforms/BoundsChecking/simple.ll deleted file mode 100644 index 3d532c3..0000000 --- a/test/Transforms/BoundsChecking/simple.ll +++ /dev/null @@ -1,118 +0,0 @@ -; RUN: opt < %s -bounds-checking -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" - -@.str = private constant [8 x i8] c"abcdefg\00" ; <[8 x i8]*> - -declare noalias i8* @malloc(i64) nounwind -declare noalias i8* @calloc(i64, i64) nounwind -declare noalias i8* @realloc(i8* nocapture, i64) nounwind - -; CHECK: @f1 -define void @f1() nounwind { - %1 = tail call i8* @malloc(i64 32) - %2 = bitcast i8* %1 to i32* - %idx = getelementptr inbounds i32* %2, i64 2 -; CHECK-NOT: trap - store i32 3, i32* %idx, align 4 - ret void -} - -; CHECK: @f2 -define void @f2() nounwind { - %1 = tail call i8* @malloc(i64 32) - %2 = bitcast i8* %1 to i32* - %idx = getelementptr inbounds i32* %2, i64 8 -; CHECK: trap - store i32 3, i32* %idx, align 4 - ret void -} - -; CHECK: @f3 -define void @f3(i64 %x) nounwind { - %1 = tail call i8* @calloc(i64 4, i64 %x) - %2 = bitcast i8* %1 to i32* - %idx = getelementptr inbounds i32* %2, i64 8 -; CHECK: mul i64 4, % -; CHECK: sub i64 {{.*}}, 32 -; CHECK-NEXT: icmp ult i64 {{.*}}, 32 -; CHECK-NEXT: icmp ult i64 {{.*}}, 4 -; CHECK-NEXT: or i1 -; CHECK: trap - store i32 3, i32* %idx, align 4 - ret void -} - -; CHECK: @f4 -define void @f4(i64 %x) nounwind { - %1 = tail call i8* @realloc(i8* null, i64 %x) nounwind - %2 = bitcast i8* %1 to i32* - %idx = getelementptr inbounds i32* %2, i64 8 -; CHECK: trap - %3 = load i32* %idx, align 4 - ret void -} - -; CHECK: @f5 -define void @f5(i64 %x) nounwind { - %idx = getelementptr inbounds [8 x i8]* @.str, i64 0, i64 %x -; CHECK: trap - %1 = load i8* %idx, align 4 - ret void -} - -; CHECK: @f6 -define void @f6(i64 %x) nounwind { - %1 = alloca i128 -; CHECK-NOT: trap - %2 = load i128* %1, align 4 - ret void -} - -; CHECK: @f7 -define void @f7(i64 %x) nounwind { - %1 = alloca i128, i64 %x -; CHECK: mul i64 16, -; CHECK: trap - %2 = load i128* %1, align 4 - ret void -} - -; CHECK: @f8 -define void @f8() nounwind { - %1 = alloca i128 - %2 = alloca i128 - %3 = select i1 undef, i128* %1, i128* %2 -; CHECK-NOT: trap - %4 = load i128* %3, align 4 - ret void -} - -; CHECK: @f9 -define void @f9(i128* %arg) nounwind { - %1 = alloca i128 - %2 = select i1 undef, i128* %arg, i128* %1 -; CHECK-NOT: trap - %3 = load i128* %2, align 4 - ret void -} - -; CHECK: @f10 -define void @f10(i64 %x, i64 %y) nounwind { - %1 = alloca i128, i64 %x - %2 = alloca i128, i64 %y - %3 = select i1 undef, i128* %1, i128* %2 -; CHECK: select -; CHECK: select -; CHECK: trap - %4 = load i128* %3, align 4 - ret void -} - -; CHECK: @f11 -define void @f11(i128* byval %x) nounwind { - %1 = bitcast i128* %x to i8* - %2 = getelementptr inbounds i8* %1, i64 16 -; CHECK: br label - %3 = load i8* %2, align 4 - ret void -} |