Support obtaining x86 cache info from CPU

Hardcoded cache sizes may not be optimal so get
the underlying cache as per the uarchs/SKUs,
same is done for bionic.

StringCompareTo function showing ~10% improvement
for uncompressed strings of sizes > 9KB to <= 12KB on
CPU which has L1_data_cache of size 48KB

Also changed the threshold from 3/4 to 1/2
of the data cache size, for switching to the L2/L3
cache-aware path. This is a more conservative value
to help reduce cache thrashing.

Test: art/test.py -b --host

Signed-off-by: Ravi Kumar Soni <ravi.kumar.soni@intel.com>
Flag: EXEMPT x86_64 only
Change-Id: I8ed602cceddf4a91528a370359a9c57e32a3cfdb
3 files changed