Mercurial > hg > CbC > CbC_llvm
comparison llvm/test/Feature/OperandBundles/adce.ll @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 2e18cbf3894f |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 ; RUN: opt -S -adce < %s | FileCheck %s | |
2 | |
3 ; While it is normally okay to DCE out calls to @readonly_function and | |
4 ; @readnone_function, we cannot do that if they're carrying operand | |
5 ; bundles since the presence of unknown operand bundles implies | |
6 ; arbitrary memory effects. | |
7 | |
8 declare void @readonly_function() readonly nounwind | |
9 declare void @readnone_function() readnone nounwind | |
10 | |
11 define void @test0() { | |
12 ; CHECK-LABEL: @test0( | |
13 entry: | |
14 call void @readonly_function() [ "tag"() ] | |
15 ; CHECK: call void @readonly_function | |
16 ret void | |
17 } | |
18 | |
19 define void @test1() { | |
20 ; CHECK-LABEL: @test1( | |
21 entry: | |
22 call void @readnone_function() [ "tag"() ] | |
23 ; CHECK: call void @readnone_function | |
24 ret void | |
25 } | |
26 | |
27 define void @test2() { | |
28 ; CHECK-LABEL: @test2( | |
29 entry: | |
30 ; CHECK-NOT: @readonly_function( | |
31 call void @readonly_function() readonly [ "tag"() ] | |
32 ret void | |
33 } | |
34 | |
35 define void @test3() { | |
36 ; CHECK-LABEL: @test3( | |
37 entry: | |
38 ; CHECK-NOT: @readnone_function( | |
39 call void @readnone_function() readnone [ "tag"() ] | |
40 ret void | |
41 } | |
42 | |
43 define void @test4() { | |
44 ; CHECK-LABEL: @test4( | |
45 entry: | |
46 ; CHECK-NOT: @readonly_function() | |
47 call void @readonly_function() [ "deopt"() ] | |
48 ret void | |
49 } |