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

Issue 6973063: Extend GCMole with poor man's data flow analysis to catch dead raw pointer vars. (Closed)

Created:
9 years, 7 months ago by Vyacheslav Egorov (Chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Extend GCMole with poor man's data flow analysis to catch dead raw pointer vars. Fix various places in the code found by improved GCMole. Committed: http://code.google.com/p/v8/source/detail?r=7895

Patch Set 1 #

Total comments: 12
Unified diffs Side-by-side diffs Delta from patch set Stats (+1165 lines, -224 lines) Patch
M src/arm/macro-assembler-arm.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/arm/stub-cache-arm.cc View 1 chunk +2 lines, -1 line 0 comments Download
M src/bootstrapper.cc View 2 chunks +3 lines, -3 lines 1 comment Download
M src/liveedit.cc View 3 chunks +6 lines, -6 lines 0 comments Download
M src/objects.cc View 4 chunks +9 lines, -6 lines 0 comments Download
M src/runtime.cc View 2 chunks +9 lines, -4 lines 0 comments Download
M src/uri.js View 2 chunks +8 lines, -2 lines 0 comments Download
M tools/gcmole/Makefile View 1 chunk +2 lines, -2 lines 1 comment Download
A tools/gcmole/gccause.lua View 1 chunk +60 lines, -0 lines 0 comments Download
M tools/gcmole/gcmole.cc View 7 chunks +926 lines, -163 lines 9 comments Download
M tools/gcmole/gcmole.lua View 7 chunks +139 lines, -36 lines 1 comment Download

Messages

Total messages: 2 (0 generated)
Vyacheslav Egorov (Chromium)
9 years, 7 months ago (2011-05-13 23:01:36 UTC) #1
Mads Ager (chromium)
9 years, 7 months ago (2011-05-16 06:10:26 UTC) #2
LGTM!

The lua parts really should be written in python though.

http://codereview.chromium.org/6973063/diff/1/src/bootstrapper.cc
File src/bootstrapper.cc (right):

http://codereview.chromium.org/6973063/diff/1/src/bootstrapper.cc#newcode1728
src/bootstrapper.cc:1728: #define F(size, func) do {                           \
Restore alignment of '\'

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/Makefile
File tools/gcmole/Makefile (right):

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/Makefile#newcode35
tools/gcmole/Makefile:35: -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -03  		
   \
Accidental edit?

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc
File tools/gcmole/gcmole.cc (right):

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode98
tools/gcmole/gcmole.cc:98: e = result.second;
How about extracting result.second before the loop to get saner indentation?

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode350
tools/gcmole/gcmole.cc:350: i != end;
Move envs_.end() here to make code more readable?

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode363
tools/gcmole/gcmole.cc:363: i != end;
Ditto. Also multiple places below.

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode506
tools/gcmole/gcmole.cc:506: clang::type * concrete_expr =
dyn_cast_or_null<clang::type>(expr); \
Placement of '*'.

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode882
tools/gcmole/gcmole.cc:882: Environment Visit##type (clang::type * stmt, const
Environment& env)
Is there a reason for the '*' placement here and in the line below?

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode885
tools/gcmole/gcmole.cc:885: Environment Visit##type (clang::type * stmt, const
Environment& env) { \
If you place the '*' differently the '\' aligns with the rest.

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode905
tools/gcmole/gcmole.cc:905: : in_(in), out_(Environment::Unreachable()),
changed_(false), owner_(owner) {
Long line.

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode1012
tools/gcmole/gcmole.cc:1012: block.Loop(stmt->getCond(),
Shouldn't this be Loop(Cond, Body, Inc)?

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.cc#newcode1188
tools/gcmole/gcmole.cc:1188: clang::CXXRecordDecl* smiDecl =
Why the switch in naming conventions? smi_decl and object_decl?

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.lua
File tools/gcmole/gcmole.lua (right):

http://codereview.chromium.org/6973063/diff/1/tools/gcmole/gcmole.lua#newcode60
tools/gcmole/gcmole.lua:60: FLAGS[flag] = (no ~= "no")
Tabs in the file. Here and later.

Powered by Google App Engine
This is Rietveld 408576698