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

Unified Diff: build/common.gypi

Issue 10411047: Type profiler by intercepting 'new' and 'delete' expressions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove some comments Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build/common.gypi
diff --git a/build/common.gypi b/build/common.gypi
index 1b73dcd310bea7fbf3d54405554f158c319ed162..db40045d85b0f58fc73288d920b1bd9d0137754a 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -238,6 +238,13 @@
# See http://clang.llvm.org/docs/ThreadSanitizer.html
'tsan%': 0,
+ # Use a modified version of Clang to intercept allocated types and sizes
+ # for allocated objects. -fintercept-allocated-type only works with the
+ # modified clang, but clang_use_allocated_type=1 implies clang=1
+ # TODO(dmikurube): Add a link to a description page.
+ # TODO(dmikurube): Support mac.
Alexander Potapenko 2012/08/02 14:57:12 Note that tcmalloc does not work on Mac within Chr
Dai Mikurube (NOT FULLTIME) 2012/08/02 16:14:35 Ah, that's true. Thanks. I have to find another a
+ 'clang_use_allocated_type%': 0,
+
# Set to true to instrument the code with function call logger.
# See src/third_party/cygprofile/cyg-profile.cc for details.
'order_profiling%': 0,
@@ -1181,6 +1188,12 @@
'clang%': 1,
}],
+ ['clang_use_allocated_type==1', {
+ 'clang%': 1,
+ 'clang_use_chrome_plugins%': 0,
+ 'make_clang_dir%': 'third_party/llvm-allocated-type/Linux_x64',
+ }],
+
# On valgrind bots, override the optimizer settings so we don't inline too
# much and make the stacks harder to figure out.
#
@@ -1586,6 +1599,28 @@
}],
], # conditions for 'target_defaults'
'target_conditions': [
+ ['_type=="executable" or _type=="loadable_module"', {
+ 'target_conditions': [
+ ['_target_name=="mksnapshot" or _target_name=="protoc" or _target_name=="ppGoogleNaClPluginChrome"', {
Dai Mikurube (NOT FULLTIME) 2012/08/02 07:43:55 Some binaries doesn't use tcmalloc. We use no-op
Alexander Potapenko 2012/08/02 14:57:12 Please write a comment about this.
Dai Mikurube (NOT FULLTIME) 2012/08/02 16:14:35 Yes, I'll do that. Thank you.
Dai Mikurube (NOT FULLTIME) 2012/08/03 10:01:50 Done.
+ # Ignore allocated types.
+ 'conditions': [
+ ['clang==1 and clang_use_allocated_type==1', {
+ 'dependencies': [
+ '<!(realpath <(DEPTH)/base/allocator/allocator.gyp)' + ':allocated_type_ignore#target',
+ ]},
+ ],
+ ]}, {
+ # Store allocated types in TCMalloc's allocated_type_map (extended).
+ 'conditions': [
+ ['clang==1 and clang_use_allocated_type==1', {
+ 'dependencies': [
+ '<!(realpath <(DEPTH)/base/allocator/allocator.gyp)' + ':allocated_type_tcmalloc#target',
Nico 2012/08/02 15:35:03 The realpath bit here shouldn't be needed
Dai Mikurube (NOT FULLTIME) 2012/08/02 16:14:35 It is actually needed because of http://crrev.com/
Nico 2012/08/02 16:18:49 No other dependency in gyp uses realpath though, r
Dai Mikurube (NOT FULLTIME) 2012/08/02 16:54:39 I guess it happens because it is a very hacky gyp
+ ]},
+ ],
+ ]},
+ ]
+ ]},
+ ],
['enable_wexit_time_destructors==1', {
'conditions': [
[ 'clang==1', {
@@ -2329,6 +2364,22 @@
'-fcolor-diagnostics',
],
}],
+ ['clang==1 and clang_use_allocated_type==1', {
Alexander Potapenko 2012/08/03 09:57:07 If clang_use_allocated_type=1 implies clang=1, you
Dai Mikurube (NOT FULLTIME) 2012/08/07 10:39:18 Done.
+ 'cflags_cc!': ['-fno-rtti'],
+ 'cflags_cc+': ['-gline-tables-only'],
+ 'target_conditions': [
+ ['_target_name!="allocator" and _target_name!="allocator_extension_thunks" and _target_name!="libcmt" and _target_name!="allocator_extension_thunks_win64" and _target_name!="allocated_type_log" and _target_name!="allocated_type_ignore" and _target_name!="allocated_type_tcmalloc"', {
+ 'cflags_cc+': [
+ '-frtti',
+ '-fintercept-allocation-functions',
+ '-I../../base/allocator',
+ '-include',
+ 'allocated_type.h',
+ ],
+ }],
+ ],
+ 'defines': ['USE_ALLOCATED_TYPE'],
+ }],
['asan==1', {
'target_conditions': [
['_toolset=="target"', {

Powered by Google App Engine
This is Rietveld 408576698