OSDN Git Service

android-x86/art.git
8 years agoam dc2ce636: Merge "Optimize ArraySet for x86/x64/arm/arm64."
Nicolas Geoffray [Thu, 1 Oct 2015 07:38:18 +0000 (07:38 +0000)]
am dc2ce636: Merge "Optimize ArraySet for x86/x64/arm/arm64."

* commit 'dc2ce636d6a98118a5998b93da161ef7840ec645':
  Optimize ArraySet for x86/x64/arm/arm64.

8 years agoMerge "Optimize ArraySet for x86/x64/arm/arm64."
Nicolas Geoffray [Thu, 1 Oct 2015 07:34:40 +0000 (07:34 +0000)]
Merge "Optimize ArraySet for x86/x64/arm/arm64."

8 years agoam d1169045: Merge "ART: Fix test"
Andreas Gampe [Thu, 1 Oct 2015 00:35:17 +0000 (00:35 +0000)]
am d1169045: Merge "ART: Fix test"

* commit 'd1169045e978c8c9dde98315612c488c6bb153f4':
  ART: Fix test

8 years agoMerge "ART: Fix test"
Andreas Gampe [Thu, 1 Oct 2015 00:30:40 +0000 (00:30 +0000)]
Merge "ART: Fix test"

8 years agoART: Fix test
Andreas Gampe [Thu, 1 Oct 2015 00:25:15 +0000 (17:25 -0700)]
ART: Fix test

Fix a missing rename after 89df7bfc41a4de9685f84e7db07f77db3fd485fc.

Change-Id: I67c8dfd45ff9d4d6b6b005df20c17ba4e453c378

8 years agoam 5df7f784: Merge "ART: Refactor libarttest C++ code"
Andreas Gampe [Wed, 30 Sep 2015 23:43:58 +0000 (23:43 +0000)]
am 5df7f784: Merge "ART: Refactor libarttest C++ code"

* commit '5df7f784407e963280c4fc2bca18b17834b0f268':
  ART: Refactor libarttest C++ code

8 years agoMerge "ART: Refactor libarttest C++ code"
Andreas Gampe [Wed, 30 Sep 2015 22:09:41 +0000 (22:09 +0000)]
Merge "ART: Refactor libarttest C++ code"

8 years agoam 46dcaf93: Merge "Tidy up spelling"
Kenny Root [Wed, 30 Sep 2015 21:47:43 +0000 (21:47 +0000)]
am 46dcaf93: Merge "Tidy up spelling"

* commit '46dcaf9350c7571fe07098c6de2f8da24a2c3e2c':
  Tidy up spelling

8 years agoMerge "Tidy up spelling"
Kenny Root [Wed, 30 Sep 2015 21:42:02 +0000 (21:42 +0000)]
Merge "Tidy up spelling"

8 years agoam 883dc19b: Merge "Use free lists instead of bitmaps within rosalloc runs."
Hiroshi Yamauchi [Wed, 30 Sep 2015 21:39:04 +0000 (21:39 +0000)]
am 883dc19b: Merge "Use free lists instead of bitmaps within rosalloc runs."

* commit '883dc19b542c7580734f1c8757dbb6d0bf3f23a5':
  Use free lists instead of bitmaps within rosalloc runs.

8 years agoMerge "Use free lists instead of bitmaps within rosalloc runs."
Hiroshi Yamauchi [Wed, 30 Sep 2015 21:33:53 +0000 (21:33 +0000)]
Merge "Use free lists instead of bitmaps within rosalloc runs."

8 years agoUse free lists instead of bitmaps within rosalloc runs.
Hiroshi Yamauchi [Thu, 24 Sep 2015 18:20:29 +0000 (11:20 -0700)]
Use free lists instead of bitmaps within rosalloc runs.

Speedups (CMS GC/N5)
BinaryTrees:  2008 -> 1694 ms (-16%)
MemAllocTest: 2303 -> 2076 ms (-10%)

TODO: Add assembly fast path code.

Bug: 9986565

Change-Id: I9dd7cbfd8e1ae083a399e70abaf2064a959f24fa

8 years agoART: Refactor libarttest C++ code
Andreas Gampe [Wed, 30 Sep 2015 20:13:21 +0000 (13:13 -0700)]
ART: Refactor libarttest C++ code

Refactor some libarttest JNI functions into a common directory, so
they can be easily used by multiple tests without code duplication.
This is preparation for better deoptimization state testing.

Change-Id: I43f7340b699b26930aabfd665c707e0485b17fc8

8 years agoTidy up spelling
Kenny Root [Wed, 30 Sep 2015 20:09:51 +0000 (13:09 -0700)]
Tidy up spelling

