OSDN Git Service

android-x86/art.git
8 years agoMove PC-relative addressing bases to a better position.
Vladimir Marko [Wed, 25 Nov 2015 15:25:10 +0000 (15:25 +0000)]
Move PC-relative addressing bases to a better position.

Move the platform-specific HX86ComputeBaseMethodAddress and
HArmDexCacheArraysBase to the latest dominator of their uses
outside any loop. This brings the base closer to the first
use (previously, it was in the entry block) and relieves
some pressure on the register allocator while avoiding
recalculation of the base in a loop.

Change-Id: I231aa81eb5b4de9af2d0167054d06b65eb18a636

8 years agoOptimizing/ARM: Implement kDexCachePcRelative dispatch.
Vladimir Marko [Tue, 24 Nov 2015 13:45:23 +0000 (13:45 +0000)]
Optimizing/ARM: Implement kDexCachePcRelative dispatch.

Change-Id: I0fe2da50a30a3f62bec8ea01688dd1fec84b1831

8 years agoMerge "Optimize HLoadClass when we know the class is in the cache."
Nicolas Geoffray [Tue, 24 Nov 2015 18:53:37 +0000 (18:53 +0000)]
Merge "Optimize HLoadClass when we know the class is in the cache."

8 years agoOptimize HLoadClass when we know the class is in the cache.
Nicolas Geoffray [Tue, 24 Nov 2015 15:48:56 +0000 (15:48 +0000)]
Optimize HLoadClass when we know the class is in the cache.

Change-Id: Iaa74591eed0f2eabc9ba9f9988681d9582faa320

8 years agoMerge "Add backward branch instumentation to the switch interpreter."
Nicolas Geoffray [Tue, 24 Nov 2015 17:50:24 +0000 (17:50 +0000)]
Merge "Add backward branch instumentation to the switch interpreter."

8 years agoMerge "ART: Fix SafeMap::Put()/PutBefore() rvalue overloads."
Vladimir Marko [Tue, 24 Nov 2015 17:20:34 +0000 (17:20 +0000)]
Merge "ART: Fix SafeMap::Put()/PutBefore() rvalue overloads."

8 years agoART: Fix SafeMap::Put()/PutBefore() rvalue overloads.
Vladimir Marko [Tue, 24 Nov 2015 17:06:32 +0000 (17:06 +0000)]
ART: Fix SafeMap::Put()/PutBefore() rvalue overloads.

Remove the mistaken "const" qualifier which pretty much
defeats the intended optimizations and prevents using
the SafeMap with non-copyable values.

Change-Id: I07d3e083c0b9b8895cbd181cb1bb4ca2293c7c5d

8 years agoAdd backward branch instumentation to the switch interpreter.
Nicolas Geoffray [Tue, 24 Nov 2015 16:32:33 +0000 (16:32 +0000)]
Add backward branch instumentation to the switch interpreter.

Change-Id: I0328daa86d5f19311ab3bd6246a1c3e4b40b0ba9

8 years agoMerge "A few more optimizations on avoiding HClinit."
Nicolas Geoffray [Tue, 24 Nov 2015 15:17:08 +0000 (15:17 +0000)]
Merge "A few more optimizations on avoiding HClinit."

8 years agoA few more optimizations on avoiding HClinit.
Nicolas Geoffray [Tue, 24 Nov 2015 14:06:57 +0000 (14:06 +0000)]
A few more optimizations on avoiding HClinit.

Change-Id: I622a98b620e9d261cb654e2f5ab578bd8b3484b1

8 years agoMerge "MIPS32: Record missing implicit null checks"
Nicolas Geoffray [Tue, 24 Nov 2015 14:49:44 +0000 (14:49 +0000)]
Merge "MIPS32: Record missing implicit null checks"

8 years agoMIPS32: Record missing implicit null checks
Goran Jakovljevic [Fri, 20 Nov 2015 16:22:57 +0000 (17:22 +0100)]
MIPS32: Record missing implicit null checks

ImplicitNullChecks are recorded for HandleFieldGet and HandleFieldSet
instructions for longs after accessing first word.

This fixes following CTS tests:
* dot.junit.opcodes.iget_wide.JUnit_Test_iget_wide#testE2
* dot.junit.opcodes.iput_wide.JUnit_Test_iput_wide#testE2

Change-Id: I0a93370d4a78d36805a8d5a6c304ca0329da2363

8 years agoMerge "Revamp art::CheckEntrypointTypes uses."
Roland Levillain [Tue, 24 Nov 2015 12:05:25 +0000 (12:05 +0000)]
Merge "Revamp art::CheckEntrypointTypes uses."

