v8/test/cctest/interpreter/bytecode_expectations
Adam Klein ededfcd212 Skip hole initialization of lexical variables when possible
This patch expands scope analysis to skip hole initialization
when it can be determined statically that no hole checks will
be generated at runtime.

Two conditions must be met to safely eliminate hole initialization:
  - There must not exist a VariableProxy referencing this Variable
    whose HoleCheckMode is kRequired
  - The Variable must be stack allocated; any other allocation implies
    that it may be accessed from not-yet-analyzed scopes (other modules,
    inner functions, or eval code) and that code may require
    hole checks.

The new logic required removing debug code in full-codegen which is
now incorrect in some cases.

Also fixed Variable's bitfield helpers to take no more space than needed.

Bug: chromium:651637
Change-Id: Ie5ac326af4e05b7a5c3c37cd4d0afba6a51a504d
Reviewed-on: https://chromium-review.googlesource.com/494006
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45170}
2017-05-08 19:28:30 +00:00
..
ArrayLiterals.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ArrayLiteralsWide.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
AssignmentsInBinaryExpression.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
BasicBlockToBoolean.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
BasicLoops.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
BreakableBlocks.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CallAndSpread.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CallGlobal.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CallLookupSlot.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CallNew.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CallRuntime.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ClassAndSuperClass.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ClassDeclarations.golden Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
CompareNil.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CompareTypeOf.golden [Interpreter] Optimize code of the form 'if (x === undefined)'. 2017-04-03 14:17:16 +00:00
CompoundExpressions.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
Conditional.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ConstVariable.golden Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
ConstVariableContextSlot.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ContextParameters.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ContextVariables.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CountOperators.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CreateArguments.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
CreateRestParameter.golden Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
DeadCodeRemoval.golden [ignition] Expect 'I' for signed bytecode operands 2017-01-25 17:39:24 +00:00
DeclareGlobals.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
Delete.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
DeleteLookupSlotInEval.golden [interpreter] Remove redundant flag from bytecode cctest suite. 2016-10-04 16:30:15 +00:00
DoDebugger.golden [interpreter] Remove redundant flag from bytecode cctest suite. 2016-10-04 16:30:15 +00:00
DoExpression.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
Eval.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ForAwaitOf.golden [ignition] Optimize JSGenerator creation 2017-05-05 18:33:00 +00:00
ForIn.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ForOf.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ForOfLoop.golden Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
FunctionLiterals.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
GenerateTestUndetectable.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
Generators.golden [ignition] Optimize JSGenerator creation 2017-05-05 18:33:00 +00:00
GlobalCompoundExpressions.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
GlobalCountOperators.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
GlobalDelete.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
HeapNumberConstants.golden [interpreter] Remove redundant flag from bytecode cctest suite. 2016-10-04 16:30:15 +00:00
IfConditions.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
IntegerConstants.golden [ignition] Expect 'I' for signed bytecode operands 2017-01-25 17:39:24 +00:00
JumpsRequiringConstantWideOperands.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
LetVariable.golden Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
LetVariableContextSlot.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
LoadGlobal.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
LogicalExpressions.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
LookupSlot.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
LookupSlotInEval.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
LookupSlotWideInEval.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
Modules.golden [ignition] Optimize JSGenerator creation 2017-05-05 18:33:00 +00:00
NewAndSpread.golden Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
NewTarget.golden [interpreter] Remove redundant flag from bytecode cctest suite. 2016-10-04 16:30:15 +00:00
ObjectLiterals.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ObjectLiteralsWide.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
OuterContextVariables.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
Parameters.golden [ignition] Expect 'I' for signed bytecode operands 2017-01-25 17:39:24 +00:00
PrimitiveExpressions.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
PrimitiveReturnStatements.golden [ignition] Expect 'I' for signed bytecode operands 2017-01-25 17:39:24 +00:00
PropertyCall.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
PropertyLoads.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
PropertyStores.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
RegExpLiterals.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
RegExpLiteralsWide.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
RemoveRedundantLdar.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
StandardForLoop.golden Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
StoreGlobal.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
StringConstants.golden [interpreter] Remove redundant flag from bytecode cctest suite. 2016-10-04 16:30:15 +00:00
SuperCallAndSpread.golden Skip hole initialization of lexical variables when possible 2017-05-08 19:28:30 +00:00
Switch.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
ThisFunction.golden [interpreter] Remove redundant flag from bytecode cctest suite. 2016-10-04 16:30:15 +00:00
Throw.golden [ignition] Expect 'I' for signed bytecode operands 2017-01-25 17:39:24 +00:00
TopLevelObjectLiterals.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
TryCatch.golden [ignition] Expect 'I' for signed bytecode operands 2017-01-25 17:39:24 +00:00
TryFinally.golden [Interpreter] Introduce strict equality bytecode that does not collect feedback. 2017-03-22 12:31:11 +00:00
Typeof.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
UnaryOperators.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
WideRegisters.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00
WithStatement.golden Reland: [TypeFeedbackVector] Store optimized code in the vector 2017-05-04 11:21:59 +00:00