OSDN Git Service

android-x86/art.git
9 years agoam b6829c2e: Merge "Refactor InvokeDexCallingConventionVisitor in Optimizing."
Roland Levillain [Wed, 29 Apr 2015 13:48:42 +0000 (13:48 +0000)]
am b6829c2e: Merge "Refactor InvokeDexCallingConventionVisitor in Optimizing."

* commit 'b6829c2ee05124d64a19c7a52ada4a23f624fb91':
  Refactor InvokeDexCallingConventionVisitor in Optimizing.

9 years agoMerge "Refactor InvokeDexCallingConventionVisitor in Optimizing."
Roland Levillain [Wed, 29 Apr 2015 13:37:57 +0000 (13:37 +0000)]
Merge "Refactor InvokeDexCallingConventionVisitor in Optimizing."

9 years agoRefactor InvokeDexCallingConventionVisitor in Optimizing.
Roland Levillain [Tue, 28 Apr 2015 14:48:45 +0000 (15:48 +0100)]
Refactor InvokeDexCallingConventionVisitor in Optimizing.

Change-Id: I7ede0f59d5109644887bf5d39201d4e1bf043f34

9 years agoam f073a36d: Merge "Fix for incorrect encode and parse of PEXTRW instruction"
Vladimir Marko [Wed, 29 Apr 2015 12:07:57 +0000 (12:07 +0000)]
am f073a36d: Merge "Fix for incorrect encode and parse of PEXTRW instruction"

* commit 'f073a36d1ed866e786f7d7784c709c86b00bc58e':
  Fix for incorrect encode and parse of PEXTRW instruction

9 years agoMerge "Fix for incorrect encode and parse of PEXTRW instruction"
Vladimir Marko [Wed, 29 Apr 2015 11:56:55 +0000 (11:56 +0000)]
Merge "Fix for incorrect encode and parse of PEXTRW instruction"

9 years agoam e761b911: Merge "Revert "Revert "Revert "[optimizing] Improve x86 shifts""""
Roland Levillain [Wed, 29 Apr 2015 11:25:06 +0000 (11:25 +0000)]
am e761b911: Merge "Revert "Revert "Revert "[optimizing] Improve x86 shifts""""

* commit 'e761b911b24e9001ac50667462b4f936ebee7369':
  Revert "Revert "Revert "[optimizing] Improve x86 shifts"""

9 years agoMerge "Revert "Revert "Revert "[optimizing] Improve x86 shifts""""
Roland Levillain [Wed, 29 Apr 2015 11:12:59 +0000 (11:12 +0000)]
Merge "Revert "Revert "Revert "[optimizing] Improve x86 shifts""""

9 years agoRevert "Revert "Revert "[optimizing] Improve x86 shifts"""
Roland Levillain [Wed, 29 Apr 2015 11:12:33 +0000 (11:12 +0000)]
Revert "Revert "Revert "[optimizing] Improve x86 shifts"""

This reverts commit 9b95a057ee20e4b1ca2e9c663726482172dc9ba3.

Reverting this CL as it breaks libcore tests:

  org.apache.harmony.tests.java.lang.DoubleTest#test_compare
      junit.framework.AssertionFailedError: compare() -0.0 should be less 0.0
       at junit.framework.Assert.assertTrue(Assert.java:140)
       at org.apache.harmony.tests.java.lang.DoubleTest.test_compare(DoubleTest.java:258)
    org.apache.harmony.tests.java.lang.DoubleTest#test_compare FAIL (EXEC_FAILED)

  org.apache.harmony.tests.java.lang.DoubleTest#test_compareToLjava_lang_Double
      junit.framework.AssertionFailedError: Assert 2: compare() -0.0 should be less 0.0
       at junit.framework.Assert.assertTrue(Assert.java:140)
       at org.apache.harmony.tests.java.lang.DoubleTest.test_compareToLjava_lang_Double(DoubleTest.java:1320)
    org.apache.harmony.tests.java.lang.DoubleTest#test_compareToLjava_lang_Double FAIL (EXEC_FAILED)

Change-Id: I10f0ec8cc9495cc225fef1940b3f1a9fe87d996f

9 years agoam 7386f983: Merge "Bugs have been fixed, so run the tests."
Nicolas Geoffray [Wed, 29 Apr 2015 10:45:14 +0000 (10:45 +0000)]
am 7386f983: Merge "Bugs have been fixed, so run the tests."

* commit '7386f983a67cf73c91cfb9a69a3919f95b25f276':
  Bugs have been fixed, so run the tests.

9 years agoMerge "Bugs have been fixed, so run the tests."
Nicolas Geoffray [Wed, 29 Apr 2015 10:34:20 +0000 (10:34 +0000)]
Merge "Bugs have been fixed, so run the tests."

