[CaptureTracking] Handle capturing of launder.invariant.group

Description

[CaptureTracking] Handle capturing of launder.invariant.group

Summary:
launder.invariant.group has the same rules of capturing as
bitcast, gep, etc - the original value is not captured
if the returned pointer is not captured.

With this patch, we mark 40% more functions as noalias when compiling with -fstrict-vtable-pointers;
1078 vs 1778 (39.37%)

Reviewers: sanjoy, davide, nlewycky, majnemer, mehdi_amini

Subscribers: JDevlieghere, llvm-commits

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

Hello,

is "-fstrict-vtable-pointers" still experimental? Cannot be on by default now?

Prazek added a comment.Sat, May 5, 8:01 AM

Hello,

is "-fstrict-vtable-pointers" still experimental? Cannot be on by default now?

Yes it is still experimental. There is couple of things left to implement from the propsal and a lot of benchmarking, but because the proposal seems to be sound I expect to finish the implementation this month.