diff options
author | Mike Stump <mrs@apple.com> | 2009-05-04 18:40:41 +0000 |
---|---|---|
committer | Mike Stump <mrs@apple.com> | 2009-05-04 18:40:41 +0000 |
commit | fe095f39e7009c51d1c86769792ccbcad8cdd2ec (patch) | |
tree | c9883b04cd8a1416361a0b29a6a91bf2417bbf3e /test | |
parent | 04fa35ab13afbbc5b2f12437a256db84a27485d2 (diff) | |
download | llvm-fe095f39e7009c51d1c86769792ccbcad8cdd2ec.tar.gz llvm-fe095f39e7009c51d1c86769792ccbcad8cdd2ec.tar.bz2 llvm-fe095f39e7009c51d1c86769792ccbcad8cdd2ec.tar.xz |
Restore minor deletion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70892 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/DebugInfo/2009-01-29-HeaderLocation.ll | 2 | ||||
-rw-r--r-- | test/FrontendC++/2009-05-04-PureConstNounwind.cpp | 8 | ||||
-rw-r--r-- | test/FrontendC/2009-05-04-EnumInreg.c | 17 | ||||
-rw-r--r-- | test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll | 24 | ||||
-rw-r--r-- | test/Transforms/JumpThreading/no-irreducible-loops.ll | 38 |
5 files changed, 84 insertions, 5 deletions
diff --git a/test/DebugInfo/2009-01-29-HeaderLocation.ll b/test/DebugInfo/2009-01-29-HeaderLocation.ll index c59a1c730c..a201bd5a02 100644 --- a/test/DebugInfo/2009-01-29-HeaderLocation.ll +++ b/test/DebugInfo/2009-01-29-HeaderLocation.ll @@ -1,4 +1,4 @@ -; RUN: llvm-as < %s | llc | grep "m.h" | count 1 +; RUN: llvm-as < %s | llc | grep "\\"m.h\\"" | count 1 target triple = "i386-apple-darwin9.6" %llvm.dbg.anchor.type = type { i32, i32 } %llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 } diff --git a/test/FrontendC++/2009-05-04-PureConstNounwind.cpp b/test/FrontendC++/2009-05-04-PureConstNounwind.cpp new file mode 100644 index 0000000000..a4b4653e12 --- /dev/null +++ b/test/FrontendC++/2009-05-04-PureConstNounwind.cpp @@ -0,0 +1,8 @@ +// RUN: %llvmgxx -S -emit-llvm %s -o - | grep nounwind | count 4 +int c(void) __attribute__((const)); +int p(void) __attribute__((pure)); +int t(void); + +int f(void) { + return c() + p() + t(); +} diff --git a/test/FrontendC/2009-05-04-EnumInreg.c b/test/FrontendC/2009-05-04-EnumInreg.c new file mode 100644 index 0000000000..8a76f5f8e9 --- /dev/null +++ b/test/FrontendC/2009-05-04-EnumInreg.c @@ -0,0 +1,17 @@ +// RUN: %llvmgcc -S -m32 -mregparm=3 %s -emit-llvm -o - | grep {inreg %action} +// XTARGET: x86 +// PR3967 + +enum kobject_action { + KOBJ_ADD, + KOBJ_REMOVE, + KOBJ_CHANGE, + KOBJ_MOVE, + KOBJ_ONLINE, + KOBJ_OFFLINE, + KOBJ_MAX +}; + +struct kobject; + +int kobject_uevent(struct kobject *kobj, enum kobject_action action) {} diff --git a/test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll b/test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll index b874c824e0..aec134a8c7 100644 --- a/test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll +++ b/test/Transforms/FunctionAttrs/2008-12-31-NoCapture.ll @@ -39,6 +39,16 @@ define i1 @c5(i32* %q, i32 %bitno) { ret i1 %val } +declare void @throw_if_bit_set(i8*, i8) readonly +define i1 @c6(i8* %q, i8 %bit) { + invoke void @throw_if_bit_set(i8* %q, i8 %bit) + to label %ret0 unwind label %ret1 +ret0: + ret i1 0 +ret1: + ret i1 1 +} + define i32 @nc1(i32* %q, i32* %p, i1 %b) { e: br label %l @@ -63,14 +73,20 @@ define void @nc3(void ()* %p) { ret void } -declare void @external(i8*) readonly +declare void @external(i8*) readonly nounwind define void @nc4(i8* %p) { call void @external(i8* %p) ret void } -define void @nc5(void (i8*)* %f, i8* %p) { - call void %f(i8* %p) readonly - call void %f(i8* nocapture %p) +define void @nc5(void (i8*)* %p, i8* %r) { + call void %p(i8* %r) + call void %p(i8* nocapture %r) + ret void +} + +declare i8* @external_identity(i8*) readonly nounwind +define void @nc6(i8* %p) { + call i8* @external_identity(i8* %p) ret void } diff --git a/test/Transforms/JumpThreading/no-irreducible-loops.ll b/test/Transforms/JumpThreading/no-irreducible-loops.ll new file mode 100644 index 0000000000..0c729d1a9b --- /dev/null +++ b/test/Transforms/JumpThreading/no-irreducible-loops.ll @@ -0,0 +1,38 @@ +; RUN: llvm-as < %s | opt -jump-threading -loop-rotate -instcombine -indvars -loop-unroll -simplifycfg | llvm-dis > %t +; RUN: grep {volatile store} %t | count 3 +; RUN: not grep {br label} %t + +; Jump threading should not prevent this loop from being unrolled. + +target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" +target triple = "i386-apple-darwin9.6" +@v1 = external global i32 ; <i32*> [#uses=2] + +define i32 @unroll() nounwind { +entry: + br label %bb4 + +bb: ; preds = %bb4 + %0 = icmp eq i32 %i.0, 0 ; <i1> [#uses=1] + br i1 %0, label %bb1, label %bb2 + +bb1: ; preds = %bb + volatile store i32 1000, i32* @v1, align 4 + br label %bb3 + +bb2: ; preds = %bb + volatile store i32 1001, i32* @v1, align 4 + br label %bb3 + +bb3: ; preds = %bb2, %bb1 + %1 = add i32 %i.0, 1 ; <i32> [#uses=1] + br label %bb4 + +bb4: ; preds = %bb3, %entry + %i.0 = phi i32 [ 0, %entry ], [ %1, %bb3 ] ; <i32> [#uses=3] + %2 = icmp sgt i32 %i.0, 2 ; <i1> [#uses=1] + br i1 %2, label %bb5, label %bb + +bb5: ; preds = %bb4 + ret i32 0 +} |