Commit Graph

206 Commits

Author SHA1 Message Date
Chris Peterson
752223fd52 Bug 1207030 - Enable -Wshadow flag in more directories that have no -Wshadow warnings. r=glandium 2015-09-22 21:39:03 -07:00
Shu-yu Guo
37989840cd Bug 1202902 - Mass replace toplevel 'let' with 'var' in preparation for global lexical scope. (rs=jorendorff) 2015-09-15 11:19:45 -07:00
Nicholas Nethercote
e8452d2670 Bug 1202965 (part 2) - Use MOZ_UNUSED in FdPrintf.c. r=glandium. 2015-09-09 17:01:32 -07:00
Mike Hommey
f35b22f2be Bug 1201792 - s/MOZ_JEMALLOC3/MOZ_JEMALLOC4/. r=njn 2015-09-04 15:15:47 +09:00
Mike Hommey
ed71b4546a Bug 1141079 - Make jemalloc_config.c a C++ source file. r=ted 2015-09-04 14:35:54 +09:00
Nicholas Nethercote
ba32a0523f Bug 1200623 - Fix FdPrintf.o link error in --disable-optimize builds. r=glandium. 2015-09-01 17:52:56 -07:00
Nicholas Nethercote
d47c1cf452 Bug 1200097 - Fix warnings in logalloc. r=glandium. 2015-08-31 16:53:13 -07:00
Nicholas Nethercote
12fec02dfb Bug 1198334 (part 1) - Replace the opt-in FAIL_ON_WARNINGS with the opt-out ALLOW_COMPILER_WARNINGS. r=glandium.
The patch removes 455 occurrences of FAIL_ON_WARNINGS from moz.build files, and
adds 78 instances of ALLOW_COMPILER_WARNINGS. About half of those 78 are in
code we control and which should be removable with a little effort.
2015-08-27 20:44:53 -07:00
Chris Peterson
578cf1b411 Bug 1198124 - Enable -Wshadow in directories that have no -Wshadow warnings. r=glandium 2015-08-25 09:14:38 -07:00
Andrew McCreight
4a91a30a02 Bug 1179042 - Add a script for analyzing memory blocks using a heap scan DMD log. r=njn DONTBUILD
Based on:
0a68e57a2c/dmd/block_analyzer.py
2015-08-17 16:48:10 -07:00
Makoto Kato
e8fc4b202b Bug 830801 - Part 3. Remove NOMINMAX define from cpp source. r=mshal 2015-08-03 10:07:20 +09:00
Ehsan Akhgari
d5c417f392 Bug 1188209 - Fix more constructors in memory; r=njn 2015-07-28 08:53:29 -04:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Andrew McCreight
4d6f7d4b52 Bug 1058178, part 2 - Implement address clamping analysis for DMD scan logs. r=njn
This adds a new option --clamp-contents to dmd.py. This replaces every value
contained in the memory contents in the log with a pointer to the start of a live
block, if the value is a pointer into the middle of that block. All other values
are replaced with 0. This conservative analysis makes it easier to determine
which blocks point to other blocks.
2015-06-30 11:54:15 -07:00
Andrew McCreight
556ea5c728 Bug 1058178, part 1 - Implement DMD heap scanning mode. r=njn
This implements a new "scan" mode for DMD that records the address
and contents of every live unsampled block in the DMD log. This
enables the low-level analysis of references from one block to
another, which can help leak investigations.
2015-06-30 11:54:15 -07:00
Benoit Girard
ef41ed062b Bug 1172216 - Move nsStackwalk to mozglue. r=glandium 2015-06-10 16:32:45 -04:00
Andrew McCreight
02d1c6d621 Bug 1172568 - Run test_dmd.js on OS X. r=njn 2015-06-10 07:24:00 -04:00
Mike Hommey
32a312d436 Bug 1172668 - Unbreak DMD on OS X after bug 1168719. r=gps
Bug 1168719 added a generic replace malloc library which name happened to be
the same as the existing dummy library used to link replace malloc on OSX.
Change the name of that dummy library.
2015-06-10 10:49:22 +09:00
Andrew McCreight
4ef05109d4 Bug 1171647, part 2 - Remove redundant assertion for dark matter mode. r=njn 2015-06-06 14:44:19 -07:00
Andrew McCreight
1ada1e321c Bug 1171647, part 1 - Define a new function to convert the mode to a string. r=njn 2015-06-06 14:44:19 -07:00
Mike Hommey
3b0eadeb2c Bug 1168719 - Generic replace-malloc library. r=njn 2015-06-05 10:40:58 +09:00
Mike Hommey
5efb7c235d Bug 1043692 - Add a DIST_INSTALL variable to moz.build, and replace NO_DIST_INSTALL with it. r=gps 2015-05-12 07:55:21 +09:00
Mike Hommey
4d93988786 Bug 1134923 - Remove NS_Alloc/NS_Realloc/NS_Free. r=nfroyd
They are kept around for the sake of the standalone glue, which is used
for e.g. webapprt, which doesn't have direct access to jemalloc, and thus
still needs a wrapper to go through the xpcom function list and get to
jemalloc from there.
2015-05-01 09:40:30 +09:00
ziyunfei
649e7033e4 Bug 1102219 - Part 4: Replace String.prototype.contains with String.prototype.includes in chrome code. r=till 2015-04-30 00:32:05 +09:00
Jed Davis
ff9adb621a Bug 1102388 - Fix DMD static constructor ordering dependency. r=mccr8
Sometimes, at least on Linux, DMDFuncs::sSingleton's static initializer
(in libxul) was being called before sDMDBridge's (in libdmd).
Thus sDMDBridge wasn't constructed yet in the path where its
address is taken, passed down through {replace_,}get_bridge to
ReplaceMallocBridge::Get, and its mVersion field is read.

