OSDN Git Service

android-x86/art.git
9 years agoam 3c0ea8b9: am cbf5d896: ART: Check var-arg count earlier in method verifier
Taiju Tsuiki [Sat, 20 Jun 2015 02:10:38 +0000 (02:10 +0000)]
am 3c0ea8b9: am cbf5d896: ART: Check var-arg count earlier in method verifier

* commit '3c0ea8b951827a3c4ce1714b610c45870f837257':
  ART: Check var-arg count earlier in method verifier

9 years agoam cbf5d896: ART: Check var-arg count earlier in method verifier
Taiju Tsuiki [Sat, 20 Jun 2015 01:59:01 +0000 (01:59 +0000)]
am cbf5d896: ART: Check var-arg count earlier in method verifier

* commit 'cbf5d89665cfb48778b2946794fbea43067ff04a':
  ART: Check var-arg count earlier in method verifier

9 years agoART: Check var-arg count earlier in method verifier
Taiju Tsuiki [Mon, 13 Apr 2015 05:21:00 +0000 (14:21 +0900)]
ART: Check var-arg count earlier in method verifier

Check the count in vararg instructions before filling the temp
array. Avoids a DCHECK.

Bug: 21869663
Bug: 20170976

(cherry picked from commit 29498a23bcfe47a7134552aacad5524ecb484a49)

Change-Id: I1ff93502ab84c5967ad54d1b50dba517da791637

9 years agoam 8add5831: am ba7837b2: Merge "ART: Check var-arg count earlier in method verifier"
Andreas Gampe [Sat, 20 Jun 2015 01:10:09 +0000 (01:10 +0000)]
am 8add5831: am ba7837b2: Merge "ART: Check var-arg count earlier in method verifier"

* commit '8add5831e6d129b13252c861f7d9c024ec50a46a':
  ART: Check var-arg count earlier in method verifier

9 years agoam ba7837b2: Merge "ART: Check var-arg count earlier in method verifier"
Andreas Gampe [Sat, 20 Jun 2015 00:54:49 +0000 (00:54 +0000)]
am ba7837b2: Merge "ART: Check var-arg count earlier in method verifier"

* commit 'ba7837b2308aeaaa613383297737488af558aed7':
  ART: Check var-arg count earlier in method verifier

9 years agoMerge "ART: Check var-arg count earlier in method verifier"
Andreas Gampe [Sat, 20 Jun 2015 00:43:39 +0000 (00:43 +0000)]
Merge "ART: Check var-arg count earlier in method verifier"

9 years agoART: Check var-arg count earlier in method verifier
Taiju Tsuiki [Mon, 13 Apr 2015 05:21:00 +0000 (14:21 +0900)]
ART: Check var-arg count earlier in method verifier

Check the count in vararg instructions before filling the temp
array. Avoids a DCHECK.

Bug: 21869663
Bug: 20170976

Change-Id: I1ff93502ab84c5967ad54d1b50dba517da791637

9 years agoam d7f7bf7f: am 1bd841a2: Merge "ART: Fix BCE lint issue" into mnc-dev
Mingyao Yang [Sat, 20 Jun 2015 00:10:29 +0000 (00:10 +0000)]
am d7f7bf7f: am 1bd841a2: Merge "ART: Fix BCE lint issue" into mnc-dev

* commit 'd7f7bf7fea3b09bd0549bdf99e98b84a69157585':
  ART: Fix BCE lint issue

9 years agoam 1bd841a2: Merge "ART: Fix BCE lint issue" into mnc-dev
Mingyao Yang [Fri, 19 Jun 2015 23:57:31 +0000 (23:57 +0000)]
am 1bd841a2: Merge "ART: Fix BCE lint issue" into mnc-dev

* commit '1bd841a26a0810decbd3cd9dcc3c0dca5773dc2b':
  ART: Fix BCE lint issue

9 years agoMerge "ART: Fix BCE lint issue" into mnc-dev
Mingyao Yang [Fri, 19 Jun 2015 23:45:43 +0000 (23:45 +0000)]
Merge "ART: Fix BCE lint issue" into mnc-dev

9 years agoART: Fix BCE lint issue
Andreas Gampe [Thu, 11 Jun 2015 01:33:26 +0000 (18:33 -0700)]
ART: Fix BCE lint issue

Bug: 21034044

(cherry picked from commit 45d68f138a31a3ff9b45cda313f0ba27f1431f26)

Change-Id: I7f382a3124955eff5c0b96ca39ec67fb658fa3d0

9 years agoam ffb24af9: am d1a06338: Merge "Fix GC map generation edge case"
Mathieu Chartier [Fri, 19 Jun 2015 23:07:56 +0000 (23:07 +0000)]
am ffb24af9: am d1a06338: Merge "Fix GC map generation edge case"

* commit 'ffb24af928edfa4cbd76d8e10ac5d302a86f7947':
  Fix GC map generation edge case

9 years agoam d1a06338: Merge "Fix GC map generation edge case"
Mathieu Chartier [Fri, 19 Jun 2015 22:54:44 +0000 (22:54 +0000)]
am d1a06338: Merge "Fix GC map generation edge case"

* commit 'd1a06338b9aa818b730ef1d46549a09af8f35c5b':
  Fix GC map generation edge case

