- 16 Feb, 2016 22 commits
-
-
danno authored
Before this CL, the context of the parent frame was used when deoptimizing a stub failure rather than the context value passed to the stub itself. In order to guarantee that the right context is passed to the runtime upon stub failure, this CL adds the context explicitly to the stub's environment that's used to compute the failure deoptimizing translations. The context can then be extracted during deoptimization translation to ensure that the precise context that was passed to the stub is also passed to the runtime. R=jarin@chromium.org LOG=N Review URL: https://codereview.chromium.org/1694183003 Cr-Commit-Position: refs/heads/master@{#34030}
-
martyn.capewell authored
Support SBFX in the instruction selector for sign-extension patterns like Sar(Shl(x, a), b), where a and b are immediate values. BUG= Review URL: https://codereview.chromium.org/1695293002 Cr-Commit-Position: refs/heads/master@{#34029}
-
rodolph.perfetta authored
Let me know if this is not the right approach Review URL: https://codereview.chromium.org/1698483002 Cr-Commit-Position: refs/heads/master@{#34028}
-
jkummerow authored
Revert of Tweak type info threshold. (patchset #1 id:1 of https://codereview.chromium.org/1684093002/ ) Reason for revert: Tanks Mandreel-latency. Original issue's description: > Tweak type info threshold. > > Let the world know (if it cares) that this is the kind of > silliness that JS engines have to partake in if they want > to look good on Sunspider (this should give 5% overall). > > Committed: https://crrev.com/4f62af4234e8ad74abd8e4cd3e492f7727efc768 > Cr-Commit-Position: refs/heads/master@{#33866} TBR=yangguo@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. Review URL: https://codereview.chromium.org/1699063002 Cr-Commit-Position: refs/heads/master@{#34027}
-
jarin authored
Review URL: https://codereview.chromium.org/1700923002 Cr-Commit-Position: refs/heads/master@{#34026}
-
epertoso authored
Before this fix, we always ended up calling Runtime_LoadPropertyWithInterceptor, which caused the performance regression reported in http://crbug.com/585764. BUG=585764 LOG=y Review URL: https://codereview.chromium.org/1699913002 Cr-Commit-Position: refs/heads/master@{#34025}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1702443002 Cr-Commit-Position: refs/heads/master@{#34024}
-
cbruni authored
This CL improves running our internal benchmarks locally by adding the --pretty option to tools/run_perf.py. With the flag enabled we print the run-time of each benchmark directly and avoid the json output at the end. NOTRY=true Review URL: https://codereview.chromium.org/1681283004 Cr-Commit-Position: refs/heads/master@{#34023}
-
cbruni authored
EnsureJSArrayWithWritableFastElements Having several handles pointing to the backing store of an array that gets left-trimmed might cause the gc to start marking a stale-handle still pointing to the old backing-store start. By introducing a separate handle scope for EnsureJSArrayWithWritableFastElements we avoid this issue. Additionally a SLOW_DCHECK in Heap::LeftTrimFixedArray ensurse that there are no more than one active handle pointing to the backing store. BUG=chr:585787 LOG=n Review URL: https://codereview.chromium.org/1699733003 Cr-Commit-Position: refs/heads/master@{#34022}
-
hpayer authored
BUG=chromium:587026 LOG=n Review URL: https://codereview.chromium.org/1698983002 Cr-Commit-Position: refs/heads/master@{#34021}
-
mstarzinger authored
The LazyBailout operator (modelled as a nop-call) was introduced for placing a deoptimization point into exception handlers. Now that we are no longer re-entering lazy deoptimized code, the support can be removed. R=jarin@chromium.org BUG=v8:4195 LOG=n Review URL: https://codereview.chromium.org/1697503002 Cr-Commit-Position: refs/heads/master@{#34020}
-
bmeurer authored
Revert of [turbofan] Combine GenericLoweringPhase and ChangeLoweringPhase. (patchset #1 id:1 of https://codereview.chromium.org/1697133002/ ) Reason for revert: Seems to tank stuff. Original issue's description: > [turbofan] Combine GenericLoweringPhase and ChangeLoweringPhase. > > There's no need to use a dedicated ChangeLoweringPhase before we go to > GenericLoweringPhase; instead that change lowering (which is really > simplified lowering by now) should run together with generic lowering. > > R=jarin@chromium.org > > Committed: https://crrev.com/0835ed9caf44427755065eb45f9187678ec9844c > Cr-Commit-Position: refs/heads/master@{#34008} TBR=jarin@chromium.org,bmeurer@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1698273002 Cr-Commit-Position: refs/heads/master@{#34019}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1700903002 Cr-Commit-Position: refs/heads/master@{#34018}
-
machenbach authored
Revert of [tools] add --pretty switch to run_perf.py (patchset #7 id:120001 of https://codereview.chromium.org/1681283004/ ) Reason for revert: [Sheriff] Breaks android runs. Will look later why. Original issue's description: > [tools] add --pretty switch to run_perf.py > > This CL improves running our internal benchmarks locally by adding the > --pretty option to tools/run_perf.py. With the flag enabled we print > the run-time of each benchmark directly and avoid the json output at > the end. > > NOTRY=true > > Committed: https://crrev.com/83f69507ab1b9380b56758b747d4f3fabc849e49 > Cr-Commit-Position: refs/heads/master@{#33981} TBR=cbruni@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/1696293002 Cr-Commit-Position: refs/heads/master@{#34017}
-
rmcilroy authored
Fixes a bug in Ignition on Arm64 where lr gets trashed in StaContextSlot which causes the stack walker to get confused and crash. BUG=v8:4680 LOG=N Review URL: https://codereview.chromium.org/1694263002 Cr-Commit-Position: refs/heads/master@{#34016}
-
bmeurer authored
This was actually only necessary for dealing with %_Arguments and %_ArgumentsLength in Crankshaft, which have been removed recently, so there's no need to keep this piece of awesomeness around any longer. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1695193003 Cr-Commit-Position: refs/heads/master@{#34015}
-
danno authored
This functionality is useful for stubs that need to walk the stack. The new machine operator, LoadParentFramePointer dosn't force the currently compiling method to have a frame in contrast to LoadFramePointer. Instead, it adapts accordingly when frame elision is possible, making efficient stack walks possible without incurring a performance penalty for small stubs that can benefit from frame elision. R=bmeurer@chromium.org LOG=N Review URL: https://codereview.chromium.org/1695313002 Cr-Commit-Position: refs/heads/master@{#34014}
-
verwaest authored
BUG= Review URL: https://codereview.chromium.org/1697283002 Cr-Commit-Position: refs/heads/master@{#34013}
-
zhengxing.li authored
port 4ff159bd(r33880) original commit message: Add dedicated %LoadLookupSlot, %LoadLookupSlotInsideTypeof, %LoadLookupSlotForCall, %StoreLookupSlot_Sloppy and %StoreLookupSlot_Strict runtime entry points and use them appropriately in the various compilers. This way we can finally drop the machine operators from the JS graph level completely in TurboFan. Also drop the funky JSLoadDynamic operator from TurboFan, which was by now just a small wrapper around the runtime call to %LoadLookupSlot. BUG= Review URL: https://codereview.chromium.org/1694343002 Cr-Commit-Position: refs/heads/master@{#34012}
-
zhengxing.li authored
port d1c28849(r33873) original commit message: Moves InterpreterAssembler out of the compiler directory and into the interpreter directory. Makes InterpreterAssembler as subclass of CodeStubAssembler. As part of this change, the special bytecode dispatch linkage type is removed and instead we use a InterfaceDispatchDescriptor and a normal CodeStub linkage type. Removes a bunch of duplicated logic in InterpreterAssembler and instead uses the CodeStubAssembler logic. Refactors Interpreter with these changes. Modifies CodeStubAssembler to add the extra operations required by the Interpreter (extra call types, raw memory access and some extra binary ops). Also adds the ability for subclasses to add extra prologue and epilogue operations around calls, which is required for the Interpreter. BUG= Review URL: https://codereview.chromium.org/1696263002 Cr-Commit-Position: refs/heads/master@{#34011}
-
v8-autoroll authored
Rolling v8/tools/clang to 7a1ebdd9ae15490c88e87bf9b34417c318fe1986 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1702543002 Cr-Commit-Position: refs/heads/master@{#34010}
-
bradnelson authored
BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=manual R=titzer@chromium.org,aseemgarg@chromium.org LOG=N Review URL: https://codereview.chromium.org/1697723002 Cr-Commit-Position: refs/heads/master@{#34009}
-
- 15 Feb, 2016 18 commits
-
-
bmeurer authored
There's no need to use a dedicated ChangeLoweringPhase before we go to GenericLoweringPhase; instead that change lowering (which is really simplified lowering by now) should run together with generic lowering. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1697133002 Cr-Commit-Position: refs/heads/master@{#34008}
-
verwaest authored
This avoids quite expensive computation further downstream. Review URL: https://codereview.chromium.org/1697173002 Cr-Commit-Position: refs/heads/master@{#34007}
-
mbrandy authored
Port 4eff883b c72b49bd Original commit message: Ideally we would not need the StoreWriteBarrier instructions at all, but represent the RecordWrite functionality as machine subgraph, but that'll take some time to get there. In the mean time we can have a shorter instruction sequence by recognizing immediate indices here. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1695333002 Cr-Commit-Position: refs/heads/master@{#34006}
-
mbrandy authored
Port e0129d0f Original commit message: Turn the fast case of ArgumentsAccessStub into a new stub FastNewSloppyArgumentsStub, which is similar to the existing FastNewStrictArgumentsStub, although not polished yet, and the slow case always went to the runtime anyway, so we can just directly emit a runtime call there. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1699923002 Cr-Commit-Position: refs/heads/master@{#34005}
-
mbrandy authored
Port 0d59772b Original commit message: for the special case where the same register is used as both left and right input. R=jkummerow@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1698903002 Cr-Commit-Position: refs/heads/master@{#34004}
-
balazs.kilvady authored
Port 09d84535 Original commit message: The FastNewStrictArgumentsStub is very similar to the recently added FastNewRestParameterStub, it's actually almost a copy of it, except that it doesn't have the fast case we have for the empty rest parameter. This patch improves strict arguments in TurboFan and fullcodegen by up to 10x compared to the previous version. Also introduce proper JSSloppyArgumentsObject and JSStrictArgumentsObject for the in-object properties instead of having them as constants in the Heap class. Drive-by-fix: Use this stub and the FastNewRestParameterStub in the interpreter to avoid the runtime call overhead for strict arguments and rest parameter creation. BUG= Review URL: https://codereview.chromium.org/1698173002 Cr-Commit-Position: refs/heads/master@{#34003}
-
cbruni authored
V8 tracks already most useful information, but lacks proper tracing scopes that make it possible to distinguish certain events from each other. - add trace-scope to track lazy-parsing due to optimization - add trace-scope to track code optimization BUG= Review URL: https://codereview.chromium.org/1661883003 Cr-Commit-Position: refs/heads/master@{#34002}
-
bmeurer authored
The GraphTrimmer should not ever see a dead node, except for the roots that are explicitly fed into it. To defend against this, turn the condition into a DCHECK. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1698883003 Cr-Commit-Position: refs/heads/master@{#34001}
-
bmeurer authored
Eventually compiler.h might need to depend on the Pipeline to manage its life cycle for concurrent recompilation, so we should not have the cyclic include dependency here. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1698113002 Cr-Commit-Position: refs/heads/master@{#34000}
-
titzer authored
R=ahaas@chromium.org BUG= Review URL: https://codereview.chromium.org/1698133002 Cr-Commit-Position: refs/heads/master@{#33999}
-
jkummerow authored
Harvesting maps from the stub cache for megamorphic ICs is both slow (linear in the size of the stub cache) and imprecise (as it finds all maps that have a cached handler for the given property name). In the canonical megamorphic situation, this type feedback is useless anyway. The interesting case is when we can filter it down to a single map; however in these cases it is often possible to derive this map just by looking at the HGraph, which is both faster and more reliable. Review URL: https://codereview.chromium.org/1669213003 Cr-Commit-Position: refs/heads/master@{#33998}
-
ssanfilippo authored
Now the tool produces a far more readable output format, which bears a lot of resemblance to YAML. In fact, the output should be machine parseable as such, one document per testcase. However, the output format may be subject to changes in future, so don't rely on this property. In general, the output format has been optimized for producing a meaningful textual diff, while keeping a decent readability as well. Therefore, not everything is as compact as it could be, e.g. for an empty const pool we get: constant pool: [ ] instead of: constant pool: [] Also, trailing commas are always inserted in lists. Additionally, now the tool accepts its output format as input. When operating in this mode, all the snippets are extracted, processed and the output is then emitted as usual. If nothing has changed, the output should match the input. This is very useful for catching bugs in the bytecode generation by running a textual diff against a known-good file. The core (namely bytecode-expectations.cc) has been extracted from the original cc file, which provides the utility as usual. The definitions in the matching header of the library have been moved into the v8::internal::interpreter namespace. The library exposes a class ExpectationPrinter, with a method PrintExpectation, which takes a test snippet as input, and writes the formatted expectation to the supplied stream. One might then use a std::stringstream to retrieve the results as a string and run it through a diff utility. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1688383003 Cr-Commit-Position: refs/heads/master@{#33997}
-
jkummerow authored
for the special case where the same register is used as both left and right input. Review URL: https://codereview.chromium.org/1695283002 Cr-Commit-Position: refs/heads/master@{#33996}
-
verwaest authored
By not calling ReloadPropertyInformation, we avoid expensive descriptor array lookup. BUG= Review URL: https://codereview.chromium.org/1697153002 Cr-Commit-Position: refs/heads/master@{#33995}
-
jacob.bramley authored
This is effectively a port of 4eff883b (r27731). BUG= Review URL: https://codereview.chromium.org/1692253002 Cr-Commit-Position: refs/heads/master@{#33994}
-
titzer authored
Passing floating point params to/from C has never quite worked correctly, but we've never enforced the restriction early in the CallDescriptor creation process because of unittests. Fix unittests to make their own simple call descriptors and not rely on the C ones. R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1701593003 Cr-Commit-Position: refs/heads/master@{#33993}
-
machenbach authored
This creates an isolate with the v8-side valgrind wrapper and the valgrind binaries from third_party. It's dynamically checked if the directories are present. Follow up after https://codereview.chromium.org/1585093002/ and https://codereview.chromium.org/1583933006/ BUG=chromium:535160 LOG=n Review URL: https://codereview.chromium.org/1700673002 Cr-Commit-Position: refs/heads/master@{#33992}
-
bmeurer authored
Properly type String.prototype.concat, String.prototype.charCodeAt, and String.prototype.toLowerCase/toUpperCase in TurboFan. Also assign better type to %_StringCharFromCode. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1701673002 Cr-Commit-Position: refs/heads/master@{#33991}
-