OSDN Git Service

android-x86/art.git
10 years agoART: Reject field accesses to non-reference vregs.
Stephen Kyle [Fri, 22 Aug 2014 14:03:07 +0000 (15:03 +0100)]
ART: Reject field accesses to non-reference vregs.

The verifier will now reject any iget/iput insts
that do not have a reference object in vB.

Bug: 17207857
Change-Id: I2826f0f7abfc88561f4da9486588592f4b296d14
Signed-off-by: Stuart Monteith <stuart.monteith@arm.com>
10 years agoMerge "ART: Add dex dependency for gtest"
Andreas Gampe [Fri, 22 Aug 2014 04:44:19 +0000 (04:44 +0000)]
Merge "ART: Add dex dependency for gtest"

10 years agoMerge "Fix signal test build"
Dave Allison [Fri, 22 Aug 2014 01:16:56 +0000 (01:16 +0000)]
Merge "Fix signal test build"

10 years agoFix signal test build
Dave Allison [Fri, 22 Aug 2014 00:22:38 +0000 (17:22 -0700)]
Fix signal test build

Bug: 17188805

(cherry picked from commit b9d6a55eb4eb5872739ed26ac535f0c6342e813b)

Change-Id: I0a271aa214eebe11a8442ebf68811e0d8f077d36

10 years agoMerge "Add supported architectures to signal test."
Dave Allison [Fri, 22 Aug 2014 01:12:53 +0000 (01:12 +0000)]
Merge "Add supported architectures to signal test."

10 years agoMerge "Fix fault handler to unregister on shutdown"
Dave Allison [Fri, 22 Aug 2014 01:12:30 +0000 (01:12 +0000)]
Merge "Fix fault handler to unregister on shutdown"

10 years agoMerge "Remove profiler log line"
Dave Allison [Fri, 22 Aug 2014 01:12:03 +0000 (01:12 +0000)]
Merge "Remove profiler log line"

10 years agoART: Add dex dependency for gtest
Andreas Gampe [Fri, 22 Aug 2014 01:04:38 +0000 (18:04 -0700)]
ART: Add dex dependency for gtest

Change-Id: I22d5e9b69e40585c6ee57381ee758b4b32e07f96

10 years agoMerge "ART: Remove a BasicBlock's fall_through pointer in Hide()"
Ian Rogers [Thu, 21 Aug 2014 23:44:23 +0000 (23:44 +0000)]
Merge "ART: Remove a BasicBlock's fall_through pointer in Hide()"

10 years agoMerge "Avoid handle-less fields in ClassLinker::InitializeClass()"
Hiroshi Yamauchi [Thu, 21 Aug 2014 23:34:51 +0000 (23:34 +0000)]
Merge "Avoid handle-less fields in ClassLinker::InitializeClass()"

10 years agoMerge "ART: Implement kMirOpNullCheck"
Ian Rogers [Thu, 21 Aug 2014 23:34:14 +0000 (23:34 +0000)]
Merge "ART: Implement kMirOpNullCheck"

10 years agoAvoid handle-less fields in ClassLinker::InitializeClass()
Hiroshi Yamauchi [Thu, 21 Aug 2014 22:59:43 +0000 (15:59 -0700)]
Avoid handle-less fields in ClassLinker::InitializeClass()

There were some handle-less fields in a SafeMap across GC points.

Bug: 12687968
Change-Id: Ib8c6527d4e23031f1d0074fa11d8f85499b68340

10 years agoMerge "Make a couple of map checks debug only."
Brian Carlstrom [Thu, 21 Aug 2014 22:58:24 +0000 (22:58 +0000)]
Merge "Make a couple of map checks debug only."

10 years agoMerge "Fix host 64-bit ISA string"
Andreas Gampe [Thu, 21 Aug 2014 22:18:06 +0000 (22:18 +0000)]
Merge "Fix host 64-bit ISA string"

10 years agoFix host 64-bit ISA string
Alex Light [Thu, 21 Aug 2014 17:00:27 +0000 (10:00 -0700)]
Fix host 64-bit ISA string

Bug: 1718561915358152

Change-Id: I5b80e36890abf659634c38ec7dd6fa336bf8a75a

10 years agoMake a couple of map checks debug only.
Narayan Kamath [Thu, 21 Aug 2014 16:38:09 +0000 (17:38 +0100)]
Make a couple of map checks debug only.

This cost us close to 80ms in app startup times.

The checks that a reused region was within an already
existent map has been demoted to a debug check.

A couple of other negative checks have been removed
outright because one of them was superflous and the other
wasn't guaranteed to be correct.