9 years agoMerge "Fix GC map generation edge case"
Mathieu Chartier [Fri, 19 Jun 2015 22:42:21 +0000 (22:42 +0000)]
Merge "Fix GC map generation edge case"

9 years agoam e11244a1: am f0ed1f0f: Merge "Fix GC map generation edge case" into mnc-dev
Mathieu Chartier [Fri, 19 Jun 2015 22:41:34 +0000 (22:41 +0000)]
am e11244a1: am f0ed1f0f: Merge "Fix GC map generation edge case" into mnc-dev

* commit 'e11244a139b6589be20e4b46ece9c3dbcf1729ba':
  Fix GC map generation edge case

9 years agoam f0ed1f0f: Merge "Fix GC map generation edge case" into mnc-dev
Mathieu Chartier [Fri, 19 Jun 2015 22:28:21 +0000 (22:28 +0000)]
am f0ed1f0f: Merge "Fix GC map generation edge case" into mnc-dev

* commit 'f0ed1f0fe2643c49997ea0e0bd04226ef7ba33fa':
  Fix GC map generation edge case

9 years agoFix GC map generation edge case
Mathieu Chartier [Fri, 19 Jun 2015 20:55:27 +0000 (13:55 -0700)]
Fix GC map generation edge case

Previously we checked the number of bits, but then rounded up to a
byte boundary. If ref_bitmap_bits was 65535, it would pass the check
but not actually fit in the 13 bits for ref_bitmap_bytes since we
rounded up to 8192 bytes.

(cherry picked from commit 1626b919005df42ccc90ebe68fc57b7c56d44029)

Regression test infeasible due to smali limitations.

Bug: 21888453
Change-Id: If4b769431f27ecca14fe7852d017bcde01b3e146

9 years agoMerge "Fix GC map generation edge case" into mnc-dev
Mathieu Chartier [Fri, 19 Jun 2015 22:19:22 +0000 (22:19 +0000)]
Merge "Fix GC map generation edge case" into mnc-dev

9 years agoam 9e3351df: am 31fa4b57: Remove bogus DCHECK in BCE.
Nicolas Geoffray [Fri, 19 Jun 2015 21:23:17 +0000 (21:23 +0000)]
am 9e3351df: am 31fa4b57: Remove bogus DCHECK in BCE.

* commit '9e3351dfc877136a257722d3a23e56d687517e66':
  Remove bogus DCHECK in BCE.

9 years agoFix GC map generation edge case
Mathieu Chartier [Fri, 19 Jun 2015 20:55:27 +0000 (13:55 -0700)]
Fix GC map generation edge case

Previously we checked the number of bits, but then rounded up to a
byte boundary. If ref_bitmap_bits was 65535, it would pass the check
but not actually fit in the 13 bits for ref_bitmap_bytes since we
rounded up to 8192 bytes.

Regression test infeasible due to smali limitations.

Bug: 21888453
Change-Id: If4b769431f27ecca14fe7852d017bcde01b3e146

9 years agoresolved conflicts for merge of f4e67434 to mnc-dev-plus-aosp
Mingyao Yang [Fri, 19 Jun 2015 21:07:37 +0000 (14:07 -0700)]
resolved conflicts for merge of f4e67434 to mnc-dev-plus-aosp

Change-Id: I2823f5bc5b4fc6989577c1ac6c55e9a71d47dd49

9 years agoam 31fa4b57: Remove bogus DCHECK in BCE.
Nicolas Geoffray [Fri, 19 Jun 2015 20:45:37 +0000 (20:45 +0000)]
am 31fa4b57: Remove bogus DCHECK in BCE.

* commit '31fa4b57132a2352630b599b4da7e69f77376dcb':
  Remove bogus DCHECK in BCE.

9 years agoRemove bogus DCHECK in BCE.
Nicolas Geoffray [Wed, 17 Jun 2015 09:17:49 +0000 (10:17 +0100)]
Remove bogus DCHECK in BCE.

When creating a phi for the array length when we add HDeoptimization
nodes, we might update accesses in inner loops to use that phi instead
of the array length. The BCE phase was not expecting this case.

Bug: 21034044

(cherry picked from commit 3cde6227678cf62e06bca264671d1e957456ac3d)

Change-Id: I639f4ea6f5889726142041a42736183f162c7437

9 years agoMerge commit '99001897' into mnc-dev-plus-aosp
David Srbecky [Fri, 19 Jun 2015 20:16:07 +0000 (21:16 +0100)]
Merge commit '99001897' into mnc-dev-plus-aosp

9 years agoam bca381a1: Fix premature deoptimization if the loop body isn\'t entered.
Mingyao Yang [Fri, 19 Jun 2015 19:55:14 +0000 (19:55 +0000)]
am bca381a1: Fix premature deoptimization if the loop body isn\'t entered.

* commit 'bca381a12965a98e3727e93986dd0a195db500a0':
  Fix premature deoptimization if the loop body isn't entered.

9 years agoFix premature deoptimization if the loop body isn't entered.
Mingyao Yang [Tue, 19 May 2015 23:01:59 +0000 (16:01 -0700)]
Fix premature deoptimization if the loop body isn't entered.

Add a test between initial_ and end_ to see if the loop body is entered.
If the loop body isn't entered at all, we jump to the loop header. Loop header is
still executed and is going to test the condition again and loop body won't be
entered. This makes sure no deoptimization is triggered if the loop body isn't
even entered.

Bug: 21034044

