• Nico Hartmann's avatar
    [TurboFan] Streamline BigInt.asUintN lowering · 98300313
    Nico Hartmann authored
    This CL applies the following changes:
    - JSCallReducer no longer generates a CheckBigInt in front of the
      generated BigIntAsUintN.
    - This results in a slight change of the semantics of the latter, which
      now includes the necessary type check. Typer and Verifier are changed
      accordingly.
    - The BigIntAsUintN operator is now effectful, since it can now deopt.
    - IrOpcode::kBigIntAsUintN is now lowered in SimplifedLowering instead
      of EffectControlLinearizer, the necessary type check is introduced
      by the RepresentationChanger.
    - Adds a small mjsunit test to check the correct deoptimization behavior
      of optimized BigInt.asUintN.
    ==> Remove UseInfo::TruncatingWord64()!
    
    Drive-by: Fix an issue in ChangeUnaryToPureBinaryOp when the new_input
    is at index 1.
    Drive-by: Introduce an %Is64Bit() intrinsic to allow tests to
    distinguish 32 and 64 bit architectures.
    
    Bug: v8:11682
    Change-Id: I448f892d3bd2280d731ae5b248c833de8faf1bd5
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2843816
    Commit-Queue: Nico Hartmann <nicohartmann@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#74147}
    98300313
js-call-reducer.cc 311 KB