To match the directory "compiler/optimizing" change the spelling of
comments.

Change-Id: I816da4836ce86f4a44ddd2754d8e788d77a27de3

8 years agoam 3f8cc8d3: Merge "Revert "Revert "Keep internal stack trace methods declaring class...
Mathieu Chartier [Wed, 30 Sep 2015 20:04:48 +0000 (20:04 +0000)]
am 3f8cc8d3: Merge "Revert "Revert "Keep internal stack trace methods declaring classes live"""

* commit '3f8cc8d3454c6289a0b2171000a34bf2297def10':
  Revert "Revert "Keep internal stack trace methods declaring classes live""

8 years agoam 0dbcaee5: Merge "Don\'t use floating point callee saves in debuggable."
Nicolas Geoffray [Wed, 30 Sep 2015 20:04:47 +0000 (20:04 +0000)]
am 0dbcaee5: Merge "Don\'t use floating point callee saves in debuggable."

* commit '0dbcaee559dc6005dec335119982b73692300e45':
  Don't use floating point callee saves in debuggable.

8 years agoam a841bc3f: Merge "Optimizing: Tag even more arena allocations."
Vladimir Marko [Wed, 30 Sep 2015 20:04:45 +0000 (20:04 +0000)]
am a841bc3f: Merge "Optimizing: Tag even more arena allocations."

* commit 'a841bc3fb000a9cdbbb7b3cedf2cb7a11e2c82ce':
  Optimizing: Tag even more arena allocations.

8 years agoam 25255512: Merge "Implemented trip-count safety information."
Aart Bik [Wed, 30 Sep 2015 20:04:44 +0000 (20:04 +0000)]
am 25255512: Merge "Implemented trip-count safety information."

* commit '25255512bae64fefc5cb76b1590e8e9c1dd42e82':
  Implemented trip-count safety information.

8 years agoMerge "Revert "Revert "Keep internal stack trace methods declaring classes live"""
Mathieu Chartier [Wed, 30 Sep 2015 18:34:18 +0000 (18:34 +0000)]
Merge "Revert "Revert "Keep internal stack trace methods declaring classes live"""

8 years agoMerge "Don't use floating point callee saves in debuggable."
Nicolas Geoffray [Wed, 30 Sep 2015 17:48:51 +0000 (17:48 +0000)]
Merge "Don't use floating point callee saves in debuggable."

8 years agoMerge "Optimizing: Tag even more arena allocations."
Vladimir Marko [Wed, 30 Sep 2015 17:46:01 +0000 (17:46 +0000)]
Merge "Optimizing: Tag even more arena allocations."

8 years agoDon't use floating point callee saves in debuggable.
Nicolas Geoffray [Wed, 30 Sep 2015 16:18:14 +0000 (17:18 +0100)]
Don't use floating point callee saves in debuggable.

The runtime stubs don't save them, so GetVReg and SetVReg
won't work on them.

Not having callee saves will increase code size and reduce
performance of fp-heavy methods. But we need to do it for
propper debugging.

Change-Id: I40354c29718af49b6b3adf61d724d3bb93680107

8 years agoOptimize ArraySet for x86/x64/arm/arm64.
Nicolas Geoffray [Fri, 25 Sep 2015 10:04:45 +0000 (11:04 +0100)]
Optimize ArraySet for x86/x64/arm/arm64.

Change-Id: I5bc8c6adf7f82f3b211f0c21067f5bb54dd0c040

8 years agoMerge "Implemented trip-count safety information."
Aart Bik [Wed, 30 Sep 2015 17:23:55 +0000 (17:23 +0000)]
Merge "Implemented trip-count safety information."

8 years agoRevert "Revert "Keep internal stack trace methods declaring classes live""
Mathieu Chartier [Wed, 30 Sep 2015 16:24:22 +0000 (09:24 -0700)]
Revert "Revert "Keep internal stack trace methods declaring classes live""

Fixed some code which used old stack trace representation in throwable.cc.

Bug: 22720414

This reverts commit 45a8522898702f6a725ae19d97bceedc8fc609a6.

Change-Id: I7385075caf649ce76da5d8866fd0031b9e8e5ef4

8 years agoImplemented trip-count safety information.
Aart Bik [Mon, 28 Sep 2015 23:25:56 +0000 (16:25 -0700)]
Implemented trip-count safety information.

As shown in the induction analysis presentation, trip-counts need to
deal with potential taken/not-taken situations (so that trip-count
is either valid in the full loop or just in the loop-body proper)
and potential finite/infinite situations (the latter can still be
analyzed but may need to run-time test later to guard against the
infinite conditions). This CL provides that information.

