• 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...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party/binutils Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...