OSDN Git Service

android-x86/art.git
9 years agoCheck IsReferenceVReg during deopt
Mathieu Chartier [Fri, 8 May 2015 21:19:26 +0000 (14:19 -0700)]
Check IsReferenceVReg during deopt

Required since the quick GC maps may not agree with the verifier
ones. Without this check we may copy stale object references into
the shadow frame.

Bug: 20736048
Change-Id: I7783c8a8ee45cf601b08b4c38f1dec7f7d11380c

9 years agoART: Fix debug output for bad reused MemMap.
Vladimir Marko [Fri, 8 May 2015 10:10:16 +0000 (11:10 +0100)]
ART: Fix debug output for bad reused MemMap.

Log the error_msg instead of a pointer to it.
Raise the log level to ERROR for the process maps.

(cherry picked from commit b5505823ad3d0bab8fc9c15c266a3d8cd96ee59e)

Change-Id: Ib0c258961e2384125907aca4bae2108f36067d5f

9 years agoSupport multiple instrumentation clients
Sebastien Hertz [Wed, 1 Apr 2015 14:34:17 +0000 (16:34 +0200)]
Support multiple instrumentation clients

Changes Instrumentation::ConfigureStubs to support multiple clients
that need different levels of instrumenation. A client is identified
by a string key used to save the desired instrumentation level.

Also adds regression gtest instrumentation_test and some cleanup.

Bug: 19829329

(cherry picked from commit 0462c4c87c39db6cfcd338f323844738109ac3c9)

Change-Id: I1fc24a86fcb7cb46d4be806895376c25cc0a0b3c

9 years agoJDWP: properly combine location events
Sebastien Hertz [Fri, 10 Apr 2015 10:12:33 +0000 (12:12 +0200)]
JDWP: properly combine location events

This CL properly groups JDWP events at the same location: Breakpoint,
Single-step, Method Entry and Method Exit. This is necessary if the
debugger is not the only instrumentation listener. This matches the
behavior of Dalvik, especially for methods with a single return
instruction.

The interpreter was tuned so the instrumentation callbacks were
called to satisfy the debugger with the idea the debugger was the
only instrumentation listener. This is not true when method tracing
is enabled at the same time.
When tracing is enabled, there is always a listener for MethodEntry
and MethodExit events (art::Trace class). However, if the debugger
is only listening to DexPcMoved event (to manage JDWP Breakpoint
event), it will not be notified of this event.

We now properly call all the instrumentation callbacks in the
interpreter and move the logic specific to debugging into the class
DebugInstrumentationListener. This allows to properly group JDWP
location events together depending on the sequence of instrumentation
callbacks.

We add Thread::tls_32bit_sized_values::debug_method_entry_ flag to
remember we just entered a method. It replaces the local variable
notified_method_entry_event in the interpreter and simplifies the
code.

Bump oat version to force recompilation because the layout of the
Thread class is modified.

Bug: 19829329
Bug: 20205350

(cherry picked from commit 9d6bf69ad3012a9d843268fdd5325b6719b6d5f2)

Change-Id: I204af9112e37d2eebc86661fb7c961a41c74e598

9 years agoMerge "Quick: Fix DCE to rename SSA regs for degenerate Phis." into mnc-dev
Vladimir Marko [Thu, 7 May 2015 18:23:00 +0000 (18:23 +0000)]
Merge "Quick: Fix DCE to rename SSA regs for degenerate Phis." into mnc-dev

9 years agoQuick: Fix DCE to rename SSA regs for degenerate Phis.
Vladimir Marko [Thu, 7 May 2015 14:53:41 +0000 (15:53 +0100)]
Quick: Fix DCE to rename SSA regs for degenerate Phis.

If we're inserting a new Phi and all its inputs are the same
SSA reg (for example, we allow a single-input Phi), some
subsequent insn may actually refer to that reg, so we need
to rename it to keep the graph in a consistent state.

(cherry picked from commit f60715c2c0a2398822a143ffb6b75507bffca703)

Change-Id: I46822b0db21c187601b79d2ff1a650494558772a

9 years agoQuick: Abolish kMirOpCheckPart2.
Vladimir Marko [Thu, 7 May 2015 11:25:40 +0000 (12:25 +0100)]
Quick: Abolish kMirOpCheckPart2.

The tricks played with kMirOpCheckPart2 are making the
native GC map generation unnecessarily complex. They have
caused problems in the past and now there is bad interaction
with the DCE. Rather than fixing it time and again, remove
the pseudo-insn.

(The whole purpose of those tricks seems to be to allow the
register tracking to be used for the throwing insn before
resetting the tracking for the next block. However, it's
questionable whether that's better than processing the
throwing insn with the subsequent instructions.)

Bug: 20736048

(cherry picked from commit e299f167c9559401548eab71678d4b779e46c2fb)

Change-Id: I8a60d26c5e6b6b608d68b8bb6b66d411f9a28f90

9 years agoFix broken checks in IsValidPartOfMemberNameUtf8Slow.
Narayan Kamath [Wed, 6 May 2015 13:55:43 +0000 (14:55 +0100)]
Fix broken checks in IsValidPartOfMemberNameUtf8Slow.

GetUtf16FromUtf8 returns a surrogate pair only if it encounters
a 4-byte UTF sequence. Three byte UTF sequences will only return the
first or second half of a pair so we need to check for that
explicitly.