(cherry picked from commit 3584bce5b1f45e5741d3a6ca24884a36320ecb6b)

Change-Id: I2b6de1f22fbc4568ca419f76382ebd87806d9694

9 years agoam bd64add2: am d5ff8c58: Merge "Fix case where block has no predecessor for StringCh...
Jeff Hao [Fri, 19 Jun 2015 18:42:16 +0000 (18:42 +0000)]
am bd64add2: am d5ff8c58: Merge "Fix case where block has no predecessor for StringChange."

* commit 'bd64add22771a0deb739a9ad56dc381557bf6a14':
  Fix case where block has no predecessor for StringChange.

9 years agoam db538d30: Merge "ART stack unwinding fixes for libunwind/gdb/lldb." into mnc-dev
David Srbecky [Fri, 19 Jun 2015 18:35:53 +0000 (18:35 +0000)]
am db538d30: Merge "ART stack unwinding fixes for libunwind/gdb/lldb." into mnc-dev

* commit 'db538d309bc34e025e921a04f10b4ee745bd9f1d':
  ART stack unwinding fixes for libunwind/gdb/lldb.

9 years agoam d5ff8c58: Merge "Fix case where block has no predecessor for StringChange."
Jeff Hao [Fri, 19 Jun 2015 18:31:00 +0000 (18:31 +0000)]
am d5ff8c58: Merge "Fix case where block has no predecessor for StringChange."

* commit 'd5ff8c584b230da350f4ebfffec1d245c09bf26b':
  Fix case where block has no predecessor for StringChange.

9 years agoam f76b0ff7: am 3e91a44b: Fix case where block has no predecessor for StringChange.
Jeff Hao [Fri, 19 Jun 2015 18:30:58 +0000 (18:30 +0000)]
am f76b0ff7: am 3e91a44b: Fix case where block has no predecessor for StringChange.

* commit 'f76b0ff70491d71670a4295eac861d0ae49f5ec5':
  Fix case where block has no predecessor for StringChange.

9 years agoMerge "ART stack unwinding fixes for libunwind/gdb/lldb." into mnc-dev
David Srbecky [Fri, 19 Jun 2015 18:25:56 +0000 (18:25 +0000)]
Merge "ART stack unwinding fixes for libunwind/gdb/lldb." into mnc-dev

9 years agoam 3e91a44b: Fix case where block has no predecessor for StringChange.
Jeff Hao [Fri, 19 Jun 2015 18:18:25 +0000 (18:18 +0000)]
am 3e91a44b: Fix case where block has no predecessor for StringChange.

* commit '3e91a44bc9063f7f69b5415e3cf162991f73283f':
  Fix case where block has no predecessor for StringChange.

9 years agoMerge "Fix case where block has no predecessor for StringChange."
Jeff Hao [Fri, 19 Jun 2015 18:15:00 +0000 (18:15 +0000)]
Merge "Fix case where block has no predecessor for StringChange."

9 years agoFix case where block has no predecessor for StringChange.
Jeff Hao [Wed, 17 Jun 2015 23:04:26 +0000 (16:04 -0700)]
Fix case where block has no predecessor for StringChange.

Removes part that checks for throwing half of instruction. It's no
longer necessary. Also adds regression test.

Bug: 21902684

(cherry-picked from commit 3e91a44bc9063f7f69b5415e3cf162991f73283f)

Change-Id: I8d7308ff227816fb475341c2b74ed84d5695a2f5

9 years agoam 57e612b3: am e102f193: Merge "Fix StringChange for optimizing compiler."
Jeff Hao [Fri, 19 Jun 2015 18:03:13 +0000 (18:03 +0000)]
am 57e612b3: am e102f193: Merge "Fix StringChange for optimizing compiler."

* commit '57e612b3573be103d3d83b1b0edb5224b082dfe5':
  Fix StringChange for optimizing compiler.

9 years agoam e102f193: Merge "Fix StringChange for optimizing compiler."
Jeff Hao [Fri, 19 Jun 2015 17:50:54 +0000 (17:50 +0000)]
am e102f193: Merge "Fix StringChange for optimizing compiler."

* commit 'e102f1937ca14df87594469430d2e6e0ebe0f357':
  Fix StringChange for optimizing compiler.

9 years agoMerge "Fix StringChange for optimizing compiler."
Jeff Hao [Fri, 19 Jun 2015 17:38:55 +0000 (17:38 +0000)]
Merge "Fix StringChange for optimizing compiler."

9 years agoFix case where block has no predecessor for StringChange.
Jeff Hao [Wed, 17 Jun 2015 23:04:26 +0000 (16:04 -0700)]
Fix case where block has no predecessor for StringChange.

Removes part that checks for throwing half of instruction. It's no
longer necessary. Also adds regression test.

Bug: 21902684
Change-Id: Ic600165e6b3719de3d83a73b8a1fa64473668fc8

9 years agoam 9404b85e: am e7738e8b: Quick: Handle total high/low register overlap on arm/mips.
Vladimir Marko [Fri, 19 Jun 2015 17:04:15 +0000 (17:04 +0000)]
am 9404b85e: am e7738e8b: Quick: Handle total high/low register overlap on arm/mips.

* commit '9404b85efaa07eeb7d6fadbc2b040aaa1e0517ed':
  Quick: Handle total high/low register overlap on arm/mips.

