• Benedikt Meurer's avatar
    [turbofan] Improve representation selection for Smi checking. · dfbb3db5
    Benedikt Meurer authored
    Rename the high-level operators CheckTaggedSigned to CheckSmi and
    CheckTaggedPointer to CheckHeapObject, to better match the naming
    convention (i.e. ObjectIsSmi and CheckSmi, ObjectIsString and
    CheckString, etc.).
    
    For lowering CheckSmi, always report TaggedSigned representation
    and let the RepresentationChanger come up with a reasonable conversion
    from whatever input representation to TaggedSigned. This way we no
    longer insert the useless ChangeSomethingToTagged and then Smi check
    the result sequences, i.e. mostly reduces the amount of useless code
    being generated. But we also observe a few performance improvements
    on some crypto benchmarks.
    
    This would enable us to avoid the Smi canonicalization when going from
    Float64 to Tagged completely and thus match the representation selection
    of Crankshaft in many areas (which might reduce the amount of
    polymorphism until we fix our object model).
    
    A follow-up CL will do the same for CheckHeapObject.
    
    BUG=v8:5267
    R=jarin@chromium.org
    
    Review URL: https://codereview.chromium.org/2362173003 .
    
    Cr-Commit-Position: refs/heads/master@{#39654}
    dfbb3db5
js-builtin-reducer.cc 45 KB