This patch uses dynamic allocation, following what's done for other
globals in the same situation in this file.

Also, naming convention fix: leading "s" is for C++ class statics;
C-style static globals should be "g".
2015-04-20 23:05:00 +02:00
Ehsan Akhgari
9aea0e3f0a Bug 1153348 - Add an analysis to prohibit operator bools which aren't marked as either explicit or MOZ_IMPLICIT; r=jrmuizel
This is the counterpart to the existing analysis to catch
constructors which aren't marked as either explicit or
MOZ_IMPLICIT.
2015-04-21 21:40:49 -04:00
Wes Kocher
bcf61be505 Backed out changeset 02e6a50741a9 (bug 1153348) to hopefully fix the static bustage CLOSED TREE 2015-04-21 15:47:40 -07:00
Ehsan Akhgari
e383d2c003 Bug 1153348 - Add an analysis to prohibit operator bools which aren't marked as either explicit or MOZ_IMPLICIT; r=jrmuizel
This is the counterpart to the existing analysis to catch
constructors which aren't marked as either explicit or
MOZ_IMPLICIT.
2015-04-21 16:31:58 -04:00
Jed Davis
db050f614f Bug 1128705 - Don't redefine PAGE_SIZE in DMD if it's already defined. r=erahm 2015-04-20 14:15:00 +02:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Anish
fe58834cf9 Bug 958147 - Choose one of run-if or skip-if and get rid of the other.r=jmaher, mwargers 2015-03-03 08:46:37 -05:00
Chris Peterson
e935f0080e Bug 1129326 - Remove nonstandard let blocks from memory/replace/dmd/test/test_dmd.js. r=njn 2015-01-24 23:37:31 -08:00
Nicholas Nethercote
175ee20d94 Bug 1121830 - DMD: add "num" property to blocks in the output. r=mccr8.
The new "num" property lets identical blocks be aggregated in the output. This
patch only uses the "num" property for dead blocks, because that's where the
greatest potential benefit lies, but it could be used for live blocks as well.

On one test case (a complex PDF file) running with --mode=cumulative
--sample-below=1 this patch had the following effects.

- Change in running speed was negligible.

- Compressed output file size dropped from 8.8 to 5.0 MB.

- Compressed output file size dropped from 297 to 50 MB.

