~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/Analysis/BasicAA/phi-and-select.ll

  • Committer: Bazaar Package Importer
  • Author(s): Scott Kitterman
  • Date: 2010-03-12 11:30:04 UTC
  • mfrom: (0.41.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100312113004-b0fop4bkycszdd0z
Tags: 0.96~rc1+dfsg-0ubuntu1
* New upstream RC - FFE (LP: #537636):
  - Add OfficialDatabaseOnly option to clamav-base.postinst.in
  - Add LocalSocketGroup option to clamav-base.postinst.in
  - Add LocalSocketMode option to clamav-base.postinst.in
  - Add CrossFilesystems option to clamav-base.postinst.in
  - Add ClamukoScannerCount option to clamav-base.postinst.in
  - Add BytecodeSecurity opiton to clamav-base.postinst.in
  - Add DetectionStatsHostID option to clamav-freshclam.postinst.in
  - Add Bytecode option to clamav-freshclam.postinst.in
  - Add MilterSocketGroup option to clamav-milter.postinst.in
  - Add MilterSocketMode option to clamav-milter.postinst.in
  - Add ReportHostname option to clamav-milter.postinst.in
  - Bump libclamav SO version to 6.1.0 in libclamav6.install
  - Drop clamdmon from clamav.examples (no longer shipped by upstream)
  - Drop libclamav.a from libclamav-dev.install (not built by upstream)
  - Update SO version for lintian override for libclamav6
  - Add new Bytecode Testing Tool, usr/bin/clambc, to clamav.install
  - Add build-depends on python and python-setuptools for new test suite
  - Update debian/copyright for the embedded copy of llvm (using the system
    llvm is not currently feasible)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; RUN: opt < %s -aa-eval -print-all-alias-modref-info -disable-output \
 
2
; RUN:   |& grep {NoAlias:      double\\* \[%\]a, double\\* \[%\]b\$} | count 4
 
3
 
 
4
; BasicAA should detect NoAliases in PHIs and Selects.
 
5
 
 
6
; Two PHIs in the same block.
 
7
define void @foo(i1 %m, double* noalias %x, double* noalias %y) {
 
8
entry:
 
9
  br i1 %m, label %true, label %false
 
10
 
 
11
true:
 
12
  br label %exit
 
13
 
 
14
false:
 
15
  br label %exit
 
16
 
 
17
exit:
 
18
  %a = phi double* [ %x, %true ], [ %y, %false ]
 
19
  %b = phi double* [ %x, %false ], [ %y, %true ]
 
20
  volatile store double 0.0, double* %a
 
21
  volatile store double 1.0, double* %b
 
22
  ret void
 
23
}
 
24
 
 
25
; Two selects with the same condition.
 
26
define void @bar(i1 %m, double* noalias %x, double* noalias %y) {
 
27
entry:
 
28
  %a = select i1 %m, double* %x, double* %y
 
29
  %b = select i1 %m, double* %y, double* %x
 
30
  volatile store double 0.000000e+00, double* %a
 
31
  volatile store double 1.000000e+00, double* %b
 
32
  ret void
 
33
}
 
34
 
 
35
; Two PHIs with disjoint sets of inputs.
 
36
define void @qux(i1 %m, double* noalias %x, double* noalias %y,
 
37
                 i1 %n, double* noalias %v, double* noalias %w) {
 
38
entry:
 
39
  br i1 %m, label %true, label %false
 
40
 
 
41
true:
 
42
  br label %exit
 
43
 
 
44
false:
 
45
  br label %exit
 
46
 
 
47
exit:
 
48
  %a = phi double* [ %x, %true ], [ %y, %false ]
 
49
  br i1 %n, label %ntrue, label %nfalse
 
50
 
 
51
ntrue:
 
52
  br label %nexit
 
53
 
 
54
nfalse:
 
55
  br label %nexit
 
56
 
 
57
nexit:
 
58
  %b = phi double* [ %v, %ntrue ], [ %w, %nfalse ]
 
59
  volatile store double 0.0, double* %a
 
60
  volatile store double 1.0, double* %b
 
61
  ret void
 
62
}
 
63
 
 
64
; Two selects with disjoint sets of arms.
 
65
define void @fin(i1 %m, double* noalias %x, double* noalias %y,
 
66
                 i1 %n, double* noalias %v, double* noalias %w) {
 
67
entry:
 
68
  %a = select i1 %m, double* %x, double* %y
 
69
  %b = select i1 %n, double* %v, double* %w
 
70
  volatile store double 0.000000e+00, double* %a
 
71
  volatile store double 1.000000e+00, double* %b
 
72
  ret void
 
73
}