|
[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 now 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=jkummerow@chromium.org
Committed: https://crrev.com/e4782a9b468258344d512a5f7dadbf1584928849
Cr-Commit-Position: refs/heads/master@{#28782}
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+265 lines, -122 lines) |
Patch |
|
M |
src/arm/full-codegen-arm.cc
|
View
|
|
3 chunks |
+25 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/arm/lithium-arm.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/arm/lithium-codegen-arm.cc
|
View
|
1
2
|
1 chunk |
+1 line, -6 lines |
0 comments
|
Download
|
|
M |
src/arm64/full-codegen-arm64.cc
|
View
|
|
3 chunks |
+25 lines, -12 lines |
0 comments
|
Download
|
|
M |
src/arm64/lithium-arm64.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/arm64/lithium-codegen-arm64.cc
|
View
|
|
2 chunks |
+2 lines, -7 lines |
0 comments
|
Download
|
|
M |
src/bailout-reason.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/linkage.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/date.js
|
View
|
|
29 chunks |
+48 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/deoptimizer.h
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
src/full-codegen.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/hydrogen.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/hydrogen.cc
|
View
|
|
1 chunk |
+11 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/hydrogen-instructions.h
|
View
|
|
2 chunks |
+4 lines, -1 line |
0 comments
|
Download
|
|
M |
src/hydrogen-instructions.cc
|
View
|
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/ia32/full-codegen-ia32.cc
|
View
|
|
3 chunks |
+25 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/ia32/lithium-codegen-ia32.cc
|
View
|
1
2
|
1 chunk |
+1 line, -6 lines |
0 comments
|
Download
|
|
M |
src/ia32/lithium-ia32.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/macros.py
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/mips/full-codegen-mips.cc
|
View
|
|
3 chunks |
+25 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/mips/lithium-codegen-mips.cc
|
View
|
1
2
|
1 chunk |
+1 line, -7 lines |
0 comments
|
Download
|
|
M |
src/mips/lithium-mips.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/mips64/full-codegen-mips64.cc
|
View
|
1
|
3 chunks |
+25 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/mips64/lithium-codegen-mips64.cc
|
View
|
|
1 chunk |
+1 line, -7 lines |
0 comments
|
Download
|
|
M |
src/mips64/lithium-mips64.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/runtime/runtime.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-date.cc
|
View
|
|
2 chunks |
+17 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/x64/full-codegen-x64.cc
|
View
|
|
4 chunks |
+30 lines, -10 lines |
0 comments
|
Download
|
|
M |
src/x64/lithium-codegen-x64.cc
|
View
|
|
1 chunk |
+6 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/x64/lithium-x64.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
Total messages: 9 (2 generated)
|