9 years agoam fadf977d: Merge "Add InsertInstructionAfter in HBasicBlock."
Roland Levillain [Wed, 29 Apr 2015 10:29:08 +0000 (10:29 +0000)]
am fadf977d: Merge "Add InsertInstructionAfter in HBasicBlock."

* commit 'fadf977d85bfbf3f9d5d4730afb660cbed34f989':
  Add InsertInstructionAfter in HBasicBlock.

9 years agoam d474b1d0: Merge "Revert "Revert "[optimizing] Improve x86 shifts"""
Roland Levillain [Wed, 29 Apr 2015 10:29:05 +0000 (10:29 +0000)]
am d474b1d0: Merge "Revert "Revert "[optimizing] Improve x86 shifts"""

* commit 'd474b1d0fd69fdeb481adda8c0814512956f2d51':
  Revert "Revert "[optimizing] Improve x86 shifts""

9 years agoMerge "Add InsertInstructionAfter in HBasicBlock."
Roland Levillain [Wed, 29 Apr 2015 10:23:07 +0000 (10:23 +0000)]
Merge "Add InsertInstructionAfter in HBasicBlock."

9 years agoMerge "Revert "Revert "[optimizing] Improve x86 shifts"""
Roland Levillain [Wed, 29 Apr 2015 10:18:40 +0000 (10:18 +0000)]
Merge "Revert "Revert "[optimizing] Improve x86 shifts"""

9 years agoBugs have been fixed, so run the tests.
Nicolas Geoffray [Wed, 29 Apr 2015 09:57:50 +0000 (10:57 +0100)]
Bugs have been fixed, so run the tests.

Change-Id: I6769cf244d246160b65d6dd4e4df0efb0aa8a7e5

9 years agoRevert "Revert "[optimizing] Improve x86 shifts""
Roland Levillain [Wed, 29 Apr 2015 09:22:37 +0000 (10:22 +0100)]
Revert "Revert "[optimizing] Improve x86 shifts""

This reverts commit f9aac1e9f442c2486cd54f045d43e15791601205.

Don't use Location::Any() for the first input if the output is
Location::SameAsFirstInput().

Change-Id: I400834052b114abf0d616da1b4b6506f7bba10ab

9 years agoam 57f6bee4: Merge "ART: Move dex2oat watchdog output to LogLine"
Andreas Gampe [Wed, 29 Apr 2015 06:40:14 +0000 (06:40 +0000)]
am 57f6bee4: Merge "ART: Move dex2oat watchdog output to LogLine"

* commit '57f6bee40489842c0461140935f900ed88281592':
  ART: Move dex2oat watchdog output to LogLine

9 years agoMerge "ART: Move dex2oat watchdog output to LogLine"
Andreas Gampe [Wed, 29 Apr 2015 06:30:40 +0000 (06:30 +0000)]
Merge "ART: Move dex2oat watchdog output to LogLine"

9 years agoART: Move dex2oat watchdog output to LogLine
Andreas Gampe [Wed, 29 Apr 2015 06:16:03 +0000 (23:16 -0700)]
ART: Move dex2oat watchdog output to LogLine

The fprintf isn't visible on device, as it doesn't end up in the
logcat.

Also increase the watchdog timeout to 10 minutes.

Bug: 20658562
Change-Id: I1fec8dae25f9282f72e762bda934fceb948bbd5f

9 years agoFix for incorrect encode and parse of PEXTRW instruction
nikolay serdjuk [Mon, 27 Apr 2015 11:52:57 +0000 (17:52 +0600)]
Fix for incorrect encode and parse of PEXTRW instruction

The instruction PEXTRW encoded by sequence 66 0F 3A 15
was incorrectly encoded in compiler table and incorrectly
parsed by disassembler.

Change-Id: Ib4d4db923cb15a76e74f13f6b5514cb0d1cbe164
Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com>
9 years agoam b0300bad: Merge "ART: Remove multidex limit"
Andreas Gampe [Wed, 29 Apr 2015 05:19:44 +0000 (05:19 +0000)]
am b0300bad: Merge "ART: Remove multidex limit"

* commit 'b0300bad88e6295217a53ff96db6170a727997a9':
  ART: Remove multidex limit

9 years agoMerge "ART: Remove multidex limit"
Andreas Gampe [Wed, 29 Apr 2015 05:10:04 +0000 (05:10 +0000)]
Merge "ART: Remove multidex limit"

9 years agoART: Remove multidex limit
Andreas Gampe [Tue, 28 Apr 2015 03:01:52 +0000 (20:01 -0700)]
ART: Remove multidex limit

Remove the arbitrary multidex limit. If users want to use many
files, allow them, but print a warning after a considerable amount.

Bug: 20071800

(cherry picked from commit 32c26b8f9b995250479c185172f4ffd881a59996)

Change-Id: Ic51c96b84042f769a7d33ec53fe587b68cd69df4

