pub struct CrateCoverageContext<'ll, 'tcx> {
pub(crate) function_coverage_map: RefCell<FxIndexMap<Instance<'tcx>, FunctionCoverageCollector<'tcx>>>,
pub(crate) pgo_func_name_var_map: RefCell<FxHashMap<Instance<'tcx>, &'ll Value>>,
pub(crate) mcdc_condition_bitmap_map: RefCell<FxHashMap<Instance<'tcx>, &'ll Value>>,
}
Expand description
A context object for maintaining all state needed by the coverageinfo module.
Fields§
§function_coverage_map: RefCell<FxIndexMap<Instance<'tcx>, FunctionCoverageCollector<'tcx>>>
Coverage data for each instrumented function identified by DefId.
pgo_func_name_var_map: RefCell<FxHashMap<Instance<'tcx>, &'ll Value>>
§mcdc_condition_bitmap_map: RefCell<FxHashMap<Instance<'tcx>, &'ll Value>>
Implementations§
source§impl<'ll, 'tcx> CrateCoverageContext<'ll, 'tcx>
impl<'ll, 'tcx> CrateCoverageContext<'ll, 'tcx>
pub fn new() -> Self
pub fn take_function_coverage_map( &self ) -> FxIndexMap<Instance<'tcx>, FunctionCoverageCollector<'tcx>>
sourcefn try_get_mcdc_condition_bitmap(
&self,
instance: &Instance<'tcx>
) -> Option<&'ll Value>
fn try_get_mcdc_condition_bitmap( &self, instance: &Instance<'tcx> ) -> Option<&'ll Value>
LLVM use a temp value to record evaluated mcdc test vector of each decision, which is called condition bitmap.
This value is named mcdc.addr
(same as clang) and is a 32-bit integer.
Auto Trait Implementations§
impl<'ll, 'tcx> !DynSend for CrateCoverageContext<'ll, 'tcx>
impl<'ll, 'tcx> !DynSync for CrateCoverageContext<'ll, 'tcx>
impl<'ll, 'tcx> !Freeze for CrateCoverageContext<'ll, 'tcx>
impl<'ll, 'tcx> !RefUnwindSafe for CrateCoverageContext<'ll, 'tcx>
impl<'ll, 'tcx> !Send for CrateCoverageContext<'ll, 'tcx>
impl<'ll, 'tcx> !Sync for CrateCoverageContext<'ll, 'tcx>
impl<'ll, 'tcx> Unpin for CrateCoverageContext<'ll, 'tcx>
impl<'ll, 'tcx> !UnwindSafe for CrateCoverageContext<'ll, 'tcx>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 144 bytes