- 18 Apr, 2016 31 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}
-
mstarzinger authored
This should be a plain refactoring change with only negligible changes to method semantics. The main aim is to improve readability of some API method implementations. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1895033003 Cr-Commit-Position: refs/heads/master@{#35583}
-
jyan authored
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1896733002 Cr-Commit-Position: refs/heads/master@{#35582}
-
yangguo authored
There were a couple of issues with it: - interpreter is not supported - the source position was just accidentally correct for full-codegen - the eval origin could have been cached Also fixes a few other places to use AbstractCode. R=mstarzinger@chromium.org Committed: https://crrev.com/2f3a171adc9e620c2235bf0562145b9d4eaba66d Cr-Commit-Position: refs/heads/master@{#35257} Committed: https://crrev.com/ad4e8a27963b704bb70ec8bac0991c57296b1d16 Cr-Commit-Position: refs/heads/master@{#35481} Review URL: https://codereview.chromium.org/1854713002 Cr-Commit-Position: refs/heads/master@{#35581}
-
mstarzinger authored
This removes the helper function in question that side-steps the interpreter without going through the canonical UseIgnition predicate. Having such a function is dangerous as it hides paths that are not yet covered by the interpreter (like live edit in this case). R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1895763002 Cr-Commit-Position: refs/heads/master@{#35580}
-
mstarzinger authored
R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1897793002 Cr-Commit-Position: refs/heads/master@{#35579}
-
hlopko authored
Quick one, ptal. BUG=468240 LOG=no Review URL: https://codereview.chromium.org/1895753002 Cr-Commit-Position: refs/heads/master@{#35578}
-
bmeurer authored
First step towards unifying the allocation story in TurboFan. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1900593002 Cr-Commit-Position: refs/heads/master@{#35577}
-
danno authored
This separation is needed to make two goals possible simultaneously: * is should be possible to offer V8 components a simple, clean interface to TurboFan's low-level code generation that doesn't expose details about the TF. * it should be possible to easily create new CodeAssembler "macros" that don't require a review from an OWNER of the compiler directory. Review URL: https://codereview.chromium.org/1875583003 Cr-Commit-Position: refs/heads/master@{#35576}
-
jarin authored
Review URL: https://codereview.chromium.org/1893283002 Cr-Commit-Position: refs/heads/master@{#35575}
-
ssanfilippo authored
A new script is introduced, linux_perf_report.py, which reads Linux perf data collected when running with FLAG_perf_basic_prof enabled and produces an input file for flamegraph.pl, or a report of the hottest bytecode handlers. The bottom blocks of the produced flamegraph are bytecode handlers. Special bottom blocks exist as well for compile routines, time spent outside the interpreter and interpreter entry trampolines. Because various Stubs and other pieces of JITted code do not maintain the frame pointer, some sampled callchains might be incomplete even if V8 is compiled with no_omit_framepointer=on. The script is able to detect the most common anomaly where an entry trampoline appears in a chain, but not on top, meaning that the frame of another bytecode handler is hidden. In this case, the sample will be moved to a [misattributed] group to avoid skewing the profile of unrelated handlers. Misattributed samples and compilation routines are hidden by default. BUG=v8:4899 LOG=N Review URL: https://codereview.chromium.org/1783503002 Cr-Commit-Position: refs/heads/master@{#35574}
-
ahaas authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1885413004 Cr-Commit-Position: refs/heads/master@{#35573}
-
jochen authored
Reland of [api] Restrict Template::Set to take templates or primitive values (patchset #1 id:1 of https://codereview.chromium.org/1860003002/ ) Reason for revert: node.js is updated now Original issue's description: > Revert of [api] Restrict Template::Set to take templates or primitive values (patchset #1 id:1 of https://codereview.chromium.org/1839983002/ ) > > Reason for revert: > Breaks node.js > > Original issue's description: > > [api] Restrict Template::Set to take templates or primitive values > > > > Embedders that passed in non-primitive values should either use > > getters/setters (templates) or install a native data property, > > otherwise, the values would all result in cross-context leaks > > > > BUG=none > > R=verwaest@chromium.org > > LOG=y > > > > Committed: https://crrev.com/eebdee8eafa97849cc70c25f3fecf1b075bac248 > > Cr-Commit-Position: refs/heads/master@{#35244} > > TBR=verwaest@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=none > > Committed: https://crrev.com/e1674a24ca3cb92bb4e58d368b25767bd61a0dfa > Cr-Commit-Position: refs/heads/master@{#35264} TBR=verwaest@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=none Review URL: https://codereview.chromium.org/1894993002 Cr-Commit-Position: refs/heads/master@{#35572}
-
ssanfilippo authored
Linux perf expects hex literals without a leading 0x, while some implementations of printf might prepend one when using the %p format for pointers, leading to wrongly formatted JIT symbols maps. Instead, use V8PRIxPTR format string and cast pointer to uintpr_t, since we have control over the exact output format of integers. LOG=N Review URL: https://codereview.chromium.org/1885033005 Cr-Commit-Position: refs/heads/master@{#35571}
-
mstarzinger authored
This introduces a dedicated getter to extract call descriptors from operators of call nodes (i.e. call and tail-call) to ensure that all accesses are const-correct. An implicit cast of constness is undefined behavior and hard to spot without sanitization. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1894983002 Cr-Commit-Position: refs/heads/master@{#35570}
-
mstarzinger authored
This fixes undefined behavior introduced by extracting the const call descriptor of a call node as non-const. Such an implicit cast between constness is not safe and should be avoided. R=ahaas@chromium.org TEST=unittests/Int64LoweringTest.CallI64Parameter BUG=v8:4924 LOG=n Review URL: https://codereview.chromium.org/1900563002 Cr-Commit-Position: refs/heads/master@{#35569}
-
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}
-
mstarzinger authored
This disables parsing when we optimize directly from bytecode using TurboFan, because TurboFan is capable of building graphs out of the bytecode directly. R=bmeurer@chromium.org BUG=v8:4280 LOG=n Review URL: https://codereview.chromium.org/1891663004 Cr-Commit-Position: refs/heads/master@{#35567}
-
jochen authored
Reland of Immediately cache compiled scripts. (patchset #1 id:1 of https://codereview.chromium.org/1882833006/ ) Reason for revert: Fixed webkit_unit_tests Original issue's description: > Revert of Immediately cache compiled scripts. (patchset #2 id:20001 of https://codereview.chromium.org/1890083002/ ) > > Reason for revert: > [Sheriff] Breaks: > https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/8769 > > Auto-bisect points to this CL. > > Original issue's description: > > Immediately cache compiled scripts. > > > > Usually, script compilation is expensive enough to warrant the extra > > overhead of caching scripts immediatly. > > > > BUG=chromium:588900 > > R=yangguo@chromium.org > > LOG=n > > > > Committed: https://crrev.com/3533c084d470912384988768c4b3b109304da357 > > Cr-Commit-Position: refs/heads/master@{#35527} > > TBR=yangguo@chromium.org,jochen@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:588900 > > Committed: https://crrev.com/f8a5a4da70d0a8e6dbb1b5c633c2b6b47fe5c3f6 > Cr-Commit-Position: refs/heads/master@{#35536} TBR=yangguo@chromium.org,machenbach@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:588900 LOG=n Review URL: https://codereview.chromium.org/1901573002 Cr-Commit-Position: refs/heads/master@{#35566}
-
jarin authored
This introduces a compiler pass that schedules the graph and re-wires effect chain according to the schedule. It also connects allocating representation changes to the effect chain, and removes the BeginRegion and EndRegion nodes - they should not be needed anymore because all effectful nodes should be already wired-in. This is an intermediate CL - the next step is to move lowering of the Change*ToTaggedEffect nodes to StateEffectIntroduction so that we do not have to introduce the effectful versions of nodes. Review URL: https://codereview.chromium.org/1849603002 Cr-Commit-Position: refs/heads/master@{#35565}
-
jochen authored
Even if there's already one in memory BUG= R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1900483002 Cr-Commit-Position: refs/heads/master@{#35564}
-
verwaest authored
BUG= Committed: https://crrev.com/4c2b04542f263b2679194f9fb75672ebbe72b924 Cr-Commit-Position: refs/heads/master@{#35330} Committed: https://crrev.com/7fdfdc12d4e4291348112ace4278a827f57f2eb9 Cr-Commit-Position: refs/heads/master@{#35494} Review URL: https://codereview.chromium.org/1838283003 Cr-Commit-Position: refs/heads/master@{#35563}
-
bmeurer authored
Add support to optimize certain comparisons of typeof with known strings to utilize the existing ObjectIs<Type> predicates. Also add a new ObjectIsCallable, which is used to optimize the common typeof x === "function" pattern. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1898653003 Cr-Commit-Position: refs/heads/master@{#35562}
-
zhengxing.li authored
port 0c05e02f (r35480) original commit message: 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= Review URL: https://codereview.chromium.org/1893243002 Cr-Commit-Position: refs/heads/master@{#35561}
-
zhengxing.li authored
port 5e9ddf6c (r35453) original commit message: Reland of (https://codereview.chromium.org/1617503003) * New atomic code stubs for x64, ia32, arm, arm64 * Add convenience functions JumpIfNotValidSmiValue, JumpIfUintNotValidSmiValue to macro-assembler-ia32 (API based on x64 macro assembler) * Remove runtime implementation of Atomics.load, the code stub should always be called instead * Add new test to mjsunit atomics test; check that Smi values of different sizes are supported when possible, else fall back to HeapNumbers These changes were needed to add another codestub: * Bump kStubMajorKeyBits from 7 to 8 * Reduce ScriptContextFieldStub::kSlotIndexBits from 13 to 12 BUG= Review URL: https://codereview.chromium.org/1894923002 Cr-Commit-Position: refs/heads/master@{#35560}
-
mtrofin authored
Revert "[wasm] Quickfix for register allocation problem on ia32." This reverts commit 2ca31b63. BUG= Review URL: https://codereview.chromium.org/1824303002 Cr-Commit-Position: refs/heads/master@{#35559}
-
zhengxing.li authored
port c2de9611(r35440) original commit message: 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= Review URL: https://codereview.chromium.org/1893213002 Cr-Commit-Position: refs/heads/master@{#35558}
-
mtrofin authored
optimizer was merging phi lowering moves into the node defining the phi. Addressing such cases proved to be too difficult in the existing validator. The new validator addresses this, by making no assumptions on phi lowering details. This unblocks 1824303002. BUG= Review URL: https://codereview.chromium.org/1855023002 Cr-Commit-Position: refs/heads/master@{#35557}
-
zhengxing.li authored
port 52148c41 (r35407) original commit message: Add relocatable pointers for wasm memory references that need to be updated when wasm GrowMemory is used. Code generator changes to accept relocatable constants as immediates. BUG= Review URL: https://codereview.chromium.org/1895673002 Cr-Commit-Position: refs/heads/master@{#35556}
-
zhengxing.li authored
port 2e329666(r35370) original commit message: ... instead of doing stack magic. This is a cleanup in preparation for the new generators implementation. BUG= Review URL: https://codereview.chromium.org/1893943002 Cr-Commit-Position: refs/heads/master@{#35555}
-
zhengxing.li authored
port ce1fe78d (r35331) original commit message: BUG= Review URL: https://codereview.chromium.org/1893173002 Cr-Commit-Position: refs/heads/master@{#35554}
-
- 17 Apr, 2016 1 commit
-
-
weiliang.lin authored
WASM codes always have a StackFrame::Type marker. BUG= Review URL: https://codereview.chromium.org/1879543002 Cr-Commit-Position: refs/heads/master@{#35553}
-
- 16 Apr, 2016 8 commits
-
-
bmeurer authored
These operators are really pure on the JavaScript level, and were only part of the effect chain to make sure we don't accidentially schedule them right after raw allocations, which is no longer an issue since we now have the concept of atomic regions. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1893543004 Cr-Commit-Position: refs/heads/master@{#35552}
-
bmeurer authored
Revert of [turbofan] Improve lowering of ObjectIs<Type> somewhat. (patchset #1 id:1 of https://codereview.chromium.org/1872143002/ ) Reason for revert: Looking at types in ChangeLowering is generally unsafe. Original issue's description: > [turbofan] Improve lowering of ObjectIs<Type> somewhat. > > If we already know that the input to one of the ObjectIs<Type> nodes is > TaggedPointer, we don't need to perform the Smi check at runtime. > > R=jarin@chromium.org > > Committed: https://crrev.com/4fc4978cee0bb7ad2ae8681a67b7032eba6a7d11 > Cr-Commit-Position: refs/heads/master@{#35368} TBR=jarin@chromium.org,bmeurer@google.com # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1893123002 Cr-Commit-Position: refs/heads/master@{#35551}
-
bmeurer authored
R=jarin@chromium.org Committed: https://crrev.com/20eff45de11609934be339dffe46276ff0a4bc22 Cr-Commit-Position: refs/heads/master@{#35509} Review URL: https://codereview.chromium.org/1887343002 Cr-Commit-Position: refs/heads/master@{#35550}
-
bmeurer authored
Revert of [turbofan] Remove the leftover LoadBuffer hacks. (patchset #1 id:1 of https://codereview.chromium.org/1887343002/ ) Reason for revert: Using types in ChangeLowering is generally unsafe. Original issue's description: > [turbofan] Remove the leftover LoadBuffer hacks. > > R=jarin@chromium.org > > Committed: https://crrev.com/20eff45de11609934be339dffe46276ff0a4bc22 > Cr-Commit-Position: refs/heads/master@{#35509} TBR=jarin@chromium.org,mstarzinger@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1893893002 Cr-Commit-Position: refs/heads/master@{#35549}
-
machenbach authored
Revert of [Atomics] Remove Atomics code stubs; use TF ops (patchset #6 id:100001 of https://codereview.chromium.org/1891033002/ ) Reason for revert: [Sheriff] Breaks https://build.chromium.org/p/client.v8/builders/V8%20Linux%20ASAN%20mipsel%20-%20debug%20builder/builds/6121 Original issue's description: > [Atomics] Remove Atomics code stubs; use TF ops > > This is a much cleaner solution, which won't require nearly as much > architecture-specific code. Thanks bmeurer@! > > BUG=v8:4614 > LOG=y > R=bmeurer@chromium.org,jarin@chromium.org > > Committed: https://crrev.com/6ff5881b1def45b35384572f61327e42563a89c3 > Cr-Commit-Position: refs/heads/master@{#35547} TBR=bmeurer@chromium.org,jarin@chromium.org,rodolph.perfetta@gmail.com,binji@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4614 Review URL: https://codereview.chromium.org/1895643002 Cr-Commit-Position: refs/heads/master@{#35548}
-
binji authored
This is a much cleaner solution, which won't require nearly as much architecture-specific code. Thanks bmeurer@! BUG=v8:4614 LOG=y R=bmeurer@chromium.org,jarin@chromium.org Review URL: https://codereview.chromium.org/1891033002 Cr-Commit-Position: refs/heads/master@{#35547}
-
jyan authored
R=joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1893713002 Cr-Commit-Position: refs/heads/master@{#35546}
-
machenbach authored
Revert of Get rid of UnsafeCurrent in Sampler (patchset #12 id:220001 of https://codereview.chromium.org/1858143003/ ) Reason for revert: [Sheriff] Breaks tsan: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/8999 Original issue's description: > Get rid of UnsafeCurrent in Sampler > > Currently we are using UnsafeCurrent in async signal handler to acquire the > isolate of VM thread, but we want to get rid of that since it prevents V8 from > being thread agnostic. > > This patch replaces UnsafeCurrent with a static map, where we store a map of > samplers for threads, and makes it accessible by signal handler. > > BUG=v8:4889 > LOG=n > > Committed: https://crrev.com/62fb4775fea0d56d8a175baf1d902213f6752168 > Cr-Commit-Position: refs/heads/master@{#35541} TBR=jochen@chromium.org,alph@chromium.org,fmeawad@chromium.org,yangguo@chromium.org,lpy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4889 Review URL: https://codereview.chromium.org/1897673002 Cr-Commit-Position: refs/heads/master@{#35545}
-