diff options
author | Derek Schuff <dschuff@chromium.org> | 2013-01-17 13:15:42 -0800 |
---|---|---|
committer | Derek Schuff <dschuff@chromium.org> | 2013-01-17 13:15:42 -0800 |
commit | 6dead1cbf252b2a84f774c9b37f775062281e701 (patch) | |
tree | 76f7fa308115a9559c27da8f6e0dcc05a404acfe /lib/CodeGen/CallingConvLower.cpp | |
parent | bedd5104775bcc8ed851721de63a01c9a032869f (diff) |
Skeleton for pass-based bitcode ABI verifier
This is the skeleton for a verifier for the portion of the PNaCl bitcode ABI
that can be verified after the bitcode has been read into a Module object.
There is a ModulePass for module-level rules (e.g. GV linkage types) and a
FunctionPass for rules that apply to function bodies (e.g. legal instructions).
They are separated this way to keep the verifier streaming-friendly.
For now, the passes are registered but not hooked up, so they can only be run
manually via opt.
There are 2 bits of actual functionality, just so each pass has something to do:
The ModulePass checks the linkage types of GVs, and the FunctionPass checks
instruction opcodes. For now only the terminator instructions are checked, but
the idea is to add the rest of the allowed instructions to the whitelist,
and possibly call operand checks from the switch statement as well.
For now we just print messagees to stderr, but we will probably want a better
way to plumb the errors in the browser in the future.
R=jvoung@chromium.org,sehr@chromium.org
BUG= https://code.google.com/p/nativeclient/issues/detail?id=2196
Review URL: https://codereview.chromium.org/11986002
Diffstat (limited to 'lib/CodeGen/CallingConvLower.cpp')
0 files changed, 0 insertions, 0 deletions