Before this patch, pass AddDiscriminators always avoided to assign
discriminators to intrinsic calls. This was done mainly for two reasons:
1) We wanted to minimize the number of based discriminators used.
2) We wanted to avoid non-deterministic discriminator assignment for
different debug levels.
Unfortunately, that approach was problematic for MemIntrinsic calls.
MemIntrinsic calls can be split by SROA into loads and stores, and each new
load/store instruction would obtain the debug location from the original
intrinsic call.
If we don't assign a discriminator to MemIntrinsic calls, then we cannot
correctly set the discriminator for the newly created loads and stores.
This may have a negative impact on the basic block weight computation
performed by the SampleLoader.
This patch fixes the issue by letting MemIntrinsic calls have a discriminator.
Differential Revision: https://reviews.llvm.org/D31900
llvm-svn: 299972
|
||
|---|---|---|
| .. | ||
| basic.ll | ||
| call-nested.ll | ||
| call.ll | ||
| dbg-declare-discriminator.ll | ||
| diamond.ll | ||
| first-only.ll | ||
| inlined.ll | ||
| memcpy-discriminator.ll | ||
| multiple.ll | ||
| no-discriminators.ll | ||
| oneline.ll | ||