bug: 16828525

(cherry picked from commit bddaea2b88b0a19d9cc7a4dea772af8e829323b3)

Change-Id: Ia6f3e69692bb9cb5b4ff6f47946ea38a56d4cdb6

10 years agoMerge "ART: Remove GOT setup from x86 assembly where not needed"
Andreas Gampe [Thu, 21 Aug 2014 20:24:24 +0000 (20:24 +0000)]
Merge "ART: Remove GOT setup from x86 assembly where not needed"

10 years agoART: Remove GOT setup from x86 assembly where not needed
Andreas Gampe [Thu, 21 Aug 2014 01:21:45 +0000 (18:21 -0700)]
ART: Remove GOT setup from x86 assembly where not needed

Change-Id: Id839d6d6427da7b7faa4340e04085cdab388e9a5

10 years agoFix fault handler to unregister on shutdown
Dave Allison [Thu, 21 Aug 2014 00:38:41 +0000 (17:38 -0700)]
Fix fault handler to unregister on shutdown

This fixes a problem with the fault handler where it wasn't
unregistering itself during shutdown of the runtime.

Bug: 17133266

(cherry picked from commit e8b9afcd0cd86b8808af29a97332038aab70c604)

Change-Id: I1a4ec4292ec049046dda30769265680201729efb

10 years agoMerge "ART: A couple of checks were missed in class LockWord"
Ian Rogers [Thu, 21 Aug 2014 18:49:06 +0000 (18:49 +0000)]
Merge "ART: A couple of checks were missed in class LockWord"

10 years agoAdd supported architectures to signal test.
Dave Allison [Wed, 20 Aug 2014 21:29:39 +0000 (14:29 -0700)]
Add supported architectures to signal test.

This adds ARM, AARCH64, i386 and x86_64 to the supported architectures
in 004-SignalTest

Bug: 16948053

(cherry picked from commit d4af31aa69fe8786a291c566c375bbac04da9ced)

Change-Id: I17a992b2cf47f8744f867b8e3f1c360aa345093d

10 years agoRemove profiler log line
Dave Allison [Thu, 21 Aug 2014 16:45:04 +0000 (09:45 -0700)]
Remove profiler log line

This removes a LOG(INFO) saying that the profile is disabled.

Bug: 17166556

(cherry picked from commit b9c3888380666a7b44718f04f787693787cd57c6)

Change-Id: I9c9c470f554605a1183bcf84c5d864f9c4f24f72

10 years agoMerge "x86: A couple of minor changes for String.indexOf() inlining"
Ian Rogers [Thu, 21 Aug 2014 18:38:48 +0000 (18:38 +0000)]
Merge "x86: A couple of minor changes for String.indexOf() inlining"

10 years agoMerge "ART: Fix verifier fail message."
Ian Rogers [Thu, 21 Aug 2014 18:30:14 +0000 (18:30 +0000)]
Merge "ART: Fix verifier fail message."

10 years agoMerge "Fix OOM test case to handle more optimizations"
Ian Rogers [Thu, 21 Aug 2014 17:52:05 +0000 (17:52 +0000)]
Merge "Fix OOM test case to handle more optimizations"

10 years agoMerge "Check pending exception result in AllocObjectWithAllocator."
Mathieu Chartier [Thu, 21 Aug 2014 16:45:17 +0000 (16:45 +0000)]
Merge "Check pending exception result in AllocObjectWithAllocator."

10 years agoCheck pending exception result in AllocObjectWithAllocator.
Mathieu Chartier [Thu, 21 Aug 2014 01:19:23 +0000 (18:19 -0700)]
Check pending exception result in AllocObjectWithAllocator.

Possible previous bug:
Allocation fails due to OOM and the collector transitions.
This caused us to incorrectly retry the allocation with a pending
exception. We now return null if there is a pending exception.

Bug: 17164348

(cherry picked from commit 27f5ae830c5418fa92094608a6e9f693ea88bb69)

Change-Id: I8e7ecafbade7f0b955812df3dd7c94fdc696c856

10 years agoMerge "Fixed wrong field usage in Instrumentation::RemoveListener"
Sebastien Hertz [Thu, 21 Aug 2014 14:52:34 +0000 (14:52 +0000)]
Merge "Fixed wrong field usage in Instrumentation::RemoveListener"

10 years agoFixed wrong field usage in Instrumentation::RemoveListener
Daniel Mihalyi [Thu, 21 Aug 2014 13:57:25 +0000 (15:57 +0200)]
Fixed wrong field usage in Instrumentation::RemoveListener

