This is an archive of the discontinued LLVM Phabricator instance.

LowerBitSets: Avoid reusing byte set addresses.
ClosedPublic

Authored by pcc on Mar 19 2015, 11:51 AM.

Details

Summary

Each use of the byte array uses a different alias. This makes the
backend less likely to reuse previously computed byte array addresses,
improving the security of the CFI mechanism based on this pass.

Diff Detail

Repository
rL LLVM

Event Timeline

pcc updated this revision to Diff 22287.Mar 19 2015, 11:51 AM
pcc retitled this revision from to LowerBitSets: Avoid reusing byte set addresses..
pcc updated this object.
pcc edited the test plan for this revision. (Show Details)
pcc added reviewers: kcc, jfb.
pcc added a subscriber: Unknown Object (MLST).
jfb edited edge metadata.Mar 19 2015, 12:54 PM

IIUC this pass prevents redundant load elimination by creating aliases that the compiler doesn't merge?

What's the effect on code size?

Should this be an option, so we can turn it off to compare?

kcc edited edge metadata.Mar 19 2015, 2:15 PM

Should this be an option, so we can turn it off to compare?

Yes, please.
The more such options we have the better.
This one could be on by default.

pcc updated this revision to Diff 22307.Mar 19 2015, 2:47 PM
pcc edited edge metadata.
  • Add a flag
jfb accepted this revision.Mar 19 2015, 2:50 PM
jfb edited edge metadata.

lgtm

This revision is now accepted and ready to land.Mar 19 2015, 2:50 PM
This revision was automatically updated to reflect the committed changes.