[llvm-dev] [GlobalISel][RFC] Thoughts on MachineModulePass
John Criswell via llvm-dev
llvm-dev at lists.llvm.org
Fri Jan 22 18:39:16 PST 2016
On 1/22/16 6:16 PM, Quentin Colombet via llvm-dev wrote:
> In the initial thread of the proposal for GlobalISel, I have mentioned that it may be interesting to have a kind of MachineModulePass.
> Marcello mentioned this would be useful for their current pipeline.
> I am interested in knowing:
> 1. If anyone else is interested for such concept?
> 2. What kind of information should we make accessible in an hypothetical MachineModule? I.e., how do you plan to use the MachineModulePass so that we make the right design decisions for the MachineModule feeding those passes?
> 3. Who would be willing to work on that?
Nearly perfect timing. I just wrote a grant proposal requesting funding
to do just such a thing.
My research group is interested in a MachineModulePass because we are
using LLVM's MachineInstr infrastructure for analyzing machine code.
Specifically, we are attempting to build an infrastructure for measuring
how well various defenses work against code reuse attacks. We are
analyzing both data flow and control flow, and it would be handy for us
to be able to analyze an entire program's assembly code (because we're
looking for every last reusable instruction that an attacker could use
and how those instructions can be strung together). We want to analyze
after everything has been done (register allocation, instruction
selection and scheduling, etc.).
At the very least, we'll be doing analysis, though it is conceivable
that we would want to do transformation in the future (e.g., if we can
determine that breaking certain data flows would stop an attack, we
could transform the code to change the data flow).
Ethan, can you add anything more specific on what would be on our wish list?
As for resources, we're currently early enough in the project that we're
not needing the inter-procedural analysis, and if we do need it, it may
be quicker for us to hack something together than to enhance LLVM
properly. The point of the proposal is to seek additional funding so
that we could afford to do things properly instead of just hacking
something together just to meet our own research needs. That said, if
we makes sense to join forces, we'd certainly be open to doing that.
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
Department of Computer Science, University of Rochester
More information about the llvm-dev