Change-Id: I574fcacf754c1da1dc03459d5859b04bcebeac11
Signed-off-by: Daniel Mihalyi <daniel.mihalyi@mattakis.com>
10 years agoMerge "Kill HAVE_ANDROID_PTHREAD_SETNAME_NP."
Elliott Hughes [Thu, 21 Aug 2014 04:13:56 +0000 (04:13 +0000)]
Merge "Kill HAVE_ANDROID_PTHREAD_SETNAME_NP."

10 years agoKill HAVE_ANDROID_PTHREAD_SETNAME_NP.
Elliott Hughes [Thu, 21 Aug 2014 03:18:18 +0000 (20:18 -0700)]
Kill HAVE_ANDROID_PTHREAD_SETNAME_NP.

All it means is __BIONIC__ anyway.

Change-Id: I3ef4ef1a14d0a77c75539f2ab533ee2f3964e1a5

10 years agoMerge "ART: Relax GetInstructionSetFromString"
Andreas Gampe [Thu, 21 Aug 2014 00:59:30 +0000 (00:59 +0000)]
Merge "ART: Relax GetInstructionSetFromString"

10 years agoART: Remove a BasicBlock's fall_through pointer in Hide()
Jean Christophe Beyler [Wed, 18 Jun 2014 21:14:15 +0000 (14:14 -0700)]
ART: Remove a BasicBlock's fall_through pointer in Hide()

Remove the fall_through link that a BasicBlock has to its child when
calling its Hide function.  Useful for removing the visible link that is
there when we dump the CFG.

Change-Id: Ie82c48b195d1d62e2984d284dcc29ed7d7444db2
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
10 years agoART: Relax GetInstructionSetFromString
Andreas Gampe [Wed, 20 Aug 2014 00:28:06 +0000 (17:28 -0700)]
ART: Relax GetInstructionSetFromString

Do not abort on an unknown instruction set string. Instead return
kNone and let the caller handle this.

Also simplify the patchoat tool to use this.

Bug: 17136416

(cherry picked from commit aabbb2066a715b3fd8e752291f74c6d77b970450)

Change-Id: I24131914bcf91c04ae93179bf809a2907f1f2b7a

10 years agoMerge "Make common BitVector operations inline-able."
Ian Rogers [Wed, 20 Aug 2014 23:22:57 +0000 (23:22 +0000)]
Merge "Make common BitVector operations inline-able."

10 years agoMake common BitVector operations inline-able.
Ian Rogers [Wed, 20 Aug 2014 22:08:45 +0000 (15:08 -0700)]
Make common BitVector operations inline-able.

Change-Id: Ie25de4fae56c6712539f04172c42e3eff57df7ca

10 years agoMerge "bionic has always had gettid."
Elliott Hughes [Wed, 20 Aug 2014 22:48:19 +0000 (22:48 +0000)]
Merge "bionic has always had gettid."

10 years agobionic has always had gettid.
Elliott Hughes [Wed, 20 Aug 2014 22:00:04 +0000 (15:00 -0700)]
bionic has always had gettid.

dex2oat calls GetTid for every line it outputs via Message, which is why
this showed up so much in strace.

Bug: 17049821
Change-Id: Ib51c7f88410b291692874023902cf43f4b9a9d1c

10 years agoART: Implement kMirOpNullCheck
Razvan A Lupusoru [Mon, 4 Aug 2014 16:38:46 +0000 (09:38 -0700)]
ART: Implement kMirOpNullCheck

The semantics of kMirOpNullCheck is to check object for null and
throw exception in that case. However, the implementation for it
is empty. This has been changed and appropriate dataflow have been
added to correctly reflect behavior.

In order to allow testing of implementation, the SpecialMethodInliner
has been updated to get rid of invoke and use this instead. This helps
all optimizations which do not check the MIR_INLINED flag because
when invoke is left in, they believe that invoke will still be done.

Change-Id: I62e425e42bdbc6357246fb949db5f79de73cf358
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
10 years agoMerge "Enable large object space for zygote."
Mathieu Chartier [Wed, 20 Aug 2014 17:00:48 +0000 (17:00 +0000)]
Merge "Enable large object space for zygote."

10 years agoEnable large object space for zygote.
Mathieu Chartier [Wed, 20 Aug 2014 01:24:04 +0000 (18:24 -0700)]
Enable large object space for zygote.

We now enable the large object space before the zygote fork.
This reduces the size of the zygote and removes the need for
excessive explicit GCs during phone booting.

Changed the card set mod union table to support forgetting cards.
If a card has no non null references which are in another space
then it is removed from the set.

