From acf2ef4d5ff21688f0d978e7e0011131e2b80d5c Mon Sep 17 00:00:00 2001
From: mc2zk <mc2zk@git.zephyr-software.com>
Date: Mon, 11 Dec 2017 17:40:49 +0000
Subject: [PATCH] Adding assurance case gathering annotation for PNXform

Former-commit-id: d5adb3968d20c198e1eed4829879ee22fb25baa5
---
 tools/transforms/PNTransformDriver.cpp | 31 +++++++++++++++++---------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/tools/transforms/PNTransformDriver.cpp b/tools/transforms/PNTransformDriver.cpp
index 7d4ea7258..bd4b78e72 100644
--- a/tools/transforms/PNTransformDriver.cpp
+++ b/tools/transforms/PNTransformDriver.cpp
@@ -1819,11 +1819,13 @@ void PNTransformDriver::Print_Report()
 	for(unsigned int i=0;i<history_keys.size();++i)
 	{
 		cerr<<"\tLayout: "<<history_keys[i]<<endl;
+		cerr<<"# ATTRIBUTE pnxform::Layout="<<history_keys[i]<<endl;
 		vector<PNStackLayout*> layouts = transformed_history[history_keys[i]];
 
 		map<int,int> obj_histogram;
 
 		cerr<<"\t\tTotal Transformed: "<<layouts.size()<<endl;
+		cerr<<"# ATTRIBUTE pnxform::Total_Transformed="<<layouts.size()<<endl;
 
 		int p1reductions = 0;
 		double mem_obj_avg = 0.0;
@@ -1862,6 +1864,7 @@ void PNTransformDriver::Print_Report()
 		}
 
 		cerr<<"\t\tP1 Reductions: "<<p1reductions<<endl;
+		cerr<<"# ATTRIBUTE pnxform::P1_Reductions="<<p1reductions<<endl;
 	}
 
 	cerr<<"----------------------------------------------"<<endl;
@@ -1885,17 +1888,23 @@ void PNTransformDriver::Print_Report()
 	cerr<<"Transformable Functions \t"<<(total_funcs-not_transformable.size())<<endl;
 	cerr<<"Transformed \t\t\t"<<total_transformed<<endl;
 
-	cerr<<"pnxform::Non-Blacklisted Functions \t"<<total_funcs<<endl;
-	cerr<<"pnxform::Blacklisted Functions \t\t"<<blacklist_funcs<<endl;
-	cerr<<"pnxform::Sanitized Functions \t\t"<<sanitized_funcs<<endl;
-	cerr<<"pnxform::Push/Pop Sanitized Functions \t\t"<<push_pop_sanitized_funcs<<endl;
-	cerr<<"pnxform::Cond Frame Sanitized Functions \t\t"<<cond_frame_sanitized_funcs<<endl;
-	cerr<<"pnxform::EH-land-pad-not-in-func Sanitized Functions \t\t"<<eh_sanitized<<endl;
-	cerr<<"pnxform::Bad Variadic Sanitized Functions \t\t"<<push_pop_sanitized_funcs<<endl;
-	cerr<<"pnxform::Jump table Sanitized Functions \t\t"<<jump_table_sanitized<<endl;
-	cerr<<"pnxform::PIC Jump table Sanitized Functions \t\t"<<jump_table_sanitized<<endl;
-	cerr<<"pnxform::Transformable Functions \t"<<(total_funcs-not_transformable.size())<<endl;
-	cerr<<"pnxform::Transformed \t\t\t"<<total_transformed<<endl;
+	cerr<<"# ATTRIBUTE pnxform::Functions_validated_exceeding_threshold="<<high_coverage_count<<endl;
+	cerr<<"# ATTRIBUTE pnxform::Functions_validated_ with_ nonZero_coverage_below_or_ equal_to_threshold="<<low_coverage_count<<endl;
+	cerr<<"# ATTRIBUTE pnxform::Functions_modified_with_no_coverage="<<no_coverage_count<<endl;
+	cerr<<"# ATTRIBUTE pnxform::Total_recursive_validations_performed="<<validation_count<<endl;
+
+	cerr<<"# ATTRIBUTE pnxform::NonBlacklisted_Functions="<<total_funcs<<endl;
+	cerr<<"# ATTRIBUTE pnxform::Blacklisted Functions="<<blacklist_funcs<<endl;
+	cerr<<"# ATTRIBUTE pnxform::Sanitized_Functions="<<sanitized_funcs<<endl;
+	cerr<<"# ATTRIBUTE pnxform::PushPop_Sanitized_Functions="<<push_pop_sanitized_funcs<<endl;
+	cerr<<"# ATTRIBUTE pnxform::CondFrameSanitized_Functions="<<cond_frame_sanitized_funcs<<endl;
+	cerr<<"# ATTRIBUTE pnxform::EH_land_pad_not_in_FuncSanitizedFunctions="<<eh_sanitized<<endl;
+	cerr<<"# ATTRIBUTE pnxform::BadVariadicSanitizedFunctions="<<push_pop_sanitized_funcs<<endl;
+	cerr<<"# ATTRIBUTE pnxform::JumpTableSanitized_Functions="<<jump_table_sanitized<<endl;
+	cerr<<"# ATTRIBUTE pnxform::PICJumpTableSanitized_Functions="<<jump_table_sanitized<<endl;
+	cerr<<"# ATTRIBUTE pnxform::Transformables_Functions="<<(total_funcs-not_transformable.size())<<endl;
+	cerr<<"# ATTRIBUTE pnxform::Transformed="<<total_transformed<<endl;
+	cerr<<"# ATTRIBUTE pnxform::PctTransformable_Transformed="<<std::fixed<<((double)(total_transformed)/(double)(total_funcs-not_transformable.size()))<<endl;
 }
 
 
-- 
GitLab