Reviewers: Jakob,

Description:
[date] Refactor the %_DateField intrinsic to be optimizable.

Previously the %_DateField intrinsic would also check the object and
throw an exception if you happen to pass something that is not a valid
JSDate, which (a) violates our policy for instrinsics and (b) is hard to
optimize in TurboFan (even Crankshaft has a hard time, but there we will
never inline the relevant builtins, so it doesn't show up). The throwing
part is not a separate intrinsics %_ThrowIfNotADate that throws an
exception in full codegen and deoptimizes in Crankshaft, which means the
code for the current use cases is roughly the same (modulo some register
renamings/gap moves).

R=jkumme...@chromium.org

Please review this at https://codereview.chromium.org/1167813003/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+262, -118 lines):
  M src/arm/full-codegen-arm.cc
  M src/arm/lithium-arm.cc
  M src/arm/lithium-codegen-arm.cc
  M src/arm64/full-codegen-arm64.cc
  M src/arm64/lithium-arm64.cc
  M src/arm64/lithium-codegen-arm64.cc
  M src/bailout-reason.h
  M src/compiler/linkage.cc
  M src/date.js
  M src/deoptimizer.h
  M src/full-codegen.h
  M src/hydrogen.h
  M src/hydrogen.cc
  M src/hydrogen-instructions.h
  M src/hydrogen-instructions.cc
  M src/ia32/full-codegen-ia32.cc
  M src/ia32/lithium-codegen-ia32.cc
  M src/ia32/lithium-ia32.cc
  M src/macros.py
  M src/mips/full-codegen-mips.cc
  M src/mips/lithium-codegen-mips.cc
  M src/mips/lithium-mips.cc
  M src/mips64/full-codegen-mips64.cc
  M src/mips64/lithium-codegen-mips64.cc
  M src/mips64/lithium-mips64.cc
  M src/runtime/runtime.h
  M src/runtime/runtime-date.cc
  M src/x64/full-codegen-x64.cc
  M src/x64/lithium-codegen-x64.cc
  M src/x64/lithium-x64.cc


--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to