- 15 Jun, 2016 5 commits
-
-
yangguo authored
TBR=machenbach@chromium.org NOTRY=true Review-Url: https://codereview.chromium.org/2068083002 Cr-Commit-Position: refs/heads/master@{#36991}
-
mlippautz authored
Adds an evacuation mode that allows moving pages within new space without copying objects. Basic idea: a) Move page within new space b) Sweep page to make iterable and process ArrayBuffers c) Finish sweep till next scavenge Threshold is currently 70% live bytes, i.e., the same threshold we use to determine fragmented pages. BUG=chromium:581412 LOG=N CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_tsan_rel,v8_mac64_asan_rel Review-Url: https://codereview.chromium.org/1957323003 Cr-Commit-Position: refs/heads/master@{#36990}
-
jgruber authored
Named capture groups may be specified using the /(?<name>pattern)/u syntax, with named backreferences specified as /\k<name>/u. They're hidden behind the --harmony-regexp-named-captures flag, and are only enabled for unicode regexps. R=yangguo@chromium.org BUG= Review-Url: https://codereview.chromium.org/2050343002 Cr-Commit-Position: refs/heads/master@{#36986}
-
bmeurer authored
Now that we have the PlainPrimitiveToNumber operator(s), we can unify all the places where we expect a number, but can also safely handle any plain-primitive (via ToNumber truncation). Drive-by-fix: Also handle Math.min consistently with Math.max. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2064953004 Cr-Commit-Position: refs/heads/master@{#36984}
-
zhengxing.li authored
The last 4 test cases in test/cctest/wasm/test-run-wasm-asmjs.cc added by the CL 36911 (https://codereview.chromium.org/2061583002) use float_t and double_t type for WasmRunner. For examples: At line 249: WasmRunner<float_t> r(&module, MachineType::Uint32()); But float_t and double_t depends on FLT_EVAL_METHOD macro of compiler. FLT_EVAL_METHOD is variant on different platform, if the FLT_EVAL_METHOD is 2, both float_t and double_t will be long double and gcc or clang will met error when compiling WasmRunner<long double> r(&module,MachineType::Uint32()); For more details, please refer: float_t: http://www.cplusplus.com/reference/cmath/float_t/ FLT_EVAL_METHOD: https://en.wikipedia.org/wiki/C99 check the IEEE 754 floating point support section directly. This CL used float and double to replace float_t and double_t to avoid this issue. BUG= Review-Url: https://codereview.chromium.org/2066703003 Cr-Commit-Position: refs/heads/master@{#36982}
-
- 14 Jun, 2016 15 commits
-
-
jpp authored
The modifications were necessary to properly represent asm types: 1) fround is no longer an overloaded function. 2) the constructor for MinMaxTypes now takes a return type. 3) Adds pseudo-types for representing the Load/Store types for fp heap views. BUG= Review-Url: https://codereview.chromium.org/2069443002 Cr-Commit-Position: refs/heads/master@{#36980}
-
oleksandr.chekhovskyi authored
Reporting use counts by invoking a callback once per occurrence has a large overhead cost in certain situations, for example when it needs to be dispatched to a different thread (which is the case for Web Workers). Parsing large scripts can produce a lot of occurrences (strict/sloppy mode once per function). Chromium (the only known user of UseCounters so far) does not actually care about number of occurrences, but simply whether they happened at least once. This commit changes behavior to report features at most once, which dramatically improves performance for impacted use cases, and should not affect the only known real world usage. R=littledan@chromium.org BUG=chromium:614775 Review-Url: https://codereview.chromium.org/2062203002 Cr-Commit-Position: refs/heads/master@{#36979}
-
mtrofin authored
Support for relocatable globals, to facilitate compilation before instantiation. BUG=v8:5072 Review-Url: https://codereview.chromium.org/2062003002 Cr-Commit-Position: refs/heads/master@{#36978}
-
vogelheim authored
Revert of [turbofan] Introduce a dedicated CheckBounds operator. (patchset #5 id:80001 of https://codereview.chromium.org/2035893004/ ) Reason for revert: Speculative revert since V8 roll is blocked. Buildbot: https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/228171 Example log: https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/228171/steps/browser_tests%20%28with%20patch%29%20on%20Ubuntu-12.04/logs/CreateNewFolder_FileManagerBrowserTest.Test_0 Failing assert: # # Fatal error in ../../v8/src/compiler/node.cc, line 63 # Node::New() Error: #202:DeoptimizeUnless[1] is nullptr # (I take it that's a rather generic assert in TF, hence the revert is somewhat sepculative.) Original issue's description: > [turbofan] Introduce a dedicated CheckBounds operator. > > This CheckBounds simplified operator is similar to the HBoundsCheck in > Crankshaft, and is hooked up to the new type feedback support in the > SimplifiedLowering. We use it to check the index bounds for keyed > property accesses. > > Note to perf sheriffs: This will tank quite a few benchmarks, as the > operator makes some redundant branch elimination ineffective for > certain patterns of keyed accesses. This does require more serious > redundancy elimination, which we will do in a separate CL. So ignore > any regressions from this CL, we know there will be a few. > > R=jarin@chromium.org > BUG=v8:4470,v8:5100 > > Committed: https://crrev.com/85e5567dae66a918500ae94c5568221137a0f5d4 > Cr-Commit-Position: refs/heads/master@{#36947} TBR=jarin@chromium.org,bmeurer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4470,v8:5100 Review-Url: https://codereview.chromium.org/2064163002 Cr-Commit-Position: refs/heads/master@{#36975}
-
yangguo authored
R=littledan@chromium.org, mathias@qiwi.be BUG=v8:4743 Committed: https://crrev.com/92bfd13457c80f02be01551f4ea9a5badfe0e4c4 Review-Url: https://codereview.chromium.org/2059113002 Cr-Original-Commit-Position: refs/heads/master@{#36969} Cr-Commit-Position: refs/heads/master@{#36974}
-
yangguo authored
Revert of [regexp] implement \p{Any}, \p{Ascii}, and \p{Assigned}. (patchset #3 id:40001 of https://codereview.chromium.org/2059113002/ ) Reason for revert: compile failure Original issue's description: > [regexp] implement \p{Any}, \p{Ascii}, and \p{Assigned}. > > R=littledan@chromium.org, mathias@qiwi.be > BUG=v8:4743 > > Committed: https://crrev.com/92bfd13457c80f02be01551f4ea9a5badfe0e4c4 > Cr-Commit-Position: refs/heads/master@{#36969} TBR=littledan@chromium.org,mathias@qiwi.be # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4743 Review-Url: https://codereview.chromium.org/2065083002 Cr-Commit-Position: refs/heads/master@{#36970}
-
yangguo authored
R=littledan@chromium.org, mathias@qiwi.be BUG=v8:4743 Review-Url: https://codereview.chromium.org/2059113002 Cr-Commit-Position: refs/heads/master@{#36969}
-
mlippautz authored
See bug description. BUG=chromium:619382 LOG=N R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2065063002 Cr-Commit-Position: refs/heads/master@{#36968}
-
ishell authored
The former will handle loads of predeclared global variables (vars and functions), lets, consts and undeclared variables. The latter will handle named loads from explicit receiver. In addition, named loads does not depend of the TypeofMode. TypeofMode related cleanup will be done in the follow-up CL. BUG=chromium:576312 LOG=Y TBR=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/1912633002 Cr-Commit-Position: refs/heads/master@{#36965}
-
bbudge authored
Moves between operands with different representations shouldn't happen, so don't test them. This makes it easier to modify canonicalization to differentiate between floating point types, which is needed to support floating point register aliasing for ARM and MIPS. This change also expands tests to include explicit FP moves (both register and stack slot). LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2060273003 Cr-Commit-Position: refs/heads/master@{#36963}
-
cbruni authored
Reland of place all remaining Oddball checks with new function (patchset #1 id:1 of https://codereview.chromium.org/2060213002/ ) Reason for revert: Cannot reproduce gc-stress failures locally. Original issue's description: > Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ ) > > Reason for revert: > failing tests > > Original issue's description: > > Replace all remaining Oddball checks with new function > > > > This CL removes the IsUndefined() and Co. methods from Object and HeapObject. > > The new method all take the isolate as parameter. > > > > BUG= > > > > Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5 > > Cr-Commit-Position: refs/heads/master@{#36921} > > TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/33b8bc24a12fb062100c0be84456faeb0b9fa5d1 > Cr-Commit-Position: refs/heads/master@{#36923} TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@chromium.org BUG= Review-Url: https://codereview.chromium.org/2059173002 Cr-Commit-Position: refs/heads/master@{#36957}
-
machenbach authored
This moves common configs used by all v8 targets into common templates. This also fixes using v8_optimized_debug correctly in executables and components. BUG=chromium:474921 NOTRY=true Review-Url: https://codereview.chromium.org/2054803003 Cr-Commit-Position: refs/heads/master@{#36956}
-
adamk authored
R=cbruni@chromium.org BUG=chromium:618788 Review-Url: https://codereview.chromium.org/2058013002 Cr-Commit-Position: refs/heads/master@{#36955}
-
jarin authored
This introduces SilenceNaN operator, which makes sure that we only store quiet NaNs into holey arrays. We omit the NaN silencing code at instruction selection time if the input is an operation that cannot possibly produce signalling NaNs. BUG= Review-Url: https://codereview.chromium.org/2060233002 Cr-Commit-Position: refs/heads/master@{#36950}
-
bmeurer authored
This CheckBounds simplified operator is similar to the HBoundsCheck in Crankshaft, and is hooked up to the new type feedback support in the SimplifiedLowering. We use it to check the index bounds for keyed property accesses. Note to perf sheriffs: This will tank quite a few benchmarks, as the operator makes some redundant branch elimination ineffective for certain patterns of keyed accesses. This does require more serious redundancy elimination, which we will do in a separate CL. So ignore any regressions from this CL, we know there will be a few. R=jarin@chromium.org BUG=v8:4470,v8:5100 Review-Url: https://codereview.chromium.org/2035893004 Cr-Commit-Position: refs/heads/master@{#36947}
-
- 13 Jun, 2016 14 commits
-
-
jpp authored
This CL introduces the new type system for the ASM type-checker/validator. BUG= Review-Url: https://codereview.chromium.org/2045703007 Cr-Commit-Position: refs/heads/master@{#36942}
-
littledan authored
Revert of change most cases of variable redeclaration from TypeError to SyntaxError (patchset #8 id:140001 of https://codereview.chromium.org/2048703002/ ) Reason for revert: This is going to break the LayoutTest inspector-protocol/console/console-let-const-with-api.html as seen in https://build.chromium.org/p/tryserver.v8/builders/v8_linux_blink_rel/builds/2247 . Please run this test manually, using instructions at https://www.chromium.org/developers/testing/webkit-layout-tests , and fix on the Chrome side if needed before resubmitting this patch. Original issue's description: > change most cases of variable redeclaration from TypeError to SyntaxError. > > Code like `let a; eval("var a;");` should throw a SyntaxError, not a TypeError > (this caused a test262 failure.). However, the code `eval("function NaN() {}");` > should actually throw a TypeError. This patch changes most cases of > redeclaration errors from TypeError to SyntaxError. See the test > mjsunit/regress/redeclaration-error-types for a thorough analysis with spec > references. > > The relevant sections of the spec are ES#sec-globaldeclarationinstantiation and > ES#sec-evaldeclarationinstantiation > > BUG=v8:4955 > LOG=y > > Committed: https://crrev.com/2b787561763d0f7e8dab698652715a742cf78291 > Cr-Commit-Position: refs/heads/master@{#36940} TBR=adamk@chromium.org,jwolfe@igalia.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4955 Review-Url: https://codereview.chromium.org/2064793002 Cr-Commit-Position: refs/heads/master@{#36941}
-
jwolfe authored
Code like `let a; eval("var a;");` should throw a SyntaxError, not a TypeError (this caused a test262 failure.). However, the code `eval("function NaN() {}");` should actually throw a TypeError. This patch changes most cases of redeclaration errors from TypeError to SyntaxError. See the test mjsunit/regress/redeclaration-error-types for a thorough analysis with spec references. The relevant sections of the spec are ES#sec-globaldeclarationinstantiation and ES#sec-evaldeclarationinstantiation BUG=v8:4955 LOG=y Review-Url: https://codereview.chromium.org/2048703002 Cr-Commit-Position: refs/heads/master@{#36940}
-
gsathya authored
This patch declares a new rest parameter for the derived constructor, and passes it to base constructor after calling PrepareSpreadArguments. This patch also updates the test262.status to account for the now passing test. BUG=v8:4890 Review-Url: https://codereview.chromium.org/2056993004 Cr-Commit-Position: refs/heads/master@{#36939}
-
caitpotter88 authored
BUG=v8:4483, v8:4907, 618603 LOG=N R=neis@chromium.org, yangguo@chromium.org, littledan@chromium.org Review-Url: https://codereview.chromium.org/2051423003 Cr-Commit-Position: refs/heads/master@{#36938}
-
nikolaos authored
It seems that I forgot to remove the DCHECK when refactoring this function, even though the comment had it right. It also seems that this is hard to trigger. The minimal example I found, after fuzzer's bug, was: eval, x[eval] R=adamk@chromium.org BUG=chromium:619476 LOG=N Review-Url: https://codereview.chromium.org/2058413002 Cr-Commit-Position: refs/heads/master@{#36929}
-
cbruni authored
Revert of Replace all remaining Oddball checks with new function (patchset #10 id:180001 of https://codereview.chromium.org/2043183003/ ) Reason for revert: failing tests Original issue's description: > Replace all remaining Oddball checks with new function > > This CL removes the IsUndefined() and Co. methods from Object and HeapObject. > The new method all take the isolate as parameter. > > BUG= > > Committed: https://crrev.com/ccefb3ae5fe967288d568013fb04e8761eafebc5 > Cr-Commit-Position: refs/heads/master@{#36921} TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org,ahaas@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/2060213002 Cr-Commit-Position: refs/heads/master@{#36923}
-
cbruni authored
This CL removes the IsUndefined() and Co. methods from Object and HeapObject. The new method all take the isolate as parameter. BUG= Review-Url: https://codereview.chromium.org/2043183003 Cr-Commit-Position: refs/heads/master@{#36921}
-
cbruni authored
Array.prototype.sort would not work properly on sloppy arguments of size > 2. BUG=chromium:618613 Review-Url: https://codereview.chromium.org/2051413004 Cr-Commit-Position: refs/heads/master@{#36920}
-
mstarzinger authored
This fixes FastNewStrictArgumentsStub and FastNewRestParameterStub to no longer assume that the strict arguments object being allocated will fit into new-space. The case where said object needs to move to large object space is now handled in the runtime. R=bmeurer@chromium.org TEST=mjsunit/regress/regress-crbug-614727 BUG=chromium:614727 Review-Url: https://codereview.chromium.org/2054853002 Cr-Commit-Position: refs/heads/master@{#36917}
-
bmeurer authored
Import base::ieee754::atan() and base::ieee754::atan2() from fdlibm and introduce Float64Atan and Float64Atan2 TurboFan operators based on those, similar to what we already did for Float64Log and Float64Log1p. Rewrite Math.atan() and Math.atan2() as TurboFan builtin and use the operators to also inline Math.atan() and Math.atan2() into optimized TurboFan functions. R=yangguo@chromium.org BUG=v8:5086,v8:5095 Review-Url: https://codereview.chromium.org/2065503002 Cr-Commit-Position: refs/heads/master@{#36916}
-
bmeurer authored
Import base::ieee754::log1p() from fdlibm and introduce a Float64Log1p TurboFan operator based on that, similar to what we do for Float64Log. Rewrite Math.log1p() as TurboFan builtin and use that operator to also inline Math.log1p() into optimized TurboFan functions. Also unify the handling of the special IEEE 754 functions somewhat in the TurboFan backends. At some point we can hopefully express this completely in the InstructionSelector (once we have an idea what to do with the ST(0) return issue on IA-32/X87). Drive-by-fix: Add some more test coverage for the log function. R=yangguo@chromium.org BUG=v8:5086,v8:5092 Review-Url: https://codereview.chromium.org/2060743002 Cr-Commit-Position: refs/heads/master@{#36914}
-
mtrofin authored
We were able to achieve our goals for register allocation independent of the allocation algorithm. Performance data so far is inconclusive re. the value of the Greedy algorithm, compared to the particular Linear Scan implementation we're currently using, and the performance measurement techniques we currently use are too imprecise to help with this matter. Retiring the algorithm to lower maintenance and evolution cost (e.g. lower cost of adding aliasing support). Once we improve benchmarking stability, and establish a suite sensitive enough for codegen improvement studies, we may revive the algorithm, should the need arise. BUG= Review-Url: https://codereview.chromium.org/2060673002 Cr-Commit-Position: refs/heads/master@{#36912}
-
mtrofin authored
MemoryOperands, on IA32. This needed to be fixed so that we can compile wasm code before creating instances, since the compiled code needs to be patched up for memory and globals references. This surfaces in asm-to-wasm scenarios. Added testing (rather, enhanced existing tests). Note patch#1 where we fail on ia32, and patch#2 with the fix. BUG=v8:5072 Review-Url: https://codereview.chromium.org/2061583002 Cr-Commit-Position: refs/heads/master@{#36911}
-
- 11 Jun, 2016 1 commit
-
-
peria authored
It is expected that temporarily used strings die while they are in new heap. So we can avoid to pay a heavy cost to externalize them. If they are used for times, externalization will happen when they move to an old heap. BUG=chrmoium:606093 Review-Url: https://codereview.chromium.org/2046933002 Cr-Commit-Position: refs/heads/master@{#36907}
-
- 10 Jun, 2016 5 commits
-
-
littledan authored
This patch adds a test for async/await analogous to a previous Promise test. It also fixes a typo in promise.js and makes a previous Promise test more correct by ensuring that all assertions run before completion, fixing the test expectations for the real result (which seems correct). BUG=v8:4483 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel Review-Url: https://codereview.chromium.org/2037653002 Cr-Commit-Position: refs/heads/master@{#36903}
-
neis authored
In commit b3bfc0bd, I corrected the source position of yield-exceptions by not setting the "return position" on returns that correspond to yields. It turns out that this caused a bug with debug stepping. The proper fix is to keep the return position on those returns but additionally attach the yield's source position to the Throw emitted in VisitYield. R=rmcilroy@chromium.org, yangguo@chromium.org BUG=v8:4907 Review-Url: https://codereview.chromium.org/2051783002 Cr-Commit-Position: refs/heads/master@{#36896}
-
neis authored
R=mstarzinger@chromium.org BUG= Review-Url: https://codereview.chromium.org/2056283002 Cr-Commit-Position: refs/heads/master@{#36895}
-
ulan authored
after the first GC if time allows and there is memory to be freed. BUG=chromium:618958 LOG=NO Review-Url: https://codereview.chromium.org/2057103002 Cr-Commit-Position: refs/heads/master@{#36894}
-
jkummerow authored
BUG=chromium:618845 Review-Url: https://codereview.chromium.org/2058063002 Cr-Commit-Position: refs/heads/master@{#36891}
-