about summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa/src/traits/coverageinfo.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_codegen_ssa/src/traits/coverageinfo.rs')
-rw-r--r--compiler/rustc_codegen_ssa/src/traits/coverageinfo.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_ssa/src/traits/coverageinfo.rs b/compiler/rustc_codegen_ssa/src/traits/coverageinfo.rs
new file mode 100644
index 00000000000..b74e4e45901
--- /dev/null
+++ b/compiler/rustc_codegen_ssa/src/traits/coverageinfo.rs
@@ -0,0 +1,31 @@
+use super::BackendTypes;
+use rustc_middle::mir::coverage::*;
+use rustc_middle::ty::Instance;
+
+pub trait CoverageInfoMethods: BackendTypes {
+    fn coverageinfo_finalize(&self);
+}
+
+pub trait CoverageInfoBuilderMethods<'tcx>: BackendTypes {
+    fn create_pgo_func_name_var(&self, instance: Instance<'tcx>) -> Self::Value;
+
+    fn add_counter_region(
+        &mut self,
+        instance: Instance<'tcx>,
+        function_source_hash: u64,
+        id: CounterValueReference,
+        region: CodeRegion,
+    );
+
+    fn add_counter_expression_region(
+        &mut self,
+        instance: Instance<'tcx>,
+        id: InjectedExpressionIndex,
+        lhs: ExpressionOperandId,
+        op: Op,
+        rhs: ExpressionOperandId,
+        region: CodeRegion,
+    );
+
+    fn add_unreachable_region(&mut self, instance: Instance<'tcx>, region: CodeRegion);
+}