Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Have callees set up their shadow frame.
Before this change we'd have caller's allocate shadow space. Besides being an unconventional strategy, this also means that we allocate shadow space for things which will never require shadow space. We even had to conservatively allocate shadow space before external calls just in case they call-back into functions that do need shadow space. This change makes each callee requiring a shadow frame allocate it itself. Read the comment at the top of ShadowStack.cpp for implementation details. Measuring about a 22% speedup on bigloop.
- Loading branch information