bug: 20844537

Change-Id: Icb660fae77ac8a852fc768e6c1cd5766117e68e4

9 years agoIn quick compiler, force string init invoke to be fast path.
Jeff Hao [Thu, 7 May 2015 00:41:32 +0000 (17:41 -0700)]
In quick compiler, force string init invoke to be fast path.

Was running into an issue where a secondary dex file was falling back on
the quick compiler, and IsFastInvoke returned 0 because the
referrer_class was nullptr, causing the string init to be slow path. The
string init technically does not have to be fast path, but there's no
reason to duplicate the logic to call off a thread pointer on the slow
path.

Bug: 20870917
Change-Id: I47e1524d939eb7e9b1da8186092fafc6e925009e

9 years agoQuick: Inline synthetic accessors generated by jack.
Vladimir Marko [Wed, 6 May 2015 13:09:04 +0000 (14:09 +0100)]
Quick: Inline synthetic accessors generated by jack.

While javac names synthetic accessors "access$nnn", jack
names them "-getN", "-putN" and "-wrapN". For simplicity,
treat all methods starting with "-" as synthetic accessors.

Bug: 20873367

(cherry picked from commit d5f1005da7599f149b1332402c9791ef2acb8c42)

Change-Id: Ifcc77fc3c5dd44797a48632c8e16416fbc273a93

9 years agoMerge "Fix instrumentation exit stub for arm64" into mnc-dev
Sebastien Hertz [Wed, 6 May 2015 08:01:23 +0000 (08:01 +0000)]
Merge "Fix instrumentation exit stub for arm64" into mnc-dev

9 years agoFix instrumentation exit stub for arm64
Sebastien Hertz [Tue, 5 May 2015 18:03:50 +0000 (20:03 +0200)]
Fix instrumentation exit stub for arm64

Fixes bad offset to restore register x21.

Bug: 20798393
Change-Id: I030d848ab0f46043e86f53abae204463f0aaccbe

9 years agoMerge "Request full/partial GC type from VMRuntime.requestConcurrentGC()." into mnc-dev
Hiroshi Yamauchi [Tue, 5 May 2015 17:01:33 +0000 (17:01 +0000)]
Merge "Request full/partial GC type from VMRuntime.requestConcurrentGC()." into mnc-dev

9 years agoam 02d320c2: (-s ours) am 3c683c5d: Revert "HACK: Disable native stack trace dumping...
Mathieu Chartier [Tue, 5 May 2015 01:48:09 +0000 (01:48 +0000)]
am 02d320c2: (-s ours) am 3c683c5d: Revert "HACK: Disable native stack trace dumping for tetra. DO NOT MERGE"

* commit '02d320c218be4b8877d2d6947b1c85120736558c':
  Revert "HACK: Disable native stack trace dumping for tetra. DO NOT MERGE"

9 years agoam 3c683c5d: Revert "HACK: Disable native stack trace dumping for tetra. DO NOT MERGE"
Mathieu Chartier [Tue, 5 May 2015 01:00:30 +0000 (01:00 +0000)]
am 3c683c5d: Revert "HACK: Disable native stack trace dumping for tetra. DO NOT MERGE"

* commit '3c683c5d107cb43e8027d740ed579ef92a88af2e':
  Revert "HACK: Disable native stack trace dumping for tetra. DO NOT MERGE"

9 years agoMerge "ART: Emit debug info when app is debuggable" into mnc-dev
Andreas Gampe [Mon, 4 May 2015 21:51:31 +0000 (21:51 +0000)]
Merge "ART: Emit debug info when app is debuggable" into mnc-dev

9 years agoDelete invalid DCHECK
Mathieu Chartier [Mon, 4 May 2015 18:46:25 +0000 (11:46 -0700)]
Delete invalid DCHECK

We can have large objects mapped at address 0xebad____.

(cherry picked from commit e1a0153eeecbacaa4dbdbd4650f7ba40b9c47814)

Change-Id: I9e27d4948e7e853b4af6eb1b36dbfec6d4d7a99a

9 years agoRevert "HACK: Disable native stack trace dumping for tetra. DO NOT MERGE"
Mathieu Chartier [Mon, 4 May 2015 19:59:55 +0000 (19:59 +0000)]
Revert "HACK: Disable native stack trace dumping for tetra. DO NOT MERGE"

This reverts commit 471b7cb6c1b8128bb343b49198f2654f9f5b8f86.

Change-Id: Ia22615b401fd28ea94e6269f9eac5653e103a6fd

9 years agoImprove JNI registration failure logging
Mathieu Chartier [Mon, 4 May 2015 17:18:24 +0000 (10:18 -0700)]
Improve JNI registration failure logging

Print INTERNAL_FATAL instead of ERROR, print the
"Failed to register native method" message last.

(cherry picked from commit 5c02d6cd0cc7e10d30d8c26166ebaaf6d313d771)

Bug: 13885477
Change-Id: I9f1a7ea45bd926f3984b8008d84c75e676a1ed10

9 years agoFix NanoSleep and add test
Mathieu Chartier [Mon, 4 May 2015 16:53:43 +0000 (09:53 -0700)]
Fix NanoSleep and add test

Fixed a bug where tv_nsec was't between 0 and 999,999,999.

(cherry picked from commit 0b063d9ba7a11779667c0888e9f3495de0118b74)

