OSDN Git Service
buzbee [Sat, 19 Apr 2014 20:32:20 +0000 (13:32 -0700)]
Update load/store utilities for 64-bit backends
This CL replaces the typical use of LoadWord/StoreWord
utilities (which, in practice, were 32-bit load/store) in
favor of a new set that make the size explicit. We now have:
LoadWordDisp/StoreWordDisp:
32 or 64 depending on target. Load or store the natural
word size. Expect this to be used infrequently - generally
when we know we're dealing with a native pointer or flushed
register not holding a Dalvik value (Dalvik values will flush
to home location sizes based on Dalvik, rather than the target).
Load32Disp/Store32Disp:
Load or store 32 bits, regardless of target.
Load64Disp/Store64Disp:
Load or store 64 bits, regardless of target.
LoadRefDisp:
Load a 32-bit compressed reference, and expand it to the
natural word size in the target register.
StoreRefDisp:
Compress a reference held in a register of the natural word
size and store it as a 32-bit compressed reference.
Change-Id: I50fcbc8684476abd9527777ee7c152c61ba41c6f
Ian Rogers [Fri, 18 Apr 2014 23:23:04 +0000 (23:23 +0000)]
Merge "Get instruction-set/features from build/core/config.mk"
Ian Rogers [Fri, 18 Apr 2014 22:40:37 +0000 (15:40 -0700)]
Get instruction-set/features from build/core/config.mk
Depends upon https://android-review.googlesource.com/#/c/91524
Change-Id: Iad1a1b0499aac7acf7c4e42b62bb3fe4474e2f47
Christopher Ferris [Fri, 18 Apr 2014 22:44:14 +0000 (22:44 +0000)]
Merge "Modify unwind to comply with stack parser tools."
Christopher Ferris [Thu, 17 Apr 2014 02:13:59 +0000 (19:13 -0700)]
Modify unwind to comply with stack parser tools.
Bug:
14081592
Change-Id: I6906b2575c74d64f1c3ba7602779b3a789de1c69
Brian Carlstrom [Fri, 18 Apr 2014 22:05:59 +0000 (22:05 +0000)]
Merge "Fixing missing newlines in Usage calls"
Brian Carlstrom [Fri, 18 Apr 2014 21:18:41 +0000 (14:18 -0700)]
Fixing missing newlines in Usage calls
Change-Id: Ie5f1098dc7b3c485732bff929d36dbcc4b69511f
Mathieu Chartier [Fri, 18 Apr 2014 21:07:44 +0000 (21:07 +0000)]
Merge "Fix ForegroundHeapGrowthMultiplier and ParseDouble."
Mathieu Chartier [Fri, 18 Apr 2014 19:02:39 +0000 (12:02 -0700)]
Fix ForegroundHeapGrowthMultiplier and ParseDouble.
ForegroundHeapGrowthMultiplier had a bad range of allowed values.
The new range is 0.1 - 10.0 instead of 0.1 to 0.9. ParseDouble usage
had incorrect printing var args and caused segfaults.
Change-Id: I4573005ee9f888cc8140200543176d6a2e17fccc
Mathieu Chartier [Fri, 18 Apr 2014 18:27:49 +0000 (18:27 +0000)]
Merge "Replace ObjectSet with LargeObjectBitmap."
Andreas Gampe [Fri, 18 Apr 2014 17:11:36 +0000 (17:11 +0000)]
Merge "Fix elf_writer_test for 64b target"
Andreas Gampe [Fri, 18 Apr 2014 17:00:40 +0000 (10:00 -0700)]
Fix elf_writer_test for 64b target
The path to the core oat file is dependent on the bit-ness.
Change-Id: I725b9b0f760ae14d0c38d747ad31821da7445dec
Sebastien Hertz [Fri, 18 Apr 2014 06:45:02 +0000 (06:45 +0000)]
Merge "Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException.""
Brian Carlstrom [Fri, 18 Apr 2014 06:11:17 +0000 (23:11 -0700)]
Revert "Use LIRSlowPath for throwing ArrayOutOfBoundsException."
This reverts commit
9d46314a309aff327f9913789b5f61200c162609.
Ian Rogers [Fri, 18 Apr 2014 05:50:59 +0000 (05:50 +0000)]
Merge "Fix a use of OpCondBranch that breaks the MIPS build."
Mathieu Chartier [Wed, 16 Apr 2014 16:48:48 +0000 (09:48 -0700)]
Replace ObjectSet with LargeObjectBitmap.
Speeds up large object marking since large objects no longer required
a lock. Changed the GCs to use the heap bitmap for marking objects
which aren't in the fast path. This eliminates the need for a
MarkLargeObject function.
Maps before (10 GC iterations):
Mean partial time: 180ms
Mean sticky time: 151ms
Maps after:
Mean partial time: 161ms
Mean sticky time: 101ms
Note: the GC durations are long due to recent ergonomic changes and
because the fast bulk free hasn't yet been enabled. Over 50% of the
GC time is spent in RosAllocSpace::FreeList.
Bug:
13571028
Change-Id: Id8f94718aeaa13052672ccbae1e8edf77d653f62
Mingyao Yang [Fri, 18 Apr 2014 01:46:24 +0000 (18:46 -0700)]
Fix a use of OpCondBranch that breaks the MIPS build.
Change-Id: I09e19cb00c1e3f4bc0b0293f58674c9160094f7f
Mingyao Yang [Fri, 18 Apr 2014 00:18:27 +0000 (00:18 +0000)]
Merge "Use LIRSlowPath for throwing ArrayOutOfBoundsException."
Ian Rogers [Fri, 18 Apr 2014 00:18:10 +0000 (00:18 +0000)]
Merge "Interpreter-only mode should cause dex-to-dex compilation."
Ian Rogers [Thu, 17 Apr 2014 23:40:01 +0000 (16:40 -0700)]
Interpreter-only mode should cause dex-to-dex compilation.
Also, fix quick iget/iput that had similar issues to:
https://android-review.googlesource.com/91423
Also, remove fall-back resolution code from quick invokes/igets/iputs as we
allow class loading for the exception throw and regular verification already
allows class loading.
Bug:
14133618
Change-Id: I51199e6e2392da0354f64b157e79af494c183778
Ian Rogers [Thu, 17 Apr 2014 23:38:39 +0000 (23:38 +0000)]
Merge "Comment disallow new monitors."
Ian Rogers [Thu, 17 Apr 2014 23:08:07 +0000 (16:08 -0700)]
Comment disallow new monitors.
Change-Id: Ie50424c73be051f9856ef9e86bdbf83fa76bbc48
Mathieu Chartier [Thu, 17 Apr 2014 23:06:26 +0000 (23:06 +0000)]
Merge "Use non volatile lock words in semispace collector."
Mathieu Chartier [Thu, 17 Apr 2014 21:43:39 +0000 (14:43 -0700)]
Use non volatile lock words in semispace collector.
GSS FormulaEvaluationActions.EvaluateAndApplyChanges:
Before GC time: 9.1s
After GC time: 7.98s
Fixed timing logger errors.
Change-Id: I4193c6ccbbbe7a7220dfaabbf3472a5dcebae616
Mingyao Yang [Thu, 17 Apr 2014 22:22:09 +0000 (15:22 -0700)]
Use LIRSlowPath for throwing ArrayOutOfBoundsException.
Get rid of launchpads for throwing ArrayOutOfBoundsException
and use LIRSlowPath instead.
Bug:
13170824
Change-Id: I0e27f7a261a6a7fb5c0645e6113a957e098f699e
Ian Rogers [Thu, 17 Apr 2014 21:57:26 +0000 (21:57 +0000)]
Merge "Add untested x86-64 downcall and exception assembly."
Andreas Gampe [Thu, 17 Apr 2014 21:10:52 +0000 (21:10 +0000)]
Merge "Fix a class-loading bug in the verifier when throwing NPE"
Andreas Gampe [Thu, 17 Apr 2014 19:28:43 +0000 (12:28 -0700)]
Fix a class-loading bug in the verifier when throwing NPE
When throwing an NPE for invocation, we try to resolve the class of
the method being called. When in the interpreter and having quickened
code, that failed.
Bug:
14133618
Change-Id: I4964b908bb26a82a12263fb86f5dc39c9042479b
Mingyao Yang [Thu, 17 Apr 2014 17:31:48 +0000 (17:31 +0000)]
Merge "Use LIRSlowPath for throwing NPE."
Ian Rogers [Thu, 17 Apr 2014 00:33:27 +0000 (17:33 -0700)]
Add untested x86-64 downcall and exception assembly.
Change-Id: Ic555f9f5af8c3a2110a92e55772ff6c0128e5c19
Bill Buzbee [Thu, 17 Apr 2014 17:10:45 +0000 (17:10 +0000)]
Merge "String.IndexOf method handles negative start index value in incorrect way"
Nicolas Geoffray [Thu, 17 Apr 2014 14:17:09 +0000 (14:17 +0000)]
Merge "Code cleanup in preparation for x64 backend."
Nicolas Geoffray [Thu, 17 Apr 2014 13:56:23 +0000 (14:56 +0100)]
Code cleanup in preparation for x64 backend.
- Use InvokeDexCallingConventionVisitor for setting
up HParameterValues
- Use kVregSize instead of kX86WordSize when dealing with
virtual registers.
Change-Id: Ia520223010194c70a3ff0ed659077f55cec4e7d8
Nicolas Geoffray [Thu, 17 Apr 2014 13:23:49 +0000 (13:23 +0000)]
Merge "Simplify HInvokeStatic code generation."
Nicolas Geoffray [Wed, 16 Apr 2014 16:38:32 +0000 (17:38 +0100)]
Simplify HInvokeStatic code generation.
HPushArgument is not needed for now (but might be when we start
optimizing). Also, calling convention for 64bits backend will
require to know more about the argument than the argument's
index. Therefore currently let HInvokeStatic setup the arguments,
which is possible because arguments of a calls are virtual registers
and not instructions.
Change-Id: I8753ed6083aa083c5180ab53b436dc8de4f1fe31
Alexei Zavjalov [Wed, 16 Apr 2014 18:55:43 +0000 (01:55 +0700)]
String.IndexOf method handles negative start index value in incorrect way
The standard implementation of String.IndexOf converts the negative value of
the start index to 0 and searching will start from the beginning of the string.
But current implementation may start searching from the incorrect memory
offset, that can lead to sigsegv or return incorrect result.
This patch adds the handler for cases when fromIndex is negative.
Change-Id: I3ac86290712789559eaf5e46bef0006872395bfa
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
Ian Rogers [Thu, 17 Apr 2014 00:13:27 +0000 (00:13 +0000)]
Merge "Preparation for transition to libc++."
Ian Rogers [Wed, 16 Apr 2014 23:34:44 +0000 (16:34 -0700)]
Preparation for transition to libc++.
Move the dependency on libc++ to its own makefile so that we can switch in a
single place between libc++ and stlport.
Change-Id: Ie61e7d054dcd049e36d5e7298c27d8a4abe6edf7
Brian Carlstrom [Wed, 16 Apr 2014 22:19:47 +0000 (22:19 +0000)]
Merge "Disable another timing sensitive test on dist builds"
Andreas Gampe [Wed, 16 Apr 2014 22:17:24 +0000 (22:17 +0000)]
Merge "Build dex2oat as 64b for the target when using zygote64"
Brian Carlstrom [Wed, 16 Apr 2014 22:12:45 +0000 (15:12 -0700)]
Disable another timing sensitive test on dist builds
Change-Id: I1c0dc16ff22b23dbd238cbeba3f4c078c3ffeaed
Ian Rogers [Wed, 16 Apr 2014 22:08:29 +0000 (22:08 +0000)]
Merge "Fix volatile wide put/get to be atomic on x86 arch"
Yevgeny Rouban [Wed, 16 Apr 2014 11:13:10 +0000 (18:13 +0700)]
Fix volatile wide put/get to be atomic on x86 arch
Current implementation puts memory barriers for volatile fields.
Volatile semantics needs atomicity, which are not guaranteed by memory barriers.
The patch forces all wide volatile fields to be loaded/stored using
xmm registers.
Change-Id: Ie78e186d13ffa237e6e93747b71d26651fa02866
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
Andreas Gampe [Wed, 16 Apr 2014 22:03:11 +0000 (15:03 -0700)]
Build dex2oat as 64b for the target when using zygote64
In single-zygote 64b builds we should build dex2oat as 64b to
avoid installd issues
Change-Id: I5f281d90fbd44abbca4182e39162b184be9f1b35
Mathieu Chartier [Wed, 16 Apr 2014 22:01:38 +0000 (22:01 +0000)]
Merge "Decrease target utilization for foreground apps."
Mingyao Yang [Tue, 8 Apr 2014 18:02:52 +0000 (11:02 -0700)]
Use LIRSlowPath for throwing NPE.
Get rid of launchpads for throwing NPE and use LIRSlowPath instead.
Also clean up some code of using LIRSlowPath for checking div
by zero.
Bug:
13170824
Change-Id: I0c20a49c39feff3eb1f147755e557d9bc0ff15bb
Mathieu Chartier [Tue, 15 Apr 2014 22:37:02 +0000 (15:37 -0700)]
Decrease target utilization for foreground apps.
GC time in FormulaEvaluationActions.EvaluateAndApplyChanges goes from
26.1s to 23.2s. Benchmark score goes down ~50 in
FormulaEvaluationActions.EvaluateAndApplyChanges, and up ~50 in
GenericCalcActions.MemAllocTest.
Bug:
8788501
Change-Id: I412af1205f8b67e70a12237c990231ea62167bc0
Ian Rogers [Wed, 16 Apr 2014 19:14:21 +0000 (19:14 +0000)]
Merge "Fix thread join hangs"
Andreas Gampe [Wed, 16 Apr 2014 18:35:07 +0000 (18:35 +0000)]
Merge "Fix typo in ISA centralization"
Andreas Gampe [Wed, 16 Apr 2014 18:23:27 +0000 (11:23 -0700)]
Fix typo in ISA centralization
X86 needs sign-extension.
Change-Id: I1253fbc9aa0e732e37b976a0723ec89155e7e2e7
Andreas Gampe [Wed, 16 Apr 2014 15:18:13 +0000 (15:18 +0000)]
Merge "Centralize instruction-set pointer-size, alignment, 64b-width code in instruction_set.h/cc"
Nicolas Geoffray [Wed, 16 Apr 2014 13:22:37 +0000 (13:22 +0000)]
Merge "Long support in optimizing compiler."
Nicolas Geoffray [Fri, 11 Apr 2014 16:43:50 +0000 (17:43 +0100)]
Long support in optimizing compiler.
- Add stack locations to the Location class.
- Change logic of parameter passing/setup by setting the
location of such instructions the ones for the calling
convention.
Change-Id: I4730ad58732813dcb9c238f44f55dfc0baa18799
Yevgeny Rouban [Wed, 16 Apr 2014 11:26:09 +0000 (18:26 +0700)]
Fix thread join hangs
Current implementation notifies only one of joining threads on thread exit.
This causes the other joining threads to hang.
This patch notifies all joining threads: just call NotifyAll() instead of Notify().
Change-Id: If75f101d3d3d876f1aa7dcf537e56a37cc347803
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
Sebastien Hertz [Wed, 16 Apr 2014 10:10:28 +0000 (10:10 +0000)]
Merge "Disable JDWP field watchpoint capabilities"
Sebastien Hertz [Wed, 16 Apr 2014 10:03:00 +0000 (12:03 +0200)]
Disable JDWP field watchpoint capabilities
We do not fully support field watchpoint yet. We can only enable these
capabilities when we do report these events.
Bug:
8267708
Change-Id: I07ccf7ddffdd26e143b7fb0f13ebe030d75e8491
Sebastien Hertz [Wed, 16 Apr 2014 08:08:11 +0000 (08:08 +0000)]
Merge "Allow use of instance filter for JDWP events"
Sebastien Hertz [Wed, 16 Apr 2014 07:29:10 +0000 (07:29 +0000)]
Merge "Fix JDWP count event modifier"
Mathieu Chartier [Tue, 15 Apr 2014 21:51:48 +0000 (21:51 +0000)]
Merge "Less confusing heap transition message."
Mathieu Chartier [Tue, 15 Apr 2014 19:40:17 +0000 (12:40 -0700)]
Less confusing heap transition message.
The heap transition message now just says how long the transition
took and up to how much memory was saved (it can still be negative).
Change-Id: If421dcc2aa9cc40740b858dcc2ff1b8e595f9a40
Mathieu Chartier [Tue, 15 Apr 2014 19:17:01 +0000 (19:17 +0000)]
Merge "Don't call SetFootprintLimit in CreateZygoteSpace."
Mathieu Chartier [Tue, 15 Apr 2014 19:01:58 +0000 (12:01 -0700)]
Don't call SetFootprintLimit in CreateZygoteSpace.
Since SetFootprintLimit uses the allocators accounting it can set a
word inside of the zygote space mem map. This was causing issues
since it was occasionally clobbering one of the object classes. This
occured since we compact objects into the space which was used by the
allocator's internal accounting during zygote bin packing.
Also addressed some TODO.
Bug:
14056343
Change-Id: I9fc5a61174fa141c0f44d0ed0ae0cc6d77cb4e0a
Sebastien Hertz [Fri, 11 Apr 2014 10:07:41 +0000 (12:07 +0200)]
Allow use of instance filter for JDWP events
Bug:
13922844
Change-Id: Ic4e6d7af7c80928c25417db5f43049614d225c97
Sebastien Hertz [Tue, 15 Apr 2014 14:03:27 +0000 (16:03 +0200)]
Fix JDWP count event modifier
Bug:
14053614
Change-Id: I736f6d6802e58e7a4fb29d0558bdd2abd3b2a48e
Sebastien Hertz [Tue, 15 Apr 2014 06:43:14 +0000 (06:43 +0000)]
Merge "Prepare field watchpoint support"
Sebastien Hertz [Fri, 4 Apr 2014 15:50:18 +0000 (17:50 +0200)]
Prepare field watchpoint support
Adds field read/write events in the instrumentation. The debugger now registers
as a listener for these events so JDWP field access and field modification
events can be reported.
This CL will be followed by another one to report these events from the
interpreter. Therefore no JDWP field access and field modification events
can be sent for now.
Bug:
8267708
Change-Id: If2a93eb590805567d69015c83cce9cd2ab712cbd
Sebastien Hertz [Tue, 15 Apr 2014 06:29:54 +0000 (06:29 +0000)]
Merge "Clear unused roots from debugger"
Sebastien Hertz [Tue, 15 Apr 2014 06:29:43 +0000 (06:29 +0000)]
Merge "Deduplicate code starting JDWP thread"
Mathieu Chartier [Mon, 14 Apr 2014 23:51:15 +0000 (23:51 +0000)]
Merge "Fix clang build."
Mathieu Chartier [Mon, 14 Apr 2014 22:52:08 +0000 (15:52 -0700)]
Fix clang build.
Change-Id: Iaf0b76cfc02bac5f49ab98d494db9a774211f453
Ian Rogers [Mon, 14 Apr 2014 22:26:07 +0000 (22:26 +0000)]
Merge "art_quick_unlock_object uses comparison incorrectly"
Mathieu Chartier [Mon, 14 Apr 2014 19:02:50 +0000 (19:02 +0000)]
Merge "Refactor space bitmap to support different alignments."
Mathieu Chartier [Mon, 14 Apr 2014 19:02:30 +0000 (19:02 +0000)]
Merge "Reduce bump pointer space capacity."
Mathieu Chartier [Mon, 14 Apr 2014 18:30:39 +0000 (11:30 -0700)]
Reduce bump pointer space capacity.
Bug:
14058912
Change-Id: I7ae53e667539530d56ca2f5d10214e69c9c994e2
Brian Carlstrom [Mon, 14 Apr 2014 18:44:19 +0000 (18:44 +0000)]
Merge "Recognize and ignore options '-ea' and '-da'"
Andreas Gampe [Fri, 11 Apr 2014 19:07:48 +0000 (12:07 -0700)]
Centralize instruction-set pointer-size, alignment, 64b-width code
in instruction_set.h/cc
This allows to clean up some places that currently make explicit
comparisons.
Change-Id: I0dcc924c52fa53306f706aceea93a2d4a655c5df
Yevgeny Rouban [Mon, 24 Mar 2014 04:31:24 +0000 (11:31 +0700)]
Recognize and ignore options '-ea' and '-da'
-ea:<package or class> and -da:<package or class> options are ignored.
This patch just adds -ea and -da options without any package or
class specified.
Change-Id: Ide04b8eacb1b2edb415328130bc12e05dc3ddc7b
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
Mathieu Chartier [Wed, 9 Apr 2014 21:51:05 +0000 (14:51 -0700)]
Refactor space bitmap to support different alignments.
Required for:
Using space bitmaps instead of std::set in mod union table +
remembered set.
Using a bitmap instead of set for large object marking.
Bug:
13571028
Change-Id: Id024e9563d4ca4278f79607cdb2f81895121b113
Sebastien Hertz [Mon, 14 Apr 2014 12:38:24 +0000 (14:38 +0200)]
Deduplicate code starting JDWP thread
Also waits for thread_start_cond_ in a loop and removes needless mutex lock in
JdwpState::Run when checking thread state.
Change-Id: I6fca2151b5343b2906e9fa3b439029e6ad5b086d
Sebastien Hertz [Mon, 14 Apr 2014 09:59:08 +0000 (11:59 +0200)]
Clear unused roots from debugger
SingleStepControl and DebugInvokeReq hold roots which are only used during a
limited amount of time. Clear these roots once we finish using them.
Also cleans some code around single-step.
Change-Id: Ica2f65e04a4d60272199490cd40ad1803d3b9f02
Mathieu Chartier [Sat, 12 Apr 2014 01:09:46 +0000 (01:09 +0000)]
Merge "Fix hammerhead phone boot on master."
Mathieu Chartier [Sat, 12 Apr 2014 01:06:01 +0000 (18:06 -0700)]
Fix hammerhead phone boot on master.
Wasn't failing on AOSP.
Change-Id: I8e531bf7493d36dc2667afeaf3133ce8560a2ce1
Mathieu Chartier [Sat, 12 Apr 2014 00:16:55 +0000 (00:16 +0000)]
Merge "Fix heap verification with SS/GSS."
Mathieu Chartier [Fri, 11 Apr 2014 23:42:46 +0000 (16:42 -0700)]
Fix heap verification with SS/GSS.
Since I had removed the SwapSemiSpaces it was trying to verify
references in the from space of the semispace collector, which isn't
necessarily valid.
Bug:
13989162
Change-Id: I8e0b7119a1a53d63f2c71ecdb276290eda5bae07
Hiroshi Yamauchi [Fri, 11 Apr 2014 22:43:08 +0000 (22:43 +0000)]
Merge "Fix an occasional ThreadStress crash."
Mathieu Chartier [Fri, 11 Apr 2014 22:40:43 +0000 (22:40 +0000)]
Merge "Clean-up heap spaces."
Hiroshi Yamauchi [Fri, 11 Apr 2014 22:31:09 +0000 (15:31 -0700)]
Fix an occasional ThreadStress crash.
Also, fix the NativeAllocations test for the case with the GSS
collector as the default GC. Since kGcCauseForAlloc (incorrect) was
being passed into the collector instead of kGcCauseForNativeAlloc
(correct) from Heap::RegisterNativeAllocation(), the GCC collector
never invoked a whole heap collection which was necessary to do
sufficent finalizations to pass the test.
Bug:
13988451
Bug:
11650816
Change-Id: Ib02f061751cd777e0d3bfa81b29e04a874dc58a0
Mathieu Chartier [Tue, 8 Apr 2014 21:40:03 +0000 (14:40 -0700)]
Clean-up heap spaces.
We now use the CMS collector instead of the semispace collector when
the phone is booting. We still perform compaction during the zygote
space creation. This reduces time spent in GC by ~2s during boot
and doesn't affect zygote space size.
Changed the space creation logic to create the temp space when a
background transition occurs.
Added a flag to each space which is true if you are allowed to
move objects that are within this space.
Removed SwapSemiSpaces call from the semi space collector, it is now
the job of the caller to do this with threads suspended. This
simplifies the logic in the zygote compaction / heap transition code
since these do not copy from one semispace to another.
Added Space::Clear to RosAllocSpace and DlMallocSpace. This greatly
simplifies the code used for collector transitions.
Time spent in GC creating zygote space:
Before: 3.4s, After: 1.28s
No change in zygote space size.
Bug:
13878055
Change-Id: I700348ab7d5bf3aa537c0cd70c0fed09aa4b0623
Andreas Gampe [Fri, 11 Apr 2014 14:22:52 +0000 (14:22 +0000)]
Merge "AArch64: List arm64 as instruction set option"
Stuart Monteith [Fri, 11 Apr 2014 10:16:58 +0000 (11:16 +0100)]
AArch64: List arm64 as instruction set option
When arm64 was added to dex2oat, it wasn't added to the list of
instruction sets in the help text. This adds it.
Change-Id: I9ffecb67a053b24ad624effd1853ff47331d2e91
Signed-off-by: Stuart Monteith <stuart.monteith@arm.com>
Mathieu Chartier [Fri, 11 Apr 2014 01:22:08 +0000 (01:22 +0000)]
Merge "Prevent deadlocks in Runtime::Abort."
Mathieu Chartier [Fri, 11 Apr 2014 01:06:32 +0000 (18:06 -0700)]
Prevent deadlocks in Runtime::Abort.
If we have the threads suspended, attempting to use a
ScopedObjectAccess causes a deadlock. We now specifically avoid this
to prevent deadlocks.
Bug:
13747880
Change-Id: I45fd3fff917da98b22970e5351a9e25b143a4eed
Andreas Gampe [Fri, 11 Apr 2014 00:15:54 +0000 (00:15 +0000)]
Merge "AArch64: Jni compiler fixes"
Serban Constantinescu [Wed, 9 Apr 2014 17:39:10 +0000 (18:39 +0100)]
AArch64: Jni compiler fixes
This patch fixes some of the issues with the ARM64 assembler and JNI
compiler.
The JNI compiler is not enabled by default, yet. To enable, change
line 1884 in compiler/driver/compiler_driver.cc, removing kArm64 from
the GenericJNI list.
The compiler passes all tests in jni_compiler_test.
Also change the common_compiler_test instruction-set-features logic.
We allow tests when the build-time features are a subset of the
runtime features.
Dex2oat cross-compiling is now working. A 32b version of dex2oat should
be able to compile correctly.
Change-Id: I51d1c24f2c75d4397a11c54724a8b277ff3b3df8
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Hiroshi Yamauchi [Thu, 10 Apr 2014 22:54:57 +0000 (22:54 +0000)]
Merge "Insert read barriers in more places."
Hiroshi Yamauchi [Thu, 10 Apr 2014 19:46:22 +0000 (12:46 -0700)]
Insert read barriers in more places.
Bug:
12687968
Change-Id: If3ffca4741e039f314ac848551c481d44cbcd3ca
Mathieu Chartier [Thu, 10 Apr 2014 21:48:33 +0000 (21:48 +0000)]
Merge "Fix race condition in TransitionCollector."
Dave Allison [Thu, 10 Apr 2014 21:20:57 +0000 (21:20 +0000)]
Merge "Fix problem with empty profiles."
Dave Allison [Thu, 10 Apr 2014 20:06:10 +0000 (13:06 -0700)]
Fix problem with empty profiles.
This fixes an issue where a profile file was created by the installer
but never written by the runtime. This happens when profiles are off.
This caused the compiler to think that there are no methods worthy
of compilation and skipped everything.
Bug:
13960166
Change-Id: I4c4598d4746218e21ca949112071dc1424d7d1f9
Mathieu Chartier [Thu, 10 Apr 2014 17:56:55 +0000 (10:56 -0700)]
Fix race condition in TransitionCollector.
There was a race condition where if multiple threads were calling
TransitionCollector it could cause a crash due to an invalid
collector transition if another thread did the collector transition
before the SuspendAll.
Bug:
13929101
Change-Id: I8c162a83c1f53d0cbdefab62b0a5bcbb151d6c42