• 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
Name
Last commit
Last update
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
fuzzer Loading commit data...
inspector_protocol_parser_test Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
simdjs Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...