HomePhabricator

[NewPM] Second attempt at porting ASan

Description

[NewPM] Second attempt at porting ASan

This is the second attempt to port ASan to new PM after D52739. This takes the
initialization requried by ASan from the Module by moving it into a separate
class with it's own analysis that the new PM ASan can use.

Changes:

  • Split AddressSanitizer into 2 passes: 1 for the instrumentation on the function, and 1 for the pass itself which creates an instance of the first during it's run. The same is done for AddressSanitizerModule.
  • Add new PM AddressSanitizer and AddressSanitizerModule.
  • Add legacy and new PM analyses for reading data needed to initialize ASan with.
  • Removed DominatorTree dependency from ASan since it was unused.
  • Move GlobalsMetadata and ShadowMapping out of anonymous namespace since the new PM analysis holds these 2 classes and will need to expose them.

Differential Revision: https://reviews.llvm.org/D56470

Details

Committed
leonardchanFeb 13 2019, 2:22 PM
Differential Revision
D56470: [NewPM] Second attempt at porting ASan
Parents
rC353984: Restore Check for Unreachable Exit Block in -Winfinite-recursion
Branches
Unknown
Tags
Unknown