9 years agoam e873574d: am e4bb626f: Merge "Quick: Handle total high/low register overlap on...
Vladimir Marko [Fri, 19 Jun 2015 17:04:10 +0000 (17:04 +0000)]
am e873574d: am e4bb626f: Merge "Quick: Handle total high/low register overlap on arm/mips."

* commit 'e873574dc2b36727d44923366eece4ec28ca563e':
  Quick: Handle total high/low register overlap on arm/mips.

9 years agoam e7738e8b: Quick: Handle total high/low register overlap on arm/mips.
Vladimir Marko [Fri, 19 Jun 2015 16:51:41 +0000 (16:51 +0000)]
am e7738e8b: Quick: Handle total high/low register overlap on arm/mips.

* commit 'e7738e8bf567153fde593404d380a5c79ba6bfa8':
  Quick: Handle total high/low register overlap on arm/mips.

9 years agoam e4bb626f: Merge "Quick: Handle total high/low register overlap on arm/mips."
Vladimir Marko [Fri, 19 Jun 2015 16:51:34 +0000 (16:51 +0000)]
am e4bb626f: Merge "Quick: Handle total high/low register overlap on arm/mips."

* commit 'e4bb626ff09e409c9482e515716de7cd595ea466':
  Quick: Handle total high/low register overlap on arm/mips.

9 years agoMerge "Quick: Handle total high/low register overlap on arm/mips."
Vladimir Marko [Fri, 19 Jun 2015 16:39:29 +0000 (16:39 +0000)]
Merge "Quick: Handle total high/low register overlap on arm/mips."

9 years agoQuick: Handle total high/low register overlap on arm/mips.
Vladimir Marko [Fri, 19 Jun 2015 13:56:38 +0000 (14:56 +0100)]
Quick: Handle total high/low register overlap on arm/mips.

OpRegCopyWide() in arm and mips backends didn't handle the
total register overlap when the registers holding the source
and destination pairs are the same but in reverse order.

Bug: 21897012

(cherry picked from commit 8958f7f8702327e713264d0538ab5dec586f3738)

Change-Id: I20afce6cc3213e7f7b3edaef91f3ec29c469f877

9 years agoam a303e25e: am 9f7687cb: Quick: Fix optimizations for empty if blocks.
Vladimir Marko [Fri, 19 Jun 2015 16:15:45 +0000 (16:15 +0000)]
am a303e25e: am 9f7687cb: Quick: Fix optimizations for empty if blocks.

* commit 'a303e25e3830e1ab4ea60471a00c7e456a8bc25c':
  Quick: Fix optimizations for empty if blocks.

9 years agoam 1863c0ef: am dd3c7d2d: ART: Remove old DCHECK that trips Baseline
David Brazdil [Fri, 19 Jun 2015 16:14:39 +0000 (16:14 +0000)]
am 1863c0ef: am dd3c7d2d: ART: Remove old DCHECK that trips Baseline

* commit '1863c0efb56adde858a5aca502c625f89e17873d':
  ART: Remove old DCHECK that trips Baseline

9 years agoam 0a487e74: (-s ours) am 122349a7: Merge "Fix StringChange for optimizing compiler...
Jeff Hao [Fri, 19 Jun 2015 16:13:49 +0000 (16:13 +0000)]
am 0a487e74: (-s ours) am 122349a7: Merge "Fix StringChange for optimizing compiler." into mnc-dev

* commit '0a487e74549876f597d2dad41bbf30ef576df440':
  Fix StringChange for optimizing compiler.

9 years agoam 759662ef: am 87a135e8: Merge "Be careful with predecessor/successor index."
Nicolas Geoffray [Fri, 19 Jun 2015 16:06:12 +0000 (16:06 +0000)]
am 759662ef: am 87a135e8: Merge "Be careful with predecessor/successor index."

* commit '759662ef35b45d9b260dbc896c91048574e6bffe':
  Be careful with predecessor/successor index.

9 years agoam aeace8f4: am ff3fd957: Merge "Quick: Fix optimizations for empty if blocks."
Vladimir Marko [Fri, 19 Jun 2015 16:06:11 +0000 (16:06 +0000)]
am aeace8f4: am ff3fd957: Merge "Quick: Fix optimizations for empty if blocks."

* commit 'aeace8f4681b476d82491c6da5f8f49e4035bc7e':
  Quick: Fix optimizations for empty if blocks.

9 years agoam 87a135e8: Merge "Be careful with predecessor/successor index."
Nicolas Geoffray [Fri, 19 Jun 2015 16:00:41 +0000 (16:00 +0000)]
am 87a135e8: Merge "Be careful with predecessor/successor index."

* commit '87a135e8699119c9ef99b0221acf481d7d6501d4':
  Be careful with predecessor/successor index.

9 years agoam 9f7687cb: Quick: Fix optimizations for empty if blocks.
Vladimir Marko [Fri, 19 Jun 2015 15:54:25 +0000 (15:54 +0000)]
am 9f7687cb: Quick: Fix optimizations for empty if blocks.

* commit '9f7687cb5c1390ec4bcc2f8fa10dbee33aff3d6a':
  Quick: Fix optimizations for empty if blocks.

9 years agoam ff3fd957: Merge "Quick: Fix optimizations for empty if blocks."
Vladimir Marko [Fri, 19 Jun 2015 15:53:16 +0000 (15:53 +0000)]
am ff3fd957: Merge "Quick: Fix optimizations for empty if blocks."