Added logging of the zygote size when you do a SIGQUIT.

Dalvik PSS is the same or slightly lower (1-3%).

Zygote space size:
Before: 15MB
After: 8MB (+ some large objects).

TODO: Combine remembered sets and mod union tables into a single
interface.

Bug: 16398684
Change-Id: Ie48cdf35004a0a37eedb1ccc1bf214b1fa9e0cca

10 years agoMerge "Quick compiler: fix Arm64 inline locking code"
buzbee [Wed, 20 Aug 2014 13:33:58 +0000 (13:33 +0000)]
Merge "Quick compiler: fix Arm64 inline locking code"

10 years agoQuick compiler: fix Arm64 inline locking code
buzbee [Tue, 19 Aug 2014 23:47:06 +0000 (16:47 -0700)]
Quick compiler: fix Arm64 inline locking code

The Arm64 monitor enter code was incorrectly comparing the
thread ID to zero rather than the lock value to determine if the
inline fast path was doable.  As a result, we ended up always
using the out-of-line case.

internal b/16707253

Change-Id: I499530da84beecf1f3f5c5ebb666e3eb12599ac0

10 years agoMerge "Merge stack usage reduction for overflow checks"
Dave Allison [Wed, 20 Aug 2014 01:08:13 +0000 (01:08 +0000)]
Merge "Merge stack usage reduction for overflow checks"

10 years agoMerge stack usage reduction for overflow checks
Dave Allison [Thu, 14 Aug 2014 17:02:48 +0000 (17:02 +0000)]
Merge stack usage reduction for overflow checks

Cherry pick from: b038ba66a166fb264ca121632f447712e0973b5b

Change-Id: I19999e72ff731d4fc73d91b9ff767de5858c15ee

10 years agoFix OOM test case to handle more optimizations
Mark Mendell [Tue, 19 Aug 2014 02:19:06 +0000 (22:19 -0400)]
Fix OOM test case to handle more optimizations

The 080-oom-throw test case has some code in triggerInstanceOOM to
exhaust memory.  Unfortunately, a sufficiently intelligent compiler can
inline the call to memEater.confuseCompilerOptimization and realize that
it is a no-op.  In that case, the memEater variable is dead, and if a
compiler can improve the GC map, the only live heap data will be the
last allocated chunk.

Fix this by ensuring that the start of the chain (memEater) is really
live. Also ensure that it becomes dead before exiting the method, or the
subsequent println will fail allocating memory.

Change-Id: I345ebc3e19bd86e176c616ff18bcac4ed8dbb419
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
10 years agoMerge "Really fix target gtest dependencies"
Brian Carlstrom [Mon, 18 Aug 2014 23:42:43 +0000 (23:42 +0000)]
Merge "Really fix target gtest dependencies"

10 years agoReally fix target gtest dependencies
Brian Carlstrom [Mon, 18 Aug 2014 23:07:10 +0000 (16:07 -0700)]
Really fix target gtest dependencies

In 64006834b26f7138131fac87c3b0973cda70e560 we started depending on
TARGET_CORE_JARS which are phony targets and undefined when using
"mm test-art-target".

Change-Id: I671c5d6068ff999782ad5f388f3077f4c1594884

10 years agoAttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.
Brian Carlstrom [Mon, 18 Aug 2014 22:38:34 +0000 (15:38 -0700)]
AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.

Bug: 17108693
Change-Id: I346cc090e091605c552e5954d7ea1ca4874cea5f

10 years agoMerge "AttachCurrentThread should only warn on missing thread name if CheckJNI is...
Brian Carlstrom [Mon, 18 Aug 2014 23:42:35 +0000 (23:42 +0000)]
Merge "AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled."

10 years agoART: Fix verifier fail message.
Elena Sayapina [Fri, 15 Aug 2014 08:52:42 +0000 (15:52 +0700)]
ART: Fix verifier fail message.

Verifier failure message is corrupted.
The verification failure reason overlaps verification failure location.
MethodVerifier::Fail() method creates failure message stream by
std::ostringstream(failure location) constructor which by default
sets the stream's position indicator to the begging of that stream.
Inserting failure reason to the stream by "<<" then overrides the failure location.
Using std::ostringstream(failure location, std::ostringstream::ate) fixes the issue
by setting the stream's position indicator to the end of the stream on opening.

Change-Id: I8cc1cffc95bc5c56aadbb9ab8c0cdc8bc680d6f4
Signed-off-by: Elena Sayapina <elena.v.sayapina@intel.com>
10 years agoMerge "Improve GVN performance when merging null-checked values."
Vladimir Marko [Wed, 20 Aug 2014 11:45:55 +0000 (11:45 +0000)]
Merge "Improve GVN performance when merging null-checked values."

10 years agoImprove GVN performance when merging null-checked values.
Vladimir Marko [Tue, 19 Aug 2014 17:08:39 +0000 (18:08 +0100)]
Improve GVN performance when merging null-checked values.

And ignore the limit on maximum number of processed basic
blocks once the GVN has actually converged and we're just
applying optimizations.

Bug: 16398693
Change-Id: Ie5aa0386ea4e0e9ae2bbf13963e2424e1713b22f

10 years agoMerge "Fix JDWP event races"
Sebastien Hertz [Tue, 19 Aug 2014 12:09:20 +0000 (12:09 +0000)]
Merge "Fix JDWP event races"

10 years agoFix JDWP event races
Sebastien Hertz [Mon, 18 Aug 2014 17:26:39 +0000 (19:26 +0200)]
Fix JDWP event races

Fix a race where the JDWP connection could be closed before the VM_DEATH event
is sent during runtime shutdown.

Fix potential race where we could wait forever for the JDWP thread to establish
connection.

Bug: 16720689

(cherry picked from commit d8b3537b89fa68599534a65afc3b272639cd4a75)

Change-Id: I4b8996ade6a38fa8f7f23c3000b7184b162907d7

10 years agoMerge "Fix heap corruption and verification."
Mathieu Chartier [Tue, 19 Aug 2014 00:44:50 +0000 (00:44 +0000)]
Merge "Fix heap corruption and verification."

10 years agoFix heap corruption and verification.
Mathieu Chartier [Mon, 18 Aug 2014 22:02:59 +0000 (15:02 -0700)]
Fix heap corruption and verification.

There was a faulty assumption that space End() was always aligned to
card boundaries. This was true for all spaces other than the image
and resulted in heap corruption when the last object of the image
space contained a reference to an object in another space.

Also fixed an error where we called the pre GC verification post GC.

Bug: 17080623

(cherry picked from commit 6724d8649ab73e4fb86c8014bda51b13bddf2f3f)

Change-Id: I931149421c738653863eb6105dfdf7ecd750601a

10 years agoMerge "AArch64: Add tbz/tbnz and tst."
Vladimir Marko [Tue, 19 Aug 2014 09:58:50 +0000 (09:58 +0000)]
Merge "AArch64: Add tbz/tbnz and tst."

10 years agoAArch64: Add tbz/tbnz and tst.
Zheng Xu [Mon, 18 Aug 2014 09:28:22 +0000 (17:28 +0800)]
AArch64: Add tbz/tbnz and tst.

Since the branch offset supported by tbz/tbnz is quite small(-32k ~ +32k),
it will be replaced by tst and beq/bneq in the fix-up stage if the branch
offset is too large.

Change-Id: I4cace06bec6425e0f2e1f5f7c471eec08d06bca6

10 years agoMerge "X86: Fix alias info in GenInlinedIndexOf()."
Vladimir Marko [Wed, 20 Aug 2014 10:43:39 +0000 (10:43 +0000)]
Merge "X86: Fix alias info in GenInlinedIndexOf()."

10 years agoX86: Fix alias info in GenInlinedIndexOf().
Vladimir Marko [Tue, 19 Aug 2014 14:00:34 +0000 (15:00 +0100)]
X86: Fix alias info in GenInlinedIndexOf().

For 32-bit X86, GenInlinedIndexOf() pushes and pops EDI. In
one branch it then calls Load32Disp() with adjusted stack
offset. That calculates wrong alias_info for the generated
insn. If left unfixed, this could confuse load hoisting.

Bug: 17128502
Change-Id: I0ea07b8f5e25410e290304f662d5fd5bf66c0933

10 years agoMerge "Fix bug introduced in https://android-review.googlesource.com/102610."
Nicolas Geoffray [Wed, 20 Aug 2014 10:22:35 +0000 (10:22 +0000)]
Merge "Fix bug introduced in https://android-review.googlesource.com/102610."

10 years agoFix bug introduced in https://android-review.googlesource.com/102610.
Nicolas Geoffray [Wed, 20 Aug 2014 03:59:12 +0000 (04:59 +0100)]
Fix bug introduced in https://android-review.googlesource.com/102610.

Also make oatdump work again.

Change-Id: Iab96971645f40585bc04769d410f2273d3977f51

10 years agoMerge "Add null check to CheckVirtualMethod"
Mathieu Chartier [Wed, 20 Aug 2014 20:56:42 +0000 (20:56 +0000)]
Merge "Add null check to CheckVirtualMethod"

10 years agoAdd null check to CheckVirtualMethod
Mathieu Chartier [Wed, 20 Aug 2014 19:09:38 +0000 (12:09 -0700)]
Add null check to CheckVirtualMethod

There was a runtime SIGSEGV that should have been a check jni
failure.

Also added regression test.

Bug: 16320699

(cherry picked from commit 167350d9c781c5e3893714bb26ab5cb1c4abf6b4)

Change-Id: I7edea6af6517f1e5628678e824b8307daf491418

10 years agoMerge "Workaround problem reading main stack on intel devices."
Dave Allison [Wed, 20 Aug 2014 19:49:40 +0000 (19:49 +0000)]
Merge "Workaround problem reading main stack on intel devices."

10 years agoWorkaround problem reading main stack on intel devices.
Dave Allison [Mon, 18 Aug 2014 22:49:51 +0000 (15:49 -0700)]
Workaround problem reading main stack on intel devices.

This works around a problem where ART can't read the lowest page
of the main stack.  The workaround is to add 4K to the stack
start address on the main stack on Intel.

Please see https://b2.corp.google.com/issues/17111575 for
underlying cause.

Cherry picked from d970bac690baa6f735b0cd187440546869088a0f

Bug: 17031544
Change-Id: Ifc3216e10160bb1eec9d989fd57b10345bc89537

10 years agoMerge "Optimized instrumentation listener handling"
Ian Rogers [Mon, 18 Aug 2014 18:22:03 +0000 (18:22 +0000)]
Merge "Optimized instrumentation listener handling"

10 years agoOptimized instrumentation listener handling
Daniel Mihalyi [Mon, 18 Aug 2014 16:45:31 +0000 (18:45 +0200)]
Optimized instrumentation listener handling

Some instrumentation listener lists may be modified while iterating
over the list to deliver an instrumentation event. Therefore the
previous implementation copied the list of listeners before starting
the iteration.

This new implementation only copies the list of instrumentation
listeners when the list is changed. Instances of the list are
reference counted using std::shared_ptr<>.

Change-Id: I1b84db1f2042836dc1110925243f49e5790156d6

10 years agoMerge "[MIPS] Fix the code generated by GenSelectConst32"
Andreas Gampe [Mon, 18 Aug 2014 20:00:14 +0000 (20:00 +0000)]
Merge "[MIPS] Fix the code generated by GenSelectConst32"

10 years agoMerge "ART: Do not recursively abort when visiting locks in a bad state"
Andreas Gampe [Mon, 18 Aug 2014 16:41:58 +0000 (16:41 +0000)]
Merge "ART: Do not recursively abort when visiting locks in a bad state"

10 years agoART: Do not recursively abort when visiting locks in a bad state
Andreas Gampe [Sat, 16 Aug 2014 20:41:10 +0000 (13:41 -0700)]
ART: Do not recursively abort when visiting locks in a bad state

This avoids a nested abort in VisitLocks.

Bug: 1708062116382675

(cherry picked from commit 760172c3ccd6e75f6f1a89d8006934e8ffb1303e)

Change-Id: Id604976ac9dcac0e319fb25cab4d2cbc98d7ee24

10 years agoMerge "ART: Avoid expensive class lookup in compiler driver"
Andreas Gampe [Mon, 18 Aug 2014 16:40:13 +0000 (16:40 +0000)]
Merge "ART: Avoid expensive class lookup in compiler driver"

10 years agoART: Avoid expensive class lookup in compiler driver
Andreas Gampe [Sat, 16 Aug 2014 05:35:46 +0000 (22:35 -0700)]
ART: Avoid expensive class lookup in compiler driver

When we are not compiling multidex, avoid an expensive by-descriptor
lookup for classes when deciding whether to skip compilation.

Bug: 17072698

(cherry picked from commit d84f916d35bb0dc74d7daa075b883e5ee1ce1109)

Change-Id: I19bcb2a2928207fcae0badd466cdc52945bd37c4

10 years agoMerge "Update ziparchive usage to the new API."
Piotr Jastrzebski [Mon, 18 Aug 2014 08:27:04 +0000 (08:27 +0000)]
Merge "Update ziparchive usage to the new API."

10 years agoMerge "Check that we don't accidentally invoke compiled code when -Xint."
Hiroshi Yamauchi [Mon, 18 Aug 2014 18:53:39 +0000 (18:53 +0000)]
Merge "Check that we don't accidentally invoke compiled code when -Xint."

