diff options
| author | Stefan Stipanovic <sstipanovic@s-energize.com> | 2019-11-02 16:35:38 +0100 |
|---|---|---|
| committer | Stefan Stipanovic <sstipanovic@s-energize.com> | 2019-11-02 19:40:48 +0100 |
| commit | f35740d6e954b4a0bc319be74ca35bdf8c10a780 (patch) | |
| tree | 751408e138774c745e184a04d3c5145d23a22a9e /llvm/test/Transforms/FunctionAttrs/misc.ll | |
| parent | 095d2a4cedca7dbd7e6c1f1620790330e5649cd5 (diff) | |
| download | bcm5719-llvm-f35740d6e954b4a0bc319be74ca35bdf8c10a780.tar.gz bcm5719-llvm-f35740d6e954b4a0bc319be74ca35bdf8c10a780.zip | |
NoFree argument attribute.
Summary: Deducing nofree atrribute for function arguments.
Reviewers: jdoerfert
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67886
Diffstat (limited to 'llvm/test/Transforms/FunctionAttrs/misc.ll')
| -rw-r--r-- | llvm/test/Transforms/FunctionAttrs/misc.ll | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/test/Transforms/FunctionAttrs/misc.ll b/llvm/test/Transforms/FunctionAttrs/misc.ll index 4216c8775dd..7b9e25809d9 100644 --- a/llvm/test/Transforms/FunctionAttrs/misc.ll +++ b/llvm/test/Transforms/FunctionAttrs/misc.ll @@ -10,8 +10,8 @@ define internal void @internal(void (i8*)* %fp) { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[A:%.*]] = alloca i32, align 4 ; CHECK-NEXT: [[TMP:%.*]] = bitcast i32* [[A]] to i8* -; CHECK-NEXT: call void @foo(i32* nocapture nonnull align 4 dereferenceable(4) undef) -; CHECK-NEXT: call void [[FP]](i8* bitcast (void (i32*)* @foo to i8*)) +; CHECK-NEXT: call void @foo(i32* nocapture nofree nonnull align 4 dereferenceable(4) undef) +; CHECK-NEXT: call void [[FP:%.*]](i8* bitcast (void (i32*)* @foo to i8*)) ; CHECK-NEXT: call void @callback1(void (i32*)* nonnull @foo) ; CHECK-NEXT: call void @callback2(void (i8*)* bitcast (void (i32*)* @foo to void (i8*)*)) ; CHECK-NEXT: call void @callback2(void (i8*)* [[FP]]) @@ -24,7 +24,7 @@ define internal void @internal(void (i8*)* %fp) { ; DECL_CS-NEXT: entry: ; DECL_CS-NEXT: [[A:%.*]] = alloca i32, align 4 ; DECL_CS-NEXT: [[TMP:%.*]] = bitcast i32* [[A]] to i8* -; DECL_CS-NEXT: call void @foo(i32* nocapture nonnull align 4 dereferenceable(4) undef) +; DECL_CS-NEXT: call void @foo(i32* nocapture nofree nonnull align 4 dereferenceable(4) undef) ; DECL_CS-NEXT: call void [[FP]](i8* bitcast (void (i32*)* @foo to i8*)) ; DECL_CS-NEXT: call void @callback1(void (i32*)* nonnull @foo) ; DECL_CS-NEXT: call void @callback2(void (i8*)* nonnull bitcast (void (i32*)* @foo to void (i8*)*)) @@ -52,7 +52,7 @@ define void @external(void (i8*)* %fp) { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[A:%.*]] = alloca i32, align 4 ; CHECK-NEXT: [[TMP:%.*]] = bitcast i32* [[A]] to i8* -; CHECK-NEXT: call void @foo(i32* nocapture nonnull align 4 dereferenceable(4) undef) +; CHECK-NEXT: call void @foo(i32* nocapture nofree nonnull align 4 dereferenceable(4) undef) ; CHECK-NEXT: call void @callback1(void (i32*)* nonnull @foo) ; CHECK-NEXT: call void @callback2(void (i8*)* bitcast (void (i32*)* @foo to void (i8*)*)) ; CHECK-NEXT: call void @callback2(void (i8*)* [[FP]]) @@ -67,7 +67,7 @@ define void @external(void (i8*)* %fp) { ; DECL_CS-NEXT: entry: ; DECL_CS-NEXT: [[A:%.*]] = alloca i32, align 4 ; DECL_CS-NEXT: [[TMP:%.*]] = bitcast i32* [[A]] to i8* -; DECL_CS-NEXT: call void @foo(i32* nocapture nonnull align 4 dereferenceable(4) undef) +; DECL_CS-NEXT: call void @foo(i32* nocapture nofree nonnull align 4 dereferenceable(4) undef) ; DECL_CS-NEXT: call void @callback1(void (i32*)* nonnull @foo) ; DECL_CS-NEXT: call void @callback2(void (i8*)* nonnull bitcast (void (i32*)* @foo to void (i8*)*)) ; DECL_CS-NEXT: call void @callback2(void (i8*)* [[FP]]) @@ -92,10 +92,10 @@ entry: } define internal void @foo(i32* %a) { -; ALL-LABEL: define {{[^@]+}}@foo -; ALL-SAME: (i32* nocapture readnone [[A:%.*]]) -; ALL-NEXT: entry: -; ALL-NEXT: ret void +; CHECK-LABEL: define {{[^@]+}}@foo +; CHECK-SAME: (i32* nocapture nofree readnone [[A:%.*]]) +; CHECK-NEXT: entry: +; CHECK-NEXT: ret void ; entry: ret void |

