OSDN Git Service
Vladimir Marko [Tue, 28 Oct 2014 17:34:32 +0000 (17:34 +0000)]
am
4985fdf0: Merge "Rewrite class initialization check elimination."
* commit '
4985fdf030e8e78f1c05266e989534cb26812bff':
Rewrite class initialization check elimination.
Nicolas Geoffray [Tue, 28 Oct 2014 17:34:31 +0000 (17:34 +0000)]
am
2deace28: Merge "Support hard float on arm in optimizing compiler."
* commit '
2deace28b16d3161ccd6a85a2c577e83f4b25364':
Support hard float on arm in optimizing compiler.
Andreas Gampe [Tue, 28 Oct 2014 17:34:30 +0000 (17:34 +0000)]
am
7066718b: Merge "ART: Fix ImageSpace error message."
* commit '
7066718bc494654f5ac71698f40aff1421168252':
ART: Fix ImageSpace error message.
Andreas Gampe [Tue, 28 Oct 2014 17:34:28 +0000 (17:34 +0000)]
am
7e6d3fdb: Merge "ART: Fix leak in bit_vector"
* commit '
7e6d3fdb14f513d24a9e8f5b49aab70d801734c3':
ART: Fix leak in bit_vector
Calin Juravle [Tue, 28 Oct 2014 17:34:27 +0000 (17:34 +0000)]
am
0c1215e2: Merge "[native bridge] Add test to verify code_cache existance."
* commit '
0c1215e237b3466b5084cc3c488f22f933283dba':
[native bridge] Add test to verify code_cache existance.
Vladimir Marko [Tue, 28 Oct 2014 17:34:19 +0000 (17:34 +0000)]
am
1ef3495a: Merge "Quick: Fix wide Phi detection in GVN, clean up INVOKEs."
* commit '
1ef3495abfa2a858b3cc7a1844383c8e7dff0b60':
Quick: Fix wide Phi detection in GVN, clean up INVOKEs.
Elliott Hughes [Tue, 28 Oct 2014 17:34:17 +0000 (17:34 +0000)]
am
07cce747: Merge "Fix the DW_OP_breg* constants."
* commit '
07cce74751e9d1d818c860c83f678c69de90b1fb':
Fix the DW_OP_breg* constants.
Ian Rogers [Tue, 28 Oct 2014 17:34:11 +0000 (17:34 +0000)]
am
768135f3: Merge "Do not use ld instruction for Mips32."
* commit '
768135f301999ff9c8228991f3486a1ab691f540':
Do not use ld instruction for Mips32.
Ian Rogers [Tue, 28 Oct 2014 04:51:55 +0000 (04:51 +0000)]
am
3e3364e2: Merge "Tidy logging code not using UNIMPLEMENTED."
* commit '
3e3364e267117462894e0c3b7d9b413b25d28057':
Tidy logging code not using UNIMPLEMENTED.
Ian Rogers [Tue, 28 Oct 2014 04:51:53 +0000 (04:51 +0000)]
am
c57a66d5: Merge "ARM: Use hardfp calling convention between java to java call."
* commit '
c57a66d5aadfd682c63e34ec1b1f304260f8c333':
ARM: Use hardfp calling convention between java to java call.
Ian Rogers [Tue, 28 Oct 2014 04:51:50 +0000 (04:51 +0000)]
am
b62ff579: Merge "ART: Add div/rem zero check elimination flag"
* commit '
b62ff579cd870b0bf213765b07d7b404d15ece7b':
ART: Add div/rem zero check elimination flag
Ian Rogers [Tue, 28 Oct 2014 04:51:49 +0000 (04:51 +0000)]
am
c6c9e5d4: Merge "ART: Prevent float inference back to SSA in-regs."
* commit '
c6c9e5d4511f2b23cab09f9d6f535f96fe33cb9b':
ART: Prevent float inference back to SSA in-regs.
Ian Rogers [Tue, 28 Oct 2014 04:51:48 +0000 (04:51 +0000)]
am
98c271d5: Merge "Code cleanup."
* commit '
98c271d517bc4d25fc6879b4b8e35ea93885d9e2':
Code cleanup.
Nicolas Geoffray [Tue, 28 Oct 2014 04:51:26 +0000 (04:51 +0000)]
am
661cb3f6: Merge "Add more environment variable to control test granularity."
* commit '
661cb3f65d3d6fd09f4823f4519890646260fbe6':
Add more environment variable to control test granularity.
Nicolas Geoffray [Tue, 28 Oct 2014 04:51:24 +0000 (04:51 +0000)]
am
dc9667e5: Merge "Fix encoding of imul in x86_64 assembler."
* commit '
dc9667e50f6adf99f2d4cfea27b4abcbf42e6a3f':
Fix encoding of imul in x86_64 assembler.
Sebastien Hertz [Tue, 28 Oct 2014 04:51:23 +0000 (04:51 +0000)]
am
54efee55: Merge "Make ObjectRegistry::InternalAdd GC safe"
* commit '
54efee55ccfc9eb411b9fde6742fe457016a391d':
Make ObjectRegistry::InternalAdd GC safe
Roland Levillain [Tue, 28 Oct 2014 04:51:17 +0000 (04:51 +0000)]
am
64727aee: Merge "Revert "Revert "Implement long negate instruction in the optimizing compiler."""
* commit '
64727aeef8f4243f2058a19a43a937248a60dae1':
Revert "Revert "Implement long negate instruction in the optimizing compiler.""
Roland Levillain [Tue, 28 Oct 2014 04:51:16 +0000 (04:51 +0000)]
am
8bde036e: Merge "Use test\'s `-d\' option when checking for a directory."
* commit '
8bde036ebd74ce94477e65077bed6dea9c29616b':
Use test's `-d' option when checking for a directory.
Nicolas Geoffray [Tue, 28 Oct 2014 04:51:14 +0000 (04:51 +0000)]
am
32da24bb: Merge "Fix wrong unsigned to signed conversions."
* commit '
32da24bb26885a9877adcef5b53f283d44b622d2':
Fix wrong unsigned to signed conversions.
Sebastien Hertz [Tue, 28 Oct 2014 04:50:40 +0000 (04:50 +0000)]
am
02567379: Merge "Fix JDWP Virtualmachine.Resume command"
* commit '
02567379e7099682345fd59d45a23e17711c9ddd':
Fix JDWP Virtualmachine.Resume command
Sebastien Hertz [Tue, 28 Oct 2014 04:50:39 +0000 (04:50 +0000)]
am
a1e50cab: Merge "More use of WellKnownClasses for debugger"
* commit '
a1e50cab308af9f9a94e8bd370111eeff5634914':
More use of WellKnownClasses for debugger
Andreas Gampe [Tue, 28 Oct 2014 04:49:10 +0000 (04:49 +0000)]
am
6b8fbcb1: Merge "ART: Remove old LOG(INFO)"
* commit '
6b8fbcb19f404b45ed01e9808f6d3254b13fc351':
ART: Remove old LOG(INFO)
Mathieu Chartier [Tue, 28 Oct 2014 04:49:09 +0000 (04:49 +0000)]
am
754ff339: Merge "Use the passed-in \'name\' param to create a MemMap."
* commit '
754ff339c776d69ac9caf7a783b3ff280d6bd08b':
Use the passed-in 'name' param to create a MemMap.
Ian Rogers [Tue, 28 Oct 2014 04:49:08 +0000 (04:49 +0000)]
am
d308804f: Merge "Make out-of-line mutex contention dependent on ART_USE_FUTEXES."
* commit '
d308804f1af5d18324215b04d4c108759e527c4c':
Make out-of-line mutex contention dependent on ART_USE_FUTEXES.
Andreas Gampe [Tue, 28 Oct 2014 04:31:17 +0000 (04:31 +0000)]
am
e8bd8ac7: Merge "ART: Use static_assert in down_cast"
* commit '
e8bd8ac7fb41545ef342c8120c2e83d2fef20a50':
ART: Use static_assert in down_cast
Chih-Hung Hsieh [Tue, 28 Oct 2014 04:31:16 +0000 (04:31 +0000)]
am
13fe5bbd: Merge "Add missing SHARED_LOCKS_REQUIRED attibute."
* commit '
13fe5bbd636e4dd9b6d51e13932e6e55e354976d':
Add missing SHARED_LOCKS_REQUIRED attibute.
Nicolas Geoffray [Tue, 28 Oct 2014 04:31:15 +0000 (04:31 +0000)]
am
b4e1a4d3: Merge "ART: Add basic tests for materialized conditions."
* commit '
b4e1a4d3156528d3e2b863f08c24793310a5b6bc':
ART: Add basic tests for materialized conditions.
Mathieu Chartier [Tue, 28 Oct 2014 04:31:13 +0000 (04:31 +0000)]
am
be8c0217: Merge "Fix concurrent start bytes race"
* commit '
be8c0217c858dcabc13cefecdeced8610e3e9d6f':
Fix concurrent start bytes race
Roland Levillain [Tue, 28 Oct 2014 04:31:12 +0000 (04:31 +0000)]
am
55adc608: Merge "Revert "Implement long negate instruction in the optimizing compiler.""
* commit '
55adc608b04ddf4d126bfe92eaa444068ae78e8a':
Revert "Implement long negate instruction in the optimizing compiler."
Roland Levillain [Tue, 28 Oct 2014 04:31:03 +0000 (04:31 +0000)]
am
46fdec13: Merge "Implement long negate instruction in the optimizing compiler."
* commit '
46fdec13b6dcaf932aa9fb1338f32df01aa0d959':
Implement long negate instruction in the optimizing compiler.
Calin Juravle [Tue, 28 Oct 2014 04:31:02 +0000 (04:31 +0000)]
am
e2b2cbf8: Merge "[optimizing compiler] Handle SUB_FLOAT/DOUBLE nodes"
* commit '
e2b2cbf8bffdf9ee3ece487fde9ac78652b4abaf':
[optimizing compiler] Handle SUB_FLOAT/DOUBLE nodes
Nicolas Geoffray [Tue, 28 Oct 2014 04:30:52 +0000 (04:30 +0000)]
am
b1bcf57e: Merge "Use the shared smali test infrastructure for 800-smali."
* commit '
b1bcf57e9fcaa95447fc3b9dfd7d0068e6106cca':
Use the shared smali test infrastructure for 800-smali.
Calin Juravle [Tue, 28 Oct 2014 04:30:51 +0000 (04:30 +0000)]
am
46de37a6: Merge "[optimizing compiler] Add float/double subtraction"
* commit '
46de37a6a314368cc5fc52743095e48a864ed9b5':
[optimizing compiler] Add float/double subtraction
Vladimir Marko [Mon, 27 Oct 2014 18:10:02 +0000 (18:10 +0000)]
Merge "Rewrite class initialization check elimination."
Nicolas Geoffray [Mon, 27 Oct 2014 17:23:51 +0000 (17:23 +0000)]
Merge "Support hard float on arm in optimizing compiler."
Nicolas Geoffray [Mon, 27 Oct 2014 15:14:55 +0000 (15:14 +0000)]
Support hard float on arm in optimizing compiler.
Also bump oat version, needed after latest hard float switch.
Change-Id: Idf5acfb36c07e74acff00edab998419a3c6b2965
Andreas Gampe [Mon, 27 Oct 2014 15:34:44 +0000 (15:34 +0000)]
Merge "ART: Fix ImageSpace error message."
Andreas Gampe [Mon, 27 Oct 2014 15:32:46 +0000 (15:32 +0000)]
Merge "ART: Fix leak in bit_vector"
Calin Juravle [Mon, 27 Oct 2014 15:15:50 +0000 (15:15 +0000)]
Merge "[native bridge] Add test to verify code_cache existance."
Vladimir Marko [Thu, 16 Oct 2014 14:41:48 +0000 (15:41 +0100)]
Rewrite class initialization check elimination.
Split the notion of type being in dex cache away from the
class being initialized. Include static invokes in the class
initialization elimination pass.
Change-Id: Ie3760d8fd55b987f9507f32ef51456a57d79e3fb
Vladimir Marko [Mon, 27 Oct 2014 09:44:31 +0000 (09:44 +0000)]
Merge "Quick: Fix wide Phi detection in GVN, clean up INVOKEs."
Nicolas Geoffray [Mon, 27 Oct 2014 09:41:55 +0000 (09:41 +0000)]
am
e833b110: Merge "ART: optimizing compiler: initial support for ARM64."
* commit '
e833b110876fa8fe34a08f06d2521c74488180bb':
ART: optimizing compiler: initial support for ARM64.
Calin Juravle [Mon, 27 Oct 2014 09:41:54 +0000 (09:41 +0000)]
am
37a71888: Merge "Remove obsolete TODOs from codegen tests"
* commit '
37a7188810e865a1ee0a7bdc2d01d62c1f1ea49e':
Remove obsolete TODOs from codegen tests
Calin Juravle [Mon, 27 Oct 2014 09:41:52 +0000 (09:41 +0000)]
am
1e4dc259: Merge "[native bridge] Make sure we always unload the native bridge"
* commit '
1e4dc259b4242c1a03415b5b5f4aed7a23e53f79':
[native bridge] Make sure we always unload the native bridge
Elliott Hughes [Sun, 26 Oct 2014 21:31:13 +0000 (21:31 +0000)]
Merge "Fix the DW_OP_breg* constants."
Elliott Hughes [Sun, 26 Oct 2014 04:05:01 +0000 (21:05 -0700)]
Fix the DW_OP_breg* constants.
Change-Id: I33225090a9355cf96796574bee473e2acd2a54d8
Ian Rogers [Sat, 25 Oct 2014 22:59:09 +0000 (22:59 +0000)]
Merge "Do not use ld instruction for Mips32."
Andreas Gampe [Sat, 25 Oct 2014 04:55:52 +0000 (21:55 -0700)]
ART: Fix ImageSpace error message.
Use *error_msg instead of error_msg.
Change-Id: Idabee3e4a66effd9f6346a2640a3038c5448889e
Andreas Gampe [Sat, 25 Oct 2014 04:32:07 +0000 (21:32 -0700)]
ART: Fix leak in bit_vector
Resizing leaks the original storage. Let the allocator know it's
free.
Bug:
18120044
Change-Id: Ib95a87c3036f36377d64351173f8c04f28855663
Douglas Leung [Wed, 22 Oct 2014 23:32:28 +0000 (16:32 -0700)]
Do not use ld instruction for Mips32.
Change-Id: If577b8011edb583779360934f4e50ff1779e1b70
Ian Rogers [Sat, 25 Oct 2014 00:14:26 +0000 (00:14 +0000)]
Merge "Tidy logging code not using UNIMPLEMENTED."
Ian Rogers [Fri, 24 Oct 2014 23:28:08 +0000 (23:28 +0000)]
Merge "ARM: Use hardfp calling convention between java to java call."
Zheng Xu [Thu, 23 Oct 2014 10:29:55 +0000 (18:29 +0800)]
ARM: Use hardfp calling convention between java to java call.
This patch default to use hardfp calling convention. Softfp can be enabled
by setting kArm32QuickCodeUseSoftFloat to true.
We get about -1 ~ +5% performance improvement with different benchmark
tests. Hopefully, we should be able to get more performance by address the left
TODOs, as some part of the code takes the original assumption which is not
optimal.
DONE:
1. Interpreter to quick code
2. Quick code to interpreter
3. Transition assembly and callee-saves
4. Trampoline(generic jni, resolution, invoke with access check and etc.)
5. Pass fp arg reg following aapcs(gpr and stack do not follow aapcs)
6. Quick helper assembly routines to handle ABI differences
7. Quick code method entry
8. Quick code method invocation
9. JNI compiler
TODO:
10. Rework ArgMap, FlushIn, GenDalvikArgs and affected common code.
11. Rework CallRuntimeHelperXXX().
Change-Id: I9965d8a007f4829f2560b63bcbbde271bdcf6ec2
Ian Rogers [Fri, 24 Oct 2014 22:26:23 +0000 (22:26 +0000)]
Merge "ART: Add div/rem zero check elimination flag"
Ian Rogers [Fri, 24 Oct 2014 21:57:36 +0000 (21:57 +0000)]
Merge "ART: Prevent float inference back to SSA in-regs."
Stephen Kyle [Thu, 16 Oct 2014 14:02:42 +0000 (15:02 +0100)]
ART: Prevent float inference back to SSA in-regs.
.method public static getInt(I)I
.registers 2
const/4 v0, 0x0
if-ne v0, v0, :after
float-to-int v0, v0
:exit
add-int/2addr v0, v1
return v0
:after
move v1, v0
goto :exit
.end method
In this code sample, v1 is the single parameter to this method. In one
of the phi-nodes inserted between :exit and add-int/2addr, v1's two
incoming SSA regs are:
- the initial def of v1 as a parameter
- the v1 def'd at move v1, v0.
During type inference, because the 2nd def is a float (because of the
earlier float-to-int v0, v0) this will change the type of the 1st def to a
float as well, which is incorrect since the first parameter is known to be
non-float.
This fix checks during phi-node type-inference if an SSA reg that is the
initial def of a parameter vreg is about to be set as float when it was
not previously, and skips the inference if so.
In this case, when using a hard-float ABI, having the in-reg v1 set as
float causes FlushIns() to read the argument to the method from an FP reg,
when the argument will be passed in a core reg by any caller.
Also included is a smali test for this bug: compare difference between
./run-test --64 800
./run-test --64 --interpreter 800
when the vreg_analysis patch has not been applied.
(Requires 64-bit because 32-bit ARM currently does not use hard-float.)
getInt(I)I should return its argument, but it returns an incorrect
value.
Change-Id: I1d4b5be6a931fe853279e89dd820820f29823da1
Signed-off-by: Stephen Kyle <stephen.kyle@arm.com>
Ian Rogers [Fri, 24 Oct 2014 21:20:06 +0000 (14:20 -0700)]
Tidy logging code not using UNIMPLEMENTED.
Change-Id: I7a79c1671a6ff8b2040887133b3e0925ef9a3cfe
Ian Rogers [Fri, 24 Oct 2014 20:43:21 +0000 (20:43 +0000)]
Merge "Code cleanup."
Roland Levillain [Fri, 24 Oct 2014 20:18:17 +0000 (20:18 +0000)]
am
1122c7fc: Merge "Implement int bit-wise not operation in the optimizing compiler."
* commit '
1122c7fc277130814dd1d47b5e8be3ac35b1a5fc':
Implement int bit-wise not operation in the optimizing compiler.
Ian Rogers [Fri, 24 Oct 2014 20:18:14 +0000 (20:18 +0000)]
am
fd9e9561: Merge "C++11 related clean-up of DISALLOW_.."
* commit '
fd9e95619d94608687af201bb296b807716cc7c3':
C++11 related clean-up of DISALLOW_..
Ian Rogers [Fri, 24 Oct 2014 20:18:13 +0000 (20:18 +0000)]
am
79f4ec3f: Merge "Fix arm64 bug introduced by refactoring."
* commit '
79f4ec3fb3bccc4436328eef132c7c6e7db9ef32':
Fix arm64 bug introduced by refactoring.
Nicolas Geoffray [Fri, 24 Oct 2014 15:53:15 +0000 (15:53 +0000)]
Merge "Add more environment variable to control test granularity."
Nicolas Geoffray [Fri, 24 Oct 2014 12:49:08 +0000 (13:49 +0100)]
Add more environment variable to control test granularity.
Change-Id: I7d96b6841db097c51262aa26dba8f331ca7891ff
Nicolas Geoffray [Fri, 24 Oct 2014 15:13:16 +0000 (15:13 +0000)]
Merge "Fix encoding of imul in x86_64 assembler."
Nicolas Geoffray [Fri, 24 Oct 2014 14:43:49 +0000 (15:43 +0100)]
Fix encoding of imul in x86_64 assembler.
Change-Id: I5b97f5698ed8ec9d0759d0e1eba8be29119c16c5
Calin Juravle [Wed, 22 Oct 2014 19:17:58 +0000 (20:17 +0100)]
[native bridge] Add test to verify code_cache existance.
Bug:
18027433
Change-Id: I760acfdc3d109344a0d4fb25ae5d3f067997c547
Sebastien Hertz [Fri, 24 Oct 2014 14:22:05 +0000 (14:22 +0000)]
Merge "Make ObjectRegistry::InternalAdd GC safe"
Ian Rogers [Fri, 24 Oct 2014 13:01:50 +0000 (13:01 +0000)]
am
aea6888b: Merge "Tidy up logging."
* commit '
aea6888b056be21adf762e066c7f33b8939b8a06':
Tidy up logging.
Roland Levillain [Fri, 24 Oct 2014 10:48:38 +0000 (10:48 +0000)]
Merge "Revert "Revert "Implement long negate instruction in the optimizing compiler."""
Roland Levillain [Fri, 24 Oct 2014 10:45:47 +0000 (10:45 +0000)]
Merge "Use test's `-d' option when checking for a directory."
Nicolas Geoffray [Fri, 24 Oct 2014 10:44:50 +0000 (10:44 +0000)]
Merge "Fix wrong unsigned to signed conversions."
Roland Levillain [Thu, 23 Oct 2014 17:12:09 +0000 (18:12 +0100)]
Revert "Revert "Implement long negate instruction in the optimizing compiler.""
This reverts commit
30ca3d847fe72cfa33e1b2473100ea2d8bea4517.
Change-Id: I188ca8d460d55d3a9966bcf31e0588575afa77d2
Sebastien Hertz [Fri, 24 Oct 2014 07:49:38 +0000 (07:49 +0000)]
Merge "Fix JDWP Virtualmachine.Resume command"
Sebastien Hertz [Fri, 24 Oct 2014 07:49:17 +0000 (07:49 +0000)]
Merge "More use of WellKnownClasses for debugger"
Andreas Gampe [Fri, 24 Oct 2014 01:09:58 +0000 (01:09 +0000)]
Merge "ART: Remove old LOG(INFO)"
Mathieu Chartier [Fri, 24 Oct 2014 01:03:32 +0000 (01:03 +0000)]
Merge "Use the passed-in 'name' param to create a MemMap."
Andreas Gampe [Fri, 24 Oct 2014 00:59:19 +0000 (17:59 -0700)]
ART: Remove old LOG(INFO)
Clean up output, it's annoying.
Change-Id: Ifc1972dd3e988f36f781dc989d23cdb93e6f828e
Ian Rogers [Fri, 24 Oct 2014 00:55:27 +0000 (00:55 +0000)]
Merge "Make out-of-line mutex contention dependent on ART_USE_FUTEXES."
Ian Rogers [Fri, 24 Oct 2014 00:48:20 +0000 (17:48 -0700)]
Make out-of-line mutex contention dependent on ART_USE_FUTEXES.
Fix Mac build. Also fix Linux compilation if ART_USE_FUTEXES is disabled.
Change-Id: I51cb1d70b5548ea6121ff7567b9546bad0894e01
Vladimir Marko [Thu, 23 Oct 2014 22:30:12 +0000 (22:30 +0000)]
am
b08f4dcf: Merge "X86 Long Min/Max: Avoid calling SRegToVReg with -1"
* commit '
b08f4dcf90215ed49e0b796ab3e609bd605be8ba':
X86 Long Min/Max: Avoid calling SRegToVReg with -1
Andreas Gampe [Thu, 23 Oct 2014 18:32:06 +0000 (18:32 +0000)]
Merge "ART: Use static_assert in down_cast"
Andreas Gampe [Thu, 23 Oct 2014 18:24:08 +0000 (11:24 -0700)]
ART: Use static_assert in down_cast
Use C++11 to write an actual compile-time assert.
Change-Id: I36bd94adbf6c732e103720308e1e6bf11065f474
Chih-Hung Hsieh [Thu, 23 Oct 2014 18:21:02 +0000 (18:21 +0000)]
Merge "Add missing SHARED_LOCKS_REQUIRED attibute."
Chih-Hung Hsieh [Thu, 23 Oct 2014 18:07:52 +0000 (11:07 -0700)]
Add missing SHARED_LOCKS_REQUIRED attibute.
BUG:
18093707
Change-Id: I66e5c7650c67bb308472ff0da7faed6dff4ead53
Nicolas Geoffray [Thu, 23 Oct 2014 17:32:13 +0000 (18:32 +0100)]
Fix wrong unsigned to signed conversions.
The HIntConstant node takes an int32_t, so we have to keep things signed.
Change-Id: Ib3fa50e87f99118d320cbb381f619d5be9287530
Nicolas Geoffray [Thu, 23 Oct 2014 17:28:50 +0000 (17:28 +0000)]
Merge "ART: Add basic tests for materialized conditions."
Mathieu Chartier [Thu, 23 Oct 2014 17:11:44 +0000 (17:11 +0000)]
Merge "Fix concurrent start bytes race"
Roland Levillain [Thu, 23 Oct 2014 17:11:21 +0000 (17:11 +0000)]
Merge "Revert "Implement long negate instruction in the optimizing compiler.""
Roland Levillain [Thu, 23 Oct 2014 17:07:44 +0000 (18:07 +0100)]
Revert "Implement long negate instruction in the optimizing compiler."
This reverts commit
66ce173a40eff4392e9949ede169ccf3108be2db.
Mathieu Chartier [Thu, 23 Oct 2014 00:18:34 +0000 (17:18 -0700)]
Fix concurrent start bytes race
Previously, we set concurrent start bytes to max int when we
requested a concurrent GC, but there was a race if another thread
was doing another GC and had already completed GrowForUtilization
but had not yet finished the GC. This meant that the thread doing
the GC would update the concurrent start bytes properly, but the
allocating thread would re-update it to max int. Then when the
concurrent GC thread woke up, it would call WaitForGcToComplete
and see that there was a collector running and avoid doing the
concurrent GC, leaving the concurrent start bytes set to max int.
This meant that there would be no more concurrent GC until either
the next explicit GC or the next GC for alloc.
The fix is to only set concurrent start bytes to max int inside of
the CollectGarbageInternal code such that there isn't any way for
two threads to race.
Bug:
17942071
(cherry picked from commit
0133ec454d8dd3fa5ffe35649b5704aa18f15a49)
Change-Id: Ibc23dd2f937a2b5fda51ed064634c034dbb6e668
Alexandre Rames [Wed, 1 Oct 2014 11:55:56 +0000 (12:55 +0100)]
ART: Add basic tests for materialized conditions.
Change-Id: I4acef30cc6a48b5fe07d55db6b9cf0d093b326ee
Vladimir Marko [Wed, 22 Oct 2014 16:15:53 +0000 (17:15 +0100)]
Quick: Fix wide Phi detection in GVN, clean up INVOKEs.
The detection of a wide Phi has been incorrectly looking at
the current LVN's wide sreg value map but we only intersect
live values and thus very often lose the information. This
results in failure to identify identical values, i.e.
potential missed optimizations. It also caused the bloating
of the global value map with values we would not use.
Rewrite the wide Phi detection to use the first merged LVN's
notion of wide sreg. For this to work we also need to use
the method's shorty to mark wide arguments.
Also clean up INVOKEs' processing to avoid another source
of bloating the global value map.
Bug:
16398693
Change-Id: I76718af7d62a8c6883ef43e4f47058f7eaf479e1
Roland Levillain [Thu, 23 Oct 2014 16:14:56 +0000 (16:14 +0000)]
Merge "Implement long negate instruction in the optimizing compiler."
Roland Levillain [Thu, 23 Oct 2014 15:38:33 +0000 (16:38 +0100)]
Implement long negate instruction in the optimizing compiler.
- Add support for the neg-long (long integer two's
complement negate) instruction in the optimizing compiler.
- Add a 64-bit NEG instruction (negq) to the x86-64
assembler.
- Generate ARM, x86 and x86-64 code for integer HNeg nodes.
- Put neg-related tests into test/415-optimizing-arith-neg.
Change-Id: I1fbe9611e134408a6b8745d1df20ab6ffa5e50f2
Calin Juravle [Thu, 23 Oct 2014 16:04:25 +0000 (16:04 +0000)]
Merge "[optimizing compiler] Handle SUB_FLOAT/DOUBLE nodes"
Calin Juravle [Thu, 23 Oct 2014 16:01:13 +0000 (17:01 +0100)]
[optimizing compiler] Handle SUB_FLOAT/DOUBLE nodes
Also add 414-optimizing-arith-sub to
TEST_ART_BROKEN_OPTIMIZING_ARM64_RUN_TESTS.
Change-Id: Ia1b7ff7857bc0e488b9b8ed8a36efb1a3a9bad36
Roland Levillain [Thu, 23 Oct 2014 15:40:59 +0000 (16:40 +0100)]
Use test's `-d' option when checking for a directory.
Change-Id: I2d46ba01ec13daa7aa0b78e447eccbc4f1527a19
Nicolas Geoffray [Thu, 23 Oct 2014 15:34:12 +0000 (15:34 +0000)]
Merge "Use the shared smali test infrastructure for 800-smali."
Calin Juravle [Thu, 23 Oct 2014 15:25:59 +0000 (15:25 +0000)]
Merge "[optimizing compiler] Add float/double subtraction"
Calin Juravle [Thu, 23 Oct 2014 14:38:15 +0000 (15:38 +0100)]
[optimizing compiler] Add float/double subtraction
- for arm, x86, x86_64
- add tests
- a bit of clean up
Change-Id: I3761b0d908aca3e3c5d60da481fafb423ff7c9b9