OSDN Git Service

android-x86/art.git
9 years agoMerge "Support hints for register pairs."
Nicolas Geoffray [Fri, 13 Feb 2015 05:44:19 +0000 (05:44 +0000)]
Merge "Support hints for register pairs."

9 years agoSupport hints for register pairs.
Nicolas Geoffray [Wed, 11 Feb 2015 02:29:42 +0000 (02:29 +0000)]
Support hints for register pairs.

Change-Id: Ia49dc5bf3e9a2bd481425bfe7fbeea9feb66c8e6

9 years agoMerge "Be more lenient with 4 byte UTF-8 sequences."
Narayan Kamath [Thu, 12 Feb 2015 13:39:05 +0000 (13:39 +0000)]
Merge "Be more lenient with 4 byte UTF-8 sequences."

9 years agoBe more lenient with 4 byte UTF-8 sequences.
Narayan Kamath [Thu, 29 Jan 2015 20:06:46 +0000 (20:06 +0000)]
Be more lenient with 4 byte UTF-8 sequences.

Accept 4 byte sequences and convert them into surrogate
pairs instead of expecting 2 separate 3 byte sequences
each encoding one half of a surrogate pair.

Note that in addition to supporting 4 byte sequences in
strings from JNI, we also tolerate them in dex files. This
is mainly for consistency, and there's no need to claim any
sort of official support.

bug: 18848397
bug: https://code.google.com/p/android/issues/detail?id=81341
Change-Id: Ibc98d29e59d98803e640f2489ea4c56912a59b29

9 years agoMerge "Fix ImageWriter::ComputeEagerResolvedStringsCallback()."
Vladimir Marko [Wed, 11 Feb 2015 10:06:21 +0000 (10:06 +0000)]
Merge "Fix ImageWriter::ComputeEagerResolvedStringsCallback()."

9 years agoFix ImageWriter::ComputeEagerResolvedStringsCallback().
Vladimir Marko [Wed, 3 Dec 2014 17:53:53 +0000 (17:53 +0000)]
Fix ImageWriter::ComputeEagerResolvedStringsCallback().

Change-Id: I1a2abd6d78dd7067d9bdbadbd81dd2fd7711fbc5

9 years agoMerge "Quick: Rewrite Phi node insertion."
Vladimir Marko [Tue, 10 Feb 2015 20:19:51 +0000 (20:19 +0000)]
Merge "Quick: Rewrite Phi node insertion."

9 years agoMerge "Improve ParallelMoveResolver to work with pairs."
Nicolas Geoffray [Tue, 10 Feb 2015 19:33:22 +0000 (19:33 +0000)]
Merge "Improve ParallelMoveResolver to work with pairs."

9 years agoMerge "Fix HasSameSignatureWithDifferentClassLoaders()."
Vladimir Marko [Tue, 10 Feb 2015 19:25:13 +0000 (19:25 +0000)]
Merge "Fix HasSameSignatureWithDifferentClassLoaders()."

9 years agoImprove ParallelMoveResolver to work with pairs.
Nicolas Geoffray [Tue, 10 Feb 2015 17:08:47 +0000 (17:08 +0000)]
Improve ParallelMoveResolver to work with pairs.

Change-Id: Ie2a540ffdb78f7f15d69c16a08ca2d3e794f65b9

9 years agoMerge "Handle variable size of methods properly between 32 and 64 bit."
Jeff Hao [Tue, 10 Feb 2015 18:47:42 +0000 (18:47 +0000)]
Merge "Handle variable size of methods properly between 32 and 64 bit."

9 years agoMerge "Revert "Revert "Allow preopted apps to have sharpened calls for non-x86 archit...
Jeff Hao [Tue, 10 Feb 2015 18:47:32 +0000 (18:47 +0000)]
Merge "Revert "Revert "Allow preopted apps to have sharpened calls for non-x86 architectures."""

9 years agoFix HasSameSignatureWithDifferentClassLoaders().
Vladimir Marko [Tue, 10 Feb 2015 18:22:57 +0000 (18:22 +0000)]
Fix HasSameSignatureWithDifferentClassLoaders().

Add a missing handle and make sure that the handle's
Get() is sequenced after the call that can cause GC.

Change-Id: I3c0479650c40ceb803bfbf658238aeea8e4b0a1a