Bug: 14450052
Change-Id: I30b29a716bfa63c6b57d589dd1102d2ca934c061

9 years agoAdd some more DISALLOW_COPY_AND_ASSIGN
Mathieu Chartier [Sun, 3 May 2015 22:20:23 +0000 (15:20 -0700)]
Add some more DISALLOW_COPY_AND_ASSIGN

May help prevent bugs maybe.

(cherry picked from commit 3130cdf29eb203be0c38d1107a65d920ec39c106)

Change-Id: Ie73d469dfcd078492ecb3aa28682b42707221202

9 years agoART: Emit debug info when app is debuggable
Andreas Gampe [Mon, 4 May 2015 15:33:31 +0000 (08:33 -0700)]
ART: Emit debug info when app is debuggable

Emit debug symbols and CFI when dex2oat is compiling with the
--debuggable flag.

Bug: 17011129
Change-Id: I0afab1e46abd819eded2b823580e766619497393

9 years agoRequest full/partial GC type from VMRuntime.requestConcurrentGC().
Hiroshi Yamauchi [Sat, 2 May 2015 00:53:32 +0000 (17:53 -0700)]
Request full/partial GC type from VMRuntime.requestConcurrentGC().

(cherry pick commit 0ae98992d348b5bf3fc85a52d81b0e5f221f20d6)

Bug: 20554807
Change-Id: I572e846e9d0347b8b2692442e55f56c08b07d395

9 years agoMerge "Let the map function compute the relative pc." into mnc-dev
Christopher Ferris [Sat, 2 May 2015 00:07:16 +0000 (00:07 +0000)]
Merge "Let the map function compute the relative pc." into mnc-dev

9 years agoLet the map function compute the relative pc.
Christopher Ferris [Fri, 1 May 2015 23:03:49 +0000 (16:03 -0700)]
Let the map function compute the relative pc.

The new packed relocations linker option creates an elf with a non-zero
load base. It's no longer an easy task to compute the relative pc yourself
so call the helper function to do it for us.

Bug: 20687795
Change-Id: If11c1a596bc79382d44e35a86d5035ab29d29864

9 years agoPrint memory maps on GC crash.
Hiroshi Yamauchi [Fri, 1 May 2015 18:50:24 +0000 (11:50 -0700)]
Print memory maps on GC crash.

Bug: 20557050

(cherry picked from commit d38ec80b163af1639fbaae382a319c73be67c560)

Change-Id: I0fc35bace77b11181f06199c121bc4e246d02100

9 years agoChange invalid root from LOG(ERROR) to LOG(INTERNAL_FATAL)
Mathieu Chartier [Fri, 1 May 2015 20:00:23 +0000 (13:00 -0700)]
Change invalid root from LOG(ERROR) to LOG(INTERNAL_FATAL)

INTERNAL_FATAL is more likely to remain in bug reports.

(cherry picked from commit 175746ac9039e9b741d3521420dcaa9c59341738)

Bug: 20736048
Change-Id: I518f079d8d1839e22b3595e807730edf36318f1d

9 years agoUpdate the remaining input index of phis after deleting an input.
Nicolas Geoffray [Mon, 27 Apr 2015 23:52:43 +0000 (00:52 +0100)]
Update the remaining input index of phis after deleting an input.

bug:20715803
bug:20690906

(cherry picked from commit 5d7b7f81ed5455893f984752c00571ef27cc97c5)

Change-Id: Ie55739601b8d6fedc830d6e19d8a053392047d34

9 years agoMerge art project from goog/master into goog/mnc-dev.
Jeff Hao [Thu, 30 Apr 2015 18:25:10 +0000 (11:25 -0700)]
Merge art project from goog/master into goog/mnc-dev.

9 years agoam e70d1bc0: am 204a4a0e: am 01ce4984: Merge "Move .eh_frame to the end of ELF file."
David Srbecky [Thu, 30 Apr 2015 16:39:23 +0000 (16:39 +0000)]
am e70d1bc0: am 204a4a0e: am 01ce4984: Merge "Move .eh_frame to the end of ELF file."

* commit 'e70d1bc02c1aacc02a5ed421d15dd110ed36d947':
  Move .eh_frame to the end of ELF file.

9 years agoam c871eec8: am e47cc002: am acb3ee85: Merge "Major refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:39:22 +0000 (16:39 +0000)]
am c871eec8: am e47cc002: am acb3ee85: Merge "Major refactoring of ElfBuilder."

* commit 'c871eec8acffacffd8254ba826a243581c4c79ce':
  Major refactoring of ElfBuilder.

9 years agoam 45d56ef7: am 9207699c: am e6dbb737: Merge "Minor refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:39:20 +0000 (16:39 +0000)]
am 45d56ef7: am 9207699c: am e6dbb737: Merge "Minor refactoring of ElfBuilder."

* commit '45d56ef7773066af1fb107da3ffe20a591ec08f1':
  Minor refactoring of ElfBuilder.

9 years agoam 204a4a0e: am 01ce4984: Merge "Move .eh_frame to the end of ELF file."
David Srbecky [Thu, 30 Apr 2015 16:30:18 +0000 (16:30 +0000)]
am 204a4a0e: am 01ce4984: Merge "Move .eh_frame to the end of ELF file."

* commit '204a4a0e0b866cca956a61af113a13008214723f':
  Move .eh_frame to the end of ELF file.

