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 1 #Patch Set 2 : Fix PyDict_Type crash #Patch Set 3 : Remove the AssertingVH #Patch Set 4 : Fix the WITH_INSTRUMENTATION build #
Total comments: 12
Patch Set 5 : Fix Collin's comments #
MessagesTotal messages: 4
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||