Skip to content
Snippets Groups Projects
Commit 6152d56f authored by an7s's avatar an7s
Browse files

...

parent 5d6b55e9
No related branches found
No related tags found
No related merge requests found
Note
------------------
20110622 To turn on P1 off the main trun, uncomment the comments in $PEASOUP_HOME/tools/ps_analyze.h that have to do with P1.
Tool Chain
------------------
MEDS: produces annotations
......@@ -16,7 +20,7 @@ Produce coverage information for all candidate functions
Use instruction execution information provided by Grace + instructions info per function provided by MEDS/ELF (for a fn, metric is: #instructions-visited/#instructions-in-function). A better metric here could be: #instructions-stack-reference/#instruction-stack-references-in-function (TBD).
Run BED (Behavioral Equivalence Detector)
Use GrammatTech's replayer tool
Use GrammaTech's replayer tool
Produce final set of spri rules by merging all functions that pass BED
Literally a merge of all the files
......@@ -31,16 +35,19 @@ Deploy binary
NB: to do later: if validation fails we need to iterate and remove rules until we get a set of rules that pass BED. One way of doing this is to use coverage information to guide this search, i.e., start by removing the least covered functions first.
Notes
-----------------------------
P1 only attempts to transform functions that are "nice" (stack frame alloc/dealloc, not memory safe)
------------------
P1 only attempts to transform functions that are "nice" (1 stack frame alloc/dealloc, not memory safe)
Example stats for test1.exe:
1027 functions, test1.exe(18), libc(1009)
P1 candidate functions(131), non-candidate functions (584) [bug?]
filtered-out functions(896) [no instruction coverage]
#functions P1 transformed (43), user-functions (13/18), MEDS safe:(4/18), main not transformed
P1 candidate fns (333) P1 non-candidate (not "p1-nice") (584), non-candidate-MEDS-safe (110)
filtered-out functions(896) [no instruction coverage]
P1 candidate functions(131)
BEDS(P1): 43/131 functions validated
#functions P1 transformed (43), libc(25), user-functions (13/18), MEDS safe:(4/18), main not transformed
P1 works by pattern matching to find and transform stack references. The set of rules is incomplete and probably does not handle corner cases
P1 only tested on simple test programs (test1, dumbledore), and with -fomit-frame-pointer
Next steps:
Next steps
------------------
Push P1 through Spec2006. Find bugs. Fix them. Iterate.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment