| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Based on 055-enum-performance/run.
Change-Id: Iaae81f070b84e044999f126821752c6df8b30bfd
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Added a new constant kMaxConcurrentRemainingBytes which put a lower
bound on the background GC watermark. This fixes a performance issue
caused by heap verification being really slow and making it that we
were excessively scheduling back to back GCs.
Greatly increases system/test performance when heap verification is
enabled.
Change-Id: I68fa5a247c42f6c661e313c49dd3ca6be29951d4
|
|\ \ |
|
| |/
| |
| |
| | |
Change-Id: Ib956e48ce4061e05a5d39cfacb0d58388f5c1a25
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 8a3e7e769de02b5b412163cf70da9b9fbaf3b848.
Change-Id: I03a0d6180c350569b39cee2ea194903dbdfca963
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rename aarch64 build targets to arm64. The gcc toolchain is still
aarch64.
Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Implement inline division for literal and variable divisors. Use the
general case for dividing by a literal by using a double length multiply
by the appropriate constant with fixups. This is the Hacker's Delight
algorithm.
Change-Id: I563c250f99d89fca5ff8bcbf13de74de13815cfe
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
If you are loading an 'array' long/double value, the generated code
could cause a SEGV, because the destination for the first load is the
same as the index register. The case for the base register being the
same as the destination was handled, but not the index register.
With this change, Calculator properly runs on the emulator.
Change-Id: Ib7e652938cdc9e127fb80ee2f541a4225a5e9ab7
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Change-Id: I105da6393b31f5901036216fbfe19a71c46cf152
|
|\ \ \ \ \ \ |
|
| |/ / / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Force size to signed once errno isn't in play, to solve signed/unsigned
comparisons. Fix printf formatting flags.
Change-Id: Iabf1554c9903a4389ed38f8b1b889bb44778d9d6
|
|\ \ \ \ \ \
| |_|_|/ / /
|/| | | | | |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Also correct header file inclusion ordering.
Change-Id: I8fb99e80cf1487e8b2278d4c1d110d14ed18c086
|
|\ \ \ \ \ |
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Be smarter about taking advantage of a constant operand for x86 long
add/sub/and/or/xor. Using instructions with immediates and generating
results directly into memory reduces the number of temporary registers
and avoids hardcoded register usage.
Also rewrite the existing non-const x86 arithmetic to avoid fixed
register use, and use the fact that x86 instructions are two operand.
Pass the opcode to the XXXLong() routines to easily detect two operand
DEX opcodes.
Add a new StoreFinalValueWide() routine, which is similar to StoreValueWide,
but doesn't do an EvalLoc to allocate registers. The src operand must
already be in registers, and it just updates the dest location, and
calls the right live/dirty routines to get the src into the dest
properly.
Change-Id: Iefc16e7bc2236a73dc780d3d5137ae8343171f62
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
|
|\ \ \ \ \ |
|
| | |/ / /
| |/| | |
| | | | |
| | | | |
| | | | |
| | | | | |
For now the high 32bits are unused when pointers are 64bit.
Change-Id: I2154d9a5e70a122301e97739caf7fc1dc505795d
|
|\ \ \ \ \ |
|
| |/ / / /
| | | | |
| | | | |
| | | | | |
Change-Id: Ibcfa81f27bc92136d7b62dc4cdd3325c273baaa0
|
|\ \ \ \ \
| | |_|_|/
| |/| | | |
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Free the MIR::meta for another use on PUT/GET instructions.
Change-Id: I39ee5122227f449212cf6960e11b9561b8a6de7b
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This a small refactoring towards removing the large
DecodedInstruction from the MIR class.
Change-Id: I10f9ed5eaac42511d864c71d20a8ff6360292cec
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Current inttypes.h don't define stdint printf formatting characters for C++ but
in the future this will change. Rather than #define __STDC_FORMAT_MACROS at the
point of inclusion (conventional) pass it as a cflag so there is a single place
to remove the #define when conventions change.
Change-Id: Ice2fb07e19d8fc06ebc534c903a2d02497c31b3d
|
|\| | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
I expect this to change in the future but this at least unblocks building.
Change-Id: I0baf3eb0e93f1e83d8f07947c1f24ba24249733c
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I197c6cf08053b9c833e50156a92965b3b66698eb
|
|\ \ \ \
| |/ / /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
(cherry picked from commit a6263af9aea65c65744bdd845fed68c4814e9514)
Change-Id: I3eb9fee8afb1ef12aae4c87770882afee637971d
|
|\ \ \ \ |
|
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I54dfa5fdaf0d057ef74c84efb10a609e01923c9e
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Rather than looking up a class from its type ID (and checking if
it's resolved/initialized, resolving/initializing if not), use
direct class pointers, if possible (boot-code-to-boot-class pointers
and app-code-to-boot-class pointers.)
- This results in a 1-2% speedup in Ritz MemAllocTest on Nexus 4.
- Embedding the object size (along with class pointers) caused a 1-2%
slowdown in MemAllocTest and isn't implemented in this change.
- TODO: do the same for array allocations.
- TODO: when/if an application gets its own image, implement
app-code-to-app-class pointers.
- Fix a -XX:gc bug.
cf. https://android-review.googlesource.com/79460/
- Add /tmp/android-data/dalvik-cache to the list of locations to
remove oat files in clean-oat-host.
cf. https://android-review.googlesource.com/79550
- Add back a dropped UNLIKELY in FindMethodFromCode().
cf. https://android-review.googlesource.com/74205
Bug: 9986565
Change-Id: I590b96bd21f7a7472f88e36752e675547559a5b1
|
|\ \ \ \ |
|
|/ / / /
| | | |
| | | |
| | | | |
Change-Id: I08f55ca0185b8fc265afb2ca3f949c6d6ac7c5b6
|
|\ \ \ \ |
|
| |/ / /
| | | |
| | | |
| | | | |
Change-Id: I0cdce36d5f875cdc64cd2db22fd8179916ffa10f
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| |/ /
| | |
| | |
| | | |
Change-Id: Ia73d0141348b3f74a9949012b0060dd4acb5e3b8
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We have header files which define the namespace ::art::llvm
and if they are included before the header files fixed here,
references to llvm::ELF from ::art pick up ::art::llvm
instead of ::llvm and fail to find ELF, causing an error.
Therefore we add the leading "::".
Change-Id: Ib02c9317d39cde5331dd67463013643cbc79ee1f
|
|\ \ \
| |/ /
|/| | |
|