9 years agoQuick: Rewrite Phi node insertion.
Vladimir Marko [Mon, 9 Feb 2015 12:35:05 +0000 (12:35 +0000)]
Quick: Rewrite Phi node insertion.

Delay Phi node insertion to the SSAConversion pass to allow
updating the vreg_to_ssa_map_ with INVALID_SREG when we omit
a Phi in the pruned SSA form.

Change-Id: I450dee21f7dc4353d25fc66f4d0ee01671de6e0e

9 years agoMerge "ART: Remove MIRGraph::dex_pc_to_block_map_"
Vladimir Marko [Tue, 10 Feb 2015 12:09:55 +0000 (12:09 +0000)]
Merge "ART: Remove MIRGraph::dex_pc_to_block_map_"

9 years agoMerge "Fix a compilation error for Mips64."
Nicolas Geoffray [Tue, 10 Feb 2015 01:48:25 +0000 (01:48 +0000)]
Merge "Fix a compilation error for Mips64."

9 years agoFix a compilation error for Mips64.
Douglas Leung [Mon, 9 Feb 2015 23:22:26 +0000 (15:22 -0800)]
Fix a compilation error for Mips64.

Change-Id: I4f35750c4b840fce18c467995787e92bc38a7812

9 years agoART: Remove MIRGraph::dex_pc_to_block_map_
Chao-ying Fu [Wed, 12 Nov 2014 00:48:40 +0000 (16:48 -0800)]
ART: Remove MIRGraph::dex_pc_to_block_map_

This patch removes MIRGraph::dex_pc_to_block_map_, adds a local
variable dex_pc_to_block_map inside MIRGraph::InlineMethod(), and
updates several functions to pass dex_pc_to_block_map.
The goal is to limit the scope of dex_pc_to_block_map and
the usage of FindBlock, so that various compiler optimizations
cannot rely on dex pc to look up basic blocks to avoid
duplicated dex pc issues.
Also, this patch changes quick targets to use successor blocks
for switch case target generation at Mir2Lir::InstallSwitchTables().

Change-Id: I9f571efebd2706b4e1606279bd61f3b406ecd1c4
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
9 years agoMerge "ART: Arm intrinsics for Optimizing compiler"
Andreas Gampe [Mon, 9 Feb 2015 21:09:41 +0000 (21:09 +0000)]
Merge "ART: Arm intrinsics for Optimizing compiler"

9 years agoART: Arm intrinsics for Optimizing compiler
Andreas Gampe [Thu, 29 Jan 2015 17:56:07 +0000 (09:56 -0800)]
ART: Arm intrinsics for Optimizing compiler

Add arm32 intrinsics to the optimizing compiler.

Change-Id: If4aeedbf560862074d8ee08ca4484b666d6b9bf0

9 years agoMerge "Improve bce so that more bounds checks can be eliminated."
Mingyao Yang [Mon, 9 Feb 2015 19:50:25 +0000 (19:50 +0000)]
Merge "Improve bce so that more bounds checks can be eliminated."

9 years agoImprove bce so that more bounds checks can be eliminated.
Mingyao Yang [Sat, 31 Jan 2015 00:41:29 +0000 (16:41 -0800)]
Improve bce so that more bounds checks can be eliminated.

For pattern like "int[] array = new int[size+1]", we record this range
for size:
[-1, array.length-1]
This can eliminate more bounds checks.

Also simplify overflow/underflow handling and make it more solid.

Enhance instruction simplifier such that if array is a result of
NewArray with a constant size, replace array.length with that constant.

Plan to move all bce gtests to checker in another change.

Change-Id: Ibe7cc7940b68fb6465dc3e0ff3ebdb0fd6487aa9

9 years agoMerge "Fix null check tests"
Calin Juravle [Mon, 9 Feb 2015 18:43:23 +0000 (18:43 +0000)]
Merge "Fix null check tests"

9 years agoFix null check tests
Calin Juravle [Mon, 9 Feb 2015 18:22:09 +0000 (18:22 +0000)]
Fix null check tests

Change-Id: Iafd3b1f58ed7ce45350b4b3aa493bafc63ade179

9 years agoMerge "Optimize leaf methods."
Nicolas Geoffray [Sun, 8 Feb 2015 11:58:40 +0000 (11:58 +0000)]
Merge "Optimize leaf methods."

