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

Issue 460053003: PNaCl: Handle nested structure types in -expand-struct-regs. (Closed)

Created:
6 years, 4 months ago by Richard Diamond
Modified:
5 years, 12 months ago
Reviewers:
Mark Seaborn, JF
CC:
native-client-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

PNaCl: Handle nested structure types in -expand-struct-regs. This pass now runs in one or more passes, triggered if splitting any instruction inserts another struct instruction. ExpandExtractValues now handles n-arty trees. Also, preserve load/store alignments, if specified. -expand-struct-regs now exhibits O(mn) complexity, where m is the height of the type tree (not a graph; broken by pointer) and n is the instruction count. This pass could actually be split in two: first part handling load/store/phi, the second handling expandvalue/insertvalue. This is for Rust, which generates quite a bit of nesting. BUG= https://code.google.com/p/nativeclient/issues/detail?id=3815 R=jfb@chromium.org, mseaborn@chromium.org TEST= (cd toolchain_build/out/llvm_i686_linux_work && make check) Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-llvm.git;a=commit;h=9eecd8225bfd180b9160d838b3049175780bcf09

Patch Set 1 #

Total comments: 18

Patch Set 2 : Fix nits. #

Patch Set 3 : Forgot a small change. #

Total comments: 20

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : Fix incorrect comment. #

Total comments: 6

Patch Set 7 : #

Patch Set 8 : #

Total comments: 8

Patch Set 9 : #

Patch Set 10 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+373 lines, -109 lines) Patch
M lib/Transforms/NaCl/ExpandStructRegs.cpp View 1 2 3 4 5 6 7 8 9 5 chunks +265 lines, -103 lines 0 comments Download
M test/Transforms/NaCl/expand-struct-regs.ll View 1 2 3 4 5 6 7 8 9 4 chunks +108 lines, -6 lines 0 comments Download

Messages

Total messages: 25 (0 generated)
Richard Diamond
6 years, 4 months ago (2014-08-11 22:28:29 UTC) #1
JF
Adding Mark to the review since he's the original author. He's away for a few ...
6 years, 4 months ago (2014-08-12 00:25:30 UTC) #2
JF
Adding BUG https://code.google.com/p/nativeclient/issues/detail?id=3815 to this issue.
6 years, 3 months ago (2014-09-03 16:45:20 UTC) #3
Richard Diamond
On 2014/09/03 16:45:20, JF wrote: > Adding BUG https://code.google.com/p/nativeclient/issues/detail?id=3815 to this > issue. I planned ...
6 years, 3 months ago (2014-09-03 19:18:11 UTC) #4
Richard Diamond
Is this blocked on something? I'd like to move this forward.
6 years ago (2014-12-02 16:37:07 UTC) #5
JF
I guess it fell off Mark's review radar, thanks for the ping. Yes, let's move ...
6 years ago (2014-12-02 17:28:15 UTC) #6
Richard Diamond
On 2014/12/02 17:28:15, JF wrote: > I guess it fell off Mark's review radar, thanks ...
6 years ago (2014-12-06 22:01:11 UTC) #7
JF
Here's a first pass since we haven't heard from Mark yet. Note that we've moved ...
6 years ago (2014-12-06 23:52:14 UTC) #8
Richard Diamond
https://codereview.chromium.org/460053003/diff/1/lib/Transforms/NaCl/ExpandStructRegs.cpp File lib/Transforms/NaCl/ExpandStructRegs.cpp (right): https://codereview.chromium.org/460053003/diff/1/lib/Transforms/NaCl/ExpandStructRegs.cpp#newcode68 lib/Transforms/NaCl/ExpandStructRegs.cpp:68: static void SplitUpPHINode(PHINode *Phi, bool &NeedsAnotherPass) { On 2014/12/06 ...
6 years ago (2014-12-09 04:33:24 UTC) #9
JF
I assume you're rebased and reran tests? I think it'll be good after the last ...
6 years ago (2014-12-09 19:20:23 UTC) #10
Richard Diamond
Yes, this has been rebased and I ran the tests. https://codereview.chromium.org/460053003/diff/40001/lib/Transforms/NaCl/ExpandStructRegs.cpp File lib/Transforms/NaCl/ExpandStructRegs.cpp (right): https://codereview.chromium.org/460053003/diff/40001/lib/Transforms/NaCl/ExpandStructRegs.cpp#newcode338 ...
6 years ago (2014-12-09 19:39:23 UTC) #11
Mark Seaborn
[In decreasing order of importance, I'm reviewing for: * Correctness -- If the pass doesn't ...
6 years ago (2014-12-09 20:39:46 UTC) #12
Richard Diamond
https://codereview.chromium.org/460053003/diff/40001/lib/Transforms/NaCl/ExpandStructRegs.cpp File lib/Transforms/NaCl/ExpandStructRegs.cpp (right): https://codereview.chromium.org/460053003/diff/40001/lib/Transforms/NaCl/ExpandStructRegs.cpp#newcode225 lib/Transforms/NaCl/ExpandStructRegs.cpp:225: size_t I = 0; On 2014/12/09 20:39:46, Mark Seaborn ...
6 years ago (2014-12-10 00:58:06 UTC) #13
Richard Diamond
On 2014/12/10 00:58:06, Richard Diamond wrote: > https://codereview.chromium.org/460053003/diff/40001/lib/Transforms/NaCl/ExpandStructRegs.cpp#newcode301 > lib/Transforms/NaCl/ExpandStructRegs.cpp:301: ToErase.push_back(Inst); > On 2014/12/09 20:39:46, ...
6 years ago (2014-12-10 17:42:03 UTC) #14
JF
https://codereview.chromium.org/460053003/diff/100001/lib/Transforms/NaCl/ExpandStructRegs.cpp File lib/Transforms/NaCl/ExpandStructRegs.cpp (right): https://codereview.chromium.org/460053003/diff/100001/lib/Transforms/NaCl/ExpandStructRegs.cpp#newcode219 lib/Transforms/NaCl/ExpandStructRegs.cpp:219: static bool ExpandExtractValue(ExtractValueInst *EV, SmallVectorImpl<Instruction*>& ToErase) { Pass in ...
6 years ago (2014-12-10 22:54:56 UTC) #15
Richard Diamond
https://codereview.chromium.org/460053003/diff/100001/lib/Transforms/NaCl/ExpandStructRegs.cpp File lib/Transforms/NaCl/ExpandStructRegs.cpp (right): https://codereview.chromium.org/460053003/diff/100001/lib/Transforms/NaCl/ExpandStructRegs.cpp#newcode219 lib/Transforms/NaCl/ExpandStructRegs.cpp:219: static bool ExpandExtractValue(ExtractValueInst *EV, SmallVectorImpl<Instruction*>& ToErase) { On 2014/12/10 ...
6 years ago (2014-12-11 16:32:08 UTC) #16
Richard Diamond
Shameless self-bump.
6 years ago (2014-12-18 17:32:25 UTC) #17
JF
Mark: is this ready to land? I'd like to check it in this week, so ...
6 years ago (2014-12-21 18:40:39 UTC) #18
JF
I think this is close to ready to go. One thing I'd add are tests ...
5 years, 12 months ago (2014-12-24 14:28:38 UTC) #19
Richard Diamond
On 2014/12/24 14:28:38, JF wrote: > I think this is close to ready to go. ...
5 years, 12 months ago (2014-12-25 03:06:01 UTC) #20
JF
Sorry, a few more comments :-s https://codereview.chromium.org/460053003/diff/140001/test/Transforms/NaCl/expand-struct-regs.ll File test/Transforms/NaCl/expand-struct-regs.ll (right): https://codereview.chromium.org/460053003/diff/140001/test/Transforms/NaCl/expand-struct-regs.ll#newcode167 test/Transforms/NaCl/expand-struct-regs.ll:167: ; CHECK-NEXT: %b.field.field ...
5 years, 12 months ago (2014-12-25 17:09:37 UTC) #21
Richard Diamond
https://codereview.chromium.org/460053003/diff/140001/test/Transforms/NaCl/expand-struct-regs.ll File test/Transforms/NaCl/expand-struct-regs.ll (right): https://codereview.chromium.org/460053003/diff/140001/test/Transforms/NaCl/expand-struct-regs.ll#newcode167 test/Transforms/NaCl/expand-struct-regs.ll:167: ; CHECK-NEXT: %b.field.field = load i64* %b.field.index, align 1 ...
5 years, 12 months ago (2014-12-26 01:57:45 UTC) #22
JF
lgtm after adding the TODO. https://codereview.chromium.org/460053003/diff/140001/test/Transforms/NaCl/expand-struct-regs.ll File test/Transforms/NaCl/expand-struct-regs.ll (right): https://codereview.chromium.org/460053003/diff/140001/test/Transforms/NaCl/expand-struct-regs.ll#newcode167 test/Transforms/NaCl/expand-struct-regs.ll:167: ; CHECK-NEXT: %b.field.field = ...
5 years, 12 months ago (2014-12-26 18:14:41 UTC) #23
Richard Diamond
https://codereview.chromium.org/460053003/diff/140001/test/Transforms/NaCl/expand-struct-regs.ll File test/Transforms/NaCl/expand-struct-regs.ll (right): https://codereview.chromium.org/460053003/diff/140001/test/Transforms/NaCl/expand-struct-regs.ll#newcode167 test/Transforms/NaCl/expand-struct-regs.ll:167: ; CHECK-NEXT: %b.field.field = load i64* %b.field.index, align 1 ...
5 years, 12 months ago (2014-12-27 01:19:37 UTC) #24
JF
5 years, 12 months ago (2014-12-27 19:43:55 UTC) #25
Message was sent while issue was closed.
Committed patchset #10 (id:180001) manually as
9eecd8225bfd180b9160d838b3049175780bcf09 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698