- 25 Feb, 2016 32 commits
-
-
mstarzinger authored
R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1733363002 Cr-Commit-Position: refs/heads/master@{#34299}
-
mattloring authored
It is possible for JS objects to be allocated while we are retrieving the profile. These JS objects can in turn end up getting sampled by the profiler. Adding these to the profile data structures invalidates the iterators that are presently in flight. This change prevents such concurrent modifications from affecting the retrieve operation. BUG= Review URL: https://codereview.chromium.org/1735733002 Cr-Commit-Position: refs/heads/master@{#34298}
-
mstarzinger authored
This adds explicit setters for the SharedFunctionInfo::function_data field. Such setters are safer because they allow for explicit checking of which values are allowed, and they improve readability because the intended semantics become clear for each call-site. Also fix a cctest case along the way. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1730853005 Cr-Commit-Position: refs/heads/master@{#34297}
-
mtrofin authored
We should prefer hints from operands in non-deferred blocks, else we risk sideways moves on the hot path, just to accommodate the register allocator's choice of register assignment in the deferred block. BUG= Review URL: https://codereview.chromium.org/1718223002 Cr-Commit-Position: refs/heads/master@{#34296}
-
ulan authored
BUG=chromium:589413 LOG=NO Review URL: https://codereview.chromium.org/1733333002 Cr-Commit-Position: refs/heads/master@{#34295}
-
jochen authored
BUG= R=littledan@chromium.org Review URL: https://codereview.chromium.org/1735033002 Cr-Commit-Position: refs/heads/master@{#34294}
-
mstarzinger authored
By now the deprecation of strong mode is far enough along that the support present in the interpreter matches the support in the other compilers. Special expectations aren't needed anymore. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1738653003 Cr-Commit-Position: refs/heads/master@{#34293}
-
bmeurer authored
No need to go to the runtime to create a RegExp literal in Ignition, the stub can handle everything. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1737633002 Cr-Commit-Position: refs/heads/master@{#34292}
-
yangguo authored
We otherwise would print the \n from the last line. R=vogelheim@chromium.org Review URL: https://codereview.chromium.org/1738723003 Cr-Commit-Position: refs/heads/master@{#34291}
-
machenbach authored
The steps are slow on dev workstations. Having them run by the bots should be enough. The bots pass the mode explicitly. BUG=chromium:535160 LOG=n TBR=tandrii@chromium.org, kjellander@chromium.org Review URL: https://codereview.chromium.org/1738833002 Cr-Commit-Position: refs/heads/master@{#34290}
-
bmeurer authored
The ForInStep bytecode is essentially a (guaranteed) Smi increment operation. We can do not need to go to the runtime for this operation. R=oth@chromium.org Review URL: https://codereview.chromium.org/1738823002 Cr-Commit-Position: refs/heads/master@{#34289}
-
bmeurer authored
We already have stubs for ToName, ToObject and ToNumber, so we can just use them for Ignition instead of the generic runtime calls. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1736643003 Cr-Commit-Position: refs/heads/master@{#34288}
-
ahaas authored
Comparison operators are lowered using to a lexicographic ordering, e.g. (a,b) <= (c,d) <<>> (a < c) | (a == c) & (b <= d). R=titzer@chromium.org Review URL: https://codereview.chromium.org/1729263002 Cr-Commit-Position: refs/heads/master@{#34287}
-
mstarzinger authored
R=bmeurer@chromium.org BUG=v8:3956 LOG=n Review URL: https://codereview.chromium.org/1736963002 Cr-Commit-Position: refs/heads/master@{#34286}
-
ssanfilippo authored
Bytecode expectations have been moved to external (.golden) files, one per test. Each test in the suite builds a representation of the the compiled bytecode using BytecodeExpectationsPrinter. The output is then compared to the golden file. If the comparision fails, a textual diff can be used to identify the discrepancies. Only the test snippets are left in the cc file, which also allows to make it more compact and meaningful. Leaving the snippets in the cc file was a deliberate choice to allow keeping the "truth" about the tests in the cc file, which will rarely change, as opposed to golden files. Golden files can be generated and kept up to date using generate-bytecode-expectations, which also means that the test suite can be batch updated whenever the bytecode or golden format changes. The golden format has been slightly amended (no more comments about `void*`, add size of the bytecode array) following the consideration made while converting the tests. There is also a fix: BytecodeExpectationsPrinter::top_level_ was left uninitialized, leading to undefined behaviour. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1717293002 Cr-Commit-Position: refs/heads/master@{#34285}
-
yangguo authored
This is to help debugging missing break locations. R=vogelheim@chromium.org Review URL: https://codereview.chromium.org/1732253002 Cr-Commit-Position: refs/heads/master@{#34284}
-
bmeurer authored
We already have a code stub that implements Typeof, so we don't need a special runtime entry here to implement the TypeOf handler. R=rmcilroy@chromium.org Review URL: https://codereview.chromium.org/1732273002 Cr-Commit-Position: refs/heads/master@{#34283}
-
mythria authored
Handles stack overflow in interpreter. 1. When visiting function literal, if the shared function info cannot be found we should return a stack overflow. 2. When visiting the ast graph, if stack overflow happens then all the ast nodes are not visited, so we need to have appropriate handling in the AccumulatorResultScope and RegisterResultScope. 3. MakeBytecode should not return a suceess unconditionally. If there is a stack overflow, it should return false, so RangeError can be thrown. BUG=v8:4280,v8:4680 LOG=N Review URL: https://codereview.chromium.org/1721983005 Cr-Commit-Position: refs/heads/master@{#34282}
-
machenbach authored
Follow up after: https://codereview.chromium.org/1713993002/ BUG=chromium:535160 LOG=n TBR=tandrii@chromium.org, jkummerow@chromium.org Review URL: https://codereview.chromium.org/1733273002 Cr-Commit-Position: refs/heads/master@{#34281}
-
machenbach authored
BUG=v8:4779 LOG=n NOTRY=true TBR=bmeurer@chromium.org, ulan@chromium.org Review URL: https://codereview.chromium.org/1729263006 Cr-Commit-Position: refs/heads/master@{#34280}
-
ahaas authored
R=titzer@chromium.org Review URL: https://codereview.chromium.org/1724193003 Cr-Commit-Position: refs/heads/master@{#34279}
-
ahaas authored
I turn the test off for now. The problem is that mips does not deal with signalling NaNs as expected. @v8-mips-ports: Could it be that the mips simulator deals differently with signalling NaNs than the actual hardware? The implementation that is tested in these tests assumes that sNaN * 1.0 = qNaN, where the bits of sNaN and qNaN are equal except for the most significant mantissa bit. This assumption holds for the simulator, but seems not to hold for actual mips hardware. Do you know more about that? R=mstarzinger@chromium.org, titzer@chromium.org, v8-mips-ports@googlegroups.com Review URL: https://codereview.chromium.org/1735673003 Cr-Commit-Position: refs/heads/master@{#34278}
-
zhengxing.li authored
port ee8108b7 (r34246) original commit message: This implements proper handling of local control flow (i.e. break and continue) that spans the boundary of a do-expression. We can no longer determine the number of operands to be dropped from the nesting of statements alone, instead we use the new precise operand stack depth tracking. BUG= Review URL: https://codereview.chromium.org/1735853002 Cr-Commit-Position: refs/heads/master@{#34277}
-
machenbach authored
This filters test and third_party files to get a speed-up when running tests and when collecting profile data. BUG=chromium:568949 LOG=n Committed: https://crrev.com/761ee31be5ab4fde05c294e5d632608fbaea8ad4 Cr-Commit-Position: refs/heads/master@{#34216} Committed: https://crrev.com/906db7448702a6ac9fab2a445c57cc85f6dd1b1a Cr-Commit-Position: refs/heads/master@{#34253} Committed: https://crrev.com/fe38ad573ee737e06a74b7fcd73f557ac0f1135a Cr-Commit-Position: refs/heads/master@{#34272} Review URL: https://codereview.chromium.org/1730543002 Cr-Commit-Position: refs/heads/master@{#34276}
-
machenbach authored
Revert of [coverage] Filter some files from instrumentation. (patchset #4 id:60001 of https://codereview.chromium.org/1730543002/ ) Reason for revert: Prevents using goma with make. Original issue's description: > [coverage] Filter some files from instrumentation. > > This filters test and third_party files to get a speed-up > when running tests and when collecting profile data. > > BUG=chromium:568949 > LOG=n > > Committed: https://crrev.com/761ee31be5ab4fde05c294e5d632608fbaea8ad4 > Cr-Commit-Position: refs/heads/master@{#34216} > > Committed: https://crrev.com/906db7448702a6ac9fab2a445c57cc85f6dd1b1a > Cr-Commit-Position: refs/heads/master@{#34253} > > Committed: https://crrev.com/fe38ad573ee737e06a74b7fcd73f557ac0f1135a > Cr-Commit-Position: refs/heads/master@{#34272} TBR=tandrii@chromium.org,kjellander@chromium.org,jfb@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:568949 Review URL: https://codereview.chromium.org/1733213002 Cr-Commit-Position: refs/heads/master@{#34275}
-
bmeurer authored
Migrate Math.imul, Math.fround, Math.acos, Math.asin and Math.atan to C++ builtins, as these ones call into C++ anyway and so there's no need to have this extra wrapper around it. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1731543004 Cr-Commit-Position: refs/heads/master@{#34274}
-
ishell authored
This optimization does not give us much (see perf try bot results associated with this CL) but complicates things a lot. The main motivation is to avoid additional complexity in tail call optimization. There are some pieces left in the deoptimizer, but I'll address this in a separate CL. Review URL: https://codereview.chromium.org/1731273003 Cr-Commit-Position: refs/heads/master@{#34273}
-
machenbach authored
This filters test and third_party files to get a speed-up when running tests and when collecting profile data. BUG=chromium:568949 LOG=n Committed: https://crrev.com/761ee31be5ab4fde05c294e5d632608fbaea8ad4 Cr-Commit-Position: refs/heads/master@{#34216} Committed: https://crrev.com/906db7448702a6ac9fab2a445c57cc85f6dd1b1a Cr-Commit-Position: refs/heads/master@{#34253} Review URL: https://codereview.chromium.org/1730543002 Cr-Commit-Position: refs/heads/master@{#34272}
-
mtrofin authored
BUG= Review URL: https://codereview.chromium.org/1740543002 Cr-Commit-Position: refs/heads/master@{#34271}
-
zhengxing.li authored
port 666aec03 (r34237) original commit message: Since both null and undefined are also marked as undetectable now, we can just test that bit instead of having the CompareNilIC try to collect feedback to speed up the general case (without the undetectable bit being used). Drive-by-fix: Update the type system to match the new handling of undetectable in the runtime. BUG= Review URL: https://codereview.chromium.org/1731383003 Cr-Commit-Position: refs/heads/master@{#34270}
-
jkummerow authored
When there is no receiver object, plain function calls are a few percent faster than %_Call(). This patch also fixes the HAS_INDEX macro used in a bunch of Array.prototype functions to properly check for elements inherited from prototypes. Review URL: https://codereview.chromium.org/1706213002 Cr-Commit-Position: refs/heads/master@{#34269}
-
jkummerow authored
Mostly by avoiding unnecessary Handle/HandleScope creation, "length" property lookups, and length conversions. This yields about 60% speedup on the microbenchmark I tested with. Note that the C++ builtin is the middle performance tier of three, so not every Array.push use case will be affected by this patch. Review URL: https://codereview.chromium.org/1716833002 Cr-Commit-Position: refs/heads/master@{#34268}
-
- 24 Feb, 2016 8 commits
-
-
mbrandy authored
Port c129aa4d Original commit message: These macro operators represent a conditional eager deoptimization exit without explicit branching, which greatly reduces overhead of both scheduling and register allocation, and thereby greatly reduces overall compilation time, esp. when there are a lot of eager deoptimization exits. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1730383002 Cr-Commit-Position: refs/heads/master@{#34267}
-
mbrandy authored
Port 666aec03 Original commit message: Since both null and undefined are also marked as undetectable now, we can just test that bit instead of having the CompareNilIC try to collect feedback to speed up the general case (without the undetectable bit being used). Drive-by-fix: Update the type system to match the new handling of undetectable in the runtime. R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1733663003 Cr-Commit-Position: refs/heads/master@{#34266}
-
v8-autoroll authored
Rolling v8/tools/clang to 8598a726360f2722f4db0eab732a5f6b4cb41eb9 Rolling v8/tools/swarming_client to 71c61c858bb2c2deda83781978fe65e94171f58f TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review URL: https://codereview.chromium.org/1729263004 Cr-Commit-Position: refs/heads/master@{#34265}
-
mbrandy authored
Port ee8108b7 Original commit message: This implements proper handling of local control flow (i.e. break and continue) that spans the boundary of a do-expression. We can no longer determine the number of operands to be dropped from the nesting of statements alone, instead we use the new precise operand stack depth tracking. R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com TEST=mjsunit/harmony/do-expressions-control BUG=v8:4488 LOG=n Review URL: https://codereview.chromium.org/1735623002 Cr-Commit-Position: refs/heads/master@{#34264}
-
mstarzinger authored
This makes the aforementioned emitting function independent of the target architecture by leveraging existing abstractions. R=mvstanton@chromium.org Review URL: https://codereview.chromium.org/1730243002 Cr-Commit-Position: refs/heads/master@{#34263}
-
littledan authored
There was a bug in for-of loops without newly declared variables: If, in performing the assignment, an exception were thrown, then IteratorClose would not be called. The problem was that the assignment is done as part of assign_each, which happens before the loop is put back in the state which is recognized to be breaking/throwing/returning early. This patch modifies the for-of desugaring by setting the loop state before, rather than after, evaluating the assign_each portion, which is responsible for evaluating the assignment in for-of loops which do not have a declaration. This patch, together with https://codereview.chromium.org/1728973002 , allow all test262 iterator return-related tests to pass. R=rossberg BUG=v8:4776 LOG=Y Review URL: https://codereview.chromium.org/1731773003 Cr-Commit-Position: refs/heads/master@{#34262}
-
littledan authored
In the for-of desugaring, IteratorClose is a subtle thing to get right. When return exists, the logic for which exception to throw is as follows: 1. Get the 'return' property and property any exception that might come from the property read 2. Call return, not yet propagating an exception if it's thrown. 3. If we are closing the iterator due to an exception, propagate that error. 4. If return threw, propagate that error. 5. Check if return's return value was not an object, and throw if so Previously, we were effectively doing step 5 even if an exception "had already been thrown" by step 3. Because this took place in a finally block, the exception "won the race" and was the one propagated to the user. The fix is a simple change to the desugaring to do step 5 only if step 3 didn't happen. R=rossberg BUG=v8:4775 LOG=Y Review URL: https://codereview.chromium.org/1728973002 Cr-Commit-Position: refs/heads/master@{#34261}
-
akos.palfi authored
Per MIPS O32 ABI the first four arguments must be passed via the a0-a3 registers and they must be on the stack as well. TEST=cctest/test-run-wasm/* BUG= Review URL: https://codereview.chromium.org/1730763002 Cr-Commit-Position: refs/heads/master@{#34260}
-