Change-Id: I0445d8e836b80a3614af217ce3e39d766e77b986

8 years agoam 63878212: Merge "Make libcore timeout the same for all runs."
Nicolas Geoffray [Wed, 30 Sep 2015 12:46:17 +0000 (12:46 +0000)]
am 63878212: Merge "Make libcore timeout the same for all runs."

* commit '6387821209a03c5d873cf9dc6fd11434918bbdf4':
  Make libcore timeout the same for all runs.

8 years agoMerge "Make libcore timeout the same for all runs."
Nicolas Geoffray [Wed, 30 Sep 2015 12:41:47 +0000 (12:41 +0000)]
Merge "Make libcore timeout the same for all runs."

8 years agoam 97c25031: Merge "ART: Mark Checker tests broken for mips32"
David Brazdil [Wed, 30 Sep 2015 11:04:38 +0000 (11:04 +0000)]
am 97c25031: Merge "ART: Mark Checker tests broken for mips32"

* commit '97c25031426ce995058b359b1c544799d322b551':
  ART: Mark Checker tests broken for mips32

8 years agoMake libcore timeout the same for all runs.
Nicolas Geoffray [Wed, 30 Sep 2015 11:02:21 +0000 (12:02 +0100)]
Make libcore timeout the same for all runs.

Looks like our mips32 devices need it too. Simply make
the timeout big enough for all run kinds.

Change-Id: I48a87eaef36c05e09c7ad82aaa003c7eb0d1ad6d

8 years agoMerge "ART: Mark Checker tests broken for mips32"
David Brazdil [Wed, 30 Sep 2015 10:59:28 +0000 (10:59 +0000)]
Merge "ART: Mark Checker tests broken for mips32"

8 years agoART: Mark Checker tests broken for mips32
David Brazdil [Wed, 30 Sep 2015 10:47:35 +0000 (11:47 +0100)]
ART: Mark Checker tests broken for mips32

We don't have a mips32 backend at the moment, so there is no graph
dump to run Checker on.

Change-Id: I9c90b93811aa7bbc849575ac1836c2d85da7e9ac

8 years agoam a39ce124: Merge "Revert "Revert "Enable optimizations with --debuggable."""
Nicolas Geoffray [Wed, 30 Sep 2015 09:23:49 +0000 (09:23 +0000)]
am a39ce124: Merge "Revert "Revert "Enable optimizations with --debuggable."""

* commit 'a39ce12465acae0e594b1fef10225057737aeba4':
  Revert "Revert "Enable optimizations with --debuggable.""

8 years agoMerge "Revert "Revert "Enable optimizations with --debuggable."""
Nicolas Geoffray [Wed, 30 Sep 2015 09:20:32 +0000 (09:20 +0000)]
Merge "Revert "Revert "Enable optimizations with --debuggable."""

8 years agoam 84128f7e: Merge "Add deoptimization test."
Nicolas Geoffray [Wed, 30 Sep 2015 09:04:28 +0000 (09:04 +0000)]
am 84128f7e: Merge "Add deoptimization test."

* commit '84128f7ed681b3c08a7cfba1031c13c17db462d0':
  Add deoptimization test.

8 years agoMerge "Add deoptimization test."
Nicolas Geoffray [Wed, 30 Sep 2015 08:15:15 +0000 (08:15 +0000)]
Merge "Add deoptimization test."

8 years agoRevert "Revert "Enable optimizations with --debuggable.""
Nicolas Geoffray [Tue, 29 Sep 2015 18:00:03 +0000 (18:00 +0000)]
Revert "Revert "Enable optimizations with --debuggable.""

This reverts commit b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde.

Change-Id: I398c23863e4fd86a3112076417378d22efd08306

8 years agoam d2aaf5c1: Merge "Revert "Keep internal stack trace methods declaring classes live""
Nicolas Geoffray [Wed, 30 Sep 2015 07:27:15 +0000 (07:27 +0000)]
am d2aaf5c1: Merge "Revert "Keep internal stack trace methods declaring classes live""

* commit 'd2aaf5c103ea7792854b18150284762f98132287':
  Revert "Keep internal stack trace methods declaring classes live"

8 years agoMerge "Revert "Keep internal stack trace methods declaring classes live""
Nicolas Geoffray [Wed, 30 Sep 2015 07:20:50 +0000 (07:20 +0000)]
Merge "Revert "Keep internal stack trace methods declaring classes live""

8 years agoRevert "Keep internal stack trace methods declaring classes live"
Nicolas Geoffray [Wed, 30 Sep 2015 07:20:13 +0000 (07:20 +0000)]
Revert "Keep internal stack trace methods declaring classes live"

