Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor fgValueNumberBlockAssignment
"fgValueNumberBlockAssignment" had a very interesting oddity: it re-VNs the source tree of the assignment. This is unnecessary, and is in fact a pessimization, as it means we will fail to VN assignments from sources it does not understand. This change fixes that, bringing along some positive diffs from numbering stores from field indirections. "fgValueNumberBlockAssignment" also needs to maintaint the invariant that a location's VN will always match its type. It was failing to do that in cases where the assignment's source was not local. This change fixes that. Finally, this change unifies the code common to numbering "CopyBlk" and "InitBlk" cases. There is no need for them to be different.
- Loading branch information