Valgrindでやってるような memory shadowing は、64ビット環境を対象にするとアドレス空間がでかくなるので、今までやってたやり方だと無理とは言わないまでも遅いですよ。
んで、著者らが知っている限りの64-bitのshadow memory実装の中で一番早いやつと比べて半分くらいにしました。
アプリが使うメモリの各byteに対して (byteでないこともある) メタ情報をくっつけるのが目的です
例えばこのbyteは正当にmallocで確保されたとか、スタック上だとか、 または誰も正当な手法で確保してない、のにアクセスされた、ということがわかれば、違反操作だ、ということになります。
64bitになるとshadowする対象が超でかくなるので、まあ適当にlocalityとか使って工夫しないと速くならないですよね、という話