OSDN Git Service
Nicolas Geoffray [Thu, 1 Oct 2015 13:34:20 +0000 (14:34 +0100)]
Do more inlining when JITting.
We now check the verification status of the class.
This triggered a bug when an inlined method was not compiled
(typically in a JIT configuration), and the path for deopting in
StackVisitor was using the wrong ArtMethod in order to know the
compiler that compiled the current frame.
Change-Id: I81d3ca0cf5cd3864b83b63dd954c58e1f2adaad4
Nicolas Geoffray [Wed, 30 Sep 2015 12:41:47 +0000 (12:41 +0000)]
Merge "Make libcore timeout the same for all runs."
Nicolas Geoffray [Wed, 30 Sep 2015 11:02:21 +0000 (12:02 +0100)]
Make libcore timeout the same for all runs.
Looks like our mips32 devices need it too. Simply make
the timeout big enough for all run kinds.
Change-Id: I48a87eaef36c05e09c7ad82aaa003c7eb0d1ad6d
David Brazdil [Wed, 30 Sep 2015 10:59:28 +0000 (10:59 +0000)]
Merge "ART: Mark Checker tests broken for mips32"
David Brazdil [Wed, 30 Sep 2015 10:47:35 +0000 (11:47 +0100)]
ART: Mark Checker tests broken for mips32
We don't have a mips32 backend at the moment, so there is no graph
dump to run Checker on.
Change-Id: I9c90b93811aa7bbc849575ac1836c2d85da7e9ac
Nicolas Geoffray [Wed, 30 Sep 2015 09:20:32 +0000 (09:20 +0000)]
Merge "Revert "Revert "Enable optimizations with --debuggable."""
Nicolas Geoffray [Wed, 30 Sep 2015 08:15:15 +0000 (08:15 +0000)]
Merge "Add deoptimization test."
Nicolas Geoffray [Tue, 29 Sep 2015 18:00:03 +0000 (18:00 +0000)]
Revert "Revert "Enable optimizations with --debuggable.""
This reverts commit
b7d27a53cb280a943c0a63a9e0806cf8e3ae4cde.
Change-Id: I398c23863e4fd86a3112076417378d22efd08306
Nicolas Geoffray [Wed, 30 Sep 2015 07:20:50 +0000 (07:20 +0000)]
Merge "Revert "Keep internal stack trace methods declaring classes live""
Nicolas Geoffray [Wed, 30 Sep 2015 07:20:13 +0000 (07:20 +0000)]
Revert "Keep internal stack trace methods declaring classes live"
Breaks jdwp tests.
Bug:
22720414
This reverts commit
566fc926942ed57925627d1bd43e099938084f1e.
Change-Id: Ic3544e86af35bf748f9d47e0a4077dcdc206a821
Mathieu Chartier [Wed, 30 Sep 2015 01:17:00 +0000 (01:17 +0000)]
Merge "Keep internal stack trace methods declaring classes live"
Mathieu Chartier [Tue, 29 Sep 2015 17:21:55 +0000 (10:21 -0700)]
Keep internal stack trace methods declaring classes live
We now store the declaring classes in the internal stack trace to
make sure class unloading doesn't unload any classes owning methods
in the stack trace.
This fixes DexClassLoaderTest in libcore. Added regression test.
Bug:
22720414
Change-Id: I185f87c8ec0807e83f4661bd5bb5652dba6fc281
Andreas Gampe [Tue, 29 Sep 2015 22:22:40 +0000 (22:22 +0000)]
Merge "Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod""
Andreas Gampe [Tue, 29 Sep 2015 22:22:28 +0000 (22:22 +0000)]
Revert "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"
This reverts commit
6dd332933a570f5e413dd0d784481607798fbcf5.
Interestingly fails for sdk build.
Change-Id: I28d8fc05575ff1d744b4a831c32ef4414775561a
Andreas Gampe [Tue, 29 Sep 2015 21:18:07 +0000 (21:18 +0000)]
Merge "ART: Remove unnecessary SHARED_REQUIRES in ArtMethod"
Hiroshi Yamauchi [Tue, 29 Sep 2015 19:07:50 +0000 (19:07 +0000)]
Merge "Fix a mutator lock violation in the generic JNI end sequence."
Hiroshi Yamauchi [Tue, 29 Sep 2015 00:47:32 +0000 (17:47 -0700)]
Fix a mutator lock violation in the generic JNI end sequence.
artQuickGenericJniEndTrampoline() was accessing objects without a shared
mutator lock right after returning from a JNI call but before switching
to the runnable state.
This fixes crashes with table lookup read barriers enabled.
Bug:
12687968
Change-Id: I94ad9ca276750f58cb68b2fa9eb8cdeb371f021b
Andreas Gampe [Tue, 29 Sep 2015 18:21:43 +0000 (11:21 -0700)]
ART: Remove unnecessary SHARED_REQUIRES in ArtMethod
Move DCHECKs in GetAccessFlags into their own block and let them
acquire the mutator lock, if necessary. Then remove the old
annotations.
Change-Id: I29e24f17b001d0e16dc66c01a0f6450efb64ebc6
Nicolas Geoffray [Tue, 29 Sep 2015 17:30:24 +0000 (17:30 +0000)]
Merge "Revert "Enable optimizations with --debuggable.""
Nicolas Geoffray [Tue, 29 Sep 2015 17:30:10 +0000 (17:30 +0000)]
Revert "Enable optimizations with --debuggable."
Build error with gcc.
This reverts commit
43855ccb01703b188777fe59e1110e6a23803171.
Change-Id: I45abc7ee0943b2ad7bd644c88858891fc7a38ead
Nicolas Geoffray [Tue, 29 Sep 2015 17:05:26 +0000 (17:05 +0000)]
Merge "Enable optimizations with --debuggable."
Mathieu Chartier [Tue, 29 Sep 2015 17:04:17 +0000 (17:04 +0000)]
Merge "Address some code comments"
Vladimir Marko [Tue, 29 Sep 2015 16:33:44 +0000 (16:33 +0000)]
Merge "Optimizing: Simplify UShr+And, Shr+And."
Jongwon Lee [Thu, 3 Sep 2015 17:33:07 +0000 (02:33 +0900)]
Add deoptimization test.
Test passes with single frame deopt. If we were to deopt the whole
stack, we would need to record (interpreter-)live dex registers at
call sites.
Change-Id: Iebdce60be3fa1b0255fe2fa5ef0cf0b442e061f9
Signed-off-by: Jongwon Lee <jong.won.lee@samsung.com>
Nicolas Geoffray [Tue, 29 Sep 2015 14:43:06 +0000 (15:43 +0100)]
Enable optimizations with --debuggable.
Change-Id: I8979e59ee081222687fda1c93ac0bf3acbbad936
Nicolas Geoffray [Tue, 29 Sep 2015 15:18:29 +0000 (15:18 +0000)]
Merge "Fix a bug in DeadPhiHandling around conflicting phis."
Nicolas Geoffray [Tue, 29 Sep 2015 12:42:22 +0000 (13:42 +0100)]
Fix a bug in DeadPhiHandling around conflicting phis.
Change-Id: I44ec40f71a7e05eb4295bea55f6045cb86017329
Vladimir Marko [Tue, 29 Sep 2015 14:56:04 +0000 (14:56 +0000)]
Merge "Optimizing: Tag arena allocations in code generators."
Vladimir Marko [Fri, 25 Sep 2015 13:44:17 +0000 (14:44 +0100)]
Optimizing: Simplify UShr+And, Shr+And.
Eliminate And from UShr+And if the And-mask contains all the
bits that can be non-zero after UShr. Transform Shr+And to
UShr if the And-mask precisely clears the shifted-in sign
bits.
This prepares for detecting the Rotate pattern, i.e.
(x << N) | (x >>> (SIZE - N))
in code that unnecessarily masks the UShr, for example
(x << 1) | ((x >>> 31) & 1) ,
or uses Shr, for example
(x << 8) | ((x >> 24) & 0xff) .
Change-Id: I684c4b752547d9b1057d0d4c4d44550bb1a3ffb4
Vladimir Marko [Tue, 29 Sep 2015 10:37:49 +0000 (10:37 +0000)]
Merge "Quick: Avoid shifting -1 left (undefined behavior)."
Vladimir Marko [Tue, 29 Sep 2015 10:25:48 +0000 (11:25 +0100)]
Quick: Avoid shifting -1 left (undefined behavior).
C++11 clarifies that shifting left a negative value is
undefined behavior. Fix legacy code that shifted -1 left.
Bug:
24489455
Change-Id: Iaf4f26c7cde175f039b6a2cad12af6f0b1624fba
Vladimir Marko [Mon, 28 Sep 2015 11:17:40 +0000 (12:17 +0100)]
Optimizing: Tag arena allocations in code generators.
And completely remove the deprecated GrowableArray.
Replace GrowableArray with ArenaVector in code generators
and related classes and tag arena allocations.
Label arrays use direct allocations from ArenaAllocator
because Label is non-copyable and non-movable and as such
cannot be really held in a container. The GrowableArray
never actually constructed them, instead relying on the
zero-initialized storage from the arena allocator to be
correct. We now actually construct the labels.
Also avoid StackMapStream::ComputeDexRegisterMapSize() being
passed null references, even though unused.
Change-Id: I26a46fdd406b23a3969300a67739d55528df8bf4
Nicolas Geoffray [Tue, 29 Sep 2015 09:18:46 +0000 (09:18 +0000)]
Merge "Use dominance information for null optimization in write barrier."
Nicolas Geoffray [Mon, 28 Sep 2015 15:25:37 +0000 (16:25 +0100)]
Use dominance information for null optimization in write barrier.
Change-Id: I8b57dafcd321c9afa1bbfc6a0674cbea15cbf10c
Mathieu Chartier [Fri, 25 Sep 2015 23:54:59 +0000 (16:54 -0700)]
Address some code comments
Change-Id: I0a38a387c4328d45bbc04d095bf3388c27495c12
Andreas Gampe [Mon, 28 Sep 2015 22:40:18 +0000 (22:40 +0000)]
Merge "ART: Single-frame deopt"
Andreas Gampe [Wed, 3 Jun 2015 18:22:45 +0000 (11:22 -0700)]
ART: Single-frame deopt
Add deoptimization of a single frame. Works by removing the managed
code frame and jumping into the quick-to-interpreter bridge, and
the bridge understanding a stored ShadowFrame.
We need a separate fixup pass. For x86, we leave the return address
on the stack so we don't need to push it there.
Bug:
21611912
Change-Id: I06625685ced8b054244f8685ab50b238a705b9d2
Mathieu Chartier [Mon, 28 Sep 2015 17:52:52 +0000 (17:52 +0000)]
Merge "Don't unload shared libraries for null class loader."
Mathieu Chartier [Mon, 28 Sep 2015 17:33:00 +0000 (10:33 -0700)]
Don't unload shared libraries for null class loader.
If we load a shared library in the boot class loader (null),
then we create the SharedLibrary with a null class loader. We
shouldn't unload this shared library if the class loader decodes to
null since it may still be in use.
Fixes some hangs in gcstress tests.
Bug:
22720414
Change-Id: I52eca4cdba2c5ddd8e3dc7d133d253e5626c5b44
David Brazdil [Mon, 28 Sep 2015 15:23:06 +0000 (15:23 +0000)]
Merge "ART: Run arch specific Checker tests on host"
David Brazdil [Mon, 28 Sep 2015 15:15:50 +0000 (16:15 +0100)]
ART: Run arch specific Checker tests on host
The run-test script would not pass an architecture to Checker when
not in target mode and tests specific to x86(_64) would therefore not
be run.
Change-Id: Ibcbad0135e7a870e6ad3f09ab612fe276c97bcb8
Andreas Gampe [Mon, 28 Sep 2015 15:13:57 +0000 (15:13 +0000)]
Merge "ART: Use unique_ptr for alloca-ed ShadowFrames"
Nicolas Geoffray [Mon, 28 Sep 2015 15:11:19 +0000 (15:11 +0000)]
Merge "Use make TARGET_LINKER= instead of overriding linker flags."
Nicolas Geoffray [Mon, 28 Sep 2015 15:08:42 +0000 (16:08 +0100)]
Use make TARGET_LINKER= instead of overriding linker flags.
This solves building mips32 with gcc.
That's a temporary measure until we can set a custom target.
Change-Id: I1e8acfb0f5ca7e28d2ba3fb230b42800d5782973
David Brazdil [Mon, 28 Sep 2015 14:37:25 +0000 (14:37 +0000)]
Merge "ART: Fix DeadPhiHandling creating >2 equivalents"
David Brazdil [Mon, 28 Sep 2015 13:11:09 +0000 (14:11 +0100)]
ART: Fix DeadPhiHandling creating >2 equivalents
Run test 531 failed a DCHECK because the DeadPhiHandling algorithm
would generate three phis of the same type:
(0) loop phi [#0, ref] with equivalents void & object
(1) type object equivalent by its first input => int & int
(2) request object equivalent by a user => int & int & object
(3) type second => int & object & object (dead)
(4) type first => object & object & object
This patch fixes the issue by skipping (1) when the phi already has
a type, thus not creating the third equivalent for the phi's user.
Change-Id: I00c990a5982ddc1f7de013f72bbcfb1c649a6e5f
David Brazdil [Mon, 28 Sep 2015 12:22:17 +0000 (12:22 +0000)]
Merge "Address HPackedSwitch issues raised after merge"
Mark Mendell [Thu, 24 Sep 2015 12:43:40 +0000 (08:43 -0400)]
Address HPackedSwitch issues raised after merge
There were some stylistic comments about the merged files. Fix those.
Add a test that PackedSwitch can be removed by DCE.
Change-Id: Idf45833956e9b58051f942a52b06a1e416606e2e
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Igor Murashkin [Mon, 28 Sep 2015 02:55:40 +0000 (02:55 +0000)]
Merge "Revert "Revert "lambda: Experimental support for capture-variable and liberate-variable"""
Igor Murashkin [Mon, 28 Sep 2015 02:19:06 +0000 (19:19 -0700)]
Revert "Revert "lambda: Experimental support for capture-variable and liberate-variable""
This reverts commit
7bbb80ab52c203e44d2ded2c947b3b03b4b31ec4.
Change-Id: If806ce5c6c5e96fdb2c3761dee096f74e7e5b001
Nicolas Geoffray [Sun, 27 Sep 2015 19:50:57 +0000 (19:50 +0000)]
Merge "Revert "lambda: Experimental support for capture-variable and liberate-variable""
Nicolas Geoffray [Sun, 27 Sep 2015 19:50:40 +0000 (19:50 +0000)]
Revert "lambda: Experimental support for capture-variable and liberate-variable"
Test fails.
This reverts commit
b72123440d8541362ebdb131436f9dbdda5fd329.
Change-Id: Ic9ed92f8c826d8465eb36b746dc44af05caf041c
Andreas Gampe [Sat, 26 Sep 2015 02:45:05 +0000 (02:45 +0000)]
Merge "MIPS64: Implement intrinsics from java.lang.Math:"
Mathieu Chartier [Sat, 26 Sep 2015 00:26:35 +0000 (00:26 +0000)]
Merge "Disable class unloading test for tracing tests"
Mathieu Chartier [Sat, 26 Sep 2015 00:12:48 +0000 (17:12 -0700)]
Disable class unloading test for tracing tests
Temporary fix.
Bug:
24414774
Change-Id: I6f04d6b3bb7eafa009391f46fe16cf2f363e0d70
Igor Murashkin [Fri, 25 Sep 2015 23:55:58 +0000 (23:55 +0000)]
Merge "lambda: Experimental support for capture-variable and liberate-variable"
Chris Larsen [Fri, 4 Sep 2015 19:54:28 +0000 (12:54 -0700)]
MIPS64: Implement intrinsics from java.lang.Math:
- abs(double) - abs(float) - abs(int)
- abs(long) - ceil(double) - floor(double)
- max(double, double) - max(float, float) - max(int, int)
- max(long, long) - min(double, double) - min(float, float)
- min(int, int) - min(long, long) - rint(double)
- sqrt(double)
The math intrinsics:
- round(double) - round(float)
aren't implemented because there is no simple mapping from these Java
functions into MIPS assembly code.
Change-Id: I37ee5224d3d64f7162ed98521ba566fbc58d7905
Igor Murashkin [Fri, 25 Sep 2015 21:22:08 +0000 (14:22 -0700)]
lambda: Experimental support for capture-variable and liberate-variable
Supports capturing/liberating any primitive variables.
No support for capturing objects/lambdas yet since they would both
need GC changes to track roots through closures.
Change-Id: Ibfb68bfe4c579dbf93823aac4c0e6ac8f6360c5d
Mathieu Chartier [Fri, 25 Sep 2015 22:48:01 +0000 (22:48 +0000)]
Merge "Fix tests 116 and 118 for no-prebuild"
Mathieu Chartier [Fri, 25 Sep 2015 22:40:30 +0000 (15:40 -0700)]
Fix tests 116 and 118 for no-prebuild
Added missing "JNI_OnLoad called" in the expected output.
Change-Id: I619aae215c767bd75494933fd3480ec7e91b0570
Andreas Gampe [Fri, 25 Sep 2015 22:14:19 +0000 (22:14 +0000)]
Merge "MIPS64: Implement intrinsics from libcore.io.Memory:"
Mathieu Chartier [Fri, 25 Sep 2015 21:59:28 +0000 (21:59 +0000)]
Merge "Fix bug in WaitForCompilationToFinish"
Mathieu Chartier [Fri, 25 Sep 2015 21:39:40 +0000 (14:39 -0700)]
Fix bug in WaitForCompilationToFinish
We now pass the barrier inside of Finalize, previously we did it in
Run. This was buggy since Finalize is called after Run and there was
a race condition where WaitForCompilationToFinish would delete the
task before we called Finalize.
Change-Id: I3f624fa9cdfcf2b266775c6927c336fb987dd58c
Andreas Gampe [Fri, 25 Sep 2015 21:46:35 +0000 (21:46 +0000)]
Merge "ART: Move code from RA to T9 in Mips64 longjump"
Mathieu Chartier [Fri, 25 Sep 2015 20:20:27 +0000 (20:20 +0000)]
Merge "Fix JIT for class unloading"
Mathieu Chartier [Fri, 25 Sep 2015 18:34:45 +0000 (11:34 -0700)]
Fix JIT for class unloading
Keep declaring class of method live to prevent unloading.
Wait for JIT to finish compiling before calling Runtime.gc(), this
prevents flaky failures due to classes not being unloaded.
Bug:
22720414
Change-Id: I9fe5e5e39d681bcd22acc2d2f34b0dbc9887708d
Andreas Gampe [Fri, 25 Sep 2015 15:24:13 +0000 (08:24 -0700)]
ART: Move code from RA to T9 in Mips64 longjump
Do not use the return address. It should not be clobbered as we
may need it, e.g., for single-frame deopt.
Change-Id: I401d7b0034bc4e210bda231ec78ee31242053b36
Andreas Gampe [Fri, 25 Sep 2015 19:51:10 +0000 (19:51 +0000)]
Merge "MIPS64: Implement miscellaneous bit manipulation intrinsics"
Mathieu Chartier [Fri, 25 Sep 2015 18:34:32 +0000 (18:34 +0000)]
Merge "Call JNI_OnUnload when class loaders get collected"
Mathieu Chartier [Wed, 23 Sep 2015 21:52:39 +0000 (14:52 -0700)]
Call JNI_OnUnload when class loaders get collected
Added test case to 141-class-unload.
Bug:
22720414
Change-Id: I0575fae72521520a17587e8b0088bf8112705ad8
Chris Larsen [Fri, 4 Sep 2015 17:15:27 +0000 (10:15 -0700)]
MIPS64: Implement intrinsics from libcore.io.Memory:
- peekByte(long address)
- peekShort(long address)
- peekInt(long address)
- peekLong(long address)
- pokeByte(long address, byte value)
- pokeShort(long address, short value)
- pokeInt(long address, int value)
- pokeLong(long address, long value)
Change-Id: Ic5996ea035bf7e622b6fc85b9526ee8318cb6b1f
David Brazdil [Fri, 25 Sep 2015 16:45:09 +0000 (16:45 +0000)]
Merge "ART: Reject PackedSwitch with overflowing keys"
David Brazdil [Fri, 25 Sep 2015 15:57:53 +0000 (16:57 +0100)]
ART: Reject PackedSwitch with overflowing keys
As stated in "Dalvik bytecode" sections on switch payload format,
switch case keys must be stored in ascending order. Verifier enforced
this for sparse-switch but not for packed-switch.
Bug:
24399945
Change-Id: I0802d38e2bfae93c0dffe8ebfce2e9693a63ec02
Vladimir Marko [Fri, 25 Sep 2015 16:26:18 +0000 (16:26 +0000)]
Merge "Optimizing: Add comment on DCE's packed-switch value check."
Vladimir Marko [Fri, 25 Sep 2015 16:10:15 +0000 (17:10 +0100)]
Optimizing: Add comment on DCE's packed-switch value check.
Change-Id: I0c264d00b889917f88347c16c53e7647d0d8fd0f
Mathieu Chartier [Fri, 25 Sep 2015 15:50:24 +0000 (15:50 +0000)]
Merge "Enable class unloading"
Andreas Gampe [Fri, 25 Sep 2015 15:46:06 +0000 (15:46 +0000)]
Merge "ART: Show the previous failure type in init rejection"
Vladimir Marko [Fri, 25 Sep 2015 15:37:14 +0000 (15:37 +0000)]
Merge "ART: Fix misleading error message in method verifier."
Vladimir Marko [Fri, 25 Sep 2015 14:57:36 +0000 (15:57 +0100)]
ART: Fix misleading error message in method verifier.
Change-Id: I4805de0060b74168fa36e077a6a7ea59e9d72d46
Vladimir Marko [Fri, 25 Sep 2015 13:59:08 +0000 (13:59 +0000)]
Merge "Optimizing: Tag more arena allocations."
Vladimir Marko [Fri, 25 Sep 2015 13:58:00 +0000 (13:58 +0000)]
Merge "Optimizing: Rewrite DCE's MarkReachableBlocks()."
Vladimir Marko [Thu, 24 Sep 2015 15:52:33 +0000 (16:52 +0100)]
Optimizing: Rewrite DCE's MarkReachableBlocks().
Replace a recursive implementation with a loop using a work
list to avoid stack overflow that we would presumably hit
for 702-LargeBranchOffset in host debug build with -O0, once
the DCE block elimination is enabled for methods containing
try-catch.
Bug:
24133462
Change-Id: I41288ba368722bcb5d68259c7c147552c8928099
Vladimir Marko [Thu, 17 Sep 2015 16:03:26 +0000 (17:03 +0100)]
Optimizing: Tag more arena allocations.
Replace GrowableArray with ArenaVector and tag arena
allocations with new allocation types.
As part of this, make the register allocator a bit more
efficient, doing bulk insert/erase. Some loops are now
O(n) instead of O(n^2).
Change-Id: Ifac0871ffb34b121cc0447801a2d07eefd308c14
David Brazdil [Fri, 25 Sep 2015 10:59:35 +0000 (10:59 +0000)]
Merge "ART: SsaBuilder clean up"
David Brazdil [Tue, 22 Sep 2015 13:39:58 +0000 (14:39 +0100)]
ART: SsaBuilder clean up
Adds DCHECKs which verify assumptions about catch blocks. Uses HPhi::
IsVRegEquivalentOf instead of a local function.
Change-Id: I1b6db5ff2da5263d61261963308b6d65453a6d56
David Brazdil [Fri, 25 Sep 2015 09:50:18 +0000 (09:50 +0000)]
Merge "ART: Preserve loop headers with try/catch"
David Brazdil [Tue, 22 Sep 2015 12:04:14 +0000 (13:04 +0100)]
ART: Preserve loop headers with try/catch
Algorithm for inserting HTryBoundary instructions would generate a
non-natural loop when a loop header block was covered by a TryItem.
This patch changes the approach to fix the issue.
Bug:
23895756
Change-Id: I0e1ee6cf135cea326a96c97954907d202c9793cc
Mathieu Chartier [Sat, 19 Sep 2015 19:44:38 +0000 (12:44 -0700)]
Enable class unloading
Also added class unloading test. Added a missing write barrier in
the class linker to fix a heap corruption error.
Bug:
22720414
Change-Id: Iff615d69b574a4438e91d4c844279d202f4f2736
Elliott Hughes [Thu, 24 Sep 2015 23:26:30 +0000 (23:26 +0000)]
Merge "dexdump2 won't be optional when it replaces dexdump."
Andreas Gampe [Tue, 1 Sep 2015 21:45:00 +0000 (14:45 -0700)]
ART: Use unique_ptr for alloca-ed ShadowFrames
To enable automated calls of the destructor (for extensions of
ShadowFrame), return a unique_ptr with a custom deleter. Use a
macro so that the alloca happens in the caller.
Change-Id: Id28a6ea131f108e4a94ff1699fc22e7b44aec018
Elliott Hughes [Thu, 24 Sep 2015 06:01:31 +0000 (23:01 -0700)]
dexdump2 won't be optional when it replaces dexdump.
So it should just be in /system/bin, not sad and lonely in /system/xbin.
Change-Id: I2edda827d36486f46fdcfd77f0ee6eec1345974c
Vladimir Marko [Thu, 24 Sep 2015 17:13:16 +0000 (17:13 +0000)]
Merge "Optimizing: Rewrite HGraph::FindBackEdges()."
Vladimir Marko [Thu, 24 Sep 2015 17:04:38 +0000 (17:04 +0000)]
Merge "Optimizing: Rewrite HGraph::ComputeDominanceInformation()."
Vladimir Marko [Thu, 24 Sep 2015 12:11:31 +0000 (13:11 +0100)]
Optimizing: Rewrite HGraph::FindBackEdges().
Replace a recursive implementation with a loop using a work
list to avoid stack overflow for 702-LargeBranchOffset in
host debug build with -O0, 512KiB thread pool worker stack.
Change-Id: Iaa91f006fa1099913aeffc9c764879bd004d56de
Vladimir Marko [Wed, 23 Sep 2015 15:07:14 +0000 (16:07 +0100)]
Optimizing: Rewrite HGraph::ComputeDominanceInformation().
Replace a recursive implementation with a loop using a work
list to avoid stack overflow for 702-LargeBranchOffset in
host debug build with -O0.
Bug:
24133462
Change-Id: I444cc85733a9212403a071ea98b9ddfb52bfc402
Vladimir Marko [Thu, 24 Sep 2015 12:19:32 +0000 (12:19 +0000)]
Merge "ART: mprotect() bottom page of ThreadPoolWorker stacks."
David Brazdil [Thu, 24 Sep 2015 11:16:17 +0000 (11:16 +0000)]
Merge "ART: Refactor run-test 482-loop-back-edge-use"
Vladimir Marko [Thu, 24 Sep 2015 09:41:33 +0000 (10:41 +0100)]
ART: mprotect() bottom page of ThreadPoolWorker stacks.
This will catch stack overflows instead of creating hard
to find issues later on.
Bug:
24133462
Change-Id: I3ae5d5da70b8167867936b2561830f3ff47f14fc
Aart Bik [Thu, 24 Sep 2015 01:44:04 +0000 (01:44 +0000)]
Merge "Minor cleanup in range analysis."
Aart Bik [Thu, 24 Sep 2015 00:50:50 +0000 (17:50 -0700)]
Minor cleanup in range analysis.
(1) replaced min/max macro as previously required.
(2) removed some redundant code by merging min/max into one.
Change-Id: I610879a06d550346bfac7e6e12ec0299ba226a37