OSDN Git Service
Ian Rogers [Wed, 11 Jun 2014 17:29:23 +0000 (17:29 +0000)]
Merge "Remove deprecated WITH_HOST_DALVIK."
Ian Rogers [Fri, 6 Jun 2014 03:48:42 +0000 (20:48 -0700)]
Remove deprecated WITH_HOST_DALVIK.
Bug:
13751317
Fix the Mac build:
- disable x86 selector removal that causes OS/X 10.9 kernel panics,
- madvise don't need does zero memory on the Mac, factor into MemMap
routine,
- switch to the elf.h in elfutils to avoid Linux kernel dependencies,
- we can't rely on exclusive_owner_ being available from other pthread
libraries so maintain our own when futexes aren't available (we
can't rely on the OS/X 10.8 hack any more),
- fix symbol naming in assembly code,
- work around C library differences,
- disable backtrace in DumpNativeStack to avoid a broken libbacktrace
dependency,
- disable main thread signal handling logic,
- align the stack in stub_test,
- use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables.
Not all host tests are passing on the Mac with this change. dex2oat
works as does running HelloWorld.
Change-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3
Ian Rogers [Tue, 10 Jun 2014 23:56:41 +0000 (23:56 +0000)]
Merge "Workaround frame size issues."
Ian Rogers [Tue, 10 Jun 2014 23:31:03 +0000 (16:31 -0700)]
Workaround frame size issues.
x86 and x86-64 are exceeding the frame size for the switch interpreter.
The SOMETIMES_INLINE hack doesn't work with GCC as inline and the noinline
attribute are mutually exclusive. As a temporary solution move the effected
code to the the interpreter_common.cc file.
Bug:
14882674
Change-Id: Id5383ef5436046b36565cd1d76de8e3d59f42cff
Ian Rogers [Tue, 10 Jun 2014 23:34:42 +0000 (23:34 +0000)]
Merge "X86_64: Proper IMT fix"
Brian Carlstrom [Tue, 10 Jun 2014 23:21:40 +0000 (23:21 +0000)]
Merge "Fix for test-art-host"
Brian Carlstrom [Tue, 10 Jun 2014 22:42:52 +0000 (15:42 -0700)]
Fix for test-art-host
Courtesy of dallison@
Change-Id: I160a5c84c176f22168bf236899349b6087494807
Sebastien Hertz [Wed, 11 Jun 2014 12:32:31 +0000 (12:32 +0000)]
Merge "Fix exception reporting from interpreter"
Sebastien Hertz [Fri, 23 May 2014 06:59:42 +0000 (08:59 +0200)]
Fix exception reporting from interpreter
To comply with JDWP exception report rules, we must report an exception at the
location of the throw (or the first instruction encountered after a native
call). To do this, we use the CatchLocationFinder visitor to look for a catch
handler until we reach a native frame or the top frame.
Because interpreter handles pending exception on a method-by-method basis, we
need a flag to remember we already reported the exception and avoid reporting
it multiple times when unwinding methods. The drawback is we need to maintain
the state of this flag. We clear it when the exception is cleared. In the case
we temporarily clear the exception (when finding a catch handler for instance),
we restore the flag to its previous value at the same time we restore the
pending exception.
Bump oat version to force recompilation because we modify Thread offsets.
Bug:
14402770
Change-Id: Ic059c58f80b2023b118038301f8f0a24f1e18241
Andreas Gampe [Wed, 11 Jun 2014 05:15:19 +0000 (05:15 +0000)]
Merge "ART: Fix MIPS build"
Andreas Gampe [Wed, 11 Jun 2014 04:57:00 +0000 (21:57 -0700)]
ART: Fix MIPS build
Wrong name for an assembly file. Also, registers need $ prefix
in our assembler.
Change-Id: Ic2d5961ec7d0c8e65ca5b27d681487da847c9065
Andreas Gampe [Wed, 11 Jun 2014 03:13:42 +0000 (03:13 +0000)]
Merge "ART: Move __memcmp16 from Bionic to ART"
Andreas Gampe [Tue, 10 Jun 2014 23:10:56 +0000 (16:10 -0700)]
ART: Move __memcmp16 from Bionic to ART
Handle __memcmp16 / MemCmp16 in ART. Import assembly implementations
for arm and mips from Bionic. Use a generic C version for all other
platforms.
Removes the memcmp16 quick entrypoint, as it is never used. Bump
the oat version and update thread.cc and checks to reflect the
structural change.
Change-Id: I54a5a1da2a0a43ef271c8aeda0bf2276b8b11ac6
Mark Mendell [Tue, 10 Jun 2014 14:21:29 +0000 (10:21 -0400)]
X86_64: Proper IMT fix
Unfortunately, 97184: X86_64: Pass 'hidden method index' in EAX wasn't
correct. TargetReg(kInvokeTgt) is ALSO EAX, and so invoke-interface
blows up, since the saved index is overwritten by the generated code.
Change kInvokeTgt to EDI (the same as ARG0).
Change-Id: I4b1d260237274ee26b9283d810d1b74484ea59af
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Ying Wang [Tue, 10 Jun 2014 20:31:29 +0000 (20:31 +0000)]
Merge "Use HOST_LIBRARY_PATH to access host shared libraries."
Ying Wang [Tue, 10 Jun 2014 19:06:16 +0000 (12:06 -0700)]
Use HOST_LIBRARY_PATH to access host shared libraries.
With multilib host build, the build system installs host
shared libraries to different directories depending on a
library's bitness:
- HOST_OUT_SHARED_LIBRARIES points to the library path of 64-bit;
- 2ND_HOST_OUT_SHARED_LIBRARIES points to the library path of 32-bit;
- If you don't care the bitness of the libraries and just want whatever
version the librareies are built by default, use HOST_LIBRARY_PATH.
Bug:
13751317
Change-Id: I58a7ca5988d89b8619a804913461723719c9a873
Mathieu Chartier [Tue, 10 Jun 2014 18:21:32 +0000 (18:21 +0000)]
Merge "Change MethodHelper to use a Handle."
Andreas Gampe [Tue, 10 Jun 2014 18:03:26 +0000 (18:03 +0000)]
Merge "ART: Add instrumentation stubs for ARM64 and X86-64"
Mathieu Chartier [Tue, 10 Jun 2014 17:37:50 +0000 (17:37 +0000)]
Merge "Reduced frequency of blocks for concurrent gc"
Fred Shih [Mon, 9 Jun 2014 22:19:54 +0000 (15:19 -0700)]
Reduced frequency of blocks for concurrent gc
Immediately return for references that are marked before reference
processing without blocking. Soft references are kept in the queue until
the reference processor stops preserving, after which, all marked
references are removed. Finalizer references will still block on get().
Bug:
15471830
Change-Id: I588fcaef40b79ed7c95a4aa7f4fc2e17ee0c288f
Andreas Gampe [Tue, 10 Jun 2014 17:01:46 +0000 (17:01 +0000)]
Merge "ART: Generalize code to find PC for artInvokeInterfaceTrampoline"
Alexei Zavjalov [Thu, 15 May 2014 09:02:46 +0000 (16:02 +0700)]
ART: Generalize code to find PC for artInvokeInterfaceTrampoline
This allows to determine target method when the interface method has
no dex index, now also for X86-64 and ARM64.
Add constexpr functions to callee_save_frame.h to have compile-time
sizes of callee-save frames. Add a test that ensures they agree
with computations by the corresponding ArtMethod methods.
Move some instruction-set functions into the header file to allow
inlining them. Move arch-specific pointer sizes and alignment sizes
out of globals.h to instruction_set.h to reduce dependencies.
Change-Id: I2997592c7dd1f4dd2bd497522c64bd235ae615a6
Signed-off-by: Alexei Zavjalov <alexei.zavjalov@intel.com>
Vladimir Marko [Tue, 10 Jun 2014 15:59:23 +0000 (15:59 +0000)]
Merge "Round up arena allocations to 8 bytes."
Ian Rogers [Tue, 10 Jun 2014 15:04:51 +0000 (15:04 +0000)]
Merge "Remove TARGET_REX_SUPPORT define."
Ian Rogers [Tue, 10 Jun 2014 07:09:42 +0000 (00:09 -0700)]
Remove TARGET_REX_SUPPORT define.
Change-Id: I1c3644176c101064261d13b50484d2e3ae456316
Vladimir Marko [Tue, 10 Jun 2014 13:47:51 +0000 (14:47 +0100)]
Round up arena allocations to 8 bytes.
Prevent SIGBUS/BUS_ADRALN when we use the arena for classes
with 64-bit alignment.
Change-Id: I5382ed7072fcfb2349f61558e1fd8257315ee336
Narayan Kamath [Tue, 10 Jun 2014 11:03:14 +0000 (11:03 +0000)]
Merge "Add locking around boot image generation."
Narayan Kamath [Mon, 9 Jun 2014 15:50:19 +0000 (16:50 +0100)]
Add locking around boot image generation.
If zygote aborts due to an error, it will restart and
spawn another dex2oat process while the old one is still
running. If this happens fast enough, the system will
eventually need a kernel reboot since neither the zygote
nor dex2oat are killable.
This brings boot image generation in line with dex2oat
generation, which uses a similar pattern of advisory
locking.
bug:
15415316
Change-Id: Iaccd274d3d96ab002b04e246ec4b3ef9a422ff7c
Nicolas Geoffray [Tue, 10 Jun 2014 09:54:07 +0000 (09:54 +0000)]
Merge "Plug code generator into liveness analysis."
Nicolas Geoffray [Mon, 9 Jun 2014 14:02:22 +0000 (15:02 +0100)]
Plug code generator into liveness analysis.
Also implement spill slot support.
Change-Id: If5e28811e9fbbf3842a258772c633318a2f4fafc
Nicolas Geoffray [Tue, 10 Jun 2014 08:26:04 +0000 (08:26 +0000)]
Merge "Add a type propagation phase after building SSA."
Ian Rogers [Tue, 10 Jun 2014 06:35:22 +0000 (06:35 +0000)]
Merge "X86_64: Pass 'hidden method index' in EAX"
Ian Rogers [Tue, 10 Jun 2014 05:52:13 +0000 (05:52 +0000)]
Merge "Tidy up x86 assembler and fix byte register encoding."
Andreas Gampe [Tue, 10 Jun 2014 05:48:30 +0000 (05:48 +0000)]
Merge "ART: Generic JNI for x86"
Ian Rogers [Mon, 9 Jun 2014 08:32:12 +0000 (01:32 -0700)]
Tidy up x86 assembler and fix byte register encoding.
Also fix reg storage int size issues.
Also fix bad use of byte registers in GenInlinedCas.
Change-Id: Id47424f36f9000e051110553e0b51816910e2fe8
Bill Buzbee [Tue, 10 Jun 2014 04:06:35 +0000 (04:06 +0000)]
Merge "Fix output of 107 art/test"
Bill Buzbee [Tue, 10 Jun 2014 04:06:29 +0000 (04:06 +0000)]
Merge "X86_64: Fix core.oat compilation issues"
Bill Buzbee [Tue, 10 Jun 2014 04:06:22 +0000 (04:06 +0000)]
Merge "x86_64: Reduce dex2oat compilation logs"
Bill Buzbee [Tue, 10 Jun 2014 04:06:14 +0000 (04:06 +0000)]
Merge "AArch64: fix and enable sparse- and packed-switch."
Andreas Gampe [Tue, 10 Jun 2014 01:29:38 +0000 (18:29 -0700)]
ART: Generic JNI for x86
Add the generic JNI trampoline for x86. Small cleanup in the C code.
Change-Id: Icaf9de7c0e5e8d1e6cb1135a54552040344cc5a3
Mark Mendell [Mon, 9 Jun 2014 19:10:50 +0000 (15:10 -0400)]
X86_64: Pass 'hidden method index' in EAX
Method* is in EDI, and EAX isn't an argument register, so EAX is free
to hold the hidden method index.
Change-Id: I793a54d00a4593e140f97144419d849b53bfdf44
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Mathieu Chartier [Mon, 9 Jun 2014 20:54:50 +0000 (20:54 +0000)]
Merge "Fix GetFreeMemory to use fooprint limit instead of max memory."
Mathieu Chartier [Mon, 9 Jun 2014 20:25:22 +0000 (13:25 -0700)]
Fix GetFreeMemory to use fooprint limit instead of max memory.
Based on definitions in:
http://developer.android.com/reference/java/lang/Runtime.html
Bug:
15507122
Change-Id: I02f34682d7ac2d379a07631b5207b6cfb224da6b
Mathieu Chartier [Thu, 22 May 2014 00:43:44 +0000 (17:43 -0700)]
Change MethodHelper to use a Handle.
Added ConstHandle to help prevent errors where you modify the value
stored in the handle of the caller. Also fixed compaction bugs
related to not knowing MethodHelper::GetReturnType can resolve types.
This bug was present in interpreter RETURN_OBJECT.
Bug:
13077697
Change-Id: I71f964d4d810ab4debda1a09bc968af8f3c874a3
Dmitry Petrochenko [Mon, 9 Jun 2014 19:45:42 +0000 (02:45 +0700)]
Fix output of 107 art/test
This patch affects 107 only when it is failed.
Change-Id: Ic33e6088d3fa4ca2cf47997f2bd6615462fc13cd
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Dmitry Petrochenko [Fri, 6 Jun 2014 08:18:14 +0000 (15:18 +0700)]
x86_64: Reduce dex2oat compilation logs
Disable printing of all compiled methods to logcat.
Change-Id: Ie210809f2595cc25da688a4ad0363c258bcf9233
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Mark Mendell [Mon, 9 Jun 2014 16:49:55 +0000 (12:49 -0400)]
X86_64: Fix core.oat compilation issues
Fix neg-long and X86Mir2Lir::GenInstanceofFinal
Change-Id: I7fbcc1a89857cc461f74b55573ac6cb7c8e64561
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Bill Buzbee [Mon, 9 Jun 2014 16:29:12 +0000 (16:29 +0000)]
Merge "AArch64: Fix kOpLsl, rem-float/double."
Matteo Franchin [Thu, 5 Jun 2014 14:10:35 +0000 (15:10 +0100)]
AArch64: fix and enable sparse- and packed-switch.
Changed implementation of sparse- and packed-switch to use w and x
registers appropriately. Also added a couple of utilities to obtain a
w/s register corresponding to a given x/d register and viceversa.
Change-Id: I485a110f6e91b09227d9e2a0b8b14224a10bca90
Andreas Gampe [Thu, 5 Jun 2014 21:18:08 +0000 (14:18 -0700)]
ART: Add instrumentation stubs for ARM64 and X86-64
Adds instrumentation stubs necessary for debugger support.
Refactors MethodAndCode to a top-level TwoWordReturn. A function
having a return type of TwoWordReturn will return its two-word
content, either 2x32b or 2x64b, in two registers according to
the architecture's ABI.
Bug:
15443938
Change-Id: Id7e1fbd4ad8eb6f29e23d48903c76f77b28d981a
Nicolas Geoffray [Mon, 9 Jun 2014 13:06:02 +0000 (14:06 +0100)]
Add a type propagation phase after building SSA.
This ensures all phis have a type.
Change-Id: I7e4f9a16d1efb5f64c493c1351749b352c870cbd
Vladimir Marko [Mon, 9 Jun 2014 09:16:36 +0000 (09:16 +0000)]
Merge "Avoid a memory allocation in OatFile::GetOatDexFile()."
Zheng Xu [Mon, 9 Jun 2014 03:05:31 +0000 (11:05 +0800)]
AArch64: Fix kOpLsl, rem-float/double.
Change-Id: I6f7293493c0f94f96882d2e559e3eef659a23aec
Nicolas Geoffray [Mon, 9 Jun 2014 08:00:05 +0000 (08:00 +0000)]
Merge "Fix some bugs in graph construction/simplification methods."
Nicolas Geoffray [Fri, 6 Jun 2014 10:24:33 +0000 (11:24 +0100)]
Fix some bugs in graph construction/simplification methods.
Also fix a brano during SSA construction. The code should
not have been commented out. Added a test to cover what the code
intends.
Change-Id: Ia00ae79dcf75eb0d412f07649d73e7f94dbfb6f0
Ian Rogers [Mon, 9 Jun 2014 05:28:30 +0000 (05:28 +0000)]
Merge "Add Move with Sign Extend Double to disassembler"
Mark Mendell [Fri, 6 Jun 2014 19:19:45 +0000 (15:19 -0400)]
Add Move with Sign Extend Double to disassembler
I noticed another missing instruction.
Change-Id: I71170496b014ac2609116eff2aeb13a13e71e263
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Ian Rogers [Mon, 9 Jun 2014 04:19:55 +0000 (04:19 +0000)]
Merge "ART: Fix inline assembly constraints in stub_test"
Ian Rogers [Mon, 9 Jun 2014 04:15:07 +0000 (04:15 +0000)]
Merge "ART: Fix casts in atomic.h to please GCC"
Bill Buzbee [Sat, 7 Jun 2014 19:50:43 +0000 (19:50 +0000)]
Merge "x86_64: Add long bytecode supports (2/2)"
Chao-ying Fu [Sat, 7 Jun 2014 01:38:49 +0000 (18:38 -0700)]
x86_64: Add long bytecode supports (2/2)
This patch adds implementation of math and complex long bytcodes,
and basic long arithmetic.
Change-Id: I811397d7e0ee8ad0d12b23d32ba58314d479d714
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Bill Buzbee [Sat, 7 Jun 2014 19:12:08 +0000 (19:12 +0000)]
Merge "x86_64: Add long bytecode supports (1/2)"
Chao-ying Fu [Sat, 7 Jun 2014 00:32:37 +0000 (17:32 -0700)]
x86_64: Add long bytecode supports (1/2)
This patch includes switch enabling and GenFillArray,
assembler changes, updates of regalloc behavior for 64-bit,
usage in basic utility operations, loading constants,
and update for memory operations.
Change-Id: I6d8aa35a75c5fd01d69c38a770c3398d0188cc8a
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Bill Buzbee [Sat, 7 Jun 2014 18:28:59 +0000 (18:28 +0000)]
Merge "x86_64: Hard Float ABI support in QCG"
Andreas Gampe [Sat, 7 Jun 2014 08:32:33 +0000 (01:32 -0700)]
ART: Fix inline assembly constraints in stub_test
GCC 4.9 is the first compiler actually using the (incorrect)
absence of the memory clobber constraint to elide some stores
and reloads to the thread, leaving garbage in there on exit
of the invoke method when the called stub will reach C code
with FinishCalleeSaveFrame.
Change-Id: I3afe9926bf537e6e92e3ad44eb6541776ac0e75f
Andreas Gampe [Sat, 7 Jun 2014 04:27:01 +0000 (21:27 -0700)]
ART: Fix casts in atomic.h to please GCC
GCC 4.9 for ARM64 is not happy about reinterpret_cast-ing between
int64_t and uint64_t, which is according to spec. Change the
concrete casts to static_cast.
However, we also use this for pointers, and we cannot static_cast
those to int64_t. So add a reinterpret_cast to uintptr_t.
Change-Id: If6513fbcbb8ee8f610f172310af61cf2e9ab0c43
Hans Boehm [Sat, 7 Jun 2014 01:41:29 +0000 (01:41 +0000)]
Merge "Don't assert int64_t alignment on x86."
Mathieu Chartier [Sat, 7 Jun 2014 01:41:18 +0000 (01:41 +0000)]
Merge "Add missing initializtaion of last_gc_time_ns_."
Hans Boehm [Sat, 7 Jun 2014 01:17:43 +0000 (18:17 -0700)]
Don't assert int64_t alignment on x86.
Fix build.
Change-Id: I1b798bb3c5ab4954b46d54cda8f8c237ab4ae53e
Dmitry Petrochenko [Fri, 16 May 2014 18:02:18 +0000 (01:02 +0700)]
x86_64: Hard Float ABI support in QCG
This patch shows our efforts on resolving the ART limitations:
- passing "float"/"double" arguments via FPR
- passing "long" arguments via single GPR, not pair
- passing more than 3 agruments via GPR.
Work done:
- Extended SpecialTargetRegister enum with kARG4, kARG5, fARG4..fARG7.
- Created initial LoadArgRegs/GenDalvikX/FlushIns version in X86Mir2Lir.
- Unlimited number of long/double/float arguments support
- Refactored (v2)
Change-Id: I5deadd320b4341d5b2f50ba6fa4a98031abc3902
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Mathieu Chartier [Sat, 7 Jun 2014 00:51:16 +0000 (17:51 -0700)]
Add missing initializtaion of last_gc_time_ns_.
Fixes some valgrind warnings.
Bug:
15426766
Change-Id: Ibaa78465739bf6919509cf87c72b25c84ed1d12c
Hans Boehm [Sat, 7 Jun 2014 00:21:19 +0000 (00:21 +0000)]
Merge "Fix white space issues and long long use in assertion."
Mathieu Chartier [Sat, 7 Jun 2014 00:19:05 +0000 (00:19 +0000)]
Merge "Fix mismatched new[] delete in verifier."
Hans Boehm [Sat, 7 Jun 2014 00:13:03 +0000 (17:13 -0700)]
Fix white space issues and long long use in assertion.
Fix Build.
Change-Id: If67a910ffed25c03c46638d6c132dc0e3a20ef62
Mathieu Chartier [Fri, 6 Jun 2014 20:59:39 +0000 (13:59 -0700)]
Fix mismatched new[] delete in verifier.
Done in order to please valgrind.
Bug:
15432385
Change-Id: Iebb6fe50eb71fc7f4c2f8e7aa93ad6ab226be5a8
Hans Boehm [Fri, 6 Jun 2014 23:45:51 +0000 (23:45 +0000)]
Merge "Clean up and augment Atomic class. Replace QuasiAtomic MemBars."
Mathieu Chartier [Fri, 6 Jun 2014 23:37:27 +0000 (23:37 +0000)]
Merge "Change FieldHelper to use a handle."
Ian Rogers [Fri, 6 Jun 2014 23:37:16 +0000 (23:37 +0000)]
Merge "Reduce header files including header files."
Ian Rogers [Fri, 6 Jun 2014 22:58:22 +0000 (15:58 -0700)]
Reduce header files including header files.
Main focus is getting heap.h out of runtime.h.
Change-Id: I8d13dce8512816db2820a27b24f5866cc871a04b
Hans Boehm [Thu, 22 May 2014 00:46:23 +0000 (17:46 -0700)]
Clean up and augment Atomic class. Replace QuasiAtomic MemBars.
Add a number of missing C++11 operations to Atomic class.
Invoke the 64 bit routines in QuasiAtomic when necessary.
Replace QuasiAtomic membars with fences that correspond to C++11 fences.
QuasiAtomic was moved to the top of the file. Only fence implementations
actually changed.
This replaces some buggy uses of MembarStoreStore, as reported
in b/
14685856 .
Avoid some redundant fences for long volatile operations.
Incompletely converts low-level memory access operations to Atomic.
Change-Id: Iea828431a0cea46540eb74fcaa02071cab6fdcda
Andreas Gampe [Fri, 6 Jun 2014 21:08:40 +0000 (21:08 +0000)]
Merge "x86_64: Fix stubs after 4-byte method handler"
Serguei Katkov [Fri, 6 Jun 2014 17:50:37 +0000 (10:50 -0700)]
x86_64: Fix stubs after 4-byte method handler
It is 4 byte now and should be handled accordingly.
Change-Id: Ie373235f961eabfd33266bd89fbf8169a3714a03
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Mathieu Chartier [Fri, 6 Jun 2014 00:42:53 +0000 (17:42 -0700)]
Change FieldHelper to use a handle.
Fixed compaction bugs related to FieldHelper::GetType in:
artSet32InstanceFromCode
SetFieldValueImpl
CheckReceiver
Field_set
interpreter::DoFieldPut
MethodVerifier::VerifyISGet
MethodVerifier::VerifyISPut
MethodVerifier::VerifyIGetQuick
Bug:
13077697
Change-Id: I7de9ded2893b5568d43e4daa86fd135bf5508b72
Calin Juravle [Fri, 6 Jun 2014 15:02:08 +0000 (15:02 +0000)]
Merge "Fix top K percentage computation when loading profile data."
Calin Juravle [Fri, 6 Jun 2014 11:24:21 +0000 (12:24 +0100)]
Fix top K percentage computation when loading profile data.
Don't count boot and null methods when computing top K percentage for
sampled methods.
Bug:
15462067
Bug:
12877748
Change-Id: I11c2ea541066a15bc8a5ad323e21ccbfdf81c2c5
Vladimir Marko [Fri, 6 Jun 2014 11:24:31 +0000 (11:24 +0000)]
Merge "Use ScopedArenaVector instead of std::vector in SSA transformation."
Calin Juravle [Fri, 6 Jun 2014 11:15:25 +0000 (11:15 +0000)]
Merge "Fixed and refactored profiler options handling"
Calin Juravle [Fri, 30 May 2014 22:44:11 +0000 (23:44 +0100)]
Fixed and refactored profiler options handling
- extracted profiler options in a separate class
- switched from system property reading to command line arguments
- added profile based compilation options to CompilerOptions
- removed no longer used kProfile compilation filter
- optimize dex files only if the profiler is enabled
- clean up unused arguments
Bug:
12877748
Bug:
15275634
Change-Id: I37ff68e7694370950ce8db2360562e9058ecebb7
Calin Juravle [Fri, 6 Jun 2014 10:58:10 +0000 (10:58 +0000)]
Merge "Clean up the sampling profiler"
Calin Juravle [Fri, 23 May 2014 16:33:29 +0000 (17:33 +0100)]
Clean up the sampling profiler
- rename variables/fields names to match the code style (use
_underscore_names_)
- extract common property parsing in utils.cc
- fail to load profile file if any line is malformed
- added ProfileFile to manage the profile data generate in the previous
runs (replaces ProfileHelper and nests ProfileData)
Bug:
12877748
Change-Id: Ie7bda30bfdeb7e78534c986615b0649eac12a97b
Vladimir Marko [Thu, 5 Jun 2014 19:09:47 +0000 (20:09 +0100)]
Use ScopedArenaVector instead of std::vector in SSA transformation.
Change-Id: Ibf8471274f2d5e11fcc185044745434c3c82ed74
Sebastien Hertz [Fri, 6 Jun 2014 07:02:39 +0000 (07:02 +0000)]
Merge "Fix crash in JDWP ReferenceType.SourceFile command"
Bill Buzbee [Thu, 5 Jun 2014 22:34:57 +0000 (22:34 +0000)]
Merge "Add an optimization for removing redundant suspend tests in ART"
Wei Jin [Fri, 30 May 2014 01:04:29 +0000 (18:04 -0700)]
Add an optimization for removing redundant suspend tests in ART
This CL:
(1) eliminates redundant suspend checks (dominated by another check),
(2) removes the special treatment of the R4 register, which got
reset on every native call, possibly yielding long execution
sequences without any suspend checks, and
(3) fixes the absence of suspend checks in leaf methods.
(2) and (3) increase the frequency of suspend checks, which improves
the performance of GC and the accuracy of profile data. To
compensate for the increased number of checks, we implemented an
optimization that leverages dominance information to remove
redundant suspend checks on back edges. Based on the results of
running the Caffeine benchmark on Nexus 7, the patch performs
roughly 30% more useful suspend checks, spreading them much more
evenly along the execution trace, while incurring less than 1%
overhead. For flexibility consideration, this CL defines two flags
to control the enabling of optimizations. The original
implementation is the default.
Change-Id: I31e81a5b3c53030444dbe0434157274c9ab8640f
Signed-off-by: Wei Jin <wejin@google.com>
Dave Allison [Thu, 5 Jun 2014 22:01:16 +0000 (22:01 +0000)]
Merge "Disable thumb assembler test to fix art build"
Dave Allison [Thu, 5 Jun 2014 21:44:13 +0000 (14:44 -0700)]
Disable thumb assembler test to fix art build
Having difficulty getting this to run on the build server.
Disable until I can figure out how to do it.
Change-Id: I4f356fd1168b213b770426adc34bf62b8fb56b8f
Dave Allison [Thu, 5 Jun 2014 21:27:40 +0000 (21:27 +0000)]
Merge "Remove unused variable in assembler test."
Dave Allison [Thu, 5 Jun 2014 21:16:30 +0000 (14:16 -0700)]
Remove unused variable in assembler test.
This is flagged as an error when building master, but not others...
Change-Id: Iaea5307b06d8e4fa1a9d1035905fc204eb98559a
Dave Allison [Thu, 5 Jun 2014 21:05:59 +0000 (21:05 +0000)]
Merge "Fix assembler test to use path if it can't find tools."
Dave Allison [Thu, 5 Jun 2014 20:58:56 +0000 (13:58 -0700)]
Fix assembler test to use path if it can't find tools.
This fixes build breakage.
Change-Id: I8074d47f1c1470cf886d517e9e68a6a6b4330485