- 20 Apr, 2016 5 commits
-
-
mtrofin authored
Before frame elision, we finalized the frame shape when assembling the prologue, which is also when we prepared the frame (saving sp, etc). The frame finalization only needs to happen once, and happens to be actually a set of idempotent operations. With frame elision, the logic for frame finalization was happening every time we constructed the frame. Albeit idempotent operations, the code would become hard to maintain. This change separates frame shape finalization from frame construction. When constructing the CodeGenerator, we finalize the frame. Subsequent access is to a const Frame*. Also renamed AssemblePrologue to AssembleConstructFrame, as suggested in the frame elision CR. Separating frame setup gave the opportunity to do away with architecture-independent frame aligning (which is something just arm64 cares about), and also with stack pointer setup (also arm64). Both of these happen now at frame finalization on arm64. BUG= Review URL: https://codereview.chromium.org/1843143002 Cr-Commit-Position: refs/heads/master@{#35642}
-
zhengxing.li authored
port 59546149 (r35632) original commit message: Now that all 'const' declarations are of the ES2015 variety, the only use of CONST_LEGACY is for function name bindings in sloppy mode named function expressions. This patch aims to delete all code meant to handle other cases, which mostly had to do with hole initialization/hole checks. Since function name bindings are initialized at entry to a function, it's impossible to ever observe one in an uninitialized state. To simplify the patch further, it removes the `IMPORT` VariableMode, as it's not likely to be needed (IMPORT is identical to CONST for the purpose of VariableMode). BUG= Review URL: https://codereview.chromium.org/1902943003 Cr-Commit-Position: refs/heads/master@{#35641}
-
zhengxing.li authored
port 623ad7de (r35618) original commit message: Removes the register file machine register from the interpreter and replaces it will loads from the parent frame pointer. As part of this change the raw operand values for register values changes to enable the interpreter to keep using the operand value as the offset from the parent frame pointer. BUG= Review URL: https://codereview.chromium.org/1903093002 Cr-Commit-Position: refs/heads/master@{#35640}
-
bmeurer authored
In JSTypedLowering we insert JSToNumber nodes for implicit type conversions, which can potentially throw (i.e. the input not statically known to be a plain primitive). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1900383002 Cr-Commit-Position: refs/heads/master@{#35639}
-
jarin authored
Review URL: https://codereview.chromium.org/1900043003 Cr-Commit-Position: refs/heads/master@{#35638}
-
- 19 Apr, 2016 35 commits
-
-
bjaideep authored
Port 623ad7de Original commit message: Removes the register file machine register from the interpreter and replaces it will loads from the parent frame pointer. As part of this change the raw operand values for register values changes to enable the interpreter to keep using the operand value as the offset from the parent frame pointer. R=rmcilroy@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1901763004 Cr-Commit-Position: refs/heads/master@{#35637}
-
jyan authored
Port d0ccddd0 Original commit message: First version of the new generators implementation. Behind --ignition-generators. Does not yet support Turbofan. R=neis@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, bjaideep@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1899283002 Cr-Commit-Position: refs/heads/master@{#35636}
-
bjaideep authored
Port 59546149 Original commit message: Now that all 'const' declarations are of the ES2015 variety, the only use of CONST_LEGACY is for function name bindings in sloppy mode named function expressions. This patch aims to delete all code meant to handle other cases, which mostly had to do with hole initialization/hole checks. Since function name bindings are initialized at entry to a function, it's impossible to ever observe one in an uninitialized state. To simplify the patch further, it removes the `IMPORT` VariableMode, as it's not likely to be needed (IMPORT is identical to CONST for the purpose of VariableMode). R=adamk@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review URL: https://codereview.chromium.org/1902163003 Cr-Commit-Position: refs/heads/master@{#35635}
-
bjaideep authored
Port d2b0a4b7 Original commit message: MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>; R= verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= LOG=N Review URL: https://codereview.chromium.org/1895193003 Cr-Commit-Position: refs/heads/master@{#35634}
-
mike authored
[15.2.1.11 Static Semantics: LexicallyDeclaredNames](https://tc39.github.io/ecma262/#sec-module-semantics-static-semantics-lexicallydeclarednames) (in contrast with its definition for StatementListItem) makes no explicit provision for HoistableDeclarations. This means that function declarations are treated as lexically scoped in module code, as described in section 15.2.1.11's informative note: > At the top level of a function, or script, function declarations are > treated like var declarations rather than like lexical declarations. BUG=v8:4884 LOG=N R=adamk@chromium.org Review URL: https://codereview.chromium.org/1851673007 Cr-Commit-Position: refs/heads/master@{#35633}
-
adamk authored
Now that all 'const' declarations are of the ES2015 variety, the only use of CONST_LEGACY is for function name bindings in sloppy mode named function expressions. This patch aims to delete all code meant to handle other cases, which mostly had to do with hole initialization/hole checks. Since function name bindings are initialized at entry to a function, it's impossible to ever observe one in an uninitialized state. To simplify the patch further, it removes the `IMPORT` VariableMode, as it's not likely to be needed (IMPORT is identical to CONST for the purpose of VariableMode). Review URL: https://codereview.chromium.org/1895973002 Cr-Commit-Position: refs/heads/master@{#35632}
-
bjaideep authored
Port d412cfa2 Original commit message: [Atomics] Remove Atomics code stubs; use TF ops Reland of (https://codereview.chromium.org/1891033002) This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! R=binji@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG=v8:4614 LOG=N Review URL: https://codereview.chromium.org/1899033002 Cr-Commit-Position: refs/heads/master@{#35631}
-
yangguo authored
Prior to 89d7bfda we always just collected the code offset and computed the source position lazily. However, for local eval we already have the source position ready, so we can just store that. For global eval we still have to compute from the code offset. This CL changes the computation to be done only on demand. R=mstarzinger@chromium.org BUG=chromium:604646 LOG=N Review URL: https://codereview.chromium.org/1903463002 Cr-Commit-Position: refs/heads/master@{#35630}
-
ssanfilippo authored
In addition to top source-destination pairs, bytecode_dispatches_report.py now prints the hottest bytecode handlers by the number of times they are executed and dispatch to another one, regardless of the dispatch target. Be aware that this figure does not match the number of times a handler is executed for those which may not or will never dispatch, e.g. Return or Throw. BUG=v8:4899 LOG=N Review URL: https://codereview.chromium.org/1875263004 Cr-Commit-Position: refs/heads/master@{#35629}
-
clemensh authored
This prepares a patch to throw actual errors instead of just strings on wasm traps. In order to accomplish this, the messages need to be known to the runtime, as the generated code will just pass the message id. R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1880493002 Cr-Commit-Position: refs/heads/master@{#35628}
-
kozyatinskiy authored
Without CL debugger on StepNext adds breakpoint to function where throw instruction is located. In case of StepNext we will skip pause in this function because StepNext shouldn't break in a deeper frame. BUG=chromium:604495 R=yangguo@chromium.org LOG=N Review URL: https://codereview.chromium.org/1894263002 Cr-Commit-Position: refs/heads/master@{#35627}
-
clemensh authored
This is a bit unfortunate, but otherwise we would have to include objects.h before message.h, since for the initialization of a Handle<T>, the compiler checks that Object* can be assigned to T*. So it would need to know about the inheritance for initializing Handle<Script> and Handle<JSFunction>. R=mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1872373002 Cr-Commit-Position: refs/heads/master@{#35626}
-
mstarzinger authored
The guard in JSFunction::MarkForOptimization checking whether a function is being debugged is overly protective. The compilation pipeline will bailout itself in that circumstance. Having the runtime behave similar makes sure the debugger observes a situation closer to reality. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1900743003 Cr-Commit-Position: refs/heads/master@{#35625}
-
clemensh authored
This cctest triggers a detailed stack trace containing WASM frames. R=jfb@chromium.org, mstarzinger@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1875083002 Cr-Commit-Position: refs/heads/master@{#35624}
-
mstarzinger authored
This stops printing a log line for when a lookup in the optimized code map did not yield a result. Logging such a negative result that will inevitably trigger a compile anyways has little benefit and just spams the console unnecessarily. R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1904433002 Cr-Commit-Position: refs/heads/master@{#35623}
-
rmcilroy authored
BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1902013002 Cr-Commit-Position: refs/heads/master@{#35622}
-
clemensh authored
This makes them show up in the stack trace. Otherwise the stack frames are identified as type STUB, and skipped by the iterator. R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1878573003 Cr-Commit-Position: refs/heads/master@{#35621}
-
hlopko authored
As the code on the blink side sits down, we realize we don't need isolate arg anymore. As the heap tracer is set per isolate, it can actually be confusing if the isolate passed as argument is always the same as the isolate the heap tracer was set for. Wdyt? BUG=468240 LOG=no Review URL: https://codereview.chromium.org/1900953003 Cr-Commit-Position: refs/heads/master@{#35620}
-
🏄 machenbach authoredRevert of
🏄 [heap] Add page evacuation mode for new->old (patchset #21 id:800001 of https://codereview.chromium.org/1863983002/ ) Reason for revert: [Sheriff] Breaks: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug/builds/102 Original issue's description: > [heap] Add page evacuation mode for new->old > > In a full mark-compact GC, instead of copying memory to old space for > pages that have more than X% live bytes, we just move the whole page over to old > space. > > X=70 (default value) > > BUG=chromium:581412 > LOG=N > > Committed: https://crrev.com/0d7e23a6edd3822970983030a77a5b80cd337911 > Cr-Commit-Position: refs/heads/master@{#35610} TBR=hpayer@chromium.org,ulan@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:581412 Review URL: https://codereview.chromium.org/1896883003 Cr-Commit-Position: refs/heads/master@{#35619} -
rmcilroy authored
Removes the register file machine register from the interpreter and replaces it will loads from the parent frame pointer. As part of this change the raw operand values for register values changes to enable the interpreter to keep using the operand value as the offset from the parent frame pointer. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1894063002 Cr-Commit-Position: refs/heads/master@{#35618}
-
clemensh authored
... such that they can be reused from other tests. R=ahaas@chromium.org, jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1876783002 Cr-Commit-Position: refs/heads/master@{#35617}
-
verwaest authored
This avoids custom compilation of receiver handlers for api getters. BUG= Review URL: https://codereview.chromium.org/1895093002 Cr-Commit-Position: refs/heads/master@{#35616}
-
clemensh authored
Till now, they were just skipped. With this patch, they now show up in the DevTools on uncaught Errors with function name <WASM> and no line number or file name information (see new test case: https://chromiumcodereview.appspot.com/1875083002). R=jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1865553004 Cr-Commit-Position: refs/heads/master@{#35615}
-
machenbach authored
BUG=v8:4437,v8:2899,chromium:604310 LOG=n Review URL: https://codereview.chromium.org/1402373002 Cr-Commit-Position: refs/heads/master@{#35614}
-
akos.palfi authored
Port d412cfa2 BUG= Review URL: https://codereview.chromium.org/1899783003 Cr-Commit-Position: refs/heads/master@{#35613}
-
mstarzinger authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1901653003 Cr-Commit-Position: refs/heads/master@{#35612}
-
zhengxing.li authored
port d2b0a4b7 (r35606) original commit message: MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com> BUG= Review URL: https://codereview.chromium.org/1897823005 Cr-Commit-Position: refs/heads/master@{#35611}
-
mlippautz authored
In a full mark-compact GC, instead of copying memory to old space for pages that have more than X% live bytes, we just move the whole page over to old space. X=70 (default value) BUG=chromium:581412 LOG=N Review URL: https://codereview.chromium.org/1863983002 Cr-Commit-Position: refs/heads/master@{#35610}
-
mstarzinger authored
This removes obsolete code that supports compiling without a shared function info object. Even for top-level code compiled for live edit such an object is allocated by now. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1896083002 Cr-Commit-Position: refs/heads/master@{#35609}
-
jarin authored
The recursion does seem to help anything. Review URL: https://codereview.chromium.org/1898733002 Cr-Commit-Position: refs/heads/master@{#35608}
-
ishell authored
BUG=chromium:603463 LOG=N Review URL: https://codereview.chromium.org/1894203002 Cr-Commit-Position: refs/heads/master@{#35607}
-
verwaest authored
MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com> Review URL: https://codereview.chromium.org/1892533004 Cr-Commit-Position: refs/heads/master@{#35606}
-
mstarzinger authored
This switches CodeGenerator::PrintCode to be based on the allocated shared function info instead of the function literal. This is possible now that even live edit allocates a shared function info for scripts. R=ishell@chromium.org BUG=chromium:604375 LOG=n Review URL: https://codereview.chromium.org/1901753002 Cr-Commit-Position: refs/heads/master@{#35605}
-
mlippautz authored
This makes IterateBodyFast work without requiring visitors to inherit from ObjectVisitor. R=ishell@chromium.org Review URL: https://codereview.chromium.org/1900843002 Cr-Commit-Position: refs/heads/master@{#35604}
-
zhengxing.li authored
port d412cfa2 (r35596) original commit message: Reland of (https://codereview.chromium.org/1891033002) This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! BUG= Review URL: https://codereview.chromium.org/1897143003 Cr-Commit-Position: refs/heads/master@{#35603}
-