OSDN Git Service
Calin Juravle [Tue, 25 Nov 2014 20:56:51 +0000 (20:56 +0000)]
[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}
- adds float comparison for arm, x86, x86_64 backends.
- adds ucomis{s,d} assembly to x86 and x86_64.
Change-Id: I232d2b6e9ecf373beb5cc63698dd97a658ff9c83
Nicolas Geoffray [Wed, 26 Nov 2014 14:46:09 +0000 (14:46 +0000)]
Merge "Revert "[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}""
Nicolas Geoffray [Wed, 26 Nov 2014 14:45:52 +0000 (14:45 +0000)]
Revert "[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}"
Fails on x86_64 and target.
This reverts commit
cea28ec4b9e94ec942899acf1dbf20f8999b36b4.
Change-Id: I30c1d188c7ecfe765f137a307022ede84f15482c
Calin Juravle [Wed, 26 Nov 2014 12:04:39 +0000 (12:04 +0000)]
Merge "[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}"
Nicolas Geoffray [Wed, 26 Nov 2014 12:00:16 +0000 (12:00 +0000)]
Merge "Add ART_USE_OPTIMIZING_COMPILER flag."
Calin Juravle [Tue, 25 Nov 2014 20:56:51 +0000 (20:56 +0000)]
[optimizing compiler] Add CMP{L,G}_{FLOAT,DOUBLE}
- adds float comparison for arm, x86, x86_64 backends.
- adds ucomis{s,d} assembly to x86 and x86_64.
Change-Id: Ie91e04bfb402025073054f3803a3a569e4705caa
Mathieu Chartier [Wed, 26 Nov 2014 00:03:31 +0000 (00:03 +0000)]
Merge "Move dexCacheStrings from ArtMethod to Class"
Mathieu Chartier [Tue, 25 Nov 2014 02:29:54 +0000 (18:29 -0800)]
Move dexCacheStrings from ArtMethod to Class
Adds one load for const strings which are not direct.
Saves >= 60KB of memory avg per app.
Image size: -350KB.
Bug:
17643507
Change-Id: I2d1a3253d9de09682be9bc6b420a29513d592cc8
(cherry picked from commit
f521f423b66e952f746885dd9f6cf8ef2788955d)
Nicolas Geoffray [Tue, 25 Nov 2014 23:42:00 +0000 (23:42 +0000)]
Add ART_USE_OPTIMIZING_COMPILER flag.
Change-Id: I86065aec5bfe59729c6a4064a3e54d5b523ca45c
Mathieu Chartier [Tue, 25 Nov 2014 23:31:24 +0000 (23:31 +0000)]
Merge "Fix oatwriter code deduping"
Mathieu Chartier [Tue, 25 Nov 2014 19:20:28 +0000 (11:20 -0800)]
Fix oatwriter code deduping
Now that the GC maps are part of the oat method header they need
to be checked in CodeOffsetsKeyComparator.
Bug:
18523556
Change-Id: I539a6e7216166342b22515c1e2cf831dad32e41e
(cherry picked from commit
4cdf4508903d13fd0f9fba5690aeac1b368db81b)
Andreas Gampe [Tue, 25 Nov 2014 21:30:20 +0000 (21:30 +0000)]
Merge "ART: Avoid recursive abort"
buzbee [Tue, 25 Nov 2014 20:09:03 +0000 (20:09 +0000)]
Merge "Quick compiler: handle embedded switch data"
buzbee [Tue, 25 Nov 2014 18:52:19 +0000 (10:52 -0800)]
Quick compiler: handle embedded switch data
Although switch data is generally placed at the end of a dex
file by dx, it can occur elsewhere (and does via obsfucators).
This CL fixes a parsing error related to embedded switch data by
ensuring valid dex instructions following the embedded data appear
in their own basic blocks.
AOSP b/80600
Change-Id: I91ead6b398386bcf168b1088c5bc13a53b18f26e
Bill Buzbee [Tue, 25 Nov 2014 16:28:31 +0000 (16:28 +0000)]
Merge "ART: GenLongArith has to clobber same operands for 2-op instr"
Bill Buzbee [Tue, 25 Nov 2014 16:28:19 +0000 (16:28 +0000)]
Merge "ART: Generate switch targets from successor blocks"
Vladimir Marko [Tue, 25 Nov 2014 11:44:56 +0000 (11:44 +0000)]
Merge "Skip null check in MarkGCCard() for known non-null values."
Nicolas Geoffray [Tue, 25 Nov 2014 11:19:37 +0000 (11:19 +0000)]
Merge "Fix tests now that dead phis are removed when building SSA."
Nicolas Geoffray [Tue, 25 Nov 2014 11:18:37 +0000 (11:18 +0000)]
Fix tests now that dead phis are removed when building SSA.
Change-Id: Ie795f5f1c7c44ec1a3ea2bac822b6255bfb8d45c
Nicolas Geoffray [Tue, 25 Nov 2014 10:33:31 +0000 (10:33 +0000)]
Merge "Fix a bug in the type analysis phase of optimizing."
Andreas Gampe [Tue, 25 Nov 2014 02:04:41 +0000 (02:04 +0000)]
Merge "ART: Fix inline dependency"
Andreas Gampe [Tue, 25 Nov 2014 02:03:01 +0000 (18:03 -0800)]
ART: Fix inline dependency
GetClassFromTypeIdx is defined in the -inl file.
Change-Id: Ib5dbcea08dccee43ff70cac2e45cdbf210cb490c
Nicolas Geoffray [Mon, 24 Nov 2014 15:28:45 +0000 (15:28 +0000)]
Fix a bug in the type analysis phase of optimizing.
Dex code can lead to the creation of a phi with one
float input and one integer input. Since the SSA builder trusts
the verifier, it assumes that the integer input must be converted
to float. However, when the register is not used afterwards, the
verifier hasn't ensured that. Therefore, the compiler must remove
the phi prior to doing type propagation.
Change-Id: Idcd51c4dccce827c59d1f2b253bc1c919bc07df5
Andreas Gampe [Mon, 24 Nov 2014 23:57:17 +0000 (23:57 +0000)]
Merge "ART: Fix unused variables and functions"
Andreas Gampe [Mon, 24 Nov 2014 22:29:46 +0000 (22:29 +0000)]
Merge "Revert "ART: Remove wrong DCHECK""
Andreas Gampe [Mon, 24 Nov 2014 22:23:53 +0000 (14:23 -0800)]
Revert "ART: Remove wrong DCHECK"
This reverts commit
5be30072c5a750617dc3f9380776d074f26d9f32.
The underlying computation was fixed in AOSP before.
Bug:
17772057
Bug:
17763227
Bug:
17762845
Andreas Gampe [Mon, 24 Nov 2014 21:42:22 +0000 (13:42 -0800)]
ART: Fix unused variables and functions
Change-Id: Icbab884d2dfd71656347368b424cb35cbf524051
Mathieu Chartier [Mon, 24 Nov 2014 19:57:50 +0000 (19:57 +0000)]
Merge "Delete ArtMethod gc_map_ field"
Vladimir Marko [Mon, 24 Nov 2014 19:45:41 +0000 (19:45 +0000)]
Skip null check in MarkGCCard() for known non-null values.
Use GVN's knowledge of non-null values to set a new MIR flag
for IPUT/SPUT/APUT to skip the value null check.
Change-Id: I97a8d1447acb530c9bbbf7b362add366d1486ee1
Vladimir Marko [Mon, 24 Nov 2014 19:09:57 +0000 (19:09 +0000)]
Merge "Further cleanup using dex_instruction_utils.h."
Calin Juravle [Mon, 24 Nov 2014 18:46:10 +0000 (18:46 +0000)]
Merge "Fix the list of arm64 broken optimizing tests."
Mathieu Chartier [Sat, 22 Nov 2014 00:51:29 +0000 (16:51 -0800)]
Delete ArtMethod gc_map_ field
Moved the gc_map field from OatMethod to OatQuickMethodHeader.
Deleted the ArtMethod gc_map_ field.
Bug:
17643507
Change-Id: Ifa0470c3e4c2f8a319744464d94c6838b76b3d48
(cherry picked from commit
807140048f82a2b87ee5bcf337f23b6a3d1d5269)
Calin Juravle [Mon, 24 Nov 2014 18:38:13 +0000 (18:38 +0000)]
Fix the list of arm64 broken optimizing tests.
Change-Id: I498c1dc0a32686f2b335a2b43ed31ac537f29029
Nicolas Geoffray [Mon, 24 Nov 2014 18:21:41 +0000 (18:21 +0000)]
Merge "Revert "Revert "Fix the computation of linear ordering."""
Nicolas Geoffray [Mon, 24 Nov 2014 17:47:10 +0000 (17:47 +0000)]
Revert "Revert "Fix the computation of linear ordering.""
PS2 fixes the obvious typos/wrong refactoring.
This reverts commit
e50fa5887b1342b845826197d81950e26753fc9c.
Change-Id: I22f81d63a12cf01aafd61535abc2399d936d49c2
Nicolas Geoffray [Mon, 24 Nov 2014 17:44:27 +0000 (17:44 +0000)]
Merge "Revert "Fix the computation of linear ordering.""
Nicolas Geoffray [Mon, 24 Nov 2014 17:44:15 +0000 (17:44 +0000)]
Revert "Fix the computation of linear ordering."
Build is broken.
This reverts commit
3054a90063d379ab8c9e5a42a7daf0d644b48b07.
Change-Id: I259bc2bd6a58e30391b8176f3db5fdb5c07e4d6d
Nicolas Geoffray [Mon, 24 Nov 2014 17:29:36 +0000 (17:29 +0000)]
Merge "Fix the computation of linear ordering."
Vladimir Marko [Mon, 24 Nov 2014 16:33:51 +0000 (16:33 +0000)]
Further cleanup using dex_instruction_utils.h.
Change-Id: I85aa9e7d744b37ee3d2531c50470cd3fa87dc864
Calin Juravle [Mon, 24 Nov 2014 16:37:16 +0000 (16:37 +0000)]
Merge "Fixed missing "//"."
Calin Juravle [Mon, 24 Nov 2014 16:36:44 +0000 (16:36 +0000)]
Fixed missing "//".
Change-Id: Ife5338d469e9db0b0ea37746dee11a40a52615f1
Calin Juravle [Mon, 24 Nov 2014 16:19:42 +0000 (16:19 +0000)]
Merge "[optimizing compiler] Add shifts"
Calin Juravle [Tue, 18 Nov 2014 23:06:35 +0000 (23:06 +0000)]
[optimizing compiler] Add shifts
Added SHL, SHR, USHR for arm, x86, x86_64.
Change-Id: I971f594e270179457e6958acf1401ff7630df07e
Vladimir Marko [Mon, 24 Nov 2014 15:48:59 +0000 (15:48 +0000)]
Merge "Eliminate suspend checks on back-edges to return insn."
Vladimir Marko [Mon, 24 Nov 2014 14:09:46 +0000 (14:09 +0000)]
Eliminate suspend checks on back-edges to return insn.
This optimization seems to have been broken for a long time.
Change-Id: I62ec85c71bb5253917ad9465a952911e917f6b52
Vladimir Marko [Mon, 24 Nov 2014 13:42:34 +0000 (13:42 +0000)]
Merge "ART: Add div-zero check elimination to LVN/GVN"
Vladimir Marko [Mon, 24 Nov 2014 12:39:45 +0000 (12:39 +0000)]
Merge "ART: Fix NullCheckElimination, BBCombine, and SplitBlock"
Vladimir Marko [Mon, 24 Nov 2014 11:05:33 +0000 (11:05 +0000)]
Merge "Rewrite GVN's field id and field type handling."
Andreas Gampe [Mon, 24 Nov 2014 08:21:06 +0000 (00:21 -0800)]
ART: Avoid recursive abort
Bug:
18469797
Change-Id: Ided50bec3377034dd9a995f9f0700a795adb3940
Andreas Gampe [Mon, 24 Nov 2014 08:10:29 +0000 (08:10 +0000)]
Merge "ART: ELF symbol table lookup is fixed"
Yevgeny Rouban [Mon, 24 Nov 2014 07:40:56 +0000 (13:40 +0600)]
ART: ELF symbol table lookup is fixed
ELF loader could not find some symbols in the OAT's symbol table
(e.g. oatdata, oatexec).
There was a bug in the symbol hash table lookup: if a valid index of
a chain got greater or equal than the number of hash buckets then
the chain was cut off.
The fix is to compare the chain index with the chains array length
rather than with the number of buckets.
Change-Id: I20940957c3045913fd426031a51314d4f87ac1bd
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
Ian Rogers [Mon, 24 Nov 2014 04:10:10 +0000 (04:10 +0000)]
Merge "Increase run-test output on error."
Ian Rogers [Mon, 24 Nov 2014 04:07:39 +0000 (20:07 -0800)]
Increase run-test output on error.
On the host with many cores its possible for the message of an abort to be lost
due to the amount of debug output.
Bug:
18469797
Change-Id: Ibf210fc113166b8cc06ee9aed206780c981d236c
Ian Rogers [Sat, 22 Nov 2014 06:58:49 +0000 (06:58 +0000)]
Merge "Avoid some recursive aborting."
Ian Rogers [Sat, 22 Nov 2014 06:52:16 +0000 (22:52 -0800)]
Avoid some recursive aborting.
Bug:
18469797
Change-Id: Ic1889a605a041bdec679ff54f8dce3842d85f2e1
Andreas Gampe [Sat, 22 Nov 2014 04:35:42 +0000 (04:35 +0000)]
Merge "ART: Wrap AllocThreadUnsafe in Valgrind wrapper"
Andreas Gampe [Sat, 22 Nov 2014 03:45:53 +0000 (19:45 -0800)]
ART: Wrap AllocThreadUnsafe in Valgrind wrapper
This needs to be wrapped as it is being used during compaction.
Bug:
18481268
Change-Id: I85ecccc7de8be8eb70a5cb0420817583be9b7999
Ian Rogers [Sat, 22 Nov 2014 02:23:05 +0000 (02:23 +0000)]
Merge "Fix UnimplementedEntryPoint initialziation."
Razvan A Lupusoru [Thu, 30 Oct 2014 01:42:27 +0000 (18:42 -0700)]
ART: Fix NullCheckElimination, BBCombine, and SplitBlock
NullCheckElimination had one issue and one assumption that could be
broken:
-It ignored that compiler temps may hold references.
-Assumed there are no phi nodes even though algorithm can be run even
after phi nodes are inserted.
BBCombine also had issue in that it did not properly maintain the
instruction links. The logic has been updated to use utility methods.
SplitBlock has an issue with being called after extended instructions
are inserted. Namely, in the case in question, it was called after
SpecialMethodInliner was through and although it was doing semantically
correct thing, it was hitting dcheck due to the kMirOpNullCheck.
Change-Id: Id5863ddb0762064e74bf1d9173b8db5cb47cf3b9
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Ian Rogers [Sat, 22 Nov 2014 02:13:20 +0000 (02:13 +0000)]
Merge "Fixed ArtMethod::GetQuickFrameInfo() for proxy methods"
Ian Rogers [Sat, 22 Nov 2014 01:32:30 +0000 (01:32 +0000)]
Merge "Add JNI trampoline for mips32."
Chao-ying Fu [Mon, 27 Oct 2014 21:42:00 +0000 (14:42 -0700)]
ART: Generate switch targets from successor blocks
This patch relies on the successor blocks to generate switch targets
in GenSmallPackedSwitch and GenSmallSparseSwitch for all quick targets.
In x86, we create a new packed switch table by storing basic block
ids instead of dex offsets, and we override MarkPackedCaseLabels and
InsertCaseLabel to avoid calling FindBlock.
Change-Id: Ibb5983db582f0965aba787b520bd106522453564
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Razvan A Lupusoru [Fri, 14 Nov 2014 22:36:55 +0000 (14:36 -0800)]
ART: Add div-zero check elimination to LVN/GVN
GVN has been updated to also consider div/rem zero check elimination.
This means that whenever a divisor is used in two sequential divisions,
the second division will surely not throw exception.
The algorithm has been updated to work on global level by considering
splits and merges. Obviously, if "div_zero" checked on one path but
not the other, at merge point consider that division has not been
eliminated.
One big deficiency of this algorithm is that it does not consider
literals in the divisor. Namely, in cases where the operand is a literal
or a constant (literal created by another bytecode), it does not mark as
divide by zero checked. However, in reality this is not an issue
because none of the backends generate the divide by zero check when
the constant value is known.
Issue: CAR-868
Category: device enablement
Domain: AOSP.ART-ME
Origin: internal
Upstream-Candidate: yes
Change-Id: I617569055c73a45e13e2a83392b99b48f4e33362
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Ian Rogers [Sat, 22 Nov 2014 00:57:04 +0000 (00:57 +0000)]
Merge "Fix possible array access issue"
Vladimir [Mon, 13 Oct 2014 06:41:38 +0000 (13:41 +0700)]
Fix possible array access issue
The issue with possible array access in the DisassembleExtendedInstr
method should be fixed. The input opcode should be extended one.
Additional check for it was added.
Also additional CHECK for memory allocation should be added.
Change-Id: If114572a5bc99587d5effd588e7bd955c16d8318
Signed-off-by: Vladimir <vladimir.a.ivanov@intel.com>
Ian Rogers [Sat, 22 Nov 2014 00:45:10 +0000 (00:45 +0000)]
Merge "ART: Fix crash with unreachable void check-cast"
Ian Rogers [Sat, 22 Nov 2014 00:23:11 +0000 (00:23 +0000)]
Merge "LSRA: Fix X86 shuffle flags"
Igor Murashkin [Sat, 22 Nov 2014 00:19:58 +0000 (00:19 +0000)]
Merge "test: Fix assember_arm_test to compile on gcc"
nikolay serdjuk [Thu, 13 Nov 2014 12:15:23 +0000 (18:15 +0600)]
ART: GenLongArith has to clobber same operands for 2-op instr
When we generate code for 'add-long/2addr v4, v4' and v4 is in
memory, we load v4 in a physical register, do operation and
store result in memory. After that, we should clobber the
physical register because it is not valid anymore.
Change-Id: I80903a831040bbfdf8a07810b6b2e8090fe1158c
Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com>
Igor Murashkin [Sat, 22 Nov 2014 00:16:53 +0000 (16:16 -0800)]
test: Fix assember_arm_test to compile on gcc
Bug:
18484809
Change-Id: I2677de5fdb418091bc753271ad38972f375c96d8
Ian Rogers [Sat, 22 Nov 2014 00:15:29 +0000 (00:15 +0000)]
Merge "ART: X86 vectorized reduce may use incorrect extract index"
Razvan A Lupusoru [Wed, 29 Oct 2014 02:29:52 +0000 (19:29 -0700)]
ART: X86 vectorized reduce may use incorrect extract index
In the case of reduction to memory VR, the extract index is ignored.
However, it should not be ignored because it is needed for pextr instruction.
Change-Id: I46a0c76218a0553e677225e403786522c079d27d
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Vladimir Marko [Fri, 21 Nov 2014 19:05:46 +0000 (19:05 +0000)]
Merge "Clean up MIRGraph pass temporaries."
Vladimir Marko [Fri, 31 Oct 2014 16:37:32 +0000 (16:37 +0000)]
Rewrite GVN's field id and field type handling.
Create a helper unit for dex insn classification and cache
dex field type (as encoded in the insn) in the MirFieldInfo.
Use this for cleanup and a few additional DCHECKs.
Change the GVN's field id to match the field lowering info
index (MIR::meta::{i,s}field_lowering_info), except where
multiple indexes refer to the same field and we use the
lowest of the applicable indexes. Use the MirMethodInfo from
MIRGraph to retrieve field type for GVN using this index.
This slightly reduces GVN compilation time and prepares for
further compilation time improvements.
Change-Id: I1b1247cdb8e8b6897254e2180f3230f10159bed5
Mathieu Chartier [Fri, 21 Nov 2014 18:15:38 +0000 (18:15 +0000)]
Merge "Fix oatdump to use OatHeader pointer size"
Mathieu Chartier [Fri, 21 Nov 2014 01:08:58 +0000 (17:08 -0800)]
Fix oatdump to use OatHeader pointer size
Bug:
18473190
Change-Id: If505b4f62105899f4f1257d3bccda3e6eb0dcd7c
(cherry picked from commit
c934e483ceabbd589422beea1fa35f5182ecfa99)
Vladimir Marko [Fri, 21 Nov 2014 13:41:32 +0000 (13:41 +0000)]
Clean up MIRGraph pass temporaries.
Create a union of pass-specific structs with temporaries
instead of shared temporaries with common names.
Change-Id: Id80d3b12c48139af1580b0839c21e07e7afd0ed5
Nicolas Geoffray [Fri, 21 Nov 2014 13:33:51 +0000 (13:33 +0000)]
Fix the computation of linear ordering.
The register allocator makes assumptions on the order, and
we ended up not computing the right one. The algorithm worked
fine when the loop header is the block branching to the exit,
but in the presence of breaks or do/while, it was incorrect.
Change-Id: Iad0a89872cd3f7b7a8b2bdf560f0d03493f93ba5
Vladimir Marko [Fri, 21 Nov 2014 10:12:32 +0000 (10:12 +0000)]
Merge "Add card mark to filled-new-array."
Andreas Gampe [Fri, 21 Nov 2014 04:24:16 +0000 (04:24 +0000)]
Merge "ART: Fix uninitialized value in arm32 assembler test"
Andreas Gampe [Fri, 21 Nov 2014 04:22:31 +0000 (20:22 -0800)]
ART: Fix uninitialized value in arm32 assembler test
The first_ field was meant to be initialized for each generation
invocation.
Change-Id: If4d36d84afe24d8ddc6bb9d25b85c764285e166a
Andreas Gampe [Fri, 21 Nov 2014 01:06:41 +0000 (01:06 +0000)]
Merge "ART: Fix arm32 assembler test."
Andreas Gampe [Fri, 21 Nov 2014 01:01:10 +0000 (17:01 -0800)]
ART: Fix arm32 assembler test.
Drop the requested architecture from armv7ve to armv7-a, but tune
for cortex-a15. That allows sdiv and udiv, but has the advantage
that it works on gcc 4.8.
Change-Id: I92cca55ce01334119d8a402103ec295c66d34ca6
Christopher Ferris [Fri, 21 Nov 2014 00:07:42 +0000 (00:07 +0000)]
Merge "Restrict FDO to only apply to target build."
Dehao Chen [Thu, 13 Nov 2014 22:13:58 +0000 (14:13 -0800)]
Restrict FDO to only apply to target build.
Change-Id: I0ef4199b34c123a17eaf2c2f18bc8a1496e03cf8
Igor Murashkin [Thu, 20 Nov 2014 22:53:58 +0000 (22:53 +0000)]
Merge "dex2oat: Pack likely-dirty objects together when generating the boot image"
Igor Murashkin [Fri, 14 Nov 2014 23:01:59 +0000 (15:01 -0800)]
dex2oat: Pack likely-dirty objects together when generating the boot image
This introduces a new algorithm into image writer which "bins" objects
by how likely they are to be dirtied at runtime. Objects in the same bin
are placed contiguously in memory (i.e. into the same page). We try to
tune the bin selection based on how clean or how dirty the object will
likely be at runtime.
As-is, this saves about 150KB per-process (private-dirty pages) and 700KB in
zygote (shared-dirty).
There is still about 800KB of objects that are clean but located in
dirty pages, so with more analysis we can tune the bin selection and get
even more memory savings.
(cherry picked from commit
3f735bd4f9d09a0f9b2b01321e4c6917879dcae6)
Bug:
17611661
Change-Id: Ia1455e4c56ffd0a36ae2a723d35b7e06502980f7
Hiroshi Yamauchi [Thu, 20 Nov 2014 22:35:20 +0000 (22:35 +0000)]
Merge "Tune rosalloc buffer sizes."
Andreas Gampe [Thu, 20 Nov 2014 22:33:45 +0000 (22:33 +0000)]
Merge "ART: Assembler_arm_test"
Andreas Gampe [Tue, 18 Nov 2014 21:46:46 +0000 (13:46 -0800)]
ART: Assembler_arm_test
Add some generic test infrastructure, and update the arm32 test.
Supports many of the GPR instructions.
Change-Id: I8a270ec377f3266d6ab486e636abb50c56b87823
Hiroshi Yamauchi [Thu, 20 Nov 2014 22:16:06 +0000 (14:16 -0800)]
Tune rosalloc buffer sizes.
We now use one-page buffers for size brackets 4-7, instead of two-page
buffers, and the first 8 size brackets for thread-local allocations,
instead of 11.
No slowdown observed with MemAllocTest, EvaluateAndApplyChanges, and
BinaryTrees.
(cherrypick commit
c4cd95fa37b7138a0fa26d07c235aa409542aecd)
Bug:
18377775
Change-Id: I311f3adf9cab660d258833b17df7e6d905f73c72
Andreas Gampe [Thu, 20 Nov 2014 21:35:36 +0000 (21:35 +0000)]
Merge "ART: Split image and non-image case in dex2oat"
Ian Rogers [Thu, 20 Nov 2014 18:41:38 +0000 (18:41 +0000)]
Merge "Re-enable DumpNativeStack."
Ian Rogers [Thu, 20 Nov 2014 18:29:00 +0000 (10:29 -0800)]
Re-enable DumpNativeStack.
Bug:
15446488
Change-Id: Icdd0b90c8abe2a361a488fc1742c6896605ddc41
Ian Rogers [Thu, 20 Nov 2014 18:22:08 +0000 (18:22 +0000)]
Merge "Revert "Revert "Revert "Unfortunately, the test still hits too many run failures.""""
Ian Rogers [Thu, 20 Nov 2014 18:21:52 +0000 (18:21 +0000)]
Revert "Revert "Revert "Unfortunately, the test still hits too many run failures."""
This reverts commit
3cfb0d3421f9e5de782d20d61b011187c7edba1c.
Change-Id: Ifc4c48c45115d5593b0d064574019017c37c1fe7
Andreas Gampe [Wed, 19 Nov 2014 20:57:42 +0000 (12:57 -0800)]
ART: Split image and non-image case in dex2oat
Explicitly split out the cases (even if there is redundancy). Have
explicit flush and close operations.
Change-Id: I5ffa4c84b4f4a1f42244d4cb7af2b5cf36739c87
Vladimir Marko [Wed, 19 Nov 2014 18:52:35 +0000 (18:52 +0000)]
Add card mark to filled-new-array.
Bug:
18032332
Change-Id: I35576b27f9115e4d0b02a11afc5e483b9e93a04a
Narayan Kamath [Thu, 20 Nov 2014 10:47:22 +0000 (10:47 +0000)]
Merge "Prune image cache if the boot marker is still in place."
Sebastien Hertz [Thu, 20 Nov 2014 10:20:15 +0000 (10:20 +0000)]
Merge "JDWP: only deoptimize when it is required"