8 years agoRevamp art::CheckEntrypointTypes uses.
Roland Levillain [Mon, 23 Nov 2015 18:53:50 +0000 (18:53 +0000)]
Revamp art::CheckEntrypointTypes uses.

Change-Id: I6e13e594539e766ed94524ac3282cec292ba91da

8 years agoMerge "MIPS64: Support short and long branches"
Roland Levillain [Tue, 24 Nov 2015 10:34:22 +0000 (10:34 +0000)]
Merge "MIPS64: Support short and long branches"

8 years agoMerge "Add another test for wide stores fix in optimizing."
Nicolas Geoffray [Tue, 24 Nov 2015 10:23:38 +0000 (10:23 +0000)]
Merge "Add another test for wide stores fix in optimizing."

8 years agoAdd another test for wide stores fix in optimizing.
Nicolas Geoffray [Tue, 3 Nov 2015 16:05:38 +0000 (16:05 +0000)]
Add another test for wide stores fix in optimizing.

Change is https://android-review.googlesource.com/#/c/183273/

Change-Id: I8013795dfa67e8e03f51a13dfa3016b89d3b56b7

8 years agoMerge "Clean up read barrier related comments in Optimizing."
Roland Levillain [Tue, 24 Nov 2015 09:54:46 +0000 (09:54 +0000)]
Merge "Clean up read barrier related comments in Optimizing."

8 years agoMerge "Revert "lambda: Add support for invoke-interface for boxed innate lambdas""
Nicolas Geoffray [Tue, 24 Nov 2015 09:20:09 +0000 (09:20 +0000)]
Merge "Revert "lambda: Add support for invoke-interface for boxed innate lambdas""

8 years agoRevert "lambda: Add support for invoke-interface for boxed innate lambdas"
Nicolas Geoffray [Tue, 24 Nov 2015 09:17:30 +0000 (09:17 +0000)]
Revert "lambda: Add support for invoke-interface for boxed innate lambdas"

955-lambda is flaky

Bug: 24618608
Bug: 25107649

This reverts commit 457e874459ae638145cab6d572e34d48480e39d2.

Change-Id: I24884344d21d7a4262e53e3f5dba57032687ddb7

8 years agoClean up read barrier related comments in Optimizing.
Roland Levillain [Mon, 23 Nov 2015 19:29:22 +0000 (19:29 +0000)]
Clean up read barrier related comments in Optimizing.

Bug: 12687968
Change-Id: Idf2e371e01e10d9d32c95b150735e2c96244232e

8 years agoMerge "Disable JDWP tests with read barriers."
Roland Levillain [Mon, 23 Nov 2015 19:25:48 +0000 (19:25 +0000)]
Merge "Disable JDWP tests with read barriers."

8 years agoDisable JDWP tests with read barriers.
Roland Levillain [Mon, 23 Nov 2015 19:24:25 +0000 (19:24 +0000)]
Disable JDWP tests with read barriers.

This is temporary, so as to have the builds turn green
again, while the deadlock issue is explored.

Bug: 25800335
Change-Id: I4520a0aa24441160c3fbb8a7a19103bd3f9e3fe6

8 years agoMerge "Make target-sync work with verity."
Alex Light [Mon, 23 Nov 2015 18:25:02 +0000 (18:25 +0000)]
Merge "Make target-sync work with verity."

8 years agoMerge "ARM64: Add support for multiply-accumulate."
Vladimir Marko [Mon, 23 Nov 2015 17:35:55 +0000 (17:35 +0000)]
Merge "ARM64: Add support for multiply-accumulate."

8 years agoMerge "ART: Fix wide stores in Optimizing"
David Brazdil [Mon, 23 Nov 2015 14:17:53 +0000 (14:17 +0000)]
Merge "ART: Fix wide stores in Optimizing"

8 years agoMerge "Optimizing: Avoid a PrettyMethod() call per compiled method."
Vladimir Marko [Mon, 23 Nov 2015 14:10:50 +0000 (14:10 +0000)]
Merge "Optimizing: Avoid a PrettyMethod() call per compiled method."

8 years agoOptimizing: Avoid a PrettyMethod() call per compiled method.
Vladimir Marko [Fri, 20 Nov 2015 13:02:22 +0000 (13:02 +0000)]
Optimizing: Avoid a PrettyMethod() call per compiled method.

PrettyMethod() is expensive so avoid it unless it's actually
needed.