* commit 'ff3fd957020f0e5cf5cc279f4bbbca3545ce8745':
  Quick: Fix optimizations for empty if blocks.

9 years agoMerge "Be careful with predecessor/successor index."
Nicolas Geoffray [Fri, 19 Jun 2015 15:52:24 +0000 (15:52 +0000)]
Merge "Be careful with predecessor/successor index."

9 years agoBe careful with predecessor/successor index.
Nicolas Geoffray [Fri, 19 Jun 2015 15:17:05 +0000 (16:17 +0100)]
Be careful with predecessor/successor index.

When we simplify the CFG, we must preserve things that were already
simplified. For example, the index in the predecessor list or
successor list of a block must be preserved for ensuring the
first block is a loop pre header.

bug:21867463

Change-Id: Ic3fcb3eb2c3fb109d8a57ee2a6b6d4d65fdb9410

9 years agoMerge "Quick: Fix optimizations for empty if blocks."
Vladimir Marko [Fri, 19 Jun 2015 15:44:22 +0000 (15:44 +0000)]
Merge "Quick: Fix optimizations for empty if blocks."

9 years agoam e15aa290: am dbc0345e: Merge "Opt compiler: Add a description to MIP64 slow paths."
Roland Levillain [Fri, 19 Jun 2015 15:34:34 +0000 (15:34 +0000)]
am e15aa290: am dbc0345e: Merge "Opt compiler: Add a description to MIP64 slow paths."

* commit 'e15aa290d86a88cb58d92fa11ec2d603e755e3cf':
  Opt compiler: Add a description to MIP64 slow paths.

9 years agoam dbc0345e: Merge "Opt compiler: Add a description to MIP64 slow paths."
Roland Levillain [Fri, 19 Jun 2015 15:22:37 +0000 (15:22 +0000)]
am dbc0345e: Merge "Opt compiler: Add a description to MIP64 slow paths."

* commit 'dbc0345e7a066726fda6dbfe47592963f4602c56':
  Opt compiler: Add a description to MIP64 slow paths.

9 years agoam d0c4279a: am 7ed9cec8: Merge "MIPS: Initial version of optimizing compiler for...
Roland Levillain [Fri, 19 Jun 2015 15:16:02 +0000 (15:16 +0000)]
am d0c4279a: am 7ed9cec8: Merge "MIPS: Initial version of optimizing compiler for MIPS64R6."

* commit 'd0c4279ae62a253a27b6c93bea4772c0c3f9d02c':
  MIPS: Initial version of optimizing compiler for MIPS64R6.

9 years agoMerge "Opt compiler: Add a description to MIP64 slow paths."
Roland Levillain [Fri, 19 Jun 2015 15:09:31 +0000 (15:09 +0000)]
Merge "Opt compiler: Add a description to MIP64 slow paths."

9 years agoOpt compiler: Add a description to MIP64 slow paths.
Roland Levillain [Fri, 19 Jun 2015 15:07:18 +0000 (16:07 +0100)]
Opt compiler: Add a description to MIP64 slow paths.

Change-Id: I773a543cd4f146d64819cc347e57e6472dea0b38

9 years agoQuick: Fix optimizations for empty if blocks.
Vladimir Marko [Fri, 19 Jun 2015 11:58:22 +0000 (12:58 +0100)]
Quick: Fix optimizations for empty if blocks.

If a block ending with if-eqz or if-nez has the same "taken"
and "fallthrough", we cannot assume that the value has been
checked against zero in one of the succesors. This affects
the null check elimination pass as well as GVN. Refactor all
those checks to a single function in BasicBlock and check
that the "taken" and "falthrough" are different when needed.

Bug: 21614284

(cherry picked from commit f11c420c448baffac6a70ac0884d481ab347e257)

Change-Id: I062e0042de3470ce8680b586487b9c7acbd206bc

9 years agoam 7ed9cec8: Merge "MIPS: Initial version of optimizing compiler for MIPS64R6."
Roland Levillain [Fri, 19 Jun 2015 15:04:43 +0000 (15:04 +0000)]
am 7ed9cec8: Merge "MIPS: Initial version of optimizing compiler for MIPS64R6."

* commit '7ed9cec8bc302a0b4fe5a127b58bfddd702a70e8':
  MIPS: Initial version of optimizing compiler for MIPS64R6.

9 years agoMerge "MIPS: Initial version of optimizing compiler for MIPS64R6."
Roland Levillain [Fri, 19 Jun 2015 14:51:33 +0000 (14:51 +0000)]
Merge "MIPS: Initial version of optimizing compiler for MIPS64R6."

9 years agoMIPS: Initial version of optimizing compiler for MIPS64R6.
Alexey Frunze [Tue, 2 Jun 2015 01:31:49 +0000 (18:31 -0700)]
MIPS: Initial version of optimizing compiler for MIPS64R6.

Bug: 21555893
Change-Id: I874dc356eee6ab061a32f8f3df5f8ac3a4ab7dcf
Signed-off-by: Alexey Frunze <Alexey.Frunze@imgtec.com>
Signed-off-by: Douglas Leung <douglas.leung@imgtec.com>
9 years agoam 6cec8674: am 71af6f7a: Merge "Opt compiler: Add a description to slow paths."
David Brazdil [Fri, 19 Jun 2015 14:42:33 +0000 (14:42 +0000)]
am 6cec8674: am 71af6f7a: Merge "Opt compiler: Add a description to slow paths."

