Use type lookup tables in compiler

This recently regressed and stopped happening, the fix creates fake
OatDexFiles so that the compiler uses the type lookup tables instead
of slow FindClassDef and FindTypeId.

Perf on host compile Facebook:
Before:
2.49%: art::DexFile::FindClassDef(unsigned short) const
1.59%: art::DexFile::FindTypeId(char const*) const

After:
0.42%: art::OatDexFile::FindClassDef(art::DexFile const&, char const*, unsigned long)
0%: art::DexFile::FindTypeId(char const*) const
0%: art::DexFile::FindClassDef(unsigned short) const

Average install (N6P 960 mhz average of 40 samples): 38.2s -> 35.64s

Bug: 32641252

Test: test-art-host, adb install.

Change-Id: I34df21dc2c155bc2579c5cafdd91f9cb0fead1a9
10 files changed