Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Issue 1928513002: Implement UnalignedLoad and UnalignedStore in WASM using LoadByte/Shift/Or and StoreByte/Shift/And. (Closed)

Created:
4 years, 7 months ago by ivica.bogosavljevic
Modified:
4 years, 7 months ago
CC:
v8-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Implement UnalignedLoad and UnalignedStore in WASM using combination of LoadByte/Shift/Or and StoreByte/Shift/And. BUG= Committed: https://crrev.com/ff2bd0fdcb8e4d61bd112b1965c781cf1ef210a8 Cr-Commit-Position: refs/heads/master@{#36422}

Patch Set 1 : Original implementation #

Patch Set 2 : More efficient implementation that takes into account alignment parameter #

Patch Set 3 : Add support for UnalignedAccess configuration in machine-operator.cc #

Patch Set 4 : Add big endian support #

Patch Set 5 : Optimize load and store by increasing existing address instead of loading new address for each acce… #

Patch Set 6 : Rebase to master #

Total comments: 2

Patch Set 7 : Renamed UnalignedAccessConfig to AlignmentRequirements #

Total comments: 12

Patch Set 8 : Address review comments #

Total comments: 1

Patch Set 9 : Address code review remarks. Add missing InstructionSelector::AlignmentRequirements for all archite… #

Total comments: 2

Patch Set 10 : Rebase to master #

Patch Set 11 : Fix compilation failure on some compilers (due to warnings) #

Patch Set 12 : Fix nits. Fix compilation error on Windows compiler #

Unified diffs Side-by-side diffs Delta from patch set Stats (+521 lines, -29 lines) Patch
M src/compiler/arm/instruction-selector-arm.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/compiler/arm64/instruction-selector-arm64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/compiler/ia32/instruction-selector-ia32.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/compiler/instruction-selector.h View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/machine-operator.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +78 lines, -1 line 0 comments Download
M src/compiler/machine-operator.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +7 lines, -5 lines 0 comments Download
M src/compiler/mips/instruction-selector-mips.cc View 1 2 3 4 5 6 7 8 9 1 chunk +14 lines, -0 lines 0 comments Download
M src/compiler/mips64/instruction-selector-mips64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +13 lines, -0 lines 0 comments Download
M src/compiler/ppc/instruction-selector-ppc.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/compiler/s390/instruction-selector-s390.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/compiler/wasm-compiler.h View 1 2 3 4 5 6 7 8 9 2 chunks +17 lines, -2 lines 0 comments Download
M src/compiler/wasm-compiler.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +245 lines, -8 lines 0 comments Download
M src/compiler/x64/instruction-selector-x64.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/compiler/x87/instruction-selector-x87.cc View 1 2 3 4 5 6 7 8 9 1 chunk +7 lines, -0 lines 0 comments Download
M src/wasm/ast-decoder.cc View 1 2 3 4 5 6 7 8 9 2 chunks +4 lines, -3 lines 0 comments Download
M src/wasm/wasm-macro-gen.h View 1 2 3 4 5 6 7 8 9 1 chunk +9 lines, -0 lines 0 comments Download
M test/cctest/wasm/test-run-wasm.cc View 1 2 3 4 5 6 7 8 9 4 chunks +42 lines, -8 lines 0 comments Download
M test/cctest/wasm/test-run-wasm-64.cc View 1 2 3 4 5 6 7 8 9 2 chunks +41 lines, -2 lines 0 comments Download

Messages

