Skip to content

Instrumentations should be more factored #7

@stephenrkell

Description

@stephenrkell

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions