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

Issue 1838753002: Subzero: Remove IceString. (Closed)

Created:
4 years, 9 months ago by Jim Stichnoth
Modified:
4 years, 8 months ago
Reviewers:
Eric Holk, Karl, sehr, John
CC:
native-client-reviews_googlegroups.com
Base URL:
https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Subzero: Remove IceString. The purpose is to get control over excess string creation and deletion, especially when the strings are long enough to involve malloc/free. Strings that interface with the outside world, or used for dump/debug, are now explicitly std::string. Variable names and node names are represented as string IDs and pooled locally in the CFG. (In a non-DUMP build, this pool should always be empty.) Other strings that are used across functions are represented as string IDs and pooled globally in the GlobalContext. The --dump-strings flag allows these strings to be dumped for sanity checking, even in a MINIMAL build. In a MINIMAL build, the set of strings includes external symbol names, intrinsic names, helper function names, and label names of pooled constants to facilitate deterministic ELF string table output. For now, it also includes jump table entry names until that gets sorted out. Constants are fixed so that the name and pooled fields are properly immutable after the constant is fully initialized. BUG= https://bugs.chromium.org/p/nativeclient/issues/detail?id=4360 R=jpp@chromium.org Committed: https://gerrit.chromium.org/gerrit/gitweb?p=native_client/pnacl-subzero.git;a=commit;h=467ffe51bebcb3ae3e3ce745c38fc20e8837c31c

Patch Set 1 #

Patch Set 2 : Fix symbol name sorting. Cleanup. #

Patch Set 3 : Previous patch killed performance from excessive locking, so cleanup and prepare to regroup #

Patch Set 4 : Allow access to std::string values without acquiring the string pool #

Patch Set 5 : Use unique_ptr. Better hash. #

Patch Set 6 : Cleanup #

Patch Set 7 : More cleanup #

Patch Set 8 : Cleanup #

Total comments: 34

Patch Set 9 : Code review changes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1034 lines, -669 lines) Patch
M src/IceAssembler.h View 1 2 3 4 5 6 3 chunks +4 lines, -3 lines 0 comments Download
M src/IceAssemblerARM32.h View 1 chunk +1 line, -1 line 0 comments Download
M src/IceAssemblerARM32.cpp View 1 2 3 4 5 6 7 8 3 chunks +3 lines, -3 lines 0 comments Download
M src/IceBrowserCompileServer.h View 1 chunk +2 lines, -2 lines 0 comments Download
M src/IceBrowserCompileServer.cpp View 1 chunk +1 line, -1 line 0 comments Download
M src/IceCfg.h View 1 2 3 4 5 6 7 8 8 chunks +35 lines, -25 lines 0 comments Download
M src/IceCfg.cpp View 1 2 3 4 5 6 7 8 12 chunks +29 lines, -17 lines 0 comments Download
M src/IceCfgNode.h View 1 2 3 4 5 6 7 8 4 chunks +14 lines, -16 lines 0 comments Download
M src/IceCfgNode.cpp View 1 2 3 4 5 6 7 8 2 chunks +15 lines, -18 lines 0 comments Download
M src/IceClFlags.cpp View 1 chunk +1 line, -1 line 0 comments Download
M src/IceClFlags.def View 1 2 3 4 5 1 chunk +5 lines, -0 lines 0 comments Download
M src/IceCompileServer.cpp View 5 chunks +6 lines, -4 lines 0 comments Download
M src/IceCompiler.cpp View 3 chunks +2 lines, -3 lines 0 comments Download
M src/IceConverter.cpp View 1 2 3 4 5 6 chunks +8 lines, -6 lines 0 comments Download
M src/IceDefs.h View 1 2 3 4 5 6 7 8 2 chunks +26 lines, -1 line 0 comments Download
M src/IceELFObjectWriter.h View 3 chunks +5 lines, -5 lines 0 comments Download
M src/IceELFObjectWriter.cpp View 1 2 3 4 5 6 7 8 16 chunks +31 lines, -29 lines 0 comments Download
M src/IceELFSection.h View 1 2 3 4 5 6 7 8 11 chunks +22 lines, -16 lines 0 comments Download
M src/IceELFSection.cpp View 1 2 3 4 5 6 7 8 5 chunks +19 lines, -16 lines 0 comments Download
M src/IceFixups.h View 2 chunks +2 lines, -1 line 0 comments Download
M src/IceFixups.cpp View 3 chunks +5 lines, -8 lines 0 comments Download
M src/IceGlobalContext.h View 1 2 3 4 5 6 7 8 13 chunks +39 lines, -52 lines 0 comments Download
M src/IceGlobalContext.cpp View 1 2 3 4 5 6 7 8 19 chunks +56 lines, -40 lines 0 comments Download
M src/IceGlobalInits.h View 1 2 3 4 5 6 7 8 9 chunks +25 lines, -16 lines 0 comments Download
M src/IceGlobalInits.cpp View 1 chunk +2 lines, -1 line 0 comments Download
M src/IceInst.h View 1 2 3 4 5 6 7 8 3 chunks +7 lines, -4 lines 0 comments Download
M src/IceInst.cpp View 2 chunks +2 lines, -2 lines 0 comments Download
M src/IceInstARM32.h View 4 chunks +5 lines, -5 lines 0 comments Download
M src/IceInstARM32.cpp View 1 2 3 4 5 6 7 8 14 chunks +27 lines, -22 lines 0 comments Download
M src/IceInstMIPS32.h View 2 chunks +2 lines, -2 lines 0 comments Download
M src/IceInstMIPS32.cpp View 1 2 3 4 5 6 7 8 2 chunks +11 lines, -9 lines 0 comments Download
M src/IceInstX8664.cpp View 3 chunks +12 lines, -15 lines 0 comments Download
M src/IceInstX86Base.h View 2 chunks +4 lines, -3 lines 0 comments Download
M src/IceInstX86BaseImpl.h View 1 2 3 4 5 6 7 8 14 chunks +30 lines, -26 lines 0 comments Download
M src/IceIntrinsics.h View 3 chunks +5 lines, -4 lines 0 comments Download
M src/IceIntrinsics.cpp View 12 chunks +34 lines, -34 lines 0 comments Download
M src/IceMangling.h View 1 chunk +2 lines, -2 lines 0 comments Download
M src/IceMangling.cpp View 2 chunks +2 lines, -2 lines 0 comments Download
M src/IceOperand.h View 1 2 3 4 5 6 7 8 18 chunks +76 lines, -60 lines 0 comments Download
M src/IceOperand.cpp View 1 2 3 chunks +17 lines, -11 lines 0 comments Download
M src/IceRegistersARM32.h View 1 chunk +1 line, -1 line 0 comments Download
A src/IceStringPool.h View 1 2 3 4 5 6 7 8 1 chunk +174 lines, -0 lines 0 comments Download
M src/IceSwitchLowering.h View 2 chunks +4 lines, -3 lines 0 comments Download
M src/IceTargetLowering.h View 5 chunks +11 lines, -10 lines 0 comments Download
M src/IceTargetLowering.cpp View 11 chunks +34 lines, -18 lines 0 comments Download
M src/IceTargetLoweringARM32.h View 5 chunks +15 lines, -5 lines 0 comments Download
M src/IceTargetLoweringARM32.cpp View 1 2 3 4 5 14 chunks +45 lines, -38 lines 0 comments Download
M src/IceTargetLoweringMIPS32.h View 3 chunks +6 lines, -2 lines 0 comments Download
M src/IceTargetLoweringMIPS32.cpp View 5 chunks +8 lines, -4 lines 0 comments Download
M src/IceTargetLoweringX8632.cpp View 2 chunks +9 lines, -4 lines 0 comments Download
M src/IceTargetLoweringX8632Traits.h View 3 chunks +5 lines, -4 lines 0 comments Download
M src/IceTargetLoweringX8664.cpp View 1 2 3 4 5 6 7 4 chunks +11 lines, -7 lines 0 comments Download
M src/IceTargetLoweringX8664Traits.h View 3 chunks +5 lines, -4 lines 0 comments Download
M src/IceTargetLoweringX86Base.h View 4 chunks +7 lines, -6 lines 0 comments Download
M src/IceTargetLoweringX86BaseImpl.h View 1 2 3 4 5 6 7 8 16 chunks +41 lines, -30 lines 0 comments Download
M src/IceTimerTree.h View 2 chunks +7 lines, -7 lines 0 comments Download
M src/IceTimerTree.cpp View 4 chunks +4 lines, -4 lines 0 comments Download
M src/IceTranslator.h View 1 chunk +3 lines, -3 lines 0 comments Download
M src/IceTranslator.cpp View 2 chunks +5 lines, -3 lines 0 comments Download
M src/IceTypes.h View 1 chunk +1 line, -1 line 0 comments Download
M src/PNaClTranslator.cpp View 1 2 3 4 5 7 chunks +30 lines, -19 lines 0 comments Download
M unittest/IceELFSectionTest.cpp View 1 2 3 4 5 6 5 chunks +14 lines, -10 lines 0 comments Download

Messages

Total messages: 9 (5 generated)
Jim Stichnoth
4 years, 8 months ago (2016-03-28 23:18:30 UTC) #5
John
lgtm https://codereview.chromium.org/1838753002/diff/140001/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1838753002/diff/140001/src/IceAssemblerARM32.cpp#newcode596 src/IceAssemblerARM32.cpp:596: const std::string Symbol = symbol().toString(); consider auto here ...
4 years, 8 months ago (2016-03-29 14:23:16 UTC) #6
Jim Stichnoth
https://codereview.chromium.org/1838753002/diff/140001/src/IceAssemblerARM32.cpp File src/IceAssemblerARM32.cpp (right): https://codereview.chromium.org/1838753002/diff/140001/src/IceAssemblerARM32.cpp#newcode596 src/IceAssemblerARM32.cpp:596: const std::string Symbol = symbol().toString(); On 2016/03/29 14:23:15, John ...
4 years, 8 months ago (2016-03-29 21:40:50 UTC) #7
Jim Stichnoth
4 years, 8 months ago (2016-03-29 22:01:13 UTC) #9
Message was sent while issue was closed.
Committed patchset #9 (id:160001) manually as
467ffe51bebcb3ae3e3ce745c38fc20e8837c31c (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698