9 years agoMerge "Fix gcstress tests."
Hiroshi Yamauchi [Fri, 6 Feb 2015 23:32:16 +0000 (23:32 +0000)]
Merge "Fix gcstress tests."

9 years agoMerge "Support map data in the backtrace data structure."
Christopher Ferris [Fri, 6 Feb 2015 23:29:10 +0000 (23:29 +0000)]
Merge "Support map data in the backtrace data structure."

9 years agoFix gcstress tests.
Hiroshi Yamauchi [Fri, 6 Feb 2015 23:21:08 +0000 (15:21 -0800)]
Fix gcstress tests.

Bug: 19295410
Change-Id: I15db7c1f9c78b632106beab6a6c97a2b3c37f110

9 years agoSupport map data in the backtrace data structure.
Christopher Ferris [Fri, 6 Feb 2015 21:18:58 +0000 (13:18 -0800)]
Support map data in the backtrace data structure.

The backtrace data structure used to keep a pointer to the map data. Now
the code has the map data embedded in the structure and no pointers.

Bug: 19028453
Change-Id: If7088a73f3c6bf1f3bc8cdd2bb4b62e7cab831c0

9 years agoMerge "x64 goodness."
Nicolas Geoffray [Fri, 6 Feb 2015 17:41:14 +0000 (17:41 +0000)]
Merge "x64 goodness."

9 years agox64 goodness.
Nicolas Geoffray [Tue, 27 Jan 2015 08:17:54 +0000 (08:17 +0000)]
x64 goodness.

- Use test instead of cmp when comparing against 0.
- Make it possible to use lea for add.
- Use xor instead of mov when loading 0.

Change-Id: Ide95c4e2d9b773e952412892f2df6869600c324e

9 years agoOptimize leaf methods.
Nicolas Geoffray [Fri, 6 Feb 2015 14:35:25 +0000 (14:35 +0000)]
Optimize leaf methods.

Avoid suspend checks and stack changes when not needed.

Change-Id: I0fdb31e8c631e99091b818874a558c9aa04b1628

9 years agoMerge "Opt Compiler: ARM64: Enable Callee-saved register, as defined by AAPCS64."
Nicolas Geoffray [Fri, 6 Feb 2015 09:34:47 +0000 (09:34 +0000)]
Merge "Opt Compiler: ARM64: Enable Callee-saved register, as defined by AAPCS64."

9 years agoMerge "Read JDWP options from runtime"
Sebastien Hertz [Fri, 6 Feb 2015 06:15:45 +0000 (06:15 +0000)]
Merge "Read JDWP options from runtime"

9 years agoHandle variable size of methods properly between 32 and 64 bit.
Jeff Hao [Tue, 3 Feb 2015 23:08:39 +0000 (15:08 -0800)]
Handle variable size of methods properly between 32 and 64 bit.

Bug: 19100762
Change-Id: I62358905fa882284d0201ed3c1e97e1286ccec5f

9 years agoMerge "art: Fix broken cmdline_parser_test"
Igor Murashkin [Thu, 5 Feb 2015 20:34:47 +0000 (20:34 +0000)]
Merge "art: Fix broken cmdline_parser_test"

9 years agoOpt Compiler: ARM64: Enable Callee-saved register, as defined by AAPCS64.
Serban Constantinescu [Wed, 28 Jan 2015 11:57:05 +0000 (11:57 +0000)]
Opt Compiler: ARM64: Enable Callee-saved register, as defined by AAPCS64.

For now we block kQuickSuspendRegister - x19, since Quick and the runtime
use this as a suspend counter register.

Change-Id: I090d386670e81e7924e4aa9a3864ef30d0580a30
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
9 years agoRevert "Revert "Allow preopted apps to have sharpened calls for non-x86 architectures.""
Jeff Hao [Tue, 27 Jan 2015 19:22:04 +0000 (11:22 -0800)]
Revert "Revert "Allow preopted apps to have sharpened calls for non-x86 architectures.""

Should really say it allows pre-linked calls instead of sharpened calls.

Bug: 19100762
Change-Id: Ia2045a9eda92255e87a7f6187de18d6370b8f060

9 years agoart: Fix broken cmdline_parser_test
Igor Murashkin [Thu, 5 Feb 2015 19:22:45 +0000 (11:22 -0800)]
art: Fix broken cmdline_parser_test

Bug: 19274810
Change-Id: I28df72dced9bdbbe0684836e9a18334994183421