9 years agoam 13d38aab: Merge "Fix possible null deference in Throwable::Dump"
Mathieu Chartier [Tue, 28 Apr 2015 21:17:15 +0000 (21:17 +0000)]
am 13d38aab: Merge "Fix possible null deference in Throwable::Dump"

* commit '13d38aabf01f8391946730b7c2e8d077b1ec7d13':
  Fix possible null deference in Throwable::Dump

9 years agoMerge "Fix possible null deference in Throwable::Dump"
Mathieu Chartier [Tue, 28 Apr 2015 21:06:33 +0000 (21:06 +0000)]
Merge "Fix possible null deference in Throwable::Dump"

9 years agoFix possible null deference in Throwable::Dump
Mathieu Chartier [Tue, 28 Apr 2015 20:53:02 +0000 (13:53 -0700)]
Fix possible null deference in Throwable::Dump

Bug: 20640601

Change-Id: Ibd6081ed9ea16f320e505e06e690b8eddb1228ef

9 years agoam b8df6601: Merge "Change ddmc run-test to make new objects instead of strings."
Jeff Hao [Tue, 28 Apr 2015 19:25:26 +0000 (19:25 +0000)]
am b8df6601: Merge "Change ddmc run-test to make new objects instead of strings."

* commit 'b8df6601f2119fd90150761388057dbe893bb6ae':
  Change ddmc run-test to make new objects instead of strings.

9 years agoMerge "Change ddmc run-test to make new objects instead of strings."
Jeff Hao [Tue, 28 Apr 2015 19:15:05 +0000 (19:15 +0000)]
Merge "Change ddmc run-test to make new objects instead of strings."

9 years agoChange ddmc run-test to make new objects instead of strings.
Jeff Hao [Tue, 28 Apr 2015 19:11:22 +0000 (12:11 -0700)]
Change ddmc run-test to make new objects instead of strings.

Before, the test was creating new strings until overflowing allocations,
which was half string objects and half character arrays. Now, it
allocates all strings with the character data, which is larger than
before, causing the test to run out of memory. Allocating only objects
prevents the test from running out of memory.

Change-Id: Icf3f0fd2ae847e76a9b8d5dfb762be92de16aaa3

9 years agoam edede5c6: Merge "Quick: Fix crash on fall-through out of method code."
Vladimir Marko [Tue, 28 Apr 2015 18:50:39 +0000 (18:50 +0000)]
am edede5c6: Merge "Quick: Fix crash on fall-through out of method code."

* commit 'edede5c67daa2a6890067da0934e0ba6e14661b9':
  Quick: Fix crash on fall-through out of method code.

9 years agoMerge "Quick: Fix crash on fall-through out of method code."
Vladimir Marko [Tue, 28 Apr 2015 18:35:17 +0000 (18:35 +0000)]
Merge "Quick: Fix crash on fall-through out of method code."

9 years agoQuick: Fix crash on fall-through out of method code.
Calin Juravle [Tue, 7 Apr 2015 18:43:36 +0000 (19:43 +0100)]
Quick: Fix crash on fall-through out of method code.

Fix Quick crash when the last insn has a fall-through out of
the method's code. Allow creation of an out-of-method block
and at the end of MIRGraph::InlineMethod() check if that
block is reachable. If it is, punt to interpreter. Add tests
for unreachable if-lt and packed-switch as the last insn.

Also fix MIRGraph::ProcessCanSwitch() to treat the offset to
the data as signed. Jumping over the data with a goto and
using it from a switch further down is valid. This was also
crashing (presumably only on 64-bit dex2oat).

Thanks to Stephen Kyle (stephenckyle@googlemail.com) for the
bug report.

Bug: 19988134
Change-Id: I627f4137f61901897bfb9a5252741c6ded3a1adb

9 years agoam 458d91b0: Merge "Prevent undefined behavior in RosAlloc."
Dan Albert [Tue, 28 Apr 2015 18:23:35 +0000 (18:23 +0000)]
am 458d91b0: Merge "Prevent undefined behavior in RosAlloc."

* commit '458d91b0f72293c9dd347feecf535db0682ccd71':
  Prevent undefined behavior in RosAlloc.

9 years agoMerge "Prevent undefined behavior in RosAlloc."
Dan Albert [Tue, 28 Apr 2015 18:11:38 +0000 (18:11 +0000)]
Merge "Prevent undefined behavior in RosAlloc."

9 years agoPrevent undefined behavior in RosAlloc.
Dan Albert [Thu, 16 Apr 2015 18:50:30 +0000 (11:50 -0700)]
Prevent undefined behavior in RosAlloc.

In cases where remain == 0, the 32-bit value would be left shifted
32-bits, which is undefined behavior.

Change-Id: I6277279341b168536f928ce87375c395a1aa865c

