OSDN Git Service
Mark Mendell [Wed, 6 May 2015 01:34:03 +0000 (21:34 -0400)]
[optimizing] Improve 32 bit long shift by 1.
Also change FOO << 1 to FOO+FOO in the instruction simplifier. This is
an architecture independent simplification, which helps 'long << 1' for
32 bit architectures.
Generate an add/adc for long << 1 in x86, in case something is generated
after the simplifier.
Add test cases for the simplification.
Change-Id: I0d512331ef13cc4ccf10c80f11c370a10ed02294
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Calin Juravle [Fri, 8 May 2015 15:52:48 +0000 (15:52 +0000)]
Merge "Skip compilation when falling-through out of method code."
Richard Uhler [Fri, 8 May 2015 15:24:25 +0000 (15:24 +0000)]
Merge "Fix typo in comments."
Vladimir Marko [Fri, 8 May 2015 10:31:05 +0000 (10:31 +0000)]
Merge "ART: 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.
Change-Id: I95f82f013d1c6360f40e6315652d1a2dda0f39e2
Andreas Gampe [Fri, 8 May 2015 00:17:56 +0000 (00:17 +0000)]
Merge "ART: Refactor 082-inline-execute"
Andreas Gampe [Thu, 7 May 2015 23:44:58 +0000 (16:44 -0700)]
ART: Refactor 082-inline-execute
Refactor the indexOf intrinsics tests so that the optimizing
compiler would actually compile them.
Bug:
20889065
Change-Id: I69bfda7fa3eb4ce42c593203731e3ddd61f7e1ed
Richard Uhler [Thu, 7 May 2015 17:52:28 +0000 (10:52 -0700)]
Fix typo in comments.
Change-Id: I6569c0fdc878f797b37509432b59b0d5c9bc5533
Vladimir Marko [Thu, 7 May 2015 17:21:51 +0000 (17:21 +0000)]
Merge "Quick: Fix DCE to rename SSA regs for degenerate Phis."
Vladimir Marko [Thu, 7 May 2015 17:21:31 +0000 (17:21 +0000)]
Merge "Quick: Abolish kMirOpCheckPart2."
Sebastien Hertz [Thu, 7 May 2015 16:10:43 +0000 (16:10 +0000)]
Merge "Support 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
Change-Id: I1fc24a86fcb7cb46d4be806895376c25cc0a0b3c
Sebastien Hertz [Thu, 7 May 2015 15:45:17 +0000 (15:45 +0000)]
Merge "Remove unused InvokeWithShadowFrame"
Sebastien Hertz [Thu, 7 May 2015 15:23:16 +0000 (17:23 +0200)]
Remove unused InvokeWithShadowFrame
This is an artifact of the Portable compiler, probably left after its
removal https://android-review.googlesource.com/119049.
Change-Id: I7f6caa008e37e7a93792840c79713e90d0c7e1e1
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
Change-Id: I4767e4609914d3b6990da4416e5093e4ca209780
Narayan Kamath [Thu, 7 May 2015 14:54:45 +0000 (14:54 +0000)]
Merge "Fix broken checks in IsValidPartOfMemberNameUtf8Slow."
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.
Change-Id: Ic6a1907c3138f4a7d3b13f9e58e9107ca2d92f17
Sebastien Hertz [Thu, 7 May 2015 14:22:34 +0000 (14:22 +0000)]
Merge "JDWP: properly combine location events"
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
(cherry picked from commit
3ba8671d60061359fd833f60f7a9dca14878cc0b)
Change-Id: I2e2a4f9f736cd11050a2b634b3bb27b75a0ee0ba
Nicolas Geoffray [Thu, 7 May 2015 10:57:03 +0000 (10:57 +0000)]
Merge "Use a growable array instead of an environment during SSA."
Nicolas Geoffray [Thu, 7 May 2015 10:46:05 +0000 (11:46 +0100)]
Use a growable array instead of an environment during SSA.
Using an environment was convenient because it contains
a growable array. But there's no need for the environment
abstraction when being used as a temporary holder for values
of locals.
Change-Id: Idf2883fe4b8f97a31ee70b3627c1bdd23ebfff0e
Nicolas Geoffray [Thu, 7 May 2015 08:57:23 +0000 (08:57 +0000)]
Merge "Relax the only one back-edge restriction."
Nicolas Geoffray [Tue, 5 May 2015 16:02:20 +0000 (17:02 +0100)]
Relax the only one back-edge restriction.
The rule is in the way for better register allocation, as
it creates an artificial join point between multiple paths.
Change-Id: Ia4392890f95bcea56d143138f28ddce6c572ad58
Nicolas Geoffray [Thu, 7 May 2015 08:15:41 +0000 (08:15 +0000)]
Merge "No need to relocate the core image for the art script."
Andreas Gampe [Thu, 7 May 2015 03:50:01 +0000 (03:50 +0000)]
Merge "ART: Fix mips64 jni bugs."
Douglas Leung [Fri, 1 May 2015 02:22:49 +0000 (19:22 -0700)]
ART: Fix mips64 jni bugs.
For mips64, 32-bits loads can be zero extended or sign extended to
64-bits. The extension type must match the data type to be loaded.
Also re-enable mips64 generic jni testing.
Change-Id: I9cabaf80b4fde63d9868fccd74593b36d1c324e8
Jeff Hao [Thu, 7 May 2015 01:29:19 +0000 (01:29 +0000)]
Merge "In 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
(cherry picked from commit I47e1524d939eb7e9b1da8186092fafc6e925009e)
Change-Id: Ieacd965943759de2b075c30e03cf0a71863f499e
Andreas Gampe [Wed, 6 May 2015 23:53:00 +0000 (23:53 +0000)]
Merge "Fix mips64 bugs."
Nicolas Geoffray [Wed, 6 May 2015 17:38:19 +0000 (18:38 +0100)]
No need to relocate the core image for the art script.
Change-Id: Idd540175e197602e318eeb3764f552372aadce1f
Vladimir Marko [Wed, 6 May 2015 15:19:23 +0000 (15:19 +0000)]
Merge "Quick: 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
Change-Id: I67990a6c2ef1d25dafe460ef70143a113bb5b7da
Nicolas Geoffray [Wed, 6 May 2015 14:02:23 +0000 (14:02 +0000)]
Merge "Bump jdwp timeout to 12 minutes."
Nicolas Geoffray [Wed, 6 May 2015 13:57:09 +0000 (14:57 +0100)]
Bump jdwp timeout to 12 minutes.
A run on volantis now is around 10 minutes.
Change-Id: I6e1f436d71da6eec55e984f7af99ba34438e49fb
Nicolas Geoffray [Wed, 6 May 2015 08:23:00 +0000 (08:23 +0000)]
Merge "Re-enable JDWP tests on volantis."
Nicolas Geoffray [Wed, 6 May 2015 08:19:32 +0000 (09:19 +0100)]
Re-enable JDWP tests on volantis.
Change-Id: Ibf1d16c9830155526cee38e242a4de9a3d5ed943
Sebastien Hertz [Wed, 6 May 2015 08:07:06 +0000 (08:07 +0000)]
Merge "Fix 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
(cherry picked from commit
a538effb3f848bfec232c55f167b9f35b416948f)
Change-Id: I030d848ab0f46043e86f53abae204463f0aaccbe
Andreas Gampe [Wed, 6 May 2015 01:01:27 +0000 (01:01 +0000)]
Merge "Fix Mips64 utils.h typo"
Duane Sand [Tue, 5 May 2015 21:48:43 +0000 (14:48 -0700)]
Fix Mips64 utils.h typo
Include of art's utils.h was mistyped as util.h, and instead
brought in external/icu/icu4c/source/common/util.h,
which caused art build failures from -Wdeprecated warnings
when Mips64 libart is compiled with clang.
Change-Id: I9370c4dc041eaecc5d5a1490ec23034ece4322a9
Hiroshi Yamauchi [Tue, 5 May 2015 22:13:32 +0000 (22:13 +0000)]
Merge "Temporarily suppress 098-ddmc for the read barrier config."
Hiroshi Yamauchi [Tue, 5 May 2015 20:36:39 +0000 (13:36 -0700)]
Temporarily suppress 098-ddmc for the read barrier config.
Bug:
20720510
Change-Id: Ie8c159767654837c02f0484f4dda569bb0118a03
Roland Levillain [Tue, 5 May 2015 13:45:56 +0000 (13:45 +0000)]
Merge "Revert "Revert "Revert "Revert "[optimizing] Improve x86 shifts"""""
Nicolas Geoffray [Tue, 5 May 2015 09:26:29 +0000 (09:26 +0000)]
Merge "Find better split positions in the register allocator."
Nicolas Geoffray [Wed, 29 Apr 2015 13:16:00 +0000 (14:16 +0100)]
Find better split positions in the register allocator.
In a standard if/else control flow graph, this avoids
doing a move in one branch if the other branch decided
to move an interval.
This also needs a new register hint kind, which is what
was the location of the interval at the predecessor block.
Change-Id: I18b78264587b4d693540fbb5e014d12df2add3e2
Andreas Gampe [Tue, 5 May 2015 01:31:33 +0000 (01:31 +0000)]
Merge "ART: Fix double-free in oatdump"
Andreas Gampe [Tue, 5 May 2015 01:25:23 +0000 (18:25 -0700)]
ART: Fix double-free in oatdump
The ImageDumper doesn't own the OatDumperOptions.
Bug:
20818721
Change-Id: Iea11ada8fb6418b226d39b33c252a834c42e655e
Andreas Gampe [Mon, 4 May 2015 22:13:05 +0000 (22:13 +0000)]
Merge "ART: 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
(cherry picked from commit
8484d23186c229e2927441f85ae819abb4996072)
Change-Id: I0afab1e46abd819eded2b823580e766619497393
Christopher Ferris [Mon, 4 May 2015 21:58:44 +0000 (21:58 +0000)]
Merge "Fix mismatched new[]/delete."
Mathieu Chartier [Mon, 4 May 2015 19:12:45 +0000 (19:12 +0000)]
Merge "Delete invalid DCHECK"
Christopher Ferris [Mon, 27 Apr 2015 22:19:41 +0000 (15:19 -0700)]
Fix mismatched new[]/delete.
Another two cases where a new[] is used but only a delete occurs.
Bug:
18202869
Change-Id: If68264807150f3a9783e44ef8823cc366bff8df2
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____.
Change-Id: I9e27d4948e7e853b4af6eb1b36dbfec6d4d7a99a
Mathieu Chartier [Mon, 4 May 2015 18:17:40 +0000 (18:17 +0000)]
Merge "Improve 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.
Bug:
13885477
Change-Id: I9f1a7ea45bd926f3984b8008d84c75e676a1ed10
Mathieu Chartier [Mon, 4 May 2015 17:10:47 +0000 (17:10 +0000)]
Merge "Fix 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.
Bug:
14450052
Change-Id: I30b29a716bfa63c6b57d589dd1102d2ca934c061
Mark P Mendell [Wed, 29 Apr 2015 14:56:17 +0000 (14:56 +0000)]
Revert "Revert "Revert "Revert "[optimizing] Improve x86 shifts""""
This reverts commit
2a7a1d7808f003bea908023ebd11eb442d2fca39.
Fix the problem that a long long >> 63 got the wrong answer. The
problem was that a shr was used instead of a sar.
Change-Id: I0327f79c718016ddec9272a605fc50ec15ec4566
Mathieu Chartier [Sun, 3 May 2015 22:26:22 +0000 (22:26 +0000)]
Merge "Add 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.
Change-Id: Ie73d469dfcd078492ecb3aa28682b42707221202
Christopher Ferris [Sat, 2 May 2015 00:20:15 +0000 (00:20 +0000)]
Merge "Let 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
(cherry picked from commit
332ef327c2b1a5e1774ba0d1da23e07303002af9)
Change-Id: I3d61c767f21a3f240a14f9e8bc6bee53b6cdb60d
Hiroshi Yamauchi [Fri, 1 May 2015 23:22:51 +0000 (23:22 +0000)]
Merge "Request full/partial GC type from VMRuntime.requestConcurrentGC()."
Andreas Gampe [Fri, 1 May 2015 23:13:38 +0000 (23:13 +0000)]
Merge "ART: Fix max build"
Andreas Gampe [Fri, 1 May 2015 23:11:04 +0000 (16:11 -0700)]
ART: Fix max build
Change-Id: Id1b9c0ee05b61195d1c1f09a8938df3110c2f2b3
Chih-hung Hsieh [Fri, 1 May 2015 22:30:07 +0000 (22:30 +0000)]
Merge "Re-enable clang for Mips/Mips64 targets."
Hiroshi Yamauchi [Fri, 1 May 2015 21:33:19 +0000 (14:33 -0700)]
Request full/partial GC type from VMRuntime.requestConcurrentGC().
Bug:
20554807
Change-Id: I1cd855507c3f4e191035dbc2c429e1b8b344d81b
Douglas Leung [Wed, 29 Apr 2015 00:22:29 +0000 (17:22 -0700)]
Fix mips64 bugs.
There are 2 bugs here. First is Method* is computed twice. The
second is the wrong runtime callee save frame offset is being
used in computing Method*.
Change-Id: Ica23585a08be480a54d0cdd17eeca8027061b3f3
Duane Sand [Fri, 1 May 2015 18:34:51 +0000 (11:34 -0700)]
Re-enable clang for Mips/Mips64 targets.
The build-time errors described in
https://android-review.googlesource.com/#/c/120512
are no longer happening.
BUG:
18807290
BUG:
18789639
Change-Id: I195bbb7d102fecd6a6e6a3357b0863dd6fddb01f
Hiroshi Yamauchi [Fri, 1 May 2015 20:35:57 +0000 (20:35 +0000)]
Merge "Print memory maps on GC crash."
Andreas Gampe [Fri, 1 May 2015 20:34:11 +0000 (20:34 +0000)]
Merge "Add binary search table to .eh_frame_hdr"
David Srbecky [Thu, 30 Apr 2015 18:57:35 +0000 (19:57 +0100)]
Add binary search table to .eh_frame_hdr
The addresses in the search table must be relative to the start
of .eh_frame_hdr which results in yet another pointer type to patch.
I have moved the Patch method back to elf_writer_quick where
it can be specialized to one of the three pointer types.
The .eh_frame_hdr takes around 17% of .eh_frame now.
Change-Id: I4770d1355ded6cdff9489c33380f6b06c4e3f9fe
Andreas Gampe [Fri, 1 May 2015 20:22:57 +0000 (20:22 +0000)]
Merge "Do not write CFI and symbols for deduplicate methods."
Hiroshi Yamauchi [Fri, 1 May 2015 18:50:24 +0000 (11:50 -0700)]
Print memory maps on GC crash.
Bug:
20557050
Change-Id: I0fc35bace77b11181f06199c121bc4e246d02100
Mathieu Chartier [Fri, 1 May 2015 20:19:14 +0000 (20:19 +0000)]
Merge "Change 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.
Bug:
20736048
Change-Id: I518f079d8d1839e22b3595e807730edf36318f1d
David Srbecky [Fri, 1 May 2015 14:00:40 +0000 (15:00 +0100)]
Do not write CFI and symbols for deduplicate methods.
There is no need to have multiple symbols for a given address
since libunwind still has to pick only one to print.
Likewise, there is no need to duplicate the CFI.
There is fair number of duplicate methods in the boot image,
so this saves over 20% from those debug sections.
Change-Id: Ib4390150257d009a6303b084076750ce56afed60
Calin Juravle [Thu, 30 Apr 2015 18:28:21 +0000 (19:28 +0100)]
Skip compilation when falling-through out of method code.
Bug:
19988134
Change-Id: I68638ce9551848a67af587595f264b51f976df11
Nicolas Geoffray [Fri, 1 May 2015 09:10:56 +0000 (09:10 +0000)]
Merge "Update 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
Change-Id: Iaf08f0c30d629e766be2b04815dc3e38b6e7ff35
David Srbecky [Thu, 30 Apr 2015 16:08:32 +0000 (16:08 +0000)]
Merge "Move .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
David Srbecky [Thu, 30 Apr 2015 16:07:16 +0000 (16:07 +0000)]
Merge "Major refactoring of ElfBuilder."
David Srbecky [Thu, 30 Apr 2015 16:07:06 +0000 (16:07 +0000)]
Merge "Minor 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
Nicolas Geoffray [Thu, 30 Apr 2015 11:16:06 +0000 (11:16 +0000)]
Merge "Revert "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
Nicolas Geoffray [Thu, 30 Apr 2015 10:21:19 +0000 (10:21 +0000)]
Merge "GVN 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
Sebastien Hertz [Thu, 30 Apr 2015 07:18:07 +0000 (07:18 +0000)]
Merge "ART: Allow oat files with duplicates classes in corner case"
Sebastien Hertz [Thu, 30 Apr 2015 06:53:35 +0000 (06:53 +0000)]
Merge "Fix missing transaction abort error message"
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
Jeff Hao [Wed, 29 Apr 2015 23:03:46 +0000 (23:03 +0000)]
Merge "Restore 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
Mathieu Chartier [Wed, 29 Apr 2015 17:37:47 +0000 (17:37 +0000)]
Merge "Only 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
Nicolas Geoffray [Wed, 29 Apr 2015 17:10:08 +0000 (17:10 +0000)]
Merge "Add 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
David Brazdil [Wed, 29 Apr 2015 16:42:48 +0000 (16:42 +0000)]
Merge "ART: 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