9 years agoMerge "ART: Fix crash when timing method failing to build"
David Brazdil [Thu, 5 Feb 2015 18:10:57 +0000 (18:10 +0000)]
Merge "ART: Fix crash when timing method failing to build"

9 years agoART: Fix crash when timing method failing to build
David Brazdil [Thu, 5 Feb 2015 11:34:02 +0000 (11:34 +0000)]
ART: Fix crash when timing method failing to build

PassInfoPrinter previously required that AfterPass is always called
before the timing results are printed, which was not the case when
a method compilation failed either in Builder or SsaBuilder.

Change-Id: I3686bba6869402a62eec884f59fd872d5674e5a5

9 years agoRead JDWP options from runtime
Sebastien Hertz [Thu, 5 Feb 2015 15:30:58 +0000 (16:30 +0100)]
Read JDWP options from runtime

Allocates JDWP::JdwpOptions on the heap and copies parsed options to
avoid the need to include jdwp/jdwp.h into runtime.h file.

Also does some minor cleanup and removes the old JDWP options parsing
code that became dead code after we move it to the new command-line
parser.

Bug: 19275792
Change-Id: I71901c89fbf2cc3c1901a089e2a98b4326c6ee70

9 years agoMerge "Disable test, it fails on target and read-barrier config."
Nicolas Geoffray [Thu, 5 Feb 2015 10:31:57 +0000 (10:31 +0000)]
Merge "Disable test, it fails on target and read-barrier config."

9 years agoDisable test, it fails on target and read-barrier config.
Nicolas Geoffray [Thu, 5 Feb 2015 10:14:10 +0000 (10:14 +0000)]
Disable test, it fails on target and read-barrier config.

Change-Id: Ib1ae28b1e81a1355196c32c43765a6f5466ca728

9 years agoMerge "Fix transaction aborting"
Sebastien Hertz [Thu, 5 Feb 2015 08:19:21 +0000 (08:19 +0000)]
Merge "Fix transaction aborting"

9 years agoFix transaction aborting
Sebastien Hertz [Tue, 3 Feb 2015 10:58:06 +0000 (11:58 +0100)]
Fix transaction aborting

During compilation, a java.lang.InternalError is used to indicate
that class initialization failed and the enclosing transaction
should be aborted and the changes rolled back. However there is
nothing preventing the code executed from a class initializer from
catching that exception (like catching Throwable and ignore it).
Therefore we may return from the class initializer with no pending
exception, even if the transaction was aborted, and not rollback
the changes properly.

To fix this, we now rely on the new Transaction::aborted_ field to
know whether a transaction aborted. When returning from the class
initializer without pending exception, we now check wether we aborted
the enclosing transaction. If that's the case, we set the status of
the class to kStatusError and throw a new java.lang.InternalError
with the original abort message.

This CL also contains some cleanup:
- Renames Transaction::Abort to Transaction::Rollback which is less
ambiguous and more reflect what is done.
- Moves the code throwing the java.lang.InternalError exception into
the Transaction::ThrowInternalError method so we do not duplicate
code. Now we may abort transaction more than once (because we may
have caught the java.lang.InternalError then execute code causing
new transaction abort), we only keep the first abort message to
throw the exception.
- Updates transaction_test with more cases and more checks.
- Bumps oat version to force recompilation with this fix.

Bug: 19202032
Change-Id: Iedc6969528a68bbdf3123146e990df4dbc57834b

9 years agoMerge "Clear thread local freed bits in RosAlloc::Run::InspectAllSlots"
Mathieu Chartier [Thu, 5 Feb 2015 02:45:25 +0000 (02:45 +0000)]
Merge "Clear thread local freed bits in RosAlloc::Run::InspectAllSlots"

9 years agoClear thread local freed bits in RosAlloc::Run::InspectAllSlots
Mathieu Chartier [Thu, 5 Feb 2015 01:46:29 +0000 (17:46 -0800)]
Clear thread local freed bits in RosAlloc::Run::InspectAllSlots

Previously we didn't take these bits into consideration. This could
cause RosAlloc::Run::InspectAllSlots to inspect recently freed
allocations as allocated.

Bug: 19193521
Change-Id: I56b3c089e2a36098423261cda623fc834069f832

9 years agoMerge "art: Try to fix parsed_options_test on the build server"
Igor Murashkin [Thu, 5 Feb 2015 01:35:28 +0000 (01:35 +0000)]
Merge "art: Try to fix parsed_options_test on the build server"

