Open
Bug 1137215
Opened 10 years ago
Updated 2 years ago
Improve the output range of instructions.
Categories
(Core :: JavaScript Engine: JIT, defect, P5)
Tracking
()
NEW
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.
Reporter | ||
Updated•10 years ago
|
Assignee: nobody → hv1989
Reporter | ||
Comment 1•10 years ago
|
||
(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!
Updated•8 years ago
|
Priority: -- → P5
Comment 2•2 years ago
|
||
The bug assignee is inactive on Bugzilla, so the assignee is being reset.
Assignee: hv1989 → nobody
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•