- 31 Aug, 2016 1 commit
-
-
marja authored
This way, many files which only need CompilationInfo but not compiler.h and its dependencies can include just compilation-info.h. BUG= Review-Url: https://codereview.chromium.org/2284313003 Cr-Commit-Position: refs/heads/master@{#39038}
-
- 30 Aug, 2016 1 commit
-
-
epertoso authored
BUG=v8:5273 Review-Url: https://codereview.chromium.org/2286273002 Cr-Commit-Position: refs/heads/master@{#39006}
-
- 29 Aug, 2016 1 commit
-
-
bmeurer authored
These JavaScript operators were special hacks to ensure that we always operate on Smis for the magic for-in index variable, but this never really worked in the OSR case, because the OsrValue for the index variable didn't have the proper information (that we have for the JSForInPrepare in the non-OSR case). Now that we have loop induction variable analysis and binary operation hints, we can just use JSLessThan and JSAdd instead with appropriate Smi hints, which handle the OSR case by inserting Smi checks (that are always true). Thanks to OSR deconstruction and loop peeling these Smi checks will be hoisted so they don't hurt the OSR case too much. Drive-by-change: Rename the ForInDone bytecode to ForInContinue, since we have to lower it to JSLessThan to get the loop induction variable goodness. R=epertoso@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2289613002 Cr-Commit-Position: refs/heads/master@{#38968}
-
- 25 Aug, 2016 2 commits
-
-
jochen authored
During finalization, we create SharedFunctionInfos which in turn will create ScopeInfos for the Scopes in the AST. The Scopes then cache a handle to the ScopeInfos. However, once the scope is closed, all those handles get zapped, and it's no longer possible to access the scopes (even though we actually still need the AST). R=rmcilroy@chromium.org BUG= Review-Url: https://codereview.chromium.org/2278933002 Cr-Commit-Position: refs/heads/master@{#38898}
-
rmcilroy authored
Adds compile operations to the CompilerDispatcherJob interface. As such, introduces Compiler::PrepareUnoptimizedCompilationJob and updates the unoptimized compilation path to use CompilationJobs. Also unifies FinalizeCompilationJob to deal with both optimized and unoptimized compilation jobs. A dummy FullCodegenCompilationJob is also introduced, where all the work is done in the ExecuteJob phase, which cannot be run on a background thread. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2251713002 Cr-Commit-Position: refs/heads/master@{#38897}
-
- 24 Aug, 2016 1 commit
-
-
neis authored
The value returned via the int* argument was actually never used. Also remove has_rest_parameter() in favor of returning nullptr from rest_parameter(). This is in line with similar accessors and simplifies my changes. BUG= Review-Url: https://codereview.chromium.org/2276923002 Cr-Commit-Position: refs/heads/master@{#38868}
-
- 23 Aug, 2016 1 commit
-
-
epertoso authored
Drive-by fix: the order of parameters in the BinaryOpWithFeedback TurboFan code stubs now reflects the convention of having the context at the end. BUG=v8:5273 Review-Url: https://codereview.chromium.org/2263253002 Cr-Commit-Position: refs/heads/master@{#38832}
-
- 22 Aug, 2016 1 commit
-
-
rmcilroy authored
Adds InterpreterCompilationJob as a sub-class of CompilationJob, to enable off-thread bytecode generation. Currently only used in Interpreter::MakeBytecode. As part of this change, CompilationJob is modified to make it less specific to optimized compilation, renaming the phases as follows: - CreateGraph -> PrepareJob - OptimizeGraph -> ExecuteJob - GenerateCode -> FinalizeJob RegisterWeakObjectsInOptimizedCode is also moved out of CompilationJob and instead becomes a static function on Compiler. BUG=v8:5203 Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9 Committed: https://crrev.com/d7c6195c4c5cdc080caa74dfe2ae9ecab69bea73 Review-Url: https://codereview.chromium.org/2240463002 Cr-Original-Original-Original-Commit-Position: refs/heads/master@{#38662} Cr-Original-Original-Commit-Position: refs/heads/master@{#38668} Cr-Original-Commit-Position: refs/heads/master@{#38725} Cr-Commit-Position: refs/heads/master@{#38778}
-
- 19 Aug, 2016 2 commits
-
-
epertoso authored
BUG=v8:5273 R=rmcilroy@chromium.org Review-Url: https://codereview.chromium.org/2250513005 Cr-Commit-Position: refs/heads/master@{#38751}
-
klaasb authored
Changes the control flow builder classes to make use of the BytecodeLabels helper class. BUG=v8:4280 LOG=n Review-Url: https://codereview.chromium.org/2254493002 Cr-Commit-Position: refs/heads/master@{#38744}
-
- 18 Aug, 2016 6 commits
-
-
sampsong authored
BUG= R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com, bjaideep@ca.ibm.com, bmeurer@chromium.org, mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2242223002 Cr-Commit-Position: refs/heads/master@{#38728}
-
rmcilroy authored
Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #9 id:180001 of https://codereview.chromium.org/2240463002/ ) Reason for revert: Revert again... Original issue's description: > [Interpreter] Introduce InterpreterCompilationJob > > Adds InterpreterCompilationJob as a sub-class of > CompilationJob, to enable off-thread bytecode > generation. Currently only used in > Interpreter::MakeBytecode. > > As part of this change, CompilationJob is modified > to make it less specific to optimized compilation, > renaming the phases as follows: > - CreateGraph -> PrepareJob > - OptimizeGraph -> ExecuteJob > - GenerateCode -> FinalizeJob > > RegisterWeakObjectsInOptimizedCode is also moved out > of CompilationJob and instead becomes a static function > on Compiler. > > BUG=v8:5203 > > Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc > Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9 > Committed: https://crrev.com/d7c6195c4c5cdc080caa74dfe2ae9ecab69bea73 > Cr-Original-Original-Commit-Position: refs/heads/master@{#38662} > Cr-Original-Commit-Position: refs/heads/master@{#38668} > Cr-Commit-Position: refs/heads/master@{#38725} TBR=mstarzinger@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203 Review-Url: https://codereview.chromium.org/2260583002 Cr-Commit-Position: refs/heads/master@{#38727}
-
klaasb authored
One more bytecode to pass info through to TurboFan. BUG=v8:4280 LOG=n Review-Url: https://codereview.chromium.org/2260473003 Cr-Commit-Position: refs/heads/master@{#38726}
-
rmcilroy authored
Adds InterpreterCompilationJob as a sub-class of CompilationJob, to enable off-thread bytecode generation. Currently only used in Interpreter::MakeBytecode. As part of this change, CompilationJob is modified to make it less specific to optimized compilation, renaming the phases as follows: - CreateGraph -> PrepareJob - OptimizeGraph -> ExecuteJob - GenerateCode -> FinalizeJob RegisterWeakObjectsInOptimizedCode is also moved out of CompilationJob and instead becomes a static function on Compiler. BUG=v8:5203 Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9 Review-Url: https://codereview.chromium.org/2240463002 Cr-Original-Original-Commit-Position: refs/heads/master@{#38662} Cr-Original-Commit-Position: refs/heads/master@{#38668} Cr-Commit-Position: refs/heads/master@{#38725}
-
klaasb authored
Generates a JSCreateWithContext node for TurboFan to optimize. BUG=v8:4280 LOG=n Review-Url: https://codereview.chromium.org/2255793002 Cr-Commit-Position: refs/heads/master@{#38723}
-
rmcilroy authored
Removes all accesses to the Isolate during bytecode generation and the bytecode pipeline. Adds an DisallowIsolateAccessScope which is used to enforce this invariant within the BytecodeGenerator. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2242193002 Cr-Commit-Position: refs/heads/master@{#38716}
-
- 17 Aug, 2016 3 commits
-
-
neis authored
Async functions are implemented via special generator functions; special in the sense that they generally do not immediately yield. However, our generators implementation still assumed that every generator function initially yields (concretely: before doing the state dispatch in a loop header). This CL fixes that. R=littledan@chromium.org, rmcilroy@chromium.org BUG=chromium:638019 Review-Url: https://codereview.chromium.org/2253033002 Cr-Commit-Position: refs/heads/master@{#38684}
-
epertoso authored
The Smi case was updating the feedback with a bitwise AND instead of a bitwise OR. This was causing feedback that should have been 'kAny' to be erroneusly reported as 'kSignedSmall'. R=rmcilroy@chromium.org Review-Url: https://codereview.chromium.org/2251863004 Cr-Commit-Position: refs/heads/master@{#38682}
-
rmcilroy authored
Now that all backends use the source position builder to record source positions, simplify the code line logging events to take a source position table on code creation. This means that the source position table builder no longer needs to access the isolate until the table is generated. This is required for off-thread bytecode generation. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2248673002 Cr-Commit-Position: refs/heads/master@{#38676}
-
- 16 Aug, 2016 5 commits
-
-
rmcilroy authored
Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #7 id:140001 of https://codereview.chromium.org/2240463002/ ) Reason for revert: Breaks Win64 bot Original issue's description: > [Interpreter] Introduce InterpreterCompilationJob > > Adds InterpreterCompilationJob as a sub-class of > CompilationJob, to enable off-thread bytecode > generation. Currently only used in > Interpreter::MakeBytecode. > > As part of this change, CompilationJob is modified > to make it less specific to optimized compilation, > renaming the phases as follows: > - CreateGraph -> PrepareJob > - OptimizeGraph -> ExecuteJob > - GenerateCode -> FinalizeJob > > RegisterWeakObjectsInOptimizedCode is also moved out > of CompilationJob and instead becomes a static function > on Compiler. > > BUG=v8:5203 > > Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc > Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9 > Cr-Original-Commit-Position: refs/heads/master@{#38662} > Cr-Commit-Position: refs/heads/master@{#38668} TBR=mstarzinger@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203 Review-Url: https://codereview.chromium.org/2251673003 Cr-Commit-Position: refs/heads/master@{#38669}
-
rmcilroy authored
Adds InterpreterCompilationJob as a sub-class of CompilationJob, to enable off-thread bytecode generation. Currently only used in Interpreter::MakeBytecode. As part of this change, CompilationJob is modified to make it less specific to optimized compilation, renaming the phases as follows: - CreateGraph -> PrepareJob - OptimizeGraph -> ExecuteJob - GenerateCode -> FinalizeJob RegisterWeakObjectsInOptimizedCode is also moved out of CompilationJob and instead becomes a static function on Compiler. BUG=v8:5203 Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc Review-Url: https://codereview.chromium.org/2240463002 Cr-Original-Commit-Position: refs/heads/master@{#38662} Cr-Commit-Position: refs/heads/master@{#38668}
-
rmcilroy authored
Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #7 id:140001 of https://codereview.chromium.org/2240463002/ ) Reason for revert: Failing on Win64 bot: https://build.chromium.org/p/client.v8/builders/V8%20Win64/builds/12061/steps/Check/logs/regress-635429 Original issue's description: > [Interpreter] Introduce InterpreterCompilationJob > > Adds InterpreterCompilationJob as a sub-class of > CompilationJob, to enable off-thread bytecode > generation. Currently only used in > Interpreter::MakeBytecode. > > As part of this change, CompilationJob is modified > to make it less specific to optimized compilation, > renaming the phases as follows: > - CreateGraph -> PrepareJob > - OptimizeGraph -> ExecuteJob > - GenerateCode -> FinalizeJob > > RegisterWeakObjectsInOptimizedCode is also moved out > of CompilationJob and instead becomes a static function > on Compiler. > > BUG=v8:5203 > > Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc > Cr-Commit-Position: refs/heads/master@{#38662} TBR=mstarzinger@chromium.org,jkummerow@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5203 Review-Url: https://codereview.chromium.org/2249153002 Cr-Commit-Position: refs/heads/master@{#38663}
-
rmcilroy authored
Adds InterpreterCompilationJob as a sub-class of CompilationJob, to enable off-thread bytecode generation. Currently only used in Interpreter::MakeBytecode. As part of this change, CompilationJob is modified to make it less specific to optimized compilation, renaming the phases as follows: - CreateGraph -> PrepareJob - OptimizeGraph -> ExecuteJob - GenerateCode -> FinalizeJob RegisterWeakObjectsInOptimizedCode is also moved out of CompilationJob and instead becomes a static function on Compiler. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2240463002 Cr-Commit-Position: refs/heads/master@{#38662}
-
klaasb authored
Allows us to create a corresponding TurboFan node, so TF can optimize it. BUG=v8:4280 LOG=n Review-Url: https://codereview.chromium.org/2248633002 Cr-Commit-Position: refs/heads/master@{#38651}
-
- 15 Aug, 2016 2 commits
-
-
klaasb authored
Adds TestResultScope and uses it to directly jump/fall through to the correct branch in expressions used as branch conditions. Should enable nicer TurboFan-graphs for easier control-flow transformations in the future. BUG=v8:4280 LOG=n Review-Url: https://codereview.chromium.org/2242463002 Cr-Commit-Position: refs/heads/master@{#38634}
-
rmcilroy authored
Removes Variable::is_possibly_eval() and instead stores whether a call is possibly eval in the Call node's bitfield. Also removes HandleDereferenceMode since it's no longer used. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2242583003 Cr-Commit-Position: refs/heads/master@{#38633}
-
- 12 Aug, 2016 4 commits
-
-
rmcilroy authored
Revert of [interpreter] Inline ForInFilter stub. (patchset #1 id:1 of https://codereview.chromium.org/2220343002/ ) Reason for revert: Speculative revert to possible performance regressions. BUG=chromium:635826,chromium:635930 Original issue's description: > [interpreter] Inline ForInFilter stub. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/2bf0b8c8ed5d0c93982c8c227e93622aceecea16 > Cr-Commit-Position: refs/heads/master@{#38420} TBR=oth@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:4280 Review-Url: https://codereview.chromium.org/2238283002 Cr-Commit-Position: refs/heads/master@{#38623}
-
epertoso authored
Also, re-enables the use of the type feedback in BytecodeGraphBuilder. BUG=v8:5273 LOG=N Review-Url: https://codereview.chromium.org/2235133003 Cr-Commit-Position: refs/heads/master@{#38618}
-
rmcilroy authored
This should be faster and should give the same result. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2243783002 Cr-Commit-Position: refs/heads/master@{#38616}
-
verwaest authored
BUG= Review-Url: https://codereview.chromium.org/2231813003 Cr-Commit-Position: refs/heads/master@{#38599}
-
- 11 Aug, 2016 4 commits
-
-
neis authored
There's no need to check IsLexicalVariableMode since it's subsumed by binding_needs_init. Drive-by change: in VisitVariableLoad, move SetResultInAccumulator out of switch cases. BUG= Review-Url: https://codereview.chromium.org/2232313002 Cr-Commit-Position: refs/heads/master@{#38590}
-
rmcilroy authored
This optimization required access to the heap which we can't do off-thread. There doesn't seem to be a regression without this optmization in anycase, so just rip it out. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2238853002 Cr-Commit-Position: refs/heads/master@{#38585}
-
rmcilroy authored
Should fix a performance regression introduced by introducing a CanonicalHandleScope for bytecode compilation. Also fix a missing CanonicalHandleScope in GetSharedFunctionInfo. BUG=chromium:634953 Review-Url: https://codereview.chromium.org/2226923002 Cr-Commit-Position: refs/heads/master@{#38583}
-
rmcilroy authored
Use IsPropertyName in VisitObjectLiteral to decide whether to do a named property store or call SetProperty. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2237553004 Cr-Commit-Position: refs/heads/master@{#38577}
-
- 10 Aug, 2016 6 commits
-
-
adamk authored
In addition, make use of Variable::binding_needs_init() in addition to VariableMode when deciding whether to do hole checking in variable assignment. R=rmcilroy@chromium.org Review-Url: https://codereview.chromium.org/2227203002 Cr-Commit-Position: refs/heads/master@{#38555}
-
rmcilroy authored
Don't allocate handles in the bytecode array writer, to allow off-thread bytecode generation. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2226333002 Cr-Commit-Position: refs/heads/master@{#38550}
-
epertoso authored
Introduces code stubs to collect type feedback for the Add, Mul, Div and Mod operations in the interpreter, and modifies the BytecodeGraphBuilder to make use of it. BUG=v8:5273 LOG=N Review-Url: https://codereview.chromium.org/2224343002 Cr-Commit-Position: refs/heads/master@{#38543}
-
rmcilroy authored
Creates ScopeInfos during the ast-numbering phase so that they are already created during bytecode generation so that they don't need to be allocated during concurrent bytecode generation. BUG=v8:5203 Review-Url: https://codereview.chromium.org/2223283002 Cr-Commit-Position: refs/heads/master@{#38542}
-
rmcilroy authored
Updates a number of AST operations to avoid dereferencing handles such that they can safely be called off-thread. Also adds a HandleDereferenceMode argument to some operations where handles are compared. If handle dereferencing is allowed, the handles are compared directly, if not then their locations are compared (which relies on the handles being created in a CanonicalHandleScope). BUG=v8:5203 TBR=adamk@chromium.org Review-Url: https://codereview.chromium.org/2223523002 Cr-Commit-Position: refs/heads/master@{#38526}
-
lpy authored
Currently we have V8 RuntimeCallStats that is independently from tracing when running d8 with flag --runtime_call_stats. This patch embeds V8 runtime call stats into tracing, by having a global table of runtime call counters each isolate, resetting the table each time we enter a top level trace event, and dumping the table for each top level trace event. This will make trace file more compat, as well as enable runtime call stats in tracing system. This patch adds ~5% overhead to V8 when the category is enabled, we measure the overhead by running a script when category is enabled. BUG=v8:5089 Committed: https://crrev.com/d014866173eaa2b548c566217b2c94b1d49385fa Committed: https://crrev.com/1ca3b73bba4a7253ca8eeef39321d70e7d414331 Committed: https://crrev.com/3f936a5b17754783e92d2146eaf66c88a78ee45b Review-Url: https://codereview.chromium.org/2187693002 Cr-Original-Original-Original-Commit-Position: refs/heads/master@{#38270} Cr-Original-Original-Commit-Position: refs/heads/master@{#38314} Cr-Original-Commit-Position: refs/heads/master@{#38403} Cr-Commit-Position: refs/heads/master@{#38510}
-