* commit '6cec86742a283d4c455583ce5578ebb0d85aa82d':
  Opt compiler: Add a description to slow paths.

9 years agoam 71af6f7a: Merge "Opt compiler: Add a description to slow paths."
David Brazdil [Fri, 19 Jun 2015 14:30:51 +0000 (14:30 +0000)]
am 71af6f7a: Merge "Opt compiler: Add a description to slow paths."

* commit '71af6f7aab7491665fe2d6beb9af4c251a99ad56':
  Opt compiler: Add a description to slow paths.

9 years agoMerge "Opt compiler: Add a description to slow paths."
David Brazdil [Fri, 19 Jun 2015 14:21:58 +0000 (14:21 +0000)]
Merge "Opt compiler: Add a description to slow paths."

9 years agoQuick: Handle total high/low register overlap on arm/mips.
Vladimir Marko [Fri, 19 Jun 2015 13:56:38 +0000 (14:56 +0100)]
Quick: Handle total high/low register overlap on arm/mips.

OpRegCopyWide() in arm and mips backends didn't handle the
total register overlap when the registers holding the source
and destination pairs are the same but in reverse order.

Bug: 21897012
Change-Id: Ia1f0005cbf5cc1c2d30899575dea21b3efa20ae6

9 years agoQuick: Fix optimizations for empty if blocks.
Vladimir Marko [Fri, 19 Jun 2015 11:58:22 +0000 (12:58 +0100)]
Quick: Fix optimizations for empty if blocks.

If a block ending with if-eqz or if-nez has the same "taken"
and "fallthrough", we cannot assume that the value has been
checked against zero in one of the succesors. This affects
the null check elimination pass as well as GVN. Refactor all
those checks to a single function in BasicBlock and check
that the "taken" and "falthrough" are different when needed.

Bug: 21614284
Change-Id: I8c6ac23e96cdaf5984786a555ebbd28110f095cb

9 years agoam 2812995b: am 6e82168b: Fix moving GC bug in DoFilledNewArray
Mathieu Chartier [Fri, 19 Jun 2015 13:57:57 +0000 (13:57 +0000)]
am 2812995b: am 6e82168b: Fix moving GC bug in DoFilledNewArray

* commit '2812995bd1ded58979e5cf982b4c5db66ffd4910':
  Fix moving GC bug in DoFilledNewArray

9 years agoam e2e271fd: am dfc5db6a: Fix moving GC bugs in proxy stub for X86/X86_64
Mathieu Chartier [Fri, 19 Jun 2015 13:56:54 +0000 (13:56 +0000)]
am e2e271fd: am dfc5db6a: Fix moving GC bugs in proxy stub for X86/X86_64

* commit 'e2e271fd334dc93c79dd7c4bb44921c0dabb21c9':
  Fix moving GC bugs in proxy stub for X86/X86_64

9 years agoam c82e3578: am bf1fa2cc: Follow up on CL 151605
Sebastien Hertz [Fri, 19 Jun 2015 13:55:52 +0000 (13:55 +0000)]
am c82e3578: am bf1fa2cc: Follow up on CL 151605

* commit 'c82e3578544faffcd0de344b4f279b199386ea2d':
  Follow up on CL 151605

9 years agoOpt compiler: Add a description to slow paths.
Alexandre Rames [Fri, 19 Jun 2015 13:47:01 +0000 (14:47 +0100)]
Opt compiler: Add a description to slow paths.

Change-Id: I22160d90de3fe0ab3e6a2acc440bda8daa00e0f0

9 years agoam d4e48922: am 97d207c3: Merge "Use compiling class instead of referrer for access...
Nicolas Geoffray [Fri, 19 Jun 2015 13:24:03 +0000 (13:24 +0000)]
am d4e48922: am 97d207c3: Merge "Use compiling class instead of referrer for access checks."

* commit 'd4e4892263fad698e56a96d9d9aa5514ed9fce65':
  Use compiling class instead of referrer for access checks.

9 years agoam 97d207c3: Merge "Use compiling class instead of referrer for access checks."
Nicolas Geoffray [Fri, 19 Jun 2015 13:11:23 +0000 (13:11 +0000)]
am 97d207c3: Merge "Use compiling class instead of referrer for access checks."

* commit '97d207c3beba0a4ed6402e882c5909c5ac5bde6d':
  Use compiling class instead of referrer for access checks.

9 years agoMerge "Use compiling class instead of referrer for access checks."
Nicolas Geoffray [Fri, 19 Jun 2015 13:02:11 +0000 (13:02 +0000)]
Merge "Use compiling class instead of referrer for access checks."

9 years agoUse compiling class instead of referrer for access checks.
Nicolas Geoffray [Fri, 19 Jun 2015 12:32:41 +0000 (13:32 +0100)]
Use compiling class instead of referrer for access checks.

bug:21869670
Change-Id: Ief329247e90202835e27fa38803e02dd2e2ae8ca

9 years agoam be91f759: am d8d7b90c: Merge "Do not expect 0 or 1 only when comparing a boolean."
Nicolas Geoffray [Fri, 19 Jun 2015 11:22:52 +0000 (11:22 +0000)]
am be91f759: am d8d7b90c: Merge "Do not expect 0 or 1 only when comparing a boolean."

