OSDN Git Service
Aart Bik [Mon, 20 Jul 2015 21:08:59 +0000 (14:08 -0700)]
Fix broken tests.
Rationale:
(1) volatile field write/read need to apply to all
to comply with Java memory model
(2) clinit only needs only the write
(3) added conservative assumptions to memory barrier
(nothing broke, but this seems better)
Change-Id: I37787ec8f3f2c8d6166a94c57193fa4544ad3372
Aart Bik [Mon, 20 Jul 2015 17:56:35 +0000 (17:56 +0000)]
Merge "Improved side effect analysis (field/array write/read)."
Aart Bik [Tue, 14 Jul 2015 23:07:00 +0000 (16:07 -0700)]
Improved side effect analysis (field/array write/read).
Rationale:
Types (int, float etc.) and access type (field vs. array)
can be used to disambiguate write/read side-effects analysis.
This directly improves e.g. dead code elimination and licm.
Change-Id: I371f6909a3f42bda13190a03f04c4a867bde1d06
Andreas Gampe [Mon, 20 Jul 2015 15:25:55 +0000 (15:25 +0000)]
Merge "ART: Fix arm32 quick_invoke_stub CFI"
Roland Levillain [Mon, 20 Jul 2015 08:57:36 +0000 (08:57 +0000)]
Merge "Improve documentation of memory layouts in stack_map.h."
Andreas Gampe [Sat, 18 Jul 2015 03:14:50 +0000 (20:14 -0700)]
ART: Fix arm32 quick_invoke_stub CFI
Follow-up to
4808846b2a8647a448aaa05d561a4f60b190196b.
Change-Id: I534ba39a4f59eaea9cfec8e81c944675284fc427
Mathieu Chartier [Sat, 18 Jul 2015 02:11:12 +0000 (02:11 +0000)]
Merge "Get non proxy method for StackDumpVisitor"
Mathieu Chartier [Sat, 18 Jul 2015 01:46:32 +0000 (18:46 -0700)]
Get non proxy method for StackDumpVisitor
Fixes failing DCHECK.
Bug:
22553459
Change-Id: I6fe1012f9a5f8d29cb98bf25e3a279da51c5e1c0
Mathieu Chartier [Sat, 18 Jul 2015 01:49:00 +0000 (01:49 +0000)]
Merge "Change intern table to not use WaitHoldingLocks"
Igor Murashkin [Sat, 18 Jul 2015 00:40:25 +0000 (00:40 +0000)]
Merge "runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS"
Igor Murashkin [Sat, 11 Jul 2015 01:27:47 +0000 (18:27 -0700)]
runtime: Add -Xverify:softfail and ART_TEST_INTERPRETER_ACCESS_CHECKS
Use ART_TEST_INTERPRETER_ACCESS_CHECKS=true to run all the tests through
the interpreter with access checks enabled. The normal interpreter tests
do not currently enable access checks, which means that a large part of
the interpreter codebase is untested.
The verifier will force every class into a soft fail mode if
-Xverify:softfail is used, thereby ensuring that if used along with the
interpreter (-Xint) that the interpret is always in access checks mode.
This is used alongside with --compile-filter=verify-at-runtime to
prevent the AOT compiler from putting down any code.
Change-Id: I35a10ed8c43d76fa96133cf01fdad497da387200
Mathieu Chartier [Mon, 13 Jul 2015 21:35:43 +0000 (14:35 -0700)]
Change intern table to not use WaitHoldingLocks
Bug:
22423014
Change-Id: I9e16b8cb4def72fff73f1783a182877105feb7aa
Aart Bik [Fri, 17 Jul 2015 18:01:17 +0000 (18:01 +0000)]
Merge "Extended test with "cross-over arrays"."
Aart Bik [Fri, 17 Jul 2015 17:21:15 +0000 (10:21 -0700)]
Extended test with "cross-over arrays".
Rationale:
Since HIR is mostly sloppy with array references types, it is good
to extend the tests with some false invariant array references.
Bug:
22538329
Change-Id: I2ef22cbdc999c0d627590f76e7bac61984ac6ad6
Richard Uhler [Fri, 17 Jul 2015 15:22:10 +0000 (15:22 +0000)]
Merge "Fix FieldGap priority queue ordering bug."
Vladimir Marko [Fri, 17 Jul 2015 12:08:20 +0000 (12:08 +0000)]
Merge "Improve Thumb2 branch/load-literal fixup performance."
Nicolas Geoffray [Fri, 17 Jul 2015 12:03:05 +0000 (12:03 +0000)]
Merge "Revert "Revert "Use the quickened metadata to compile -QUICK opcodes."""
Vladimir Marko [Tue, 14 Jul 2015 10:58:38 +0000 (11:58 +0100)]
Improve Thumb2 branch/load-literal fixup performance.
Replace per-Fixup dependents vectors with a single array
held by the assembler and referenced by the Fixups to avoid
the cost of many allocations with the default allocator.
This improves the compilation time of the boot.oat on N5,
AOSP ToT, by about ~3% as measured by the "Compile Time"
reported with --dump-timing (~2% of the "dex2oat took...").
Change-Id: I7121cdef32d9edc6d287e602d774ffe03f530d18
Nicolas Geoffray [Fri, 17 Jul 2015 11:51:28 +0000 (11:51 +0000)]
Revert "Revert "Use the quickened metadata to compile -QUICK opcodes.""
This reverts commit
8ab9a9010f3929acbb6c671008b8885b762b01e1.
Change-Id: I1e654d5010ea2112982c3055fcb8c8f9c10e9ac8
Nicolas Geoffray [Fri, 17 Jul 2015 10:57:42 +0000 (10:57 +0000)]
Merge "Reduce space filter threshold to 128."
Nicolas Geoffray [Fri, 17 Jul 2015 10:11:09 +0000 (11:11 +0100)]
Reduce space filter threshold to 128.
In order to get closer to our code increase limit.
Bug:
21868508
Change-Id: I05f76bfd97f03bda3741eca4e6a678c536ad0702
Nicolas Geoffray [Fri, 17 Jul 2015 10:02:45 +0000 (10:02 +0000)]
Merge "Revert "Use the quickened metadata to compile -QUICK opcodes.""
Nicolas Geoffray [Fri, 17 Jul 2015 10:02:30 +0000 (10:02 +0000)]
Revert "Use the quickened metadata to compile -QUICK opcodes."
Broke sdk build. Investigating.
This reverts commit
4515a67434c9e3e1627586629a1f2aba1a99aa6a.
Change-Id: I6c1107ab626758570a59dc6bf3e4228c70a57196
Nicolas Geoffray [Fri, 17 Jul 2015 09:15:56 +0000 (09:15 +0000)]
Merge "Use the quickened metadata to compile -QUICK opcodes."
Aart Bik [Fri, 17 Jul 2015 01:15:58 +0000 (01:15 +0000)]
Merge "Test on (in)variant static and instance field arrays."
Aart Bik [Fri, 17 Jul 2015 00:40:44 +0000 (17:40 -0700)]
Test on (in)variant static and instance field arrays.
Rationale:
Ensure upcoming improved side effects analysis
results in valid optimizations only.
Bug:
22538329
Change-Id: I87e699853e914a0e42adfd1c4e4f9789781b65df
Andreas Gampe [Fri, 17 Jul 2015 00:51:11 +0000 (00:51 +0000)]
Merge "ART: Fix System.arraycopy"
Andreas Gampe [Fri, 17 Jul 2015 00:41:25 +0000 (17:41 -0700)]
ART: Fix System.arraycopy
We cannot use the same code for float+int and long+double. In debug
mode, this will fail.
Change-Id: Icf263626896a7b53e59685c474e77b4c3128ecd5
Nicolas Geoffray [Thu, 16 Jul 2015 18:12:57 +0000 (18:12 +0000)]
Merge "Disable test while investigating."
Nicolas Geoffray [Thu, 16 Jul 2015 18:11:54 +0000 (19:11 +0100)]
Disable test while investigating.
Change-Id: Iea1a5b59582d2d12aba8ca5eb5eab3db3cc9dd59
Nicolas Geoffray [Thu, 16 Jul 2015 13:58:58 +0000 (14:58 +0100)]
Use the quickened metadata to compile -QUICK opcodes.
Change-Id: I28a8d68921698bea81f54c95cc6e4c6d2c03f2b4
Roland Levillain [Thu, 16 Jul 2015 13:55:28 +0000 (13:55 +0000)]
Merge "Use (D)CHECK_ALIGNED more."
Nicolas Geoffray [Thu, 16 Jul 2015 13:42:22 +0000 (13:42 +0000)]
Merge "Make oatdump see the new vmap table generated by dextodex."
Nicolas Geoffray [Thu, 16 Jul 2015 13:15:05 +0000 (14:15 +0100)]
Make oatdump see the new vmap table generated by dextodex.
Change-Id: I48f3fb7320e39c864f8fbc478f970b18358408ec
Nicolas Geoffray [Thu, 16 Jul 2015 12:41:02 +0000 (12:41 +0000)]
Merge "ART: Boolean simplifier fix"
Vladimir Marko [Thu, 16 Jul 2015 12:39:03 +0000 (12:39 +0000)]
Merge "ART: DCE should know that array-length can throw NPE"
Serguei Katkov [Tue, 14 Jul 2015 13:04:48 +0000 (19:04 +0600)]
ART: DCE should know that array-length can throw NPE
array-length can throw NPE so it should be taking into account.
Bug:
22521944
Change-Id: I6f961560ccbbf81f57f1c597828f2ee18e2c3054
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Roland Levillain [Thu, 16 Jul 2015 10:54:44 +0000 (11:54 +0100)]
Improve documentation of memory layouts in stack_map.h.
Also shorten NumberOfDexRegisterLocationCatalogEntries to
NumberOfLocationCatalogEntries.
Change-Id: I55f8ec2960ea67e2eb6871a417bd442d0e2810fb
Serguei Katkov [Wed, 15 Jul 2015 09:32:09 +0000 (15:32 +0600)]
ART: Boolean simplifier fix
Boolean simplifier should not remove condition instruction
if it has side effects.
Change-Id: I108b69ec05a49e5543ee956ad9c691b52179cf6c
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Roland Levillain [Thu, 16 Jul 2015 09:52:26 +0000 (10:52 +0100)]
Use (D)CHECK_ALIGNED more.
Change-Id: I9d740f6a88d01e028d4ddc3e4e62b0a73ea050af
Roland Levillain [Thu, 16 Jul 2015 09:02:47 +0000 (09:02 +0000)]
Merge "Fix the documentation of all-run-test-names."
Roland Levillain [Thu, 16 Jul 2015 08:56:28 +0000 (08:56 +0000)]
Merge "Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo."
Mathieu Chartier [Thu, 16 Jul 2015 03:01:24 +0000 (03:01 +0000)]
Merge "Move MarkObject to mark_sweep.cc"
Mathieu Chartier [Thu, 16 Jul 2015 02:58:45 +0000 (19:58 -0700)]
Move MarkObject to mark_sweep.cc
Maybe fixes mac build.
Change-Id: I7c018922be8e159001498d30682435643bed1dfd
Evgenii Stepanov [Thu, 16 Jul 2015 02:54:54 +0000 (02:54 +0000)]
Merge "Enable ASan annotations in ART based on macro setting."
Evgenii Stepanov [Thu, 16 Jul 2015 00:40:14 +0000 (17:40 -0700)]
Enable ASan annotations in ART based on macro setting.
This is a quick hack to remove ASan annotations from SANITIZE_TARGET
build, because they are breaking everything - it looks like we forget
to clean redzones from a page before releasing it to the system, and
some unrelated code runs into them later.
We will add some way to control this from the build system later,
or just fix the underlying issue and re-enable by default.
Bug:
21785137
Change-Id: If79e2455e246dc39355f2758323b249ac20b6144
Mathieu Chartier [Wed, 15 Jul 2015 22:51:55 +0000 (22:51 +0000)]
Merge "Address some GC comments"
Mathieu Chartier [Wed, 15 Jul 2015 21:24:07 +0000 (14:24 -0700)]
Address some GC comments
Follow-up from:
https://android-review.googlesource.com/#/c/159650/
Change-Id: Id14f29b4ce5b70b63fcb3e74f8503ae60a3ae444
Mathieu Chartier [Wed, 15 Jul 2015 17:52:46 +0000 (17:52 +0000)]
Merge "Use SuspendAllInternal for FlipThreadRoots"
Mathieu Chartier [Wed, 15 Jul 2015 17:24:16 +0000 (10:24 -0700)]
Use SuspendAllInternal for FlipThreadRoots
Fix FlipThreadRoots to wait until all the threads are suspended by
using SuspendAllInternal. Since running threads no longer hold the
mutator lock as shared held, doing an exclusive lock will not block
if the threads are not suspended. Also implemented MarkHeapReference
which is used to preserve soft references.
Fixes CC tests.
Change-Id: I4b059238f4249cf297e21ae918becd029fe26527
Roland Levillain [Wed, 15 Jul 2015 13:09:20 +0000 (14:09 +0100)]
Fix the documentation of all-run-test-names.
Change-Id: I160f57bb2244a79e5eaf5e87b9f0ac94747adcd1
Vladimir Marko [Wed, 15 Jul 2015 17:06:39 +0000 (17:06 +0000)]
Merge "Clean up after verifier changes wrt. conflict/undefined reg."
Vladimir Marko [Wed, 15 Jul 2015 09:55:17 +0000 (10:55 +0100)]
Clean up after verifier changes wrt. conflict/undefined reg.
Remove unused path in RegType::Merge() and compare undefined
type as pointers. Reduce the number of edges to merge in
b_22331663.smali to just those that we really want to test.
Bug:
22331663
Change-Id: I16b83c4c97fd40be9dd246ef13ccda6e924eef60
Roland Levillain [Wed, 15 Jul 2015 13:30:26 +0000 (14:30 +0100)]
Use art::MemoryRegion::{Load,Store}Bits more in art::CodeInfo.
Change-Id: Id50fc029e83bf2c16bd991ea82acd3b355c29127
Richard Uhler [Tue, 14 Jul 2015 00:00:35 +0000 (17:00 -0700)]
Fix FieldGap priority queue ordering bug.
The priority queue for keeping track of gaps when packing fields in a
class object had the order reversed, giving priority to smaller gaps
instead of priority to larger gaps. This led to cases where fields
were not placed in gaps when they could be.
Bug:
22460222
Change-Id: I062e772e030c034adc227d75deed31c3322e203e
David Brazdil [Wed, 15 Jul 2015 15:22:01 +0000 (15:22 +0000)]
Merge "ART: Build SSA form when try/catch is present"
David Brazdil [Mon, 6 Jul 2015 10:48:53 +0000 (11:48 +0100)]
ART: Build SSA form when try/catch is present
This patch implements support for try/catch in the SsaBuilder.
Values of locals are propagated from throwing sites inside try
blocks to their respective catch blocks and phis ("catch phis")
are created when necessary.
Change-Id: I0736565c2c4ff3f9f0924b6e3a785a50023f875a
Nicolas Geoffray [Wed, 15 Jul 2015 09:47:00 +0000 (09:47 +0000)]
Merge "Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""""
Nicolas Geoffray [Tue, 14 Jul 2015 10:37:54 +0000 (11:37 +0100)]
Revert "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""""
This reverts commit
ed6195a514e3253576af27ea9ba13038509d29ac.
Change-Id: Icb58854301e8982147cdebe3edf2e0d9e0a63a56
Vladimir Marko [Wed, 15 Jul 2015 08:59:43 +0000 (08:59 +0000)]
Merge "Avoid unexpected conversions to ArrayRef."
Andreas Gampe [Wed, 15 Jul 2015 05:53:03 +0000 (05:53 +0000)]
Merge "ART: Fix mac build"
Andreas Gampe [Wed, 15 Jul 2015 00:57:43 +0000 (17:57 -0700)]
ART: Fix mac build
Fix Clang assembler bugs introduced in commit
3031c8da0c5009183f770b005c245f9bf2a4d01b.
Change-Id: I460c7c1b8f4380244925d248b90c88239540527a
Mathieu Chartier [Wed, 15 Jul 2015 01:02:08 +0000 (01:02 +0000)]
Merge "Clean up GC callbacks to be virtual methods"
Mathieu Chartier [Wed, 15 Jul 2015 00:20:15 +0000 (00:20 +0000)]
Merge "Change phony targets to set dalvik.vm.usejit properly"
Mathieu Chartier [Tue, 14 Jul 2015 23:59:23 +0000 (16:59 -0700)]
Change phony targets to set dalvik.vm.usejit properly
Bug:
22408082
Change-Id: I87d75902fef9d695c034c27ea4e25448c23a6924
Mathieu Chartier [Mon, 13 Jul 2015 21:35:43 +0000 (14:35 -0700)]
Clean up GC callbacks to be virtual methods
Change-Id: Ia08034a4e5931c4fcb329c3bd3c4b1f301135735
Hiroshi Yamauchi [Tue, 14 Jul 2015 20:37:17 +0000 (20:37 +0000)]
Merge "Add ART_TEST_DEBUG_GC to help with debugging gc."
Hiroshi Yamauchi [Tue, 14 Jul 2015 19:20:30 +0000 (12:20 -0700)]
Add ART_TEST_DEBUG_GC to help with debugging gc.
ART_TEST_DEBUG_GC is meant to be used to easily set the GC
configuration to the one that currently needs debugging in a
continuous test.
Bug:
19894268
Change-Id: I566e44360fc4cd47b3448e194cc8c16c9f498b7f
Vladimir Marko [Tue, 14 Jul 2015 17:58:59 +0000 (18:58 +0100)]
Avoid unexpected conversions to ArrayRef.
Make single-parameter constructors explicit, except
for the default copy constructor.
Change-Id: If7c8db643b22a4c36e244830154fc699b39c9016
Andreas Gampe [Tue, 14 Jul 2015 18:26:04 +0000 (18:26 +0000)]
Merge "ART: Remove art_quick_invoke_interface_trampoline"
Andreas Gampe [Tue, 14 Jul 2015 03:11:06 +0000 (20:11 -0700)]
ART: Remove art_quick_invoke_interface_trampoline
The function has only been used by the IMT conflict resolution
trampoline for a while. Merge the two, which saves a branch.
Change-Id: I2f8c9204adf839ddc5459cc04e70d98f858110a1
Mathieu Chartier [Tue, 14 Jul 2015 17:10:32 +0000 (17:10 +0000)]
Merge "Fix mac build"
Hiroshi Yamauchi [Tue, 14 Jul 2015 17:08:50 +0000 (17:08 +0000)]
Merge "Add an option to run art tests with strace."
Mathieu Chartier [Tue, 14 Jul 2015 17:05:45 +0000 (10:05 -0700)]
Fix mac build
Untested.
Change-Id: I1b7803f2fdcd7f509614aa9d3dce414e50a6119d
Roland Levillain [Tue, 14 Jul 2015 09:25:42 +0000 (09:25 +0000)]
Merge "Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing."""
Mathieu Chartier [Tue, 14 Jul 2015 01:47:39 +0000 (01:47 +0000)]
Merge "ART: JNI thread state transition optimization"
Evgenii Stepanov [Tue, 14 Jul 2015 01:28:04 +0000 (01:28 +0000)]
Merge "Disable ASan on Thread::InstallImplicitProtection."
Evgenii Stepanov [Mon, 13 Jul 2015 17:41:57 +0000 (10:41 -0700)]
Disable ASan on Thread::InstallImplicitProtection.
This function reads random stack locations and confuses ASan.
Bug:
21785137
Change-Id: Iaaee6032a651618e5275ab46e6e8f886df60a5d0
Evgenii Stepanov [Tue, 14 Jul 2015 00:47:06 +0000 (00:47 +0000)]
Merge "Generalize Valgrind annotations in ART to support ASan."
Evgenii Stepanov [Wed, 20 May 2015 19:30:59 +0000 (12:30 -0700)]
Generalize Valgrind annotations in ART to support ASan.
Also add redzones around non-fixed mem_map(s).
Also extend -Wframe-larger-than limit to enable arm64 ASan build.
Change-Id: Ie572481a25fead59fc8978d2c317a33ac418516c
Hiroshi Yamauchi [Tue, 14 Jul 2015 00:11:22 +0000 (17:11 -0700)]
Add an option to run art tests with strace.
Bug:
19894268
Change-Id: I0a315a30e4e7d6d497b21205dc2a2b18b2170328
Yu Li [Mon, 29 Jun 2015 02:50:03 +0000 (10:50 +0800)]
ART: JNI thread state transition optimization
This patch improves the JNI performance by removing the explicit acquiring and
releasing the mutator lock when a thread state transits between suspended and
runnable states.
The functions responsible for changing the state were found to be the costliest
part of the JNI. Originally, a thread needs to acquire a shared mutator lock by
a CAS instruction when entering the runnable state and also needs to release
the lock by a CAS when entering the native state from runnable. This patch
removes these CAS operations when a thread state transits between suspended and
runnable. A thread in the runnable state is considered to have shared ownership
of the mutator lock and therefore transitions in and out of the runnable state
have associated implication on the mutator lock ownership. Meanwhile, a barrier
is added to control suspending all threads from running.
JNI transition overhead was reduced by 25% on IA platform and by 17% on ARM
platform by this patch, while it has little impact on GC pause time (measured
with "suspend all histogram").
Change-Id: Icee95d8ffff1bbfc95309a41cc48836536fec689
Signed-off-by: Yu, Li <yu.l.li@intel.com>
Signed-off-by: Haitao, Feng <haitao.feng@intel.com>
Signed-off-by: Lei, Li <lei.l.li@intel.com>
Hiroshi Yamauchi [Mon, 13 Jul 2015 22:51:39 +0000 (22:51 +0000)]
Merge "Thread-local mark stacks for the CC collector."
Hiroshi Yamauchi [Wed, 17 Jun 2015 01:29:23 +0000 (18:29 -0700)]
Thread-local mark stacks for the CC collector.
Thread-local mark stacks are assigned to mutators where they push
references in read barriers to reduce the (CAS) synchronization cost
in a global mark stack/queue.
We step through three mark stack modes (thread-local, shared,
GC-exclusive) and use per-thread flags to disable/enable system weak
accesses (only for the CC collector) instead of the existing global
one to safely perform the marking phase. The reasons are 1)
thread-local mark stacks for mutators need to be revoked using a
checkpoint to avoid races (incorrectly leaving a reference on mark
stacks) when terminating marking, and 2) we can’t use a checkpoint
while system weak accesses are disabled (or a deadlock would
happen). More details are described in the code comments.
Performance improvements in Ritzperf EAAC: a ~2.8% improvement
(13290->12918) in run time and a ~23% improvement (51.6s->39.8s) in
the total GC time on N5.
Bug:
12687968
Change-Id: I5d234d7e48bf115cd773d38bdb62ad24ce9116c7
Christopher Ferris [Mon, 13 Jul 2015 20:39:09 +0000 (20:39 +0000)]
Merge "Fix cfi information for x86."
Christopher Ferris [Mon, 13 Jul 2015 19:21:00 +0000 (12:21 -0700)]
Fix cfi information for x86.
With this change, I can now enable debug malloc fully.
Bug:
19071092
(cherry picked from commit
9f66589f3ca6055501c99333a19b69349b8f8568)
Change-Id: I04d477d0294d67c5e3a9d9147889bdffb9086bd4
Andreas Gampe [Mon, 13 Jul 2015 19:16:46 +0000 (19:16 +0000)]
Merge "ART: Fix DexFileVerifier try_items OoO validation"
Nicolas Geoffray [Mon, 13 Jul 2015 17:02:42 +0000 (17:02 +0000)]
Merge "Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""""
Nicolas Geoffray [Mon, 13 Jul 2015 17:02:30 +0000 (17:02 +0000)]
Revert "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""
Breaks again in some configurations I don't fully understand yet.
This reverts commit
f075879649686e59b7a9065c5a061dbfdcdfbecc.
Change-Id: I0ac5533825e40b06462ee69b2740e4a96fb5c582
Anestis Bechtsoudis [Sun, 12 Jul 2015 17:51:35 +0000 (12:51 -0500)]
ART: Fix DexFileVerifier try_items OoO validation
DexFileVerifier::CheckIntraCodeItem() implements an out of order
validation for CodeItem try_items. try_items_size is validated for
sanity via CheckListSize() at dex_file_verifier.cc:800, although
handlers_size ULEB128 read (offset calculated from tries_size_) occurs
before at lines 797-798.
An out of bounds (wild) read will occur for invalid try_items_size at
parsed DEX file.
handlers_size read has been moved after try_items validation to resolve
this OoO issue.
Bug:
21307613
Bug: https://code.google.com/p/android/issues/detail?id=178592
Change-Id: I94d00819ee9a465f57ba9a1fdfdd356979e35ed7
Roland Levillain [Mon, 13 Jul 2015 15:54:55 +0000 (15:54 +0000)]
Revert "Revert "Fuse long and FP compare & condition on ARM64 in Optimizing.""
This reverts commit
bed50d2430e02a3d6b94972e8ab4873d7b3b8be0.
Bug:
21120453
Change-Id: I5e4aab2703966d9324ebde25bd8b83056fdb10ed
Nicolas Geoffray [Mon, 13 Jul 2015 15:54:02 +0000 (15:54 +0000)]
Merge "Fix baseline for arm64."
Nicolas Geoffray [Mon, 13 Jul 2015 14:55:26 +0000 (15:55 +0100)]
Fix baseline for arm64.
A HFakeString acts like a null constant. Other backends have
different code paths for handling it, so it was only arm64 failing.
Change-Id: Iba44d87c8d114b916404db0302574c7059143010
Vladimir Marko [Mon, 13 Jul 2015 15:42:00 +0000 (15:42 +0000)]
Merge "ART: Don't nest indenters in oatdump."
Andreas Gampe [Mon, 13 Jul 2015 15:35:27 +0000 (15:35 +0000)]
Merge "ART: Fix arm32 assembly stub CFI"
Nicolas Geoffray [Mon, 13 Jul 2015 15:17:37 +0000 (15:17 +0000)]
Merge "Revert "Revert "Make dex2dex return a CompiledMethod after quickening."""
Roland Levillain [Mon, 13 Jul 2015 14:06:20 +0000 (14:06 +0000)]
Merge "Re-enable run-test 449-checker-bce on MIPS64."
Nicolas Geoffray [Mon, 13 Jul 2015 13:56:50 +0000 (13:56 +0000)]
Merge "Remove the --compiler-backend option from script."
Nicolas Geoffray [Mon, 13 Jul 2015 11:56:00 +0000 (11:56 +0000)]
Revert "Revert "Make dex2dex return a CompiledMethod after quickening.""
This reverts commit
327c5ed30a1f016ef3e1bb26ea7b4abd34eb63b9.
Change-Id: I0dc5d92e5d1ef98830fbd3c40ec59a93f9e0422d
Nicolas Geoffray [Mon, 13 Jul 2015 13:35:17 +0000 (14:35 +0100)]
Remove the --compiler-backend option from script.
Optimizing is now the default for apps.
Change-Id: I15617b881ac7a5a6fe7a281bfa61446bc60ef65d