9 years agoam 2b9b0de4: Merge "Fix some compaction bugs in string allocation"
Mathieu Chartier [Tue, 28 Apr 2015 18:03:18 +0000 (18:03 +0000)]
am 2b9b0de4: Merge "Fix some compaction bugs in string allocation"

* commit '2b9b0de424146c8b654b3fa05b14c48d3b2b0b13':
  Fix some compaction bugs in string allocation

9 years agoMerge "Fix some compaction bugs in string allocation"
Mathieu Chartier [Tue, 28 Apr 2015 17:47:45 +0000 (17:47 +0000)]
Merge "Fix some compaction bugs in string allocation"

9 years agoFix some compaction bugs in string allocation
Mathieu Chartier [Tue, 28 Apr 2015 17:01:28 +0000 (10:01 -0700)]
Fix some compaction bugs in string allocation

Change-Id: I2b8499c60de7690e1012d71bccba4ecd589da9af

9 years agoam 1c5808c0: Merge "Fix constructor access check through reflection"
Sebastien Hertz [Tue, 28 Apr 2015 14:42:23 +0000 (14:42 +0000)]
am 1c5808c0: Merge "Fix constructor access check through reflection"

* commit '1c5808c0fa83155565f5319808a2949e0a3f5789':
  Fix constructor access check through reflection

9 years agoMerge "Fix constructor access check through reflection"
Sebastien Hertz [Tue, 28 Apr 2015 14:33:00 +0000 (14:33 +0000)]
Merge "Fix constructor access check through reflection"

9 years agoam d4667dea: Merge "ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points."
Vladimir Marko [Tue, 28 Apr 2015 13:51:27 +0000 (13:51 +0000)]
am d4667dea: Merge "ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points."

* commit 'd4667dea87e68ee3ee64581af138f59300a5c510':
  ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points.

9 years agoMerge "ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points."
Vladimir Marko [Tue, 28 Apr 2015 13:31:38 +0000 (13:31 +0000)]
Merge "ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points."

9 years agoFix constructor access check through reflection
Sebastien Hertz [Tue, 28 Apr 2015 13:00:41 +0000 (15:00 +0200)]
Fix constructor access check through reflection

We must not throw IllegalAccessException if the constructor has been
made accessible by a previous call to Constructor.setAccessible, even
if the caller cannot access the constructor.

Bug: 20639158
Change-Id: I9a34f05cdbb8825ad88b42223743690228e3f03e

9 years agoART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points.
Vladimir Marko [Tue, 28 Apr 2015 13:14:58 +0000 (14:14 +0100)]
ART: Add FOUR_ARG_DOWNCALL macro for MIPS64 entry points.

Missing from
    https://android-review.googlesource.com/79174

Change-Id: If182b73824edfd4639f645612b2f7b67c1f31bef

9 years agoam 95935f28: Merge "ART: Fix MIPS entrypoint downcall macros."
Vladimir Marko [Tue, 28 Apr 2015 12:19:38 +0000 (12:19 +0000)]
am 95935f28: Merge "ART: Fix MIPS entrypoint downcall macros."

* commit '95935f28a7206c32592f6744cfc4c63e4d87ecdf':
  ART: Fix MIPS entrypoint downcall macros.

9 years agoMerge "ART: Fix MIPS entrypoint downcall macros."
Vladimir Marko [Tue, 28 Apr 2015 12:10:30 +0000 (12:10 +0000)]
Merge "ART: Fix MIPS entrypoint downcall macros."

9 years agoART: Fix MIPS entrypoint downcall macros.
Vladimir Marko [Tue, 28 Apr 2015 11:37:09 +0000 (12:37 +0100)]
ART: Fix MIPS entrypoint downcall macros.

Broken by not updating the MIPS assembly after rebase of
    https://android-review.googlesource.com/79174

Change-Id: I6258c254c0652e92357d306640c461d9523da227

9 years agoam 3adfc4bb: Merge "Quick: Avoid unnecessary GVN work in release builds."
Vladimir Marko [Tue, 28 Apr 2015 10:44:37 +0000 (10:44 +0000)]
am 3adfc4bb: Merge "Quick: Avoid unnecessary GVN work in release builds."

* commit '3adfc4bbe6c42d574bd2069d8e38a13d5ad98ccf':
  Quick: Avoid unnecessary GVN work in release builds.

9 years agoam 80613ffd: Merge "Have HInvoke instructions know their number of actual arguments."
Roland Levillain [Tue, 28 Apr 2015 10:39:17 +0000 (10:39 +0000)]
am 80613ffd: Merge "Have HInvoke instructions know their number of actual arguments."

* commit '80613ffd5699e6207d6b1264d600a0fc168074ce':
  Have HInvoke instructions know their number of actual arguments.

9 years agoam a94fb1f9: Merge "Revert "Revert "[optimizing] Replace FP divide by power of 2"""
Nicolas Geoffray [Tue, 28 Apr 2015 10:39:14 +0000 (10:39 +0000)]
am a94fb1f9: Merge "Revert "Revert "[optimizing] Replace FP divide by power of 2"""