9 years agoart: Try to fix parsed_options_test on the build server
Igor Murashkin [Thu, 5 Feb 2015 01:30:43 +0000 (17:30 -0800)]
art: Try to fix parsed_options_test on the build server

(It works fine locally because environment variables are defined
differently)

Also some minor cleanup elsewhere pointed out in the previous code
review.

Change-Id: I80650d2be6ce467b838db85eb130a0020d7c1480

9 years agoMerge "Fix broken volantis build"
Igor Murashkin [Wed, 4 Feb 2015 23:35:52 +0000 (23:35 +0000)]
Merge "Fix broken volantis build"

9 years agoFix broken volantis build
Igor Murashkin [Wed, 4 Feb 2015 23:11:27 +0000 (15:11 -0800)]
Fix broken volantis build

Change-Id: Iedc1a94fd1ec4224b605b984c11cfcc8c1c510e3

9 years agoMerge "art: Refactor RuntimeOptions/ParsedOptions"
Igor Murashkin [Wed, 4 Feb 2015 21:45:13 +0000 (21:45 +0000)]
Merge "art: Refactor RuntimeOptions/ParsedOptions"

9 years agoart: Refactor RuntimeOptions/ParsedOptions
Igor Murashkin [Mon, 26 Jan 2015 18:55:53 +0000 (10:55 -0800)]
art: Refactor RuntimeOptions/ParsedOptions

Refactor the RuntimeOptions to be a
type-safe map (VariantMap, see runtime_options.h) and the ParsedOptions
to delegate the parsing to CmdlineParser (see cmdline/cmdline_parser.h).

This is the start of a command line parsing refactor, and may include
more in the future (dex2oat, patchoat, etc).

For more details of the command line parsing generator usage see cmdline/README.md

Change-Id: Ic67c6bca5e1f33bf2ec60e2e3ff8c366bab91563

9 years agoMerge "ART: Fix old run scripts"
Andreas Gampe [Wed, 4 Feb 2015 21:20:25 +0000 (21:20 +0000)]
Merge "ART: Fix old run scripts"

9 years agoART: Fix old run scripts
Andreas Gampe [Wed, 4 Feb 2015 02:26:55 +0000 (18:26 -0800)]
ART: Fix old run scripts

The run scripts had not been updated when the central command script
was unified, so they were always choosing target mode.

Also update the run scripts so they abort when wrong options are
used.

Also strip superfluous whitespace from commands.

Change-Id: I13cc59f43734a86062fc3ce5ff4ea308c301d4d3

9 years agoMerge "Fix incorrect static const"
Mathieu Chartier [Wed, 4 Feb 2015 20:54:11 +0000 (20:54 +0000)]
Merge "Fix incorrect static const"

9 years agoFix incorrect static const
Mathieu Chartier [Wed, 4 Feb 2015 20:52:34 +0000 (12:52 -0800)]
Fix incorrect static const

Bug: 19265183
Change-Id: I573df60fe90952246d2126ced010f2bdac006bca

9 years agoMerge "ART: Pass Options should be strings instead of integers"
Andreas Gampe [Wed, 4 Feb 2015 19:21:04 +0000 (19:21 +0000)]
Merge "ART: Pass Options should be strings instead of integers"

9 years agoMerge "Fix occasional long ThreadSuspendSleep"
Mathieu Chartier [Wed, 4 Feb 2015 19:07:24 +0000 (19:07 +0000)]
Merge "Fix occasional long ThreadSuspendSleep"

9 years agoMerge "Fix a bug in the inliner."
Nicolas Geoffray [Wed, 4 Feb 2015 15:28:41 +0000 (15:28 +0000)]
Merge "Fix a bug in the inliner."

9 years agoFix a bug in the inliner.
Nicolas Geoffray [Wed, 4 Feb 2015 14:52:20 +0000 (14:52 +0000)]
Fix a bug in the inliner.

Code did not work in the presence of multiple returns.
Spotted by Mark P. Mendell.

Change-Id: I237050a0d79c0cfaa479e9b886f7450879e84713

9 years agoMerge "ART: Dump environment to cfg file."
Nicolas Geoffray [Wed, 4 Feb 2015 14:02:24 +0000 (14:02 +0000)]
Merge "ART: Dump environment to cfg file."

