• bratell's avatar
    Avoid repeating code when creating builtins. · bd21d72d
    bratell authored
    InstallBuiltinFunctionIds stood out when looking at code that grew
    strangely when compiled with default optimizations.
    
    This change from repeated code to a loop saves 6-7 KB of machine code.
    I suspect it's faster but I also suspect it's fast enough either way so
    that is not really a factor. Machine code reduction seen below.
    
    Code formatted with git cl format.
    
    clang x64:
    Total change: -5985 bytes
    -------------------------------------------
     +517 - Source: ?? - (gained 744, lost 227)
    -------------------------------------------
      New symbols:
           +744: v8::internal::Genesis::InstallBuiltinFunctionIds()::builtins type=d, size=744 bytes
      Removed symbols:
             -4: .L.str98 type=r, size=4 bytes
    ... [stripped 30 similar lines]
            -19: .L.str100 type=r, size=19 bytes
    
    ----------------------------------------------------------------------------------------------
     -6502 - Source: /home/bratell/src/chromium/src/v8/src/bootstrapper.cc - (gained 0, lost 6502)
    ----------------------------------------------------------------------------------------------
      Removed symbols:
          -1135: v8::internal::ResolveBuiltinIdHolder(v8::internal::Handle<v8::internal::Context>, char const*) type=t, size=1135 bytes
      Shrunk symbols:
          -5367: v8::internal::Genesis::InstallBuiltinFunctionIds() type=t, (was 7105 bytes, now 1738 bytes)
    
    BUG=
    
    Review URL: https://codereview.chromium.org/918303005
    
    Cr-Commit-Position: refs/heads/master@{#26919}
    bd21d72d
bootstrapper.cc 117 KB