* commit 'a94fb1f99ee3390bca9531b2512f8fc65f13ceee':
  Revert "Revert "[optimizing] Replace FP divide by power of 2""

9 years agoMerge "Quick: Avoid unnecessary GVN work in release builds."
Vladimir Marko [Tue, 28 Apr 2015 10:36:38 +0000 (10:36 +0000)]
Merge "Quick: Avoid unnecessary GVN work in release builds."

9 years agoMerge "Have HInvoke instructions know their number of actual arguments."
Roland Levillain [Tue, 28 Apr 2015 10:31:38 +0000 (10:31 +0000)]
Merge "Have HInvoke instructions know their number of actual arguments."

9 years agoMerge "Revert "Revert "[optimizing] Replace FP divide by power of 2"""
Nicolas Geoffray [Tue, 28 Apr 2015 10:29:17 +0000 (10:29 +0000)]
Merge "Revert "Revert "[optimizing] Replace FP divide by power of 2"""

9 years agoHave HInvoke instructions know their number of actual arguments.
Roland Levillain [Tue, 28 Apr 2015 10:00:54 +0000 (11:00 +0100)]
Have HInvoke instructions know their number of actual arguments.

Add an art::HInvoke::GetNumberOfArguments routine so that
art::HInvoke and its subclasses can return the number of
actual arguments of the called method.  Use it in code
generators and intrinsics handlers.

Consequently, no longer remove a clinit check as last input
of a static invoke if it is still present during baseline
code generation, but ensure that static invokes have no such
check as last input in optimized compilations.

Change-Id: Iaf9e07d1057a3b15b83d9638538c02b70211e476

9 years agoam 64db0171: Merge "Fix java_lang_Class newInstance for strings; also quick entrypoints."
Jeff Hao [Tue, 28 Apr 2015 04:15:04 +0000 (04:15 +0000)]
am 64db0171: Merge "Fix java_lang_Class newInstance for strings; also quick entrypoints."

* commit '64db01714f91bf255a79c0a88813641c240c9857':
  Fix java_lang_Class newInstance for strings; also quick entrypoints.

9 years agoMerge "Fix java_lang_Class newInstance for strings; also quick entrypoints."
Jeff Hao [Tue, 28 Apr 2015 03:57:53 +0000 (03:57 +0000)]
Merge "Fix java_lang_Class newInstance for strings; also quick entrypoints."

9 years agoFix java_lang_Class newInstance for strings; also quick entrypoints.
Jeff Hao [Tue, 28 Apr 2015 03:54:07 +0000 (20:54 -0700)]
Fix java_lang_Class newInstance for strings; also quick entrypoints.

Change-Id: I35fd23c5a9051e1ffda0ecc2cbafb5d318c7b5e6

9 years agoam f0a3d3da: Merge "ART: Fix constructor access checking"
Andreas Gampe [Tue, 28 Apr 2015 02:53:22 +0000 (02:53 +0000)]
am f0a3d3da: Merge "ART: Fix constructor access checking"

* commit 'f0a3d3dad248ad0dcb7cfc6addcc66d8bd117e48':
  ART: Fix constructor access checking

9 years agoMerge "ART: Fix constructor access checking"
Andreas Gampe [Tue, 28 Apr 2015 02:42:25 +0000 (02:42 +0000)]
Merge "ART: Fix constructor access checking"

9 years agoART: Fix constructor access checking
Andreas Gampe [Tue, 28 Apr 2015 00:26:37 +0000 (17:26 -0700)]
ART: Fix constructor access checking

Constructor access must be checked.

(cherry picked from commit 0dd76cd3f09f495a1b9a0e4f8712c09ff885c6fd)

Bug: 20639158
Change-Id: I3c586e9572a748d208bea43aa2349c3ef52a2ee5

9 years agoam 9d1e1903: Merge "Replace String CharArray with internal uint16_t array."
Jeff Hao [Tue, 28 Apr 2015 02:15:12 +0000 (02:15 +0000)]
am 9d1e1903: Merge "Replace String CharArray with internal uint16_t array."

* commit '9d1e19035a59ff8bf05a09ad880ede99806ba73f':
  Replace String CharArray with internal uint16_t array.

9 years agoMerge "Replace String CharArray with internal uint16_t array."
Jeff Hao [Tue, 28 Apr 2015 02:04:09 +0000 (02:04 +0000)]
Merge "Replace String CharArray with internal uint16_t array."

9 years agoReplace String CharArray with internal uint16_t array.
Jeff Hao [Wed, 15 Jan 2014 21:49:50 +0000 (13:49 -0800)]
Replace String CharArray with internal uint16_t array.