Change-Id: I06ab29cc18e426b7dfb8c53b163757c88b53c27f

8 years agoART: Fix wide stores in Optimizing
David Brazdil [Thu, 19 Nov 2015 10:29:39 +0000 (10:29 +0000)]
ART: Fix wide stores in Optimizing

SsaBuilder::VisitStoreLocal did not take into account the following:
 (a) when storing a wide value, the high vreg must be invalidated,
 (b) when storing into the high vreg of a wide value, the low vreg
     must be invalidated.

Both situations cause overestimation of liveness but only (b) has
implications on correctness. CodeGenerator::EmitEnvironment will skip
the high vreg, causing deoptimizing and try/catch to load a wrong
value for that vreg.

In order to fix this bug, several changes had to be made to the
SsaBuilder:
 (1) phis need to be initialized with a type which matches its
     inputs' size,
 (2) eagerly created loop header phis may end up being undefined
     because of their corresponding vregs being invalidated inside
     the loop; these are marked dead during input setting,
 (3) the entire SSA-building algorithm should never revive an
     undefined loop header phi.

Bug: 25677992
Bug: https://code.google.com/p/android/issues/detail?id=194022

Change-Id: Id8a852e38c3f5ff1c2e608b1aafd6d5ac8311e32

8 years agoMerge "Do not change to the access check entrypoint when inlined."
Nicolas Geoffray [Mon, 23 Nov 2015 12:11:46 +0000 (12:11 +0000)]
Merge "Do not change to the access check entrypoint when inlined."

8 years agoDo not change to the access check entrypoint when inlined.
Nicolas Geoffray [Mon, 23 Nov 2015 12:04:37 +0000 (12:04 +0000)]
Do not change to the access check entrypoint when inlined.

The allocation entrypoint that deals with access checks does
not work with inlined methods.

Fixes 542-unresolved-access-check in jit mode.

Change-Id: I02290a8b2089fcf06e2216dabf8089920b529765

8 years agoMerge "Optimizing/ARM: Improve long shifts by 1."
Vladimir Marko [Mon, 23 Nov 2015 11:20:35 +0000 (11:20 +0000)]
Merge "Optimizing/ARM: Improve long shifts by 1."

8 years agoMerge "Optimizing/Thumb2: Improve load/store for large offsets."
Vladimir Marko [Mon, 23 Nov 2015 10:15:01 +0000 (10:15 +0000)]
Merge "Optimizing/Thumb2: Improve load/store for large offsets."

8 years agoMerge "Fix lint error."
Nicolas Geoffray [Mon, 23 Nov 2015 09:51:01 +0000 (09:51 +0000)]
Merge "Fix lint error."

8 years agoMerge "ART: Fix uninitialized variable"
David Brazdil [Mon, 23 Nov 2015 09:50:29 +0000 (09:50 +0000)]
Merge "ART: Fix uninitialized variable"

8 years agoFix lint error.
Nicolas Geoffray [Mon, 23 Nov 2015 09:50:18 +0000 (09:50 +0000)]
Fix lint error.

Change-Id: I29632dc7e49f7ec63040455fa40fcf87e9282e5e

8 years agoART: Fix uninitialized variable
David Brazdil [Mon, 23 Nov 2015 09:44:52 +0000 (09:44 +0000)]
ART: Fix uninitialized variable

Change-Id: I906de334b3c3cb1e36eff4944457f4598b7c174f

8 years agoMerge "Simplify boolean condition compared to 0"
David Brazdil [Mon, 23 Nov 2015 09:16:02 +0000 (09:16 +0000)]
Merge "Simplify boolean condition compared to 0"

8 years agoMerge "Revert "Add stats support for existing optimizations""
Nicolas Geoffray [Mon, 23 Nov 2015 08:59:29 +0000 (08:59 +0000)]
Merge "Revert "Add stats support for existing optimizations""

8 years agoRevert "Add stats support for existing optimizations"
Nicolas Geoffray [Mon, 23 Nov 2015 08:59:07 +0000 (08:59 +0000)]
Revert "Add stats support for existing optimizations"

Breaks the build. Please ensure your changes build.

This reverts commit 06241b1b07fb031b7d2cf55f4b78d3444d07cc2d.

Change-Id: I68b18f99a9882719bf6654d3313531a7965b8483

8 years agoMerge "Explicitly add HLoadClass/HClinitCheck for HNewInstance."
Nicolas Geoffray [Mon, 23 Nov 2015 08:51:44 +0000 (08:51 +0000)]
Merge "Explicitly add HLoadClass/HClinitCheck for HNewInstance."

