- 15 Jan, 2020 2 commits
-
-
Santiago Aboy Solanes authored
It doesn't do anything. Bug: v8:10021 Change-Id: I430550f9ce25fd555ec32c8eb0f3276a63c7e53b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2000746Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#65791}
-
Nico Hartmann authored
This CL adds optimizations for Word64And, Word64Or and Word64Xor to the MachineOperatorReducer. Some of these (esp. constant folding) have previously been removed from CodeAssembler to streamline the optimization pipeline. Bug: v8:10021 Change-Id: I679f0b60589a84b2d92ca6d9083efaddfe0b6423 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1997131 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#65781}
-
- 03 Dec, 2019 1 commit
-
-
Seth Brenith authored
I noticed that the generated code from the Torque macro EnsureArrayLengthWritable included an imul instruction, even though the inputs to that instruction are both constants. This change adds the ability for MachineOperatorReducer to get rid of that operation. Change-Id: Ia2050c888d76f110d1290fd9eab13853c3353a63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1941138 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#65310}
-
- 26 Nov, 2019 1 commit
-
-
Santiago Aboy Solanes authored
In both ChangeIntPtrToSmi and ChangeInt32ToSmi we can use bitcasts instead of change nodes for Smi Tagging, when we are using 31 bit smis in 64 bit architectures with pointer compression enabled. In ChangeIntPtrToSmi we can ignore the truncation as well. Updated DecompressionOptimizer to match the new pattern. Change-Id: I4487ba40ba9fda7b1ab31da95ff7bd144407d02d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1924355 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#65168}
-
- 11 Nov, 2019 1 commit
-
-
Santiago Aboy Solanes authored
Including but not limiting to removing: * BitcastCompressedXXX * CheckedCompressedXXX * ChangeXXXToCompressedYYY * ChangeCompressedXXX As a note, ChangeTaggedToCompressed can't be removed just yet as it is still in use. Bug: v8:7703 Change-Id: I98cf88a32adfa976d419e69702d1cac4d3e811a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903435 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64880}
-
- 08 Nov, 2019 1 commit
-
-
Clemens Backes authored
{WhichPowerOf2} is basically the same as {CountTrailingZeros}, with a restriction to powers of two. Since it does not use or depend on any v8 internals, it can be moved to src/base/bits.h. This CL also changes the implementation to use the CTZ builtin if available, and falls back to popcnt otherwise. Drive-by: Make it constexpr, and rename to {WhichPowerOfTwo}. R=sigurds@chromium.org Bug: v8:9810, v8:8912 Change-Id: I8368d098f9ab1247f3b9f036f1385a38de10cc6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903966Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64851}
-
- 11 Sep, 2019 1 commit
-
-
Igor Sheludko authored
... to precisely express which guarantees does this operator provide. Drive-by-fix: use it for other tag-checking predicates in CSA. Bug: v8:9396 Change-Id: Ifee22922ac02ec8866038be1a97625a32638d521 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795504 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63681}
-
- 13 Aug, 2019 1 commit
-
-
Santiago Aboy Solanes authored
We were going for 64 bits to go back to 32 bits. For example, TruncateInt64ToInt32(BitcastTaggedSignedToWord(ChangeCompressedToTagged(x))) when that doesn't modify the value at all. In order to keep the machine graph verifier happy two bitcast operations were introduced. As a drive-by nit cleanup, we were having two empty lines between some functions implementations in machine-operator-reducer.cc. Bug: v8:7703 Change-Id: Ifaa0d656010fe4f6f6f4581a2bb6633f060245b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1749383 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#63191}
-
- 12 Jun, 2019 1 commit
-
-
Georg Schmid authored
[turbofan] Extend BitcastTaggedToWord(BitcastWordToTaggedSigned(...)) elimination to BitcastTaggedSignedToWord R=tebbi@chromium.org Bug: chromium:973047 Change-Id: I33de86258e04140c6da8099a0d9e4aee3f74abe9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1655298 Commit-Queue: Georg Schmid <gsps@google.com> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#62115}
-
- 28 May, 2019 1 commit
-
-
Sigurd Schneider authored
..to the case where the intermediary add is unused. Bug: chromium:967186 Change-Id: I8ff95e71fbad88b9b1544f375303eb5400377631 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1632071Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61875}
-
- 24 May, 2019 1 commit
-
-
Sigurd Schneider authored
This adds optimizations that apply the reductions (x + Int32Constant(a)) + Int32Constant(b)) => x + Int32Constant(a + b) (x + Int64Constant(a)) + Int64Constant(b)) => x + Int64Constant(a + b) to the TurboFan graph. This helps reducing awkward sequences like leaq r12,[r9*8+0x8] movq r12,[rbx+r12*1-0x1] to movq r12,[rax+r9*8+0x7] Change-Id: Iaa3a1cb9136a3f905ba33c62e16c3cb3c117605c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627544 Auto-Submit: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#61817}
-
- 15 May, 2019 1 commit
-
-
Yang Guo authored
R=bmeurer@chromium.org, clemensh@chromium.org, jkummerow@chromium.org, sigurds@chromium.org, ulan@chromium.org, verwaest@chromium.org Bug: v8:9247 Change-Id: I153a6bbfc55989fe7a86c052f95c5cb8ee61e841 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613244 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61557}
-
- 14 Mar, 2019 1 commit
-
-
Ulan Degenbaev authored
This should have no effect unless the embedder uses an old version of the standard library with missing overloads of <math.h> functions, which causes such functions to perform implicit conversion to double. In such cases, the CL removes the implicit conversion. Change-Id: Ib90a461c81b1f354f7acdf32df88257bff20aca8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523549 Auto-Submit: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60243}
-
- 08 Mar, 2019 1 commit
-
-
Jakob Kummerow authored
RotateRight32 needs a "number of bits" operand in the range 0..31. Thankfully that's how x86 shift instructions behave anyway, and how the bitwise shift operators in JavaScript are spec'ed, so this fix is unobservable in non-UBSan builds. RemoveArrayHolesGeneric can be used for length values anywhere in the uint32_t range, so it must not implicitly cast those to int. That actually caused an observable bug where a proxy's traps would not get called at all, but only for huge "length" properties, where the entire operation would also be painfully slow. Bug: chromium:935133, chromium:937652 Change-Id: I13f74ca27eae6b2b089d58217842b699b2574509 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1510272 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#60112}
-
- 26 Feb, 2019 1 commit
-
-
Matt Gardner authored
MSVC 14.x and 15.x handle -0 correctly unless /fp:fast is used. /fp:precise is the default. bug: v8:3477, v8:8912 Change-Id: I242a1dfd845f750cab7c56f13107612259d44d23 Reviewed-on: https://chromium-review.googlesource.com/c/1487414Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#59849}
-
- 08 Feb, 2019 1 commit
-
-
Gus Caplan authored
This is a reland of d7def900 Original change's description: > Reland "[builtins] [turbofan] Refactor Float64Pow to use single implementation" > > This is a reland of I968a08cef6a6d49350aa79185b2c6fb856d15f23 > > Original change's description: > > [builtins] [turbofan] Refactor Float64Pow to use single implementation > > > > Remove platform-specific Float64Pow implementations and utils Pow in > > favor of a base::ieee754::pow implementation. > > > > This unifies the implementation of pow for the compiler, wasm, and > > runtime. > > > > Bug: v8:5848, v8:5086 > > Change-Id: I968a08cef6a6d49350aa79185b2c6fb856d15f23 > > Reviewed-on: https://chromium-review.googlesource.com/c/1403018 > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > > Reviewed-by: Georg Neis <neis@chromium.org> > > Reviewed-by: Yang Guo <yangguo@chromium.org> > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#59229} > > Bug: v8:5848, v8:5086 > Change-Id: I92f22ae03adafd9ad042e8d4bb406cbd5b5fb51e > Cq-Include-Trybots: luci.chromium.try:linux_chromium_ubsan_rel_ng > Reviewed-on: https://chromium-review.googlesource.com/c/1447854 > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59411} Tbr: neis@chromium.org, bmeurer@chromium.org, jkummerow@chromium.org Bug: v8:5848, v8:5086 Change-Id: I42972b29b8830ed47a00b2b1d408d3005a810c0e Cq-Include-Trybots: luci.chromium.try:linux_chromium_ubsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/1456302Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59454}
-
- 06 Feb, 2019 2 commits
-
-
Sigurd Schneider authored
This reverts commit d7def900. Reason for revert: Breaks UBSan: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20UBSan/4542 Besides undefined behavior, things were looking good! Original change's description: > Reland "[builtins] [turbofan] Refactor Float64Pow to use single implementation" > > This is a reland of I968a08cef6a6d49350aa79185b2c6fb856d15f23 > > Original change's description: > > [builtins] [turbofan] Refactor Float64Pow to use single implementation > > > > Remove platform-specific Float64Pow implementations and utils Pow in > > favor of a base::ieee754::pow implementation. > > > > This unifies the implementation of pow for the compiler, wasm, and > > runtime. > > > > Bug: v8:5848, v8:5086 > > Change-Id: I968a08cef6a6d49350aa79185b2c6fb856d15f23 > > Reviewed-on: https://chromium-review.googlesource.com/c/1403018 > > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > > Reviewed-by: Georg Neis <neis@chromium.org> > > Reviewed-by: Yang Guo <yangguo@chromium.org> > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#59229} > > Bug: v8:5848, v8:5086 > Change-Id: I92f22ae03adafd9ad042e8d4bb406cbd5b5fb51e > Cq-Include-Trybots: luci.chromium.try:linux_chromium_ubsan_rel_ng > Reviewed-on: https://chromium-review.googlesource.com/c/1447854 > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59411} TBR=jkummerow@chromium.org,jarin@chromium.org,neis@chromium.org,jgruber@chromium.org,clemensh@chromium.org,bmeurer@chromium.org,me@gus.host Change-Id: I65c4bbd3ab7aaa1c396d182467c5a1fe6a639df5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:5848, v8:5086 Cq-Include-Trybots: luci.chromium.try:linux_chromium_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/1456107Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#59419}
-
Gus Caplan authored
This is a reland of I968a08cef6a6d49350aa79185b2c6fb856d15f23 Original change's description: > [builtins] [turbofan] Refactor Float64Pow to use single implementation > > Remove platform-specific Float64Pow implementations and utils Pow in > favor of a base::ieee754::pow implementation. > > This unifies the implementation of pow for the compiler, wasm, and > runtime. > > Bug: v8:5848, v8:5086 > Change-Id: I968a08cef6a6d49350aa79185b2c6fb856d15f23 > Reviewed-on: https://chromium-review.googlesource.com/c/1403018 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59229} Bug: v8:5848, v8:5086 Change-Id: I92f22ae03adafd9ad042e8d4bb406cbd5b5fb51e Cq-Include-Trybots: luci.chromium.try:linux_chromium_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/1447854 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59411}
-
- 31 Jan, 2019 2 commits
-
-
Georg Neis authored
This reverts commit 595aafeb. Reason for revert: https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8922824501209195616/+/steps/Mozilla/0/logs/15.8.2.13/0 Original change's description: > [builtins] [turbofan] Refactor Float64Pow to use single implementation > > Remove platform-specific Float64Pow implementations and utils Pow in > favor of a base::ieee754::pow implementation. > > This unifies the implementation of pow for the compiler, wasm, and > runtime. > > Bug: v8:5848, v8:5086 > Change-Id: I968a08cef6a6d49350aa79185b2c6fb856d15f23 > Reviewed-on: https://chromium-review.googlesource.com/c/1403018 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59229} TBR=yangguo@chromium.org,jarin@chromium.org,neis@chromium.org,clemensh@chromium.org,me@gus.host Change-Id: I266df4b8350cfcebcea8f6063ad75ad962381105 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:5848, v8:5086 Reviewed-on: https://chromium-review.googlesource.com/c/1447715Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59232}
-
Clemens Hammacher authored
Remove platform-specific Float64Pow implementations and utils Pow in favor of a base::ieee754::pow implementation. This unifies the implementation of pow for the compiler, wasm, and runtime. Bug: v8:5848, v8:5086 Change-Id: I968a08cef6a6d49350aa79185b2c6fb856d15f23 Reviewed-on: https://chromium-review.googlesource.com/c/1403018 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#59229}
-
- 28 Jan, 2019 1 commit
-
-
Jakob Kummerow authored
Numeric conversions are defined behavior iff the value is in the range of what the target type can represent. Bug: v8:3770 Change-Id: Ic6f2276c64cb39345a45d8e37e604c28ecca34c2 Reviewed-on: https://chromium-review.googlesource.com/c/1436216 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#59144}
-
- 11 Jan, 2019 1 commit
-
-
Jakob Kummerow authored
Found by mjsunit/numops-fuzz-part* tests in stress mode. Bug: v8:3770 Change-Id: I598885b37624660dabb90f55529615b872d10d93 Reviewed-on: https://chromium-review.googlesource.com/c/1405313Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#58729}
-
- 10 Jan, 2019 1 commit
-
-
Jakob Kummerow authored
Mostly signed integer overflows, and a few cases of double division by zero (which is defined by IEEE-754 to return Infinity (or NaN for 0/0) but is UB in C++). Bug: v8:3770 Change-Id: I8007987594ff534ca697c1c3247215a72a001343 Reviewed-on: https://chromium-review.googlesource.com/c/1403132 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58693}
-
- 13 Dec, 2018 1 commit
-
-
Tobias Tebbi authored
This enables Turbofan's machine graph constant folding and branch reduction on CSA/Torque code. Bug: v8:7793 Change-Id: I5ada63d0c6d920e5f900b8e9255d884c799a9c1e Reviewed-on: https://chromium-review.googlesource.com/c/1373785 Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#58219}
-
- 17 Sep, 2018 3 commits
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: I7d885f0e2ba3cdf97de190166dc4cdd24dc0c11e Reviewed-on: https://chromium-review.googlesource.com/1224091 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#55956}
-
Benedikt Meurer authored
This change introduces the necessary conversion operators to convert from Word64 to other representations (Tagged, Word32, Float64, etc.), and plugs in the Word64 representation for NumberAdd/NumberSubtract, such that TurboFan will go to Int64Add/Sub on 64-bit architectures when the inputs and the output of the operation is in safe integer range. This includes the necessary changes to the Deoptimizer to be able to rematerialize Int64 values as Smi/HeapNumber when going back to Ignition later. This change might affect performance, although measurements indicate that there should be no noticable performance impact. The goal is to have TurboFan support Word64 representation to a degree that changing the TypedArray length to an uint64_t (for 64-bit archs) becomes viable and doesn't have any negative performance implications. Independent of that we might get performance improvements in other areas such as for crypto code later. Bug: v8:4153, v8:7881, v8:8171, v8:8178 Design-Document: bit.ly/turbofan-word64 Change-Id: I29d56e2a31c1bae61d04a89d29ea73f21fd49c59 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel Reviewed-on: https://chromium-review.googlesource.com/1225709 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#55937}
-
Benedikt Meurer authored
While investigating crbug.com/878742 I found that somehow the MachineOperatorReducer lacks the ability to constant-fold comparisons of Float64 constants, which obviously leads to pretty weird code. Bug: v8:8015 Change-Id: I7e18ce10e9d5c87f131fb083ccd3e1e336189dae Reviewed-on: https://chromium-review.googlesource.com/1226132Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55935}
-
- 14 Sep, 2018 1 commit
-
-
Benedikt Meurer authored
This adds support to TurboFan's representation selection for the Word64 representation, and makes use of that to handle indices for memory access and allocation instructions (i.e. LoadElement, StoreElement, Allocate, etc.). These instructions had previously used Word32 as representation for the indices / sizes, and then internally converted it to the correct representation (aka Word64 on 64-bit architectures) later on, but that was kind of brittle, and sometimes led to weird generated code. The change thus only adds support to convert integer values in the safe integer range from all kinds of representations to Word64 (on 64-bit architectures). We don't yet handle the opposite direction and none of the representation selection heuristics for the numeric operations were changed so far. This will be done in follow-up CLs. This CL itself is supposed to be neutral wrt. functionality, and only serves as a starting point, and a cleanup for the (weird) implicit Word64 index/size handling. Bug: v8:7881, v8:8015, v8:8171 Design-Document: http://bit.ly/turbofan-word64 Change-Id: I3c6961a0e96cbc3fb8ac9d3e1be8f2e5c89bfd25 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel Reviewed-on: https://chromium-review.googlesource.com/1224932 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#55886}
-
- 07 May, 2018 1 commit
-
-
Ben L. Titzer authored
R=mstarzinger@chromium.org Bug: v8:7721 Change-Id: I8fd2c532c36bfd5faec2947d3154a2984c13ed46 Reviewed-on: https://chromium-review.googlesource.com/1047668Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53042}
-
- 17 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
Casting from a floating-point type to an integer type is undefined behavior if the integral part of the float cannot be represented in the range of the int. Bug: v8:3770, chromium:831145 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: I2e85ea8b0f09bbeeb3e0dcc1135fc747fa312f6d Reviewed-on: https://chromium-review.googlesource.com/1011651 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#52631}
-
- 02 Mar, 2018 1 commit
-
-
Tobias Tebbi authored
Folding _ + NaN => NaN can widen type None to a constant type, which leads to floating DeadValue nodes. This CL fixes this by removing the optimization. Alternatively, we should consider removing all nodes of type None in simplified lowering. Bug: chromium:817225 Change-Id: I2a126b360d70d3626f8a3c5e73ac72dc980ac8b3 Reviewed-on: https://chromium-review.googlesource.com/946129Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#51699}
-
- 12 Dec, 2017 1 commit
-
-
Ben L. Titzer authored
This operation was used to implement asm.js stores, but is obsolete with asm.js stores now being lowered to normal graph nodes. R=mstarzinger@chromium.org CC=jarin@chromium.org Bug: Change-Id: Iea90b1a62be2e273c0562058642adc5b63ae2cf8 Reviewed-on: https://chromium-review.googlesource.com/822570 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50046}
-
- 02 Dec, 2017 1 commit
-
-
Mathias Bynens authored
This patch normalizes the casing of hexadecimal digits in escape sequences of the form `\xNN` and integer literals of the form `0xNNNN`. Previously, the V8 code base used an inconsistent mixture of uppercase and lowercase. Google’s C++ style guide uses uppercase in its examples: https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters Moreover, uppercase letters more clearly stand out from the lowercase `x` (or `u`) characters at the start, as well as lowercase letters elsewhere in strings. BUG=v8:7109 TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6 Reviewed-on: https://chromium-review.googlesource.com/804294 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49810}
-
- 01 Dec, 2017 1 commit
-
-
Clemens Hammacher authored
V8_INT64_C will be cleaned up in a follow-up CL. R=tebbi@chromium.org,mlippautz@chromium.org Bug: v8:7109 Change-Id: I6af97e7266039eb443896b404b77b8e2b5de5adb Reviewed-on: https://chromium-review.googlesource.com/803294Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49790}
-
- 06 Nov, 2017 1 commit
-
-
Clemens Hammacher authored
This is a reland of 7d231e57, fixed to avoid instantiating CountLeadingZeros for bits==0. Original change's description: > [bits] Consolidate Count{Leading,Trailing}Zeros > > Instead of having one method for 32 bit integers and one for 64 bit, > plus a templatized version to choose from those two, just implement one > version which handles unsigned integers of any size. Also, make them > constexpr. > The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in > order to keep the amount of code changes small. Also, sometimes it > improves readability by stating exactly the size of the argument, > especially for leading zeros (where zero-extending would add more > leading zeros). > > CountLeadingZeros now uses a binary search inspired implementation > as proposed in Hacker's Delight. It's more than 20% faster on x64 if > the builtins are disabled. > CountTrailingZeros falls back to CountPopulation instead of counting in > a naive loop. This is ~50% faster. > > R=mstarzinger@chromium.org > > Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e > Reviewed-on: https://chromium-review.googlesource.com/741231 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49106} Change-Id: Icdff2510ec66d1c96a1912cef29d77d8550994ee Reviewed-on: https://chromium-review.googlesource.com/753903Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49138}
-
- 04 Nov, 2017 1 commit
-
-
Michael Achenbach authored
This reverts commit 7d231e57. Reason for revert: Breaks revert for win-clang: https://build.chromium.org/p/tryserver.chromium.win/builders/win_clang/builds/342755 Original change's description: > [bits] Consolidate Count{Leading,Trailing}Zeros > > Instead of having one method for 32 bit integers and one for 64 bit, > plus a templatized version to choose from those two, just implement one > version which handles unsigned integers of any size. Also, make them > constexpr. > The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in > order to keep the amount of code changes small. Also, sometimes it > improves readability by stating exactly the size of the argument, > especially for leading zeros (where zero-extending would add more > leading zeros). > > CountLeadingZeros now uses a binary search inspired implementation > as proposed in Hacker's Delight. It's more than 20% faster on x64 if > the builtins are disabled. > CountTrailingZeros falls back to CountPopulation instead of counting in > a naive loop. This is ~50% faster. > > R=mstarzinger@chromium.org > > Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e > Reviewed-on: https://chromium-review.googlesource.com/741231 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49106} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: Iceeb35bf9c7539a1013c9bdbc47118008611bef2 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/753463Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49123}
-
- 03 Nov, 2017 1 commit
-
-
Clemens Hammacher authored
Instead of having one method for 32 bit integers and one for 64 bit, plus a templatized version to choose from those two, just implement one version which handles unsigned integers of any size. Also, make them constexpr. The Count{Leading,Trailing}Zeros{32,64} methods are kept for now in order to keep the amount of code changes small. Also, sometimes it improves readability by stating exactly the size of the argument, especially for leading zeros (where zero-extending would add more leading zeros). CountLeadingZeros now uses a binary search inspired implementation as proposed in Hacker's Delight. It's more than 20% faster on x64 if the builtins are disabled. CountTrailingZeros falls back to CountPopulation instead of counting in a naive loop. This is ~50% faster. R=mstarzinger@chromium.org Change-Id: I1d8bf1d7295b930724163248150444bd17fbb34e Reviewed-on: https://chromium-review.googlesource.com/741231Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49106}
-
- 20 Oct, 2017 1 commit
-
-
Toon Verwaest authored
Bug: Change-Id: I67cfd5634e86472425c161b461684bd975e58a41 Reviewed-on: https://chromium-review.googlesource.com/730204 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48783}
-
- 19 Oct, 2017 1 commit
-
-
Toon Verwaest authored
This also changes modulo to be more like others, e.g., Pow: - have an inline Modulo - have a modulo_double_double that we can use as FUNCTION_ADDR in assembler.cc Bug: Change-Id: Id360e4adcde5712ffc5ac22abd3bbaab6aec09f5 Reviewed-on: https://chromium-review.googlesource.com/728027 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48747}
-
- 13 Sep, 2017 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I3df5d50f81909188ee0cb31d0f479aadeeabe20f Reviewed-on: https://chromium-review.googlesource.com/662780Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47991}
-