- 18 Apr, 2016 40 commits
-
-
thakis authored
clang assumes 16-byte stack alignment, but incoming stack alignment isn't always guaranteed to be that way. It looks like v8 was lucky to not hit this so far. See https://crbug.com/418554 -- this makes v8's standalone config match Chromium. See also https://llvm.org/bugs/show_bug.cgi?id=21414 Maybe it's possible to change the caller of OnEntryHook() to guarantee the right alignment, but matching Chromium's build flags here seems like a good idea in general. BUG=v8:4928 LOG=n Review URL: https://codereview.chromium.org/1899783002 Cr-Commit-Position: refs/heads/master@{#35597}
-
binji authored
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=v8:4614 LOG=y TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1902433003 Cr-Commit-Position: refs/heads/master@{#35596}
-
jyan authored
Port 89d7bfda Original commit message: 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=yangguo@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/1893283003 Cr-Commit-Position: refs/heads/master@{#35595}
-
hlopko authored
Quick one, ptal. BUG=468240 LOG=no Committed: https://crrev.com/0eae5650dec265e961a1024fd2090301f2cdca16 Cr-Commit-Position: refs/heads/master@{#35578} Review URL: https://codereview.chromium.org/1895753002 Cr-Commit-Position: refs/heads/master@{#35594}
-
caitpotter88 authored
Change --harmony-exponentiation-operator to be enabled by default. Intent-to-Ship: https://groups.google.com/forum/#!topic/v8-users/W6rKEsdQHXE BUG=v8:3915 LOG=N R=adamk@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/1895113003 Cr-Commit-Position: refs/heads/master@{#35593}
-
akos.palfi authored
Port 53253799 BUG= Review URL: https://codereview.chromium.org/1900743002 Cr-Commit-Position: refs/heads/master@{#35592}
-
balazs.kilvady authored
BUG= Review URL: https://codereview.chromium.org/1895843002 Cr-Commit-Position: refs/heads/master@{#35591}
-
mstarzinger authored
This makes sure that the Compiler::CompileForLiveEdit API function uses the common pipeline for top-level code. It ensures that a proper shared function info object is allocated before compilation is triggered. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1900613002 Cr-Commit-Position: refs/heads/master@{#35590}
-
jyan authored
The old switch-case instruction decode implementation results in a sparse table, which is not resolved by a fast jump table routing. Therefore, it is really slow in instruction decoding phase. R=joransiu@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1873963002 Cr-Commit-Position: refs/heads/master@{#35589}
-
mstarzinger authored
R=ishell@chromium.org BUG=chromium:604375 LOG=n Review URL: https://codereview.chromium.org/1895073002 Cr-Commit-Position: refs/heads/master@{#35588}
-
bjaideep authored
Port 89d7bfda Original commit message: 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=yangguo@chromium.org, joransiu@ca.ibm.com, mbrandy@us.ibm.com, michael_dawson@ca.ibm.com, jyan@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1899763002 Cr-Commit-Position: refs/heads/master@{#35587}
-
rmcilroy authored
Binding bytecode_array to a CodeStubAssembler variable in CallEpilogue was causing issues with the approach to inline code stubs into interpreter bytecode handlers. Instead of doing this, just keep track of whether a call has been made, and if so reload directly from the stack frame when necessary. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1895063002 Cr-Commit-Position: refs/heads/master@{#35586}
-
ssanfilippo authored
Misattributed samples are strictly related to handlers, and the size of this special group helps understand how accurate the profile is. For these reasons, it makes more sense to always show this group. LOG=N BUG=v8:4899 Review URL: https://codereview.chromium.org/1895793002 Cr-Commit-Position: refs/heads/master@{#35585}
-
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}
-