Breaks jdwp tests.

Bug: 22720414

This reverts commit 566fc926942ed57925627d1bd43e099938084f1e.

Change-Id: Ic3544e86af35bf748f9d47e0a4077dcdc206a821

8 years agoam 9c53671b: Merge "Keep internal stack trace methods declaring classes live"
Mathieu Chartier [Wed, 30 Sep 2015 01:23:32 +0000 (01:23 +0000)]
am 9c53671b: Merge "Keep internal stack trace methods declaring classes live"

* commit '9c53671bb659cb47bea82f6cbdd46c0843753e82':
  Keep internal stack trace methods declaring classes live

8 years agoMerge "Keep internal stack trace methods declaring classes live"
Mathieu Chartier [Wed, 30 Sep 2015 01:17:00 +0000 (01:17 +0000)]
Merge "Keep internal stack trace methods declaring classes live"

8 years agoKeep internal stack trace methods declaring classes live
Mathieu Chartier [Tue, 29 Sep 2015 17:21:55 +0000 (10:21 -0700)]
Keep internal stack trace methods declaring classes live

We now store the declaring classes in the internal stack trace to
make sure class unloading doesn't unload any classes owning methods
in the stack trace.

This fixes DexClassLoaderTest in libcore. Added regression test.

Bug: 22720414

Change-Id: I185f87c8ec0807e83f4661bd5bb5652dba6fc281

8 years agoam 3a447ded: Merge "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""
Andreas Gampe [Tue, 29 Sep 2015 22:25:57 +0000 (22:25 +0000)]
am 3a447ded: Merge "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""

* commit '3a447ded48925f3ec65553fcf56c55da23777003':
  Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"

8 years agoMerge "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""
Andreas Gampe [Tue, 29 Sep 2015 22:22:40 +0000 (22:22 +0000)]
Merge "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""

8 years agoRevert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"
Andreas Gampe [Tue, 29 Sep 2015 22:22:28 +0000 (22:22 +0000)]
Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"

This reverts commit 6dd332933a570f5e413dd0d784481607798fbcf5.

Interestingly fails for sdk build.

Change-Id: I28d8fc05575ff1d744b4a831c32ef4414775561a

8 years agoam c0761cb9: Merge "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"
Andreas Gampe [Tue, 29 Sep 2015 21:24:37 +0000 (21:24 +0000)]
am c0761cb9: Merge "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"

* commit 'c0761cb9b11e38a8ae615c0c419519840abbfece':
  ART: Remove unnecessary SHARED_REQUIRES in ArtMethod

8 years agoMerge "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"
Andreas Gampe [Tue, 29 Sep 2015 21:18:07 +0000 (21:18 +0000)]
Merge "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"

8 years agoam e0241620: Merge "Fix a mutator lock violation in the generic JNI end sequence."
Hiroshi Yamauchi [Tue, 29 Sep 2015 19:12:19 +0000 (19:12 +0000)]
am e0241620: Merge "Fix a mutator lock violation in the generic JNI end sequence."

* commit 'e024162070e3ce7e92a65e3b0f62dce7b8a8505a':
  Fix a mutator lock violation in the generic JNI end sequence.

8 years agoMerge "Fix a mutator lock violation in the generic JNI end sequence."
Hiroshi Yamauchi [Tue, 29 Sep 2015 19:07:50 +0000 (19:07 +0000)]
Merge "Fix a mutator lock violation in the generic JNI end sequence."

8 years agoOptimizing: Tag even more arena allocations.
Vladimir Marko [Tue, 29 Sep 2015 18:01:15 +0000 (19:01 +0100)]
Optimizing: Tag even more arena allocations.

Tag previously "Misc" arena allocations with more specific
allocation types. Move some native heap allocations to the
arena in BCE.

Bug: 23736311
Change-Id: If8ef15a8b614dc3314bdfb35caa23862c9d4d25c

8 years agoFix a mutator lock violation in the generic JNI end sequence.
Hiroshi Yamauchi [Tue, 29 Sep 2015 00:47:32 +0000 (17:47 -0700)]
Fix a mutator lock violation in the generic JNI end sequence.

artQuickGenericJniEndTrampoline() was accessing objects without a shared
mutator lock right after returning from a JNI call but before switching
to the runnable state.

This fixes crashes with table lookup read barriers enabled.

Bug: 12687968
Change-Id: I94ad9ca276750f58cb68b2fa9eb8cdeb371f021b

