- 25 Mar, 2020 1 commit
-
-
Seth Brenith authored
This reverts commit 0c72c719. Reason for revert: Wasm code size increase because not all pipelines use CommonOperatorReducer Original change's description: > Move branch inversion on ==0 into platform-agnostic reducer > > This change is based on a discussion from > https://crrev.com/c/v8/v8/+/2053769/4/src/compiler/machine-operator-reducer.cc#1696 > wherein Tobias suggested moving the folding away of ==0 operations out > of the platform-specific instruction selectors and into the > MachineOperatorReducer. I noticed that CommonOperatorReducer already > handles some very similar cases, so I have tried putting the ==0 folding > into CommonOperatorReducer instead. I'm happy to move it into > MachineOperatorReducer if that's better; I still don't have a very good > understanding of how roles are separated among reducers. > > Change-Id: Ia0285bd9fafeef29d87cc88654bd6d355d467e8f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2076498 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Tobias Tebbi <tebbi@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66688} # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:1061767 Change-Id: Id1fdfb38357eb514d92ed3be0a683f077202faa4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2117789 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#66862}
-
- 12 Mar, 2020 1 commit
-
-
Seth Brenith authored
This change is based on a discussion from https://crrev.com/c/v8/v8/+/2053769/4/src/compiler/machine-operator-reducer.cc#1696 wherein Tobias suggested moving the folding away of ==0 operations out of the platform-specific instruction selectors and into the MachineOperatorReducer. I noticed that CommonOperatorReducer already handles some very similar cases, so I have tried putting the ==0 folding into CommonOperatorReducer instead. I'm happy to move it into MachineOperatorReducer if that's better; I still don't have a very good understanding of how roles are separated among reducers. Change-Id: Ia0285bd9fafeef29d87cc88654bd6d355d467e8f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2076498 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#66688}
-
- 12 Aug, 2019 1 commit
-
-
Jakob Gruber authored
This removes LoadStackPointer and its last remaining use in the interpreter assembler. Bug: v8:9534 Change-Id: I19aafb12c5fd50248841a3d92448e64243c723ad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1748729 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63164}
-
- 28 May, 2019 1 commit
-
-
Clemens Hammacher authored
Especially for function types, this increases readability significantly. Also the style guide recommends for 'using' over 'typedef'. R=mstarzinger@chromium.org Bug: v8:9183 Change-Id: If2d17863de39383f5a35e089298d37408791ce4b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631415 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61872}
-
- 27 May, 2019 1 commit
-
-
Clemens Hammacher authored
This replaces all typedefs that define types and not functions by the equivalent "using" declaration. This was done mostly automatically using this command: ag -l '\btypedef\b' src test | xargs -L1 \ perl -i -p0e 's/typedef ([^*;{}]+) (\w+);/using \2 = \1;/sg' Patchset 2 then adds some manual changes for typedefs for pointer types, where the regular expression did not match. R=mstarzinger@chromium.org TBR=yangguo@chromium.org, jarin@chromium.org Bug: v8:9183 Change-Id: I6f6ee28d1793b7ac34a58f980b94babc21874b78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631409 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61849}
-
- 23 May, 2019 1 commit
-
-
Yang Guo authored
TBR=bmeurer@chromium.org,leszeks@chromium.org Bug: v8:9247 Change-Id: I8d14d0192ea8c705f8274e8e61a162531826edb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624220Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61769}
-
- 08 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
It's not being used, and causes compile errors on windows because of a name clash (see referenced bugs). R=mstarzinger@chromium.org CC=tebbi@chromium.org, jarin@chromium.org Bug: v8:8953 Change-Id: I22dcdbcbe92f92c390a2f2cdd289dda7f7dc4eb1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505794Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60117}
-
- 18 Feb, 2019 1 commit
-
-
Victor Costan authored
Googletest is (at last) converging with industry-standard terminology [1]. We previously called test suites "test cases", which was rather confusing for folks coming from any other testing framework. Chrome now has a googletest version that supports _TEST_SUITE_ macros instead of _TEST_CASE_, so this CL cleans up some of the outdated usage. [1] https://github.com/google/googletest/blob/master/googletest/docs/primer.md#beware-of-the-nomenclature Bug: chromium:925652 Change-Id: I3cd02b9fa6dbece1594bbfd50a21ad7503c2aab9 Reviewed-on: https://chromium-review.googlesource.com/c/1475654Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Victor Costan <pwnall@chromium.org> Cr-Commit-Position: refs/heads/master@{#59666}
-
- 12 Nov, 2018 1 commit
-
-
Ben L. Titzer authored
This CL splits the backend of TurboFan off into its own directory, without changing namespaces. This makes ownership management a bit more fine-grained with a logical separation. R=mstarzinger@chromium.org,jarin@chromium.org,adamk@chromium.org Change-Id: I2ac40d6ca2c4f04b8474b630aae0286ecf79ef42 Reviewed-on: https://chromium-review.googlesource.com/c/1308333 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57437}
-
- 13 Aug, 2018 1 commit
-
-
Camillo Bruni authored
This should make the uses of binary vs. bitwise not very clear: - Word32BinaryNot for logical negation - Word32BitwiseNot for bitwise negation Change-Id: I3345913111da0dbdae6fdf285f090b67eb3f3afc Reviewed-on: https://chromium-review.googlesource.com/1169205 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#55091}
-
- 20 Jun, 2018 1 commit
-
-
Georgia Kouveli authored
When encountering a LoadStackPointer input to a comparison, generate a register LocationOperand that points to the stack pointer. This can avoid unnecessary spilling of the stack pointer. Since sp is a special register for arm64, we need to add a mechanism to print its name in RegisterConfiguration. This is a port of https://chromium-review.googlesource.com/1055568 that made the same change for arm. It also ports the tests added in https://chromium-review.googlesource.com/1099068 to arm and arm64. Bug: v8:7844 Change-Id: I5adc672ff877b9888ef755e8e60e4eabbc61061b Reviewed-on: https://chromium-review.googlesource.com/1107810Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Cr-Commit-Position: refs/heads/master@{#53889}
-
- 29 Jan, 2018 1 commit
-
-
Michael Starzinger authored
R=tebbi@chromium.org Change-Id: Iae9a3774eb7913388350ce3cd0a96d6a6cca25e8 Reviewed-on: https://chromium-review.googlesource.com/885845Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#50926}
-
- 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}
-
- 31 Aug, 2017 1 commit
-
-
Jaroslav Sevcik authored
We emitted rotation by 24 bits with bitwise and, but that is wrong because the low 8 bits can wrap around and "leak" into the result. Bug: chromium:739902 Change-Id: Id49251e89405afb1581b8c60cde808c2d8bf693d Reviewed-on: https://chromium-review.googlesource.com/645848Reviewed-by:
Martyn Capewell <martyn.capewell@arm.com> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47746}
-
- 28 Feb, 2017 1 commit
-
-
Marja Hölttä authored
The x64 side is included in https://chromium-review.googlesource.com/c/444226/ BUG=v8:5294 Change-Id: Ie255604c5e38c72e3c2b76e1ca3557a5fde108ee Reviewed-on: https://chromium-review.googlesource.com/446394Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#43481}
-
- 05 Sep, 2016 1 commit
-
-
georgia.kouveli authored
Generate a flag-setting instruction for a binary operation when the result is tested for equality/inequality to zero. BUG= Review-Url: https://codereview.chromium.org/2315453002 Cr-Commit-Position: refs/heads/master@{#39183}
-
- 08 Aug, 2016 1 commit
-
-
ahaas authored
This CL changes the semantics of FloatXXSub to match the semantics of the semantics of FloatXXSubPreserveNan. Therefore there is no need anymore for the FloatXXSubPreserveNan operators. The optimizations in VisitFloatXXSub which are removed in this CL have already been moved to machine-operator-reducer.cc in https://codereview.chromium.org/2226663002 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2220973002 Cr-Commit-Position: refs/heads/master@{#38437}
-
- 05 Aug, 2016 1 commit
-
-
ahaas authored
R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2215403002 Cr-Commit-Position: refs/heads/master@{#38399}
-
- 22 Jul, 2016 1 commit
-
-
bmeurer authored
So far we don't have a useful way to inline Math.max or Math.min in TurboFan optimized code. This adds new operators NumberMax and NumberMin and changes the Float64Max/Float64Min operators to have JavaScript semantics instead of the C++ semantics that it had previously. This also removes support for recognizing the tenary case in the CommonOperatorReducer, since that doesn't seem to have any positive impact (and actually doesn't show up in regular JavaScript, where people use Math.max/Math.min instead). Drive-by-fix: Also nuke the unused Float32Max/Float32Min operators. R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2170343002 Cr-Commit-Position: refs/heads/master@{#37971}
-
- 18 Jul, 2016 1 commit
-
-
georgia.kouveli authored
Based on 317dc057. BUG= Review-Url: https://codereview.chromium.org/2152253002 Cr-Commit-Position: refs/heads/master@{#37828}
-
- 27 May, 2016 1 commit
-
-
georgia.kouveli authored
Adding optional operators for FNeg for WebAssembly, as the current implementation was significantly suboptimal for ARM. Review-Url: https://codereview.chromium.org/2011303002 Cr-Commit-Position: refs/heads/master@{#36544}
-
- 19 May, 2016 2 commits
-
-
pierre.langlois authored
This patch is a follow up to https://codereview.chromium.org/1972103002/ adding support for the `Operand_R_LSL_I` addressing mode to loads and stores for ARM. Just as the ARM64 implementation, the shift + load/store pattern is only really relevant to the interpreter. For this reason, this patch does not add support for the other addressing modes (`R_LSR_I`, `R_ASR_I` and `R_ROR_I`) as I haven't seen those pattern being generated. Additionally, the optimization is restricted 32 bit loads and stores. kind = BYTECODE_HANDLER name = Star compiler = turbofan Instructions (size = 40) 0x22a5f860 0 e2851001 add r1, r5, #1 0x22a5f864 4 e19610d1 ldrsb r1, [r6, +r1] 0x22a5f868 8 e1a0200b mov r2, fp 0x22a5f86c 12 e7820101 str r0, [r2, +r1, lsl #2] ^^^^^^^^^^^^^^^^^^^^^^^^^ 0x22a5f870 16 e2855002 add r5, r5, #2 0x22a5f874 20 e7d61005 ldrb r1, [r6, +r5] 0x22a5f878 24 e7981101 ldr r1, [r8, +r1, lsl #2] ^^^^^^^^^^^^^^^^^^^^^^^^^ 0x22a5f87c 28 e12fff11 bx r1 BUG= Review-Url: https://codereview.chromium.org/1974263002 Cr-Commit-Position: refs/heads/master@{#36381}
-
jacob.bramley authored
The MLS instruction is available in all ARMv7 devices, and in no ARMv6 devices, aside from the usual ARMv6T2 caveat. We don't need a separate feature flag for it. BUG= Review-Url: https://codereview.chromium.org/1988133004 Cr-Commit-Position: refs/heads/master@{#36378}
-
- 06 Apr, 2016 1 commit
-
-
jacob.bramley authored
BUG= Review URL: https://codereview.chromium.org/1862993002 Cr-Commit-Position: refs/heads/master@{#35292}
-
- 16 Feb, 2016 1 commit
-
-
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}
-
- 15 Feb, 2016 1 commit
-
-
martyn.capewell authored
Improve instruction selector for mask and shift operations by using cheaper instructions where possible, in preference to UBFX. Reverted because it was suspected of causing a couple of flaky tests to fail, but investigation suggests this is unlikely. Original review: https://codereview.chromium.org/1677023002 BUG= Review URL: https://codereview.chromium.org/1684073006 Cr-Commit-Position: refs/heads/master@{#33988}
-
- 12 Feb, 2016 1 commit
-
-
epertoso authored
This was causing code like: REX.W cmpq r9,r8 setzl r8l movzxbl r8,r8 REX.W cmpq r8,0x0 jz 185 (note the cmpq instead of cmpl above) on x64 instead of: REX.W cmpq r9,r8 jnz 149 http://crrev.com/1677503002 is now obsolete and has been reverted. Review URL: https://codereview.chromium.org/1685183003 Cr-Commit-Position: refs/heads/master@{#33934}
-
- 09 Feb, 2016 2 commits
-
-
martyn.capewell authored
Revert of [turbofan] ARM: Improve AND instruction selection (patchset #1 id:1 of https://codereview.chromium.org/1677023002/ ) Reason for revert: Possibly causing Mozilla test failures - will investigate. Original issue's description: > [turbofan] ARM: Improve AND instruction selection > > Improve instruction selector for mask and shift operations by using cheaper > instructions where possible, in preference to UBFX. > > BUG= > > Committed: https://crrev.com/53d9c12977f07f55b6f2a72128b8d02c4c857845 > Cr-Commit-Position: refs/heads/master@{#33843} TBR=bmeurer@chromium.org,jarin@chromium.org,danno@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/1681953003 Cr-Commit-Position: refs/heads/master@{#33850}
-
martyn.capewell authored
Improve instruction selector for mask and shift operations by using cheaper instructions where possible, in preference to UBFX. BUG= Review URL: https://codereview.chromium.org/1677023002 Cr-Commit-Position: refs/heads/master@{#33843}
-
- 11 Dec, 2015 1 commit
-
-
jarin authored
Review URL: https://codereview.chromium.org/1513383003 Cr-Commit-Position: refs/heads/master@{#32803}
-
- 10 Dec, 2015 1 commit
-
-
jarin authored
MachineType is now a class with two enum fields: - MachineRepresentation - MachineSemantic Both enums are usable on their own, and this change switches some places from using MachineType to use just MachineRepresentation. Most notably: - register allocator now uses just the representation. - Phi and Select nodes only refer to representations. Review URL: https://codereview.chromium.org/1513543003 Cr-Commit-Position: refs/heads/master@{#32738}
-
- 30 Nov, 2015 1 commit
-
-
vogelheim authored
R=bmeurer@chromium.org, mstarzinger@chromium.org BUG=chromium:508898 LOG=Y Review URL: https://codereview.chromium.org/1477413002 Cr-Commit-Position: refs/heads/master@{#32400}
-
- 29 Oct, 2015 1 commit
-
-
mstarzinger authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1424983003 Cr-Commit-Position: refs/heads/master@{#31646}
-
- 26 Oct, 2015 1 commit
-
-
rmcilroy authored
Adds support for loading from and storing to outer context variables. Also adds support for declaring functions on contexts and locals. Finally, fixes a couple of issues with StaContextSlot where we weren't emitting the write barrier and therefore would crash in the GC. Also added code so that --print-bytecode will output the function name before the bytecodes, and replaces MachineType with StoreRepresentation in RawMachineAssembler::Store and updates tests. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1425633002 Cr-Commit-Position: refs/heads/master@{#31584}
-
- 24 Sep, 2015 1 commit
-
-
pierre.langlois authored
This patch checks the type of the lhs operand of a floating point comparison for ARM, and commutes the operands if it is #0.0. It allows us to optimize a comparison with zero, as the vcmp instruction accepts #0.0 as rhs operand. Code before for "0.0 < 0.123": ------------------------------ movw ip, #29360 movt ip, #37224 movw r9, #31981 movt r9, #16319 vmov d0, ip, r9 mov ip, #0 vmov d1, ip, ip vcmp.f64 d1, d0 vmrs APSR, FPSCR bcc +12 Code after: ----------- movw ip, #29360 movt ip, #37224 movw r9, #31981 movt r9, #16319 vmov d0, ip, r9 vcmp.f64 d0, #0.0 vmrs APSR, FPSCR bgt +12 BUG= Review URL: https://codereview.chromium.org/1361913003 Cr-Commit-Position: refs/heads/master@{#30911}
-
- 08 Apr, 2015 1 commit
-
-
Benedikt Meurer authored
These operators compute the absolute floating point value of some arbitrary input, and are implemented without any branches (i.e. using vabs on arm, and andps/andpd on x86). R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/1066393002 Cr-Commit-Position: refs/heads/master@{#27662}
-
- 30 Mar, 2015 1 commit
-
-
bmeurer authored
This adds the basics necessary to support float32 operations in TurboFan. The actual functionality required to detect safe float32 operations will be added based on this later. Therefore this does not affect production code except for some cleanup/refactoring. In detail, this patchset contains the following features: - Add support for float32 operations to arm, arm64, ia32 and x64 backends. - Add float32 machine operators. - Add support for float32 constants to simplified lowering. - Handle float32 representation for phis in simplified lowering. In addition, contains the following (related) cleanups: - Fix/unify naming of backend instructions. - Use AVX comparisons when available. - Extend ArchOpcodeField to 9 bits (required for arm64). - Refactor some code duplication in instruction selectors. BUG=v8:3589 LOG=n R=dcarney@chromium.org Review URL: https://codereview.chromium.org/1044793002 Cr-Commit-Position: refs/heads/master@{#27509}
-
- 20 Mar, 2015 1 commit
-
-
Benedikt Meurer authored
R=dcarney@chromium.org, yangguo@chromium.org BUG=v8:3952 LOG=n Review URL: https://codereview.chromium.org/1021183002 Cr-Commit-Position: refs/heads/master@{#27329}
-
- 15 Jan, 2015 1 commit
-
-
baptiste.afsa authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/850073002 Cr-Commit-Position: refs/heads/master@{#26066}
-
- 26 Nov, 2014 1 commit
-
-
Benedikt Meurer authored
TEST=mjsunit,unittests R=svenpanne@chromium.org Committed: https://chromium.googlesource.com/v8/v8/+/2aed882fe74dbf9210159babe30fedccd900e7cf Review URL: https://codereview.chromium.org/762493006 Cr-Commit-Position: refs/heads/master@{#25515}
-