Subzero: Fix a regalloc bug involving too-aggressive AllowRegisterOverlap.
See the BUG description for more details. In short, the register allocator
was inappropriately honoring AllowRegisterOverlap even when the variable's
live range overlaps with an Unhandled variable precolored to the preferred
register.
Also changes legalize() logic to recognize when a variable is guaranteed
to ultimately have a physical register due to infinite weight, and not
create a new temporary in those cases.
Finally, dumps RegisterPreference and AllowRegisterOverlap info for
Variables for improved diagnostics.
BUG= https://code.google.com/p/nativeclient/issues/detail?id=3897
R=jvoung@chromium.org
Review URL: https://codereview.chromium.org/380363002
3 files changed