- dmd.py runtime (without stack fixing) dropped from 30 to 8 seconds.
2015-01-15 20:38:38 -08:00
Nicholas Nethercote
5c7155b2c7 Bug 1122337 - Mark DMD directories as FAIL_ON_WARNINGS. r=glandium.
The DEFINES and XPCOM_API changes are needed to get rid of "inconsistent dll
linkage" warnings on Windows builds.
2015-01-15 21:17:18 -08:00
Mike Hommey
c63df6c965 Bug 1120798 - Use a larger realloc in one of the DMD tests so that it passes for mozjemalloc as well as jemalloc3. r=njn 2015-01-14 15:18:49 +09:00
Masatoshi Kimura
bae0a32948 Bug 1120062 - Part 1: Remove most Nullptr.h includes. r=waldo 2015-01-11 11:34:52 +09:00
Nicholas Nethercote
c0dc19963f Bug 1088343 (part 2) - Enable test_dmd on Win64. r=glandium. 2015-01-08 16:04:43 -08:00
Vladimir Vukicevic
3a6dcbff13 Bug 1112566 - Use jemalloc C99 msvc compat headers when building mozjemalloc compat glue and jemalloc3 replace-malloc library. r=glandium 2014-12-23 15:27:18 +09:00
Nicholas Nethercote
0e5f1d058a Bug 1112968 - dmd.py: Tweak the --alloc-fns list for better effect on Windows. r=mccr8. 2014-12-18 18:59:53 -08:00
Nicholas Nethercote
14fbd0e896 Bug 1112968 - dmd.py: Tweak the --alloc-fns list for better effect on Mac. r=mccr8. 2014-12-17 19:10:59 -08:00
Nicholas Nethercote
b6bbde9078 Bug 1110455 - Add --sort-by=num-blocks option to dmd.py. r=mccr8. 2014-12-15 15:04:39 -08:00
Nicholas Nethercote
327fd8b037 Bug 1111419 - dmd.py: add a cache for recordKeyParts. r=mccr8.
This reduces the runtime on my Linux machine for one large DMD output file from
235 seconds to 105 seconds.
2014-12-15 15:04:34 -08:00
Ehsan Akhgari
6ef7b88a88 Bug 1109746 - Fix more bad implicit constructors in some random code across the tree 2014-12-13 14:17:04 -05:00
Ryan VanderMeulen
2a2408987d Backed out changesets 34a66a625618, 32db3daa20fe, and ac15ba8568c5 (bug 1102219) for Gaia unit test failures. 2014-12-11 11:28:30 -05:00
ziyunfei
af634a17e6 Bug 1102219 - Part 3: Replace String.prototype.contains with String.prototype.includes in chrome code. r=till 2014-12-10 20:50:00 -05:00
Nicholas Nethercote
fc52cc1d2d Bug 1100851 - Print the mode in dmd.py's output. r=mccr8. 2014-12-10 13:33:50 -08:00
Nicholas Nethercote
84279946f2 Bug 1100851 - Tweak DMD to account for the fact that $DMD can now be undefined. r=glandium.
Now that defining $DMD is no longer necessary to run DMD, this patch does the
following.
- Removes all the places where we set DMD=1 (test harnesses, etc.)
- Still handles DMD=1, for backwards compatibility.
- Prints "$DMD is undefined" at DMD start-up if appropriate.
- Writes a |null| value for |dmdEnvVar| in the JSON if $DMD is undefined. Bumps
  the DMD output version number accordingly.
- Changes a bunch of the test files accordingly, including changing the mode of
  script-ignore-alloc-fns.json in order to test a case where $DMD is undefined.
2014-11-27 21:04:46 -08:00
Nicholas Nethercote
4beda4eda0 Bug 1094552 (part 6) - DMD: add support for cumulative heap profiling. r=mccr8.
By adding a new "cumulative" mode.
2014-10-30 20:22:47 -07:00
Nicholas Nethercote
1794d21329 Bug 1094552 (part 5) - DMD: choose the profiling mode at start-up. r=mccr8.
This patch moves profiling mode selection from post-processing (in dmd.py) to
DMD start-up. This will make it easier to add new kinds of profiling, such as
cumulative heap profiling.

Specifically:

- There's a new --mode option. |LiveWithReports| is the default, as it is
  currently.

- dmd.py's --ignore-reports option is gone.

- There's a new |mode| field in the JSON output.

- Reports-related operations are now no-ops if DMD isn't in LiveWithReports
  mode.

- Diffs are only allowed for output files that have the same mode.

- A new function ResetEverything() replaces the SetSampleBelowSize() and
  ClearBlocks(), which were used by the test to change DMD options.

- The tests in SmokeDMD.cpp are split up so they can be run multiple times, in
  different modes. The exact combinations of tests and modes has been changed a
  bit.
2014-12-08 14:45:14 -08:00
Nicholas Nethercote
5a1116e588 Bug 1094552 (part 4) - Rename AnalyzeReports() as Analyze(). r=mccr8.
Because DMD is no longer just about measuring memory reports coverage, but is
also used for more general heap profiling.
2014-12-08 14:45:13 -08:00