Skip to content

Commit 91e0d6d

Browse files
author
zhuyunxing
committed
coverage. Disable supporting mcdc on llvm-18
1 parent 1e6e3fb commit 91e0d6d

15 files changed

+27
-59
lines changed

compiler/rustc_codegen_llvm/src/builder.rs

Lines changed: 3 additions & 3 deletions
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

Lines changed: 8 additions & 30 deletions
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

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1537,31 +1537,21 @@ LLVMRustGetInstrProfIncrementIntrinsic(LLVMModuleRef M) {
15371537

15381538
extern "C" LLVMValueRef
15391539
LLVMRustGetInstrProfMCDCParametersIntrinsic(LLVMModuleRef M) {
1540-
#if LLVM_VERSION_GE(18, 0)
1540+
#if LLVM_VERSION_GE(19, 0)
15411541
return wrap(llvm::Intrinsic::getDeclaration(
15421542
unwrap(M), llvm::Intrinsic::instrprof_mcdc_parameters));
15431543
#else
1544-
report_fatal_error("LLVM 18.0 is required for mcdc intrinsic functions");
1544+
report_fatal_error("LLVM 19.0 is required for mcdc intrinsic functions");
15451545
#endif
15461546
}
15471547

15481548
extern "C" LLVMValueRef
15491549
LLVMRustGetInstrProfMCDCTVBitmapUpdateIntrinsic(LLVMModuleRef M) {
1550-
#if LLVM_VERSION_GE(18, 0)
1550+
#if LLVM_VERSION_GE(19, 0)
15511551
return wrap(llvm::Intrinsic::getDeclaration(
15521552
unwrap(M), llvm::Intrinsic::instrprof_mcdc_tvbitmap_update));
15531553
#else
1554-
report_fatal_error("LLVM 18.0 is required for mcdc intrinsic functions");
1555-
#endif
1556-
}
1557-
1558-
extern "C" LLVMValueRef
1559-
LLVMRustGetInstrProfMCDCCondBitmapIntrinsic(LLVMModuleRef M) {
1560-
#if LLVM_VERSION_GE(18, 0)
1561-
return wrap(llvm::Intrinsic::getDeclaration(
1562-
unwrap(M), llvm::Intrinsic::instrprof_mcdc_condbitmap_update));
1563-
#else
1564-
report_fatal_error("LLVM 18.0 is required for mcdc intrinsic functions");
1554+
report_fatal_error("LLVM 19.0 is required for mcdc intrinsic functions");
15651555
#endif
15661556
}
15671557

tests/coverage/mcdc/condition-limit.coverage

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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)