Summary of high level changes:
  - Adds compiler inliner support to identify string init methods
  - Adds compiler support (quick & optimizing) with new invoke code path
    that calls method off the thread pointer
  - Adds thread entrypoints for all string init methods
  - Adds map to verifier to log when receiver of string init has been
    copied to other registers. used by compiler and interpreter

Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01

9 years agoam 3fd79afb: Merge "Switch the default read barrier type to a Baker one."
Hiroshi Yamauchi [Tue, 28 Apr 2015 01:18:46 +0000 (01:18 +0000)]
am 3fd79afb: Merge "Switch the default read barrier type to a Baker one."

* commit '3fd79afbb7490f52817f737ecceb694f6618dcf9':
  Switch the default read barrier type to a Baker one.

9 years agoMerge "Switch the default read barrier type to a Baker one."
Hiroshi Yamauchi [Tue, 28 Apr 2015 01:07:17 +0000 (01:07 +0000)]
Merge "Switch the default read barrier type to a Baker one."

9 years agoSwitch the default read barrier type to a Baker one.
Hiroshi Yamauchi [Tue, 28 Apr 2015 00:58:51 +0000 (17:58 -0700)]
Switch the default read barrier type to a Baker one.

For automated testing.

Bug: 12687968
Change-Id: I831d6e45e4729f0dd3cf178d02af511a32cc9777

9 years agoRevert "Revert "[optimizing] Replace FP divide by power of 2""
Nicolas Geoffray [Mon, 27 Apr 2015 08:53:46 +0000 (08:53 +0000)]
Revert "Revert "[optimizing] Replace FP divide by power of 2""

This reverts commit 067cae2c86627d2edcf01b918ee601774bc76aeb.

Change-Id: Iaaa8772500ea7d3dce6ae0829dc0dc3bbc9c14ca

9 years agoam 97c96f5a: Merge "Fix mismatched malloc/free delete/new."
Christopher Ferris [Mon, 27 Apr 2015 19:14:58 +0000 (19:14 +0000)]
am 97c96f5a: Merge "Fix mismatched malloc/free delete/new."

* commit '97c96f5aab22f75dd54089bdc194588a4b5a2e8d':
  Fix mismatched malloc/free delete/new.

9 years agoam d74a1bf3: Merge "Use the lock word bits for Baker-style read barrier."
Hiroshi Yamauchi [Mon, 27 Apr 2015 19:14:56 +0000 (19:14 +0000)]
am d74a1bf3: Merge "Use the lock word bits for Baker-style read barrier."

* commit 'd74a1bf310a6a5ad2d770fcd76735cbc617d64eb':
  Use the lock word bits for Baker-style read barrier.

9 years agoam acee1524: Merge "Fix clean-oat"
Mathieu Chartier [Mon, 27 Apr 2015 19:14:53 +0000 (19:14 +0000)]
am acee1524: Merge "Fix clean-oat"

* commit 'acee152464725efac3dd74c9ac3acf2afa73f0e9':
  Fix clean-oat

9 years agoMerge "Fix mismatched malloc/free delete/new."
Christopher Ferris [Mon, 27 Apr 2015 19:05:36 +0000 (19:05 +0000)]
Merge "Fix mismatched malloc/free delete/new."

9 years agoFix mismatched malloc/free delete/new.
Christopher Ferris [Sat, 25 Apr 2015 00:23:53 +0000 (17:23 -0700)]
Fix mismatched malloc/free delete/new.

Modify the monitor code to override the delete operator. The problem
is the new operator is overloaded to return a pointer returned by
posix_memalign, but then it's freed with a delete, not a free call.

Also, fix the debugger code to use the [] for a std::unique_ptr to
match how the value is actually allocated.

Both problems found by ASAN.

Bug: 18202869

Change-Id: I2f3a2c02a7f35399b7ba6717b08a035089fab00d

9 years agoMerge "Use the lock word bits for Baker-style read barrier."
Hiroshi Yamauchi [Mon, 27 Apr 2015 18:10:18 +0000 (18:10 +0000)]
Merge "Use the lock word bits for Baker-style read barrier."

9 years agoMerge "Fix clean-oat"
Mathieu Chartier [Mon, 27 Apr 2015 18:01:13 +0000 (18:01 +0000)]
Merge "Fix clean-oat"

9 years agoFix clean-oat
Mathieu Chartier [Mon, 27 Apr 2015 17:46:39 +0000 (10:46 -0700)]
Fix clean-oat

Change to use adb shell sh -c <cmd>.

Also fixed other phony targets, deleted smart mode and added
verify-at-runtime mode.

Change-Id: I562117774eaa153e66b46d6f173fe993931018b7

9 years agoam 2d01066d: Merge "Dissociate uses with environment uses."
Nicolas Geoffray [Mon, 27 Apr 2015 17:28:57 +0000 (17:28 +0000)]
am 2d01066d: Merge "Dissociate uses with environment uses."

