DescriptionWe give LLVM global objects ownership of the Python objects they mirror, but until recently there was no way to safely free unused global objects. Now that the ExecutionEngine supports it, this patch hooks up a mechanism. This allows regrtest to complete under -j always after using ~1.6gb of memory. On an instrumented test_llvm run, we get: Number of globals collected by globaldce (n=338): Min: 0 Median: 30 Mean: 30 Max: 101 Sum: 10346 Time for a globaldce run in ns (n=338): Min: 462000 Median: 815500 Mean: 941295 Max: 5247000 Sum: 318158000 And for regrtest: Number of globals collected by globaldce (n=22): Min: 0 Median: 9 Mean: 72 Max: 290 Sum: 1588 Time for a globaldce run in ns (n=22): Min: 726000 Median: 5039500 Mean: 10233772 Max: 34198000 Sum: 225143000 Patch Set 1Patch Set 2 : Fix PyDict_Type crashPatch Set 3 : Remove the AssertingVHPatch Set 4 : Fix the WITH_INSTRUMENTATION build
Total comments: 12
Patch Set 5 : Fix Collin's comments
Created: 2 weeks, 2 days ago
MessagesTotal messages: 4
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||