9 years agoART: Dump environment to cfg file.
Zheng Xu [Fri, 9 Jan 2015 06:40:47 +0000 (14:40 +0800)]
ART: Dump environment to cfg file.

Environment shows additional dependency and instructions with environment
should usually be a safepoint as well.

Change-Id: I04606624e6ea212ab1dc7502cdb87b5d5d0e3ac2

9 years agoMerge "Create HGraph outside Builder, print timings"
David Brazdil [Wed, 4 Feb 2015 13:51:17 +0000 (13:51 +0000)]
Merge "Create HGraph outside Builder, print timings"

9 years agoCreate HGraph outside Builder, print timings
David Brazdil [Fri, 23 Jan 2015 14:39:08 +0000 (14:39 +0000)]
Create HGraph outside Builder, print timings

This patch refactors the way HGraph objects are created, moving the
instantiation out of the Builder class and creating the CodeGenerator
earlier. The patch uses this to build a single interface for printing
timings info and dumping the CFG.

Change-Id: I2eb63eabf28e2d0f5cdc7affaa690c3a4b1bdd21

9 years agoMerge "Fix a bug in combination of intrinsics and kNoOutputOverlap."
Nicolas Geoffray [Wed, 4 Feb 2015 10:58:28 +0000 (10:58 +0000)]
Merge "Fix a bug in combination of intrinsics and kNoOutputOverlap."

9 years agoFix a bug in combination of intrinsics and kNoOutputOverlap.
Nicolas Geoffray [Wed, 4 Feb 2015 10:44:23 +0000 (10:44 +0000)]
Fix a bug in combination of intrinsics and kNoOutputOverlap.

In case we need to go in the slow path for an intrinsic call,
we can't have the output be the same as the input: the current
liveness analysis considers the input to be live at the point of the call.

Change-Id: I5cbdc7f50dd06b4fefcbd3c213274fa645bd3fa0

9 years agoMerge "ART: Change x86 long param ABI (Quick/JNI/Opt)"
Nicolas Geoffray [Wed, 4 Feb 2015 09:45:14 +0000 (09:45 +0000)]
Merge "ART: Change x86 long param ABI (Quick/JNI/Opt)"

9 years agoMerge "Fix test after register allocator changes."
Nicolas Geoffray [Wed, 4 Feb 2015 09:39:31 +0000 (09:39 +0000)]
Merge "Fix test after register allocator changes."

9 years agoFix test after register allocator changes.
Nicolas Geoffray [Wed, 4 Feb 2015 09:38:49 +0000 (09:38 +0000)]
Fix test after register allocator changes.

Change-Id: I22b8faf7926d33ab19033deaba77001d164abd2a

9 years agoMerge "Finally implement Location::kNoOutputOverlap."
Nicolas Geoffray [Wed, 4 Feb 2015 09:13:32 +0000 (09:13 +0000)]
Merge "Finally implement Location::kNoOutputOverlap."

9 years agoFinally implement Location::kNoOutputOverlap.
Nicolas Geoffray [Wed, 28 Jan 2015 10:20:37 +0000 (10:20 +0000)]
Finally implement Location::kNoOutputOverlap.

The [i, i + 1) interval scheme we chose for representing
lifetime positions is not optimal for doing this optimization.
It however doesn't prevent recognizing a non-split interval
during the TryAllocateFreeReg phase, and try to re-use
its inputs' registers.

Change-Id: I80a2823b0048d3310becfc5f5fb7b1230dfd8201

9 years agoFix occasional long ThreadSuspendSleep
Mathieu Chartier [Tue, 3 Feb 2015 22:26:46 +0000 (14:26 -0800)]
Fix occasional long ThreadSuspendSleep

Since usleep can wait much longer than the specified us, we use
sched_yield instead for more predictable behavior.

Bug: 18379850
Change-Id: I729212251db1e86e470240b7a042bbf2d4e981cd

9 years agoMerge "ART: checkpoint mechanism optimization"
Hiroshi Yamauchi [Tue, 3 Feb 2015 23:39:13 +0000 (23:39 +0000)]
Merge "ART: checkpoint mechanism optimization"

9 years agoART: Pass Options should be strings instead of integers
Jean-Philippe Halimi [Tue, 20 Jan 2015 09:52:43 +0000 (10:52 +0100)]
ART: Pass Options should be strings instead of integers