10 years agoCheck that we don't accidentally invoke compiled code when -Xint.
Hiroshi Yamauchi [Sat, 16 Aug 2014 00:11:12 +0000 (17:11 -0700)]
Check that we don't accidentally invoke compiled code when -Xint.

The heap poisoning breakge (b/17018234) would have been detected with
this check.

Bug: 17018234
Change-Id: If4827ea1b02396d41012f0955e55c887387a0565

10 years agoMerge "Avoid handle-less methods in ClassLinker::LinkInterfaceMethods()."
Hiroshi Yamauchi [Tue, 19 Aug 2014 21:58:24 +0000 (21:58 +0000)]
Merge "Avoid handle-less methods in ClassLinker::LinkInterfaceMethods()."

10 years agoAvoid handle-less methods in ClassLinker::LinkInterfaceMethods().
Hiroshi Yamauchi [Tue, 19 Aug 2014 20:10:36 +0000 (13:10 -0700)]
Avoid handle-less methods in ClassLinker::LinkInterfaceMethods().

There were some handle-less methods in local variables across
potential GC points.

Bug: 12687968

Change-Id: I786fbaadf7a52e98194080c67c90fc1c35060d59

10 years agoMerge "Make apps able to run with a failing patchoat"
Brian Carlstrom [Tue, 19 Aug 2014 21:11:18 +0000 (21:11 +0000)]
Merge "Make apps able to run with a failing patchoat"

10 years agoMake apps able to run with a failing patchoat
Alex Light [Thu, 14 Aug 2014 21:16:26 +0000 (14:16 -0700)]
Make apps able to run with a failing patchoat

Bug: 17000769

Change-Id: I0a1a4dc7f5d4bb268530840302ecfb1555231e05

10 years agoMerge "ART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test"
Andreas Gampe [Tue, 19 Aug 2014 21:03:22 +0000 (21:03 +0000)]
Merge "ART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test"

10 years agoART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test
Andreas Gampe [Mon, 18 Aug 2014 23:43:12 +0000 (16:43 -0700)]
ART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test

On devices which support it, run all jni compiler tests also with
the Generic JNI infrastructure.

Fix art_quick_invoke_stub for ARM32 to enforce 16B stack alignment.
As the native convention does not require as much, the previous
code would keep it unaligned.

Bug: 17107929
Change-Id: Ibce423949846e447d2b0246d07973b6b717691ac

10 years agoMerge "ART: Set default visibility to protected"
Andreas Gampe [Tue, 19 Aug 2014 20:05:38 +0000 (20:05 +0000)]
Merge "ART: Set default visibility to protected"

10 years agoART: Set default visibility to protected
Andreas Gampe [Wed, 13 Aug 2014 07:15:43 +0000 (00:15 -0700)]
ART: Set default visibility to protected

Set default visibility of symbols to protected. This allows the
linker to optimize internal calls and helps avoid plt calls.

Make almost all assembly stubs hidden, as -fvisibility does not
seem to apply to them. Change the assembly tests accordingly. Also
allows to clean up previous hacks to avoid plt calls.

Bug: 16974467

(cherry picked from commit 235e77bd9f19e4faefda109be40f8744f3a66f40)

Change-Id: I9030dcf6116251f434f94a2b08e56e12085af652

10 years agoMerge "ART: More failure output on run-test"
Andreas Gampe [Tue, 19 Aug 2014 18:13:41 +0000 (18:13 +0000)]
Merge "ART: More failure output on run-test"

10 years agoART: More failure output on run-test
Andreas Gampe [Tue, 19 Aug 2014 05:26:49 +0000 (22:26 -0700)]
ART: More failure output on run-test

Change-Id: Ifdf1516e950117069b3cfa58c4bda03281dad661

10 years agoMerge "Check for constructor first when installing tracing stubs."
Jeff Hao [Tue, 19 Aug 2014 17:47:41 +0000 (17:47 +0000)]
Merge "Check for constructor first when installing tracing stubs."

10 years agoCheck for constructor first when installing tracing stubs.
Jeff Hao [Tue, 19 Aug 2014 17:17:36 +0000 (10:17 -0700)]
Check for constructor first when installing tracing stubs.

Addresses comments in
https://android-review.googlesource.com/#/c/104383/ made after the commit.

Bug: 16386215

(cherry picked from commit 5afe466c027c6ac821bf7c9a88cd7de5260a639b)

Change-Id: Ic81161d0b96a0633c4c534a93172cff59312fa61