* commit 'be91f75906ce48d0edffa0be8d60d4e3e43f579b':
  Do not expect 0 or 1 only when comparing a boolean.

9 years agoam dbd627a3: am e4387574: Merge "Verifier: check an aput, even if we know it will...
Nicolas Geoffray [Fri, 19 Jun 2015 11:22:51 +0000 (11:22 +0000)]
am dbd627a3: am e4387574: Merge "Verifier: check an aput, even if we know it will fail."

* commit 'dbd627a3eac0674b0a03b92b19adead32a861a39':
  Verifier: check an aput, even if we know it will fail.

9 years agoam d8d7b90c: Merge "Do not expect 0 or 1 only when comparing a boolean."
Nicolas Geoffray [Fri, 19 Jun 2015 11:11:01 +0000 (11:11 +0000)]
am d8d7b90c: Merge "Do not expect 0 or 1 only when comparing a boolean."

* commit 'd8d7b90ca57e8e3762951bb419b6f2645bb414c5':
  Do not expect 0 or 1 only when comparing a boolean.

9 years agoam e4387574: Merge "Verifier: check an aput, even if we know it will fail."
Nicolas Geoffray [Fri, 19 Jun 2015 11:10:59 +0000 (11:10 +0000)]
am e4387574: Merge "Verifier: check an aput, even if we know it will fail."

* commit 'e43875749fbc674fbad23ba11af64f25ab2add0d':
  Verifier: check an aput, even if we know it will fail.

9 years agoMerge "Do not expect 0 or 1 only when comparing a boolean."
Nicolas Geoffray [Fri, 19 Jun 2015 11:03:44 +0000 (11:03 +0000)]
Merge "Do not expect 0 or 1 only when comparing a boolean."

9 years agoMerge "Verifier: check an aput, even if we know it will fail."
Nicolas Geoffray [Fri, 19 Jun 2015 11:02:16 +0000 (11:02 +0000)]
Merge "Verifier: check an aput, even if we know it will fail."

9 years agoDo not expect 0 or 1 only when comparing a boolean.
Nicolas Geoffray [Fri, 19 Jun 2015 10:42:07 +0000 (11:42 +0100)]
Do not expect 0 or 1 only when comparing a boolean.

bug:21866529
Change-Id: I81ffba609a357010bd86073eb979024fc668ed20

9 years agoam 62f5b393: am be59b852: Merge "Make Main public to pass tests on all configurations."
Nicolas Geoffray [Fri, 19 Jun 2015 10:30:29 +0000 (10:30 +0000)]
am 62f5b393: am be59b852: Merge "Make Main public to pass tests on all configurations."

* commit '62f5b3935b0f95bbb914114b59aebcf9e2937ace':
  Make Main public to pass tests on all configurations.

9 years agoam be59b852: Merge "Make Main public to pass tests on all configurations."
Nicolas Geoffray [Fri, 19 Jun 2015 10:16:54 +0000 (10:16 +0000)]
am be59b852: Merge "Make Main public to pass tests on all configurations."

* commit 'be59b85251f085359d40bb89b1aa7e037c8ac0ef':
  Make Main public to pass tests on all configurations.

9 years agoam 20ede5b8: am 511b7cb2: Merge "Use the right bug number. Spotted by vmarko."
Nicolas Geoffray [Fri, 19 Jun 2015 10:11:46 +0000 (10:11 +0000)]
am 20ede5b8: am 511b7cb2: Merge "Use the right bug number. Spotted by vmarko."

* commit '20ede5b878df4466a4b3ad5ee00911a41b3ab3e6':
  Use the right bug number. Spotted by vmarko.

9 years agoMerge "Make Main public to pass tests on all configurations."
Nicolas Geoffray [Fri, 19 Jun 2015 10:07:46 +0000 (10:07 +0000)]
Merge "Make Main public to pass tests on all configurations."

9 years agoam 511b7cb2: Merge "Use the right bug number. Spotted by vmarko."
Nicolas Geoffray [Fri, 19 Jun 2015 10:00:08 +0000 (10:00 +0000)]
am 511b7cb2: Merge "Use the right bug number. Spotted by vmarko."

* commit '511b7cb2c2c1f276875ff2762bbc97337d824a63':
  Use the right bug number. Spotted by vmarko.

9 years agoMerge "Use the right bug number. Spotted by vmarko."
Nicolas Geoffray [Fri, 19 Jun 2015 09:50:49 +0000 (09:50 +0000)]
Merge "Use the right bug number. Spotted by vmarko."

9 years agoMake Main public to pass tests on all configurations.
Nicolas Geoffray [Fri, 19 Jun 2015 09:45:44 +0000 (10:45 +0100)]
Make Main public to pass tests on all configurations.

There's a mismatch between compile-time and runtime access checks.
This doens't fix it but keep us green.

bug:21923303

Change-Id: I1d4a80557f9d8ca9d8bef18a8c23230ed46d4a4c

9 years agoVerifier: check an aput, even if we know it will fail.
Nicolas Geoffray [Fri, 19 Jun 2015 09:35:42 +0000 (10:35 +0100)]
Verifier: check an aput, even if we know it will fail.

bug:21867457
Change-Id: I01e333d858995d0e1e083a50cf8d460a86381f2c

