Skip to content

Commit aa95c1b

Browse files
author
zhuyunxing
committed
coverage. Disable supporting mcdc on llvm-18
1 parent 61b608c commit aa95c1b

15 files changed

+27
-59
lines changed

compiler/rustc_codegen_llvm/src/builder.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1723,7 +1723,7 @@ impl<'a, 'll, 'tcx> Builder<'a, 'll, 'tcx> {
17231723
) {
17241724
debug!("mcdc_parameters() with args ({:?}, {:?}, {:?})", fn_name, hash, bitmap_bytes);
17251725

1726-
assert!(llvm_util::get_version() >= (18, 0, 0), "MCDC intrinsics require LLVM 18 or later");
1726+
assert!(llvm_util::get_version() >= (19, 0, 0), "MCDC intrinsics require LLVM 19 or later");
17271727

17281728
let llfn = unsafe { llvm::LLVMRustGetInstrProfMCDCParametersIntrinsic(self.cx().llmod) };
17291729
let llty = self.cx.type_func(
@@ -1758,7 +1758,7 @@ impl<'a, 'll, 'tcx> Builder<'a, 'll, 'tcx> {
17581758
"mcdc_tvbitmap_update() with args ({:?}, {:?}, {:?}, {:?}, {:?})",
17591759
fn_name, hash, bitmap_bytes, bitmap_index, mcdc_temp
17601760
);
1761-
assert!(llvm_util::get_version() >= (18, 0, 0), "MCDC intrinsics require LLVM 18 or later");
1761+
assert!(llvm_util::get_version() >= (19, 0, 0), "MCDC intrinsics require LLVM 19 or later");
17621762

17631763
let llfn =
17641764
unsafe { llvm::LLVMRustGetInstrProfMCDCTVBitmapUpdateIntrinsic(self.cx().llmod) };
@@ -1800,7 +1800,7 @@ impl<'a, 'll, 'tcx> Builder<'a, 'll, 'tcx> {
18001800
"mcdc_condbitmap_update() with args ({:?}, {:?}, {:?}, {:?}, {:?})",
18011801
fn_name, hash, cond_loc, mcdc_temp, bool_value
18021802
);
1803-
assert!(llvm_util::get_version() >= (18, 0, 0), "MCDC intrinsics require LLVM 18 or later");
1803+
assert!(llvm_util::get_version() >= (19, 0, 0), "MCDC intrinsics require LLVM 19 or later");
18041804
let llfn = unsafe { llvm::LLVMRustGetInstrProfMCDCCondBitmapIntrinsic(self.cx().llmod) };
18051805
let llty = self.cx.type_func(
18061806
&[

compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp

+8-30
Original file line numberDiff line numberDiff line change
@@ -100,33 +100,7 @@ struct LLVMRustMCDCParameters {
100100
// https://github.com/rust-lang/llvm-project/blob/66a2881a/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h#L253-L263
101101
// and representations in 19
102102
// https://github.com/llvm/llvm-project/blob/843cc474faefad1d639f4c44c1cf3ad7dbda76c8/llvm/include/llvm/ProfileData/Coverage/MCDCTypes.h
103-
#if LLVM_VERSION_GE(18, 0) && LLVM_VERSION_LT(19, 0)
104-
static coverage::CounterMappingRegion::MCDCParameters
105-
fromRust(LLVMRustMCDCParameters Params) {
106-
auto parameter = coverage::CounterMappingRegion::MCDCParameters{};
107-
switch (Params.Tag) {
108-
case LLVMRustMCDCParametersTag::None:
109-
return parameter;
110-
case LLVMRustMCDCParametersTag::Decision:
111-
parameter.BitmapIdx =
112-
static_cast<unsigned>(Params.DecisionParameters.BitmapIdx),
113-
parameter.NumConditions =
114-
static_cast<unsigned>(Params.DecisionParameters.NumConditions);
115-
return parameter;
116-
case LLVMRustMCDCParametersTag::Branch:
117-
parameter.ID = static_cast<coverage::CounterMappingRegion::MCDCConditionID>(
118-
Params.BranchParameters.ConditionID),
119-
parameter.FalseID =
120-
static_cast<coverage::CounterMappingRegion::MCDCConditionID>(
121-
Params.BranchParameters.ConditionIDs[0]),
122-
parameter.TrueID =
123-
static_cast<coverage::CounterMappingRegion::MCDCConditionID>(
124-
Params.BranchParameters.ConditionIDs[1]);
125-
return parameter;
126-
}
127-
report_fatal_error("Bad LLVMRustMCDCParametersTag!");
128-
}
129-
#elif LLVM_VERSION_GE(19, 0)
103+
#if LLVM_VERSION_GE(19, 0)
130104
static coverage::mcdc::Parameters fromRust(LLVMRustMCDCParameters Params) {
131105
switch (Params.Tag) {
132106
case LLVMRustMCDCParametersTag::None:
@@ -222,12 +196,16 @@ extern "C" void LLVMRustCoverageWriteMappingToBuffer(
222196
MappingRegions.emplace_back(
223197
fromRust(Region.Count), fromRust(Region.FalseCount),
224198
#if LLVM_VERSION_GE(18, 0) && LLVM_VERSION_LT(19, 0)
225-
// LLVM 19 may move this argument to last.
226-
fromRust(Region.MCDCParameters),
199+
coverage::CounterMappingRegion::MCDCParameters{},
227200
#endif
228201
Region.FileID, Region.ExpandedFileID, // File IDs, then region info.
229202
Region.LineStart, Region.ColumnStart, Region.LineEnd, Region.ColumnEnd,
230-
fromRust(Region.Kind));
203+
fromRust(Region.Kind)
204+
#if LLVM_VERSION_GE(19, 0)
205+
,
206+
fromRust(Region.MCDCParameters)
207+
#endif
208+
);
231209
}
232210

233211
std::vector<coverage::CounterExpression> Expressions;

compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp

+4-14
Original file line numberDiff line numberDiff line change
@@ -1542,31 +1542,21 @@ LLVMRustGetInstrProfIncrementIntrinsic(LLVMModuleRef M) {
15421542

15431543
extern "C" LLVMValueRef
15441544
LLVMRustGetInstrProfMCDCParametersIntrinsic(LLVMModuleRef M) {
1545-
#if LLVM_VERSION_GE(18, 0)
1545+
#if LLVM_VERSION_GE(19, 0)
15461546
return wrap(llvm::Intrinsic::getDeclaration(
15471547
unwrap(M), llvm::Intrinsic::instrprof_mcdc_parameters));
15481548
#else
1549-
report_fatal_error("LLVM 18.0 is required for mcdc intrinsic functions");
1549+
report_fatal_error("LLVM 19.0 is required for mcdc intrinsic functions");
15501550
#endif
15511551
}
15521552

15531553
extern "C" LLVMValueRef
15541554
LLVMRustGetInstrProfMCDCTVBitmapUpdateIntrinsic(LLVMModuleRef M) {
1555-
#if LLVM_VERSION_GE(18, 0)
1555+
#if LLVM_VERSION_GE(19, 0)
15561556
return wrap(llvm::Intrinsic::getDeclaration(
15571557
unwrap(M), llvm::Intrinsic::instrprof_mcdc_tvbitmap_update));
15581558
#else
1559-
report_fatal_error("LLVM 18.0 is required for mcdc intrinsic functions");
1560-
#endif
1561-
}
1562-
1563-
extern "C" LLVMValueRef
1564-
LLVMRustGetInstrProfMCDCCondBitmapIntrinsic(LLVMModuleRef M) {
1565-
#if LLVM_VERSION_GE(18, 0)
1566-
return wrap(llvm::Intrinsic::getDeclaration(
1567-
unwrap(M), llvm::Intrinsic::instrprof_mcdc_condbitmap_update));
1568-
#else
1569-
report_fatal_error("LLVM 18.0 is required for mcdc intrinsic functions");
1559+
report_fatal_error("LLVM 19.0 is required for mcdc intrinsic functions");
15701560
#endif
15711561
}
15721562

tests/coverage/mcdc/condition-limit.coverage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
LL| |#![feature(coverage_attribute)]
22
LL| |//@ edition: 2021
3-
LL| |//@ min-llvm-version: 18
3+
LL| |//@ min-llvm-version: 19
44
LL| |//@ compile-flags: -Zcoverage-options=mcdc
55
LL| |//@ llvm-cov-flags: --show-branches=count --show-mcdc
66
LL| |

tests/coverage/mcdc/condition-limit.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![feature(coverage_attribute)]
22
//@ edition: 2021
3-
//@ min-llvm-version: 18
3+
//@ min-llvm-version: 19
44
//@ compile-flags: -Zcoverage-options=mcdc
55
//@ llvm-cov-flags: --show-branches=count --show-mcdc
66

tests/coverage/mcdc/if.coverage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
LL| |#![feature(coverage_attribute)]
22
LL| |//@ edition: 2021
3-
LL| |//@ min-llvm-version: 18
3+
LL| |//@ min-llvm-version: 19
44
LL| |//@ compile-flags: -Zcoverage-options=mcdc
55
LL| |//@ llvm-cov-flags: --show-branches=count --show-mcdc
66
LL| |

tests/coverage/mcdc/if.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![feature(coverage_attribute)]
22
//@ edition: 2021
3-
//@ min-llvm-version: 18
3+
//@ min-llvm-version: 19
44
//@ compile-flags: -Zcoverage-options=mcdc
55
//@ llvm-cov-flags: --show-branches=count --show-mcdc
66

tests/coverage/mcdc/inlined_expressions.coverage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
LL| |#![feature(coverage_attribute)]
22
LL| |//@ edition: 2021
3-
LL| |//@ min-llvm-version: 18
3+
LL| |//@ min-llvm-version: 19
44
LL| |//@ compile-flags: -Zcoverage-options=mcdc -Copt-level=z -Cllvm-args=--inline-threshold=0
55
LL| |//@ llvm-cov-flags: --show-branches=count --show-mcdc
66
LL| |

tests/coverage/mcdc/inlined_expressions.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![feature(coverage_attribute)]
22
//@ edition: 2021
3-
//@ min-llvm-version: 18
3+
//@ min-llvm-version: 19
44
//@ compile-flags: -Zcoverage-options=mcdc -Copt-level=z -Cllvm-args=--inline-threshold=0
55
//@ llvm-cov-flags: --show-branches=count --show-mcdc
66

tests/coverage/mcdc/nested_if.coverage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
LL| |#![feature(coverage_attribute)]
22
LL| |//@ edition: 2021
3-
LL| |//@ min-llvm-version: 18
3+
LL| |//@ min-llvm-version: 19
44
LL| |//@ compile-flags: -Zcoverage-options=mcdc
55
LL| |//@ llvm-cov-flags: --show-branches=count --show-mcdc
66
LL| |

tests/coverage/mcdc/nested_if.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![feature(coverage_attribute)]
22
//@ edition: 2021
3-
//@ min-llvm-version: 18
3+
//@ min-llvm-version: 19
44
//@ compile-flags: -Zcoverage-options=mcdc
55
//@ llvm-cov-flags: --show-branches=count --show-mcdc
66

tests/coverage/mcdc/nested_in_boolean_exprs.coverage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
LL| |#![feature(coverage_attribute)]
22
LL| |//@ edition: 2021
3-
LL| |//@ min-llvm-version: 18
3+
LL| |//@ min-llvm-version: 19
44
LL| |//@ compile-flags: -Zcoverage-options=mcdc
55
LL| |//@ llvm-cov-flags: --show-branches=count --show-mcdc
66
LL| |

tests/coverage/mcdc/nested_in_boolean_exprs.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![feature(coverage_attribute)]
22
//@ edition: 2021
3-
//@ min-llvm-version: 18
3+
//@ min-llvm-version: 19
44
//@ compile-flags: -Zcoverage-options=mcdc
55
//@ llvm-cov-flags: --show-branches=count --show-mcdc
66

tests/coverage/mcdc/non_control_flow.coverage

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
LL| |#![feature(coverage_attribute)]
22
LL| |//@ edition: 2021
3-
LL| |//@ min-llvm-version: 18
3+
LL| |//@ min-llvm-version: 19
44
LL| |//@ compile-flags: -Zcoverage-options=mcdc
55
LL| |//@ llvm-cov-flags: --show-branches=count --show-mcdc
66
LL| |

tests/coverage/mcdc/non_control_flow.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#![feature(coverage_attribute)]
22
//@ edition: 2021
3-
//@ min-llvm-version: 18
3+
//@ min-llvm-version: 19
44
//@ compile-flags: -Zcoverage-options=mcdc
55
//@ llvm-cov-flags: --show-branches=count --show-mcdc
66

0 commit comments

Comments
 (0)