~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

« back to all changes in this revision

Viewing changes to libclamav/c++/llvm/test/CodeGen/X86/tailcallbyval64.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: llc < %s -march=x86-64  -tailcallopt  | grep TAILCALL
 
2
; Expect 2 rep;movs because of tail call byval lowering.
 
3
; RUN: llc < %s -march=x86-64  -tailcallopt  | grep rep | wc -l | grep 2
 
4
; A sequence of copyto/copyfrom virtual registers is used to deal with byval
 
5
; lowering appearing after moving arguments to registers. The following two
 
6
; checks verify that the register allocator changes those sequences to direct
 
7
; moves to argument register where it can (for registers that are not used in 
 
8
; byval lowering - not rsi, not rdi, not rcx).
 
9
; Expect argument 4 to be moved directly to register edx.
 
10
; RUN: llc < %s -march=x86-64  -tailcallopt  | grep movl | grep {7} | grep edx
 
11
; Expect argument 6 to be moved directly to register r8.
 
12
; RUN: llc < %s -march=x86-64  -tailcallopt  | grep movl | grep {17} | grep r8
 
13
 
 
14
%struct.s = type { i64, i64, i64, i64, i64, i64, i64, i64,
 
15
                   i64, i64, i64, i64, i64, i64, i64, i64,
 
16
                   i64, i64, i64, i64, i64, i64, i64, i64 }
 
17
 
 
18
declare  fastcc i64 @tailcallee(%struct.s* byval %a, i64 %val, i64 %val2, i64 %val3, i64 %val4, i64 %val5)
 
19
 
 
20
 
 
21
define  fastcc i64 @tailcaller(i64 %b, %struct.s* byval %a) {
 
22
entry:
 
23
        %tmp2 = getelementptr %struct.s* %a, i32 0, i32 1
 
24
        %tmp3 = load i64* %tmp2, align 8
 
25
        %tmp4 = tail call fastcc i64 @tailcallee(%struct.s* %a byval, i64 %tmp3, i64 %b, i64 7, i64 13, i64 17)
 
26
        ret i64 %tmp4
 
27
}
 
28
 
 
29