With this patch we track a IsDerived state for BDVs.
It is true for a given BDV if any of its operands is not equal to its BDV (stripping pointer casts).
If we find out that a pointer for which we are finding a base has a single base and has no derived inputs, we say that this pointer is actually equal to its base, so it is a base pointer itself, hence there's no need to relocate the original base along with this 'derived' pointer.
Details
Details
- Reviewers
mkazantsev skatkov reames fhahn sanjoy
Diff Detail
Diff Detail
Unit Tests
Unit Tests
Event Timeline
Comment Actions
LGTM w/ nit.
llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp | ||
---|---|---|
847 | I think a clarifying comment is needed here. Does IsDerived = true mean that it must be a derived pointer, or does it simply mean that we haven't proven it's a base? |
I think a clarifying comment is needed here. Does IsDerived = true mean that it must be a derived pointer, or does it simply mean that we haven't proven it's a base?