OSDN Git Service
Vladimir Marko [Fri, 24 Apr 2015 16:21:36 +0000 (16:21 +0000)]
Merge "Remove ArtMethod* parameter from dex cache entry points."
David Brazdil [Fri, 24 Apr 2015 16:09:15 +0000 (16:09 +0000)]
Merge "ART: Fix gtests broken by dead block elimination"
David Brazdil [Fri, 24 Apr 2015 16:04:38 +0000 (17:04 +0100)]
ART: Fix gtests broken by dead block elimination
Change-Id: If5de97f928f9e214d64871eabfbfb3f2d15451b7
Roland Levillain [Fri, 24 Apr 2015 15:53:25 +0000 (15:53 +0000)]
Merge "Minor improvements to 458-checker-instruction-simplification."
David Brazdil [Fri, 24 Apr 2015 15:20:27 +0000 (15:20 +0000)]
Merge "ART: Dead block removal"
David Brazdil [Mon, 20 Apr 2015 13:52:42 +0000 (14:52 +0100)]
ART: Dead block removal
Adds a new pass which finds all unreachable blocks, typically due to
simplifying an if-condition to a constant, and removes them from the
graph. The patch also slightly generalizes the graph-transforming
operations.
Change-Id: Iff7c97f1d10b52886f3cd7401689ebe1bfdbf456
Nicolas Geoffray [Fri, 24 Apr 2015 14:18:19 +0000 (14:18 +0000)]
Merge "Debugger: Remove support for setting values in optimizing."
Nicolas Geoffray [Fri, 24 Apr 2015 13:58:19 +0000 (14:58 +0100)]
Debugger: Remove support for setting values in optimizing.
bug:
19944235
Change-Id: I3bcd56c7844847a7f0367f8ce6a72bddcd09d441
Nicolas Geoffray [Fri, 24 Apr 2015 13:38:19 +0000 (13:38 +0000)]
Merge "Don't use 'sh' on the host."
Nicolas Geoffray [Fri, 24 Apr 2015 13:37:29 +0000 (14:37 +0100)]
Don't use 'sh' on the host.
Change-Id: I319c08367d143443425bc01f4dda28ad46417c7e
Nicolas Geoffray [Fri, 24 Apr 2015 12:45:28 +0000 (12:45 +0000)]
Merge "Use 'sh' explicitly when invoking the art script."
Nicolas Geoffray [Fri, 24 Apr 2015 12:44:19 +0000 (13:44 +0100)]
Use 'sh' explicitly when invoking the art script.
Change-Id: I5e11483dd75f9ab4dd67f3bbbc45485726d01e34
Nicolas Geoffray [Fri, 24 Apr 2015 12:43:34 +0000 (12:43 +0000)]
Merge "Make tests assume ANDROID_ROOT is not /system."
Nicolas Geoffray [Fri, 24 Apr 2015 10:57:37 +0000 (11:57 +0100)]
Make tests assume ANDROID_ROOT is not /system.
This is to enable better chroot-like testing.
Change-Id: I943c68b0ebcdab2f107f808b466ac694085255aa
Vladimir Marko [Mon, 20 Apr 2015 19:11:30 +0000 (20:11 +0100)]
Remove ArtMethod* parameter from dex cache entry points.
Load the ArtMethod* using an optimized stack walk instead.
This reduces the size of the generated code.
Three of the entry points are called only from a slow-path
and the fourth (InitializeTypeAndVerifyAccess) is rare and
already slow enough that the one or two extra loads
(depending on whether we already have the ArtMethod* in a
register) are insignificant. And as we're starting to use
PC-relative addressing of the dex cache arrays (already
done by Quick for the boot image), having the ArtMethod* in
a register becomes less likely anyway.
Change-Id: Ib19b9d204e355e13bf386662a8b158178bf8ad28
Nicolas Geoffray [Fri, 24 Apr 2015 07:52:34 +0000 (07:52 +0000)]
Merge "Cleanup and improve stack map stream"
Mathieu Chartier [Fri, 24 Apr 2015 00:22:41 +0000 (00:22 +0000)]
Merge "Fix reflection handling and test flakiness"
Mathieu Chartier [Thu, 23 Apr 2015 23:32:54 +0000 (16:32 -0700)]
Fix reflection handling and test flakiness
Fixed reflection invoke to handle exceptions which occur from
FindClass or NewObject by throwing these instead of
the expected InvocationTargetException.
Added test case to 080 for this reflection invoke.
Fixed println throwing OOM in 104-growth-limit.
Change-Id: I65766e7c3478e299da06fdc3a521fe3f3e8fdba9
Calin Juravle [Thu, 23 Apr 2015 17:47:21 +0000 (18:47 +0100)]
Cleanup and improve stack map stream
- transform AddStackMapEntry into BeginStackMapEntry/EndStackMapEntry.
This allows for nicer code and less assumptions when searching for equal
dex register maps.
- store the components sizes and their start positions as fields to
avoid re-computation.
- store the current stack map entry as a field to avoid the copy
semantic when updating its value in the stack maps array.
- remove redundant methods and fix visibility for the remaining ones.
Change-Id: Ica2d2969d7e15993bdbf8bc41d9df083cddafd24
Vladimir Marko [Thu, 23 Apr 2015 18:11:04 +0000 (18:11 +0000)]
Merge "Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong()."
Nicolas Geoffray [Thu, 23 Apr 2015 17:28:35 +0000 (17:28 +0000)]
Merge "Linear scan: split at better positions."
Nicolas Geoffray [Thu, 23 Apr 2015 14:14:36 +0000 (15:14 +0100)]
Linear scan: split at better positions.
- Split at block entry to piggy back on control flow resolution.
- Split at the loop header, if the split position is within a loop.
Change-Id: I718299a58c02ee02a1b22bda589607c69a35f0e8
Calin Juravle [Thu, 23 Apr 2015 17:19:34 +0000 (17:19 +0000)]
Merge "Remove unnecessary null checks in CheckCast and InstanceOf"
David Brazdil [Thu, 23 Apr 2015 16:55:10 +0000 (16:55 +0000)]
Merge "ART: Run BooleanSimplifier after inlining"
Guillaume "Vermeille" Sanchez [Mon, 20 Apr 2015 13:41:30 +0000 (14:41 +0100)]
Remove unnecessary null checks in CheckCast and InstanceOf
Change-Id: I6fd81cabd8673be360f369e6318df0de8b18b634
David Brazdil [Tue, 21 Apr 2015 14:13:31 +0000 (15:13 +0100)]
ART: Run BooleanSimplifier after inlining
Inlined methods are currently not simplified.
Change-Id: I075130c9df55e2f55032a2c81b08d42cb2cc01f6
Vladimir Marko [Thu, 23 Apr 2015 16:00:40 +0000 (17:00 +0100)]
Quick: Fix out of temp regs in ArmMir2Lir::GenMulLong().
This fixes running out of temp registers for mul-long that
needs a temporary to store the result, i.e. when it's stored
to stack location [sp, #offset] with offset >= 1024. The bug
is currently not reproducible because ARM_R4_SUSPEND_FLAG is
off and thus we have the extra register available. However,
the code generation could be cleaned up and make use of that
extra register, so pre-emptively fix it anyway.
Bug:
20110806
Change-Id: I8362c349961dbe28fc3ec8a9299b66fd72f26779
Calin Juravle [Thu, 23 Apr 2015 15:32:13 +0000 (15:32 +0000)]
Merge "Move stack map stream implementation to its own cc file."
Vladimir Marko [Thu, 23 Apr 2015 15:26:20 +0000 (15:26 +0000)]
Merge "Revert "Revert "Quick: Rewrite type inference pass."""
Calin Juravle [Thu, 23 Apr 2015 15:01:43 +0000 (16:01 +0100)]
Move stack map stream implementation to its own cc file.
It's big enough now to separate the implementation from the header.
It also enables faster compilation time for experiments.
Change-Id: Ica0c72994d5e461c62c32628010f46f9e5c46b57
Roland Levillain [Thu, 23 Apr 2015 14:14:10 +0000 (14:14 +0000)]
Merge "Skip known broken tests for ARM back ends on ARM as second arch."
Roland Levillain [Thu, 23 Apr 2015 14:02:51 +0000 (15:02 +0100)]
Skip known broken tests for ARM back ends on ARM as second arch.
Change-Id: Idbe4c26d8ffcd91882fe61f62c959cc27d1f28b1
Calin Juravle [Thu, 23 Apr 2015 13:39:17 +0000 (13:39 +0000)]
Merge "Remove ActAsNullConstant"
Calin Juravle [Thu, 23 Apr 2015 13:34:33 +0000 (14:34 +0100)]
Remove ActAsNullConstant
We now properly type null constants during ssa builder so this is not
needed anymore.
Bug:
20322006
Change-Id: Ic060a52d4fa2d4f00755dd6427f822d368392d7b
Nicolas Geoffray [Thu, 23 Apr 2015 11:58:06 +0000 (11:58 +0000)]
Merge "Mul simplification should expect zero operand"
Serguei Katkov [Mon, 20 Apr 2015 08:22:27 +0000 (14:22 +0600)]
Mul simplification should expect zero operand
It is possible that zero constant can appear due to
simplification of other instructions, so we cannot expect
zero handling from constant optimizations.
Change-Id: I084126fd0c106ac2683c4f10a451960d9807f4f6
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Vladimir Marko [Thu, 23 Apr 2015 09:29:21 +0000 (09:29 +0000)]
Revert "Revert "Quick: Rewrite type inference pass.""
Fix the type of the ArtMethod* SSA register.
Bug:
19419671
This reverts commit
1b717f63847de8762e7f7bdd6708fdfae9d24a67.
Change-Id: Ie4da3c03a0e0334a39a24718f6dc31f9255cfb53
Andreas Gampe [Thu, 23 Apr 2015 01:56:11 +0000 (01:56 +0000)]
Merge "Revert "Quick: Rewrite type inference pass.""
Andreas Gampe [Thu, 23 Apr 2015 01:45:06 +0000 (18:45 -0700)]
Revert "Quick: Rewrite type inference pass."
Breaks arm64, as the method register is not correctly flagged
as ref and thus 32bit.
Bug:
19419671
This reverts commit
e490b01c12d33f3bd5c247b55b47e507cc9c8fab.
Andreas Gampe [Thu, 23 Apr 2015 01:24:51 +0000 (01:24 +0000)]
Merge "ART: Fix re-throwing failures of non-convention errors"
Andreas Gampe [Thu, 23 Apr 2015 01:10:36 +0000 (18:10 -0700)]
ART: Fix re-throwing failures of non-convention errors
While it is convention that Throwable subclasses should have a
constructor with a String argument, that is not rigorously enforced.
So if a static initializer throws an error that omits that
constructor, we must not provide a message when trying to throw
again.
Bug:
20495321
Bug:
20497840
Change-Id: Ia4334fa24223750f90a8f2732f1eb1e738575e8d
Andreas Gampe [Wed, 22 Apr 2015 21:19:51 +0000 (21:19 +0000)]
Merge "Do not mention x86 floating point numbers in CFI."
David Srbecky [Mon, 20 Apr 2015 15:43:52 +0000 (16:43 +0100)]
Do not mention x86 floating point numbers in CFI.
We have explicitly declared them as undefined, but libunwind does
not seem to support them at all. Omit the initialization to make
libunwind happy. Reasonable debugger should still default to
undefined since they are not callee save registers.
Bug:
20491296
Change-Id: Ibaa9595b977508e518bfe3f88b240e8959b1198f
Mathieu Chartier [Wed, 22 Apr 2015 19:59:01 +0000 (19:59 +0000)]
Merge "Replace NULL with nullptr"
Mathieu Chartier [Tue, 21 Apr 2015 23:50:40 +0000 (16:50 -0700)]
Replace NULL with nullptr
Also fixed some lines that were too long, and a few other minor
details.
Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
Vladimir Marko [Wed, 22 Apr 2015 19:41:40 +0000 (19:41 +0000)]
Merge "Quick: Rewrite type inference pass."
Vladimir Marko [Tue, 24 Feb 2015 11:32:46 +0000 (11:32 +0000)]
Quick: Rewrite type inference pass.
Use method signatures, field types and types embedded in dex
insns for type inference. Perform the type inference in two
phases, first a simple pass that records all types implied
by individual insns, and then an iterative pass to propagate
those types further via phi, move, if-cc and aget/aput insns.
Bug:
19419671
Change-Id: Id38579d48a44fc5eadd13780afb6d370093056f9
Vladimir Marko [Wed, 22 Apr 2015 19:32:36 +0000 (19:32 +0000)]
Merge "Quick: Remove broken Mir2Lir::LocToRegClass()."
David Srbecky [Wed, 22 Apr 2015 17:25:06 +0000 (17:25 +0000)]
Merge "Simplify template parameters of Elf classes."
Nicolas Geoffray [Wed, 22 Apr 2015 16:13:23 +0000 (16:13 +0000)]
Merge "Fix X86_64 assembler REX instructions"
David Srbecky [Wed, 22 Apr 2015 11:20:22 +0000 (12:20 +0100)]
Simplify template parameters of Elf classes.
The ELF specification defines several types which differ between
32-bit ELF and 64-bit ELF. We used to template all ELF-related
methods on all of those types which was very verbose.
This CL wraps all the types as typedefs in ElfTypes32 and ElfTypes64.
One of those wrappers is then used as the template parameter.
Change-Id: I65247c2c79d92a7c4799e988cf3e4a1b10eb4788
Mark Mendell [Wed, 22 Apr 2015 14:46:07 +0000 (10:46 -0400)]
Fix X86_64 assembler REX instructions
A couple of instructions don't pass the 'Address' to EmitRex64. This
will cause the incorrect register number to be assembled if the register
is >= 8.
This may cause bad code to be generated in some cases.
Change-Id: I2907ae8b7629ee95d542e3fab429318994a78938
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Calin Juravle [Wed, 22 Apr 2015 14:24:56 +0000 (14:24 +0000)]
Merge "Remove warning when we do too many simplifications"
Calin Juravle [Wed, 22 Apr 2015 14:19:51 +0000 (15:19 +0100)]
Remove warning when we do too many simplifications
This happens pretty often and pollutes the logs.
Change-Id: I074783d3cf3519a5186d2dd81c821d97071302e7
David Brazdil [Wed, 22 Apr 2015 13:54:21 +0000 (13:54 +0000)]
Merge "ART: Update last_instruction when adding Phis"
David Brazdil [Wed, 22 Apr 2015 12:40:50 +0000 (13:40 +0100)]
ART: Update last_instruction when adding Phis
HBasicBlock::InsertPhiAfter would not update the last_instruction
pointer when adding at the end of the list. This could cause problems
when iterating over phis backwards. Fortunately, we don't do that
anywhere in the existing code.
Change-Id: I4487265bf2cf3d3819623fafd7ce7c359bac190e
Nicolas Geoffray [Wed, 22 Apr 2015 13:28:09 +0000 (13:28 +0000)]
Merge "[optimizing] Use more X86_64 addressing modes"
Calin Juravle [Wed, 22 Apr 2015 12:42:14 +0000 (12:42 +0000)]
Merge "[optimizing] Name the last DCE pass."
Calin Juravle [Wed, 22 Apr 2015 12:31:47 +0000 (13:31 +0100)]
[optimizing] Name the last DCE pass.
This will allow Checker to differentiate between them.
Change-Id: I972d452a64f1c19d370567b9ef3d620f9b835a9a
Vladimir Marko [Wed, 22 Apr 2015 10:51:52 +0000 (11:51 +0100)]
Quick: Remove broken Mir2Lir::LocToRegClass().
Its use in intrinsics has been bogus. In all other instances
it's been used under the assumption that the inferred type
matches the return type of associated calls. However, if the
type inference identifies a type mismatch, the assumption
doesn't hold and there isn't necessarily a valid value that
the function could reasonably return.
Bug:
19918641
Change-Id: I050934e6f9eb00427d0b888ee29ae9eeb509bb3f
Calin Juravle [Wed, 22 Apr 2015 11:18:33 +0000 (11:18 +0000)]
Merge "Run DCE again after all the other optimizations have run."
Calin Juravle [Tue, 21 Apr 2015 13:07:50 +0000 (14:07 +0100)]
Run DCE again after all the other optimizations have run.
On docs this doubles the amount of instructions removed.
Calin Juravle [Wed, 22 Apr 2015 11:11:07 +0000 (11:11 +0000)]
Merge "[optimizing] Fix a bug in moving the null check to the user."
Calin Juravle [Tue, 21 Apr 2015 21:08:51 +0000 (22:08 +0100)]
[optimizing] Fix a bug in moving the null check to the user.
When taking the decision to move a null check to the user we did not
verify if the next instruction checks the same object.
Change-Id: I2f4533a4bb18aa4b0b6d5e419f37dcccd60354d2
Nicolas Geoffray [Wed, 22 Apr 2015 10:12:43 +0000 (10:12 +0000)]
Merge "Propertly quote arguments after latest adb/vogar changes."
Nicolas Geoffray [Wed, 22 Apr 2015 10:10:30 +0000 (11:10 +0100)]
Propertly quote arguments after latest adb/vogar changes.
Change-Id: If3452b616df48ecec0d85ac34d8af9253c3ea925
Mingyao Yang [Wed, 22 Apr 2015 08:09:29 +0000 (08:09 +0000)]
Merge "Fix tlsPtr_.long_jump_context == nullptr check failure."
Mingyao Yang [Tue, 21 Apr 2015 23:55:22 +0000 (16:55 -0700)]
Fix tlsPtr_.long_jump_context == nullptr check failure.
This is a bogus assertion. We need to handle the case
though to free the existing tlsPtr_.long_jump_context.
Bug:
20449310
Change-Id: Ie1e49dd1fec9defab69f081d1f129aa8dc1dc6bf
Brian Carlstrom [Wed, 22 Apr 2015 03:48:14 +0000 (03:48 +0000)]
Merge "Class.forName(..., ..., null) fixes - Add test for Class.forName(..., ..., null) - Simplify VMStack.getClosestUserClassLoader based on new behavior of Class.forName(..., ..., null)"
Brian Carlstrom [Tue, 21 Apr 2015 04:55:19 +0000 (21:55 -0700)]
Class.forName(..., ..., null) fixes
- Add test for Class.forName(..., ..., null)
- Simplify VMStack.getClosestUserClassLoader based on new behavior of Class.forName(..., ..., null)
Change-Id: I6bc470e20fa177e8a3debe55c90a84eef7ef518e
Andreas Gampe [Wed, 22 Apr 2015 03:10:20 +0000 (03:10 +0000)]
Merge "ART: Add compiled-methods"
Mathieu Chartier [Tue, 21 Apr 2015 23:03:43 +0000 (23:03 +0000)]
Merge "Add AbstractMethod, Constructor, Method"
Mathieu Chartier [Fri, 17 Apr 2015 01:00:39 +0000 (18:00 -0700)]
Add AbstractMethod, Constructor, Method
Moves functionality to ART from libcore. Precursor to moving
ArtMethods to native. Mostly performance improvements.
N5 perf before (irrelevant results removed):
Class_getConstructor 962.87 ===========
Class_getDeclaredMethod 2394.37 ============================
Class_getMethod 2509.20 ==============================
Class_newInstance 1999.81 =======================
Method_invokeI 1439.02 =================
Method_invokePreBoxedI 1415.82 ================
Method_invokeStaticI 1456.24 =================
Method_invokeStaticPreBoxedI 1427.32 =================
Method_invokeStaticV 814.47 =========
Method_invokeV 816.56 =========
After:
benchmark ns linear runtime
Class_getConstructor 1302.04 ================
Class_getDeclaredMethod 1459.01 ==================
Class_getMethod 1560.40 ===================
Class_newInstance 2029.94 =========================
Method_invokeI 1312.89 ================
Method_invokePreBoxedI 1255.01 ===============
Method_invokeStaticI 1289.13 ===============
Method_invokeStaticPreBoxedI 1196.52 ==============
Method_invokeStaticV 790.82 =========
Method_invokeV 791.73 =========
Performance improvements are more than just fixing regressions introduced
in: http://android-review.googlesource.com/#/c/146069/
Bug:
19264997
Change-Id: Ife79c469fdb09f30e3aefcfc3e0ce5ed32303fce
Andreas Gampe [Wed, 15 Apr 2015 09:37:28 +0000 (02:37 -0700)]
ART: Add compiled-methods
Add a dex2oat option for compiled-methods, a more granular filter
than compiled-classes. Add compiler-driver support for it.
Refactor dex2oat to reuse file reading.
Add a test to oat_test.
Change-Id: I78d0d040bce7738b4bb7aabe7768b5788d2587ac
Andreas Gampe [Tue, 21 Apr 2015 21:28:57 +0000 (21:28 +0000)]
Merge "ART: Extend run-test 068-classloader"
Andreas Gampe [Thu, 16 Apr 2015 06:23:51 +0000 (23:23 -0700)]
ART: Extend run-test 068-classloader
Add code that tries to provoke dex-cache collisions.
Change-Id: I58c7905597a501f3731efe4c6e1e2f7772e3b312
Mathieu Chartier [Tue, 21 Apr 2015 20:57:19 +0000 (20:57 +0000)]
Merge "Improve performance of HashSet"
David Srbecky [Tue, 21 Apr 2015 20:30:41 +0000 (20:30 +0000)]
Merge "Generate .eh_frame_hdr section and PT_GNU_EH_FRAME segment."
Mark Mendell [Tue, 21 Apr 2015 02:10:34 +0000 (22:10 -0400)]
[optimizing] Use more X86_64 addressing modes
Allow constant and memory addresses to more X86_64 instructions.
Add memory formats to X86_64 instructions to match.
Fix a bug in cmpq(CpuRegister, const Address&).
Allow mov <addr>,immediate (instruction 0xC7) to be a valid faulting
instruction.
Change-Id: I5b8a409444426633920cd08e09f687a7afc88a39
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
David Srbecky [Fri, 17 Apr 2015 20:14:10 +0000 (21:14 +0100)]
Generate .eh_frame_hdr section and PT_GNU_EH_FRAME segment.
Fixes issue
20125400 - ART: Need .eh_frame_hdr and PT_GNU_EH_FRAME
for libunwind.
.eh_frame_hdr serves two purposes. Firstly, it can optionally contain
binary search table for fast eh_frame lookup. This is important for
C++ exception handling, but we do not need it so we omit it.
Secondly, it contains a relative .eh_frame pointer which makes it
easier for run-time code to locate the .eh_frame section.
libunwind seems to rely on this relative pointer.
Bug:
20125400
Change-Id: I7c1e3f68d914f70781404c508395831a3296a7da
David Srbecky [Tue, 21 Apr 2015 17:36:30 +0000 (17:36 +0000)]
Merge "Do not look for prebuilts on architectures other than Arm."
David Srbecky [Tue, 21 Apr 2015 17:31:50 +0000 (18:31 +0100)]
Do not look for prebuilts on architectures other than Arm.
The repo manifest on the build server includes prebuilts
only for Arm and host.
Change-Id: Ic9fc762f3e9a4421cc2293b6e95caf196551cbad
Nicolas Geoffray [Tue, 21 Apr 2015 17:06:34 +0000 (17:06 +0000)]
Merge "Revert "fix optimizing gtests""
Nicolas Geoffray [Tue, 21 Apr 2015 17:06:17 +0000 (17:06 +0000)]
Revert "fix optimizing gtests"
This reverts commit
69dcf64251d70f616ae6c435d4788545130d42f0.
Change-Id: I1e01c17a3aa8b001ad5659260802e5f5073bf14e
David Brazdil [Tue, 21 Apr 2015 16:21:32 +0000 (16:21 +0000)]
Merge "ART: Update loop info of all nested loops when inlining"
David Brazdil [Tue, 21 Apr 2015 15:36:35 +0000 (16:36 +0100)]
ART: Update loop info of all nested loops when inlining
When inlining into a nested loop, the inliner would only add the new
blocks into the innermost loop info object. This patch fixes that and
modifies SsaChecker to verify the property.
Change-Id: I21d343a6f7d972f5b7420701f816c65ab3f20566
Roland Levillain [Tue, 21 Apr 2015 16:09:29 +0000 (16:09 +0000)]
Merge "Revert "Revert "Optimizing: Fix long-to-fp conversion on x86."""
Nicolas Geoffray [Tue, 21 Apr 2015 16:04:49 +0000 (16:04 +0000)]
Merge "Revert "Run DCE again after all the other optimizations have run.""
Nicolas Geoffray [Tue, 21 Apr 2015 16:04:32 +0000 (16:04 +0000)]
Revert "Run DCE again after all the other optimizations have run."
Reverting because of libcore failures.
This reverts commit
7a9c885684c965fe84f91d8ad74f54f869e2a448.
Change-Id: Iafe59b02fe7617243d81533d66e609a3528e7a58
Roland Levillain [Tue, 21 Apr 2015 15:26:12 +0000 (15:26 +0000)]
Merge "Incorrect transformation of (sub,neg) to (sub) for fp"
David Srbecky [Tue, 21 Apr 2015 15:19:06 +0000 (15:19 +0000)]
Merge "Move GetAndroidToolsDir to common location."
Calin Juravle [Tue, 21 Apr 2015 15:13:29 +0000 (15:13 +0000)]
Merge "fix optimizing gtests"
Calin Juravle [Tue, 21 Apr 2015 15:12:55 +0000 (16:12 +0100)]
fix optimizing gtests
Change-Id: I207398d8a65482650fba87db12a3b51e8b114694
Calin Juravle [Tue, 21 Apr 2015 14:46:58 +0000 (14:46 +0000)]
Merge "Run DCE again after all the other optimizations have run."
Calin Juravle [Tue, 21 Apr 2015 13:07:50 +0000 (14:07 +0100)]
Run DCE again after all the other optimizations have run.
On docs this doubles the amount of instructions removed.
Change-Id: I1712a92c0c0b3b32b111d194b64d8ea81d652822
Calin Juravle [Tue, 21 Apr 2015 13:11:22 +0000 (13:11 +0000)]
Merge "Use --dump-stats to dump optimizing compiler stats."
Calin Juravle [Tue, 21 Apr 2015 12:56:34 +0000 (13:56 +0100)]
Use --dump-stats to dump optimizing compiler stats.
VLOG(compiler) produces too much output and it takes a long time if you
only need to see how an analysis performs.
Change-Id: Ic17c2b2b5fec431d356cecd37289fb96985d4d7f
Calin Juravle [Tue, 21 Apr 2015 13:00:25 +0000 (13:00 +0000)]
Merge "[optimzing] Fix codegen bug and improve type propagation"
Calin Juravle [Mon, 20 Apr 2015 17:30:42 +0000 (18:30 +0100)]
[optimzing] Fix codegen bug and improve type propagation
- don't bound the type if there are no relevant uses
- insert the bound type in the bounded block (this allows for condition
materialization without changing the logic there).
- add more comments
- add tests for BoundType generation
- fix GenerateTestAndBranch
Change-Id: I5c1fdda104da4a46775d207270220d410234a472
David Srbecky [Sun, 12 Apr 2015 06:45:18 +0000 (07:45 +0100)]
Move GetAndroidToolsDir to common location.
Move the code which looks for the prebuilts directory
to CommonRuntimeTest and add test for it.
Change-Id: Id804de31c466656957fdd4b6a470f80a00477aed