9 years agoam e47cc002: am acb3ee85: Merge "Major refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:30:17 +0000 (16:30 +0000)]
am e47cc002: am acb3ee85: Merge "Major refactoring of ElfBuilder."

* commit 'e47cc002e73e2c253e0f5eea74e7c80511a5c413':
  Major refactoring of ElfBuilder.

9 years agoam 9207699c: am e6dbb737: Merge "Minor refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:30:15 +0000 (16:30 +0000)]
am 9207699c: am e6dbb737: Merge "Minor refactoring of ElfBuilder."

* commit '9207699cdc91ca858354e5008d729c1bbd3127c9':
  Minor refactoring of ElfBuilder.

9 years agoam 01ce4984: Merge "Move .eh_frame to the end of ELF file."
David Srbecky [Thu, 30 Apr 2015 16:20:59 +0000 (16:20 +0000)]
am 01ce4984: Merge "Move .eh_frame to the end of ELF file."

* commit '01ce498499eed47e87fceb8736d26fe49b2a4346':
  Move .eh_frame to the end of ELF file.

9 years agoam acb3ee85: Merge "Major refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:20:58 +0000 (16:20 +0000)]
am acb3ee85: Merge "Major refactoring of ElfBuilder."

* commit 'acb3ee85438f3168a17786dda52cfcdcd47da87d':
  Major refactoring of ElfBuilder.

9 years agoam e6dbb737: Merge "Minor refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:20:54 +0000 (16:20 +0000)]
am e6dbb737: Merge "Minor refactoring of ElfBuilder."

* commit 'e6dbb737c1dc0157ff9b4020ac5ecce08a6c99a2':
  Minor refactoring of ElfBuilder.

9 years agoMerge "Move .eh_frame to the end of ELF file."
David Srbecky [Thu, 30 Apr 2015 16:08:32 +0000 (16:08 +0000)]
Merge "Move .eh_frame to the end of ELF file."

9 years agoMove .eh_frame to the end of ELF file.
David Srbecky [Tue, 28 Apr 2015 18:43:56 +0000 (19:43 +0100)]
Move .eh_frame to the end of ELF file.

Move .eh_frame to the end together with other debug sections.
This should make it easier to remove it using standard strip tools.

Bug:20556771
Change-Id: I8303ccb053aee50d53fb193819d345c91f1e5b75

9 years agoMerge "Major refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:07:16 +0000 (16:07 +0000)]
Merge "Major refactoring of ElfBuilder."

9 years agoMerge "Minor refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:07:06 +0000 (16:07 +0000)]
Merge "Minor refactoring of ElfBuilder."

9 years agoam f0dd5b96: am 8b83b55d: ART: Allow oat files with duplicates classes in corner...
Andreas Gampe [Thu, 30 Apr 2015 15:34:24 +0000 (15:34 +0000)]
am f0dd5b96: am 8b83b55d: ART: Allow oat files with duplicates classes in corner case

* commit 'f0dd5b96c73e1ed75c0c6d17592c77860ba010dd':
  ART: Allow oat files with duplicates classes in corner case

9 years agoam 8b83b55d: ART: Allow oat files with duplicates classes in corner case
Andreas Gampe [Thu, 30 Apr 2015 15:20:11 +0000 (15:20 +0000)]
am 8b83b55d: ART: Allow oat files with duplicates classes in corner case

* commit '8b83b55de8abbc195c038789f1034107f4974597':
  ART: Allow oat files with duplicates classes in corner case

9 years agoam 53de3b19: am caf07631: am fd5f56d4: Merge "Revert "GVN final fields even with...
Nicolas Geoffray [Thu, 30 Apr 2015 11:47:14 +0000 (11:47 +0000)]
am 53de3b19: am caf07631: am fd5f56d4: Merge "Revert "GVN final fields even with side effects.""

* commit '53de3b19a3760bb5fcaa0d34f91a10cb122063ca':
  Revert "GVN final fields even with side effects."

9 years agoam caf07631: am fd5f56d4: Merge "Revert "GVN final fields even with side effects.""
Nicolas Geoffray [Thu, 30 Apr 2015 11:35:24 +0000 (11:35 +0000)]
am caf07631: am fd5f56d4: Merge "Revert "GVN final fields even with side effects.""

* commit 'caf076311e6933a79da3b5714975486ffa1efa07':
  Revert "GVN final fields even with side effects."

9 years agoMajor refactoring of ElfBuilder.
David Srbecky [Wed, 22 Apr 2015 18:40:27 +0000 (19:40 +0100)]
Major refactoring of ElfBuilder.

Simplify ElfBuilder by removing duplicated or redundant code.
Many of the repeated code patterns were replaced by just
looping over the list of all sections.

Methods Init() and Write() have been merged into one.
The split between those was rather arbitrary, but it was there
for a reason.  It allowed creation of raw sections between
the calls which may have depended on layout decisions done in
Init(), but not in Write() (e.g. knowing of offset of .text).

This has been replaced by more generic solution.
All sections are asked about their size first and complete
file layout is calculated.  Then the sections are asked to
write their content (potentially using the layout information).

This should be pure refactoring CL - the compiler should
produce bit for bit identical output as before.

Change-Id: I281d13d469801bd8288b36b360d200d98a3e92d7

9 years agoam fd5f56d4: Merge "Revert "GVN final fields even with side effects.""
Nicolas Geoffray [Thu, 30 Apr 2015 11:23:03 +0000 (11:23 +0000)]
am fd5f56d4: Merge "Revert "GVN final fields even with side effects.""

* commit 'fd5f56d4604eeeacdf6be5189187b6ef49157280':
  Revert "GVN final fields even with side effects."

9 years agoMerge "Revert "GVN final fields even with side effects.""
Nicolas Geoffray [Thu, 30 Apr 2015 11:16:06 +0000 (11:16 +0000)]
Merge "Revert "GVN final fields even with side effects.""

9 years agoRevert "GVN final fields even with side effects."
Nicolas Geoffray [Thu, 30 Apr 2015 11:15:40 +0000 (11:15 +0000)]
Revert "GVN final fields even with side effects."

This reverts commit 781733632637db98d79dfffad72bf063be3259be.

Change-Id: Id7c4591f6b8190921852044b278d11627457c570

9 years agoam ddadbf8d: am 4ffbc975: am 56784f88: Merge "GVN final fields even with side effects."
Nicolas Geoffray [Thu, 30 Apr 2015 10:56:49 +0000 (10:56 +0000)]
am ddadbf8d: am 4ffbc975: am 56784f88: Merge "GVN final fields even with side effects."

* commit 'ddadbf8d3328f810c0b59ab1f8b2685108ad048c':
  GVN final fields even with side effects.

9 years agoam 4ffbc975: am 56784f88: Merge "GVN final fields even with side effects."
Nicolas Geoffray [Thu, 30 Apr 2015 10:46:38 +0000 (10:46 +0000)]
am 4ffbc975: am 56784f88: Merge "GVN final fields even with side effects."

* commit '4ffbc975a8614ed314114895df93c345e14c8163':
  GVN final fields even with side effects.

9 years agoam 56784f88: Merge "GVN final fields even with side effects."
Nicolas Geoffray [Thu, 30 Apr 2015 10:31:49 +0000 (10:31 +0000)]
am 56784f88: Merge "GVN final fields even with side effects."

* commit '56784f887bad1219f326e9e6d110f785f31a5968':
  GVN final fields even with side effects.

9 years agoMerge "GVN final fields even with side effects."
Nicolas Geoffray [Thu, 30 Apr 2015 10:21:19 +0000 (10:21 +0000)]
Merge "GVN final fields even with side effects."

9 years agoGVN final fields even with side effects.
Nicolas Geoffray [Wed, 29 Apr 2015 15:46:27 +0000 (16:46 +0100)]
GVN final fields even with side effects.

Two accesses of a final field can be GVN'ed even if there are
side effects between them.

Change-Id: I04495ae83c7858f4216b083ad1c29851954320ad

9 years agoam af6535b3: am f94b250f: am 0a50264b: Merge "ART: Allow oat files with duplicates...
Sebastien Hertz [Thu, 30 Apr 2015 07:46:51 +0000 (07:46 +0000)]
am af6535b3: am f94b250f: am 0a50264b: Merge "ART: Allow oat files with duplicates classes in corner case"

* commit 'af6535b39fb8630e02cd38ca594dec1d65be90cd':
  ART: Allow oat files with duplicates classes in corner case

9 years agoam f94b250f: am 0a50264b: Merge "ART: Allow oat files with duplicates classes in...
Sebastien Hertz [Thu, 30 Apr 2015 07:34:27 +0000 (07:34 +0000)]
am f94b250f: am 0a50264b: Merge "ART: Allow oat files with duplicates classes in corner case"

* commit 'f94b250f426c7f43f9ee78e39e07d6ee13842b20':
  ART: Allow oat files with duplicates classes in corner case

9 years agoam 0a50264b: Merge "ART: Allow oat files with duplicates classes in corner case"
Sebastien Hertz [Thu, 30 Apr 2015 07:25:56 +0000 (07:25 +0000)]
am 0a50264b: Merge "ART: Allow oat files with duplicates classes in corner case"

* commit '0a50264b30a0c61099e8388015cccfa417a6bd18':
  ART: Allow oat files with duplicates classes in corner case

9 years agoam de8e618e: am f533cd0d: am dacee920: Merge "Fix missing transaction abort error...
Sebastien Hertz [Thu, 30 Apr 2015 07:22:55 +0000 (07:22 +0000)]
am de8e618e: am f533cd0d: am dacee920: Merge "Fix missing transaction abort error message"

* commit 'de8e618e3c4b9ad5437772136ba30e49c3c95781':
  Fix missing transaction abort error message

9 years agoMerge "ART: Allow oat files with duplicates classes in corner case"
Sebastien Hertz [Thu, 30 Apr 2015 07:18:07 +0000 (07:18 +0000)]
Merge "ART: Allow oat files with duplicates classes in corner case"

9 years agoam f533cd0d: am dacee920: Merge "Fix missing transaction abort error message"
Sebastien Hertz [Thu, 30 Apr 2015 07:12:06 +0000 (07:12 +0000)]
am f533cd0d: am dacee920: Merge "Fix missing transaction abort error message"

* commit 'f533cd0dd13f64c39658e944b41febbd34460fca':
  Fix missing transaction abort error message

9 years agoam dacee920: Merge "Fix missing transaction abort error message"
Sebastien Hertz [Thu, 30 Apr 2015 07:03:11 +0000 (07:03 +0000)]
am dacee920: Merge "Fix missing transaction abort error message"

