[PATCH] Implement Control Flow Integrity for virtual calls.

JF Bastien jfb at chromium.org
Thu Feb 19 09:47:50 PST 2015


This patch lgtm: IIUC it sounds like devirtualization will still be possible with this approach.


================
Comment at: docs/ControlFlowIntegrity.rst:20
@@ +19,3 @@
+program's control flow. These schemes have been optimized for performance,
+allowing developers to enable them in release builds.
+
----------------
Is there a reference number we can quote, or a benchmark that users can run to check what the overheads are?

================
Comment at: docs/ControlFlowIntegrity.rst:48
@@ +47,3 @@
+exempted from checking, and therefore programs may be linked against a
+regular standard library, but this may change in the future.
+
----------------
s/regular/pre-built/ or something along those lines.

That makes me wonder: for PNaCl we could have a version of libc++.a that also has CFI. Could the exclusion list be done through module metadata merging? i.e. doing LTO on a module without CFI lists its classes and adds exclusions for them, and modules with CFI "just work"?

I wouldn't do this in the current patch.

================
Comment at: docs/ControlFlowIntegrity.rst:63
@@ +62,2 @@
+Caroline Tice, Tom Roeder, Peter Collingbourne, Stephen Checkoway,
+Ulfar Erlingsson, Luis Lozano, Geoff Pike.
----------------
Ăšlfar, here and above?

http://reviews.llvm.org/D7424

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the cfe-commits mailing list