OSDN Git Service
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.
Jeff Hao [Fri, 19 Jun 2015 17:38:55 +0000 (17:38 +0000)]
Merge "Fix StringChange for optimizing compiler."
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.
Vladimir Marko [Fri, 19 Jun 2015 16:39:29 +0000 (16:39 +0000)]
Merge "Quick: Handle total high/low register overlap on arm/mips."
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.
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.
Nicolas Geoffray [Fri, 19 Jun 2015 15:52:24 +0000 (15:52 +0000)]
Merge "Be 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
Vladimir Marko [Fri, 19 Jun 2015 15:44:22 +0000 (15:44 +0000)]
Merge "Quick: Fix optimizations for empty if blocks."
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.
Roland Levillain [Fri, 19 Jun 2015 15:09:31 +0000 (15:09 +0000)]
Merge "Opt 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
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.
Roland Levillain [Fri, 19 Jun 2015 14:51:33 +0000 (14:51 +0000)]
Merge "MIPS: 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>
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.
David Brazdil [Fri, 19 Jun 2015 14:21:58 +0000 (14:21 +0000)]
Merge "Opt compiler: Add a description to slow paths."
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
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
Alexandre Rames [Fri, 19 Jun 2015 13:47:01 +0000 (14:47 +0100)]
Opt compiler: Add a description to slow paths.
Change-Id: I22160d90de3fe0ab3e6a2acc440bda8daa00e0f0
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.
Nicolas Geoffray [Fri, 19 Jun 2015 13:02:11 +0000 (13:02 +0000)]
Merge "Use 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
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.
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.
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."
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."
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
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.
Nicolas Geoffray [Fri, 19 Jun 2015 10:07:46 +0000 (10:07 +0000)]
Merge "Make Main public to pass tests on all configurations."
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.
Nicolas Geoffray [Fri, 19 Jun 2015 09:50:49 +0000 (09:50 +0000)]
Merge "Use the right bug number. Spotted by vmarko."
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
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
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
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
Mathieu Chartier [Fri, 19 Jun 2015 00:12:48 +0000 (00:12 +0000)]
am
f12ffdb5: Merge "Fix moving GC bug in DoFilledNewArray"
* commit '
f12ffdb549f1947125e3f56694cb479a619f02bf':
Fix moving GC bug in DoFilledNewArray
Mathieu Chartier [Fri, 19 Jun 2015 00:00:07 +0000 (00:00 +0000)]
Merge "Fix moving GC bug in DoFilledNewArray"
Mathieu Chartier [Thu, 18 Jun 2015 23:48:52 +0000 (16:48 -0700)]
Fix moving GC bug in DoFilledNewArray
Previously we read from componentClass after allocating the array.
Bug:
21783443
Change-Id: I5283982edab479434e27416509e1436b4176fe01
Igor Murashkin [Thu, 18 Jun 2015 22:50:57 +0000 (22:50 +0000)]
am
542ca97d: Merge "test: Fix lambda test incorrectly globbing together compiler arguments"
* commit '
542ca97d3e4266896407b9abd29b36b1c59d798c':
test: Fix lambda test incorrectly globbing together compiler arguments
Igor Murashkin [Thu, 18 Jun 2015 22:41:57 +0000 (22:41 +0000)]
Merge "test: Fix lambda test incorrectly globbing together compiler arguments"
Igor Murashkin [Thu, 18 Jun 2015 22:38:59 +0000 (15:38 -0700)]
test: Fix lambda test incorrectly globbing together compiler arguments
This also fixes test failures when running imageless tests.
Change-Id: I9b0deb836907060160e31c434cf0710507f9665a
Mathieu Chartier [Thu, 18 Jun 2015 20:11:02 +0000 (20:11 +0000)]
am
46d87021: Merge "Fix moving GC bugs in proxy stub for X86/X86_64"
* commit '
46d8702167d679dbf87ba9fa8fd0f1b6bbb3ed62':
Fix moving GC bugs in proxy stub for X86/X86_64
Igor Murashkin [Thu, 18 Jun 2015 20:11:01 +0000 (20:11 +0000)]
am
247e9774: Merge "interpreter: Add experimental lambda opcodes for invoke/create-lambda"
* commit '
247e97746016b49183b52f4c386bedf7cd53e590':
interpreter: Add experimental lambda opcodes for invoke/create-lambda
Mathieu Chartier [Thu, 18 Jun 2015 20:01:24 +0000 (20:01 +0000)]
Merge "Fix moving GC bugs in proxy stub for X86/X86_64"
Igor Murashkin [Thu, 18 Jun 2015 19:56:57 +0000 (19:56 +0000)]
Merge "interpreter: Add experimental lambda opcodes for invoke/create-lambda"
Mathieu Chartier [Thu, 18 Jun 2015 17:17:26 +0000 (10:17 -0700)]
Fix moving GC bugs in proxy stub for X86/X86_64
Needed to restore the refs.
Bug:
21907554
Change-Id: I562906dff07dcaa78dfb39646ba9ab35a5f56c6c
Vladimir Marko [Thu, 18 Jun 2015 18:31:41 +0000 (18:31 +0000)]
am
2b696ab5: Merge "Quick: Don\'t expect move-exception in every catch block."
* commit '
2b696ab55e817b583d7b3b3ffd39e48c38db6989':
Quick: Don't expect move-exception in every catch block.
Vladimir Marko [Thu, 18 Jun 2015 18:22:48 +0000 (18:22 +0000)]
Merge "Quick: Don't expect move-exception in every catch block."
Vladimir Marko [Thu, 18 Jun 2015 16:40:00 +0000 (17:40 +0100)]
Quick: Don't expect move-exception in every catch block.
The dalvik bytecode doesn't require a move-exception in
a catch handler that ignores the exception.
Bug:
21873167
Change-Id: I3b49218a8c7ff021141387bd929bb2ae798f8509
Nicolas Geoffray [Thu, 18 Jun 2015 17:42:48 +0000 (17:42 +0000)]
am
3d266a96: Merge "Don\'t check the return type in the builder."
* commit '
3d266a96750db6969f24bcdb8025c06745e5a449':
Don't check the return type in the builder.
Nicolas Geoffray [Thu, 18 Jun 2015 17:28:16 +0000 (17:28 +0000)]
Merge "Don't check the return type in the builder."
Igor Murashkin [Wed, 10 Jun 2015 22:55:30 +0000 (15:55 -0700)]
interpreter: Add experimental lambda opcodes for invoke/create-lambda
These opcodes are not yet fully specified, and *will* change before they become shippable.
Do not write production code against experimental opcodes.
--
Implement partial interpreter support for new dex instructions invoke/create-lambda, and a
new opcode format 25x.
* Does not verify, in fact verification will soft fail when we see those opcodes.
* Compilers will punt to interpreter since they don't support new opcodes.
* As there is no way to capture/liberate variables yet, the "closure" is just
an ArtMethod for the time being.
All new opcodes are disabled by default, use runtime option -Xexperimental-lambdas to enable them.
For example:
dalvikvm ... -Xexperimental-lambdas ...
dex2oat --runtime-arg -Xexperimental-lambdas ...
Change-Id: I6c996ca32a9b54ec45ec21d7a959b84dfb8a24eb
Nicolas Geoffray [Thu, 18 Jun 2015 17:04:12 +0000 (18:04 +0100)]
Don't check the return type in the builder.
The verifier will not complain about dead code. For the compiler,
it is benign.
bug:
21863767
Change-Id: I6ef7be233d1cd69dddcc4499e4e4fad54753099f
Nicolas Geoffray [Thu, 18 Jun 2015 16:12:43 +0000 (16:12 +0000)]
am
822c00d0: Merge "Run a simplification pass before code generation."
* commit '
822c00d0fe3b70d1f1fe5bac03713674d45f8173':
Run a simplification pass before code generation.
Nicolas Geoffray [Thu, 18 Jun 2015 16:12:42 +0000 (16:12 +0000)]
am
01b6ec8c: Merge "Don\'t special case HCurrentMethod in DCE."
* commit '
01b6ec8c982400fe415533296ab0b563971c239d':
Don't special case HCurrentMethod in DCE.
Vladimir Marko [Thu, 18 Jun 2015 16:12:40 +0000 (16:12 +0000)]
am
92fe57fe: Merge "Quick: Fix marking unused registers in DCE."
* commit '
92fe57fe6e3512616f71b2b2183344c56d6753e6':
Quick: Fix marking unused registers in DCE.
Nicolas Geoffray [Thu, 18 Jun 2015 15:52:30 +0000 (15:52 +0000)]
Merge "Run a simplification pass before code generation."
Nicolas Geoffray [Thu, 18 Jun 2015 15:51:54 +0000 (15:51 +0000)]
Merge "Don't special case HCurrentMethod in DCE."
Vladimir Marko [Thu, 18 Jun 2015 15:51:35 +0000 (15:51 +0000)]
Merge "Quick: Fix marking unused registers in DCE."
Nicolas Geoffray [Thu, 18 Jun 2015 14:46:47 +0000 (15:46 +0100)]
Run a simplification pass before code generation.
The code generators assume things that only the instruction
simplier ensures. So it has to be run last in case previous
optimiziations broke those assumptions.
bug:
21865464
Change-Id: I1f84016017bf691c2a34982e202a505b269f609a
Vladimir Marko [Thu, 18 Jun 2015 14:27:34 +0000 (14:27 +0000)]
am
46ff9b61: Merge "ART: Fix reporting initialized classes by CompilerDriver."
* commit '
46ff9b6100e66306233534e26c16d3c6738070a9':
ART: Fix reporting initialized classes by CompilerDriver.
Vladimir Marko [Thu, 18 Jun 2015 14:19:22 +0000 (14:19 +0000)]
Merge "ART: Fix reporting initialized classes by CompilerDriver."
David Brazdil [Thu, 18 Jun 2015 11:58:39 +0000 (11:58 +0000)]
am
d4de42f6: Merge "ART: Remove old DCHECK that trips Baseline"
* commit '
d4de42f6fd0f00c5b3ca01fed6a26d11e617c3b9':
ART: Remove old DCHECK that trips Baseline
Nicolas Geoffray [Thu, 18 Jun 2015 11:58:38 +0000 (11:58 +0000)]
am
3b574aad: Merge "Bailout from compilation if an invoke is malformed."
* commit '
3b574aadd67c5ce261a7383c38044af4cf993393':
Bailout from compilation if an invoke is malformed.
Nicolas Geoffray [Thu, 18 Jun 2015 11:58:36 +0000 (11:58 +0000)]
am
7b295db7: Merge "Fix a bug in optimizing when the null constant has been DCE."
* commit '
7b295db7583a721db1e1d430be78a6ff34f4805d':
Fix a bug in optimizing when the null constant has been DCE.
David Brazdil [Thu, 18 Jun 2015 11:54:57 +0000 (11:54 +0000)]
Merge "ART: Remove old DCHECK that trips Baseline"
Nicolas Geoffray [Thu, 18 Jun 2015 11:53:49 +0000 (11:53 +0000)]
Merge "Bailout from compilation if an invoke is malformed."
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
Nicolas Geoffray [Thu, 18 Jun 2015 10:11:27 +0000 (11:11 +0100)]
Bailout from compilation if an invoke is malformed.
Because the verifier does not check trivially dead instructions,
the compilers must prepare for bogus instructions. This change
fixes the case the arguments for an invoke do not match the
formal parameters.
bug:
21865459
Change-Id: Ie9fa9dbaedaad0350a52391252e18c045056454d
Nicolas Geoffray [Thu, 18 Jun 2015 11:46:30 +0000 (11:46 +0000)]
Merge "Fix a bug in optimizing when the null constant has been DCE."
Vladimir Marko [Mon, 15 Jun 2015 17:52:54 +0000 (18:52 +0100)]
ART: Fix reporting initialized classes by CompilerDriver.
Fix a bug where the CompilerDriver was erroneously reporting
classes as initialized during AOT compilation when they were
not guaranteed to be initialized at runtime.
This fix prevents the Quick compiler from inlining calls to
static methods in classes that are not guaranteed to be
initialized, so that the runtime performs the initialization
required for correctness.
Bug:
21847756
Change-Id: I6fee5ef9c05c2e5190ab8a9fe61365d5119011c5
Vladimir Marko [Wed, 17 Jun 2015 21:00:09 +0000 (22:00 +0100)]
Quick: Fix marking unused registers in DCE.
Bug:
21702651
Change-Id: Idca17b465152e0c61704fc49761c7ba89caf5b20
Nicolas Geoffray [Thu, 18 Jun 2015 07:50:25 +0000 (07:50 +0000)]
am
3c4fb2d1: Merge "Forgot this change in last commit."
* commit '
3c4fb2d1836a81823677191ad91203779427b610':
Forgot this change in last commit.
Nicolas Geoffray [Thu, 18 Jun 2015 07:42:02 +0000 (07:42 +0000)]
Merge "Forgot this change in last commit."
Mathieu Chartier [Thu, 18 Jun 2015 00:11:45 +0000 (00:11 +0000)]
am
f16474d0: Merge "Fix some java_lang_Class related moving GC bugs"
* commit '
f16474d08ed51a3ccfaa70360aefdf12ebc79da1':
Fix some java_lang_Class related moving GC bugs
Mathieu Chartier [Thu, 18 Jun 2015 00:02:11 +0000 (00:02 +0000)]
Merge "Fix some java_lang_Class related moving GC bugs"
Mathieu Chartier [Wed, 17 Jun 2015 23:11:12 +0000 (16:11 -0700)]
Fix some java_lang_Class related moving GC bugs
There was some missing handles around mirror::Class*.
Bug:
21898408
Change-Id: Icb754074dfb469473101d20d6873a5bc3274abc5
Mathieu Chartier [Wed, 17 Jun 2015 22:49:28 +0000 (22:49 +0000)]
am
5592c688: Merge "Add missing EndAssertNoThreadSuspension"
* commit '
5592c688070fa327f56036c4c67c790289db63d9':
Add missing EndAssertNoThreadSuspension
Mathieu Chartier [Wed, 17 Jun 2015 22:42:46 +0000 (22:42 +0000)]
Merge "Add missing EndAssertNoThreadSuspension"
Nicolas Geoffray [Wed, 17 Jun 2015 22:09:05 +0000 (23:09 +0100)]
Fix a bug in optimizing when the null constant has been DCE.
If it has been DCE, we should create a new one, instead of
using the old one.
Also move the first DCE to a place where it could actually
be useful.
bug:
21870788
Change-Id: I28fc52ae481ef92cba45fc1b5abcf07c995f524c
David Srbecky [Wed, 17 Jun 2015 22:10:49 +0000 (22:10 +0000)]
am
0420f81a: Merge "Release dummy MemMaps corresponding to dlopen."
* commit '
0420f81a5c6c08bc62060b8ff5dda8949f9a9ce9':
Release dummy MemMaps corresponding to dlopen.
David Srbecky [Wed, 17 Jun 2015 21:59:58 +0000 (21:59 +0000)]
Merge "Release dummy MemMaps corresponding to dlopen."
David Srbecky [Wed, 17 Jun 2015 17:36:23 +0000 (18:36 +0100)]
Release dummy MemMaps corresponding to dlopen.
This fixes memory leak.
Change-Id: I857f078e8559a56b2d10dd081256c41ab28c8ec6
Mathieu Chartier [Wed, 17 Jun 2015 21:14:36 +0000 (14:14 -0700)]
Add missing EndAssertNoThreadSuspension
(cherry picked from commit
a3b9d4eda1ef0845f307891f349eaf752750ac16)
Bug:
21872507
Change-Id: I20f9920e4a12511ce498c252bca955d82a4f4102
Nicolas Geoffray [Wed, 17 Jun 2015 10:57:56 +0000 (11:57 +0100)]
Don't special case HCurrentMethod in DCE.
Instead, re-create the HCurrentMethod if it is needed
after it has been removed.
Change-Id: Id3bf15ae87b00a1d7eb35bf36d58fe96f788fba4
Nicolas Geoffray [Mon, 15 Jun 2015 13:35:01 +0000 (14:35 +0100)]
Forgot this change in last commit.
bug:
21746693
Change-Id: I1ae9690d393cf1bae10cb06ff1c6754ab2a50595
David Brazdil [Wed, 17 Jun 2015 17:52:41 +0000 (17:52 +0000)]
am
b66fda7c: Merge "ART: Allow PackedSwitch instructions with zero targets"
* commit '
b66fda7c7e2e3c24e2a146c3f9d904b1828346a1':
ART: Allow PackedSwitch instructions with zero targets
David Brazdil [Wed, 17 Jun 2015 17:42:11 +0000 (17:42 +0000)]
Merge "ART: Allow PackedSwitch instructions with zero targets"
David Brazdil [Wed, 17 Jun 2015 17:20:52 +0000 (18:20 +0100)]
ART: Allow PackedSwitch instructions with zero targets
Optimizing and the interpreter wrongly assumed that a PackedSwitch
always has at least one target. This patch removes the corresponding
DCHECKs and adds a regression test case.
This is a resubmission of CL I32b7033ed38de6f1d1a6ee5d5bf12f3a47c9b37e
Bug:
21863783
Change-Id: I04e6e124bdd16591ba27c79490e6ce183c36b691
David Brazdil [Wed, 17 Jun 2015 17:12:38 +0000 (17:12 +0000)]
am
43d154be: Merge "Revert "ART: Allow PackedSwitch instructions with zero targets""
* commit '
43d154bed3ad0bba766211af1f2637500d30a93f':
Revert "ART: Allow PackedSwitch instructions with zero targets"
David Brazdil [Wed, 17 Jun 2015 17:01:16 +0000 (17:01 +0000)]
Merge "Revert "ART: Allow PackedSwitch instructions with zero targets""
David Brazdil [Wed, 17 Jun 2015 16:59:53 +0000 (16:59 +0000)]
Revert "ART: Allow PackedSwitch instructions with zero targets"
This fixed Optimizing but revealed the same issue in the interpreter.
This reverts commit
241f9c41924e33e0c3bab9a7c4306397458749ca.
Change-Id: Iad5a28b24f2c21d3575cf8ecc8b7c8fbf98d1132
David Brazdil [Wed, 17 Jun 2015 16:41:15 +0000 (16:41 +0000)]
am
cb5dc7f4: Merge "ART: Allow PackedSwitch instructions with zero targets"
* commit '
cb5dc7f4b795c3ef7ec48989542efdbe44898b94':
ART: Allow PackedSwitch instructions with zero targets
David Brazdil [Wed, 17 Jun 2015 16:32:51 +0000 (16:32 +0000)]
Merge "ART: Allow PackedSwitch instructions with zero targets"
David Brazdil [Wed, 17 Jun 2015 14:38:35 +0000 (15:38 +0100)]
ART: Allow PackedSwitch instructions with zero targets
Optimizing's Builder wrongly assumed that a PackedSwitch always has
at least one target. This patch removes the corresponding DCHECK and
adds a regression test case.
Bug:
21863783
Change-Id: I32b7033ed38de6f1d1a6ee5d5bf12f3a47c9b37e
Nicolas Geoffray [Wed, 17 Jun 2015 10:58:59 +0000 (10:58 +0000)]
am
edb83c60: Merge "Fix bug in optimizing around instanceof."
* commit '
edb83c606e034d76bed1331f34cdc435df47bb95':
Fix bug in optimizing around instanceof.
Nicolas Geoffray [Wed, 17 Jun 2015 10:50:00 +0000 (10:50 +0000)]
Merge "Fix bug in optimizing around instanceof."
Nicolas Geoffray [Wed, 17 Jun 2015 10:35:11 +0000 (11:35 +0100)]
Fix bug in optimizing around instanceof.
We were too aggressive when removing instanceof. We should
not remove it when there is one of the two static types that
is an interface.
Change-Id: I1fd80915b99b094f7b4393e7adb2b160201b30d5
Nicolas Geoffray [Wed, 17 Jun 2015 09:48:48 +0000 (09:48 +0000)]
am
4b9a93e7: Merge "Remove bogus DCHECK in BCE."
* commit '
4b9a93e7774d6650f6f3b637d018109d6fe97546':
Remove bogus DCHECK in BCE.