diff options
author | Alon Zakai <alonzakai@gmail.com> | 2017-08-28 15:21:34 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-28 15:21:34 -0700 |
commit | 5c2f4ab22367d04753678fbd12d67b4dc2a29010 (patch) | |
tree | 6e8962c2bb02067640853b0c48a090eeb4bcb252 /src/passes/pass.cpp | |
parent | 8c89a7baae740013b038865fc4e290439b91eb6f (diff) | |
download | binaryen-5c2f4ab22367d04753678fbd12d67b4dc2a29010.tar.gz binaryen-5c2f4ab22367d04753678fbd12d67b4dc2a29010.tar.bz2 binaryen-5c2f4ab22367d04753678fbd12d67b4dc2a29010.zip |
Safe heap pass (#1145)
Adds --safe-heap which instruments the code to check heap loads and stores for validity (null pointer derefs, within range of valid sbrk memory, and alignment). Used in SAFE_HEAP in emscripten.
Diffstat (limited to 'src/passes/pass.cpp')
-rw-r--r-- | src/passes/pass.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp index 1e56169df..4ffd74047 100644 --- a/src/passes/pass.cpp +++ b/src/passes/pass.cpp @@ -101,6 +101,7 @@ void PassRegistry::registerPasses() { registerPass("reorder-locals", "sorts locals by access frequency", createReorderLocalsPass); registerPass("rereloop", "re-optimize control flow using the relooper algorithm", createReReloopPass); registerPass("simplify-locals", "miscellaneous locals-related optimizations", createSimplifyLocalsPass); + registerPass("safe-heap", "instrument loads and stores to check for invalid behavior", createSafeHeapPass); registerPass("simplify-locals-notee", "miscellaneous locals-related optimizations", createSimplifyLocalsNoTeePass); registerPass("simplify-locals-nostructure", "miscellaneous locals-related optimizations", createSimplifyLocalsNoStructurePass); registerPass("simplify-locals-notee-nostructure", "miscellaneous locals-related optimizations", createSimplifyLocalsNoTeeNoStructurePass); |