Open Bug 1137215 Opened 10 years ago Updated 2 years ago

Improve the output range of instructions.

Categories

(Core :: JavaScript Engine: JIT, defect, P5)

x86_64
Linux
defect

Tracking

()

People

(Reporter: h4writer, Unassigned)

References

Details

Currently we do: > switch (type()) { > case MIRType_Int32: > outputRange.wrapAroundToInt32(); > break; > case MIRType_Boolean: > outputRange.wrapAroundToBoolean(); > break; > case MIRType_None: > MOZ_CRASH("Asking for the range of an instruction with no value"); > default: > break; > } Though it should be possible to do: clampAroundInt32. So investigate and try to do that. That should improve our ranges we have as output range.
Assignee: nobody → hv1989
Depends on: 1135047
(In reply to Hannes Verschore [:h4writer] from comment #0) > Though it should be possible to do: clampAroundInt32. > > So investigate and try to do that. That should improve our ranges we have as > output range. The reason we do this is "Truncate analysis". The range is an upperbound and only can get decreased in passes. It is disallowed to increase the range again. Now that is what 'truncate analysis' does: [0; +inf], becomes [MIN_INT32; MAX_INT32]. As a result if an instruction can possibly get truncated, we need to use: "wrapAroundToInt32" instead of "clampAroundInt32". Since we cannot inflate the clamped range [0; MAX_INT32] to [MIN_INT32; MAX_INT32] anymore!
Priority: -- → P5

The bug assignee is inactive on Bugzilla, so the assignee is being reset.

Assignee: hv1989 → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.