* commit 'dacee9200210fca06e01e5967f7265e11b2942d4':
  Fix missing transaction abort error message

9 years agoMerge "Fix missing transaction abort error message"
Sebastien Hertz [Thu, 30 Apr 2015 06:53:35 +0000 (06:53 +0000)]
Merge "Fix missing transaction abort error message"

9 years agoART: Allow oat files with duplicates classes in corner case
Andreas Gampe [Thu, 30 Apr 2015 03:47:16 +0000 (20:47 -0700)]
ART: Allow oat files with duplicates classes in corner case

When the oat file is actually an odex file, that is, a preopted
/system app, then it is impossible to fall back to the original
APK, as that has been stripped.

When it looks like it will be impossible to successfully open the
original dex location, grudgingly allow to open the found oat file,
even if it has duplicate classes, but warn accordingly.

Bug: 20697582

(cherry picked from commit 0cba004b97245300d7f39318d5921ee8edbef1ac)

Change-Id: I1dd459563d977a2e77806eacd03e49334d5b1f14

9 years agoam f5b132e5: am 61d7ca87: ART: Whitelist DexPathList constructor
Andreas Gampe [Thu, 30 Apr 2015 03:54:07 +0000 (03:54 +0000)]
am f5b132e5: am 61d7ca87: ART: Whitelist DexPathList constructor

* commit 'f5b132e59c9ed11ac440e626322cec5bc1b13774':
  ART: Whitelist DexPathList$Element constructor

9 years agoART: Allow oat files with duplicates classes in corner case
Andreas Gampe [Thu, 30 Apr 2015 03:47:16 +0000 (20:47 -0700)]
ART: Allow oat files with duplicates classes in corner case

When the oat file is actually an odex file, that is, a preopted
/system app, then it is impossible to fall back to the original
APK, as that has been stripped.

When it looks like it will be impossible to successfully open the
original dex location, grudgingly allow to open the found oat file,
even if it has duplicate classes, but warn accordingly.

Bug: 20697582
Change-Id: I1dd459563d977a2e77806eacd03e49334d5b1f14

9 years agoam 61d7ca87: ART: Whitelist DexPathList constructor
Andreas Gampe [Thu, 30 Apr 2015 03:35:47 +0000 (03:35 +0000)]
am 61d7ca87: ART: Whitelist DexPathList constructor

* commit '61d7ca870b7afc5400e6f7dd2952ca06ce7f7bac':
  ART: Whitelist DexPathList$Element constructor

9 years agoART: Whitelist DexPathList$Element constructor
Andreas Gampe [Thu, 30 Apr 2015 02:56:36 +0000 (19:56 -0700)]
ART: Whitelist DexPathList$Element constructor

Temporary whitelist for backwards compatibility.

Bug: 20699073
Change-Id: Iba351060441398b9377a8471f0bbe03bb77f8384

9 years agoam 8f27a1be: am 0e95910c: am eff3229f: Merge "Restore interpreter check during DoCall...
Jeff Hao [Wed, 29 Apr 2015 23:39:34 +0000 (23:39 +0000)]
am 8f27a1be: am 0e95910c: am eff3229f: Merge "Restore interpreter check during DoCall removed by string init."

* commit '8f27a1beaf79acc3f8d7d24de35d8500177866af':
  Restore interpreter check during DoCall removed by string init.

9 years agoam 0e95910c: am eff3229f: Merge "Restore interpreter check during DoCall removed...
Jeff Hao [Wed, 29 Apr 2015 23:27:44 +0000 (23:27 +0000)]
am 0e95910c: am eff3229f: Merge "Restore interpreter check during DoCall removed by string init."

* commit '0e95910ccac86c5464725c6e34d920598e42f89e':
  Restore interpreter check during DoCall removed by string init.

9 years agoam eff3229f: Merge "Restore interpreter check during DoCall removed by string init."
Jeff Hao [Wed, 29 Apr 2015 23:15:14 +0000 (23:15 +0000)]
am eff3229f: Merge "Restore interpreter check during DoCall removed by string init."

* commit 'eff3229ff3c8faead4b6d400e273ee27b7004dab':
  Restore interpreter check during DoCall removed by string init.

9 years agoMerge "Restore interpreter check during DoCall removed by string init."
Jeff Hao [Wed, 29 Apr 2015 23:03:46 +0000 (23:03 +0000)]
Merge "Restore interpreter check during DoCall removed by string init."

9 years agoRestore interpreter check during DoCall removed by string init.
Jeff Hao [Wed, 29 Apr 2015 22:58:17 +0000 (15:58 -0700)]
Restore interpreter check during DoCall removed by string init.

Also reorder test in verifier to check for string_init first.

Change-Id: I585ef3f5890819a3e233236ea85b51a03918f5dc

9 years agoam 5c4dd151: am 9b169f39: Merge "Only print IRT remove local warning if CheckJNI...
Mathieu Chartier [Wed, 29 Apr 2015 18:25:23 +0000 (18:25 +0000)]
am 5c4dd151: am 9b169f39: Merge "Only print IRT remove local warning if CheckJNI is enabled" into mnc-dev

* commit '5c4dd151f0f8f4edfd42b256da0af97f3eea28c1':
  Only print IRT remove local warning if CheckJNI is enabled

9 years agoam 9b169f39: Merge "Only print IRT remove local warning if CheckJNI is enabled" into...
Mathieu Chartier [Wed, 29 Apr 2015 18:13:32 +0000 (18:13 +0000)]
am 9b169f39: Merge "Only print IRT remove local warning if CheckJNI is enabled" into mnc-dev

* commit '9b169f39f7d3ac31571fdccea51c4e271668cced':
  Only print IRT remove local warning if CheckJNI is enabled

9 years agoam 4590ab92: am 8df0e08f: am 8c9c1ae5: Merge "Only print IRT remove local warning...
Mathieu Chartier [Wed, 29 Apr 2015 18:10:11 +0000 (18:10 +0000)]
am 4590ab92: am 8df0e08f: am 8c9c1ae5: Merge "Only print IRT remove local warning if CheckJNI is enabled"

* commit '4590ab928e48f60a70d6d76a329ec25419ce82ad':
  Only print IRT remove local warning if CheckJNI is enabled

9 years agoam 81ae83ed: am 395086f0: ART: Fix loop information after dead code elimination
David Brazdil [Wed, 29 Apr 2015 18:10:10 +0000 (18:10 +0000)]
am 81ae83ed: am 395086f0: ART: Fix loop information after dead code elimination

* commit '81ae83ed2e50cecd740e3f0cf8bbf816f081bd5c':
  ART: Fix loop information after dead code elimination

9 years agoam 8df0e08f: am 8c9c1ae5: Merge "Only print IRT remove local warning if CheckJNI...
Mathieu Chartier [Wed, 29 Apr 2015 18:00:08 +0000 (18:00 +0000)]
am 8df0e08f: am 8c9c1ae5: Merge "Only print IRT remove local warning if CheckJNI is enabled"

* commit '8df0e08ff050bbcb84d711d155d8e3503ae23658':
  Only print IRT remove local warning if CheckJNI is enabled

9 years agoam 395086f0: ART: Fix loop information after dead code elimination
David Brazdil [Wed, 29 Apr 2015 17:55:36 +0000 (17:55 +0000)]
am 395086f0: ART: Fix loop information after dead code elimination

* commit '395086f0a9e0658a2d33eeade7121db55c1f5dc8':
  ART: Fix loop information after dead code elimination

9 years agoMerge "Only print IRT remove local warning if CheckJNI is enabled" into mnc-dev
Mathieu Chartier [Wed, 29 Apr 2015 17:49:33 +0000 (17:49 +0000)]
Merge "Only print IRT remove local warning if CheckJNI is enabled" into mnc-dev

9 years agoOnly print IRT remove local warning if CheckJNI is enabled
Mathieu Chartier [Wed, 29 Apr 2015 16:57:48 +0000 (09:57 -0700)]
Only print IRT remove local warning if CheckJNI is enabled

Less spammy.

(cherry picked from commit c5adebc9327bd5ca223a5faf99d904cc202a1627)

Bug: 17405090

Change-Id: Ib78d0d7bc31a88182cb9d85ddba9b469bd50324b

9 years agoam 70eb7d5b: am 401b8ea4: am ed51747a: Merge "Add synthesize uses at back edge."
Nicolas Geoffray [Wed, 29 Apr 2015 17:49:00 +0000 (17:49 +0000)]
am 70eb7d5b: am 401b8ea4: am ed51747a: Merge "Add synthesize uses at back edge."

* commit '70eb7d5be34cc7282e03c8b7f844c749b1deac35':
  Add synthesize uses at back edge.

9 years agoam 8c9c1ae5: Merge "Only print IRT remove local warning if CheckJNI is enabled"
Mathieu Chartier [Wed, 29 Apr 2015 17:48:03 +0000 (17:48 +0000)]
am 8c9c1ae5: Merge "Only print IRT remove local warning if CheckJNI is enabled"

* commit '8c9c1ae515f32142ab85103c5d45bd7ce4e6eb3c':
  Only print IRT remove local warning if CheckJNI is enabled

9 years agoART: Fix loop information after dead code elimination
David Brazdil [Wed, 29 Apr 2015 16:16:07 +0000 (17:16 +0100)]
ART: Fix loop information after dead code elimination

Compilation failed when only some blocks of a loop were removed during
dead code elimination.

Bug: 20680703
(cherry picked from commit 69a2804c3bb48cf4fd00a66080f613a4fd96c422)

Change-Id: If9988381236e4d8d8c3b508dfce1376b27c20d75

9 years agoMerge "Only print IRT remove local warning if CheckJNI is enabled"
Mathieu Chartier [Wed, 29 Apr 2015 17:37:47 +0000 (17:37 +0000)]
Merge "Only print IRT remove local warning if CheckJNI is enabled"

9 years agoam 401b8ea4: am ed51747a: Merge "Add synthesize uses at back edge."
Nicolas Geoffray [Wed, 29 Apr 2015 17:36:13 +0000 (17:36 +0000)]
am 401b8ea4: am ed51747a: Merge "Add synthesize uses at back edge."

* commit '401b8ea4c56678cfa0b2d3bdae5cb9e208711f88':
  Add synthesize uses at back edge.

9 years agoOnly print IRT remove local warning if CheckJNI is enabled
Mathieu Chartier [Wed, 29 Apr 2015 16:57:48 +0000 (09:57 -0700)]
Only print IRT remove local warning if CheckJNI is enabled