8 years agoART: Remove unnecessary SHARED_REQUIRES in ArtMethod
Andreas Gampe [Tue, 29 Sep 2015 18:21:43 +0000 (11:21 -0700)]
ART: Remove unnecessary SHARED_REQUIRES in ArtMethod

Move DCHECKs in GetAccessFlags into their own block and let them
acquire the mutator lock, if necessary. Then remove the old
annotations.

Change-Id: I29e24f17b001d0e16dc66c01a0f6450efb64ebc6

8 years agoam 0766e3ff: Merge "Revert "Enable optimizations with --debuggable.""
Nicolas Geoffray [Tue, 29 Sep 2015 17:34:39 +0000 (17:34 +0000)]
am 0766e3ff: Merge "Revert "Enable optimizations with --debuggable.""

* commit '0766e3ff5638b14d6b3ea6157c800eed11be5b98':
  Revert "Enable optimizations with --debuggable."

8 years agoMerge "Revert "Enable optimizations with --debuggable.""
Nicolas Geoffray [Tue, 29 Sep 2015 17:30:24 +0000 (17:30 +0000)]
Merge "Revert "Enable optimizations with --debuggable.""

8 years agoRevert "Enable optimizations with --debuggable."
Nicolas Geoffray [Tue, 29 Sep 2015 17:30:10 +0000 (17:30 +0000)]
Revert "Enable optimizations with --debuggable."

Build error with gcc.

This reverts commit 43855ccb01703b188777fe59e1110e6a23803171.

Change-Id: I45abc7ee0943b2ad7bd644c88858891fc7a38ead

8 years agoam de8a3f4d: Merge "Enable optimizations with --debuggable."
Nicolas Geoffray [Tue, 29 Sep 2015 17:08:35 +0000 (17:08 +0000)]
am de8a3f4d: Merge "Enable optimizations with --debuggable."

* commit 'de8a3f4dce1e9ff0e3be16956b06bafc8cd4f397':
  Enable optimizations with --debuggable.

8 years agoam 9baa4df6: Merge "Address some code comments"
Mathieu Chartier [Tue, 29 Sep 2015 17:08:32 +0000 (17:08 +0000)]
am 9baa4df6: Merge "Address some code comments"

* commit '9baa4df684bdf0150bd8632f991708627772ea85':
  Address some code comments

8 years agoMerge "Enable optimizations with --debuggable."
Nicolas Geoffray [Tue, 29 Sep 2015 17:05:26 +0000 (17:05 +0000)]
Merge "Enable optimizations with --debuggable."

8 years agoMerge "Address some code comments"
Mathieu Chartier [Tue, 29 Sep 2015 17:04:17 +0000 (17:04 +0000)]
Merge "Address some code comments"

8 years agoam f6860a5f: Merge "Optimizing: Simplify UShr+And, Shr+And."
Vladimir Marko [Tue, 29 Sep 2015 16:39:14 +0000 (16:39 +0000)]
am f6860a5f: Merge "Optimizing: Simplify UShr+And, Shr+And."

* commit 'f6860a5f12a8fe974b8f25e67a19a71bf0378d62':
  Optimizing: Simplify UShr+And, Shr+And.

8 years agoMerge "Optimizing: Simplify UShr+And, Shr+And."
Vladimir Marko [Tue, 29 Sep 2015 16:33:44 +0000 (16:33 +0000)]
Merge "Optimizing: Simplify UShr+And, Shr+And."

8 years agoAdd deoptimization test.
Jongwon Lee [Thu, 3 Sep 2015 17:33:07 +0000 (02:33 +0900)]
Add deoptimization test.

Test passes with single frame deopt. If we were to deopt the whole
stack, we would need to record (interpreter-)live dex registers at
call sites.

Change-Id: Iebdce60be3fa1b0255fe2fa5ef0cf0b442e061f9
Signed-off-by: Jongwon Lee <jong.won.lee@samsung.com>
8 years agoEnable optimizations with --debuggable.
Nicolas Geoffray [Tue, 29 Sep 2015 14:43:06 +0000 (15:43 +0100)]
Enable optimizations with --debuggable.

Change-Id: I8979e59ee081222687fda1c93ac0bf3acbbad936

8 years agoam a2d8b187: Merge "Fix a bug in DeadPhiHandling around conflicting phis."
Nicolas Geoffray [Tue, 29 Sep 2015 15:24:34 +0000 (15:24 +0000)]
am a2d8b187: Merge "Fix a bug in DeadPhiHandling around conflicting phis."

* commit 'a2d8b187e7b6631692fa1243e86ef16c428fa9da':
  Fix a bug in DeadPhiHandling around conflicting phis.

8 years agoMerge "Fix a bug in DeadPhiHandling around conflicting phis."
Nicolas Geoffray [Tue, 29 Sep 2015 15:18:29 +0000 (15:18 +0000)]
Merge "Fix a bug in DeadPhiHandling around conflicting phis."

8 years agoFix a bug in DeadPhiHandling around conflicting phis.
Nicolas Geoffray [Tue, 29 Sep 2015 12:42:22 +0000 (13:42 +0100)]
Fix a bug in DeadPhiHandling around conflicting phis.

Change-Id: I44ec40f71a7e05eb4295bea55f6045cb86017329

8 years agoam a68ceb1f: Merge "Optimizing: Tag arena allocations in code generators."
Vladimir Marko [Tue, 29 Sep 2015 15:02:40 +0000 (15:02 +0000)]
am a68ceb1f: Merge "Optimizing: Tag arena allocations in code generators."

* commit 'a68ceb1fd5c4f8fe18aacdb33d605919f7d61ddf':
  Optimizing: Tag arena allocations in code generators.

8 years agoMerge "Optimizing: Tag arena allocations in code generators."
Vladimir Marko [Tue, 29 Sep 2015 14:56:04 +0000 (14:56 +0000)]
Merge "Optimizing: Tag arena allocations in code generators."

8 years agoOptimizing: Simplify UShr+And, Shr+And.
Vladimir Marko [Fri, 25 Sep 2015 13:44:17 +0000 (14:44 +0100)]
Optimizing: Simplify UShr+And, Shr+And.

Eliminate And from UShr+And if the And-mask contains all the
bits that can be non-zero after UShr. Transform Shr+And to
UShr if the And-mask precisely clears the shifted-in sign
bits.

This prepares for detecting the Rotate pattern, i.e.
  (x << N) | (x >>> (SIZE - N))
in code that unnecessarily masks the UShr, for example
  (x << 1) | ((x >>> 31) & 1) ,
or uses Shr, for example
  (x << 8) | ((x >> 24) & 0xff) .

Change-Id: I684c4b752547d9b1057d0d4c4d44550bb1a3ffb4

8 years agoam 9139578a: Merge "Quick: Avoid shifting -1 left (undefined behavior)."
Vladimir Marko [Tue, 29 Sep 2015 10:42:40 +0000 (10:42 +0000)]
am 9139578a: Merge "Quick: Avoid shifting -1 left (undefined behavior)."

* commit '9139578addd6d0e51088fc45bfc0972fc97939b7':
  Quick: Avoid shifting -1 left (undefined behavior).

8 years agoMerge "Quick: Avoid shifting -1 left (undefined behavior)."
Vladimir Marko [Tue, 29 Sep 2015 10:37:49 +0000 (10:37 +0000)]
Merge "Quick: Avoid shifting -1 left (undefined behavior)."

8 years agoQuick: Avoid shifting -1 left (undefined behavior).
Vladimir Marko [Tue, 29 Sep 2015 10:25:48 +0000 (11:25 +0100)]
Quick: Avoid shifting -1 left (undefined behavior).

C++11 clarifies that shifting left a negative value is
undefined behavior. Fix legacy code that shifted -1 left.

Bug: 24489455
Change-Id: Iaf4f26c7cde175f039b6a2cad12af6f0b1624fba

8 years agoOptimizing: Tag arena allocations in code generators.
Vladimir Marko [Mon, 28 Sep 2015 11:17:40 +0000 (12:17 +0100)]
Optimizing: Tag arena allocations in code generators.

And completely remove the deprecated GrowableArray.

Replace GrowableArray with ArenaVector in code generators
and related classes and tag arena allocations.

Label arrays use direct allocations from ArenaAllocator
because Label is non-copyable and non-movable and as such
cannot be really held in a container. The GrowableArray
never actually constructed them, instead relying on the
zero-initialized storage from the arena allocator to be
correct. We now actually construct the labels.

Also avoid StackMapStream::ComputeDexRegisterMapSize() being
passed null references, even though unused.

Change-Id: I26a46fdd406b23a3969300a67739d55528df8bf4

8 years agoam d8750f3c: Merge "Use dominance information for null optimization in write barrier."
Nicolas Geoffray [Tue, 29 Sep 2015 09:22:34 +0000 (09:22 +0000)]
am d8750f3c: Merge "Use dominance information for null optimization in write barrier."

* commit 'd8750f3ce82225013f078c98caec0c8922a3689a':
  Use dominance information for null optimization in write barrier.

8 years agoMerge "Use dominance information for null optimization in write barrier."
Nicolas Geoffray [Tue, 29 Sep 2015 09:18:46 +0000 (09:18 +0000)]
Merge "Use dominance information for null optimization in write barrier."

