- 14 Jun, 2016 1 commit
-
-
yangguo authored
R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2068603002 Cr-Commit-Position: refs/heads/master@{#36960}
-
- 09 Jun, 2016 2 commits
-
-
jarin authored
This makes sure we do not compile ToNumber stub on demand. This makes it easier to use during concurrent compilation. Review-Url: https://codereview.chromium.org/2051113002 Cr-Commit-Position: refs/heads/master@{#36870}
-
jarin authored
Since some builtins use StringToNumberStub (so the code is always there), it makes more sense to have StringToNumber builtin. Review-Url: https://codereview.chromium.org/2050853003 Cr-Commit-Position: refs/heads/master@{#36843}
-
- 07 Jun, 2016 2 commits
-
-
mvstanton authored
It may be that we have a feedback vector, but no literals. In this case we can store into the OptimizedCodeMap directly instead of using a WeakCell, because all data in the feedback vector is already held weakly. The use of a WeakCell in the OptimizedCodeMap is only required when there are literals which may hold maps strongly. This is to address a performance regression caused by the creation of a large number of WeakCells. BUG=chromium:615831 Review-Url: https://codereview.chromium.org/2031123003 Cr-Commit-Position: refs/heads/master@{#36786}
-
balazs.kilvady authored
Port 941524f8 TEST=mjsunit/harmony/async-debug-* BUG= Review-Url: https://codereview.chromium.org/2045923002 Cr-Commit-Position: refs/heads/master@{#36784}
-
- 06 Jun, 2016 1 commit
-
-
balazs.kilvady authored
Port 8d90210a BUG= Review-Url: https://codereview.chromium.org/2045553002 Cr-Commit-Position: refs/heads/master@{#36759}
-
- 03 Jun, 2016 1 commit
-
-
yangguo authored
R=*bmeurer@chromium.org, caitpotter88@gmail.com, *littledan@chromium.org, *ulan@chromium.org BUG=v8:4483 Review-Url: https://codereview.chromium.org/2033223003 Cr-Commit-Position: refs/heads/master@{#36718}
-
- 24 May, 2016 1 commit
-
-
neis authored
BUG=v8:4907 Review-Url: https://codereview.chromium.org/2006653003 Cr-Commit-Position: refs/heads/master@{#36467}
-
- 19 May, 2016 1 commit
-
-
rmcilroy authored
We cannot tier up from interpreted to baseline code when there is an activation of the function on the stack. This significantly regresses the performance of recursive functions since they are unlikely to get tiered up. This CL adds the ability for a function to be marked for baseline compilation when it returns. To do this we patch the InterpreterEntryTrampoline return address to point to InterpreterMarkBaselineOnReturn, which leaves the interpreted frame and recompile the function for baseline. This improves the score of EarlyBoyer by ~8x for Ignition. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/1965343002 Cr-Commit-Position: refs/heads/master@{#36360}
-
- 18 May, 2016 3 commits
-
-
akos.palfi authored
BUG= Review-Url: https://codereview.chromium.org/1987253002 Cr-Commit-Position: refs/heads/master@{#36320}
-
akos.palfi authored
MIPS64: Fix '[Interpreter] Remove InterpreterExitTrampoline and replace with returning to the entry trampoline.' Port 39738bc9 BUG= Review-Url: https://codereview.chromium.org/1990823002 Cr-Commit-Position: refs/heads/master@{#36315}
-
rmcilroy authored
In order to support compiling to baseline on return we need to be able to return to the actual return address. With this change this is what the Return bytecode now does, removing the need for the InterpreterExitTrampoline. This change also removes the InterpreterNotifyDeoptXXX builtins and unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this change, FullCodegenerator::State is moved to Deoptimize::BailoutState. BUG=v8:4280 LOG=N Committed: https://crrev.com/34c9626e2ee56fe805de549697ca5323aed7cb66 Cr-Commit-Position: refs/heads/master@{#36288} Review-Url: https://codereview.chromium.org/1969423002 Cr-Commit-Position: refs/heads/master@{#36310}
-
- 17 May, 2016 3 commits
-
-
machenbach authored
Revert of [Interpreter] Remove InterpreterExitTrampoline and replace with returning to the entry trampoline. (patchset #6 id:170001 of https://codereview.chromium.org/1969423002/ ) Reason for revert: Breaks https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim/builds/619 Might only affect pure release builds? Original issue's description: > [Interpreter] Remove InterpreterExitTrampoline and replace with returning to the entry trampoline. > > In order to support compiling to baseline on return we need to be able to > return to the actual return address. With this change this is what the > Return bytecode now does, removing the need for the > InterpreterExitTrampoline. > > This change also removes the InterpreterNotifyDeoptXXX builtins and > unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this > change, FullCodegenerator::State is moved to Deoptimize::BailoutState. > > BUG=v8:4280 > LOG=N > > Committed: https://crrev.com/34c9626e2ee56fe805de549697ca5323aed7cb66 > Cr-Commit-Position: refs/heads/master@{#36288} TBR=mstarzinger@chromium.org,oth@chromium.org,rmcilroy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4280 Review-Url: https://codereview.chromium.org/1986353002 Cr-Commit-Position: refs/heads/master@{#36294}
-
rmcilroy authored
In order to support compiling to baseline on return we need to be able to return to the actual return address. With this change this is what the Return bytecode now does, removing the need for the InterpreterExitTrampoline. This change also removes the InterpreterNotifyDeoptXXX builtins and unifies FCG and Igntion to both use NotifyDeoptXXX. As part of this change, FullCodegenerator::State is moved to Deoptimize::BailoutState. BUG=v8:4280 LOG=N Review-Url: https://codereview.chromium.org/1969423002 Cr-Commit-Position: refs/heads/master@{#36288}
-
bmeurer authored
This adds back the instanceof operator support in the backends and introduces a @@hasInstance protector cell on the isolate that guards the fast path for the InstanceOfStub. This way we recover the ~10% regression on Octane EarleyBoyer in Crankshaft and greatly improve TurboFan and Ignition performance of instanceof. R=ishell@chromium.org TBR=hpayer@chromium.org,rossberg@chromium.org BUG=chromium:597249, v8:4447 LOG=n Review-Url: https://codereview.chromium.org/1980483003 Cr-Commit-Position: refs/heads/master@{#36275}
-
- 10 May, 2016 2 commits
-
-
rmcilroy authored
Rather than pushing zero for the initial bytecode offset, we should push the offset of the first bytecode handler, Smi tagged. This fixes the line number for the top stack frame on overflow errors. BUG=v8:4981 LOG=N Review-Url: https://codereview.chromium.org/1950913004 Cr-Commit-Position: refs/heads/master@{#36137}
-
bmeurer authored
This adds a new pass MemoryOptimizer that walks over the effect chain from Start and lowers all Allocate, LoadField, StoreField, LoadElement, and StoreElement nodes, trying to fold allocations into allocation groups and eliminate write barriers on StoreField and StoreElement if possible (i.e. if the object belongs to the current allocation group and that group allocates in new space). R=hpayer@chromium.org, jarin@chromium.org BUG=v8:4931, chromium:580959 LOG=n Review-Url: https://codereview.chromium.org/1963583004 Cr-Commit-Position: refs/heads/master@{#36128}
-
- 06 May, 2016 1 commit
-
-
akos.palfi authored
Port c2de9611 Fixes an infinite loop on MIPS64 big-endian. BUG= Review-Url: https://codereview.chromium.org/1959463003 Cr-Commit-Position: refs/heads/master@{#36090}
-
- 30 Apr, 2016 1 commit
-
-
bmeurer authored
Further refactor the pipeline to even run the first scheduler (part of the effect control linearization) concurrently. This temporarily disables most of the write barrier elimination, but we will get back to that later. Drive-by-fix: Remove the dead code from ChangeLowering, and stack allocate the Typer in the pipeline. Also migrate the AllocateStub to a native code builtin, so that we have the code object + a handle to it available all the time. CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel R=mstarzinger@chromium.org BUG=v8:4969 LOG=n Review-Url: https://codereview.chromium.org/1926023002 Cr-Commit-Position: refs/heads/master@{#35918}
-
- 28 Apr, 2016 2 commits
-
-
machenbach authored
Revert of [turbofan] Run everything after representation selection concurrently. (patchset #2 id:20001 of https://codereview.chromium.org/1926023002/ ) Reason for revert: [Sheriff] Flaky crashed here and there: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/9867 https://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/9589 https://build.chromium.org/p/client.v8/builders/V8%20Mac/builds/7679 Original issue's description: > [turbofan] Run everything after representation selection concurrently. > > Further refactor the pipeline to even run the first scheduler (part of > the effect control linearization) concurrently. This temporarily > disables most of the write barrier elimination, but we will get back to > that later. TBR=mstarzinger@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/1925073002 Cr-Commit-Position: refs/heads/master@{#35863}
-
bmeurer authored
Further refactor the pipeline to even run the first scheduler (part of the effect control linearization) concurrently. This temporarily disables most of the write barrier elimination, but we will get back to that later. Review-Url: https://codereview.chromium.org/1926023002 Cr-Commit-Position: refs/heads/master@{#35861}
-
- 27 Apr, 2016 1 commit
-
-
adamk authored
This is needed by Blink to implement the Custom Elements spec. BUG=v8:4261 LOG=y Review-Url: https://codereview.chromium.org/1910253005 Cr-Commit-Position: refs/heads/master@{#35833}
-
- 25 Apr, 2016 1 commit
-
-
mstarzinger authored
This adds a baseline tier to the compilation pipeline. Currently this tier is used to model a path from the interpreter to optimized code via full-codegen code (to ensure sufficient type feedback). Switching from the unoptimized tier to the baseline tier is limited to happen only when there are no activations of the given function on the stack. R=rmcilroy@chromium.org,bmeurer@chromium.org Review URL: https://codereview.chromium.org/1903273004 Cr-Commit-Position: refs/heads/master@{#35757}
-
- 22 Apr, 2016 1 commit
-
-
mstarzinger authored
This ensures the InterpreterEntryTrampoline heals code entry fields inside closures when being called without a valid bytecode array. This is preparatory work to allow removal of bytecode when switching some functions to other types of code. R=rmcilroy@chromium.org BUG=v8:4280 LOG=n Review URL: https://codereview.chromium.org/1904093002 Cr-Commit-Position: refs/heads/master@{#35724}
-
- 19 Apr, 2016 1 commit
-
-
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}
-
- 18 Apr, 2016 2 commits
-
-
neis authored
Behind --ignition-generators. Does not yet support Turbofan. TBR=bmeurer@chromium.org BUG=v8:4907 LOG=n Review URL: https://codereview.chromium.org/1884183002 Cr-Commit-Position: refs/heads/master@{#35584}
-
rmcilroy authored
Adds code to call FunctionEntryHook on entry to the InterpreterEntryTrampoline. This should give SyzyProf enough information to build non-discontinous profile graphs, however since interpreter functions aren't uniquely identified they will all get lumped into one bucket. This should be good enough for SyzyProf's current use-case. BUG=v8:4763 LOG=N Review URL: https://codereview.chromium.org/1884133002 Cr-Commit-Position: refs/heads/master@{#35568}
-
- 15 Apr, 2016 1 commit
-
-
rmcilroy authored
The current context is stored as a stack slot on the interpreter frame and therefore we don't need to also maintain a machine register for the context. Removes this register from bytecode handlers. In the process modifies this frees up a register on ia32 to keep the dispatch table pointer in a register rather than on a stack slot on ia32. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1887493004 Cr-Commit-Position: refs/heads/master@{#35511}
-
- 14 Apr, 2016 1 commit
-
-
rmcilroy authored
Modifies Ignition to store code entry addresses in the dispatch table rather than code objects. This allows the interpreter to avoid calculating the code entry address from the code object on every dispatch and provides a ~5-7% performance improvement on Octane with Ignition. This change adds ArchOpcode::kArchTailCallAddress to TurboFan to enable tail call dispatch using these code addresses. It also adds a Dispatch linkage creator (distinct from the stub linkage type used previously) to allow targetting a code address target (which will diverge further from the stub linkage type when we remove the context machine register in Ignition). BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1882073002 Cr-Commit-Position: refs/heads/master@{#35480}
-
- 13 Apr, 2016 1 commit
-
-
mvstanton authored
Visit the Optimized Code Map on first call rather than closure creation. This is useful for escape analysis, and helps upcoming changes to type feedback gathering. Adding notry due to crashed builders: NOTRY=true BUG= Committed: https://crrev.com/9336f4cc6d25d39a128176679a70dbd13a6d946e Cr-Commit-Position: refs/heads/master@{#35395} Review URL: https://codereview.chromium.org/1670143002 Cr-Commit-Position: refs/heads/master@{#35440}
-
- 12 Apr, 2016 1 commit
-
-
hablich authored
Revert of Visit the Optimized Code Map on first call rather than closure creation. (patchset #7 id:120001 of https://codereview.chromium.org/1670143002/ ) Reason for revert: Blocks roll. See https://codereview.chromium.org/1877003002/ for detailed messages. You should be able to repro this with Linux ASAN. Original issue's description: > Visit the Optimized Code Map on first call rather than closure creation. > > This is useful for escape analysis, and helps upcoming changes to > type feedback gathering. > > BUG= > > Committed: https://crrev.com/9336f4cc6d25d39a128176679a70dbd13a6d946e > Cr-Commit-Position: refs/heads/master@{#35395} TBR=mstarzinger@chromium.org,bmeurer@chromium.org,mvstanton@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/1878063004 Cr-Commit-Position: refs/heads/master@{#35404}
-
- 11 Apr, 2016 3 commits
-
-
mvstanton authored
This is useful for escape analysis, and helps upcoming changes to type feedback gathering. BUG= Review URL: https://codereview.chromium.org/1670143002 Cr-Commit-Position: refs/heads/master@{#35395}
-
marija.antic authored
Fix for multiple test failures occurring since ResumeGeneratorTrampoline was introduced with the change 974721c6. BUG= Review URL: https://codereview.chromium.org/1869343003 Cr-Commit-Position: refs/heads/master@{#35373}
-
neis authored
... instead of doing stack magic. This is a cleanup in preparation for the new generators implementation. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1867263002 Cr-Commit-Position: refs/heads/master@{#35370}
-
- 06 Apr, 2016 1 commit
-
-
bmeurer authored
Introduce a ResumeGeneratorTrampoline, which does the actual stack state reconstruction (currently always restores a fullcodegen frame), and introduce appropriate TurboFan builtins for %GeneratorPrototype%.next, %GeneratorPrototype%.return and %GeneratorPrototype%.throw based on this native builtin. Also unify the flooding in case of step-in to always work based on JSFunction and remove the special casing for JSGeneratorObject. R=mstarzinger@chromium.org, neis@chromium.org TBR=rossberg@chromium.org BUG=chromium:513471 LOG=n Review URL: https://codereview.chromium.org/1865833002 Cr-Commit-Position: refs/heads/master@{#35283}
-
- 30 Mar, 2016 1 commit
-
-
balazs.kilvady authored
Port d4a391bb Add SmiTag()/smiUntag() calls to make values on stack GC-safe. Original commit message: Use macro instructions for min, max ops to get the same functionality on pre-r6 and r6 targets. BUG=chromium:598651 LOG=N Review URL: https://codereview.chromium.org/1842833002 Cr-Commit-Position: refs/heads/master@{#35130}
-
- 29 Mar, 2016 1 commit
-
-
ishell authored
[es6] Add a flag to the Isolate that defines whether ES2015 tail call elimination is enabled or not. Thus DevTools will be able to disable tail call elimination dynamically upon user's choice. BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1837513002 Cr-Commit-Position: refs/heads/master@{#35098}
-
- 25 Mar, 2016 2 commits
-
-
balazs.kilvady authored
Use macro instructions for min, max ops to get the same functionality on pre-r6 and r6 targets. BUG= TEST=mjsunit/math-min-max, cctest/test-macro-assembler-mips64/min_max_nan, cctest/test-macro-assembler-mips/min_max_nan, cctest/test-assembler-mips64/min_max, cctest/test-assembler-mips/min_max Review URL: https://codereview.chromium.org/1694833002 Cr-Commit-Position: refs/heads/master@{#35073}
-
balazs.kilvady authored
Port b6419fa2 Now implemented as a builtin that delegates to the InstanceOfStub. That stub was parameterized to fallback to either Runtime_InstanceOf or to Runtime_OrdinaryHasInstance depending on the --harmony-instanceof flag. Once the feature stabilizes and the flag is no longer needed, we can get rid of this parameterization again. BUG=v8:4447 LOG=n Review URL: https://codereview.chromium.org/1832053002 Cr-Commit-Position: refs/heads/master@{#35072}
-
- 22 Mar, 2016 1 commit
-
-
ishell authored
BUG=v8:4698 LOG=N Review URL: https://codereview.chromium.org/1819073003 Cr-Commit-Position: refs/heads/master@{#34986}
-