* commit '2d01066db24c19f9384f50ff71806cbb4835c7f9':
  Dissociate uses with environment uses.

9 years agoMerge "Dissociate uses with environment uses."
Nicolas Geoffray [Mon, 27 Apr 2015 17:12:10 +0000 (17:12 +0000)]
Merge "Dissociate uses with environment uses."

9 years agoam 295dda50: Merge "Quick: Rely on inferred types in GVN/LVN/DCE."
Vladimir Marko [Mon, 27 Apr 2015 17:09:36 +0000 (17:09 +0000)]
am 295dda50: Merge "Quick: Rely on inferred types in GVN/LVN/DCE."

* commit '295dda5066dfeb5bed88a4a484268f94b060c7fb':
  Quick: Rely on inferred types in GVN/LVN/DCE.

9 years agoMerge "Quick: Rely on inferred types in GVN/LVN/DCE."
Vladimir Marko [Mon, 27 Apr 2015 16:53:25 +0000 (16:53 +0000)]
Merge "Quick: Rely on inferred types in GVN/LVN/DCE."

9 years agoDissociate uses with environment uses.
Nicolas Geoffray [Mon, 27 Apr 2015 15:58:06 +0000 (16:58 +0100)]
Dissociate uses with environment uses.

They are most of the times in the way when iterating. They
also complicate the logic of (future) back edge uses.

Change-Id: I152595d9913073fe901b267ca623fa0fe7432484

9 years agoam d14438f0: Merge "ART: Simplify Ifs with BooleanNot condition"
David Brazdil [Mon, 27 Apr 2015 16:15:52 +0000 (16:15 +0000)]
am d14438f0: Merge "ART: Simplify Ifs with BooleanNot condition"

* commit 'd14438f0c5071962be7fab572b54687d32d9d087':
  ART: Simplify Ifs with BooleanNot condition

9 years agoMerge "ART: Simplify Ifs with BooleanNot condition"
David Brazdil [Mon, 27 Apr 2015 16:02:02 +0000 (16:02 +0000)]
Merge "ART: Simplify Ifs with BooleanNot condition"

9 years agoART: Simplify Ifs with BooleanNot condition
David Brazdil [Mon, 27 Apr 2015 12:54:09 +0000 (13:54 +0100)]
ART: Simplify Ifs with BooleanNot condition

If statements with negated condition can be simplified by removing the
negation and swapping the true and false branches.

Change-Id: I197afbc79fb7344d73b7b85d3611e7ca2519717f

9 years agoQuick: Avoid unnecessary GVN work in release builds.
Vladimir Marko [Sat, 25 Apr 2015 16:00:45 +0000 (17:00 +0100)]
Quick: Avoid unnecessary GVN work in release builds.

In GVN's post-processing phase, compare LVNs only in debug
builds as they should be equal anyway.

Remove the Gate() from GVN cleanup pass and remove the
DCHECK() from MIRGraph::GlobalValueNumberingCleanup()
to make it a no-op if the GVN didn't run.

Bug: 16398693
Change-Id: Ia4f1e7e3ecf12d0305966c86e0e7dbae61dab0b7

9 years agoam a0ee8622: Merge "Add support for caching float and double constants."
Nicolas Geoffray [Mon, 27 Apr 2015 14:25:00 +0000 (14:25 +0000)]
am a0ee8622: Merge "Add support for caching float and double constants."

* commit 'a0ee862288b702468f8c2b6d0ad0f1c61be0b483':
  Add support for caching float and double constants.

9 years agoMerge "Add support for caching float and double constants."
Nicolas Geoffray [Mon, 27 Apr 2015 14:12:24 +0000 (14:12 +0000)]
Merge "Add support for caching float and double constants."

9 years agoAdd support for caching float and double constants.
Nicolas Geoffray [Mon, 27 Apr 2015 08:53:46 +0000 (08:53 +0000)]
Add support for caching float and double constants.

Change-Id: Ib5205bad1006bc5e3c9cc86bc82a6b4b1ce9bef9

9 years agoam 0fbfe6f9: Merge "ART: Fix removing a Phi with RemoveInstruction"
David Brazdil [Mon, 27 Apr 2015 12:59:08 +0000 (12:59 +0000)]
am 0fbfe6f9: Merge "ART: Fix removing a Phi with RemoveInstruction"

* commit '0fbfe6f92a2481daf914043262b5854e65d8c3cc':
  ART: Fix removing a Phi with RemoveInstruction

9 years agoMerge "ART: Fix removing a Phi with RemoveInstruction"
David Brazdil [Mon, 27 Apr 2015 12:42:59 +0000 (12:42 +0000)]
Merge "ART: Fix removing a Phi with RemoveInstruction"

