Register allocator improvement -- avoid generating unreachable reconciliation code

NEW
Assigned to

Status

Tamarin
Baseline JIT (CodegenLIR)
7 years ago
7 years ago

People

(Reporter: William Maddox, Assigned: William Maddox)

Tracking

unspecified
Future
Bug Flags:
flashplayer-injection -
flashplayer-qrb +
flashplayer-bug -

Details

(Assignee)

Description

7 years ago
In some cases, we generate unreachable register reconciliation code following an unconditional branch.  Besides the inefficiency, failure to clearly distinguish the no-fallthrough cases can mislead the programmer into writing code in which the state merging seems to done properly, the but the actual execution does not conform.  Similarly, our treatment of loop-carried variables is less than optmimal when a loop ends with an unconditional backward branch.

See https://bugzilla.mozilla.org/show_bug.cgi?id=637809#c4 and the following discussion.
(Assignee)

Updated

7 years ago
Assignee: nobody → wmaddox
Target Milestone: --- → Q1 12 - Brannan

Comment 1

7 years ago
We're going to address register allocator issues in the next year immediatley after half moon or concurrent with it.  Retargeting this bug to Future for now and we'll group this with the regalloc improvements later.
Target Milestone: Q1 12 - Brannan → Future

Updated

7 years ago
Flags: flashplayer-qrb+
Flags: flashplayer-injection-
Flags: flashplayer-bug-
You need to log in before you can comment on or make changes to this bug.