2dc77ecf375882f51ff7c09712c05b80e58abb6b |
|
02-Jun-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Fix ArtMethod::GetInvokeType for static methods on interfaces. And avoid calling ResolveMethod in the JIT, since it already knows that method. bug:29089267 bug:27521545 Change-Id: I5c5dae385804f1d2062defca459f69c26cdb4fef
|
b28abe4a648d85863655a8af3ab9a4b633be3512 |
|
06-May-2016 |
Aart Bik <ajcbik@google.com> |
Break the debug cycle! Rationale: When entering the path that implements method invocation, it is possible for the interpreter and JIT to cycle around trying to interpret or compile a method, never making a decision. This bug fix avoids such cycling with a minimum of extra runtime overhead. BUG=28537292 (cherry picked from commit 0122320f86ae004aa195d76814c52564d84ee632) Change-Id: Ied47e0089a8c674a1504f1718f1a3a667863ada3
|
e5de54cfab5f14ba0b8ff25d8d60901c7021943f |
|
20-Apr-2016 |
Calin Juravle <calin@google.com> |
Split profile recording from jit compilation We still use ProfileInfo objects to record profile information. That gives us the flexibility to add the inline caches in the future and the convenience of the already implemented GC. If UseJIT is false and SaveProfilingInfo true, we will only record the ProfileInfo and never launch compilation tasks. Bug: 27916886 Change-Id: I6e4768dc5d58f2f85f947b276b4244aa11ce3fca
|
9d07e3d128ccfa0ef7670feadd424a825e447d1d |
|
31-Mar-2016 |
Vladimir Marko <vmarko@google.com> |
Clean up OatQuickMethodHeader after Quick removal. This reduces the size of the pre-header by 8 bytes, reducing oat file size and mmapped .text section size. The memory needed to store a CompiledMethod by dex2oat is also reduced, for 32-bit dex2oat by 8B and for 64-bit dex2oat by 16B. The aosp_flounder-userdebug 32-bit and 64-bit boot.oat are each about 1.1MiB smaller. Disable the broken StubTest.IMT, b/27991555 . Change-Id: I05fe45c28c8ffb7a0fa8b1117b969786748b1039
|
341c636089daa56e875fe6026b97e1e2cc4e949a |
|
07-Mar-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Add some debugging for zygote crash. bug:27340451 (cherry picked from commit de166544d6539942d3507ce47910f601c97b7532) Change-Id: Ie4400064d81e260b41bd1408a9ed54be8ca0479e
|
de166544d6539942d3507ce47910f601c97b7532 |
|
07-Mar-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Add some debugging for zygote crash. bug:27340451 Change-Id: I212567b18959ab4dc7f1dbde2e6d4ff60fe7bed2
|
2a524bd724d746aa807bf891cc379ad6abd81b64 |
|
01-Mar-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Dump more information to diagnose problem. bug:27424509 Change-Id: Id502cf408a7f117a2a891534f5c999d60f9370b1
|
b331febbab8e916680faba722cc84b66b84218a3 |
|
05-Feb-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "Revert "Implement on-stack replacement for arm/arm64/x86/x86_64."" This reverts commit bd89a5c556324062b7d841843b039392e84cfaf4. Change-Id: I08d190431520baa7fcec8fbdb444519f25ac8d44
|
bd89a5c556324062b7d841843b039392e84cfaf4 |
|
05-Feb-2016 |
David Brazdil <dbrazdil@google.com> |
Revert "Implement on-stack replacement for arm/arm64/x86/x86_64." DCHECK whether loop headers are covered fails. This reverts commit 891bc286963892ed96134ca1adb7822737af9710. Change-Id: I0f9a90630b014b16d20ba1dfba31ce63e6648021
|
891bc286963892ed96134ca1adb7822737af9710 |
|
29-Jan-2016 |
Nicolas Geoffray <ngeoffray@google.com> |
Implement on-stack replacement for arm/arm64/x86/x86_64. High-level overview: - osr_method_threshold is used to know when to compile a method in osr mode (-> treat all loops as irreducible). - branch instructions in the compiler query whether they can jump to an osr method. - An osr entry point is found through the stack maps: if a stack map is duplicated in the CodeInfo, it is an osr entry point. Change-Id: Ifb39338cd281e2c7eccce67f4e18d46428be71e4
|
103992b9171fac9eceb2fe4015ab04f544b9c559 |
|
05-Jan-2016 |
Andreas Gampe <agampe@google.com> |
ART: Move ThrowStackOverflowError to common_throws This should really be in common_throws considering all the callers. Change-Id: I410c07cbf5659f216d44597530cb85f99740f320
|
51a64d5d4fe91842cc2a5f2a412441147c145683 |
|
17-Dec-2015 |
Alex Light <allight@google.com> |
Make use of new method iterators. Change-Id: I1f82f17951339b2054a1dac87bde79f9e803fc4a
|
73be1e8f8609708f6624bb297c9628de44fd8b6f |
|
17-Sep-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Inline monomorphic calls. Change-Id: If38171c2dc7d4a4378df5d050afc4fff4499c98f
|
6c8467ffc427a513dc2fdea7ed9eeb0bb54d30ef |
|
21-Nov-2015 |
Alex Light <allight@google.com> |
Make debugger support default methods. Supports breaking on, stepping into and through default methods. Bug: 25549445 Bug: 24618811 Change-Id: I1a47e3263a0624adbd9e83b99d0acd7bef7757a4
|
9139e008abe30b7beaf4afd6533228a1dd9b202c |
|
10-Oct-2015 |
Alex Light <allight@google.com> |
Correct exception behavior for default methods Default methods are defined to throw an IncompatibleClassChangeError (ICCE) when they are called and there is no "best" implementation. Previously we would simply throw an ICCE during class loading as soon as we noticed that this would happen if called. This makes us wait until we actually attempt to execute the method. Furthermore, this allows us to use other, non-conflicting, methods on the object as normal. Furthermore, this makes us correctly throw AbstractMethodErrors in cases where all default implementations of a method are overridden by abstract declarations. Adds 3 tests for this new behavior. Bug: 24618811 Change-Id: Id891958a81f9b3862b2ce5919636aabef7d3422e
|
a5891e81a2fb833307cf7c7e7267070dc0223dc8 |
|
06-Nov-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Fix interaction between JIT and instrumentation. - The JIT needs to go through the instrumentation to update entry points. - The instrumention needs to know if a method got JITted to know if needs to deoptimize. bug:25438583 Change-Id: I4b186a1da9f4a3fb329efd052a774d5502a902a1
|
5a23d2ea6e0d89112ff11ec765e676c03818b7c2 |
|
03-Nov-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Fix TODO on instrumentation and add some more DCHECKs. bug:25343683 bug:25438583 Change-Id: I232deb1b6761466b514c687ce304f61928755cdc
|
22cf3d361695ff1d585a8a412ebeade69749811f |
|
02-Nov-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Fix tests flakiness with jit when using Proxy classes. We cannot copy the entry point between ArtMethod when the entry point has been JITted. We put the interpreter bridge instead. bug:25334878 Change-Id: I65a50cc1f10a5a152733807f8c85fb3ed81c5829
|
703c282d1d53021de9dddf1d5c1318e70e81c7fc |
|
30-Oct-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
A generic jni method can be instrumented. Fixes tracing 119-noimage-patchoat test. Change-Id: Ifc9709b714dbad6e087d327fdde7a008e5e731d3
|
9507fa2c9545156747a5eb248bc1af3159bfd8c8 |
|
29-Oct-2015 |
Mathieu Chartier <mathieuc@google.com> |
Change a few places to use string version of GetTypeId GetTypeId is about 20% faster than GetStringId + integer GetTypeID since it does less binary searches. Change-Id: I876c4ac89ab206acca217b2287b0197ef2e408c2
|
49e439682918aa6b08948db303a71defbde7d800 |
|
28-Oct-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
A native method may be running and have the resolution stub. Fixes 119-noimage-patchoat in interpreter mode. Change-Id: Ie8af557f7de21963441520b9d9caea8223378acc
|
26705e2b1245b65989a0341b24c5dbf2658d4bb6 |
|
28-Oct-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Add support for collection ProfilingInfo objects. Change-Id: I8bb6069530253a7372acdf2b5aee71e1de644822
|
1dad3f68b7f5a4a4cb2b281413357adc2309a8fd |
|
23-Oct-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Support garbage collection of JITted code. Change-Id: I9afc544460ae4fb31149644b6196ac7f5182c784
|
524e7ea8cd17bad17bd9f3e0ccbb19ad0d4d9c02 |
|
16-Oct-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Remove ArtCode. - Instead use OatQuickMethodHeader. - Various cleanups now that we don't have all those ArtMethod -> ArtCode -> OatQuickMethodHeader indirections. As a consequence of this cleanup, exception handling got a bit faster. ParserCombinators benchmark (exception intensive) on x64: (lower is better) Before: ParserCombinators(RunTime): 1062500.0 us. After: ParserCombinators(RunTime): 833000.0 us. Change-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3
|
6bc4374e3fa00e3ee5e832e1761c43e0b8a71558 |
|
12-Oct-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Add an abstraction over a compiled code. That's just step 1, moving code-related functions of ArtMethod to another class. That class is only a wrapper on an ArtMethod, but will be changed to be a wrapper around compiled code. Change-Id: I6f35fc06d37220558dff61691e51ae20066b0dd6
|
1147b9bd68323c753ed1a0b6106b205fd640c820 |
|
15-Sep-2015 |
Mathieu Chartier <mathieuc@google.com> |
Use image pointer size for profile info May fix some random crashes in dex2oat due to cross compilation. Change-Id: I633652500e8c7dfec38044dffd07eb467973d82a
|
f1fbd5220551aeae1025a1058fd501ad41167425 |
|
15-Sep-2015 |
David Brazdil <dbrazdil@google.com> |
Rename parameter in ArtMethod::ToNativeQuickPc Addressing a nit for CL Idb2b34aabf1ac7249c30a00806af7d63d7e682dd. Change-Id: I1112312b90aa6123e7e9ca8f67132dd7cc57a62f
|
72f7b880d5d0057b9fac3a51ef3a0f22909bc633 |
|
15-Sep-2015 |
David Brazdil <dbrazdil@google.com> |
ART: Fix 004-ReferenceMap run test This patch adds a new option to ArtMethod::ToNativeQuickPc to select the order of iteration over stack maps. The method is only used by the runtime to find native_pc of catch blocks, but also by the 004-ReferenceMap test which uses it to find native_pc of a safepoint. Change-Id: Idb2b34aabf1ac7249c30a00806af7d63d7e682dd
|
77a48ae01bbc5b05ca009cf09e2fcb53e4c8ff23 |
|
15-Sep-2015 |
David Brazdil <dbrazdil@google.com> |
Revert "Revert "ART: Register allocation and runtime support for try/catch"" The original CL triggered b/24084144 which has been fixed by Ib72e12a018437c404e82f7ad414554c66a4c6f8c. This reverts commit 659562aaf133c41b8d90ec9216c07646f0f14362. Change-Id: Id8980436172457d0fcb276349c4405f7c4110a55
|
659562aaf133c41b8d90ec9216c07646f0f14362 |
|
14-Sep-2015 |
David Brazdil <dbrazdil@google.com> |
Revert "ART: Register allocation and runtime support for try/catch" Breaks libcore test org.apache.harmony.security.tests.java.security.KeyStorePrivateKeyEntryTest#testGetCertificateChain. Need to investigate. This reverts commit b022fa1300e6d78639b3b910af0cf85c43df44bb. Change-Id: Ib24d3a80064d963d273e557a93469c95f37b1f6f
|
b022fa1300e6d78639b3b910af0cf85c43df44bb |
|
20-Aug-2015 |
David Brazdil <dbrazdil@google.com> |
ART: Register allocation and runtime support for try/catch This patch completes a series of CLs that add support for try/catch in the Optimizing compiler. With it, Optimizing can compile all methods containing try/catch, provided they don't contain catch loops. Future work will focus on improving performance of the generated code. SsaLivenessAnalysis was updated to propagate liveness information of instructions live at catch blocks, and to keep location information on instructions which may be caught by catch phis. RegisterAllocator was extended to spill values used after catch, and to allocate spill slots for catch phis. Catch phis generated for the same vreg share a spill slot as the raw value must be the same. Location builders and slow paths were updated to reflect the fact that throwing an exception may not lead to escaping the method. Instruction code generators are forbidden from using of implicit null checks in try blocks as live registers need to be saved before handing over to the runtime. CodeGenerator emits a stack map for each catch block, storing locations of catch phis. CodeInfo and StackMapStream recognize this new type of stack map and store them separate from other stack maps to avoid dex_pc conflicts. After having found the target catch block to deliver an exception to, QuickExceptionHandler looks up the dex register maps at the throwing instruction and the catch block and copies the values over to their respective locations. The runtime-support approach was selected because it allows for the best performance in the normal control-flow path, since no propagation of catch phi values is necessary until the exception is thrown. In addition, it also greatly simplifies the register allocation phase. ConstantHoisting was removed from LICMTest because it instantiated (now abstract) HConstant and was bogus anyway (constants are always in the entry block). Change-Id: Ie31038ad8e3ee0c13a5bbbbaf5f0b3e532310e4e
|
5550ca8bcc742b109d77e62f3a0877c667d894d3 |
|
21-Aug-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Record profiling information before Jitting. - Add a new instrumentation kind to record dynamic invokes. - Use the JNI entry point field to store the profiling data. - Record seen receivers for every dynamic invoke. Change-Id: I2c1738ab2a72052d45964d055dc16b44b906e54c
|
05792b98980741111b4d0a24d68cff2a8e070a3a |
|
03-Aug-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Move DexCache arrays to native. This CL has a companion CL in libcore/ https://android-review.googlesource.com/162985 Change-Id: Icbc9e20ad1b565e603195b12714762bb446515fa
|
0747466fca310eedea5fc49e37d54f240a0b3c0f |
|
25-Aug-2015 |
Sebastien Hertz <shertz@google.com> |
Revert "Revert "Fix deoptimization with pending exception"" This reverts commit 6e2d5747d00697a25251d25dd33b953e54709507. Fixes the deoptimization path from compiled code (generated by the Optimizing compiler) by adding wrapper artDeoptimizeFromCompiledCode. This wrapper, called through the matching assembler stub art_quick_deoptimize_from_compiled_code, pushes the deoptimization context just before deoptimizing the stack. Bug: 23371176 Bug: 19944235 Change-Id: Ia7082656998aebdd0157438f7e6504c120e10d3e
|
ff73498a5539d87424a964265e43765e788aec44 |
|
24-Aug-2015 |
Goran Jakovljevic <Goran.Jakovljevic@imgtec.com> |
Revert "Revert "[MIPS] Use hard float calling convention for managed code"" This reverts commit 7fee84c087e0f903e7d43bef180df047db1c8051. Fixed issue with temporary registers on Mips32r6. Change-Id: I93018927e6a6036cff2d55e6cda66d3212a4316b
|
6e2d5747d00697a25251d25dd33b953e54709507 |
|
25-Aug-2015 |
Sebastien Hertz <shertz@google.com> |
Revert "Fix deoptimization with pending exception" This reverts commit 54b62480636ae846d705fc180c7bd6cd08ec1e42. This is causing test failures with Optimizing compiler. Bug: 23371176 Bug: 19944235 Change-Id: Ie3ffbcf2b6d2ca8bc93cb008a4e29a7567d04a7c
|
54b62480636ae846d705fc180c7bd6cd08ec1e42 |
|
20-Aug-2015 |
Sebastien Hertz <shertz@google.com> |
Fix deoptimization with pending exception When deoptimizing the stack, we set a fake exception in the current Thread* (see method Thread::GetDeoptimizationException). On the next exception check, the QuickExceptionHandler will deoptimize the stack. The issue is when we deoptimize while an exception is already pending in the current Thread*: setting the fake exception will clobber the pending exception which is not correct. This happens in the artQuickToInterpreterBridge when returning from the interpreter and we want to deoptimize the stack for debugging (like single-stepping). This CL saves the pending exception before asking for deoptimization. Then the exception is restored just before executing the deoptimized frames with the interpreter. Also cleans up the way we save deoptimization context (return value and pending exception). Bug: 23371176 Bug: 19944235 Change-Id: I7f4c8347b328817c452beda3399e210eba3a88a4
|
7fee84c087e0f903e7d43bef180df047db1c8051 |
|
21-Aug-2015 |
Vladimir Marko <vmarko@google.com> |
Revert "[MIPS] Use hard float calling convention for managed code" MipsMir2Lir::LockCallTemps() is broken for secondary architecture on aosp_mips64-eng. This reverts commit a29449dcf57c57fe0876f51367985477317cc557. Change-Id: I480ea7569d73aea7894fc0a6dd804b1135286a37
|
a29449dcf57c57fe0876f51367985477317cc557 |
|
22-Jul-2015 |
Goran Jakovljevic <Goran.Jakovljevic@imgtec.com> |
[MIPS] Use hard float calling convention for managed code Note that this isn't o32 ABI. Same set of registers is used for arguments ($a0-$a3 and $f12-$f15), but we don't skip registers and fp arguments are never passed via core registers. Change-Id: Ifb883ff6e15758b539137898b49ac2f8ee075f49
|
00370827646cc21cb370c3e7e93f9c0cff4c30c2 |
|
18-Aug-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
Use thread-local is_gc_marking flags for the CC collector. The currently global is_marking flag is used to check if the read barrier slow path needs to be taken for GC roots access. Changing it to a thread-local flag simplifies the fast path check and makes it easier to do it in assembly code. It also solves the issue that we need to avoid accessing the global flag during startup before the heap or the collector object isn't allocated and initialized. Bug: 12687968 Change-Id: Ibf0dca12f400bf3490188b12dfe96c7de30583e0
|
2a5c4681ba19411c1cb22e9a7ab446dab910af1c |
|
14-Aug-2015 |
Andreas Gampe <agampe@google.com> |
ART: Some header cleaning around bit-utils Try to remove dependencies where they are not necessary. Change-Id: I5ff35cb17aea369bed3725b1610b50d7eb05b81e
|
b1d8c314b55bb2df2b2bb72a3daaf5db65b7ebc7 |
|
04-Aug-2015 |
Igor Murashkin <iam@google.com> |
Revert "cleanup: Replace pointers with out-parameters and fix-up formatting" This reverts commit a315f5c546b796f55f4872bb6efc15eb858d9639. -- Revert "runtime: cleanup class_linker out-parameters and formatting" This reverts commit bc1d78daa463572c5a770cdca858a3b51d8e1b7b. -- Revert "base: replace raw pointers for out-parameters with safer out<T>" This reverts commit fb326cffc679cab8eb873b9e44795706f023cb3c.
|
bc1d78daa463572c5a770cdca858a3b51d8e1b7b |
|
31-Jul-2015 |
Igor Murashkin <iam@google.com> |
runtime: cleanup class_linker out-parameters and formatting * Use out<T> instead of parameters * Fixes up some other signatures to be more correct * Reformat parameters to be one per line if they can't fit on one line * Reformat locks to be one per line if they can't fit on the decl line Change-Id: Ib71b08707d3ed0bb85299406c0b23a1de4e92a1c
|
40c8141b48275afd1680b99878782848ab3a6761 |
|
01-Aug-2015 |
Igor Murashkin <iam@google.com> |
Revert "runtime: cleanup class_linker out-parameters and formatting" This reverts commit 0de694ed3efe8412b83622a24074831edcc7e384. Change-Id: I4b185584d6e47918179b16d76709cc3366872f3c
|
0de694ed3efe8412b83622a24074831edcc7e384 |
|
31-Jul-2015 |
Igor Murashkin <iam@google.com> |
runtime: cleanup class_linker out-parameters and formatting * Use out<T> instead of parameters * Fixes up some other signatures to be more correct * Reformat parameters to be one per line if they can't fit on one line * Reformat locks to be one per line if they can't fit on the decl line Change-Id: I1031cf4edc41f95b89edb343d43ef93e15384206
|
90443477f9a0061581c420775ce3b7eeae7468bc |
|
17-Jul-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move to newer clang annotations Also enable -Wthread-safety-negative. Changes: Switch to capabilities and negative capabilities. Future work: Use capabilities to implement uninterruptible annotations to work with AssertNoThreadSuspension. Bug: 20072211 Change-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33
|
9523a3ed0ae6fa31cd978a3999fd88233218f98b |
|
17-Jul-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "Revert "Use the quickened metadata to compile -QUICK opcodes."" This reverts commit 8ab9a9010f3929acbb6c671008b8885b762b01e1. Change-Id: I1e654d5010ea2112982c3055fcb8c8f9c10e9ac8
|
8ab9a9010f3929acbb6c671008b8885b762b01e1 |
|
17-Jul-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "Use the quickened metadata to compile -QUICK opcodes." Broke sdk build. Investigating. This reverts commit 4515a67434c9e3e1627586629a1f2aba1a99aa6a. Change-Id: I6c1107ab626758570a59dc6bf3e4228c70a57196
|
4515a67434c9e3e1627586629a1f2aba1a99aa6a |
|
16-Jul-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Use the quickened metadata to compile -QUICK opcodes. Change-Id: I28a8d68921698bea81f54c95cc6e4c6d2c03f2b4
|
dbda04fc786d29382b712a26a8ee47e0ace13c25 |
|
10-Jul-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Return an invalid StackMap when none can be found. bug:22389275 Partial cherry-pick of: https://android-review.googlesource.com/#/c/151853 (commit e12997fbce8e22431be58cac9db2535f7b4a7ac3) Change-Id: Ia30b817be1b50d97243ba32967eeee359ed679c4
|
bf1fa2ccb5e7409910b99dc46b616e44c66ade68 |
|
09-Jun-2015 |
Sebastien Hertz <shertz@google.com> |
Follow up on CL 151605 - Fixes return type of StackedShadowFrameRecord::GetType - Makes StackedShadowFrameType an enum class (scoped enum) - Moves DeoptimizationReturnValueRecord and StackedShadowFrameRecord to thread.cc file and use forward declaration in thread.h header - Fixes tools/generate-operator-out.py for scoped enum classes. Bug: 20845490 (cherry picked from commit f795869da0a1fa006fdcdacd8afb6149a63fc1a7) Change-Id: I6b67e288b1db563699161e58ec2e2330d42dd8f5
|
ef484d442a3dcae2cd1842c5be0623f5cf71e4ab |
|
18-May-2015 |
Mingyao Yang <mingyao@google.com> |
Fix nested deoptimization. Handle nested deoptimization cases. Create a stacked shadow frame records to keep track of deoptimization shadow frames. Shadow frames under construction can be tracked in the same stack. Bug: 20845490 (cherry picked from commit 1f2d3ba6af52cf6f566deb38b7e07735c9a08fb6) Change-Id: I768285792c29e7c3cfcd21e7a2600802506024d8
|
f795869da0a1fa006fdcdacd8afb6149a63fc1a7 |
|
09-Jun-2015 |
Sebastien Hertz <shertz@google.com> |
Follow up on CL 151605 - Fixes return type of StackedShadowFrameRecord::GetType - Makes StackedShadowFrameType an enum class (scoped enum) - Moves DeoptimizationReturnValueRecord and StackedShadowFrameRecord to thread.cc file and use forward declaration in thread.h header - Fixes tools/generate-operator-out.py for scoped enum classes. Bug: 20845490 Change-Id: I6b67e288b1db563699161e58ec2e2330d42dd8f5
|
1f2d3ba6af52cf6f566deb38b7e07735c9a08fb6 |
|
18-May-2015 |
Mingyao Yang <mingyao@google.com> |
Fix nested deoptimization. Handle nested deoptimization cases. Create a stacked shadow frame records to keep track of deoptimization shadow frames. Shadow frames under construction can be tracked in the same stack. Bug: 20845490 Change-Id: I768285792c29e7c3cfcd21e7a2600802506024d8
|
f677ebfd832c9c614fea5e6735725fec2f7a3f2a |
|
29-May-2015 |
David Brazdil <dbrazdil@google.com> |
Cache stack map encoding Operations on CodeInfo and StackMap objects repeatedly read encoding information from the MemoryRegion. Since these are 3-bit-loads of values that never change, caching them can measurably reduce compile times. According to benchmarks, this patch saves 1-3% on armv7, 2-4% on x86, and 0-1% on x64. Change-Id: I46b197513601325d8bab562cc80100c00ec28a3b
|
3d21bdf8894e780d349c481e5c9e29fe1556051c |
|
22-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move mirror::ArtMethod to native Optimizing + quick tests are passing, devices boot. TODO: Test and fix bugs in mips64. Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS. Some of the savings are from removal of virtual methods and direct methods object arrays. Bug: 19264997 (cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33) Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d Fix some ArtMethod related bugs Added root visiting for runtime methods, not currently required since the GcRoots in these methods are null. Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes --trace run-tests 005, 044. Fixed optimizing compiler bug where we used a normal stack location instead of double on ARM64, this fixes the debuggable tests. TODO: Fix JDWP tests. Bug: 19264997 Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3 ART: Fix casts for 64-bit pointers on 32-bit compiler. Bug: 19264997 Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457 Fix JDWP tests after ArtMethod change Fixes Throwable::GetStackDepth for exception event detection after internal stack trace representation change. Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of proxy method. Bug: 19264997 Change-Id: I363e293796848c3ec491c963813f62d868da44d2 Fix accidental IMT and root marking regression Was always using the conflict trampoline. Also included fix for regression in GC time caused by extra roots. Most of the regression was IMT. Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to detached thread. EvaluateAndApplyChanges: From ~2500 -> ~1980 GC time: 8.2s -> 7.2s due to 1s less of MarkConcurrentRoots Bug: 19264997 Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0 Fix bogus image test assert Previously we were comparing the size of the non moving space to size of the image file. Now we properly compare the size of the image space against the size of the image file. Bug: 19264997 Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a [MIPS64] Fix art_quick_invoke_stub argument offsets. ArtMethod reference's size got bigger, so we need to move other args and leave enough space for ArtMethod* and 'this' pointer. This fixes mips64 boot. Bug: 19264997 Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
|
e401d146407d61eeb99f8d6176b2ac13c4df1e33 |
|
22-Apr-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move mirror::ArtMethod to native Optimizing + quick tests are passing, devices boot. TODO: Test and fix bugs in mips64. Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS. Some of the savings are from removal of virtual methods and direct methods object arrays. Bug: 19264997 Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d
|