Added new debug flag SubsumeLoads to control subsumed loads generation.
Added new debug flag StressRecompilation to recompile with subsume_loads = false and do_escape_analysis = false.
Added more checks into ResourceObj and growableArray to verify correctness of allocation type.
I have to relax the new assert in GrowableArray when elements are allocated on arena to allow
allocattion of GrowableArray object as a part of an other object (for example, in ConnectionGraph and SuperWord).
Added ResourceObj destructor to zap _allocation field.
Added assert into get_allocation_type() to check that 'this' address is still encoded in _allocation.
Found several cases where it was not true, have to add copy constructor and assignment operator.
Moved all new methods with asserts into allocation.cpp.
The added assert failed for CodeBuffer since it destroys itself inside destructor before ResourceObj destructor called.
I save/restore allocation type around Copy::fill_to_bytes() in ~CodeBuffer() to solve this problem.
Replaced PhaseCFG::_node_latency field with pointer since it is valid only inside resource mark in GlobalCodeMotion().