OSDN Git Service

android-x86/art.git
9 years agoMerge "ART: Fix stub_test"
Andreas Gampe [Wed, 21 Jan 2015 21:17:43 +0000 (21:17 +0000)]
Merge "ART: Fix stub_test"

9 years agoART: 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

9 years agoMerge "Allow std::function<return_type(arg_type)> patterns in cpplint."
Roland Levillain [Wed, 21 Jan 2015 18:25:13 +0000 (18:25 +0000)]
Merge "Allow std::function<return_type(arg_type)> patterns in cpplint."

9 years agoMerge "ART: Replace NULL to nullptr in the optimizing compiler"
Roland Levillain [Wed, 21 Jan 2015 17:36:33 +0000 (17:36 +0000)]
Merge "ART: Replace NULL to nullptr in the optimizing compiler"

9 years agoMerge "Do not use HNot for creating !bool."
Nicolas Geoffray [Wed, 21 Jan 2015 17:33:43 +0000 (17:33 +0000)]
Merge "Do not use HNot for creating !bool."

9 years agoART: Replace NULL to nullptr in the optimizing compiler
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>
9 years agoMerge "ART: Create a RemoveBlock method"
Roland Levillain [Wed, 21 Jan 2015 17:26:11 +0000 (17:26 +0000)]
Merge "ART: Create a RemoveBlock method"

9 years agoDo not use HNot for creating !bool.
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

9 years agoMerge "Revert "Revert "Fully support pairs in the register allocator."""
Nicolas Geoffray [Wed, 21 Jan 2015 16:00:39 +0000 (16:00 +0000)]
Merge "Revert "Revert "Fully support pairs in the register allocator."""

9 years agoRevert "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

9 years agoMerge "Update instrumentation stubs on resolved classes"
Sebastien Hertz [Wed, 21 Jan 2015 15:12:32 +0000 (15:12 +0000)]
Merge "Update instrumentation stubs on resolved classes"

9 years agoMerge "Record implicit null checks at the actual invoke time."
Calin Juravle [Wed, 21 Jan 2015 14:37:15 +0000 (14:37 +0000)]
Merge "Record implicit null checks at the actual invoke time."

9 years agoRecord 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

9 years agoMerge "Update expectations after test change."
Nicolas Geoffray [Wed, 21 Jan 2015 14:08:16 +0000 (14:08 +0000)]
Merge "Update expectations after test change."

9 years agoUpdate 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

9 years agoMerge "Revert "Fully support pairs in the register allocator.""
Nicolas Geoffray [Wed, 21 Jan 2015 12:43:10 +0000 (12:43 +0000)]
Merge "Revert "Fully support pairs in the register allocator.""

9 years agoRevert "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

9 years agoMerge "Fully support pairs in the register allocator."
Nicolas Geoffray [Wed, 21 Jan 2015 11:28:52 +0000 (11:28 +0000)]
Merge "Fully support pairs in the register allocator."

9 years agoFully 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

9 years agoMerge "[optimizing compiler] Implement inline x86 FP '%'"
Calin Juravle [Wed, 21 Jan 2015 11:01:41 +0000 (11:01 +0000)]
Merge "[optimizing compiler] Implement inline x86 FP '%'"

9 years ago[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>
9 years agoMerge "Use CompilerOptions for implicit stack overflow checks"
Calin Juravle [Wed, 21 Jan 2015 10:53:19 +0000 (10:53 +0000)]
Merge "Use CompilerOptions for implicit stack overflow checks"

9 years agoMerge "ART: Fix arm64 backend"
Andreas Gampe [Wed, 21 Jan 2015 02:08:48 +0000 (02:08 +0000)]
Merge "ART: Fix arm64 backend"

9 years agoART: 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

9 years agoMerge "ART: Make ProcessStrings less noisy"
Andreas Gampe [Wed, 21 Jan 2015 00:47:26 +0000 (00:47 +0000)]
Merge "ART: Make ProcessStrings less noisy"

9 years agoART: 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

9 years agoMerge "Clean up the locks around Heap::VisitObjects()."
Hiroshi Yamauchi [Wed, 21 Jan 2015 00:12:35 +0000 (00:12 +0000)]
Merge "Clean up the locks around Heap::VisitObjects()."

9 years agoMerge "ART: Make some helpers non-virtual in Mir2Lir"
Andreas Gampe [Tue, 20 Jan 2015 23:44:21 +0000 (23:44 +0000)]
Merge "ART: Make some helpers non-virtual in Mir2Lir"

9 years agoMerge "ART: Curb dex2oat verbosity"
Andreas Gampe [Tue, 20 Jan 2015 22:58:31 +0000 (22:58 +0000)]
Merge "ART: Curb dex2oat verbosity"

9 years agoART: 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

9 years agoClean up the locks around Heap::VisitObjects().
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

9 years agoUse CompilerOptions for implicit stack overflow checks
Calin Juravle [Tue, 20 Jan 2015 20:14:07 +0000 (20:14 +0000)]
Use CompilerOptions for implicit stack overflow checks

Change-Id: I52744382a7e3d2c6c11a43e027d87bf43ec4e62b

9 years agoART: Make some helpers non-virtual in Mir2Lir
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

9 years agoMerge "ART: Some Quick cleanup"
Andreas Gampe [Tue, 20 Jan 2015 16:02:40 +0000 (16:02 +0000)]
Merge "ART: Some Quick cleanup"

9 years agoART: 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

9 years agoMerge "Fix register allocator test."
Calin Juravle [Tue, 20 Jan 2015 12:55:47 +0000 (12:55 +0000)]
Merge "Fix register allocator test."

9 years agoFix register allocator test.
Calin Juravle [Tue, 20 Jan 2015 12:54:52 +0000 (12:54 +0000)]
Fix register allocator test.

Change-Id: I87481757d6f59bf2d6127571f58f11b5372b3a06

9 years agoMerge "Add implicit null checks for the optimizing compiler"
Calin Juravle [Tue, 20 Jan 2015 12:28:09 +0000 (12:28 +0000)]
Merge "Add implicit null checks for the optimizing compiler"

9 years agoMerge "Ensure HCondition nodes on objects are either HEqual or HNotEqual"
Roland Levillain [Tue, 20 Jan 2015 10:52:51 +0000 (10:52 +0000)]
Merge "Ensure HCondition nodes on objects are either HEqual or HNotEqual"

9 years agoMerge "ART: Run Checker with Python >2.6"
David Brazdil [Tue, 20 Jan 2015 10:02:04 +0000 (10:02 +0000)]
Merge "ART: Run Checker with Python >2.6"

9 years agoART: 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

9 years agoMerge "ART: Invoke Checker from run-test scripts"
David Brazdil [Tue, 20 Jan 2015 08:54:09 +0000 (08:54 +0000)]
Merge "ART: Invoke Checker from run-test scripts"

9 years agoMerge "Address review comments."
Nicolas Geoffray [Mon, 19 Jan 2015 17:36:23 +0000 (17:36 +0000)]
Merge "Address review comments."

9 years agoAddress review comments.
Nicolas Geoffray [Mon, 19 Jan 2015 17:17:16 +0000 (17:17 +0000)]
Address review comments.

Comments were from:
https://android-review.googlesource.com/#/c/121992.

Change-Id: I8c59b30a356d606f12c50d0c8db916295a5c9e13

9 years agoUpdate instrumentation stubs on resolved classes
Sebastien Hertz [Thu, 15 Jan 2015 11:28:47 +0000 (12:28 +0100)]
Update instrumentation stubs on resolved classes

We cannot update methods of a class in the process of being loaded.
We need it to be fully resolved (kStatusResolved) so we can access
its complete structure (including method index) and the compiled
code from the oat file.

We ensure that by skipping classes that are not resolved yet when we
update instrumentation (with all threads suspended). The entrypoints
will be updated when the class gets resolved by the ClassLinker. We
also do not update method entrypoints of erroneous classes
(kStatusError) because we cannot execute code for these methods.

This situation can happen when the debugger requests an event that
will cause a full deoptimization (like a METHOD_ENTRY event) while we
are loading a new class. Because we suspend all threads to update
instrumentation, we may visit a class that is being loaded but not
yet resolved.

Bug: 19012386
Bug: 18766029
Change-Id: I5a645dfaf5c25dcf4282c1aaeb24f1b6333baa37

9 years agoART: Invoke Checker from run-test scripts
David Brazdil [Thu, 15 Jan 2015 19:07:08 +0000 (19:07 +0000)]
ART: Invoke Checker from run-test scripts

This patch moves Checker-based tests of the optimizing compiler into
the art/test directory and modifies the run-test scripts to dump
the CFG during compilation and to verify the graph using Checker as
part of the "running" stage. Outputs generated by running the test
and running Checker are concatenated and compared with expected.txt.

Checker is invoked only if the test's name name matches the format
"<number>-checker-*" and it's currently enabled only for optimizing +
host configs. The tests are still invoked on other configs but
without Checker.

Change-Id: Ib24da808cd4bca66f07e0dbeb913a418065f2859

9 years agoMerge "ART: Fix compiler warning at arm/int_arm.cc:644"
Vladimir Marko [Mon, 19 Jan 2015 14:00:09 +0000 (14:00 +0000)]
Merge "ART: Fix compiler warning at arm/int_arm.cc:644"

9 years agoEnsure HCondition nodes on objects are either HEqual or HNotEqual
Roland Levillain [Mon, 19 Jan 2015 12:44:01 +0000 (12:44 +0000)]
Ensure HCondition nodes on objects are either HEqual or HNotEqual

Change-Id: I47efae209b7ab931d7d314e5b37582a7e21085d5

9 years agoART: Fix compiler warning at arm/int_arm.cc:644
Dmitry Petrochenko [Wed, 14 Jan 2015 09:54:20 +0000 (15:54 +0600)]
ART: Fix compiler warning at arm/int_arm.cc:644

Clang can report warning:
int_arm.cc:644:89: error: 'ops.art::ArmMir2Lir::EasyMultiplyOp::shift'
may be used uninitialized in this function
OpRegRegRegShift(kOpRsub, r_tmp1, r_src, r_src, EncodeShift(kArmLsl, ops[0].shift));

That warning becomes blocker for libart-compiler.so compilation.

This patch fixes the only case where 'shift' member was uninitialized.

Change-Id: I6428170994c9f97e7a3d85d752b97dfcdff0c8a4
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
9 years agoMerge "Checker cleanup"
David Brazdil [Mon, 19 Jan 2015 11:47:35 +0000 (11:47 +0000)]
Merge "Checker cleanup"

9 years agoMerge "Quick: Clean up optimization pass order."
Vladimir Marko [Mon, 19 Jan 2015 10:01:53 +0000 (10:01 +0000)]
Merge "Quick: Clean up optimization pass order."

9 years agoMerge "Constant fold after inlining."
Nicolas Geoffray [Mon, 19 Jan 2015 09:34:42 +0000 (09:34 +0000)]
Merge "Constant fold after inlining."

9 years agoConstant fold after inlining.
Nicolas Geoffray [Fri, 16 Jan 2015 12:35:40 +0000 (12:35 +0000)]
Constant fold after inlining.

- Inlining opens up new opportunities for constant folding.
- Fix a bug in constant folder where the result type was not
  correctly set for the folding of a HCompare.
- Improve graph checker's coverage.

Change-Id: I0943bf8ff65505c4addc4a555a526b55e00b5268

9 years agoMerge "Do not use STMP, it conflicts with the calling convention."
Nicolas Geoffray [Mon, 19 Jan 2015 09:10:53 +0000 (09:10 +0000)]
Merge "Do not use STMP, it conflicts with the calling convention."

9 years agoDo not use STMP, it conflicts with the calling convention.
Nicolas Geoffray [Fri, 16 Jan 2015 11:14:27 +0000 (11:14 +0000)]
Do not use STMP, it conflicts with the calling convention.

Hard-float calling convention uses S14 and D7 for argument passing,
so we cannot use them.

Change-Id: I77a2d8c875677640204baebc24355051aa4175fd

9 years agoMerge "Do not use register pair in a parallel move."
Nicolas Geoffray [Mon, 19 Jan 2015 08:39:36 +0000 (08:39 +0000)]
Merge "Do not use register pair in a parallel move."

9 years agoMerge "Adds the dexfuzz fuzzing tool to ART."
Andreas Gampe [Sat, 17 Jan 2015 00:52:39 +0000 (00:52 +0000)]
Merge "Adds the dexfuzz fuzzing tool to ART."

9 years agoChecker cleanup
David Brazdil [Fri, 16 Jan 2015 23:31:11 +0000 (23:31 +0000)]
Checker cleanup

Added a comment, removed unused temp directory code.

Change-Id: I3df87e801e72ccd5a87c7dbc67335e9936623560

9 years agoMerge "Fix infinite loop in GenerateIdentityHashCode"
Mathieu Chartier [Fri, 16 Jan 2015 21:37:15 +0000 (21:37 +0000)]
Merge "Fix infinite loop in GenerateIdentityHashCode"

9 years agoFix infinite loop in GenerateIdentityHashCode
tony.ys_liu [Fri, 16 Jan 2015 11:16:45 +0000 (19:16 +0800)]
Fix infinite loop in GenerateIdentityHashCode

Root Cause:
  If no one changes the seed, it will become infinite loop due to below condition
    (expected_value & LockWord::kHashMask) == 0

Solution:
  Changes the seed before entering the next loop

Added test.

Bug: 19046417

Change-Id: I7d1c377dd1bda780681514b24d61ebc776bc80ab

9 years agoMerge "Fix refs_and_args callee save order for Mips32."
Andreas Gampe [Fri, 16 Jan 2015 20:09:14 +0000 (20:09 +0000)]
Merge "Fix refs_and_args callee save order for Mips32."

9 years agoQuick: Clean up optimization pass order.
Vladimir Marko [Fri, 16 Jan 2015 16:04:43 +0000 (16:04 +0000)]
Quick: Clean up optimization pass order.

Move the TypeInference pass to post-opt passes and make it
a PassMEMirSsaRep as we need to rerun the pass if the SSA
representation has changed. (Though we currently don't have
any pass that would require it.)

The results of MethodUseCount and ConstantPropagation passes
are used only in the BBOptimization and codegen and stay
valid across BBOptimization and SuspendCheckElimination, so
move them out of post-opt passes to just before the BBOpt
(and reverse the dependency between ConstantPropagation and
init reg locations passes).

Change-Id: If02c087107cef48d5f9f7c18b0a0ace370fe2647

9 years agoAdd implicit null checks for the optimizing compiler
Calin Juravle [Thu, 8 Jan 2015 17:35:35 +0000 (17:35 +0000)]
Add implicit null checks for the optimizing compiler

- for backends: arm, arm64, x86, x86_64
- fixed parameter passing for CodeGenerator
- 003-omnibus-opcodes test verifies that NullPointerExceptions work as
expected

Change-Id: I1b302acd353342504716c9169a80706cf3aba2c8

9 years agoMerge "Fix comment referring to nonexistent ElementDeleter"
Richard Uhler [Fri, 16 Jan 2015 15:59:48 +0000 (15:59 +0000)]
Merge "Fix comment referring to nonexistent ElementDeleter"

9 years agoMerge "Add --no-clean to checker (keeps the generated files around)"
Calin Juravle [Fri, 16 Jan 2015 12:14:05 +0000 (12:14 +0000)]
Merge "Add --no-clean to checker (keeps the generated files around)"

9 years agoAdd --no-clean to checker (keeps the generated files around)
Calin Juravle [Fri, 16 Jan 2015 11:58:49 +0000 (11:58 +0000)]
Add --no-clean to checker (keeps the generated files around)

Change-Id: Iefef18f3456f79684077912e1f8b614d56e13ca6

9 years agoDo not use register pair in a parallel move.
Nicolas Geoffray [Fri, 16 Jan 2015 09:14:18 +0000 (09:14 +0000)]
Do not use register pair in a parallel move.

The ParallelMoveResolver does not work with pairs. Instead,
decompose the pair into two individual moves.

Change-Id: Ie9d3f0b078cef8dc20640c98b20bb20cc4971a7f

9 years agoMerge "Remove test that is now invalid."
Nicolas Geoffray [Fri, 16 Jan 2015 09:11:53 +0000 (09:11 +0000)]
Merge "Remove test that is now invalid."

9 years agoRemove test that is now invalid.
Nicolas Geoffray [Fri, 16 Jan 2015 09:04:49 +0000 (09:04 +0000)]
Remove test that is now invalid.

It does not make sense to have moves to the same destination
within a single parallel move. There is now an explicit
DCHECK to prevent these situations.

Change-Id: I3a33e748579ecb53b95476e77a37164d2f145f5a

9 years agoMerge "Fix a bug in the register allocator."
Nicolas Geoffray [Fri, 16 Jan 2015 08:41:30 +0000 (08:41 +0000)]
Merge "Fix a bug in the register allocator."

9 years agoFix a bug in the register allocator.
Nicolas Geoffray [Thu, 15 Jan 2015 15:37:37 +0000 (15:37 +0000)]
Fix a bug in the register allocator.

When allocating a register blocked by existing intervals,
we need to split inactive intervals at the end of their
lifetime hole, and not at the next intersection. Otherwise,
the allocation for following intervals will not see
that a register is being used by the split interval.

Change-Id: I40cc79dde541c07392a7cf4c6f0b291dd1ce1819

9 years agoMerge "ART: Mips64 runtime support"
Andreas Gampe [Fri, 16 Jan 2015 04:14:49 +0000 (04:14 +0000)]
Merge "ART: Mips64 runtime support"

9 years agoART: Mips64 runtime support
Andreas Gampe [Thu, 15 Jan 2015 20:10:47 +0000 (12:10 -0800)]
ART: Mips64 runtime support

Interpret-only Mips64 runtime support.

Change-Id: Iee22d0c8c77105d9b2f03a67dc4e09957fe0ab0a

9 years agoMerge "Increase default timeout"
Mathieu Chartier [Fri, 16 Jan 2015 02:10:06 +0000 (02:10 +0000)]
Merge "Increase default timeout"

9 years agoIncrease default timeout
Mathieu Chartier [Fri, 16 Jan 2015 01:23:16 +0000 (17:23 -0800)]
Increase default timeout

Bug: 19027813
Change-Id: I13af576dc3e980dc82e466435f41b322e2cd873e

9 years agoMerge "Print more info in MarkSweep::VerifyRoot"
Mathieu Chartier [Thu, 15 Jan 2015 20:27:09 +0000 (20:27 +0000)]
Merge "Print more info in MarkSweep::VerifyRoot"

9 years agoPrint more info in MarkSweep::VerifyRoot
Mathieu Chartier [Wed, 14 Jan 2015 22:55:47 +0000 (14:55 -0800)]
Print more info in MarkSweep::VerifyRoot

Refactored old root callback to use a new class called RootInfo.
RootInfo contains all the relevant info related to the root
associated with the callback. The MarkSweep::VerifyRoot function
now uses this info to print the StackVisitor's described location
if the GC root is of the type kRootJavaFrame.

Some other cleanup.

Example output:
E/art     (12167): Tried to mark 0x123 not contained by any spaces
E/art     (12167): Attempting see if it's a bad root
E/art     (12167): Found invalid root: 0x123 with type RootJavaFrame
E/art     (12167): Location=Visiting method
'void java.lang.Runtime.gc()' at dex PC 0xffffffff (native PC 0x0)
vreg=0

(cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a)

Bug: 18588862
Change-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f

9 years agoMerge "ART: Remove compiler invocation from Checker"
David Brazdil [Thu, 15 Jan 2015 19:35:38 +0000 (19:35 +0000)]
Merge "ART: Remove compiler invocation from Checker"

9 years agoMerge "ART: Allow to compile interpret-only mips64 files"
Andreas Gampe [Thu, 15 Jan 2015 19:34:25 +0000 (19:34 +0000)]
Merge "ART: Allow to compile interpret-only mips64 files"

9 years agoART: Allow to compile interpret-only mips64 files
Andreas Gampe [Wed, 14 Jan 2015 23:45:59 +0000 (15:45 -0800)]
ART: Allow to compile interpret-only mips64 files

Include enough infrastructure to allow cross-compiling for mips64,
interpret-only. This includes the instruction-set-features, frame
size info and utils assembler.

Also add a disassembler for oatdump, and support in patchoat.

Note: the runtime cannot run mips64, yet.

Change-Id: Id106581fa76b478984741c62a8a03be0f370d992

9 years agoMerge "ART: Optimizing compiler intrinsics"
Andreas Gampe [Thu, 15 Jan 2015 19:31:46 +0000 (19:31 +0000)]
Merge "ART: Optimizing compiler intrinsics"

9 years agoMerge "ART: Only run addr2line in abort thread dumps"
Andreas Gampe [Thu, 15 Jan 2015 18:42:15 +0000 (18:42 +0000)]
Merge "ART: Only run addr2line in abort thread dumps"

9 years agoART: Remove compiler invocation from Checker
David Brazdil [Thu, 15 Jan 2015 01:32:23 +0000 (01:32 +0000)]
ART: Remove compiler invocation from Checker

In anticipation of running Checker from run-test, this patch removes
code which compiles Java files as this will be handled by run-test.

It simultaneously adds support for verifying an entire directory of
annotated test files.

Change-Id: Id91c19c83fddade076c77789316d59f00893e63b

9 years agoART: Only run addr2line in abort thread dumps
Andreas Gampe [Thu, 15 Jan 2015 18:38:19 +0000 (10:38 -0800)]
ART: Only run addr2line in abort thread dumps

Avoid addr2line overhead for SIGQUIT and other thread dumps.

Bug: 18933933
Change-Id: I81bb291ede870d1d14b30bb0afdc47830ed14e8b

9 years agoMerge "Fix false alarm on thread suspend timeout"
Mathieu Chartier [Thu, 15 Jan 2015 18:32:47 +0000 (18:32 +0000)]
Merge "Fix false alarm on thread suspend timeout"

9 years agoFix comment referring to nonexistent ElementDeleter
Richard Uhler [Thu, 15 Jan 2015 18:27:22 +0000 (10:27 -0800)]
Fix comment referring to nonexistent ElementDeleter

Bug: 18809837
Change-Id: I40ad727907be505b7cb63f3c4bba7f395aaec727

9 years agoART: Optimizing compiler intrinsics
Andreas Gampe [Tue, 30 Dec 2014 01:43:08 +0000 (17:43 -0800)]
ART: Optimizing compiler intrinsics

Add intrinsics infrastructure to the optimizing compiler.

Add almost all intrinsics supported by Quick to the x86-64 backend.
Further intrinsics require more assembler support.

Change-Id: I48de9b44c82886bb298d16e74e12a9506b8e8807

9 years agoMerge "ART: Logging levels for Checker"
David Brazdil [Thu, 15 Jan 2015 17:21:56 +0000 (17:21 +0000)]
Merge "ART: Logging levels for Checker"

9 years agoMerge "[optimizing compiler] Compute live spill size"
Nicolas Geoffray [Thu, 15 Jan 2015 16:58:14 +0000 (16:58 +0000)]
Merge "[optimizing compiler] Compute live spill size"

9 years agoMerge "ART: Increase run-test 114 Java-level timeout"
Andreas Gampe [Thu, 15 Jan 2015 16:36:55 +0000 (16:36 +0000)]
Merge "ART: Increase run-test 114 Java-level timeout"

9 years ago[optimizing compiler] Compute live spill size
Mark Mendell [Tue, 13 Jan 2015 14:20:58 +0000 (09:20 -0500)]
[optimizing compiler] Compute live spill size

The current stack frame calculation assumes that each live register to
be saved/restored has the word size of the machine.  This fails for X86,
where a double in an XMM register takes up 8 bytes.  Change the
calculation to keep track of the number of core registers and number of
fp registers to handle this distinction.

This is slightly pessimal, as the registers may not be active at the
same time, but the only way to handle this would be to allocate both
classes of registers simultaneously, or remember all the active
intervals, matching them up and compute the size of each safepoint
interval.

Change-Id: If7860aa319b625c214775347728cdf49a56946eb
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoART: Increase run-test 114 Java-level timeout
Andreas Gampe [Thu, 15 Jan 2015 16:02:22 +0000 (08:02 -0800)]
ART: Increase run-test 114 Java-level timeout

Increase the timeout to be larger than the run-test timeout. That
way ART will dump all threads when running the test on the host.

Change-Id: I842b056bba650e5c7c3293376a48d48b7468e73d

9 years agoMerge "ART: Allow scoped adjustments to log verbosity"
Andreas Gampe [Thu, 15 Jan 2015 15:53:01 +0000 (15:53 +0000)]
Merge "ART: Allow scoped adjustments to log verbosity"

9 years agoART: Allow scoped adjustments to log verbosity
Andreas Gampe [Thu, 15 Jan 2015 03:53:31 +0000 (19:53 -0800)]
ART: Allow scoped adjustments to log verbosity

Add ScopedLogSeverity to adjust the logging level.

Suppress warnings by default in gtests. Suppress errors in instances
where errors are expected.

Change-Id: If3ef865813e9505ab60bc90baed63ff11d90afbb

9 years agoMerge "Disable test for NDEBUG, it uses libarttest.so."
Nicolas Geoffray [Thu, 15 Jan 2015 08:44:56 +0000 (08:44 +0000)]
Merge "Disable test for NDEBUG, it uses libarttest.so."

9 years agoDisable test for NDEBUG, it uses libarttest.so.
Nicolas Geoffray [Thu, 15 Jan 2015 08:42:47 +0000 (08:42 +0000)]
Disable test for NDEBUG, it uses libarttest.so.

Change-Id: Ie275583aec421f3a40663ff44388a73e890ff894

9 years agoMerge "ART: Mac build fix for unused constant"
Andreas Gampe [Thu, 15 Jan 2015 04:10:37 +0000 (04:10 +0000)]
Merge "ART: Mac build fix for unused constant"

9 years agoART: Mac build fix for unused constant
Andreas Gampe [Thu, 15 Jan 2015 04:09:14 +0000 (20:09 -0800)]
ART: Mac build fix for unused constant

Change-Id: I77e70c877e8a3608555f128e0edf8784db178e86

9 years agoMerge "ART: Host timeout Mac build fix."
Andreas Gampe [Thu, 15 Jan 2015 02:39:45 +0000 (02:39 +0000)]
Merge "ART: Host timeout Mac build fix."

9 years agoART: Host timeout Mac build fix.
Andreas Gampe [Thu, 15 Jan 2015 02:35:01 +0000 (18:35 -0800)]
ART: Host timeout Mac build fix.

Mac fix for unsupported SIGRTMIN introduced in commit
038bb2252ed1d7132f45006507e389b7ba1617ce.

Bug: 18933933
Change-Id: I502cda51802d67f089c09240d89f71166ed56c6d