| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
The runtime, compiler, dex2oat, and oatdump now are in seperate trees
to prevent dependency creep. They can now be individually built
without rebuilding the rest of the art projects. dalvikvm and jdwpspy
were already this way. Builds in the art directory should behave as
before, building everything including tests.
Change-Id: Ic6b1151e5ed0f823c3dd301afd2b13eb2d8feb81
|
|
|
|
|
|
|
|
| |
This reverts commit ccf124800fe025be3ca05c28a60514909ca66a11.
(cherry picked from commit 27c590edf6c24107b6473e84e526c432bd081f6e)
Change-Id: I2be879dcd126fc8d043641bdfbf2f9b80a678d10
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I29d6a9fb7f8ec134128329d974acf6b6534e25f1
|
|/
|
|
| |
Change-Id: Ibe3ffd4a829d3ec0e41f861b09da0990e603f2c2
|
|\
| |
| |
| | |
Change-Id: Ia7a8785d3220df6feeb999bc70f6d1917cad8d75
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Move compile-time code to src/compiler and libart-compiler
OatWriter, ImageWriter, ElfWriter, ElfFixup, ElfStripper, stub generation
- Move ClassReference and MethodReference to remove MethodVerifier dependency on CompilerDriver
- Move runtime_support_llvm.cc out of src/compiler and next to runtime_support.cc
- Change dex2oat and gtests to directly depend on libart-compiler
- Move non-common definitions from Android.common.mk to more specific makefiles
- Add LOCAL_ADDITIONAL_DEPENDENCIES on appropriate makefiles
Change-Id: I897027e69945914128f21f317a92caf9255bc600
|
| |
| |
| |
| | |
This reverts commit ccf124800fe025be3ca05c28a60514909ca66a11.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Increase the default alloc tracker maximum, and add a new system
property "dalvik.vm.allocTrackerMax" that allows developers to choose
an arbitrary limit.
Change-Id: I8b3fcfb00ba87d1cf515d5835c101b5375b1d8a2
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adds missing DF_NULL_CHK_OUT0 flag in dataflow attributes of invoke-interface
and invoke-interface-range instructions. This is used by null check elimination
pass.
Change-Id: I41e6ff414b3d74a16d1e020fa8988a30b7431afa
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The allocation tracker previously did a NewByteArray while holding the
gAllocTrackerLock. This was problematic due to the fact that this new
allocation would also try to acquire said lock. Fixed the issue by
moving the newByteArray call outside of the lock.
Bug: 9767557
Change-Id: I7e94e631d9c96aa642637de52f100b371f813294
|
| |
| |
| |
| |
| |
| | |
The return type of this was recently changed from int to long.
Change-Id: Ia9e5356b53fb3bf0f83190e42023ec56ad2bff54
|
| |
| |
| |
| | |
Change-Id: Ica7b115340821fc729db674077ed2a488c02b7c3
|
|\|
| |
| |
| |
| |
| |
| | |
device dex2oat
* commit '4922e9d4e5f86e40ca89fb097cec40e191dae0a1':
Use /system/framework/framework.jar:preloaded-classes for on device dex2oat
|
| |
| |
| |
| | |
Change-Id: I30ccbd5295a2979b9c89f00c93ad316d9b6475e9
|
|\|
| |
| |
| |
| | |
* commit 'c64440528822281a7889aba9cebf96baa4235b87':
Update class_initializer_black_list for master
|
| |
| |
| |
| | |
Change-Id: Id8c69cc349290ba7d255ea214f8d1b51d3ce062a
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bug: 9700950
Make ClassLinker::FixupStaticTrampolines updates entry point from compiled code
with interpreter entry point when interpreter mode is enabled.
Change-Id: Ie52ace8ea054ae7cb17442264dc62f68472409c6
|
|/ /
| |
| |
| | |
Change-Id: Ib9b6b634a934b075a168534e50b2160a4e4dbc65
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes the issue of Dhrystone having the same performance in
interpreter only mode. Main was executing compiled code since it
uses CallStaticVoidMethod directly. Now a check for interpreter
only mode in InvokeWithArgArray redirects it to the interpreter.
Change-Id: If6e6d8ede5cd0d8ad687d161667056373b1b031c
|
|\ \
| | |
| | |
| | | |
dalvik-dev
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the compiled entry point is the interpreter entry point, the code
now tries to get oat code for it before returning.
Change-Id: Iea1cec1ed003aadd71b432cc405fc81509bc644a
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Before we scheduled a partial GC after 10 sticky GC had been run to
prevent excessive heap growth and fragmentation. The issue with this is
that it was just a ballpark estimate which was not based on reality. The
new behaviour has that we do sticky GC until we have less space remaining
than minimum free after the GC. When this occurs, we set the next GC to be a
partial GC. After a partial / full GC we grow the heap and set the next GC to
be a sticky GC. This prevents the heap from always growing more than the target
utilization, while ensuring that we do sticky GC often.
dumpsys meminfo: ~450Mb -> 420Mb. Slight slowdown in GCBench.
Change-Id: Ifd865123f7d4ae39914fda44c9225a6731d27890
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Added the following:
- Downward-exposed uses.
- Reaching definitions.
- Better .dot generation.
Per file:
sea_ir/sea.*: Downward exposed definitions and reaching definitions code.
dex_instruction.*: Wrapper function added to expose the vA register,
which is later used by dataflow analysis.
sea_ir/instruction_tools.*: These tools provide info needed by dataflow analysis
that is dependent on dex format.
dex/frontend.cc: Formatting issues fixed.
sea_ir/*.*: All files pass cpplint validation.
*.mk: Support for new files added in this CL.
Change-Id: Ic510e7fb55aebcde99a121304ee7e841a3307358
|
|\ \ \
| |/ /
|/| |
| | | |
dalvik-dev
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
During instrumentation, if a method goes to the interpreter, a special callee-
save ref and args method frame is pushed onto the stack, instead of a frame for
the method being called. This change adds a bool to mark methods that end up
interpreted, so things that walk the stack know to look for the callee-save
method instead.
Also included is a change to UnsafeLogFatalForThreadSuspendAllTimeout to prevent
it from grabbing locks before dumping. This was breaking DumpLocked, which
eventually gets a ScopedObjectAccessUnchecked requiring those locks not be held.
Change-Id: I7e68cf195c77f40df6f497551c94b0926d3c5065
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bug: 9307738
Some constructors require a barrier before returning. This CL introduces the
RETURN-VOID-BARRIER instruction. The DEX-to-DEX compiler replaces all
RETURN-VOID instructions where a barrier is required by this instruction.
The interpreter and the verifier are updated to support this new instruction.
Change-Id: If31979b4027bc12157b933eda9fcbd5270edd202
|
|\ \ \ |
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Renamed kJdwpSerialLock to guard both the jdwp socket and serial.
Moved the lock priority higher than the alloc space lock priority.
This is needed since walking the dlmalloc heap requires acquiring
the alloc space lock.
Change-Id: Idce47ea8c400643829edc5aaebb57f8b686b2853
|
|/ /
| |
| |
| |
| | |
Bug: 7903975
Change-Id: I1ec552b35331227ecd7dc3d0a2f0507b1c24e375
|
| |
| |
| |
| | |
Change-Id: Id13a58fc6da8a2c39f47bcee14a743c88fc899b7
|
|\ \
| | |
| | |
| | | |
dalvik-dev
|
| | |
| | |
| | |
| | | |
Change-Id: Ibc1a5abb5a0ee49cb20e55dc2e169a224fcf9d8b
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bug: 9568063
This CL cleans up the way we are requesting for field/method being
accessed/invoked by a -quick instruction.
Now we let the verifier run completely and once it is done, we access the
register line of the instruction's dex PC and calculate the reference to the
field/method. This is pretty the same way the verifier checks the instruction
but here we get the final register line.
Change-Id: I06f02b0ddeb1bbdd71de610cc0656057624f6e3b
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This CL avoids to set "next" instruction twice. We used to first set "next"
instruction to the instruction following the SPARSE_SWITCH. Then, we set it to
the instruction corresponding to the entry we find in the table.
We now set it only once: either we branch or we continue.
Change-Id: Ic93cd0abae00edb1fb952c34bc9031fffc7f4a35
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Creates DoFilledNewArray to handle FILLED_NEW_ARRAY and FILLED_NEW_ARRAY_RANGE
instructions. This function is always inlined so we keep the same level of
performance.
Change-Id: I9ec130c400b9898713a32ffe780c89aff1712aab
|
|\ \ \ \ |
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Removes useless cast
- Improves calculation of FILL_ARRAY_DATA's payload pointer.
- Make some "cast" instructions handling code consistent with some "cmp"
instructions.
Change-Id: Ib7af78b4bab146f2b48ba5ac8e4723002c8c1f60
|
|\ \ \ \
| |_|_|/
|/| | | |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The "bool" return type of Array::ThrowArrayIndexOutOfBoundsException and
Array::ThrowArrayStoreException is useless. Make them void.
Note on ARM, this removes a "cmp" instruction in AGET/APUT instructions.
Change-Id: I843e895aa4622ca56aaa3f2eb2d5b5100a92c1ae
|
|\ \ \
| |/ /
|/| | |
|
| |/
| |
| |
| |
| |
| |
| | |
Added systrace logging to GC, thread checkpoints, GC pause,
and time spent waiting for concurrent GC to complete.
Change-Id: I33f0cf260526ccfd07bfaf038dfbf0a712eab24d
|
|\ \
| | |
| | |
| | | |
ThrowArithmeticExceptionDivideByZero." into dalvik-dev
|
| |/
| |
| |
| |
| |
| |
| | |
The "Thread* self" parameter of ThrowArithmeticExceptionDivideByZero is unused.
This CL removes it and updates all call sites.
Change-Id: I5cff86e97dd82dd07f4c174a3d8fbcf980da4aea
|