]> git.lizzy.rs Git - rust.git/blob - src/test/run-make-fulldeps/coverage-llvmir/Makefile
Added docs to internal_macro const
[rust.git] / src / test / run-make-fulldeps / coverage-llvmir / Makefile
1 # needs-profiler-support
2 # min-llvm-version: 11.0
3
4 -include ../coverage/coverage_tools.mk
5
6 BASEDIR=../coverage-llvmir
7
8 ifeq ($(UNAME),Darwin)
9         INSTR_PROF_DATA_SUFFIX=,regular,live_support
10         DATA_SECTION_PREFIX=__DATA,
11         LLVM_COV_SECTION_PREFIX=__LLVM_COV,
12         COMDAT_IF_SUPPORTED=
13 else
14         INSTR_PROF_DATA_SUFFIX=
15         DATA_SECTION_PREFIX=
16         LLVM_COV_SECTION_PREFIX=
17         COMDAT_IF_SUPPORTED=, comdat
18 endif
19
20 DEFINE_INTERNAL=define internal
21
22 ifdef IS_WINDOWS
23         LLVM_FILECHECK_OPTIONS=\
24                 -check-prefixes=CHECK,WINDOWS \
25                 -DDEFINE_INTERNAL='$(DEFINE_INTERNAL)' \
26                 -DCOMDAT_IF_SUPPORTED='$(COMDAT_IF_SUPPORTED)' \
27                 -DINSTR_PROF_DATA='.lprfd$$M' \
28                 -DINSTR_PROF_NAME='.lprfn$$M' \
29                 -DINSTR_PROF_CNTS='.lprfc$$M' \
30                 -DINSTR_PROF_VALS='.lprfv$$M' \
31                 -DINSTR_PROF_VNODES='.lprfnd$$M' \
32                 -DINSTR_PROF_COVMAP='.lcovmap$$M' \
33                 -DINSTR_PROF_COVFUN='.lcovfun$$M' \
34                 -DINSTR_PROF_ORDERFILE='.lorderfile$$M'
35 else
36         LLVM_FILECHECK_OPTIONS=\
37                 -check-prefixes=CHECK \
38                 -DDEFINE_INTERNAL='$(DEFINE_INTERNAL)' \
39                 -DCOMDAT_IF_SUPPORTED='$(COMDAT_IF_SUPPORTED)' \
40                 -DINSTR_PROF_DATA='$(DATA_SECTION_PREFIX)__llvm_prf_data$(INSTR_PROF_DATA_SUFFIX)' \
41                 -DINSTR_PROF_NAME='$(DATA_SECTION_PREFIX)__llvm_prf_names' \
42                 -DINSTR_PROF_CNTS='$(DATA_SECTION_PREFIX)__llvm_prf_cnts' \
43                 -DINSTR_PROF_VALS='$(DATA_SECTION_PREFIX)__llvm_prf_vals' \
44                 -DINSTR_PROF_VNODES='$(DATA_SECTION_PREFIX)__llvm_prf_vnds' \
45                 -DINSTR_PROF_COVMAP='$(LLVM_COV_SECTION_PREFIX)__llvm_covmap' \
46                 -DINSTR_PROF_COVFUN='$(LLVM_COV_SECTION_PREFIX)__llvm_covfun' \
47                 -DINSTR_PROF_ORDERFILE='$(DATA_SECTION_PREFIX)__llvm_orderfile'
48 endif
49
50 all: test_llvm_ir
51
52 test_llvm_ir:
53         # Compile the test program with non-experimental coverage instrumentation, and generate LLVM IR
54         $(RUSTC) $(BASEDIR)/testprog.rs \
55                         -Zinstrument-coverage \
56                         --emit=llvm-ir
57
58         cat "$(TMPDIR)"/testprog.ll | \
59                         "$(LLVM_FILECHECK)" $(BASEDIR)/filecheck.testprog.txt $(LLVM_FILECHECK_OPTIONS)