9 years agoam dd3c7d2d: ART: Remove old DCHECK that trips Baseline
David Brazdil [Fri, 19 Jun 2015 09:34:30 +0000 (09:34 +0000)]
am dd3c7d2d: ART: Remove old DCHECK that trips Baseline

* commit 'dd3c7d2d6124ceb346b4ed9aa7115f75fc6d3f9f':
  ART: Remove old DCHECK that trips Baseline

9 years agoUse the right bug number. Spotted by vmarko.
Nicolas Geoffray [Fri, 19 Jun 2015 09:05:50 +0000 (10:05 +0100)]
Use the right bug number. Spotted by vmarko.

bug:21863767

Change-Id: I203072188c0c97b2d6709e1a59555b45fc5a0ab2

9 years agoART: Remove old DCHECK that trips Baseline
David Brazdil [Thu, 18 Jun 2015 11:40:01 +0000 (12:40 +0100)]
ART: Remove old DCHECK that trips Baseline

Codegen verified that the entry block always falls through to the next
block. While this is the case with Optimizing, it doesn't hold for
Baseline but it doesn't need to since codegen handles it fine.

Bug:21913514
Change-Id: I751ef227e6cf103af3e7fc35fca4b01c663385a1
(cherry picked from commit 015c7e63604c038e866d7af3850c557403cddc8b)

9 years agoam 122349a7: Merge "Fix StringChange for optimizing compiler." into mnc-dev
Jeff Hao [Fri, 19 Jun 2015 04:28:05 +0000 (04:28 +0000)]
am 122349a7: Merge "Fix StringChange for optimizing compiler." into mnc-dev

* commit '122349a7672da6636ca94aded7f2d3642f9962e3':
  Fix StringChange for optimizing compiler.

9 years agoFix StringChange for optimizing compiler.
Jeff Hao [Fri, 19 Jun 2015 04:16:08 +0000 (21:16 -0700)]
Fix StringChange for optimizing compiler.

Uses optimizing compiler more and fixes x86_64 invoke codegen.

Bug: 21902634

(cherry-picked from commit e0a9a53ec4b4ccbf9b1d67957fb99a45b469ccc2)

Change-Id: I56881889bee7092b8401b090af1c0f1004c11667

9 years agoMerge "Fix StringChange for optimizing compiler." into mnc-dev
Jeff Hao [Fri, 19 Jun 2015 04:19:08 +0000 (04:19 +0000)]
Merge "Fix StringChange for optimizing compiler." into mnc-dev

9 years agoFix StringChange for optimizing compiler.
Jeff Hao [Fri, 19 Jun 2015 04:16:08 +0000 (21:16 -0700)]
Fix StringChange for optimizing compiler.

Uses optimizing compiler more and fixes x86_64 invoke codegen.

Bug: 21902634
Change-Id: Ia2a87d013c4746b107014a04a22a0a37269cfdb2

9 years agoART stack unwinding fixes for libunwind/gdb/lldb.
David Srbecky [Thu, 23 Apr 2015 01:57:06 +0000 (18:57 -0700)]
ART stack unwinding fixes for libunwind/gdb/lldb.

dex2oat can already generate unwinding and symbol information which
allows tools to create backtrace of mixed native and Java code.

This is a cherry pick from aosp/master which fixes several issues.
Most notably:
 * It enables generation of ELF-64 on 64-bit systems (in dex2oat, C
   compilers already produce ELF-64).  Libunwind requires ELF-64 on
   64-bit systems for backtraces to work.
 * It enables loading of ELF files with dlopen.  This is required for
   libunwind to be able to generate backtrace of current process (i.e.
   the process requesting backtrace of itself).
 * It adds unit test to test the above (32 vs 64 bit, in-proces vs
   out-of-process, application code vs framework code).
 * Some other fixes or clean-ups which should not be of much
   significance but which are easier to include to make the
   important CLs cherry-pick cleanly.

This is squash of the following commits from aosp/master:
  7381010 ART: CFI Test
  e1bbed2 ART: Blacklist CFI test for non-compiled run-tests
  aab9f73 ART: Blacklist CFI test for JIT
  4437219 ART: Blacklist CFI test for Heap Poisoning
  a3a49fe Switch to using ELF-64 for 64-bit architectures.
  297ed22 Write 64-bit address in DWARF if we are on 64-bit architecture.
  24981a1 Set correct size of PT_PHDR ELF segment.
  1a146bf Link .dynamic to .dynstr
  67a0653 Make some parts of ELF more (pointer) aligned.
  f50fa82 Enable 64-bit CFI tests.
  49e1fab Use dlopen to load oat files.
  5dedb80 Add more logging output for dlopen.
  aa03870 Find the dlopened file using address rather than file path.
  82e73dc Release dummy MemMaps corresponding to dlopen.
  5c40961 Test that we can unwind framework code.
  020c543 Add more log output to the CFI test.
  88da3b0 ART: Fix CFI test wrt/ PIC
  a70e5b9 CFI test: kill the other process in native code.
  ad5fa8c Support generation of CFI in .debug_frame format.
  90688ae Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write.
  97dabb7 Fix build breakage in dwarf_test.
  388d286 Generate just single ARM mapping symbol.
  f898087 Split .oat_patches to multiple sections.
  491a7fe Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write (again).
  8363c77 Add --generate-debug-info flag and remove the other two flags.
  461d72a Generate debug info for core.oat files.

Bug: 21924613
Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7