HomePhabricator

[NewPM] Port Msan

Description

[NewPM] Port Msan

Summary:
Keeping msan a function pass requires replacing the module level initialization:
That means, don't define a ctor function which calls __msan_init, instead just
declare the init function at the first access, and add that to the global ctors
list.

Changes:

  • Pull the actual sanitizer and the wrapper pass apart.
  • Add a newpm msan pass. The function pass inserts calls to runtime library functions, for which it inserts declarations as necessary.
  • Update tests.

Caveats:

  • There is one test that I dropped, because it specifically tested the definition of the ctor.

Reviewers: chandlerc, fedor.sergeev, leonardchan, vitalybuka

Subscribers: sdardis, nemanjai, javed.absar, hiraditya, kbarton, bollu, atanasyan, jsji

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

Details

Committed
pfaffeJan 3 2019, 5:42 AM
Differential Revision
D55647: [NewPM] Port Msan: Second alternative approach without any module level initalization
Branches
Unknown
Tags
Unknown

Event Timeline