-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
A shortish-term goal is to allow many different instrumentations to be created easily. We already have this to some extent, with the bounds-checking and type-checking parts. It would be good to be able to reproduce many papers' approaches/results.
I am envisaging the following parts.
- inlinifier (to get control of basic ops)
- ptrintarith and any similarly generic C-simplifying transformations
- shadowcrunch (for shadow memory, including shadow stack / 128bitifier)
- the error-handling behaviour (we already have 'abort' vs 'carry on' vs 'secondary path')
- loop analyses and check-coalescing transformations, if factorable
- C++ equivalents of the above? tricky since all the above are CIL-y
- libc wrappers where necessary
- other supporting things relevant of course: toolsub, librunt, instroscope
- link-time checking? becomes useful under the multi-ABI regime
This relates to #4, in that we have to revisit our approach to packaging dependencies more broadly.
A pitch for all this is as a more accessible (simpler), stabler (less churn) and more comprehensive (source-level) research testbench than LLVM.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels