There's an asymmetry in the definitions of findBaseDefiningValueOfVector() and
findBaseDefiningValue() of RS4GC. The later handles call and invoke instructions,
and the former does not. This appears to be simple oversight. This patch remedies
the oversight by adding the call and invoke cases to findBaseDefiningValueOfVector().
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
I wonder is it possible to handle this two instructions, GEPs, bitcasts, loads, and other in findBaseDefiningValue to avoid code duplication and such oversights?
Comment Actions
We could, but I guess the idea is to explicitly think about vector and scalar code separately.
Comment Actions
lgtm w/ comment addressed.
test/Transforms/RewriteStatepointsForGC/base-vector.ll | ||
---|---|---|
267 ↗ | (On Diff #131834) | please add a testcase for invoke as well. We should exercise that code path (there's a testcase in invokes.ll for the scalar version). |