19e5899a02
The following are not compressed: Code, ObjectPool, Context, CallSiteData and subclasses. Code::instructions_ is uncompressible because the VM doesn't control the address of Instructions when they are loaded via dynamic library. Loads from the ObjectPool are a frequent occurrence in generated code, and shrinking ObjectPool entries would be offset by longer code sequences to decompress them. Also, some ObjectPool entries contain uncompressible pointers to C functions. Context is not compressed based on reports from earlier work on compressed pointers that compressing them is disproporately bad for performance. The earlier work used a different, more-expensive compression scheme, so we should reinvestigate this. CallSiteData et al. are on the hot path for unoptimized code but make up a comparatively small portion of the heap size. TEST=ci Change-Id: I9a425fa4e12113c9fd0b51999525d32a7e589a90 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190600 Commit-Queue: Ryan Macnak <rmacnak@google.com> Reviewed-by: Liam Appelbe <liama@google.com>