| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
(cherry picked from commit c3f73f788a2f46e4007433bd3ed3dce64e2f5f33)
Bug: 21555893
Change-Id: I92e11637cc1f8f694e4d4138512cbcf47e22a249
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL adds support to compile run-test source files with jack. When
a test needs to rely on class files, we use jill to convert them to a
jack library.
We need to pass the full classpath to jack containing at least core
classes (like java.lang.Object). This means the Android tree must
have been compiled with jack first so we find all the necessary
classes.jack files.
Some tests still rely on dex files generated with the old toolchain.
We keep building them this way for the moment and will update them
later, when they get ready for Jack.
Also updates a few tests dealing with garbage collection to avoid a
situation where a reference can be retained by a local DEX register.
Bug: 19467889
(cherry picked from commit 19ac0276208f0afef6ba8a4ab34b74a59b8d11d7)
Change-Id: Ia5a989b83430ffe8298a869a1da970b756721bb0
|
|
|
|
|
|
|
| |
(cherry picked from commit 22bb5a2ebc1e2724179faf4660b2735dcb185f21)
Bug: 21555893
Change-Id: I2a995be128a5603d08753c14956dd8c8240ac63c
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(cherry picked from commit 4dda3376b71209fae07f5c3c8ac3eb4b54207aa8)
(amended for mnc-dev)
Bug: 21555893
Change-Id: I874dc356eee6ab061a32f8f3df5f8ac3a4ab7dcf
Signed-off-by: Alexey Frunze <Alexey.Frunze@imgtec.com>
Signed-off-by: Douglas Leung <douglas.leung@imgtec.com>
|
|/
|
|
|
|
|
|
|
|
|
|
| |
Fix a lock ordering issue in streaming-mode tracing.
Fix a moving-GC issue in streaming-mode tracing. DexCache
objects are not good keys for a map.
Expose streaming mode for testing in run-tests.
Bug: 21760614
Change-Id: Idcd0575684ee3cc0cec3f81b4fdd0d5988c11e8c
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dex2oat can already generate unwinding and symbol information which
allows tools to create backtrace of mixed native and Java code.
This is a cherry pick from aosp/master which fixes several issues.
Most notably:
* It enables generation of ELF-64 on 64-bit systems (in dex2oat, C
compilers already produce ELF-64). Libunwind requires ELF-64 on
64-bit systems for backtraces to work.
* It enables loading of ELF files with dlopen. This is required for
libunwind to be able to generate backtrace of current process (i.e.
the process requesting backtrace of itself).
* It adds unit test to test the above (32 vs 64 bit, in-proces vs
out-of-process, application code vs framework code).
* Some other fixes or clean-ups which should not be of much
significance but which are easier to include to make the
important CLs cherry-pick cleanly.
This is squash of the following commits from aosp/master:
7381010 ART: CFI Test
e1bbed2 ART: Blacklist CFI test for non-compiled run-tests
aab9f73 ART: Blacklist CFI test for JIT
4437219 ART: Blacklist CFI test for Heap Poisoning
a3a49fe Switch to using ELF-64 for 64-bit architectures.
297ed22 Write 64-bit address in DWARF if we are on 64-bit architecture.
24981a1 Set correct size of PT_PHDR ELF segment.
1a146bf Link .dynamic to .dynstr
67a0653 Make some parts of ELF more (pointer) aligned.
f50fa82 Enable 64-bit CFI tests.
49e1fab Use dlopen to load oat files.
5dedb80 Add more logging output for dlopen.
aa03870 Find the dlopened file using address rather than file path.
82e73dc Release dummy MemMaps corresponding to dlopen.
5c40961 Test that we can unwind framework code.
020c543 Add more log output to the CFI test.
88da3b0 ART: Fix CFI test wrt/ PIC
a70e5b9 CFI test: kill the other process in native code.
ad5fa8c Support generation of CFI in .debug_frame format.
90688ae Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write.
97dabb7 Fix build breakage in dwarf_test.
388d286 Generate just single ARM mapping symbol.
f898087 Split .oat_patches to multiple sections.
491a7fe Fix build - large frame size of ElfWriterQuick<ElfTypes>::Write (again).
8363c77 Add --generate-debug-info flag and remove the other two flags.
461d72a Generate debug info for core.oat files.
Bug: 21924613
Change-Id: I3f944a08dd2ed1df4d8a807da4fee423fdd35eb7
|
|
|
|
|
|
|
| |
This reverts commit 18a1827a159f1b235f3fcc934f428059185f550e.
Bug: 21333911
Change-Id: I8cb96efbf7151b238f3ee137a938b20ddfaf0ebc
|
|\
| |
| |
| | |
mnc-dev
|
| |
| |
| |
| |
| |
| |
| | |
This reverts commit aafcfca5fe545365ef377fff2897b8a908f03e71.
Bug: 21333911
Change-Id: Ibbc6b1be8bebc1d0ab9c5955b34eb89f40577baa
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
Bug: 21333911
Change-Id: I9832526a6d2996aadb459e3ec0930cbaf151478a
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
First check for both direct and virtual methods in the current class,
then move to the parent.
Optimize registration by checking first whether the current method
under test is native. This slows down registering implementations
in parent classes. Add a CheckJNI warning for this.
Add a run-test to check the behavior. Fix host comparison testing.
Bug: 19569721
(cherry picked from commit 3f1dc56914177993b1b018bf21ce7d39d7feecda)
Change-Id: I61e77117d96310632aad123d7f1279d0f834dc99
|
|\ |
|
| |
| |
| |
| |
| | |
Bug: 19988134
Change-Id: I68638ce9551848a67af587595f264b51f976df11
|
|/
|
|
|
| |
Bug: 20720510
Change-Id: Ie8c159767654837c02f0484f4dda569bb0118a03
|
|
|
|
| |
Change-Id: I6769cf244d246160b65d6dd4e4df0efb0aa8a7e5
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix Quick crash when the last insn has a fall-through out of
the method's code. Allow creation of an out-of-method block
and at the end of MIRGraph::InlineMethod() check if that
block is reachable. If it is, punt to interpreter. Add tests
for unreachable if-lt and packed-switch as the last insn.
Also fix MIRGraph::ProcessCanSwitch() to treat the offset to
the data as signed. Jumping over the data with a goto and
using it from a switch further down is valid. This was also
crashing (presumably only on 64-bit dex2oat).
Thanks to Stephen Kyle (stephenckyle@googlemail.com) for the
bug report.
Bug: 19988134
Change-Id: I627f4137f61901897bfb9a5252741c6ded3a1adb
|
|
|
|
|
|
|
| |
Disable old test. Improve collision warning message. Add a comment
about the algorithm.
Change-Id: Ibd29d79565732162150aebd7fe08d0895ccf3d79
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Oat files are usually produced standalone, and the compilers take
advantage of any information they get. It is thus possible that
when compile-time and runtime class-path are not the same, classes
are resolved differently and optimized code is incorrect.
This is a very conservative check, scanning the complete class tables
of dex files. In case any duplicate class is found, the new oat file
will be rejected and the original dex files will be used in interpreted
mode.
A possible refinement to this is actual tracking of the compile-time
class-path instead. That is however significantly complicated by the
DexFile API and the non-standard uses it allows.
An alternative for both optimized code and correct resolution is
native multidex. Apps should switch to multidex and benefit from
the optimization as well as the shift of all compile time to install
time. Split APKs are currently compiled separately, but it is a goal
to change that install flow to simulated multidex.
Change-Id: Ib9e0db5091e060e3bb2c0e5e6c007430becbfc21
|
|/
|
|
| |
Change-Id: Idbe4c26d8ffcd91882fe61f62c959cc27d1f28b1
|
|
|
|
|
|
|
| |
This reverts commit 386ce406f150645158d6067c4e0a36565aefc44f.
Bug: 20413424
Change-Id: I6e93ff132907f2653f1ae12d6676ff2298f62ca1
|
|
|
|
|
|
|
|
|
| |
We were too agressive in not recording environment uses
when the instruction was not of type object. We have to
record the use to the use list of an interval, but it should
not affect the live ranges of that interval.
Change-Id: Id16fb7cc06f14083766d408a345837793583b6ea
|
|
|
|
|
|
| |
Reduces file names to under 255 characters, for now.
Change-Id: I095da02c1a3fc14fa9022d1a39307845bd870abc
|
|
|
|
|
|
|
|
|
| |
SSA form conflicts with JDWP's SetValue functionality. Because
we do not deopt all the call stack, we may call SetValue on a
compiled frame, which doesn't work with optimizing. Simplest
solution for now is to just use baseline.
Change-Id: I91738b363eec8fef145486bd96681aea73a1baa8
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I6365269e606e0c176e518c06719ebdaf6a4c4b88
|
|/
|
|
|
|
|
|
|
| |
Instructions remain live when debuggable, but only instructions
with object types remain live when non-debuggable.
Enable StackVisitor::GetThisObject for optimizing.
Change-Id: Id87b2cbf33a02450059acc9993995782e5f28987
|
|
|
|
|
|
| |
This reverts commit 154552e666347d41d95d7619c6ee56249ff4feca.
Change-Id: Idc726551c249a888b7ff5fde8508ae50e81b2e13
|
|
|
|
| |
Change-Id: I22c7391e07a9d06a8ce9a4d23a21ba9f60bcfe64
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This requires to properly type phis that are only
used by environments, and discard phis with incomptable types.
The code generators do not handle these conflicting types. In
the process, ensure a phi has a type that does not depend
on the order of the inputs (for example (char, short) -> short),
and set int for int-like types. We can refine this later.
Change-Id: I60ab601d6d00b1cbf18623ee4ff1795aa28f84a1
|
| |
| |
| |
| |
| |
| | |
This reverts commit 9728a930fdf717cca60b48d9c2b715d0eed497fd.
Change-Id: Ieca964a793e58f11931f78f50be47a4a9f0dc21f
|
|/
|
|
|
|
| |
This reverts commit bd648cd3aef1ce82aaaa85924b1178a7f499cc29.
Change-Id: I9be508730dc5c25b9d08f914c5628e88bc4aa15b
|
|
|
|
| |
Change-Id: Icd4a4cf53907bf04b0d45211e264c9985045b55c
|
|
|
|
| |
Change-Id: I0435e0a62592bd0f449bb52517efa9ac55ec8913
|
|
|
|
|
| |
Bug: 19524713
Change-Id: I6537bc650e2690e5902576fd0e5a55142d91182a
|
|
|
|
|
| |
Bug: 19528920
Change-Id: I079cfcca7bb57e492c82a44f104e41228cb33b4f
|
|
|
|
|
|
|
| |
Was causing core.oat to not be created.
Bug: 19524713
Change-Id: I5da005fd36f9682623fdda9931280997b59c2681
|
|
|
|
|
|
|
|
| |
Added missing EntryPointToCodePointer.
This reverts commit a5ca888d715cd0c6c421313211caa1928be3e399.
Change-Id: Ia74df0ef3a7babbdcb0466fd24da28e304e3f5af
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Sorry, run-test crashes on target:
0-05 12:15:51.633 I/DEBUG (27995): Abort message: 'art/runtime/mirror/art_method.cc:349] Check failed: PcIsWithinQuickCode(reinterpret_cast<uintptr_t>(code), pc) java.lang.Throwable java.lang.Throwable.fillInStackTrace() pc=71e3366b code=0x71e3362d size=ad000000'
10-05 12:15:51.633 I/DEBUG (27995): r0 00000000 r1 0000542b r2 00000006 r3 00000000
10-05 12:15:51.633 I/DEBUG (27995): r4 00000006 r5 b6f9addc r6 00000002 r7 0000010c
10-05 12:15:51.633 I/DEBUG (27995): r8 b63fe1e8 r9 be8e1418 sl b6427400 fp b63fcce0
10-05 12:15:51.633 I/DEBUG (27995): ip 0000542b sp be8e1358 lr b6e9a27b pc b6e9c280 cpsr 40070010
10-05 12:15:51.633 I/DEBUG (27995):
Bug: 17950037
This reverts commit 2535abe7d1fcdd0e6aca782b1f1932a703ed50a4.
Change-Id: I6f88849bc6f2befed0c0aaa0b7b2a08c967a83c3
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently disabled by default unless -Xjit is passed in.
The proposed JIT is a method JIT which works by utilizing interpreter
instrumentation to request compilation of hot methods async during
runtime.
JIT options:
-Xjit / -Xnojit
-Xjitcodecachesize:N
-Xjitthreshold:integervalue
The JIT has a shared copy of a compiler driver which is accessed
by worker threads to compile individual methods.
Added JIT code cache and data cache, currently sized at 2 MB
capacity by default. Most apps will only fill a small fraction of
this cache however.
Added support to the compiler for compiling interpreter quickened
byte codes.
Added test target ART_TEST_JIT=TRUE and --jit for run-test.
TODO:
Clean up code cache.
Delete compiled methods after they are added to code cache.
Add more optimizations related to runtime checks e.g. direct pointers
for invokes.
Add method recompilation.
Move instrumentation to DexFile to improve performance and reduce
memory usage.
Bug: 17950037
Change-Id: Ifa5b2684a2d5059ec5a5210733900aafa3c51bca
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current implementation continues the execution of the application if
dex2oat fails by relying on the interpreter.
This patch adds a -Xno-dex-file-fallback option to stop the default behavior.
This can be used two-fold.
First, one can enforce that a runtime only starts with a boot image. A
follow-up patch will ensure that dex2oat (for apps) and patchoat in general
request that mode and close gracefully otherwise.
Second, this can be used for testing and debugging purposes, as it ensures
that compiler failures & aborts are not silently ignored.
Add testing.
Bug: 19100590
Change-Id: Iaf07b5ccf00942ca8a8ec8687599320a3ddbc089
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
|
|
|
|
|
|
|
|
| |
When in tracing mode, the test is meaningless as it won't force
deoptimization.
Bug: 18713034
Change-Id: I8bf2861c2937c5da73e3d7642e638818d2544fa8
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
For static invokes, we may dispatch to the static method in the
superclass but resolve using the subclass. To prevent getting slow
paths on each invoke, we force set the resolved method for the
super class dex method index if we are in the same dex file.
Added test.
Bug: 19175856
Change-Id: I26f8644a7f725f5c2dc2a94a8e9578f573792507
|
|
|
|
| |
Change-Id: I797de0bed7b9c51cd7889de5144b8dbfd641335d
|