This patch modifies the pass options to handle string
values as well as integers. This will allow for more
verbose pass customization.

Change-Id: Iaf9507ceaae2cef317a23f0783404bacfdcad023
Signed-off-by: Jean-Philippe Halimi <jean-philippe.halimi@intel.com>
9 years agoMerge "ARM/ARM64: Dump thread offset."
Andreas Gampe [Tue, 3 Feb 2015 18:26:48 +0000 (18:26 +0000)]
Merge "ARM/ARM64: Dump thread offset."

9 years agoMerge "Inline methods with multiple blocks."
Nicolas Geoffray [Tue, 3 Feb 2015 18:12:44 +0000 (18:12 +0000)]
Merge "Inline methods with multiple blocks."

9 years agoInline methods with multiple blocks.
Nicolas Geoffray [Mon, 2 Feb 2015 18:24:11 +0000 (18:24 +0000)]
Inline methods with multiple blocks.

Change-Id: I3431af60e97fae230e0b6e98bcf0acc0ee9abf8c

9 years agoMerge "Use a different block order when not compiling baseline."
Nicolas Geoffray [Tue, 3 Feb 2015 17:20:45 +0000 (17:20 +0000)]
Merge "Use a different block order when not compiling baseline."

9 years agoUse a different block order when not compiling baseline.
Nicolas Geoffray [Tue, 3 Feb 2015 15:12:35 +0000 (15:12 +0000)]
Use a different block order when not compiling baseline.

Use the linearized order instead, as it puts blocks logically
next to each other in a better way. Also, it does not contain
dead blocks.

Change-Id: Ie65b56041a093c8155e6c1e06351cb36a4053505

9 years agoMerge "Fix build by putting ATTRIBUTE_UNUSUED."
Nicolas Geoffray [Tue, 3 Feb 2015 14:31:47 +0000 (14:31 +0000)]
Merge "Fix build by putting ATTRIBUTE_UNUSUED."

9 years agoFix build by putting ATTRIBUTE_UNUSUED.
Nicolas Geoffray [Tue, 3 Feb 2015 13:59:52 +0000 (13:59 +0000)]
Fix build by putting ATTRIBUTE_UNUSUED.

Change-Id: If894fa1343a7c8a6456d707e815d803404a171d7

9 years agoMerge "Fix thumb2 assembler's ShifterOperandCanHold."
Nicolas Geoffray [Tue, 3 Feb 2015 14:26:59 +0000 (14:26 +0000)]
Merge "Fix thumb2 assembler's ShifterOperandCanHold."

9 years agoFix thumb2 assembler's ShifterOperandCanHold.
Nicolas Geoffray [Tue, 3 Feb 2015 13:59:52 +0000 (13:59 +0000)]
Fix thumb2 assembler's ShifterOperandCanHold.

Change-Id: Ica3c5f39d52722950725ba622fc67bd7f634918a

9 years agoMerge "ART: Fix to X86Mir2Lir::GenReduceVector"
Vladimir Marko [Tue, 3 Feb 2015 12:20:44 +0000 (12:20 +0000)]
Merge "ART: Fix to X86Mir2Lir::GenReduceVector"

9 years agoMerge "Allow nested inlining."
Nicolas Geoffray [Tue, 3 Feb 2015 11:22:35 +0000 (11:22 +0000)]
Merge "Allow nested inlining."

9 years agoAllow nested inlining.
Nicolas Geoffray [Fri, 30 Jan 2015 12:41:14 +0000 (12:41 +0000)]
Allow nested inlining.

Also run optimizations before iterating over
the instructions to get rid of, e.g., null checks.

Change-Id: I6e52e61ce4d0ccb63d687afea09bb4722453bb6a

9 years agoARM/ARM64: Dump thread offset.
Zheng Xu [Tue, 3 Feb 2015 04:03:15 +0000 (12:03 +0800)]
ARM/ARM64: Dump thread offset.

Dump thread offset in compiler verbose log for arm32/arm64 and
oatdump for arm64.