8 years agoUse dominance information for null optimization in write barrier.
Nicolas Geoffray [Mon, 28 Sep 2015 15:25:37 +0000 (16:25 +0100)]
Use dominance information for null optimization in write barrier.

Change-Id: I8b57dafcd321c9afa1bbfc6a0674cbea15cbf10c

8 years agoAddress some code comments
Mathieu Chartier [Fri, 25 Sep 2015 23:54:59 +0000 (16:54 -0700)]
Address some code comments

Change-Id: I0a38a387c4328d45bbc04d095bf3388c27495c12

8 years agoam 931e2684: Merge "ART: Single-frame deopt"
Andreas Gampe [Mon, 28 Sep 2015 22:45:03 +0000 (22:45 +0000)]
am 931e2684: Merge "ART: Single-frame deopt"

* commit '931e26843bbb688eacfa67b40414c6b8f221a56a':
  ART: Single-frame deopt

8 years agoMerge "ART: Single-frame deopt"
Andreas Gampe [Mon, 28 Sep 2015 22:40:18 +0000 (22:40 +0000)]
Merge "ART: Single-frame deopt"

8 years agoART: Single-frame deopt
Andreas Gampe [Wed, 3 Jun 2015 18:22:45 +0000 (11:22 -0700)]
ART: Single-frame deopt

Add deoptimization of a single frame. Works by removing the managed
code frame and jumping into the quick-to-interpreter bridge, and
the bridge understanding a stored ShadowFrame.

We need a separate fixup pass. For x86, we leave the return address
on the stack so we don't need to push it there.

Bug: 21611912
Change-Id: I06625685ced8b054244f8685ab50b238a705b9d2

8 years agoam ac87001c: Merge "Don\'t unload shared libraries for null class loader."
Mathieu Chartier [Mon, 28 Sep 2015 18:23:46 +0000 (18:23 +0000)]
am ac87001c: Merge "Don\'t unload shared libraries for null class loader."

* commit 'ac87001cbbd44b436cc7866f7a41037ca83b17f1':
  Don't unload shared libraries for null class loader.

8 years agoMerge "Don't unload shared libraries for null class loader."
Mathieu Chartier [Mon, 28 Sep 2015 17:52:52 +0000 (17:52 +0000)]
Merge "Don't unload shared libraries for null class loader."

8 years agoDon't unload shared libraries for null class loader.
Mathieu Chartier [Mon, 28 Sep 2015 17:33:00 +0000 (10:33 -0700)]
Don't unload shared libraries for null class loader.

If we load a shared library in the boot class loader (null),
then we create the SharedLibrary with a null class loader. We
shouldn't unload this shared library if the class loader decodes to
null since it may still be in use.

Fixes some hangs in gcstress tests.

Bug: 22720414
Change-Id: I52eca4cdba2c5ddd8e3dc7d133d253e5626c5b44

8 years agoam 85e5207e: Merge "ART: Run arch specific Checker tests on host"
David Brazdil [Mon, 28 Sep 2015 15:26:40 +0000 (15:26 +0000)]
am 85e5207e: Merge "ART: Run arch specific Checker tests on host"

* commit '85e5207ef094f99081539333bd868ce721c6fd73':
  ART: Run arch specific Checker tests on host

8 years agoMerge "ART: Run arch specific Checker tests on host"
David Brazdil [Mon, 28 Sep 2015 15:23:06 +0000 (15:23 +0000)]
Merge "ART: Run arch specific Checker tests on host"

8 years agoam cf3f991b: Merge "ART: Use unique_ptr for alloca-ed ShadowFrames"
Andreas Gampe [Mon, 28 Sep 2015 15:17:56 +0000 (15:17 +0000)]
am cf3f991b: Merge "ART: Use unique_ptr for alloca-ed ShadowFrames"

* commit 'cf3f991b0dbad7edd28958aee199f1d06f648984':
  ART: Use unique_ptr for alloca-ed ShadowFrames

8 years agoam 722b5a75: Merge "Use make TARGET_LINKER= instead of overriding linker flags."
Nicolas Geoffray [Mon, 28 Sep 2015 15:17:54 +0000 (15:17 +0000)]
am 722b5a75: Merge "Use make TARGET_LINKER= instead of overriding linker flags."

* commit '722b5a7580e2d1e7a0327f46615d4c24acba9baa':
  Use make TARGET_LINKER= instead of overriding linker flags.

8 years agoART: Run arch specific Checker tests on host
David Brazdil [Mon, 28 Sep 2015 15:15:50 +0000 (16:15 +0100)]
ART: Run arch specific Checker tests on host

The run-test script would not pass an architecture to Checker when
not in target mode and tests specific to x86(_64) would therefore not
be run.

Change-Id: Ibcbad0135e7a870e6ad3f09ab612fe276c97bcb8

8 years agoMerge "ART: Use unique_ptr for alloca-ed ShadowFrames"
Andreas Gampe [Mon, 28 Sep 2015 15:13:57 +0000 (15:13 +0000)]
Merge "ART: Use unique_ptr for alloca-ed ShadowFrames"

8 years agoMerge "Use make TARGET_LINKER= instead of overriding linker flags."
Nicolas Geoffray [Mon, 28 Sep 2015 15:11:19 +0000 (15:11 +0000)]
Merge "Use make TARGET_LINKER= instead of overriding linker flags."

8 years agoUse make TARGET_LINKER= instead of overriding linker flags.
Nicolas Geoffray [Mon, 28 Sep 2015 15:08:42 +0000 (16:08 +0100)]
Use make TARGET_LINKER= instead of overriding linker flags.

This solves building mips32 with gcc.

That's a temporary measure until we can set a custom target.

Change-Id: I1e8acfb0f5ca7e28d2ba3fb230b42800d5782973

8 years agoam e60c633e: Merge "ART: Fix DeadPhiHandling creating >2 equivalents"
David Brazdil [Mon, 28 Sep 2015 14:42:33 +0000 (14:42 +0000)]
am e60c633e: Merge "ART: Fix DeadPhiHandling creating >2 equivalents"

* commit 'e60c633e2843282ff528ca73366aab6af059bfa8':
  ART: Fix DeadPhiHandling creating >2 equivalents

8 years agoMerge "ART: Fix DeadPhiHandling creating >2 equivalents"
David Brazdil [Mon, 28 Sep 2015 14:37:25 +0000 (14:37 +0000)]
Merge "ART: Fix DeadPhiHandling creating >2 equivalents"

8 years agoART: Fix DeadPhiHandling creating >2 equivalents
David Brazdil [Mon, 28 Sep 2015 13:11:09 +0000 (14:11 +0100)]
ART: Fix DeadPhiHandling creating >2 equivalents

Run test 531 failed a DCHECK because the DeadPhiHandling algorithm
would generate three phis of the same type:
  (0) loop phi [#0, ref] with equivalents void & object
  (1) type object equivalent by its first input => int & int
  (2) request object equivalent by a user => int & int & object
  (3) type second => int & object & object (dead)
  (4) type first => object & object & object

This patch fixes the issue by skipping (1) when the phi already has
a type, thus not creating the third equivalent for the phi's user.

Change-Id: I00c990a5982ddc1f7de013f72bbcfb1c649a6e5f

8 years agoam 6adb995d: Merge "Address HPackedSwitch issues raised after merge"
David Brazdil [Mon, 28 Sep 2015 12:26:30 +0000 (12:26 +0000)]
am 6adb995d: Merge "Address HPackedSwitch issues raised after merge"

* commit '6adb995d8e0177189bf77e9a0f6fce7ded87d993':
  Address HPackedSwitch issues raised after merge

8 years agoMerge "Address HPackedSwitch issues raised after merge"
David Brazdil [Mon, 28 Sep 2015 12:22:17 +0000 (12:22 +0000)]
Merge "Address HPackedSwitch issues raised after merge"

8 years agoAddress HPackedSwitch issues raised after merge
Mark Mendell [Thu, 24 Sep 2015 12:43:40 +0000 (08:43 -0400)]
Address HPackedSwitch issues raised after merge

There were some stylistic comments about the merged files.  Fix those.

Add a test that PackedSwitch can be removed by DCE.

Change-Id: Idf45833956e9b58051f942a52b06a1e416606e2e
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
8 years agoam 6a9984e6: Merge "Revert "Revert "lambda: Experimental support for capture-variable...
Igor Murashkin [Mon, 28 Sep 2015 02:59:24 +0000 (02:59 +0000)]
am 6a9984e6: Merge "Revert "Revert "lambda: Experimental support for capture-variable and liberate-variable"""

* commit '6a9984e62c08bcd78c8e49dd40b1f0f9d53513b7':
  Revert "Revert "lambda: Experimental support for capture-variable and liberate-variable""

8 years agoMerge "Revert "Revert "lambda: Experimental support for capture-variable and liberate...
Igor Murashkin [Mon, 28 Sep 2015 02:55:40 +0000 (02:55 +0000)]
Merge "Revert "Revert "lambda: Experimental support for capture-variable and liberate-variable"""