Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Update art from branch 'master' to 6743f1ebd4a1a266896541acb5c4dde1f78e708f - Merge changes I668f5351,I40fa767b * changes: Revert^2 "Move GCStress BacktraceHelper to libbacktrace" Rewrite thread CustomTLS to support keyed TLS entries - Revert^2 "Move GCStress BacktraceHelper to libbacktrace" By changing to keeping the BacktraceMap in each threads TLS we avoid having to recreate it each time we do an allocation in GCStress. This makes running in gcstress significantly faster than it was in the initial version of this CL. For test 001-HelloWorld, this has an ~30% measured time cost as compared to libgcc (from 9.063s to 12.262s). On the other hand it seems better at actually differentiating distinct stack traces. Total time spent doing gcs is about doubled (from 4107.91ms to 7036.97ms). Total number of gcs is about doubled (from 175 to 320). This reverts commit 7d3256a376709145d6c402a13b1977350816aec2. Reason for revert: Fixed issue causing gcstress to take too long. Test: ./test/testrunner/testrunner.py --host --gcstress --jit --64 -t 989 Test: ./test/testrunner/testrunner.py --host --gcstress Change-Id: I668f53513d8495d4a4c7aa540137676118903f8a - Rewrite thread CustomTLS to support keyed TLS entries Our Thread struct allowed plugins or other parts of the runtime to use a single custom_tls_ void* pointer to store additional data in the Thread struct. Unfortunately it was limited to a single value. This CL changes the API to allow one to pass in a const char* key that is used to address the TLS data. This lets multiple plugins or parts of the runtime set their own independent TLS entries. This also adds support for TLS entries actually being deallocated automatically. Test: ./test.py --host Change-Id: I40fa767b9c61a755b2ed910e4ad1e6327705e941
- Loading branch information