• jarin's avatar
    Remove the template magic from types.(h|cc), remove types-inl.h. · ef35f11c
    jarin authored
    This CL removes the Config templatization from the types. It is not
    necessary anymore, after the HeapTypes have been removed.
    
    The CL also changes the type hierarchy - the specific type kinds are
    not inner classes of the Type class and they do not inherit from Type.
    This is partly because it seems impossible to make this work without
    templates. Instead, a new TypeBase class is introduced and all the
    structural (i.e., non-bitset) types inherit from it.
    
    The bitset type still requires the bit-munging hack and some nasty
    reinterpret-casts to pretend bitsets are of type Type*. Additionally,
    there is now the same hack for TypeBase - all pointers to the sub-types
    of TypeBase are reinterpret-casted to Type*. This is to keep the type
    constructors in inline method definitions (although it is unclear how
    much that actually buys us).
    
    In future, we would like to move to a model where we encapsulate Type*
    into a class (or possibly use Type where we used to use Type*). This
    would loosen the coupling between bitset size and pointer size, and
    eventually we would be able to have more bits.
    
    TBR=bradnelson@chromium.org
    
    Review URL: https://codereview.chromium.org/1655833002
    
    Cr-Commit-Position: refs/heads/master@{#33656}
    ef35f11c
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
docs 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...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE 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...
Makefile.nacl 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...