Before patch :
0x4e: ldr      lr, [rSELF, #604]
After patch :
0x4e: ldr      lr, [rSELF, #604]  ; pTestSuspend

Change-Id: I514e69dc44b1cf4c8a8fa085b31f93cf6a1b7c91

9 years agoMerge "Go back to -O2."
Nicolas Geoffray [Tue, 3 Feb 2015 10:14:54 +0000 (10:14 +0000)]
Merge "Go back to -O2."

9 years agoGo back to -O2.
Nicolas Geoffray [Tue, 3 Feb 2015 10:13:27 +0000 (10:13 +0000)]
Go back to -O2.

Stack space suffers otherwise.

Change-Id: I890a9714acd8500981c3d41df0f5f7fd63d48f8f

9 years agoMerge "Revert "Revert "ART: Make 074-gc-thrash more OOME tolerant"""
Nicolas Geoffray [Tue, 3 Feb 2015 10:11:09 +0000 (10:11 +0000)]
Merge "Revert "Revert "ART: Make 074-gc-thrash more OOME tolerant"""

9 years agoRevert "Revert "ART: Make 074-gc-thrash more OOME tolerant""
Nicolas Geoffray [Tue, 3 Feb 2015 10:10:52 +0000 (10:10 +0000)]
Revert "Revert "ART: Make 074-gc-thrash more OOME tolerant""

This reverts commit ed8b53d679d46891d8d405b0ce4a48c282d872f7.

This wasn't the reason for breakage. Instead, it was the Makefile change in:
https://android-review.googlesource.com/#/c/128250/

Change-Id: Ib94870c1eccbe821e3b4945ea92ca35ca0a8a9b9

9 years agoART: checkpoint mechanism optimization
Lei Li [Mon, 2 Feb 2015 06:24:44 +0000 (14:24 +0800)]
ART: checkpoint mechanism optimization

GC thread and trim thread are both using checkpoint mechanism. GC thread
will request java threads to mark their thread roots by themselves. Trim
thread will request java threads to trim their jni local reference
tables by themselves.

The checkpint mechanism semantics is that the runnable java threads will
run checkpoint function itself at safepoint, and finally the java
threads and gc thread or trim thread is synchronized via barrier. If the
java threads are not runnable, gc thread or trim thread will suspend
them and then run their checkpoint functions one by one on behalf of
them. If all the java threads are not runnable, then gc thread or trim
thread will do all the work itself. In this case, there is no need
synchronization. This will save unnecessary synchronization and thread
state transitions.

Change-Id: If55940946cb3f8b1af42c7237c334f09c8ec7a9f

9 years agoMerge "Revert "ART: Make 074-gc-thrash more OOME tolerant""
Nicolas Geoffray [Tue, 3 Feb 2015 08:48:43 +0000 (08:48 +0000)]
Merge "Revert "ART: Make 074-gc-thrash more OOME tolerant""

9 years agoRevert "ART: Make 074-gc-thrash more OOME tolerant"
Nicolas Geoffray [Tue, 3 Feb 2015 08:48:27 +0000 (08:48 +0000)]
Revert "ART: Make 074-gc-thrash more OOME tolerant"

Redness on the boards.

This reverts commit 2f6046edd7da9bb67e30b377955ff6faa8bff67e.

Change-Id: I8e169c537aaa76e34a7027460e3e9bff6f75a581

9 years agoMerge "ART: Make 074-gc-thrash more OOME tolerant"
Andreas Gampe [Tue, 3 Feb 2015 03:36:14 +0000 (03:36 +0000)]
Merge "ART: Make 074-gc-thrash more OOME tolerant"

9 years agoMerge "ART: Fix assembler_thumb_test"
Andreas Gampe [Tue, 3 Feb 2015 03:35:31 +0000 (03:35 +0000)]
Merge "ART: Fix assembler_thumb_test"

9 years agoART: Fix assembler_thumb_test
Andreas Gampe [Tue, 3 Feb 2015 03:17:11 +0000 (19:17 -0800)]
ART: Fix assembler_thumb_test

Fix the inconsistent calls. This was bad practice, requiring that
shape meant arm32 and thumb were not interchangeable.

Also fix an error in the assembler itself for tst and teq.

Change-Id: I50242801002aa81cc17bfaa53eb8b7c1d9488fbc

9 years agoART: Make 074-gc-thrash more OOME tolerant
Andreas Gampe [Tue, 3 Feb 2015 01:44:31 +0000 (17:44 -0800)]
ART: Make 074-gc-thrash more OOME tolerant

The strong and weak array need to stay in sync. Don't set the
strong reference when the weak reference can't be allocated.

Change-Id: I6c8f245627d206d89a378099cea97e4f1cd1d9fa