10 years agoMerge "ART source line debug info in OAT files"
Ian Rogers [Fri, 15 Aug 2014 23:27:29 +0000 (23:27 +0000)]
Merge "ART source line debug info in OAT files"

10 years agoART source line debug info in OAT files
Yevgeny Rouban [Fri, 8 Aug 2014 09:29:38 +0000 (16:29 +0700)]
ART source line debug info in OAT files

OAT files have source line information enough for ART runtime needs like
jump to/from interpreter and thread suspension. But this information
is not enough for finer grained source level debugging and low-level
profiling (VTune or perf).

This patch adds to OAT files two additional sections:
.debug_line - DWARF formatted Elf32 section with detailed source line
              information (mapping from native PC to Java source lines).

In addition to the debugging symbols added using the dex2oat option
--include-debug-symbols, the source line information is added to
the section .debug_line.

The source line info can be read by many Elf reading tools like objdump,
readelf, dwarfdump, gdb, perf, VTune, ...

gdb can use this debug line information in x86. In 64-bit mode
the information can be used if the oat file is mapped in the lower
address space (address has higher 32 bits zeroed). Relocation works.

Testing:
1. art/test/run-test --host --gdb [--64] 001-HelloWorld
2. in gdb: break Main.java:19
3. in gdb: break Runtime.java:111
4. in gdb: run  - stops at void java.lang.Runtime.<init>()
5. in gdb: backtrace  - shows call stack down to main()
6. in gdb: continue - stops at void Main.main() (only in 32-bit mode)
7. in gdb: backtrace  - shows call stack down to main()
8. objdump -W <oat-file> - addresses are from VMA range of .text
   section reported by objdump -h <file>
9. dwarfdump -ka <oat-file> - no errors expected

Size of aosp-x86-eng boot.oat increased by 11% from 80.5Mb to 89.2Mb
with two sections added .debug_line (7.2Mb) and .rel.debug (1.5Mb).

Change-Id: Ib8828832686e49782a63d5529008ff4814ed9cda
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
10 years agoMerge "x86_64: Use RegClassBySize() for field accesses"
Ian Rogers [Fri, 15 Aug 2014 23:14:01 +0000 (23:14 +0000)]
Merge "x86_64: Use RegClassBySize() for field accesses"

10 years agoMerge "Make gdb fixup work with multiple DWARF Compilation Units"
Brian Carlstrom [Fri, 15 Aug 2014 19:05:09 +0000 (19:05 +0000)]
Merge "Make gdb fixup work with multiple DWARF Compilation Units"

10 years agoMerge "Tidy up monitor comments."
Ian Rogers [Fri, 15 Aug 2014 21:47:37 +0000 (21:47 +0000)]
Merge "Tidy up monitor comments."

10 years agoTidy up monitor comments.
Ian Rogers [Fri, 15 Aug 2014 20:39:34 +0000 (13:39 -0700)]
Tidy up monitor comments.

Change-Id: Ib9d993f964ba6e2bec1979b486c26d3920a4a40c

10 years agoMake gdb fixup work with multiple DWARF Compilation Units
Alex Light [Thu, 14 Aug 2014 00:15:38 +0000 (17:15 -0700)]
Make gdb fixup work with multiple DWARF Compilation Units

Change-Id: I83042362fc199ca48c8452230709a377e52a2cf5

10 years agoUpdate ziparchive usage to the new API.
Piotr Jastrzebski [Wed, 13 Aug 2014 06:50:03 +0000 (07:50 +0100)]
Update ziparchive usage to the new API.

Bug: 16162465

Change-Id: I759c751741efd98a6470b1e04c31491686d9a189

10 years ago[MIPS] Fix the code generated by GenSelectConst32
Raghu Gandham [Thu, 14 Aug 2014 20:46:53 +0000 (13:46 -0700)]
[MIPS] Fix the code generated by GenSelectConst32

Change-Id: Icc1d0449566435200a10fa3ca5489f78d122bc89

10 years agoMerge "Make Monitor::Wait more robust to spurious Inflate failures."
Ian Rogers [Fri, 15 Aug 2014 18:39:31 +0000 (18:39 +0000)]
Merge "Make Monitor::Wait more robust to spurious Inflate failures."

10 years agoMake Monitor::Wait more robust to spurious Inflate failures.
Ian Rogers [Fri, 15 Aug 2014 18:09:28 +0000 (11:09 -0700)]
Make Monitor::Wait more robust to spurious Inflate failures.

Bug: 17062710
Change-Id: Ife5f6b335caacc70cab543cd568676d277d3beb6
(cherry picked from commit 6f22fc166ed6c11cad229bff442c064e704de101)