OSDN Git Service
Nicolas Geoffray [Mon, 26 Jan 2015 14:45:59 +0000 (14:45 +0000)]
Merge "Introduce a SideEffectsAnalysis class."
Nicolas Geoffray [Mon, 26 Jan 2015 12:54:33 +0000 (12:54 +0000)]
Introduce a SideEffectsAnalysis class.
LICM also needs the side effects information of loops, so move
the GVN::ComputeSideEffects method into its own analysis class.
Change-Id: I810c8230a0eb6b9b536e8f808e17a3a4ad72f7db
Nicolas Geoffray [Mon, 26 Jan 2015 14:26:44 +0000 (14:26 +0000)]
Merge "Fix a bug in the liveness analysis."
Nicolas Geoffray [Fri, 23 Jan 2015 18:01:51 +0000 (18:01 +0000)]
Fix a bug in the liveness analysis.
A range after a loop might also be after a lifetime hole.
In this situation we must preserve the hole, and not merge
it with the loop start.
Change-Id: I82eddef059592102a25362cdaa4273200574c2ae
Nicolas Geoffray [Mon, 26 Jan 2015 13:58:04 +0000 (13:58 +0000)]
Merge "Fix lint error and typo."
Nicolas Geoffray [Mon, 26 Jan 2015 13:57:30 +0000 (13:57 +0000)]
Fix lint error and typo.
Change-Id: Ie2787a4da5b2d76975664e64f443c081127b7cd9
Nicolas Geoffray [Mon, 26 Jan 2015 13:33:33 +0000 (13:33 +0000)]
Merge "Fix codegen_test."
Nicolas Geoffray [Mon, 26 Jan 2015 12:49:35 +0000 (12:49 +0000)]
Fix codegen_test.
Native and ART do not have the same calling convention for ART,
so we need to adjust blocked and allocated registers.
Change-Id: I606b2620c0e5a54bd60d6100a137c06616ad40b4
Vladimir Marko [Mon, 26 Jan 2015 12:44:44 +0000 (12:44 +0000)]
Merge "ART: Implement X86 hard float (Quick/JNI/Baseline)"
Nicolas Geoffray [Mon, 26 Jan 2015 10:10:46 +0000 (10:10 +0000)]
Merge "Support callee-save registers on ARM."
Nicolas Geoffray [Fri, 23 Jan 2015 18:23:14 +0000 (18:23 +0000)]
Support callee-save registers on ARM.
Change-Id: I7c519b7a828c9891b1141a8e51e12d6a8bc84118
Andreas Gampe [Sat, 24 Jan 2015 05:18:25 +0000 (05:18 +0000)]
Merge "ART: Fix new[] / delete mismatch"
Andreas Gampe [Sat, 24 Jan 2015 03:51:15 +0000 (19:51 -0800)]
ART: Fix new[] / delete mismatch
The type of the unique_ptr in MarkQueue should be an array type,
as it is holding an array, actually.
Change-Id: If1d05a1d52cd58a373f240f7156fc69b70324298
Hiroshi Yamauchi [Sat, 24 Jan 2015 01:26:52 +0000 (01:26 +0000)]
Merge "Make it possible to enable read barriers at build time."
Hiroshi Yamauchi [Sat, 24 Jan 2015 01:23:42 +0000 (17:23 -0800)]
Make it possible to enable read barriers at build time.
Bug:
12687968
Change-Id: I26ec55063c2d5ff0181e628c1002bfa609815b29
Andreas Gampe [Fri, 23 Jan 2015 23:17:16 +0000 (23:17 +0000)]
Merge "ART: On shutdown, only warn on mutex contention"
Andreas Gampe [Fri, 23 Jan 2015 03:48:51 +0000 (19:48 -0800)]
ART: On shutdown, only warn on mutex contention
Do not abort, as daemon threads may still be active.
Bug:
17894429
(cherry picked from commit
c0440f69ebf051ff2ffdc00de51005a040014462)
Change-Id: I7c1d50ff8d4a5e150279e703a69c8f2f1d423e6b
Hiroshi Yamauchi [Fri, 23 Jan 2015 23:13:11 +0000 (23:13 +0000)]
Merge "More of the concurrent copying collector."
Hiroshi Yamauchi [Fri, 9 Jan 2015 22:03:35 +0000 (14:03 -0800)]
More of the concurrent copying collector.
Bug:
12687968
Change-Id: I62f70274d47df6d6cab714df95c518b750ce3105
Nicolas Geoffray [Fri, 23 Jan 2015 22:01:13 +0000 (22:01 +0000)]
Merge "Fix valgrind error."
Nicolas Geoffray [Fri, 23 Jan 2015 21:51:55 +0000 (21:51 +0000)]
Fix valgrind error.
Also introduce kLastCpuRegister to define kFakeReturnRegister.
Change-Id: I58cef6186c0452d45b5d2dcba9298cbe07f3552d
Mathieu Chartier [Fri, 23 Jan 2015 19:10:41 +0000 (19:10 +0000)]
Merge "Fix compaction bugs related to IdentityHashCode"
Mathieu Chartier [Fri, 23 Jan 2015 01:02:27 +0000 (17:02 -0800)]
Fix compaction bugs related to IdentityHashCode
IdentityHashCode is a suspend point if monitor inflation occurs.
Change-Id: I114021aed8b3f3437109ef622298de05e13b4e34
Mark Mendell [Tue, 13 Jan 2015 22:32:55 +0000 (17:32 -0500)]
ART: Implement X86 hard float (Quick/JNI/Baseline)
Use XMM0-XMM3 as parameter registers for float/double on X86. X86_64
already uses XMM0-XMM7 for parameters.
Change the 'hidden' argument register from XMM0 to XMM7 to avoid a
conflict.
Add support for FPR save/restore in runtime/arch/x86.
Minimal support for Optimizing baseline compiler.
Bump the version in runtime/oat.h because this is an ABI change.
Change-Id: Ia6fe150e8488b9e582b0178c0dda65fc81d5a8ba
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Nicolas Geoffray [Fri, 23 Jan 2015 17:48:57 +0000 (17:48 +0000)]
Merge "Fix makefile error."
Nicolas Geoffray [Fri, 23 Jan 2015 17:48:28 +0000 (17:48 +0000)]
Fix makefile error.
Change-Id: I797de0bed7b9c51cd7889de5144b8dbfd641335d
Nicolas Geoffray [Fri, 23 Jan 2015 17:31:36 +0000 (17:31 +0000)]
Merge "Mark test as failing for optimizing."
Nicolas Geoffray [Fri, 23 Jan 2015 17:30:54 +0000 (17:30 +0000)]
Mark test as failing for optimizing.
Change-Id: I928ff56d232a647e8227f2b97a8f4a51791a5f95
Sebastien Hertz [Fri, 23 Jan 2015 16:51:17 +0000 (16:51 +0000)]
Merge "Fix exception handling during deoptimization"
Sebastien Hertz [Fri, 16 Jan 2015 18:49:09 +0000 (19:49 +0100)]
Fix exception handling during deoptimization
When interpreting a deoptimized shadow frame, we may start with a
pending exception thrown by a previous deoptimized shadow frame (from
a previous invoke). Therefore, we need to handle it before executing
any instruction, otherwise we execute incorrect code.
Because we need the DEX pc of the throwing instruction to find a
matching catch handler, we initialize deoptimized shadow frames with
the current DEX pc at the time the stack is deoptimized.
When we are about to interpret a deoptimized shadow frame, we need to
update the shadow frame with the DEX pc of the next instruction to
interpret. There are three cases:
- if there is no pending exception, this is the instruction following
the current one.
- if there is a pending exception and we found a matching catch
handler, this is the first instruction of this handler.
- if there is a pending exception but there is no matching catch
handler, we do not execute the deoptimized shadow frame and continue
to its caller.
The verifier now fails when a method starts with a move-exception
instruction. Indeed we cannot start executing a method with a pending
exception.
Bug:
19057915
Bug:
19041195
Bug:
18607595
Change-Id: I355ac81e6ac098edc7e3cc8c13dbfa24a2969ab2
Vladimir Marko [Fri, 23 Jan 2015 11:49:09 +0000 (11:49 +0000)]
Merge "Fix BitVector::IndexIterator::operator*() to return uint32_t."
Vladimir Marko [Fri, 2 Jan 2015 17:00:44 +0000 (17:00 +0000)]
Fix BitVector::IndexIterator::operator*() to return uint32_t.
Change-Id: I3cfc028b1c3744ec85ea00eadcbccfdde6fd51d3
Nicolas Geoffray [Fri, 23 Jan 2015 09:38:05 +0000 (09:38 +0000)]
Merge "Implicit stack overflow checks and null checks are the norm now."
Nicolas Geoffray [Fri, 23 Jan 2015 09:36:52 +0000 (09:36 +0000)]
Implicit stack overflow checks and null checks are the norm now.
Make the default to true so that unit tests don't need to
use the full CompilerOptions constructor.
Change-Id: Ieb52235af73dce2fa03f12932e22ebe2294c805b
Nicolas Geoffray [Fri, 23 Jan 2015 09:23:12 +0000 (09:23 +0000)]
Merge "Support callee save floating point registers on x64."
Nicolas Geoffray [Thu, 22 Jan 2015 13:50:01 +0000 (13:50 +0000)]
Support callee save floating point registers on x64.
- Share the computation of core_spill_mask and fpu_spill_mask
between backends.
- Remove explicit stack overflow check support: we need to adjust
them and since they are not tested, they will easily bitrot.
Change-Id: I0b619b8de4e1bdb169ea1ae7c6ede8df0d65837a
Mathieu Chartier [Fri, 23 Jan 2015 03:51:17 +0000 (03:51 +0000)]
Merge "ART: clear dirty cards of alloc space in pause phase"
Brian Carlstrom [Fri, 23 Jan 2015 01:22:20 +0000 (01:22 +0000)]
Merge "Fix 116-nodex2oat to use arguments in custom run script"
Brian Carlstrom [Fri, 23 Jan 2015 01:03:58 +0000 (17:03 -0800)]
Fix 116-nodex2oat to use arguments in custom run script
Change-Id: I47a834da921930764abdff8fdce09b026b9ad483
Mathieu Chartier [Fri, 23 Jan 2015 00:50:28 +0000 (00:50 +0000)]
Merge "Fix compaction unsafe DescribeWait"
Mathieu Chartier [Fri, 23 Jan 2015 00:36:10 +0000 (16:36 -0800)]
Fix compaction unsafe DescribeWait
Fixes a crash that was seen once in automated tests, PrettyTypeOf
was accessing a stale object which had moved during IdentityHashCode
due to thin lock inflation causing suspension.
Change-Id: I105aa9a09d4e8c9091b9a60e508ef71e613f1eed
Andreas Gampe [Thu, 22 Jan 2015 19:48:13 +0000 (19:48 +0000)]
Merge "ART: Rewrite ParallelGC test"
Andreas Gampe [Thu, 22 Jan 2015 18:01:16 +0000 (18:01 +0000)]
Merge "ART: Refactor common ELF->InstructionSet code"
Roland Levillain [Thu, 22 Jan 2015 13:34:27 +0000 (13:34 +0000)]
Merge "Improve error messages in art::GraphChecker and art::SSAChecker"
Vladimir Marko [Thu, 22 Jan 2015 10:47:35 +0000 (10:47 +0000)]
Merge "ART: Fix GenInlined functions"
Nicolas Geoffray [Thu, 22 Jan 2015 08:46:43 +0000 (08:46 +0000)]
Merge "Fix lint error."
Nicolas Geoffray [Thu, 22 Jan 2015 08:46:05 +0000 (08:46 +0000)]
Fix lint error.
Change-Id: Iccba489098dd2a5b8796beefc781284006624f74
Nicolas Geoffray [Thu, 22 Jan 2015 08:30:11 +0000 (08:30 +0000)]
Merge "Enable core callee-save on x64."
Lei Li [Thu, 15 Jan 2015 03:26:34 +0000 (11:26 +0800)]
ART: clear dirty cards of alloc space in pause phase
Clear the dirty cards of alloc spaces when scanning them in pause phase,
the dirty cards of image or zygote space will not be cleared in order to
track the references to the other spaces.
Change-Id: I519f071d954a589aa33dbce0cdba405f2d2cef71
Signed-off-by: Lei Li <lei.l.li@intel.com>
Sebastien Hertz [Thu, 22 Jan 2015 07:25:17 +0000 (07:25 +0000)]
Merge "Follow up on CL 123650"
Andreas Gampe [Wed, 21 Jan 2015 05:26:43 +0000 (21:26 -0800)]
ART: Rewrite ParallelGC test
Make the setup simpler and less prone to OOME problems.
Bug:
19027813
Change-Id: Ie2dbe1579a45d554f207a9bf84d53303acbe79d5
Andreas Gampe [Thu, 22 Jan 2015 06:25:24 +0000 (22:25 -0800)]
ART: Refactor common ELF->InstructionSet code
Move code into instruction_set.h/cc.
Change-Id: I34d5c82791042c68629df84e0f4b9321231d51b9
Brian Carlstrom [Thu, 22 Jan 2015 00:33:03 +0000 (00:33 +0000)]
Merge "Clean-up 116-nodex2oat unit test"
Chao-ying Fu [Mon, 19 Jan 2015 23:51:57 +0000 (15:51 -0800)]
ART: Fix GenInlined functions
This patch fixes Mir2Lir::GenInlinedReverseBytes,
Mir2Lir::GenInlinedAbsInt, Mir2Lir::GenInlinedAbsLong,
Mir2Lir::GenInlinedFloatCvt, Mir2Lir::GenInlinedDoubleCvt,
X86Mir2Lir::GenInlinedSqrt, X86Mir2Lir::GenInlinedMinMaxFP,
X86Mir2Lir::GenInlinedMinMax, X86Mir2Lir::GenInlinedPeek,
and X86Mir2Lir::GenInlinedReverseBits to generate no code, when results
are unused.
New calls without assignments are added to 082-inline-execute.
Change-Id: I7076e9ddbea43545315f2aeb677c63a8a6e95224
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Serguei Katkov [Mon, 24 Nov 2014 07:22:26 +0000 (13:22 +0600)]
Clean-up 116-nodex2oat unit test
Running with prebuilt is added to black-list, so no need to handle
this in the test itself.
Change-Id: I334f291eb4ec2703dbb1f1e4575232fa67ab7fb8
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Andreas Gampe [Wed, 21 Jan 2015 21:17:43 +0000 (21:17 +0000)]
Merge "ART: Fix stub_test"
Andreas Gampe [Wed, 21 Jan 2015 20:23:50 +0000 (12:23 -0800)]
ART: Fix stub_test
Change x86-64 inline assembly to work with fno-omit-frame-pointer.
Bug:
18722517
Change-Id: I2ddb80abc9ada63fe5de9ccdd12b37df5c0001b7
Nicolas Geoffray [Wed, 21 Jan 2015 12:32:32 +0000 (12:32 +0000)]
Enable core callee-save on x64.
Will work on other architectures and FP support in other CLs.
Change-Id: I8cef0343eedc7202d206f5217fdf0349035f0e4d
Roland Levillain [Wed, 21 Jan 2015 18:25:13 +0000 (18:25 +0000)]
Merge "Allow std::function<return_type(arg_type)> patterns in cpplint."
Roland Levillain [Wed, 21 Jan 2015 17:36:33 +0000 (17:36 +0000)]
Merge "ART: Replace NULL to nullptr in the optimizing compiler"
Nicolas Geoffray [Wed, 21 Jan 2015 17:33:43 +0000 (17:33 +0000)]
Merge "Do not use HNot for creating !bool."
Jean Christophe Beyler [Thu, 4 Dec 2014 19:20:20 +0000 (11:20 -0800)]
ART: Replace NULL to nullptr in the optimizing compiler
Replace macro NULL to the nullptr variation for C++.
Change-Id: Ib6e48dd4bb3c254343383011b67372622578ca76
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
Roland Levillain [Wed, 21 Jan 2015 17:26:11 +0000 (17:26 +0000)]
Merge "ART: Create a RemoveBlock method"
Nicolas Geoffray [Wed, 21 Jan 2015 15:44:16 +0000 (15:44 +0000)]
Do not use HNot for creating !bool.
HNot folds to ~, not !.
Change-Id: I681f968449a2ade7110b2f316146ad16ba5da74c
Sebastien Hertz [Wed, 21 Jan 2015 16:30:58 +0000 (17:30 +0100)]
Follow up on CL 123650
Change-Id: If575fdb9cc73e312e222e6853890e8dacd83b284
Nicolas Geoffray [Wed, 21 Jan 2015 16:00:39 +0000 (16:00 +0000)]
Merge "Revert "Revert "Fully support pairs in the register allocator."""
Nicolas Geoffray [Wed, 21 Jan 2015 14:56:54 +0000 (14:56 +0000)]
Revert "Revert "Fully support pairs in the register allocator.""
This reverts commit
c399fdc442db82dfda66e6c25518872ab0f1d24f.
Change-Id: I19f8215c4b98f2f0827e04bf7806c3ca439794e5
Sebastien Hertz [Wed, 21 Jan 2015 15:12:32 +0000 (15:12 +0000)]
Merge "Update instrumentation stubs on resolved classes"
Calin Juravle [Wed, 21 Jan 2015 14:37:15 +0000 (14:37 +0000)]
Merge "Record implicit null checks at the actual invoke time."
Calin Juravle [Mon, 12 Jan 2015 18:45:46 +0000 (18:45 +0000)]
Record implicit null checks at the actual invoke time.
ImplicitNullChecks are recorded only for instructions directly (see NB
below) preceeded by NullChecks in the graph. This way we avoid recording
redundant safepoints and minimize the code size increase.
NB: ParallalelMoves might be inserted by the register allocator between
the NullChecks and their uses. These modify the environment and the
correct action would be to reverse their modification. This will be
addressed in a follow-up CL.
Change-Id: Ie50006e5a4bd22932dcf11348f5a655d253cd898
Nicolas Geoffray [Wed, 21 Jan 2015 14:08:16 +0000 (14:08 +0000)]
Merge "Update expectations after test change."
Nicolas Geoffray [Wed, 21 Jan 2015 14:04:31 +0000 (14:04 +0000)]
Update expectations after test change.
Change-Id: Ide5d1257f00b31e46020f5989690b662fbf72258
Nicolas Geoffray [Wed, 21 Jan 2015 12:43:10 +0000 (12:43 +0000)]
Merge "Revert "Fully support pairs in the register allocator.""
Nicolas Geoffray [Wed, 21 Jan 2015 12:42:57 +0000 (12:42 +0000)]
Revert "Fully support pairs in the register allocator."
Libcore tests fail.
This reverts commit
41aedbb684ccef76ff8373f39aba606ce4cb3194.
Change-Id: I2572f120d4bbaeb7a4d4cbfd47ab00c9ea39ac6c
Roland Levillain [Wed, 21 Jan 2015 11:39:58 +0000 (11:39 +0000)]
Improve error messages in art::GraphChecker and art::SSAChecker
- Add an art::GraphChecker::AddError helper.
- Use StringPrintf instead of std::stringstream.
- Rephrase some error messages.
Change-Id: Ia741e9e67cb5122f086a7383a2bc02d60ca637df
Nicolas Geoffray [Wed, 21 Jan 2015 11:28:52 +0000 (11:28 +0000)]
Merge "Fully support pairs in the register allocator."
Nicolas Geoffray [Wed, 14 Jan 2015 10:49:16 +0000 (10:49 +0000)]
Fully support pairs in the register allocator.
Enabled on ARM for longs and doubles.
Change-Id: Id8792d08bd7ca9fb049c5db8a40ae694bafc2d8b
Calin Juravle [Wed, 21 Jan 2015 11:01:41 +0000 (11:01 +0000)]
Merge "[optimizing compiler] Implement inline x86 FP '%'"
Mark Mendell [Thu, 15 Jan 2015 00:51:45 +0000 (19:51 -0500)]
[optimizing compiler] Implement inline x86 FP '%'
Replace the calls to fmod/fmodf by inline code as is done in the Quick
compiler.
Remove the quick fmod/fmodf runtime entries, as they are no longer in
use.
64 bit code generator Move() routine needed to be enhanced to handle
constants, as Location::Any() allows them to be generated.
Change-Id: I6b6a42f6faeed4b0b3c940453e487daf5b25d184
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Calin Juravle [Wed, 21 Jan 2015 10:53:19 +0000 (10:53 +0000)]
Merge "Use CompilerOptions for implicit stack overflow checks"
Andreas Gampe [Wed, 21 Jan 2015 02:08:48 +0000 (02:08 +0000)]
Merge "ART: Fix arm64 backend"
Andreas Gampe [Wed, 21 Jan 2015 02:06:47 +0000 (18:06 -0800)]
ART: Fix arm64 backend
Fix a register size problem after previous commit
f681570077563bb529a30f9e7c572b837cecfb83.
Change-Id: If04e647324bcd6fe279c25e70214a9f7c5b816ec
Andreas Gampe [Wed, 21 Jan 2015 00:47:26 +0000 (00:47 +0000)]
Merge "ART: Make ProcessStrings less noisy"
Andreas Gampe [Wed, 21 Jan 2015 00:17:19 +0000 (16:17 -0800)]
ART: Make ProcessStrings less noisy
Only print statistics in debug mode or when verbose-logging.
Bug:
19082662
Change-Id: Ibc1d336a5abe7a05fb37e8d3a9b9c9c8131e5bbc
Hiroshi Yamauchi [Wed, 21 Jan 2015 00:12:35 +0000 (00:12 +0000)]
Merge "Clean up the locks around Heap::VisitObjects()."
Andreas Gampe [Tue, 20 Jan 2015 23:44:21 +0000 (23:44 +0000)]
Merge "ART: Make some helpers non-virtual in Mir2Lir"
Andreas Gampe [Tue, 20 Jan 2015 22:58:31 +0000 (22:58 +0000)]
Merge "ART: Curb dex2oat verbosity"
Andreas Gampe [Tue, 20 Jan 2015 22:50:21 +0000 (14:50 -0800)]
ART: Curb dex2oat verbosity
Only print dedupe collisions in a debug build or on verbose logging.
Change-Id: I08bd04a453d95b6dba6cf6955b5741cd97daf480
Hiroshi Yamauchi [Sat, 17 Jan 2015 00:54:35 +0000 (16:54 -0800)]
Clean up the locks around Heap::VisitObjects().
This is so that we could support suspending all threads when visiting
objects in the presence of a concurrent, moving collector.
Bug:
12687968
Change-Id: Icc8e60630465afde948ebc6ea91d4ebaff5d7837
Calin Juravle [Tue, 20 Jan 2015 20:14:07 +0000 (20:14 +0000)]
Use CompilerOptions for implicit stack overflow checks
Change-Id: I52744382a7e3d2c6c11a43e027d87bf43ec4e62b
Andreas Gampe [Tue, 20 Jan 2015 17:53:48 +0000 (09:53 -0800)]
ART: Make some helpers non-virtual in Mir2Lir
These don't need to be virtual.
Change-Id: Idca3c0a4e8b5e045d354974bd993492d6c0e70ba
Andreas Gampe [Tue, 20 Jan 2015 16:02:40 +0000 (16:02 +0000)]
Merge "ART: Some Quick cleanup"
Andreas Gampe [Sat, 17 Jan 2015 06:09:55 +0000 (22:09 -0800)]
ART: Some Quick cleanup
Move some definitions around. In case a method is already virtual,
avoid instruction-set tests.
Change-Id: I8d98f098e55ade1bc0cfa32bb2aad006caccd07d
Calin Juravle [Tue, 20 Jan 2015 12:55:47 +0000 (12:55 +0000)]
Merge "Fix register allocator test."
Calin Juravle [Tue, 20 Jan 2015 12:54:52 +0000 (12:54 +0000)]
Fix register allocator test.
Change-Id: I87481757d6f59bf2d6127571f58f11b5372b3a06
Calin Juravle [Tue, 20 Jan 2015 12:28:09 +0000 (12:28 +0000)]
Merge "Add implicit null checks for the optimizing compiler"
Roland Levillain [Tue, 20 Jan 2015 10:52:51 +0000 (10:52 +0000)]
Merge "Ensure HCondition nodes on objects are either HEqual or HNotEqual"
David Brazdil [Tue, 20 Jan 2015 10:02:04 +0000 (10:02 +0000)]
Merge "ART: Run Checker with Python >2.6"
David Brazdil [Tue, 20 Jan 2015 09:28:38 +0000 (09:28 +0000)]
ART: Run Checker with Python >2.6
Chromium buildbots don't have Python 3. This patch fixes the uses
of print() and ASCII vs. Unicode strings to make Checker compatible
with Python 2.6 and above.
Change-Id: Ic065d990f668b8cf95a337aae037699e8474fcee
David Brazdil [Tue, 20 Jan 2015 08:54:09 +0000 (08:54 +0000)]
Merge "ART: Invoke Checker from run-test scripts"