8 years agoMerge "Add stats support for existing optimizations"
Nicolas Geoffray [Mon, 23 Nov 2015 08:51:21 +0000 (08:51 +0000)]
Merge "Add stats support for existing optimizations"

8 years agoAdd stats support for existing optimizations
Jean-Philippe Halimi [Thu, 3 Sep 2015 15:28:38 +0000 (17:28 +0200)]
Add stats support for existing optimizations

This patch adds support for the --dump-stats facility with existing
optimizations.

Change-Id: I68751b119a030952a11057cb651a3c63e87e73ea
Signed-off-by: Jean-Philippe Halimi <jean-philippe.halimi@intel.com>
8 years agoMIPS64: Support short and long branches
Alexey Frunze [Fri, 25 Sep 2015 05:57:20 +0000 (22:57 -0700)]
MIPS64: Support short and long branches

Change-Id: I618c960bd211048166d9fde78d4106bd3ca42b3a

8 years agoMerge "Revert "Dynamic BCE (based on induction range analysis)""
Aart Bik [Sat, 21 Nov 2015 05:40:12 +0000 (05:40 +0000)]
Merge "Revert "Dynamic BCE (based on induction range analysis)""

8 years agoRevert "Dynamic BCE (based on induction range analysis)"
Aart Bik [Sat, 21 Nov 2015 05:21:52 +0000 (05:21 +0000)]
Revert "Dynamic BCE (based on induction range analysis)"

This reverts commit 0b5849be045c5683d4a6b6b6c306abadba5f0fcc.

