Commit 37e05bf3 authored by Vladimir Marko's avatar Vladimir Marko
Browse files

Quick: Disable DCE until we fix FP/Core reg mismatches.

GVN and TypeInference can miss some FP/Core register
mismatch:
    const v0, #X     ; marked as float
    invoke-virtual v0, void foo(float)
    const v0, #X     ; marked as core
    aput v0, v1, v2  ; float[] not used
The second const is eliminated by the DCE because it writes
the same value to the same dalvik reg. We replace the SSA
register name defined by the first const and used by the
invoke-virtual with the one defined by the second const.
When we generate code for the invoke-virtual, we get a core
location and may need a temporary to set up the FP argument
and we may not have an available temporary.

This may affect the bug below (more investigation needed).

Bug: 19419671
Change-Id: I44abd390706b980c346b36c9828a3bcb4e96726d
parent 35757740
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment