3f36e658c8
Reason for revert: Must revert for now due to chromium api natives issues. Original issue's description: > Type Feedback Vector lives in the closure > > (RELAND: the problem before was a missing write barrier for adding the code > entry to the new closure. It's been addressed with a new macro instruction > and test. The only change to this CL is the addition of two calls to > __ RecordWriteCodeEntryField() in the platform CompileLazy builtin.) > > We get less "pollution" of type feedback if we have one vector per native > context, rather than one for the whole system. This CL moves the vector > appropriately. > > We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The > vector actually lives in the first slot of the literals array (indeed there is > great commonality between those arrays, they can be thought of as the same > thing). So we make greater effort to ensure there is a valid literals array > after compilation. > > This meant, for performance reasons, that we needed to extend > FastNewClosureStub to support creating closures with literals. And ultimately, > it drove us to move the optimized code map lookup out of FastNewClosureStub > and into the compile lazy builtin. > > The heap change is trivial so I TBR Hannes for it... > Also, Yang has had a look at the debugger changes already and approved 'em. So he is TBR style too. > And Benedikt reviewed it as well. > > TBR=hpayer@chromium.org, yangguo@chromium.org, bmeurer@chromium.org > > BUG= > > Committed: https://crrev.com/bb31db3ad6de16f86a61f6c7bbfd3274e3d957b5 > Cr-Commit-Position: refs/heads/master@{#33741} TBR=bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1670813005 Cr-Commit-Position: refs/heads/master@{#33766} |
||
---|---|---|
.. | ||
arm | ||
arm64 | ||
ia32 | ||
mips | ||
mips64 | ||
ppc | ||
x64 | ||
branch-elimination-unittest.cc | ||
change-lowering-unittest.cc | ||
coalesced-live-ranges-unittest.cc | ||
common-operator-reducer-unittest.cc | ||
common-operator-unittest.cc | ||
compiler-test-utils.h | ||
control-equivalence-unittest.cc | ||
control-flow-optimizer-unittest.cc | ||
dead-code-elimination-unittest.cc | ||
diamond-unittest.cc | ||
escape-analysis-unittest.cc | ||
graph-reducer-unittest.cc | ||
graph-reducer-unittest.h | ||
graph-trimmer-unittest.cc | ||
graph-unittest.cc | ||
graph-unittest.h | ||
instruction-selector-unittest.cc | ||
instruction-selector-unittest.h | ||
instruction-sequence-unittest.cc | ||
instruction-sequence-unittest.h | ||
interpreter-assembler-unittest.cc | ||
interpreter-assembler-unittest.h | ||
js-builtin-reducer-unittest.cc | ||
js-context-relaxation-unittest.cc | ||
js-intrinsic-lowering-unittest.cc | ||
js-operator-unittest.cc | ||
js-type-feedback-unittest.cc | ||
js-typed-lowering-unittest.cc | ||
linkage-tail-call-unittest.cc | ||
live-range-builder.h | ||
live-range-unittest.cc | ||
liveness-analyzer-unittest.cc | ||
load-elimination-unittest.cc | ||
loop-peeling-unittest.cc | ||
machine-operator-reducer-unittest.cc | ||
machine-operator-unittest.cc | ||
move-optimizer-unittest.cc | ||
node-cache-unittest.cc | ||
node-matchers-unittest.cc | ||
node-properties-unittest.cc | ||
node-test-utils.cc | ||
node-test-utils.h | ||
node-unittest.cc | ||
opcodes-unittest.cc | ||
register-allocator-unittest.cc | ||
schedule-unittest.cc | ||
scheduler-unittest.cc | ||
select-lowering-unittest.cc | ||
simplified-operator-reducer-unittest.cc | ||
simplified-operator-unittest.cc | ||
state-values-utils-unittest.cc | ||
tail-call-optimization-unittest.cc | ||
typer-unittest.cc | ||
value-numbering-reducer-unittest.cc | ||
zone-pool-unittest.cc |