Change-Id: Id33f5da42bbdfb1aff7e2281417c8a7aa492df05
Rationale: so close :-( but bullhead-userdebug (linux) build in git_mnc-dr-dev-plus-aosp reported a breakage with a type inconsistency (long vs int in probably the codegen of dynamic bce); no time to investigate and fix this fully before my trip, so rolling back for now

8 years agoMerge "Dynamic BCE (based on induction range analysis)"
Aart Bik [Sat, 21 Nov 2015 01:03:49 +0000 (01:03 +0000)]
Merge "Dynamic BCE (based on induction range analysis)"

8 years agoMake target-sync work with verity.
Alex Light [Fri, 20 Nov 2015 23:35:48 +0000 (15:35 -0800)]
Make target-sync work with verity.

It will disable verity and restart and try again if the adb remount
does not actually work.

Change-Id: Icf3589c40682e09e1c4e099f173a2e51fe8a20f9

8 years agoDynamic BCE (based on induction range analysis)
Aart Bik [Mon, 19 Oct 2015 21:59:26 +0000 (14:59 -0700)]
Dynamic BCE (based on induction range analysis)

Rationale: A rewritten dynamic BCE that uses induction variable analysis
           to generate the run-time tests before a loop in order to
           eliminate bounds-checks from its body. This CL removes now
           obsoleted induction related code inside the BCE module.
           Also, the dynamic test generation is placed more strategically,
           since we missed a few cases where static analysis does better.

Most significant performance improvements (after filtering noise) is about:
  Linpack +20%
  LU    > +10%

Change-Id: I4e7b8bab0288beff6f98a14856e3536103d32742

8 years agoMerge "lambda: Add support for invoke-interface for boxed innate lambdas"
Igor Murashkin [Sat, 21 Nov 2015 00:55:35 +0000 (00:55 +0000)]
Merge "lambda: Add support for invoke-interface for boxed innate lambdas"

8 years agolambda: Add support for invoke-interface for boxed innate lambdas
Igor Murashkin [Fri, 23 Oct 2015 00:37:50 +0000 (17:37 -0700)]
lambda: Add support for invoke-interface for boxed innate lambdas

Lambda closures created with the 'create-lambda' instruction
(termed "innate lambdas") can be turned into an object with 'box-lambda'.

This CL enables support for those kinds of lambdas to work with
'invoke-interface' by generating a proxy class for the lambda.

Note: MIPS32/64 support not included.

Bug: 24618608
Bug: 25107649
Change-Id: Ic8f1bb66ebeaed4097e758a50becf1cff6ccaefb

8 years agoMerge "Fix null pointer in processing of enum annotations."
Jeff Hao [Fri, 20 Nov 2015 23:07:59 +0000 (23:07 +0000)]
Merge "Fix null pointer in processing of enum annotations."

8 years agoFix null pointer in processing of enum annotations.
Jeff Hao [Fri, 20 Nov 2015 22:56:09 +0000 (14:56 -0800)]
Fix null pointer in processing of enum annotations.

Bug: 25802263
Change-Id: Ib20b7049fd3824a5eb3e396d34ef32574771d074

8 years agoExplicitly add HLoadClass/HClinitCheck for HNewInstance.
Nicolas Geoffray [Thu, 19 Nov 2015 13:29:02 +0000 (13:29 +0000)]
Explicitly add HLoadClass/HClinitCheck for HNewInstance.

bug:25735083
bug:25173758

Change-Id: Ie81cfa4fa9c47cc025edb291cdedd7af209a03db

8 years agoMerge "Pass DexPathList.Element array to openDexFileNative"
Mathieu Chartier [Fri, 20 Nov 2015 21:52:05 +0000 (21:52 +0000)]
Merge "Pass DexPathList.Element array to openDexFileNative"

8 years agoMerge "MIPS32: Miscellaneous bit manipulations routines:"
Andreas Gampe [Fri, 20 Nov 2015 21:27:59 +0000 (21:27 +0000)]
Merge "MIPS32: Miscellaneous bit manipulations routines:"

8 years agoMerge "Kill stale dalvikvm processes at the end of the jdwp test."
Hiroshi Yamauchi [Fri, 20 Nov 2015 18:55:24 +0000 (18:55 +0000)]
Merge "Kill stale dalvikvm processes at the end of the jdwp test."

8 years agoMerge "Fix --jvm on run-tests 960 and 961"
Alex Light [Fri, 20 Nov 2015 18:51:59 +0000 (18:51 +0000)]
Merge "Fix --jvm on run-tests 960 and 961"

8 years agoKill stale dalvikvm processes at the end of the jdwp test.
Hiroshi Yamauchi [Fri, 20 Nov 2015 00:24:31 +0000 (16:24 -0800)]
Kill stale dalvikvm processes at the end of the jdwp test.

Bug: 25800335
Change-Id: I938437d6e1ecd362b30a1dfc4db7a25538cf3211

8 years agoFix --jvm on run-tests 960 and 961
Alex Light [Fri, 20 Nov 2015 18:37:46 +0000 (10:37 -0800)]
Fix --jvm on run-tests 960 and 961

Change-Id: I2c20e96a27c92b15a201abeca6bc3461a0912703

8 years agoPass DexPathList.Element array to openDexFileNative
Mathieu Chartier [Fri, 20 Nov 2015 18:29:42 +0000 (10:29 -0800)]
Pass DexPathList.Element array to openDexFileNative

App images will use this to check for conflicts. It is required to
pass down since the class loader won't have the element array until
after all of the elements in the dex path list are loaded.

Bug: 22858531
Change-Id: I4f3d85b5e0ad542298fc8458bafe6504c263dc41

8 years agoMerge "Use arc4random when available to select delta for image relocation."
Alex Light [Fri, 20 Nov 2015 17:48:47 +0000 (17:48 +0000)]
Merge "Use arc4random when available to select delta for image relocation."

8 years agoMerge "Encode function signatures properly in DWARF."
David Srbecky [Fri, 20 Nov 2015 17:37:16 +0000 (17:37 +0000)]
Merge "Encode function signatures properly in DWARF."

8 years agoSimplify boolean condition compared to 0
Mark Mendell [Tue, 17 Nov 2015 16:16:56 +0000 (11:16 -0500)]
Simplify boolean condition compared to 0

CaffeineMarkRR Logic has some boolean flipping which can be helped by
some simplification.

Simplify non-FP (A COND_OP B) != 0 to A OPPOSITE_COND_OP B.
This is better than the original code, which would use a HBooleanNot
after the condition.

Also simplify non-FP (A COND_OP B) == 1 to A OPPOSITE_COND_OP B.

Move GetOppositeCondition to nodes.h/nodes.cc to share with Boolean
Simplification, renaming it to InsertOppositeCondition, as it inserts
the new HInstruction (unless it is a constant).

Change-Id: I34ded7758836e375de0d6fdba9239d2d451928d0
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
8 years agoEncode function signatures properly in DWARF.
David Srbecky [Mon, 9 Nov 2015 18:05:48 +0000 (18:05 +0000)]
Encode function signatures properly in DWARF.

The signatures were previously stored as plain string.
The proper way in DWARF is to store them as structured tree of tags.
(for example, DW_TAG_subprogram containing DW_TAG_formal_parameter)

Note that this makes the debug sections smaller since DWARF
signatures are actually more efficient than just plain strings.

Change-Id: I6afbce28340570666d8674d07c0e324aad561dd5

8 years agoOptimizing/ARM: Improve long shifts by 1.
Vladimir Marko [Fri, 20 Nov 2015 15:08:11 +0000 (15:08 +0000)]
Optimizing/ARM: Improve long shifts by 1.

Implement long
    Shl(x,1) as LSLS+ADC,
    Shr(x,1) as ASR+RRX and
    UShr(x,1) as LSR+RRX.

Remove the simplification substituting Shl(x,1) with
ADD(x,x) as it interferes with some other optimizations
instead of helping them. And since it didn't help 64-bit
architectures anyway, codegen is the correct place for it.
This is now implemented for ARM and x86, so only mips32 can
be improved.

Change-Id: Idd14f23292198b2260189e1497ca5411b21743b3

8 years agoARM64: Add support for multiply-accumulate.
Alexandre Rames [Fri, 20 Nov 2015 15:55:47 +0000 (15:55 +0000)]
ARM64: Add support for multiply-accumulate.

Change-Id: I88dc313df520480f3fd16bbabda27f9435d25368

8 years agoMerge "Opt compiler: More strength reduction for multiplications."
David Brazdil [Fri, 20 Nov 2015 15:43:58 +0000 (15:43 +0000)]
Merge "Opt compiler: More strength reduction for multiplications."

8 years agoOpt compiler: More strength reduction for multiplications.
Alexandre Rames [Fri, 20 Nov 2015 15:02:45 +0000 (15:02 +0000)]
Opt compiler: More strength reduction for multiplications.

We transform code looking like

   MUL dst, src, (2^n + 1)

into

   SHL tmp, src, n
   ADD dst, src, tmp

and code looking like

   MUL dst, src, (2^n - 1)

into

   SHL tmp, src, n
   SUB dst, tmp, src

Change-Id: Ia620ab68758caa70a01530b88cd65dd0444376d7

8 years agoOptimizing/Thumb2: Improve load/store for large offsets.
Vladimir Marko [Thu, 19 Nov 2015 21:13:52 +0000 (21:13 +0000)]
Optimizing/Thumb2: Improve load/store for large offsets.

This reduces the boot.oat size on Nexus 5 by 568KiB (0.8%).

Also change 32-bit ADD/SUB immediate to use the recommended
encoding T3 when both T3 and T4 are available.

Change-Id: I174382bda2b22da70560b947f5536acf8c1814a9

8 years agoMerge "Clean up the special input in HInvokeStaticOrDirect."
Vladimir Marko [Fri, 20 Nov 2015 10:53:56 +0000 (10:53 +0000)]
Merge "Clean up the special input in HInvokeStaticOrDirect."

8 years agoUse arc4random when available to select delta for image relocation.
Alex Light [Thu, 19 Nov 2015 19:03:10 +0000 (11:03 -0800)]
Use arc4random when available to select delta for image relocation.

Bug: 25776162

Change-Id: I5a5ca5d55c231508b61d4960049ab42e19c017e2

8 years agoMerge "Revert "Use arc4random when available to select delta for image relocation.""
Alex Light [Fri, 20 Nov 2015 01:24:59 +0000 (01:24 +0000)]
Merge "Revert "Use arc4random when available to select delta for image relocation.""

8 years agoRevert "Use arc4random when available to select delta for image relocation."
Alex Light [Fri, 20 Nov 2015 01:24:47 +0000 (01:24 +0000)]
Revert "Use arc4random when available to select delta for image relocation."

This reverts commit 7ecbd49c6c78e6c633883aa6766675df8abaa7dd.

Change-Id: Ifb37e23584722b31cb2369bcc9b91da6146d2cf6

8 years agoMerge "Use arc4random when available to select delta for image relocation."
Alex Light [Fri, 20 Nov 2015 01:17:20 +0000 (01:17 +0000)]
Merge "Use arc4random when available to select delta for image relocation."

8 years agoUse arc4random when available to select delta for image relocation.
Alex Light [Thu, 19 Nov 2015 19:03:10 +0000 (11:03 -0800)]
Use arc4random when available to select delta for image relocation.

Bug: 25776162

Change-Id: I1c4cc992977b5d6fe782ff819903a802a40391ee

8 years agoMerge "Remove thread suspension assertion for SuspendAllForDebugger"
Mathieu Chartier [Fri, 20 Nov 2015 00:41:58 +0000 (00:41 +0000)]
Merge "Remove thread suspension assertion for SuspendAllForDebugger"

8 years agoMerge "Create parent class loader for dex2oat"
Mathieu Chartier [Fri, 20 Nov 2015 00:35:00 +0000 (00:35 +0000)]
Merge "Create parent class loader for dex2oat"

8 years agoCreate parent class loader for dex2oat
Mathieu Chartier [Fri, 20 Nov 2015 00:05:58 +0000 (16:05 -0800)]
Create parent class loader for dex2oat

This means we also put the class loader in the app image so that it
can be used for verifying the dex file order.

Bug: 22858531
Change-Id: I30761b59421c8a24cffd62b469134b25d2929e2e

8 years agoMerge "Relax CAS in some uses of Object::AtomicSetReadBarrierPointer."
Hiroshi Yamauchi [Thu, 19 Nov 2015 22:51:15 +0000 (22:51 +0000)]
Merge "Relax CAS in some uses of Object::AtomicSetReadBarrierPointer."

8 years agoRelax CAS in some uses of Object::AtomicSetReadBarrierPointer.
Hiroshi Yamauchi [Wed, 18 Nov 2015 01:52:15 +0000 (17:52 -0800)]
Relax CAS in some uses of Object::AtomicSetReadBarrierPointer.

Aside from the call to change the object from gray to black, the CAS in
AtomicSetReadBarrierPointer doesn't need to be a release CAS.

CC collector Ritz EAAC GC time: 28.4 -> 26.5s (-6.7%) on N5.

Bug: 12687968

Change-Id: Ic162717981b98e7f1e762fd6b27bd0c146187ca4

8 years agoMerge "Fix cmdline parser test."
Nicolas Geoffray [Thu, 19 Nov 2015 18:18:19 +0000 (18:18 +0000)]
Merge "Fix cmdline parser test."

8 years agoFix cmdline parser test.
Nicolas Geoffray [Thu, 19 Nov 2015 18:17:41 +0000 (18:17 +0000)]
Fix cmdline parser test.

Change-Id: I6f03552d8d48e875f80a69455397146b132ed623

8 years agoMerge "Allow NullConstant to be untyped in GraphVisualiser."
Calin Juravle [Thu, 19 Nov 2015 17:46:50 +0000 (17:46 +0000)]
Merge "Allow NullConstant to be untyped in GraphVisualiser."

8 years agoAllow NullConstant to be untyped in GraphVisualiser.
Mark Mendell [Mon, 16 Nov 2015 17:21:53 +0000 (12:21 -0500)]
Allow NullConstant to be untyped in GraphVisualiser.

The NullConstant may be added to the graph during other passes that
happen between ReferenceTypePropagation and Inliner (e.g.
InstructionSimplifier). If the inliner doesn't run or doesn't inline
anything, the NullConstant remains untyped.

The infrastructure to properly type NullConstants everywhere is to
complex to add for the benefits

Bug: 25786318

Change-Id: I904a3e605b57f8cac9936e82f19a4994c7b1a82a
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
8 years agoMerge "MIPS64: Add java.lang.String.equals intrinsic."
Andreas Gampe [Thu, 19 Nov 2015 16:12:57 +0000 (16:12 +0000)]
Merge "MIPS64: Add java.lang.String.equals intrinsic."

8 years agoClean up the special input in HInvokeStaticOrDirect.
Vladimir Marko [Thu, 19 Nov 2015 15:48:33 +0000 (15:48 +0000)]
Clean up the special input in HInvokeStaticOrDirect.

Change-Id: I4042aefbdac1a8c236d00e2e7145349a64f6486b

8 years agoMerge "Rename options for shorter names."
Nicolas Geoffray [Thu, 19 Nov 2015 15:48:01 +0000 (15:48 +0000)]
Merge "Rename options for shorter names."

8 years agoRename options for shorter names.
Nicolas Geoffray [Thu, 19 Nov 2015 14:25:43 +0000 (14:25 +0000)]
Rename options for shorter names.

Change-Id: I2ea98ead4cd99d6a51cbfa149b0aab5e036ffb96

8 years agoMerge "ARM read barrier support for concurrent GC in Optimizing."
Roland Levillain [Thu, 19 Nov 2015 14:01:37 +0000 (14:01 +0000)]
Merge "ARM read barrier support for concurrent GC in Optimizing."

8 years agoMerge "Fix ClinitCheck pruning."
Vladimir Marko [Thu, 19 Nov 2015 13:12:09 +0000 (13:12 +0000)]
Merge "Fix ClinitCheck pruning."

8 years agoFix ClinitCheck pruning.
Vladimir Marko [Fri, 13 Nov 2015 14:47:00 +0000 (14:47 +0000)]
Fix ClinitCheck pruning.

Make sure we merge the ClinitCheck only with LoadClass and
HInvokeStaticOrDirect that is a part of the very same dex
instruction. This fixes incorrect stack traces from class
initializers (wrong dex pcs).

Rewrite the pruning to do all the ClinitCheck merging when
we see the ClinitCheck, instead of merging ClinitCheck into
LoadClass and then LoadClass into HInvokeStaticOrDirect.
When we later see an HInvokeStaticOrDirect with an explicit
check (i.e. not merged), we know that some other instruction
is doing the check and the invoke doesn't need to, so we
mark it as not requiring the check at all. (Previously it
would have been marked as having an implicit check.)

Remove the restriction on merging with inlined invoke static
as this is not necessary anymore. This was a workaround for
    X.test():
       invoke-static C.foo() [1]
    C.foo():
       invoke-static C.bar() [2]
After inlining and GVN we have
    X.test():
       LoadClass C (from [1])
       ClinitCheck C (from [1], to be merged to LoadClass)
       InvokeStaticOrDirect C.bar() (from [2])
and the LoadClass must not be merged into the invoke as this
would cause the resolution trampoline to see an inlined
frame from the not-yet-loaded class C during the stack walk
and try to load the class. However, we're not allowed to
load new classes at that point, so an attempt to do so leads
to an assertion failure. With this CL, LoadClass is not
merged when it comes from a different instruction, so we can
guarantee that all inlined frames seen by the stack walk in
the resolution trampoline belong to already loaded classes.

Change-Id: I2b8da8d4f295355dce17141f0fab2dace126684d

8 years agoMerge "Increase code cache after 1 full collection."
Nicolas Geoffray [Thu, 19 Nov 2015 11:40:15 +0000 (11:40 +0000)]
Merge "Increase code cache after 1 full collection."

8 years agoIncrease code cache after 1 full collection.
Nicolas Geoffray [Wed, 18 Nov 2015 11:15:22 +0000 (11:15 +0000)]
Increase code cache after 1 full collection.

Also add a max capacity option.

Change-Id: Icd442b72e9be0c6b091b588b4c4473c69b7cde10

8 years agoMerge "Add jack as a build target for the buildbot."
Nicolas Geoffray [Thu, 19 Nov 2015 11:29:36 +0000 (11:29 +0000)]
Merge "Add jack as a build target for the buildbot."

8 years agoAdd jack as a build target for the buildbot.
Nicolas Geoffray [Thu, 19 Nov 2015 11:02:50 +0000 (11:02 +0000)]
Add jack as a build target for the buildbot.

This avoids dist targets to try on killing the jack server.

Change-Id: Icb913f3ba70ef4c5abd46ebac56cb283e17f0f12

8 years agoMerge "ART: Change Init{From,Without}Image to return bool"
Andreas Gampe [Thu, 19 Nov 2015 06:27:53 +0000 (06:27 +0000)]
Merge "ART: Change Init{From,Without}Image to return bool"

8 years agoART: Change Init{From,Without}Image to return bool
Andreas Gampe [Tue, 17 Nov 2015 19:52:46 +0000 (11:52 -0800)]
ART: Change Init{From,Without}Image to return bool

Rewrite some CHECKs to return false. For a common failure (missing)
image, this improves the abort (as it's not a runtime abort with
lots of stack traces anymore).

Change-Id: I717b1db74950267ced0ad3bafa1aed1693680062

8 years agoMerge "Add immune spaces abstraction"
Mathieu Chartier [Thu, 19 Nov 2015 01:55:31 +0000 (01:55 +0000)]
Merge "Add immune spaces abstraction"

8 years agoAdd immune spaces abstraction
Mathieu Chartier [Tue, 17 Nov 2015 00:05:55 +0000 (16:05 -0800)]
Add immune spaces abstraction

ImmuneSpaces is a set of spaces which are not reclaimable by the GC in
the current collection. This set of spaces does not have requirements
about space adjacency like the old ImmuneRegion. ImmuneSpaces generates
the largest immune region for the GC. Since there is no requirement on
adjacency, it is possible to have multiple non-adjacent applicaton
image files.

For image spaces, we also look at the oat code which is normally after
the application image. In this case, we add the code as part of the
immune region. This is required to have both the boot image and the
zygote space be in the same immune region (for performance reasons).

Bug: 22858531

Change-Id: I5103b31c0e39ad63c594f5557fc848a3b288b43e