9 years agoART: Fix removing a Phi with RemoveInstruction
David Brazdil [Mon, 27 Apr 2015 12:28:57 +0000 (13:28 +0100)]
ART: Fix removing a Phi with RemoveInstruction

Boolean simplifier might attempt to remove a Phi from the Instruction
list.

Change-Id: I698cc616549bd88dac96395cb2e5d09b5433d157

9 years agoAdd InsertInstructionAfter in HBasicBlock.
Guillaume "Vermeille" Sanchez [Fri, 24 Apr 2015 15:36:52 +0000 (16:36 +0100)]
Add InsertInstructionAfter in HBasicBlock.

Change-Id: I56e4e6edb39d1aab747877b7e517e94f0393f296

9 years agoQuick: Rely on inferred types in GVN/LVN/DCE.
Vladimir Marko [Fri, 24 Apr 2015 18:03:51 +0000 (19:03 +0100)]
Quick: Rely on inferred types in GVN/LVN/DCE.

Fix LVN::GetEndingVregValueNumberImpl() to check whether
the requested wideness matches the SSA register type as
recorded in MIRGraph::reg_location_.

Add DCHECKs that the wideness matches when getting/setting
sreg values, update Phi handling in LVN/DCE to use the type
from MIRGraph::reg_location_ instead of determining it from
the sreg value maps which would now trigger the DCHECKs.
Update tests to initialize MIRGraph::reg_location_.

Reenable DCE.

Bug: 20572509
Change-Id: I1a4d4e32cd57807ca8b56d2f3ed5e1288660b82e

9 years agoam 76bf84a1: Merge "BCE: don\'t add deoptimization if the loop has early exit."
Mingyao Yang [Mon, 27 Apr 2015 07:15:02 +0000 (07:15 +0000)]
am 76bf84a1: Merge "BCE: don\'t add deoptimization if the loop has early exit."

* commit '76bf84a196576f902a76a1165516a49dac15856f':
  BCE: don't add deoptimization if the loop has early exit.

9 years agoam f382eff1: Merge "Deoptimization-based BCE for unknown loop bounds."
Mingyao Yang [Mon, 27 Apr 2015 07:15:01 +0000 (07:15 +0000)]
am f382eff1: Merge "Deoptimization-based BCE for unknown loop bounds."

* commit 'f382eff130a5d90c34b3f09c4c61cb50cacd4c54':
  Deoptimization-based BCE for unknown loop bounds.

9 years agoam adf15974: Merge "Revert "[optimizing] Replace FP divide by power of 2""
Nicolas Geoffray [Mon, 27 Apr 2015 07:14:59 +0000 (07:14 +0000)]
am adf15974: Merge "Revert "[optimizing] Replace FP divide by power of 2""

* commit 'adf15974e0a0a2b0e6dc311ff5701b87ca15964a':
  Revert "[optimizing] Replace FP divide by power of 2"

9 years agoam 5ff903a5: Merge "[optimizing] Replace FP divide by power of 2"
Nicolas Geoffray [Mon, 27 Apr 2015 07:14:56 +0000 (07:14 +0000)]
am 5ff903a5: Merge "[optimizing] Replace FP divide by power of 2"

* commit '5ff903a589af282f516bbcf6844ff2656ce76b02':
  [optimizing] Replace FP divide by power of 2

9 years agoMerge "BCE: don't add deoptimization if the loop has early exit."
Mingyao Yang [Mon, 27 Apr 2015 01:41:58 +0000 (01:41 +0000)]
Merge "BCE: don't add deoptimization if the loop has early exit."

9 years agoBCE: don't add deoptimization if the loop has early exit.
Mingyao Yang [Mon, 27 Apr 2015 01:15:30 +0000 (18:15 -0700)]
BCE: don't add deoptimization if the loop has early exit.

Also make the way to detect loop_body_successor to be
more accurate.

Change-Id: I29680f93396383c478a8f40ad28735e4f3f07c1b

9 years agoMerge "Deoptimization-based BCE for unknown loop bounds."
Mingyao Yang [Sun, 26 Apr 2015 18:23:01 +0000 (18:23 +0000)]
Merge "Deoptimization-based BCE for unknown loop bounds."

9 years agoDeoptimization-based BCE for unknown loop bounds.
Mingyao Yang [Mon, 13 Apr 2015 23:46:28 +0000 (16:46 -0700)]
Deoptimization-based BCE for unknown loop bounds.

For loop like:
  for (int i = start; i < end; i++) {
    array[i] = 1;
  }
We add the following to the loop pre-header:
  if (start < 0) deoptimize();
  if (end > array.length) deoptimize();
Then we can eliminate bounds-check of array[i] inside the loop.

We also take care of indexing with induction variable plus some offsets,
like array[i - 1]/array[i + 1] inside the loop, and adjust the condition
for deoptimization accordingly.

Change-Id: I9e24c6b5e134ff95eff5b5605ff8f95d6546616f