Less spammy.

Bug: 17405090

Change-Id: Ib78d0d7bc31a88182cb9d85ddba9b469bd50324b

9 years agoam ed51747a: Merge "Add synthesize uses at back edge."
Nicolas Geoffray [Wed, 29 Apr 2015 17:23:33 +0000 (17:23 +0000)]
am ed51747a: Merge "Add synthesize uses at back edge."

* commit 'ed51747ae96a0c7fac452e95a1607200a5494b28':
  Add synthesize uses at back edge.

9 years agoam c816a9bc: am c1849c58: am 0430fc92: Merge "ART: Fix loop information after dead...
David Brazdil [Wed, 29 Apr 2015 17:17:10 +0000 (17:17 +0000)]
am c816a9bc: am c1849c58: am 0430fc92: Merge "ART: Fix loop information after dead code elimination"

* commit 'c816a9bc86696b863bac7571214b8b0554d27ec6':
  ART: Fix loop information after dead code elimination

9 years agoMerge "Add synthesize uses at back edge."
Nicolas Geoffray [Wed, 29 Apr 2015 17:10:08 +0000 (17:10 +0000)]
Merge "Add synthesize uses at back edge."

9 years agoam c1849c58: am 0430fc92: Merge "ART: Fix loop information after dead code elimination"
David Brazdil [Wed, 29 Apr 2015 17:06:11 +0000 (17:06 +0000)]
am c1849c58: am 0430fc92: Merge "ART: Fix loop information after dead code elimination"

* commit 'c1849c58ce2a35c37f19e75038e034df47815ecd':
  ART: Fix loop information after dead code elimination

9 years agoAdd synthesize uses at back edge.
Nicolas Geoffray [Tue, 21 Apr 2015 13:28:41 +0000 (14:28 +0100)]
Add synthesize uses at back edge.

This reduces the cost of linearizing the graph (hence removing
the notion of back edge). Since linear scan allocates/spills registers
based on next use, adding a use at a back edge ensures we do count
for loop uses.

Change-Id: Idaa882cb120edbdd08ca6bff142d326a8245bd14

9 years agoam 0430fc92: Merge "ART: Fix loop information after dead code elimination"
David Brazdil [Wed, 29 Apr 2015 16:51:50 +0000 (16:51 +0000)]
am 0430fc92: Merge "ART: Fix loop information after dead code elimination"

* commit '0430fc9216dddf6a6967cfffd37dfa99d73c2c68':
  ART: Fix loop information after dead code elimination

9 years agoMerge "ART: Fix loop information after dead code elimination"
David Brazdil [Wed, 29 Apr 2015 16:42:48 +0000 (16:42 +0000)]
Merge "ART: Fix loop information after dead code elimination"

9 years agoART: Fix loop information after dead code elimination
David Brazdil [Wed, 29 Apr 2015 16:16:07 +0000 (17:16 +0100)]
ART: Fix loop information after dead code elimination

Compilation failed when only some blocks of a loop were removed during
dead code elimination.

Bug: 20680703
Change-Id: If31025169ca493f0d7f7f2788576e98d05f03394

9 years agoam 27a3baf5: am 4c176ef5: am 0829d9de: Merge "Factor MoveArguments methods in Optimiz...
Roland Levillain [Wed, 29 Apr 2015 16:04:39 +0000 (16:04 +0000)]
am 27a3baf5: am 4c176ef5: am 0829d9de: Merge "Factor MoveArguments methods in Optimizing\'s intrinsics handlers."

* commit '27a3baf5cd1652dbb889780893569620db04db0e':
  Factor MoveArguments methods in Optimizing's intrinsics handlers.

9 years agoam 4c176ef5: am 0829d9de: Merge "Factor MoveArguments methods in Optimizing\'s intrin...
Roland Levillain [Wed, 29 Apr 2015 15:51:07 +0000 (15:51 +0000)]
am 4c176ef5: am 0829d9de: Merge "Factor MoveArguments methods in Optimizing\'s intrinsics handlers."

* commit '4c176ef5ecd5a28354b9f98e5bafb848b0399a63':
  Factor MoveArguments methods in Optimizing's intrinsics handlers.

9 years agoam 0829d9de: Merge "Factor MoveArguments methods in Optimizing\'s intrinsics handlers."
Roland Levillain [Wed, 29 Apr 2015 15:38:43 +0000 (15:38 +0000)]
am 0829d9de: Merge "Factor MoveArguments methods in Optimizing\'s intrinsics handlers."

* commit '0829d9de97b92bcd575f4d5c1f717abf7405d8e2':
  Factor MoveArguments methods in Optimizing's intrinsics handlers.

9 years agoMerge "Factor MoveArguments methods in Optimizing's intrinsics handlers."
Roland Levillain [Wed, 29 Apr 2015 15:30:17 +0000 (15:30 +0000)]
Merge "Factor MoveArguments methods in Optimizing's intrinsics handlers."

9 years agoam eefd248c: am 40e18300: am 36ad3f1c: Merge "Add dependency on libbase."
Narayan Kamath [Wed, 29 Apr 2015 15:05:43 +0000 (15:05 +0000)]
am eefd248c: am 40e18300: am 36ad3f1c: Merge "Add dependency on libbase."

* commit 'eefd248c90882966e54706cd85c3fc0c4d5d43e7':
  Add dependency on libbase.