OSDN Git Service
Calin Juravle [Tue, 19 Jan 2016 19:34:40 +0000 (19:34 +0000)]
Merge "Improve profile processing"
Calin Juravle [Tue, 5 Jan 2016 14:29:29 +0000 (14:29 +0000)]
Improve profile processing
- allow file descriptors in addition to file names for profiles
- fix some minor issues (wrong comparison signs, unhandled errors)
- added gtests for profile_compilation_info, profile_assistant
and compiler_driver
Bug:
26080105
Change-Id: I136039fa1f25858399000049e48b01eafae54eb1
Roland Levillain [Tue, 19 Jan 2016 18:18:24 +0000 (18:18 +0000)]
Merge "mem_map_test: perform null check before dereferencing a pointer."
Roland Levillain [Tue, 19 Jan 2016 17:30:33 +0000 (17:30 +0000)]
mem_map_test: perform null check before dereferencing a pointer.
Bug:
26635783
Change-Id: I0bd29445b322b4c16b4f85a5acd9fac403d4fb6b
Roland Levillain [Tue, 19 Jan 2016 16:13:42 +0000 (16:13 +0000)]
Merge "Fix various typos in ART's comments and string literals."
Roland Levillain [Tue, 19 Jan 2016 15:59:16 +0000 (15:59 +0000)]
Fix various typos in ART's comments and string literals.
Change-Id: I85d628055b1a61647a77fef730c9631c234e22a2
Roland Levillain [Tue, 19 Jan 2016 15:21:38 +0000 (15:21 +0000)]
Merge "Some read barrier clean-up in Optimizing."
Roland Levillain [Tue, 19 Jan 2016 15:07:47 +0000 (15:07 +0000)]
Some read barrier clean-up in Optimizing.
These changes make the read barrier compiler instrumentation
code more uniform among the ARM, ARM64, x86 and x86-64 back
ends.
Bug:
12687968
Change-Id: I6b1c0cf2bc22ed6cd6b14754136bef4a2a036ea5
Nicolas Geoffray [Tue, 19 Jan 2016 14:07:47 +0000 (14:07 +0000)]
Merge "Disable DCE when there are irreducible loops."
Nicolas Geoffray [Tue, 19 Jan 2016 10:52:54 +0000 (10:52 +0000)]
Disable DCE when there are irreducible loops.
Also ensure an instruction that requires an environment
does have one.
Change-Id: I41a8460e05ef320f872197d3be7847e7ffaa6ee8
David Brazdil [Tue, 19 Jan 2016 12:03:24 +0000 (12:03 +0000)]
Merge "ART: Optimize out redundant NewInstances of String"
David Brazdil [Fri, 15 Jan 2016 09:35:13 +0000 (09:35 +0000)]
ART: Optimize out redundant NewInstances of String
NewInstance of String creates an empty String object before it is
replaced by the result of a StringFactory call (String.<init>). If
the empty object is never used prior to the call, it can be safely
removed (replaced with null in this case).
We do not remove the instruction if:
- it has a real use (comparison, instanceof, check-cast), or
- we are compiling with --debuggable and there is an environment use.
If removed and execution deoptimizes before the StringFactory call,
the interpreter will see String.<init> being called on a null object.
Since the verifier guarantees that the call was made on new-instance
in the input bytecode (b/
26579108), the interpreter can safely assume
that it was optimized out rather than throw NullPointerException.
Results (all without --debuggable):
- boot.oat: 563/563 removed
- Google Maps: 480/480 removed
- Google Docs: 819/819 removed
Change-Id: I9fdfc50e9dea6299a7327f94327cdfd2b2538079
Nicolas Geoffray [Tue, 19 Jan 2016 10:34:08 +0000 (10:34 +0000)]
Merge "Keep track of number of JIT compilations."
Nicolas Geoffray [Tue, 19 Jan 2016 09:34:58 +0000 (09:34 +0000)]
Keep track of number of JIT compilations.
Change-Id: Ic436bc3f939f6236190ddd840955cb72f76e8f85
David Brazdil [Tue, 19 Jan 2016 09:43:33 +0000 (09:43 +0000)]
Merge "ART: Public classes never require access checks"
Nicolas Geoffray [Tue, 19 Jan 2016 09:18:05 +0000 (09:18 +0000)]
Merge "Disable reanmed test due to python3."
Nicolas Geoffray [Tue, 19 Jan 2016 09:17:25 +0000 (09:17 +0000)]
Disable reanmed test due to python3.
Change-Id: I75781af509933d85ed56dde2defa350c2c636f49
David Brazdil [Mon, 18 Jan 2016 17:13:41 +0000 (17:13 +0000)]
ART: Public classes never require access checks
CompilerDriver's CanAccess(Instantiable)TypeWithoutChecks will always
return false if the referrer class is unresolved. This is too
conservative when the target class is resolved and known public.
Change-Id: Ibf95f43f13a7295e85671e3b71e28b5d88b4ca3b
Roland Levillain [Mon, 18 Jan 2016 18:09:15 +0000 (18:09 +0000)]
Merge "Ignore OldAndroidZipStreamTest#testZipStream failures with CC."
Roland Levillain [Mon, 18 Jan 2016 17:54:30 +0000 (17:54 +0000)]
Ignore OldAndroidZipStreamTest#testZipStream failures with CC.
This test sometimes fails with a
java.util.concurrent.TimeoutException on ART Builbot's
x86 concurrent collector configuration:
* libcore.java.util.zip.OldAndroidZipStreamTest#testZipStream
Disable it while we investigate.
Bug:
26507762
Change-Id: I3c0860a1573b2f221634b5d28d82c01c35628867
Nicolas Geoffray [Mon, 18 Jan 2016 17:18:10 +0000 (17:18 +0000)]
Merge "Pass --generate-debug-info only when --perf is passed."
David Brazdil [Mon, 18 Jan 2016 17:13:14 +0000 (17:13 +0000)]
Merge "ART: Remove Baseline compiler"
Nicolas Geoffray [Mon, 18 Jan 2016 16:57:06 +0000 (16:57 +0000)]
Pass --generate-debug-info only when --perf is passed.
Change-Id: I7ea275aced8c514d5a1b4ac979964481ef643eaa
David Brazdil [Thu, 14 Jan 2016 12:45:10 +0000 (12:45 +0000)]
ART: Remove Baseline compiler
We don't need Baseline any more and it hasn't been maintained for
a while anyway. Let's remove it.
Change-Id: I442ed26855527be2df3c79935403a25b1ee55df6
Vladimir Marko [Mon, 18 Jan 2016 16:31:07 +0000 (16:31 +0000)]
Merge "Optimizing: Improve floating point comparisons on arm and arm64."
Nicolas Geoffray [Mon, 18 Jan 2016 16:01:17 +0000 (16:01 +0000)]
Merge "Do HFieldGet first to avoid explicit null check."
Nicolas Geoffray [Mon, 18 Jan 2016 15:42:45 +0000 (15:42 +0000)]
Merge "Rename test case to avoid test filename too long."
Nicolas Geoffray [Mon, 18 Jan 2016 15:40:54 +0000 (15:40 +0000)]
Rename test case to avoid test filename too long.
Change-Id: I3e5101cd20f669a27449bcaf117c916abb791044
Nicolas Geoffray [Mon, 18 Jan 2016 15:24:53 +0000 (15:24 +0000)]
Do HFieldGet first to avoid explicit null check.
Change-Id: If22f85d502e1dce428f8d341fcb64e27a886fb89
Nicolas Geoffray [Mon, 18 Jan 2016 14:50:28 +0000 (14:50 +0000)]
Merge "Move --dump-cfg and dump-cfg-append to CompilerOptions."
David Srbecky [Mon, 18 Jan 2016 14:47:32 +0000 (14:47 +0000)]
Merge "Report types loaded during init to the native debugger"
Tamas Berghammer [Fri, 15 Jan 2016 13:09:34 +0000 (13:09 +0000)]
Report types loaded during init to the native debugger
The runtime loads a lot of type before it creates the jit from the
boot image and from hard coded source code (e.g. primitive arrays).
This change emits type information for these types after the jit has
been created. At the same time we remove the type info generation
that happens during AOT compilation because that type information can
be modified by a class loader at runtime.
Change-Id: Ie5b3b3df9d01c7200a1f670a98d9cbee796234e9
David Srbecky [Mon, 18 Jan 2016 14:29:20 +0000 (14:29 +0000)]
Merge "Emit some additional debug info for java.lang.String"
Tamas Berghammer [Fri, 15 Jan 2016 13:39:57 +0000 (13:39 +0000)]
Emit some additional debug info for java.lang.String
The value part of java.lang.String is not a proper ArtField so the
default debug info writing code don't emit debug info about that. This
CL add logic to emit debug info for a new member what represents the
first element of the underlying string data what can be used by the
consumer of the debug info to display the value of the string.
Change-Id: Ibc11b143e79aa8866000d02922bcd6069cfcd4c2
David Srbecky [Mon, 18 Jan 2016 14:15:10 +0000 (14:15 +0000)]
Merge "Report loaded classes to native debugger."
Tamas Berghammer [Tue, 5 Jan 2016 14:29:02 +0000 (14:29 +0000)]
Report loaded classes to native debugger.
Change-Id: Iee902a9ed8fa7545ba3e6afc32f285aa350a5383
Roland Levillain [Mon, 18 Jan 2016 13:56:37 +0000 (13:56 +0000)]
Merge "Ignore more libcore.java.util.zip test failures with CC."
Roland Levillain [Mon, 18 Jan 2016 13:51:12 +0000 (13:51 +0000)]
Ignore more libcore.java.util.zip test failures with CC.
These tests sometimes fail with a
java.util.concurrent.TimeoutException on ART Builbot's
x86-64 concurrent collector configuration:
* libcore.java.util.zip.DeflaterOutputStreamTest#testSyncFlushDisabled
* libcore.java.util.zip.OldAndroidGZIPStreamTest#testGZIPStream
Disable them while we investigate.
Bug:
26507762
Change-Id: If62d5d6491c2808a37dabc6f5c48464d5ed1dfbd
Vladimir Marko [Mon, 18 Jan 2016 11:11:01 +0000 (11:11 +0000)]
Optimizing: Improve floating point comparisons on arm and arm64.
Avoid the extra check for unordered inputs by using the
appropriate arm/arm64 condition.
Change-Id: Ib5e775a90428db7a2cf377ad9fd6a3192d670617
Nicolas Geoffray [Mon, 18 Jan 2016 12:56:06 +0000 (12:56 +0000)]
Move --dump-cfg and dump-cfg-append to CompilerOptions.
It simplifies passing the option to the JIT.
Change-Id: Iee1b722362899e5809ef97be90961e3dda1e16cc
David Brazdil [Mon, 18 Jan 2016 11:37:20 +0000 (11:37 +0000)]
Merge "ART: Change merge(uninitialized, null) to produce conflict"
David Brazdil [Fri, 15 Jan 2016 14:55:13 +0000 (14:55 +0000)]
ART: Change merge(uninitialized, null) to produce conflict
The verifier would treat the result of merge(uninitialized, null) as
an uninitialized value, allowing a constructor to be called on null.
This patch conservatively prevents any usage of the merged register
by treating it as conflicting. Note that this could be relaxed with
a new common type for initialized and uninitialized references.
Bug:
26579108
Bug:
22411633
Change-Id: Ic5a1a3909c80287deece92dbb3254f437074e9b6
Nicolas Geoffray [Mon, 18 Jan 2016 11:07:09 +0000 (11:07 +0000)]
Merge "Also print to error stream."
Roland Levillain [Mon, 18 Jan 2016 09:59:05 +0000 (09:59 +0000)]
Merge "Do not use HArm64IntermediateAddress with read barriers."
Roland Levillain [Fri, 15 Jan 2016 19:26:48 +0000 (19:26 +0000)]
Do not use HArm64IntermediateAddress with read barriers.
This ARM64 instruction simplification does not yet work
correctly with the read barrier compiler instrumentation.
Bug:
26601270
Bug:
12687968
Change-Id: I0c3c5d0043ebd936e00984740efbae8b3025c7ca
Jeff Hao [Fri, 15 Jan 2016 20:58:14 +0000 (20:58 +0000)]
Merge "Add oat location to oatdump."
Jeff Hao [Fri, 15 Jan 2016 20:50:44 +0000 (12:50 -0800)]
Add oat location to oatdump.
Change-Id: Idc0da67e04048a00c4ce4b524103be0925f66e71
Mathieu Chartier [Fri, 15 Jan 2016 20:32:17 +0000 (20:32 +0000)]
Merge "Add value parameterized test support for runtime tests"
Mathieu Chartier [Fri, 15 Jan 2016 17:48:15 +0000 (09:48 -0800)]
Add value parameterized test support for runtime tests
Usage is demonstrated in type_lookup_table_test.
Bug:
10245322
Change-Id: Ife6eb1ed57cb12edecce9ef101215ff15ae032e1
Hiroshi Yamauchi [Fri, 15 Jan 2016 18:41:10 +0000 (18:41 +0000)]
Merge "Revert "Disable mterp for the read barrier config.""
Vladimir Marko [Fri, 15 Jan 2016 15:28:02 +0000 (15:28 +0000)]
Merge "MIPS64: Fix stub_test in a proper way"
Goran Jakovljevic [Fri, 15 Jan 2016 13:08:47 +0000 (14:08 +0100)]
MIPS64: Fix stub_test in a proper way
This reverts commit
dc2388f9e7929faecaea9446c6ebd522445ac915 and
fixes stub_test in a proper way. Register names $12-$15 has been
used in the clobber list instead aliases t0-t3 because they are
ambiguous.
Change-Id: Idf8c866267a169c00046cc0a8191ec9712a5f937
Vladimir Marko [Fri, 15 Jan 2016 11:37:38 +0000 (11:37 +0000)]
Merge "ART: Fix CompilerDriver::AreInSameOatFile()."
Vladimir Marko [Thu, 14 Jan 2016 22:06:23 +0000 (22:06 +0000)]
ART: Fix CompilerDriver::AreInSameOatFile().
Bug:
26317072
Change-Id: I4279ef6559a43b5d59188616712a867f864b5d79
David Brazdil [Fri, 15 Jan 2016 09:19:12 +0000 (09:19 +0000)]
Merge "ART: Remove incorrect HFakeString optimization"
Bill Buzbee [Fri, 15 Jan 2016 01:09:35 +0000 (01:09 +0000)]
Merge "ART: Mterp - remove redundant null check"
Nicolas Geoffray [Fri, 15 Jan 2016 01:04:14 +0000 (01:04 +0000)]
Merge "New failures due to linker issue."
Nicolas Geoffray [Fri, 15 Jan 2016 01:02:25 +0000 (01:02 +0000)]
New failures due to linker issue.
Change-Id: I52a9ad2a9db0c966766d8b513bd5b31f3c318ba1
buzbee [Thu, 14 Jan 2016 13:34:34 +0000 (05:34 -0800)]
ART: Mterp - remove redundant null check
Noted in cl 196153, but failed to fix.
Change-Id: Ib19ce3832eeffa7188b592d62c66df801f27f07c
Jeff Hao [Thu, 14 Jan 2016 23:07:11 +0000 (23:07 +0000)]
Merge "Allow multi-image dex2oat to tolerate missing dex files."
Mathieu Chartier [Thu, 14 Jan 2016 22:53:26 +0000 (22:53 +0000)]
Merge "Add test for bad linkage of overriden package-private method."
Pavel Vyssotski [Tue, 29 Dec 2015 08:13:34 +0000 (14:13 +0600)]
Add test for bad linkage of overriden package-private method.
Test for AOT compiler bad linkage of overriden package-private method
with a secondary dex file.
Change-Id: I5d60c409c9912762fbb47ae8aeebb988c9b3cebc
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
Mathieu Chartier [Thu, 14 Jan 2016 22:47:15 +0000 (22:47 +0000)]
Merge "Revert "Create parent class loader for dex2oat""
Mathieu Chartier [Thu, 14 Jan 2016 22:33:29 +0000 (14:33 -0800)]
Revert "Create parent class loader for dex2oat"
Bug:
22858531
This reverts commit
d37d364c27e74a7b49970a8c970482e273aa7b1a.
Change-Id: Id71a6f3bb9a29c04a5c13210633674e05d798114
Jeff Hao [Wed, 13 Jan 2016 00:36:50 +0000 (16:36 -0800)]
Allow multi-image dex2oat to tolerate missing dex files.
Bug:
26317072
(cherry-picked from commit
9c25dfafaf479b2f3593a6b51b85ab21fb9c45c9)
Change-Id: I786dae69b0680cf619368894842b21d39d64ab97
Nicolas Geoffray [Thu, 14 Jan 2016 22:22:34 +0000 (22:22 +0000)]
Merge "Yet another python3 dependency."
Nicolas Geoffray [Thu, 14 Jan 2016 22:21:14 +0000 (22:21 +0000)]
Yet another python3 dependency.
Change-Id: Iefdfdef707c028d4bb6087a2d1f424f5503366b2
Mathieu Chartier [Thu, 14 Jan 2016 22:13:47 +0000 (22:13 +0000)]
Merge "Don't allow thread suspension in ProfilingInfo::Create"
Mathieu Chartier [Thu, 14 Jan 2016 18:24:28 +0000 (10:24 -0800)]
Don't allow thread suspension in ProfilingInfo::Create
AddSamples calls ProfilingInfo::Create which would occasionally
transition to suspended and wait for code cache GC to complete.
This CL removes the thread state change and
WaitForPotentialCollectionToComplete which caused thread suspension.
The thread suspension caused occasional stale object references in
InvokeVirtualOrInterface since moving GC could occur.
If this_object became stale, we would put it's stale class into the
profile info, resulting in a GC crash.
Bug:
26086970
Change-Id: I5a86561098d72b7be80e8a3bcf3d8401403a0b00
Nicolas Geoffray [Thu, 14 Jan 2016 21:25:16 +0000 (21:25 +0000)]
Merge "Implement irreducible loop support in optimizing."
Hiroshi Yamauchi [Thu, 14 Jan 2016 03:32:28 +0000 (19:32 -0800)]
Revert "Disable mterp for the read barrier config."
Now that cl 196153 is in.
This reverts commit
987e44e6b65677587f37c26e630ddc4d4c563382.
Bug:
26510411
Change-Id: I006d7532973a6e26adde99e04f8b3eab491b3901
Alex Light [Thu, 14 Jan 2016 18:43:36 +0000 (18:43 +0000)]
Merge "Support directly invoking interface default methods"
Roland Levillain [Thu, 14 Jan 2016 18:29:57 +0000 (18:29 +0000)]
Merge "Update `ValidateInvokeRuntime()` and HDivZeroCheck."
David Brazdil [Fri, 8 Jan 2016 17:37:10 +0000 (17:37 +0000)]
ART: Remove incorrect HFakeString optimization
Simplification of HFakeString assumes that it cannot be used until
String.<init> is called which is not true and causes different
behaviour between the compiler and the interpreter. This patch
removes the optimization together with the HFakeString instruction.
Instead, HNewInstance is generated and an empty String allocated
until it is replaced with the result of the StringFactory call. This
is consistent with the behaviour of the interpreter but is too
conservative. A follow-up CL will attempt to optimize out the initial
allocation when possible.
Bug:
26457745
Bug:
26486014
Change-Id: I7139e37ed00a880715bfc234896a930fde670c44
Nicolas Geoffray [Thu, 14 Jan 2016 16:18:53 +0000 (16:18 +0000)]
Merge "Fix braino in parameters passed."
Nicolas Geoffray [Thu, 14 Jan 2016 16:16:35 +0000 (16:16 +0000)]
Fix braino in parameters passed.
Change-Id: I4683586184617bb8ac4f377b873263a339d1d960
Nicolas Geoffray [Tue, 5 Jan 2016 15:55:41 +0000 (15:55 +0000)]
Implement irreducible loop support in optimizing.
So we don't fallback to the interpreter in the presence of
irreducible loops.
Implications:
- A loop pre-header does not necessarily dominate a loop header.
- Non-constant redundant phis will be kept in loop headers, to
satisfy our linear scan register allocation algorithm.
- while-graph optimizations, such as gvn, licm, lse, and dce
need to know when they are dealing with irreducible loops.
Change-Id: I2cea8934ce0b40162d215353497c7f77d6c9137e
Roland Levillain [Thu, 14 Jan 2016 13:09:10 +0000 (13:09 +0000)]
Merge "MIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or with 32-bit FPUs."
Nicolas Geoffray [Thu, 14 Jan 2016 13:08:55 +0000 (13:08 +0000)]
Merge "Fix lint error."
Nicolas Geoffray [Thu, 14 Jan 2016 13:08:12 +0000 (13:08 +0000)]
Fix lint error.
Change-Id: I8584d243a1cf55170e1d7bc1570e4ad1218fde5f
Roland Levillain [Thu, 14 Jan 2016 12:56:21 +0000 (12:56 +0000)]
Merge "Ignore 141-class-unload failures with JIT and CC."
Roland Levillain [Thu, 14 Jan 2016 12:55:18 +0000 (12:55 +0000)]
Merge "Ignore GZIPOutputStreamTest failures with concurrent collector."
Roland Levillain [Thu, 14 Jan 2016 12:40:41 +0000 (12:40 +0000)]
Ignore 141-class-unload failures with JIT and CC.
This test sometimes fails on ART Builbot's x86-64 concurrent
collector configuration with JIT.
Disable it while we investigate.
Bug:
25866001
Change-Id: I8ed04fc1d9c920ff73032bc3f06ede85044fd925
Roland Levillain [Thu, 14 Jan 2016 12:18:10 +0000 (12:18 +0000)]
Ignore GZIPOutputStreamTest failures with concurrent collector.
This test sometimes fail with a
java.util.concurrent.TimeoutException on ART Builbot's
x86-64 concurrent collector configuration:
* libcore.java.util.zip.GZIPOutputStreamTest#testSyncFlushEnabled
Disable it while we investigate.
Bug:
26507762
Change-Id: I12db20be14dfce8f6f668207bc91d57c2cb24c9f
Nicolas Geoffray [Thu, 14 Jan 2016 12:22:39 +0000 (12:22 +0000)]
Merge "Don't encode a DexRegisterMap if there is no live register."
Nicolas Geoffray [Thu, 14 Jan 2016 12:22:11 +0000 (12:22 +0000)]
Merge "Support --perf with jitted code."
Roland Levillain [Thu, 14 Jan 2016 12:01:59 +0000 (12:01 +0000)]
Merge "MIPS: Improve conversion between ints and floats."
Roland Levillain [Thu, 14 Jan 2016 10:55:47 +0000 (10:55 +0000)]
Merge "MIPS: HRor clean-up"
Alexey Frunze [Mon, 11 Jan 2016 23:51:16 +0000 (15:51 -0800)]
MIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or
with 32-bit FPUs.
Change-Id: If66932fb39cdd5946f6c05c82036191ad405a877
Hans Boehm [Thu, 14 Jan 2016 02:02:22 +0000 (02:02 +0000)]
Merge "Rosalloc fast path in assembly for MIPS32"
Alexey Frunze [Tue, 22 Dec 2015 23:15:03 +0000 (15:15 -0800)]
MIPS: Improve conversion between ints and floats.
Change-Id: I767fe9623cc14e8480c31e305725eb5221cac282
Mathieu Chartier [Thu, 14 Jan 2016 01:16:24 +0000 (01:16 +0000)]
Merge "Add test for calling into destroyed JNI env"
Mathieu Chartier [Thu, 14 Jan 2016 00:20:26 +0000 (16:20 -0800)]
Add test for calling into destroyed JNI env
The test calls into ExceptionCheck with a destroyed JNI env and
expects to never come back out.
Bug:
18577101
Change-Id: I96832c78d20de4a7d8a9ddf2d0636f08fc4ed9f2
Alexey Frunze [Thu, 14 Jan 2016 00:24:25 +0000 (16:24 -0800)]
MIPS: HRor clean-up
This is a follow up to
https://android-review.googlesource.com/#/c/194590/.
Change-Id: Ia37faa02736e5dd54c1e71fd2a4d94e074746757
Bill Buzbee [Wed, 13 Jan 2016 22:01:53 +0000 (22:01 +0000)]
Merge "ART: Mterp read barrier fix + minor cleanup"
buzbee [Wed, 13 Jan 2016 21:06:22 +0000 (13:06 -0800)]
ART: Mterp read barrier fix + minor cleanup
Read barrier support relies on hooks in common code for loading
object references. Mterp missed doing this for iget-object-quick.
Also, added missing conditional assembly around debug event logging
for mterp fallback and deleted an unnecessary store.
Bug:
26510411
Change-Id: I2d5b27c4090be58d3cfcb14309d14ccabf04a6f5
Aart Bik [Wed, 13 Jan 2016 20:53:18 +0000 (20:53 +0000)]
Merge "Fixed bug with hoisting/deopting in taken-block instead of preheader. With a fail-before pass-after regression test."
Aart Bik [Wed, 13 Jan 2016 19:15:15 +0000 (19:15 +0000)]
Merge "Reduce code size by sharing slow paths."
Alex Light [Wed, 13 Jan 2016 18:49:30 +0000 (18:49 +0000)]
Merge "Sort output of a find command in makefile"
Aart Bik [Tue, 12 Jan 2016 22:12:47 +0000 (14:12 -0800)]
Fixed bug with hoisting/deopting in taken-block instead of preheader.
With a fail-before pass-after regression test.
Rationale:
Hoisting and deopting should be done in the taken-block for safety
of the evaluation *unless* the code was in the original loop header,
and thus always taken.
https://code.google.com/p/android/issues/detail?id=198697
bug:
26506884
Change-Id: I1cf121292559fd2570ad67587ec3bc8e8a85a92a