Description[turbofan] Improve representation selection for HeapObject checking.
For lowering CheckHeapObject, always report TaggedPointer representation
and let the RepresentationChanger come up with a reasonable conversion from
whatever input representation to TaggedPointer. This way we no longer insert
the useless ChangeSomethingToTagged and then check the result for HeapObject,
i.e. mostly reduces the amount of useless code being generated.
Note there are now two operators ChangeFloat64ToTaggedPointer and the old
ChangeFloat64ToTagged, because their semantics different wrt. the strength
reduction in the SimplifiedOperatorReducer.
Also set the output MachineRepresentation::kTaggedPointer properly in
SimplifiedLowering whenever we know that we produce a HeapObject.
R=jarin@chromium.org
BUG=v8:5267
Committed: https://crrev.com/6322bf41613fd0df785ae4341e674fa9ee09c9d4
Cr-Commit-Position: refs/heads/master@{#40725}
Patch Set 1 #Patch Set 2 : REBASE and fix. #
Messages
Total messages: 15 (8 generated)
|