Total messages: 45 (19 generated)
ivica.bogosavljevic
PTAL. This is an architecture independent part of supporting unaligned loads and stores in WASM. ...
4 years, 7 months ago (2016-05-04 11:15:18 UTC) #4
ivica.bogosavljevic
4 years, 7 months ago (2016-05-05 14:29:35 UTC) #5
titzer
https://codereview.chromium.org/1928513002/diff/100001/src/compiler/machine-operator.h File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1928513002/diff/100001/src/compiler/machine-operator.h#newcode126 src/compiler/machine-operator.h:126: struct UnalignedAccessConfig { Can we call this simply AlignmentRequirements?
4 years, 7 months ago (2016-05-06 16:06:47 UTC) #6
ivica.bogosavljevic
PTAL https://codereview.chromium.org/1928513002/diff/100001/src/compiler/machine-operator.h File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1928513002/diff/100001/src/compiler/machine-operator.h#newcode126 src/compiler/machine-operator.h:126: struct UnalignedAccessConfig { On 2016/05/06 16:06:47, titzer wrote: ...
4 years, 7 months ago (2016-05-10 08:32:22 UTC) #7
titzer
https://codereview.chromium.org/1928513002/diff/120001/src/compiler/wasm-compiler.cc File src/compiler/wasm-compiler.cc (right): https://codereview.chromium.org/1928513002/diff/120001/src/compiler/wasm-compiler.cc#newcode2606 src/compiler/wasm-compiler.cc:2606: auto determineType = [](bool signExtend, uint32_t alignment) -> MachineType ...
4 years, 7 months ago (2016-05-11 15:22:35 UTC) #8
titzer
+ FYI bmeurer
4 years, 7 months ago (2016-05-11 15:24:01 UTC) #10
Benedikt Meurer
+jarin https://codereview.chromium.org/1928513002/diff/120001/src/compiler/machine-operator.h File src/compiler/machine-operator.h (right): https://codereview.chromium.org/1928513002/diff/120001/src/compiler/machine-operator.h#newcode126 src/compiler/machine-operator.h:126: struct AlignmentRequirements { Nit: class https://codereview.chromium.org/1928513002/diff/120001/src/compiler/machine-operator.h#newcode181 src/compiler/machine-operator.h:181: const ...
4 years, 7 months ago (2016-05-12 04:12:14 UTC) #12
Benedikt Meurer
https://codereview.chromium.org/1928513002/diff/120001/src/compiler/instruction-selector.h File src/compiler/instruction-selector.h (right): https://codereview.chromium.org/1928513002/diff/120001/src/compiler/instruction-selector.h#newcode142 src/compiler/instruction-selector.h:142: static MachineOperatorBuilder::AlignmentRequirements AlignmentConfiguration(); Nit: Rename to AlignmentRequirements
4 years, 7 months ago (2016-05-12 04:13:30 UTC) #13
Jarin
I have just a bunch of nits (only looked at the compiler dir). https://codereview.chromium.org/1928513002/diff/120001/src/compiler/machine-operator.cc File ...
4 years, 7 months ago (2016-05-12 04:26:14 UTC) #14
ivica.bogosavljevic
https://codereview.chromium.org/1928513002/diff/120001/test/cctest/wasm/test-run-wasm.cc File test/cctest/wasm/test-run-wasm.cc (right): https://codereview.chromium.org/1928513002/diff/120001/test/cctest/wasm/test-run-wasm.cc#newcode1307 test/cctest/wasm/test-run-wasm.cc:1307: TEST(Run_Wasm_LoadMemI32_alignment) { On 2016/05/11 15:22:35, titzer wrote: > Can ...
4 years, 7 months ago (2016-05-12 12:09:55 UTC) #15
ivica.bogosavljevic
A reminder.
4 years, 7 months ago (2016-05-17 10:39:01 UTC) #16
titzer
Mostly looks good. https://codereview.chromium.org/1928513002/diff/120001/test/cctest/wasm/test-run-wasm.cc File test/cctest/wasm/test-run-wasm.cc (right): https://codereview.chromium.org/1928513002/diff/120001/test/cctest/wasm/test-run-wasm.cc#newcode1307 test/cctest/wasm/test-run-wasm.cc:1307: TEST(Run_Wasm_LoadMemI32_alignment) { On 2016/05/12 12:09:55, ivica.bogosavljevic ...
4 years, 7 months ago (2016-05-17 11:57:39 UTC) #17
ivica.bogosavljevic
Addressed remarks. PTAL @titzer: The next thing we would like to do is to add ...
4 years, 7 months ago (2016-05-17 14:22:08 UTC) #18
ivica.bogosavljevic
Reminder :)
4 years, 7 months ago (2016-05-19 14:23:49 UTC) #19
titzer
Sorry for the delay. LGTM other than small naming nit. https://codereview.chromium.org/1928513002/diff/160001/src/compiler/machine-operator.cc File src/compiler/machine-operator.cc (right): https://codereview.chromium.org/1928513002/diff/160001/src/compiler/machine-operator.cc#newcode535 ...
4 years, 7 months ago (2016-05-19 15:23:14 UTC) #20
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928513002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928513002/180001
4 years, 7 months ago (2016-05-20 13:36:38 UTC) #22
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_mipsel_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_mipsel_compile_rel/builds/14808)
4 years, 7 months ago (2016-05-20 13:47:29 UTC) #24
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928513002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928513002/200001
4 years, 7 months ago (2016-05-20 14:23:31 UTC) #26
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_rel_ng/builds/7524)
4 years, 7 months ago (2016-05-20 14:30:03 UTC) #28
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928513002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928513002/220001
4 years, 7 months ago (2016-05-20 14:34:50 UTC) #30
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-20 15:24:38 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928513002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928513002/220001
4 years, 7 months ago (2016-05-20 15:58:54 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928513002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928513002/220001
4 years, 7 months ago (2016-05-20 16:30:52 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1928513002/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1928513002/220001
4 years, 7 months ago (2016-05-20 17:22:47 UTC) #41
commit-bot: I haz the power
Committed patchset #12 (id:220001)
4 years, 7 months ago (2016-05-20 17:49:58 UTC) #43
commit-bot: I haz the power
4 years, 7 months ago (2016-05-20 17:51:06 UTC) #45
Message was sent while issue was closed.
Patchset 12 (id:??) landed as
https://crrev.com/ff2bd0fdcb8e4d61bd112b1965c781cf1ef210a8
Cr-Commit-Position: refs/heads/master@{#36422}

Powered by Google App Engine
This is Rietveld 408576698