Open Bug 871881 Opened 11 years ago Updated 2 years ago

Reconsider the extent of range analysis

Categories

(Core :: JavaScript Engine, enhancement)

enhancement

Tracking

()

People

(Reporter: dougc, Unassigned)

References

Details

Ionmonkey has a range analysis stage and adds beta nodes at the start to support splitting a definition's range along separate control flow paths.  The beta nodes are removed at the end of this range analysis stage, and this destroys the distinct ranges for the separate paths.  Some of the range type information will have been propagated into other definitions, however there is still a significant loss of range information. Further, subsequent folding operations that discard definitions also discard the ranges propagated into them.

The range information is not completely removed after range analysis, but it not in a good state to be used by subsequent compiler stages.

If the intention is to have all range based decisions made within the range analysis state then perhaps it would be better to completely remove the ranges when done.

If the intention is to make useful range information available to subsequent stages then perhaps keeping the beta nodes needs to be explored, or a systematic approach to recording type information against uses needs to be explored.
Assignee: general → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.