OSDN Git Service
Brian Carlstrom [Sat, 4 Oct 2014 00:11:32 +0000 (00:11 +0000)]
Merge "Add test for getDeclaredClasses of with missing class"
Brian Carlstrom [Fri, 3 Oct 2014 17:28:47 +0000 (10:28 -0700)]
Add test for getDeclaredClasses of with missing class
Bug:
17782530
Change-Id: I399621344c3835226c9df9678217fca62cbd5c92
buzbee [Fri, 3 Oct 2014 20:51:09 +0000 (20:51 +0000)]
Merge "Quick compiler: Fix ambiguous LoadValue()"
buzbee [Fri, 3 Oct 2014 20:14:17 +0000 (13:14 -0700)]
Quick compiler: Fix ambiguous LoadValue()
Internal b/
17790197 & hat tip to Stephen Kyle
The following custom-edited dex program demonstrated
incorrect code generation caused by type confusion.
In the example, the constant held in v0 is used in both
float and int contexts, and the register class gets
confused at the if-eq.
.method private static getInt()I
.registers 4
const/16 v0, 100
const/4 v1, 1
const/4 v2, 7
:loop
if-eq v2, v0, :done
add-int v2, v2, v1
goto :loop
:done
add-float v3, v0, v1
return v2
.end method
The bug was introduced in c/96499, "Quick compiler: reference cleanup"
That CL created a convenience variant of LoadValue which selected the
target register type based on the type of the RegLocation. It should
not have done so. The type of a RegLocation is the compiler's best
guess of the Dalvik type - and Dalvik allows constants to be used
in multiple type contexts. All code generation utilities must specify
desired register class based on the capabilities of the instructions
to be emitted. In the failing case, OpCmpImmBranch (and
GenCompareZeroAndBranch) will be using core registers, so the
LoadValue must specify either kCoreReg or kRefReg.
The CL deletes the dangerous LoadValue() variant.
Change-Id: Ie4ec6e51b19676dbbb9628c72c8b3473a419e7ec
Vladimir Marko [Fri, 3 Oct 2014 17:08:04 +0000 (17:08 +0000)]
Merge "AArch64: oat patches should be 32-bit ints."
Nicolas Geoffray [Fri, 3 Oct 2014 11:00:56 +0000 (11:00 +0000)]
Merge "Revert "Fix OOM throwing if it happens in finalizer reference""
Nicolas Geoffray [Fri, 3 Oct 2014 10:54:19 +0000 (10:54 +0000)]
Revert "Fix OOM throwing if it happens in finalizer reference"
This reverts commit
6d7729d6ae8b2ac3800e92092d61390ce4e3b6d7.
Change-Id: I3e863b7372657ee85b0e48029c3a3e2b4ba75a7c
Matteo Franchin [Mon, 8 Sep 2014 17:29:24 +0000 (18:29 +0100)]
AArch64: oat patches should be 32-bit ints.
This makes the arm64 backend consistent with the behaviour of the code
in oat_writer.cc and in the patchoat tool.
It also reduces the size of boot.oat by 1.6% (aosp_arm64-eng build).
Change-Id: Ia0b96737159c08955cd7b776ee396ff578cd58f6
Nicolas Geoffray [Fri, 3 Oct 2014 10:08:30 +0000 (10:08 +0000)]
Merge "Revert "Rename registers in arm64.""
Nicolas Geoffray [Fri, 3 Oct 2014 10:07:42 +0000 (10:07 +0000)]
Revert "Rename registers in arm64."
This reverts commit
11daa0adbb30f341ccbdec64a2d43d8eeb111288.
Change-Id: I2ce0879dce8fbf5512649d0d9c3a2c189c23dd5f
Vladimir Marko [Fri, 3 Oct 2014 10:07:38 +0000 (10:07 +0000)]
Merge "Remove all uses of MIR_INLINED."
Nicolas Geoffray [Fri, 3 Oct 2014 09:44:25 +0000 (09:44 +0000)]
Merge "Rename registers in arm64."
Hiroshi Yamauchi [Fri, 3 Oct 2014 00:32:48 +0000 (00:32 +0000)]
Merge "Fix OOM throwing if it happens in finalizer reference"
Ian Rogers [Fri, 3 Oct 2014 00:10:36 +0000 (00:10 +0000)]
Merge "Fix test-art-(host|target)-run-test(32|64) targets."
Ian Rogers [Thu, 2 Oct 2014 23:35:52 +0000 (16:35 -0700)]
Fix test-art-(host|target)-run-test(32|64) targets.
Fix extra hyphen and missing target.
Change-Id: Ib7f87172693507ff693bcebe2629e5dfd64b1b3a
Hiroshi Yamauchi [Thu, 2 Oct 2014 22:58:32 +0000 (22:58 +0000)]
Merge "Fix x86_64 assembler LoadRef to use movl."
Ian Rogers [Thu, 2 Oct 2014 21:51:25 +0000 (21:51 +0000)]
Merge "Colorize warnings when building with clang."
Calin Juravle [Thu, 2 Oct 2014 17:28:21 +0000 (17:28 +0000)]
Merge "More native bridge tests"
Ian Rogers [Thu, 2 Oct 2014 16:41:44 +0000 (09:41 -0700)]
Colorize warnings when building with clang.
Change-Id: Icbb26779852d2fc2344bac597d43c4301646ac90
Vladimir Marko [Thu, 2 Oct 2014 16:24:53 +0000 (17:24 +0100)]
Remove all uses of MIR_INLINED.
They are not needed since
https://android-review.googlesource.com/103763
Change-Id: I1dffe5e219db615be9d9aaceb72ad9bd7c69b58e
Vladimir Marko [Thu, 2 Oct 2014 09:58:10 +0000 (09:58 +0000)]
Merge "Fix build_all_egdes in MIRGraph::ProcessCanThrow()."
Dmitry Petrochenko [Wed, 1 Oct 2014 06:31:58 +0000 (13:31 +0700)]
Fix OOM throwing if it happens in finalizer reference
The Class::Alloc should return null if OOM happened during
adding finalizer reference, even if finalizable object is
allocated succesfully.
Change-Id: I66c1cdda50228bf1302839785ce4d4889b676f5b
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Calin Juravle [Wed, 1 Oct 2014 17:57:29 +0000 (18:57 +0100)]
More native bridge tests
Test for os.arch.
Bug:
17713104
(cherry picked from commit
ba16b0796aafb6ad4c96c5e10b713d73edc0b857)
Change-Id: I45bde49c778f176cdfc779b211053a2747adb3fc
Vladimir Marko [Wed, 1 Oct 2014 17:45:38 +0000 (17:45 +0000)]
Merge "Quick: Fix LVN/GVN handling of acquire operations."
Vladimir Marko [Wed, 1 Oct 2014 16:38:02 +0000 (17:38 +0100)]
Fix build_all_egdes in MIRGraph::ProcessCanThrow().
Calculate build_all_edges only after in_try_block has
received its final value. This was a minor omission in
https://android-review.googlesource.com/100505
Change-Id: Icc9189d2092bbd29fcf1706e4d6074a6d915cebe
Vladimir Marko [Mon, 29 Sep 2014 16:58:10 +0000 (17:58 +0100)]
Quick: Fix LVN/GVN handling of acquire operations.
Acquire operations, i.e. MONITOR_ENTER and volatile GETs,
change the thread's view of the memory, so subsequent loads
must get new value names in LVN/GVN. Release operations do
not affect this thread's view of the memory, they the only
push the modifications for other threads to see.
Bug:
17689750
Change-Id: I9442d89b1d2c5252b99b02851b71bb85f871d734
Nicolas Geoffray [Wed, 1 Oct 2014 14:59:51 +0000 (14:59 +0000)]
Merge "Revert "Introduce a class to implement optimization passes.""
Nicolas Geoffray [Wed, 1 Oct 2014 14:59:23 +0000 (14:59 +0000)]
Revert "Introduce a class to implement optimization passes."
This reverts commit
bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.
Change-Id: I0a483446666c9c24c45925a5fc199debdefd8b3e
Roland Levillain [Wed, 1 Oct 2014 14:38:10 +0000 (14:38 +0000)]
Merge "Introduce a class to implement optimization passes."
Roland Levillain [Tue, 30 Sep 2014 15:15:14 +0000 (16:15 +0100)]
Introduce a class to implement optimization passes.
- Add art::HOptimization.
- Rename art::ConstantPropagation to art::HConstantFolding in
compiler/optimizing/constant_folding.h to avoid name
clashes with a class of the same name in
compiler/dex/post_opt_passes.h.
- Rename art::DeadCodeElimination to
art::HDeadCodeElimination for consistency reasons.
- Have art::HDeadCodeElimination and art::HConstantFolding
derive from art::HOptimization.
- Start to use these optimizations in
art:OptimizingCompiler::TryCompile.
Change-Id: Iaab350c122d87b2333b3760312b15c0592d7e010
Nicolas Geoffray [Wed, 1 Oct 2014 09:49:08 +0000 (10:49 +0100)]
Rename registers in arm64.
Change-Id: I4c3ed96be2a7efaa674486515c84c689f382eceb
Brian Carlstrom [Wed, 1 Oct 2014 05:06:24 +0000 (05:06 +0000)]
Merge "Add VMRuntime.isBootClassPathOnDisk"
Brian Carlstrom [Mon, 29 Sep 2014 18:22:54 +0000 (11:22 -0700)]
Add VMRuntime.isBootClassPathOnDisk
Bug:
17679443
(cherry picked from commit
95a935415d44903b28326424beb4db5c013ef089)
Change-Id: Iba40291dead3f0b6715903c986370fd0cf1e41e1
Ian Rogers [Tue, 30 Sep 2014 23:10:02 +0000 (23:10 +0000)]
Merge "Enable -Wunreachable-code"
Ian Rogers [Tue, 30 Sep 2014 22:43:59 +0000 (15:43 -0700)]
Enable -Wunreachable-code
Caught bugs in DeoptimizeStackVisitor and assemble_x86 SIB encoding.
Add UNREACHABLE macro to document code expected to be unreachable.
Bug:
17731047
Change-Id: I2e363fe5b38a1246354d98be18c902a6031c0b9e
Bill Buzbee [Tue, 30 Sep 2014 19:53:21 +0000 (19:53 +0000)]
Merge "ART: Fix GenReduceVector and GenSetVector"
Bill Buzbee [Tue, 30 Sep 2014 19:46:09 +0000 (19:46 +0000)]
Merge "ART: Reset bb id to the last list mir"
Hiroshi Yamauchi [Tue, 30 Sep 2014 17:56:14 +0000 (10:56 -0700)]
Fix x86_64 assembler LoadRef to use movl.
As references are 32-bit, we should use movl instead movq.
Change-Id: Iffefbb9d86d5f40375f73994fd481f9bd28499b2
Bill Buzbee [Tue, 30 Sep 2014 19:17:28 +0000 (19:17 +0000)]
Merge "ART: Allow overridable calculation of basic block dataflow"
Bill Buzbee [Tue, 30 Sep 2014 19:16:40 +0000 (19:16 +0000)]
Merge "Update maximum number of reachable blocks in last step"
Razvan A Lupusoru [Mon, 29 Sep 2014 18:59:12 +0000 (11:59 -0700)]
ART: Allow overridable calculation of basic block dataflow
Currently dataflow information is not calculated for catch blocks in order to
reduce overhead. However, this makes assumption that the lack of this
information is only preventing local optimizations to catch block. But in
reality this problematic for global optimizations.
However, since no optimizations need complete information for now, simply
leave logic same but factor it out in separate method.
Change-Id: I5c13344c18409bd172a5d9b07577b4a1353cc733
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Hiroshi Yamauchi [Tue, 30 Sep 2014 17:11:27 +0000 (17:11 +0000)]
Merge "Get heap poisoning working in 64-bit."
Nicolas Geoffray [Tue, 30 Sep 2014 15:52:05 +0000 (15:52 +0000)]
Merge "Disable ThreadStress."
Andreas Gampe [Tue, 30 Sep 2014 15:40:37 +0000 (15:40 +0000)]
Merge "ART: Fix typo"
Andreas Gampe [Tue, 30 Sep 2014 15:39:37 +0000 (08:39 -0700)]
ART: Fix typo
Fixes a miss-translation in the pedantic change.
Change-Id: Ibdce896bf3667e06f10d60f160803451096b08ba
Andreas Gampe [Tue, 30 Sep 2014 14:47:23 +0000 (14:47 +0000)]
Merge "ART: Fix some -Wpedantic errors"
Nicolas Geoffray [Tue, 30 Sep 2014 14:05:13 +0000 (15:05 +0100)]
Disable ThreadStress.
Change-Id: Ieead69051687a8cc4687ab0c8c8879d780da01f3
Vladimir Marko [Tue, 30 Sep 2014 13:00:02 +0000 (13:00 +0000)]
Merge "AArch64: address some outstanding TODOs."
Nicolas Geoffray [Tue, 30 Sep 2014 12:59:42 +0000 (12:59 +0000)]
Merge "Remove selinux dependency."
Nicolas Geoffray [Tue, 30 Sep 2014 12:53:06 +0000 (12:53 +0000)]
Merge "Improve detection of lifetime holes."
Nicolas Geoffray [Mon, 29 Sep 2014 11:00:40 +0000 (12:00 +0100)]
Improve detection of lifetime holes.
The check concluding that the next use was in a successor
was too conservative: two blocks following each other
in terms of liveness are not necessarily predecessor/sucessor.
Change-Id: Ideec98046c812aa5fb63781141b5fde24c706d6d
Nicolas Geoffray [Tue, 30 Sep 2014 12:48:16 +0000 (13:48 +0100)]
Remove selinux dependency.
Seems that the dependency was for the zygote code, which is
now in frameworks.
Change-Id: Id186d6ff794730e710628f275b258be499950051
Sebastien Hertz [Tue, 30 Sep 2014 12:06:19 +0000 (12:06 +0000)]
Merge "Revert "Enable computed goto interpreter on the host""
Sebastien Hertz [Tue, 30 Sep 2014 10:00:11 +0000 (12:00 +0200)]
Revert "Enable computed goto interpreter on the host"
This reverts commit
66d9bdb94f21106aaaa31a8fd686098672075e04.
Bug:
17716550
Change-Id: Ib404242c86e96e8edf019a2dcc14f0f8294b79e8
Matteo Franchin [Tue, 15 Jul 2014 14:20:27 +0000 (15:20 +0100)]
AArch64: address some outstanding TODOs.
Fix comments in arm64_lir.h. Rename Arm* to A64* and replace FWIDE,
FUNWIDE, ... with WIDE, UNWIDE, ...
Change-Id: I4900902e28463ea5e00e34ea40ddfc15704c0bfa
Ian Rogers [Tue, 30 Sep 2014 06:15:29 +0000 (06:15 +0000)]
Merge "ART: Fix movnti assembler"
Andreas Gampe [Tue, 30 Sep 2014 03:07:43 +0000 (20:07 -0700)]
ART: Fix some -Wpedantic errors
Remove extra semicolons.
Dollar signs in C++ identifiers are an extension.
Named variadic macros are an extension.
Binary literals are a C++14 feature.
Enum re-declarations are not allowed.
Overflow.
Change-Id: I7d16b2217b2ef2959ca69de84eaecc754517714a
Hiroshi Yamauchi [Fri, 26 Sep 2014 21:55:38 +0000 (14:55 -0700)]
Get heap poisoning working in 64-bit.
This adds the reference negate code in arm64 and x86_64 that's used by
the jni compiler.
Bug:
12687968
Bug:
8367515
Change-Id: I28a44bcead1ee613866645620b4eaf54fad6a3aa
Andreas Gampe [Mon, 29 Sep 2014 18:40:54 +0000 (18:40 +0000)]
Merge "ART: Better IllegalAccessException message"
Andreas Gampe [Tue, 23 Sep 2014 17:38:30 +0000 (10:38 -0700)]
ART: Better IllegalAccessException message
Bug:
17618578
Bug:
17614623
Change-Id: I0e3f15e676acd6ed5844fc86e136f75cc335372d
Ian Rogers [Mon, 29 Sep 2014 18:31:02 +0000 (18:31 +0000)]
Merge "ART: Deprecate CompilationUnit's code_item"
Andreas Gampe [Mon, 29 Sep 2014 18:29:17 +0000 (18:29 +0000)]
Merge "ART: More verifier error output"
Andreas Gampe [Mon, 29 Sep 2014 18:29:04 +0000 (18:29 +0000)]
Merge "ART: Do a pre-pass for monitor_enter dex pc search"
Ian Rogers [Mon, 29 Sep 2014 18:24:23 +0000 (18:24 +0000)]
Merge "Reduce scope of MIR analysis attributes."
Razvan A Lupusoru [Thu, 11 Sep 2014 22:24:59 +0000 (15:24 -0700)]
ART: Deprecate CompilationUnit's code_item
The code_item field is tracked in both the CompilationUnit and the MIRGraph.
However, the existence of this field in CompilationUnit promotes bad practice
because it creates assumption only a single code_item can be part of method.
This patch deprecates this field and updates MIRGraph methods to make it
easy to get same information as before. Part of this is the update to
interface GetNumDalvikInsn which ensures to count all code_items in MIRGraph.
Some dead code was also removed because it was not friendly to these updates.
Change-Id: Ie979be73cc56350321506cfea58f06d688a7fe99
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Ian Rogers [Mon, 29 Sep 2014 17:49:11 +0000 (10:49 -0700)]
Reduce scope of MIR analysis attributes.
MIR analaysis attributes are only used in MIRGraph::AnalyzeBlock. Reduce the
scope to just the file that defines that function.
Reduce the size of the attributes from int32 to int16.
Remove the use of #defines in favor of enums.
Change-Id: I45ba3aa08beae67240507917b584d537a029838e
Razvan A Lupusoru [Tue, 23 Sep 2014 21:54:32 +0000 (14:54 -0700)]
ART: Fix movnti assembler
Movnti was receiving rex prefix before its opcode. Additionally,
the 64-bit version was missing the rex.w prefix.
Change-Id: Ie5c3bbe109765a0b990cafeeea1ee30329daabd0
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Andreas Gampe [Tue, 16 Sep 2014 02:02:30 +0000 (19:02 -0700)]
ART: More verifier error output
Add some debug output on verifier abort.
Change-Id: I4a84ff1d8e1bad689addca287a989639e7111b97
Andreas Gampe [Thu, 18 Sep 2014 20:16:38 +0000 (13:16 -0700)]
ART: Do a pre-pass for monitor_enter dex pc search
In case the method does not have any monitor_enter instructions,
it is unnecessary to run the full verifier. Speeds up stack dumps
and works around b/
17514582.
Bug:
17514582
Change-Id: I5201bfbb9fb6cad49596b4c72e71983b58d9f20c
Nicolas Geoffray [Mon, 29 Sep 2014 10:59:34 +0000 (10:59 +0000)]
Merge "Fix a bug in the insertion of parallel move."
Nicolas Geoffray [Mon, 29 Sep 2014 09:33:25 +0000 (10:33 +0100)]
Fix a bug in the insertion of parallel move.
To make sure we do not connect interval siblings in the
same parallel move, I added a new field in MoveOperands
that tells for which instruction this move is for.
A parallel move should not contains moves for the same instructions.
The checks revealed a bug when connecting siblings, where
we would choose the wrong parallel move.
Change-Id: I70f27ec120886745c187071453c78da4c47c1dd2
Nicolas Geoffray [Mon, 29 Sep 2014 08:47:31 +0000 (08:47 +0000)]
Merge "Fix test now that instructions can die at instruction entry."
Nicolas Geoffray [Mon, 29 Sep 2014 08:46:03 +0000 (09:46 +0100)]
Fix test now that instructions can die at instruction entry.
Change-Id: I816279c55d12de8e69ac0b6c88730bd676c03335
Nicolas Geoffray [Sat, 27 Sep 2014 11:56:12 +0000 (11:56 +0000)]
Merge "Register allocator: refine instructions liveness."
Nicolas Geoffray [Thu, 25 Sep 2014 13:39:26 +0000 (14:39 +0100)]
Register allocator: refine instructions liveness.
Add support for instructions that die at the beginning
of another instruction. Before, an instruction needed
to stay alive during the instruction, so the register
allocator was not able not reuse the register.
Change-Id: I5f11a80b0a20778227229eb797816edcc6365297
Mathieu Chartier [Sat, 27 Sep 2014 02:55:11 +0000 (02:55 +0000)]
Merge "Optimize get/set reflection performance"
Mathieu Chartier [Fri, 26 Sep 2014 21:32:37 +0000 (14:32 -0700)]
Optimize get/set reflection performance
Speedups mostly from reducing how often access checks are needed,
and adding more inlining, and adding templates.
Field_getInt from ~850ns -> 350ns.
Field_setInt from ~900ns -> 370ns.
Bug:
14063288
(cherry picked from commit
ffc788cb7b5b9f53734d7bb8af2d5e45d885546b)
Change-Id: I2441581ff3478c6ae43b6aa49939ff3f07555ec8
Mathieu Chartier [Fri, 26 Sep 2014 23:19:48 +0000 (23:19 +0000)]
Merge "Fix broken runtime SetStatsEnabled logic"
Mathieu Chartier [Fri, 26 Sep 2014 00:03:12 +0000 (17:03 -0700)]
Fix broken runtime SetStatsEnabled logic
Previously, Runtime::SetStatsEnabled wouldn't take stats_enabled_
into account when deciding whether or not to increment / decrement
teh stats enabled counter. This resulted in counter underflows and
other errors which caused some CTS tests to fail.
Also added some locking to prevent race conditions.
Bug:
17360878
(cherry picked from commit
a98ffd745bbecb2e84a492194950c0b94966546b)
Change-Id: I21d241a58d35bd6a607aa2305c6da81720bd0886
Ian Rogers [Fri, 26 Sep 2014 23:01:45 +0000 (23:01 +0000)]
Merge "Fix make test exclusion bugs."
Ian Rogers [Fri, 26 Sep 2014 22:55:25 +0000 (15:55 -0700)]
Fix make test exclusion bugs.
Change-Id: I439c3670a01096355c50774c628d6b0f6cb6c397
Ian Rogers [Fri, 26 Sep 2014 22:47:47 +0000 (22:47 +0000)]
Merge "Only include test targets if test-art* or build-art* is being built."
Ian Rogers [Fri, 26 Sep 2014 22:31:20 +0000 (15:31 -0700)]
Only include test targets if test-art* or build-art* is being built.
Change-Id: I229ba2a77d993b2c14acf9a76e102ef76b0aeba6
Mathieu Chartier [Fri, 26 Sep 2014 19:59:52 +0000 (19:59 +0000)]
Merge "Change heap base address"
Mathieu Chartier [Fri, 26 Sep 2014 18:37:42 +0000 (11:37 -0700)]
Change heap base address
Moved to 300 MB to allow room for other people who wish to use the
low 1 GB.
Bug:
17671634
(cherry picked from commit
23fb122b57c52ab1db98708a4e15765b46b26405)
Change-Id: Icb2784fc92cb5c46edb6e3a9de2d8383e012a07c
Hiroshi Yamauchi [Fri, 26 Sep 2014 18:36:01 +0000 (18:36 +0000)]
Merge "Fix verifier crash in GetQuickFieldAccess()."
Hiroshi Yamauchi [Fri, 26 Sep 2014 17:43:59 +0000 (10:43 -0700)]
Fix verifier crash in GetQuickFieldAccess().
Bug:
17671806
Change-Id: Ifb603f6f55a94826d656a4c73a7e328d74f6dac9
Udayan Banerji [Fri, 26 Sep 2014 17:41:47 +0000 (10:41 -0700)]
ART: Fix GenReduceVector and GenSetVector
For GenReduceVector:
We now correctly load non-wide values for non-wide destination registers,
and generate reg-reg and reg-mem forms of pextr correctly.
For GenSetVector:
We use the correct opcode from loading into an xmm from a 64-bit GPR
Change-Id: I0a01d1f0b12b32a0dee8f79a0139ffcf6d6cb4d5
Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
Ian Rogers [Fri, 26 Sep 2014 16:57:30 +0000 (16:57 +0000)]
Merge "ART Runtime: Add movw $xx,yy fault handling"
Ian Rogers [Fri, 26 Sep 2014 16:53:58 +0000 (16:53 +0000)]
Merge "Elimination of redundant instructuion"
Ian Rogers [Fri, 26 Sep 2014 16:43:28 +0000 (16:43 +0000)]
Merge "Fix CallStaticVoidMethodA for testEverything"
Ian Rogers [Fri, 26 Sep 2014 16:15:00 +0000 (16:15 +0000)]
Merge "Fix some more pedantic compiler warnings."
Marcus Oakland [Wed, 24 Sep 2014 14:23:06 +0000 (15:23 +0100)]
Fix CallStaticVoidMethodA for testEverything
The android.jni.cts.JniCTest#testEverything and
android.jni.cts.JniCppTest#testEverything CTS test were failing
because of a SIGABRT caused by a call to ScopedCheck::AbortF
from ScopedCheck::CheckInstance when CheckJNI::CallStaticVoidMethodA
was invoked. This was due to the CheckJNI::CallMethodA method being
called with the jobject obj parameter being passed jclass c, and the
jclass c parameter being passed nullptr. This problem was rectified
by swapping these two parameters, and the CTS tests then passed.
Change-Id: I025cfd85ab55eb3eadb287b56846d9d42f5b7e5e
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Andreas Gampe [Fri, 26 Sep 2014 07:17:36 +0000 (07:17 +0000)]
Merge "ART: Fix mac build"
Andreas Gampe [Fri, 26 Sep 2014 06:13:47 +0000 (23:13 -0700)]
ART: Fix mac build
Change-Id: I5821cf4d5b8f4142912c9cd3524a6aaa4b4a397c
Ian Rogers [Fri, 26 Sep 2014 00:36:39 +0000 (17:36 -0700)]
Fix some more pedantic compiler warnings.
Argument name shadows field name.
Lack of case statements for kMips64.
Change-Id: Ib3ca16f79a4d44ae80ef32f22cc79cbe9527f4f1
Ian Rogers [Thu, 25 Sep 2014 23:53:21 +0000 (23:53 +0000)]
Merge "Fix Class::IsInSamePackage to not read beyond the end of a StringPiece."
Ian Rogers [Thu, 25 Sep 2014 22:35:37 +0000 (15:35 -0700)]
Fix Class::IsInSamePackage to not read beyond the end of a StringPiece.
Fix length of string piece to be size_type rather than int because expecting
negatively sized strings is a bad idea and we should use unsigned types to
defensively guard against mistakes.
Remove max_size and capacity since the return type is inconsistent between
Google and the STL, and we don't need the functions.
Add a bound check in libartd to operator[] accesses.
Change-Id: I1b87a03d8fbd95e7dbb106745e304d1083898075
Hiroshi Yamauchi [Thu, 25 Sep 2014 22:59:28 +0000 (22:59 +0000)]
Merge "Some optimizations for the array alloc path."
Hiroshi Yamauchi [Thu, 25 Sep 2014 18:46:46 +0000 (11:46 -0700)]
Some optimizations for the array alloc path.
- Force Array::Alloc() to be inlined.
- Simplify the array size overflow check.
- Turn fill_usable into a template parameter.
- Remove a branch in Array::DataOffset() and avoid
Primitive::ComponentSize(), which has a switch, in the array alloc
path.
- Strength reductions in the array size computation by using component
size shifts instead of component sizes. Store component size shift
in the upper 16 bits of primitive_type field.
- Speedup: ~4% (3435->3284) in MemAllocTest on N4.
Bug:
9986565
Change-Id: I4b142ffac4ab8b5b915836f1660a949d6442344c