OSDN Git Service
Andy McFadden [Fri, 26 Feb 2010 21:34:01 +0000 (13:34 -0800)]
Don't set x86 arch variant.
This was a workaround for a missing bit in the core build. No longer
needed.
Andy McFadden [Fri, 26 Feb 2010 18:16:38 +0000 (10:16 -0800)]
Merge "Update a few things in x86-atom."
Andy McFadden [Fri, 26 Feb 2010 15:35:20 +0000 (07:35 -0800)]
Update a few things in x86-atom.
This replaced unuses opcodes EC and EF with C stubs for the breakpoint
and execute-inline/range instructions, which were added after the last
bunch of stuff we rolled out to eclair open-source. I also rebuilt the
"out" dir to pick up the various other changes.
Ben Cheng [Thu, 25 Feb 2010 04:58:44 +0000 (20:58 -0800)]
Tweak the interpreter entries and 2nd level trace filter to capture more traces.
Real changes:
1) Add a new entry point from JIT to the interpreter to request hot traces w/o
doing chaining.
2) Increase the granularity of the secondary profile filter to match 64-byte
chunks using 64 entries.
The remaining are just cosmetic changes.
Brian Carlstrom [Fri, 26 Feb 2010 00:15:50 +0000 (16:15 -0800)]
Merge "First pass at reorganizing org.apache.harmony.xnet.provider.jsse native code into a single file."
Elliott Hughes [Fri, 26 Feb 2010 00:04:11 +0000 (16:04 -0800)]
Merge "Fix a couple of typos in JIT function names."
Brian Carlstrom [Thu, 11 Feb 2010 06:56:47 +0000 (22:56 -0800)]
First pass at reorganizing org.apache.harmony.xnet.provider.jsse native code into a single file.
At enh's suggestion, I'm consoldiating the OpenSSL related native code
into a single wrapper class NativeCrypto. This changes is the firs
step, combining the cpp code into a single NativeCode.cpp. The next
step will involved introducting a single SSL_CTX in NativeCode and
cleaning up SSL_CTX use. As part of this, I'll start moving the native
wrappers to from various OpenSSL*.java classes into NativeCode.
Bill Buzbee [Thu, 25 Feb 2010 23:43:39 +0000 (15:43 -0800)]
Merge "Jit: fix typo that caused incorrect def mask for blr's."
Elliott Hughes [Thu, 25 Feb 2010 23:41:42 +0000 (15:41 -0800)]
Fix a couple of typos in JIT function names.
(I saw these the other day, but preferred a separate patch.)
Bill Buzbee [Thu, 25 Feb 2010 23:38:40 +0000 (15:38 -0800)]
Jit: fix typo that caused incorrect def mask for blr's.
Elliott Hughes [Thu, 25 Feb 2010 22:59:44 +0000 (14:59 -0800)]
Merge "Document that Class.getSigners() always returns null."
Elliott Hughes [Thu, 25 Feb 2010 22:42:17 +0000 (14:42 -0800)]
Document that Class.getSigners() always returns null.
Bug:
1594865
Bug: http://code.google.com/p/android/issues/detail?id=1766
Andy McFadden [Thu, 25 Feb 2010 22:12:32 +0000 (14:12 -0800)]
Merge "Rearrange JDWP cleanup."
Andy McFadden [Thu, 25 Feb 2010 20:31:04 +0000 (12:31 -0800)]
Rearrange JDWP cleanup.
This moves the "get rid of the breakpoints" part before the "tell the
rest of the VM that there's no debugger attached" part. Hitting a
breakpoint when there's no debugger attached is not expected.
For bug
2461667.
Elliott Hughes [Thu, 25 Feb 2010 16:22:52 +0000 (08:22 -0800)]
Merge "Keep the order from getaddrinfo() unchanged if preferIPv6Addresses() is true."
Ben Cheng [Thu, 25 Feb 2010 02:34:25 +0000 (18:34 -0800)]
Merge "Print "JIT" in the thread dump if the top frame is in JIT'ed code."
Andy McFadden [Thu, 25 Feb 2010 02:28:14 +0000 (18:28 -0800)]
Merge "Added printf attribute to exception function."
Ben Cheng [Thu, 25 Feb 2010 01:27:01 +0000 (17:27 -0800)]
Print "JIT" in the thread dump if the top frame is in JIT'ed code.
Elliott Hughes [Thu, 25 Feb 2010 00:36:18 +0000 (16:36 -0800)]
Optimize more easy multiplications by constants.
Rather than make these changes in the libraries (*10 being a common case),
let's do them once and for all in the JIT.
The 2^n-1 case could be better if we generated RSB instructions, but the
current "fake" RSB is still better than a full multiply.
Thumb doesn't support reg/reg/reg/shift instructions, so we can't optimize
the "population count <= 2" cases (such as *10) there.
Tested on sholes, passion, and passion-running-sapphire (and visually
inspected to check we weren't trying to generate Thumb2 instructions there).
Also tested with the self-verifier.
Ben Cheng [Wed, 24 Feb 2010 23:00:40 +0000 (15:00 -0800)]
Enhance the jit profiler to print more statistics and be more verbose.
Specifically, the per-trace invocation percentage is printed now.
D/dalvikvm( 671): TRACEPROFILE 0x42b6eed8
15449863 2.13% [0(+2), 253] Ljava/nio/Buffer;position;()I
D/dalvikvm( 671): TRACEPROFILE 0x42b7b3ac
15410023 2.13% [0x4(+3), 450] Lorg/apache/xml/serializer/CharInfo;shouldMapTextChar;(I)Z
D/dalvikvm( 671): TRACEPROFILE 0x42b7b2cc
15346582 2.12% [0(+2), 449] Lorg/apache/xml/serializer/CharInfo;shouldMapTextChar;(I)Z
D/dalvikvm( 671): TRACEPROFILE 0x42b7b40c
15013650 2.07% [0xb4(+2), 1527] Lorg/apache/xml/serializer/ToStream;characters;([CII)V
D/dalvikvm( 671): TRACEPROFILE 0x42b7b4f0
14907957 2.06% [0xc7(+2), 1537] Lorg/apache/xml/serializer/ToStream;characters;([CII)V
D/dalvikvm( 671): TRACEPROFILE 0x42b7b308
14898588 2.06% [0xad(+3), 1525] Lorg/apache/xml/serializer/ToStream;characters;([CII)V
D/dalvikvm( 671): TRACEPROFILE 0x42b7b52c
14798762 2.04% [0xc4(+2), 1523] Lorg/apache/xml/serializer/ToStream;characters;([CII)V
D/dalvikvm( 671): TRACEPROFILE 0x42b7b570
14763770 2.04% [0xf3(+2), 1577] Lorg/apache/xml/serializer/ToStream;characters;([CII)V
And the top 10 traces will be recompiled in verbose mode to facilitate code
quality analysis.
Andy McFadden [Wed, 24 Feb 2010 19:18:33 +0000 (11:18 -0800)]
am
cf4e8b02: Merge "This is a contribution of x86-atom targeted assembly for the fast byte-code interpreter engine. This is an initial contribution with minimal optimizations that target the Intel ATOM processor. We expect to continuously improve this code. It is expe
Merge commit '
cf4e8b02ecfb5ec17a27ed4188dd7a9db14ab7bf'
* commit '
cf4e8b02ecfb5ec17a27ed4188dd7a9db14ab7bf':
This is a contribution of x86-atom targeted assembly for the fast byte-code interpreter engine. This is an initial contribution with minimal optimizations that target the Intel ATOM processor. We expect to continuously improve this code. It is expected that there will be a discussion on the potential merge of this code and similar efforts (i.e. the mterp/x86 directory first included with cupcake). While this code is intended to target ATOM and not a generic X-86 processor, we were able to show the following improvements over the c-portable interpreter using the simulator build:
Dan Bornstein [Wed, 24 Feb 2010 18:54:08 +0000 (10:54 -0800)]
Clarify a few items in the dex spec.
In particular, do a bit of "may" vs. "must" maintenance, and be specific
about references as arguments to filled-new-array.
Change-Id: Iae4cb734e05cd29230e2c9a343108bbfb3c20193
Andy McFadden [Wed, 24 Feb 2010 17:39:52 +0000 (09:39 -0800)]
Added printf attribute to exception function.
Andy McFadden [Wed, 24 Feb 2010 17:39:09 +0000 (09:39 -0800)]
Merge "Add class init stats to alloc counters (API change)."
Jesse Wilson [Wed, 24 Feb 2010 01:58:01 +0000 (17:58 -0800)]
Merge "Implementing still more DOM API for text nodes. - Text.isElementContentWhitespace() - Text.getWholeText() - Text.replaceWholeText()"
Jesse Wilson [Tue, 23 Feb 2010 23:23:26 +0000 (15:23 -0800)]
Implementing still more DOM API for text nodes.
- Text.isElementContentWhitespace()
- Text.getWholeText()
- Text.replaceWholeText()
Andy McFadden [Tue, 23 Feb 2010 01:07:23 +0000 (17:07 -0800)]
Add class init stats to alloc counters (API change).
Add calls to retrieve class initialization stats via the allocation
count mechanism.
Also: deprecate a method that is never used, and a redundantly declared
default filename that begins with "/sdcard".
For bug
2461549.
Brian Carlstrom [Wed, 24 Feb 2010 00:39:09 +0000 (16:39 -0800)]
Minor fix for Adb.waitForNonEmptyDirectory so that waiting for /sdcard after reboot works again.
Jeff Hao [Tue, 23 Feb 2010 22:49:38 +0000 (14:49 -0800)]
Merge "Fixed bug
2438465, prevented blocks with move-result from being combined."
Andy McFadden [Tue, 23 Feb 2010 21:46:14 +0000 (13:46 -0800)]
Merge "This is a contribution of x86-atom targeted assembly for the fast byte-code interpreter engine. This is an initial contribution with minimal optimizations that target the Intel ATOM processor. We expect to continuously improve this code. It is expected that there will be a discussion on the potential merge of this code and similar efforts (i.e. the mterp/x86 directory first included with cupcake). While this code is intended to target ATOM and not a generic X-86 processor, we were able to show the following improvements over the c-portable interpreter using the simulator build: Build: TARGET_SIMULATOR: true TARGET_BUILD_TYPE: release TARGET_PRODUCT: sim Environment: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz PI = Portable Interpreter IA = Fast IA Interpreter Embedded CaffeineMark: (IA-PI)/PI: Average of 70% improvement on overall score SPECjbb2000*: (IA-PI)/PI: Average of 37% improvement on raw score SPECjvm98*: (PI/IA) Speedup: Mtrt: 1.2; Jess: 1.34; Compress: 1.57; Db: 1.46; Jack: 1.28 * SPECjbb2000 - 1 warehouse. Noncompliant - modified to run on Dalvik * SPECjvm98 - Noncompliant - modified to run on Dalivk"
Brian Carlstrom [Tue, 23 Feb 2010 19:31:46 +0000 (11:31 -0800)]
DalvikRunner --tee option to send output to a file or stdout at runtime
Added --tee option so we can watch test output while the test is
running, as opposed to waiting until all the output is collected.
As part of this, Command.Builder can now optionally specifiy a
PrintStream via tee (name from tee(1)).
Added ADB.waitForFile to accompany ADB.waitForNonEmptyDirectory
Removed gross bash wait loop hack in Activity Mode by replacing
Mode.buildCommands with Mode.runTestCommand.
Fixed bug that out generated APK package names did not contain a
required "." in all cases.
jeffhao [Tue, 23 Feb 2010 20:29:47 +0000 (12:29 -0800)]
Fixed bug
2438465, prevented blocks with move-result from being combined.
jeffhao [Tue, 23 Feb 2010 20:29:47 +0000 (12:29 -0800)]
Fixed bug
2438465, prevented blocks with move-result from being combined.
Johnnie Birch [Mon, 6 Apr 2009 22:26:13 +0000 (15:26 -0700)]
This is a contribution of x86-atom targeted assembly for the fast byte-code interpreter engine. This is an initial contribution with minimal optimizations that target the Intel ATOM processor. We expect to continuously improve this code. It is expected that there will be a discussion on the potential merge of this code and similar efforts (i.e. the mterp/x86 directory first included with cupcake). While this code is intended to target ATOM and not a generic X-86 processor, we were able to show the following improvements over the c-portable interpreter using the simulator build:
Build: TARGET_SIMULATOR: true
TARGET_BUILD_TYPE: release
TARGET_PRODUCT: sim
Environment: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz
PI = Portable Interpreter
IA = Fast IA Interpreter
Embedded CaffeineMark: (IA-PI)/PI: Average of 70% improvement on overall score
SPECjbb2000*: (IA-PI)/PI: Average of 37% improvement on raw score
SPECjvm98*: (PI/IA) Speedup: Mtrt: 1.2; Jess: 1.34; Compress: 1.57; Db: 1.46; Jack: 1.28
* SPECjbb2000 - 1 warehouse. Noncompliant - modified to run on Dalvik
* SPECjvm98 - Noncompliant - modified to run on Dalivk
Dan Bornstein [Tue, 23 Feb 2010 00:08:53 +0000 (16:08 -0800)]
Add a test case for the jsr / invoke bug. (See the included
info.txt for more details.)
Change-Id: I6ae5266e3f3371406c366d4f4644a445875adf95
Jesse Wilson [Sat, 20 Feb 2010 19:12:12 +0000 (11:12 -0800)]
Merge "Removing dead code from BigInt"
Jesse Wilson [Sat, 20 Feb 2010 19:11:40 +0000 (11:11 -0800)]
Merge "More XML DOM v3 APIs."
Jesse Wilson [Sat, 20 Feb 2010 18:20:55 +0000 (10:20 -0800)]
More XML DOM v3 APIs.
This adds the following APIs and tests:
- Node.isDefaultNamespace
- DomImplementation.hasFeature
- Node.isSupported
- Node.getFeature
- Node.isEqualNode
Jesse Wilson [Sat, 20 Feb 2010 18:35:21 +0000 (10:35 -0800)]
Removing dead code from BigInt
Elliott Hughes [Sat, 20 Feb 2010 06:14:19 +0000 (22:14 -0800)]
Remove external/jsr305, external/guava, and external/caliper.
Ben Cheng [Fri, 19 Feb 2010 23:30:16 +0000 (15:30 -0800)]
Merge "Disable JIT for armv5te for A/B tests."
Ben Cheng [Fri, 19 Feb 2010 22:49:44 +0000 (14:49 -0800)]
Disable JIT for armv5te for A/B tests.
Jesse Wilson [Fri, 19 Feb 2010 19:18:41 +0000 (11:18 -0800)]
DOM setTextContent() tests and implementation fixes.
Jesse Wilson [Fri, 19 Feb 2010 17:30:04 +0000 (09:30 -0800)]
Merge "Removing bogus check to permit on-host debugging."
Jesse Wilson [Fri, 19 Feb 2010 17:28:57 +0000 (09:28 -0800)]
Removing bogus check to permit on-host debugging.
Jesse Wilson [Fri, 19 Feb 2010 17:28:28 +0000 (09:28 -0800)]
Merge "Adding JSON tests to the complete test suite."
Jesse Wilson [Fri, 19 Feb 2010 17:27:27 +0000 (09:27 -0800)]
Adding JSON tests to the complete test suite.
Jesse Wilson [Fri, 19 Feb 2010 17:27:00 +0000 (09:27 -0800)]
Merge "Filling in some gaps in our XML DOM v3 API."
Jesse Wilson [Fri, 19 Feb 2010 17:22:21 +0000 (09:22 -0800)]
Filling in some gaps in our XML DOM v3 API.
Specifically, these methods on Node:
- setTextContent()
- isSameNode()
- lookupPrefix()
- lookupNamespaceURI()
In order to implement the last 2 I needed to fix our KXml parser
to include namespace attributes (ie. xmlns) in the pulled document.
Previously these were being elided.
Added a new testcase to verify our behaviour. It passes the RI. On
Dalvik we have a small issue with entity declarations.
Added a new testcase to verify Node.getBaseURI(). This test fails
because the method isn't implemented. Part of this test required
moving a method out to Support_Resources.java; in order to verify
the BaseURI the XML must be read from a file and not a stream (so
that path information exists).
Also...
- Style cleanup: changing static calls to look like static calls.
- Efficiency: avoiding concatenating with "" when unnecessary
- Duplication: sharing prefix validation between attributes and elements
- Renaming NodeTests to NodeTest for vogar-friendliness
Outstanding:
- I need to write a test for setTextContent().
Elliott Hughes [Thu, 18 Feb 2010 23:18:41 +0000 (15:18 -0800)]
More DalvikRunner cleanup.
Remove the now-unnecessary jsr305 and guava build dependencies.
Move TestActivity.java -- which is only needed at *run* time -- out into
lib/, which lets us simplify the makefile.
Pass the dalvik.annotation.* source files to javac(1) (at *run* time) so
we don't need the run-time dependency on core-intermediates [that I'd
already removed in a successful attempt to find out why we had the
dependency].
We need to remove all uses of those useless annotations from the harmony
tests so we can get back in sync with upstream, but now also so that we
can clean up this part of DalvikRunner.
Elliott Hughes [Thu, 18 Feb 2010 01:44:31 +0000 (17:44 -0800)]
Add a simple MD5-based cache to DalvikRunner.
This makes the new simpler scheme pretty much free.
I've also made a start on simplifying the make rules, though there's more we
can do, and I'll look at that next.
Elliott Hughes [Thu, 18 Feb 2010 00:25:06 +0000 (16:25 -0800)]
Merge "Make DalvikRunner work on production devices too."
Elliott Hughes [Wed, 17 Feb 2010 23:53:05 +0000 (15:53 -0800)]
Merge "Add a general-purpose scoped pointer for libcore JNI."
Elliott Hughes [Wed, 17 Feb 2010 23:46:05 +0000 (15:46 -0800)]
Make DalvikRunner work on production devices too.
Place pre-built .jar files in our lib/ directory, and dex/push them on demand.
Change DalvikRunner to somewhat reduce the number of different classpaths in
play. My feeling is that we just want one true classpath: we should build with
it on the host, we should run with it on the host, we should dex everything on
it, we should upload everything to the device, and we should run with it on the
device.
Also add a convenience script for running DalvikRunner. ("Vogar" is the
proposed open source name for DalvikRunner, which really isn't as
dalvikvm-specific as the name might imply.)
There's a noticeable performance regression here, so my next change will be to
add a cache.
Jesse Wilson [Wed, 17 Feb 2010 18:44:11 +0000 (10:44 -0800)]
Fixing packages for JSON tests
Jesse Wilson [Wed, 17 Feb 2010 18:10:36 +0000 (10:10 -0800)]
Merge "First round of tests for the subset of the org.json in Android."
Jesse Wilson [Tue, 16 Feb 2010 21:50:32 +0000 (13:50 -0800)]
First round of tests for the subset of the org.json in Android.
Steinar H. Gunderson [Fri, 12 Feb 2010 16:10:52 +0000 (17:10 +0100)]
Keep the order from getaddrinfo() unchanged if preferIPv6Addresses() is true.
Ben Cheng [Wed, 17 Feb 2010 06:28:11 +0000 (22:28 -0800)]
Merge "Detect system-wide safe mode and configure the VM accordingly."
Jesse Wilson [Wed, 17 Feb 2010 05:58:11 +0000 (21:58 -0800)]
Merge "Removing unnecessary org.w3c.dom subpackages"
Jesse Wilson [Fri, 12 Feb 2010 00:08:33 +0000 (16:08 -0800)]
Removing unnecessary org.w3c.dom subpackages
Bill Buzbee [Wed, 17 Feb 2010 00:12:55 +0000 (16:12 -0800)]
Merge "Jit: Monitor exit, possible fix for Issue
2396073"
Bill Buzbee [Tue, 16 Feb 2010 22:40:01 +0000 (14:40 -0800)]
Jit: Monitor exit, possible fix for Issue
2396073
Two problems with monitor-exit:
1. The Jit code wasn't checking for exception thrown following
unlocks of fat locks using dvmUnlockObject().
2. The mterp interpreter unlock code branched to handle exceptions
thrown during dvmUnlockObject() with the wrong dalvik PC (the
dPC of the unlock, rather than the instruction following the unlock).
Similar issue with the x86 interpreter fixed. Also, deleted armv7-a
MONITOR_ENTER template, which turned out to be identical to the armv5te
one.
Ben Cheng [Mon, 15 Feb 2010 00:17:36 +0000 (16:17 -0800)]
Detect system-wide safe mode and configure the VM accordingly.
Use pthread_cond_wait instead of timed wait for the system_server process to
wait on the go-ahead JIT signal. If the phone is booted under system-wide safe
mode, such signal will never come so all VM instances (including the system
server) will run in the interpreter-only mode.
Bug:
2267590
Jesse Wilson [Tue, 16 Feb 2010 22:57:30 +0000 (14:57 -0800)]
Merge "Reverting our test runner's background building behaviour."
Jesse Wilson [Tue, 16 Feb 2010 22:30:31 +0000 (14:30 -0800)]
Reverting our test runner's background building behaviour.
Our continuous build has been failing to complete lately. See:
http://jwilson.mtv.corp.google.com:8080/job/master_passion/274/consoleFull
In addition to this problem the continuous build is compiling many
more tests ahead-of-time than we were originally - previously we
would only have up to 4 tests ready-to-run at any given time. With
this change the ExecutorCompletionService was building and installing
all of the tests eagerly.
I believe the problem might be a mismatch between how the BlockingQueue
and the ExecutorCompletionService select which order to return futures.
By removing the ExecutorCompletionService I remove the opportunity for
such a conflict!
Andy McFadden [Tue, 16 Feb 2010 22:08:29 +0000 (14:08 -0800)]
Flan -> Froyo
Andy McFadden [Thu, 11 Feb 2010 23:59:02 +0000 (15:59 -0800)]
Merge "Minor dexdeps touchups."
Andy McFadden [Tue, 9 Feb 2010 21:30:57 +0000 (13:30 -0800)]
Minor dexdeps touchups.
Made XML output the default.
Added a couple of blank lines in the "brief" output.
Added version number (1.1) and a copyright one-liner.
Ben Cheng [Thu, 11 Feb 2010 23:39:52 +0000 (15:39 -0800)]
Merge "Use ashmem to create the JIT code cache."
Ben Cheng [Thu, 11 Feb 2010 23:03:00 +0000 (15:03 -0800)]
Use ashmem to create the JIT code cache.
Bill Buzbee [Thu, 11 Feb 2010 22:35:57 +0000 (14:35 -0800)]
Merge "Jit: Minor codegen tuning."
Bill Buzbee [Thu, 11 Feb 2010 22:04:53 +0000 (14:04 -0800)]
Jit: Minor codegen tuning.
Jesse Wilson [Thu, 11 Feb 2010 20:40:50 +0000 (12:40 -0800)]
Fixing problems with the test runner's ability to parse expected results files.
It appears that the original authors of this testing framework didn't really
know whether these files were supposed to be XML or HTML, UTF-8 or UTF-16, and
so there's quite a mess of processing in order to canonicalize them.
Jesse Wilson [Thu, 11 Feb 2010 20:38:08 +0000 (12:38 -0800)]
Merge "Fixing some of our XSLT implementation issues."
The Android Open Source Project [Thu, 11 Feb 2010 19:20:09 +0000 (11:20 -0800)]
am
a38780c9: merge from open-source master
Merge commit '
a38780c9858aee807a52ad5615da4d32a4bafca0'
* commit '
a38780c9858aee807a52ad5615da4d32a4bafca0':
Fix a couple minor bugs (bug
2404859) in TraceDump.c
Added support for filter in dmtracedump tool, along with some test cases.
Fix for unmatched entry/exit points in test traces
Brian Carlstrom [Thu, 11 Feb 2010 07:07:32 +0000 (23:07 -0800)]
Make DalvikRunner more resilient to running immediately after device reboot
Changed EnvironmentDevice.prepare to waitForDevice and
waitForNonEmptyDirectory("/sdcard") before proceeding to fix problem with
running immediately after "fastboot flashall"
dalvik/libcore/tools/runner/java/dalvik/runner/EnvironmentDevice.java
Added Adb.waitForDevice and Adb.waitForNonEmptyDirectory
dalvik/libcore/tools/runner/java/dalvik/runner/Adb.java
Added Command.executeWithTimeout based on code refactored from Mode.java
dalvik/libcore/tools/runner/java/dalvik/runner/Command.java
dalvik/libcore/tools/runner/java/dalvik/runner/Mode.java
The Android Open Source Project [Thu, 11 Feb 2010 18:02:33 +0000 (10:02 -0800)]
merge from open-source master
Elliott Hughes [Wed, 3 Feb 2010 02:24:57 +0000 (18:24 -0800)]
Add a general-purpose scoped pointer for libcore JNI.
This is a functional equivalent of C++0x's std::unique_ptr.
(I'm not planning to use this in froyo, but I want it there in case I have to
backport changes from dalvik-dev.)
Ben Cheng [Thu, 11 Feb 2010 01:21:39 +0000 (17:21 -0800)]
Free memory associated with the trace descriptor of ALL dropped JIT work orders
To further reduce the memory consumption only enable the method vs trace
compile size stats when WITH_JIT_TUNING is configured.
Jesse Wilson [Tue, 2 Feb 2010 19:39:05 +0000 (11:39 -0800)]
Fixing some of our XSLT implementation issues.
These changes move our XSLT code to passing 1898/3173 of the OASIS tests.
To contrast, the RI passes 2105/3173 tests.
Highlights:
- Implementing getTextContent() for nodes
- Removing validation during transforms. We don't support validation!
- Fixing attribute constraints to match the spec
- Fixing test suite to not confuse BaseURI from NamespaceURI
Ben Cheng [Wed, 10 Feb 2010 22:49:59 +0000 (14:49 -0800)]
Merge "Support per-application switch to execute the VM in safe mode."
Jeff Hao [Wed, 10 Feb 2010 22:34:14 +0000 (14:34 -0800)]
Merge "Added LDMIA/STMIA support to Self Verification mode."
Dan Egnor [Wed, 10 Feb 2010 22:32:15 +0000 (14:32 -0800)]
Merge "Add a setHandshakeTimeout() to OpenSSLSocketImpl, which sets a read timeout that only applies to the SSL handshake step."
Dan Egnor [Wed, 10 Feb 2010 19:48:08 +0000 (11:48 -0800)]
Add a setHandshakeTimeout() to OpenSSLSocketImpl, which sets
a read timeout that only applies to the SSL handshake step.
Bug:
2362543
Brian Carlstrom [Wed, 10 Feb 2010 20:34:01 +0000 (12:34 -0800)]
Fix NamingPatternCodeFinder to detect final classes
Ben Cheng [Tue, 9 Feb 2010 00:03:42 +0000 (16:03 -0800)]
Support per-application switch to execute the VM in safe mode.
This is the implementation on the VM side to consume the android:safeMode=true
attribute and force the application to run in interpreter-only mode (the
current safe mode).
Bug:
2267583
jeffhao [Wed, 10 Feb 2010 18:51:02 +0000 (10:51 -0800)]
Added LDMIA/STMIA support to Self Verification mode.
Brian Carlstrom [Wed, 10 Feb 2010 18:32:11 +0000 (10:32 -0800)]
Merge "Remove TestRunner.success field / Make postCompileTest return void"
Brian Carlstrom [Wed, 10 Feb 2010 07:28:11 +0000 (23:28 -0800)]
Remove TestRunner.success field / Make postCompileTest return void
SUMMARY:
- Change TestRunner subclasses to instead implement a Runner interface
- Cleanup runtime classpath generation
- Misc improvements
DETAILS:
Change TestRunner subclasses to instead implement a Runner interface
*Runner classes now implement the new Runner interface instead of
extending TestRunner. prepareTest/test now take a "Class
testClass" instead of accessing a "String testClass" from the
superclass. This also means that all their "static void main"
methods are removed and replaced with a single main method in
TestRunner. TestActivity can now instantiate a TestRunner and call
its "boolean run()" method to execute tests and retrieve their
SUCCESS/FAILURE status via the return value, allowing the removeal
of TestRunner.success. Mode now needs to explicitly include
TestRunner.java in the list of code to compile because it no
longer is implicitly found by compiling its former subclasses.
java/dalvik/runner/TestRunner.java
java/dalvik/runner/Runner.java
java/dalvik/runner/CaliperRunner.java
java/dalvik/runner/JUnitRunner.java
java/dalvik/runner/JtregRunner.java
java/dalvik/runner/MainRunner.java
java/dalvik/runner/Mode.java
CodeFinder.getRunnerClass now returns a Runner, not a TestRunner
java/dalvik/runner/CodeFinder.java
java/dalvik/runner/JUnitFinder.java
java/dalvik/runner/CaliperFinder.java
java/dalvik/runner/JtregFinder.java
java/dalvik/runner/MainFinder.java
Similarly, TestRun.runnerClass is now a Runner, not a TestRunner
java/dalvik/runner/TestRun.java
Move logic to run a test based on TestProperties.RUNNER_CLASS from
TestActivity to TestRunner since its now used in all cases, not
just the Activity case. TestActivity.ActivityRunner remains the
one subclass of TestRunner, accessing the TestRunner.run(...)
logic via super.run(...), allowing it to maintain its special
result file writing logic.
java/dalvik/runner/TestActivity.java
java/dalvik/runner/TestRunner.java
Moved writing of TestProperties.RUNNER_CLASS from ActivityMode now
that it is used for all Modes.
java/dalvik/runner/ActivityMode.java
java/dalvik/runner/Mode.java
Since CaliperRunner now has a "Class testClass", it uses the more
strongly typed Runner.main(Class<? extends Benchmark>, ...) API.
java/dalvik/runner/CaliperRunner.java
Fixing javadoc TestRunner->Runner
java/dalvik/runner/TestProperties.java
Adding new Runner class to the build.
Android.mk
Cleanup runtime classpath generation
Changed Mode.postCompileTest to return void instead of Classpath
to match Most.postCompileTestRunner. Removed passing test
classpath from compile to run via TestRun.testClasspath. Instead,
Vm.getRuntimeSupportClasspath now is used to compute full
classpath, instead of using the old TestRun.getTestClasspath in
Mode. Mode.compileTest now uses a boolean to indicate compilation
success, instead of null/non-null Classpath. TestRun.testClasspath
is now replaced with TestRun.testCompiled which is used to track
compilation success. In retrospect, it seems like using the
absense of a Classpath as an indication of compilation
success/failure seems like somewhat of a hack.
java/dalvik/runner/Mode.java
java/dalvik/runner/ActivityMode.java
java/dalvik/runner/DeviceDalvikVm.java
java/dalvik/runner/JavaVm.java
java/dalvik/runner/TestRun.java
New deviceDexFile to make sure dex file name generation stays
consistent between build time and compile time.
java/dalvik/runner/DeviceDalvikVm.java
Changed MainRunner implementation to more closely match JtregRunner
java/dalvik/runner/MainRunner.java
Misc improvements
Changed TestActivity to use a shutdown hook to catch when a test
calls System.exit so we can be sure to write a result file and not
simply wait for the timeout to catch our failure to return.
java/dalvik/runner/TestActivity.java
Changed Mkdir.mkdirs to use new Command().execute to get automatic
logging of command execution with --verbose
java/dalvik/runner/Mkdir.java
Improved javadoc
java/dalvik/runner/Mode.java
Fixed apparently misplaced @SuppressWarnings("unchecked")
java/dalvik/runner/OptionParser.java
Enabling warnings as errors and turning on unchecked warnings.
Android.mk
Made sure test script works with fresh device and improved logging
test-dalvik-runner.sh
jeffhao [Tue, 9 Feb 2010 22:55:47 +0000 (14:55 -0800)]
Added missing break statements and improved debugging in SelfVerification.
Jack Veenstra [Thu, 28 Jan 2010 23:57:02 +0000 (15:57 -0800)]
Fix a couple minor bugs (bug
2404859) in TraceDump.c
1. A switch statement was missing a "break" after option letter "f".
2. The heavily-used function "lookupMethod()" had an expression using mod (%) instead of bitwise-and (&).
Rodrigo Ipince [Fri, 18 Dec 2009 02:07:28 +0000 (18:07 -0800)]
Added support for filter in dmtracedump tool, along with some test cases.
Some corner cases are still not handled in the code, but will be eventually.
Rodrigo Ipince [Thu, 22 Oct 2009 20:21:02 +0000 (13:21 -0700)]
Fix for unmatched entry/exit points in test traces
Added support for the creation of test traces with unmatched entries/exits (current implementation segfaulted in some cases)
Bill Buzbee [Tue, 9 Feb 2010 20:56:57 +0000 (12:56 -0800)]
Merge "Jit: Phase 1 of register utility cleanup/rewrite - the great renaming"
Bill Buzbee [Tue, 9 Feb 2010 19:16:15 +0000 (11:16 -0800)]
Jit: Phase 1 of register utility cleanup/rewrite - the great renaming
Renaming of all of those register utilities which used to be local because
of our include mechanism to the standard dvmCompiler prefix scheme.
Brian Carlstrom [Tue, 9 Feb 2010 19:10:04 +0000 (11:10 -0800)]
Merge "DalvikRunner can run a test as an android.app.Activity & PathClassLoader.toString change"
Brian Carlstrom [Fri, 5 Feb 2010 19:05:20 +0000 (11:05 -0800)]
DalvikRunner can run a test as an android.app.Activity & PathClassLoader.toString change
SUMMARY:
- PathClassLoader.toString prints path
- DalvikRunner --mode activity now working
- new DalvikRunner --no-clean vs --no-clean-after behavior
DETAILS
Dalvik runtime change
Changed PathClassLoader.toString to print the class loaders path
Also fixed variable name in commented out debug code
libcore/dalvik/src/main/java/dalvik/system/PathClassLoader.java
Dalvik Runner changes
Mode is the new abstract superclass of the existing Vm
class. ActivityMode is for the new Mode of running as a Activity
on the device. Vm is now a subclass of Mode and its JavaVm and
DeviceDalvikVm still exist although some code has been refactored
into the new Environment clases (see below)
libcore/tools/runner/java/dalvik/runner/Mode.java
libcore/tools/runner/java/dalvik/runner/ActivityMode.java
libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java
Environment and its subclasses EnvironmentHost and
EnvironmentDevice allow us to reuse some common code between the
two different device modes (ActivityMode and
DeviceDalvikVm). Basically code that was more about where and how
to do things based on where the code was running as opposed to how
the code was running moved to the Environment classes. For
example, prepare() logic for /sdcard/ and ADB code in general.
libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/Environment.java
libcore/tools/runner/java/dalvik/runner/EnvironmentDevice.java
libcore/tools/runner/java/dalvik/runner/EnvironmentHost.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java
Adding new files
libcore/tools/runner/Android.mk
Aapt is a wrapper for "aapt" similar to Adb and Dx
libcore/tools/runner/java/dalvik/runner/Aapt.java
Added Adb.install and Adb.uninstall methods
Changed from using File.toString to File.getPath for clarity
libcore/tools/runner/java/dalvik/runner/Adb.java
CodeFinder has been extended so that Driver can ask finders what
they need to build and run, specifically through the new
getRunnerJava and getRunnerClasspath. (As part of this
NamingPatternCodeFinder's runnerClass was changed to
getRunnerClass for consistency with the superclass.) This was
important for running as an Activity because we want to minimize
what we pack into the APK file because of the "dx --dex" runtime
and not just pull in all possible runners and supporting
libraries. TestRun objects also hold onto this information from
their finders.
libcore/tools/runner/java/dalvik/runner/Driver.java
libcore/tools/runner/java/dalvik/runner/CodeFinder.java
libcore/tools/runner/java/dalvik/runner/CaliperFinder.java
libcore/tools/runner/java/dalvik/runner/JUnitFinder.java
libcore/tools/runner/java/dalvik/runner/JtregFinder.java
libcore/tools/runner/java/dalvik/runner/MainFinder.java
libcore/tools/runner/java/dalvik/runner/NamingPatternCodeFinder.java
libcore/tools/runner/java/dalvik/runner/TestRun.java
TestRunner TestRunner's className is now testClass to clarifiy it
from the runnerClass.
libcore/tools/runner/java/dalvik/runner/TestRunner.java
libcore/tools/runner/java/dalvik/runner/CaliperRunner.java
libcore/tools/runner/java/dalvik/runner/JUnitRunner.java
libcore/tools/runner/java/dalvik/runner/JtregRunner.java
libcore/tools/runner/java/dalvik/runner/MainRunner.java
Classpath now has a Collection.of and Collection.addAll that take
a Collection<File> instead if just a File...
libcore/tools/runner/java/dalvik/runner/Classpath.java
Added Command.args(File arg) to avoid a lot of
args(file.getPath())
libcore/tools/runner/java/dalvik/runner/Command.java
Option --clean has expanded to --clean-before, --clean-after, and
--clean. Now --no-clean will remove nothing as Elliot
requested. --no-clean-after is now what is useful for
DalvikRunner debuggin. Default is still to clean before and
after.
libcore/tools/runner/java/dalvik/runner/DalvikRunner.java
Moved Vm.DALVIK_RUNNER_HOME to DalvikRunner.HOME.
/tmp/<UUID> paths are now /tmp/dalvikrunner/<UUID> paths are easier cleanup.
libcore/tools/runner/java/dalvik/runner/DalvikRunner.java
Driver was changed to use a ExecutorCompletionService around the
ExecutorService so that exceptions from the execute threads could
be reported on the main thread.
libcore/tools/runner/java/dalvik/runner/Driver.java
We now build the testrunner before the test so that its classes
will be around to be packed into APK files.
libcore/tools/runner/java/dalvik/runner/Driver.java
Dx.dex now takes File arguments instread of Strings. Dx.dex also
needs to pass additional memory arguments to not run out of memory
building the big dex for the APK. The values I used where from the
build/core/definitions.mk
libcore/tools/runner/java/dalvik/runner/Dx.java
postCompile was split into postCompileTestRunner and
postCompileTest because the packaging requires are very different
in each case for ActivityMode. Specifically, the test runner is
not post-packaged seperately, but packaged in the APK with each
test.
libcore/tools/runner/java/dalvik/runner/ActivityMode.java
libcore/tools/runner/java/dalvik/runner/DeviceDalvikVm.java
libcore/tools/runner/java/dalvik/runner/JavaVm.java
libcore/tools/runner/java/dalvik/runner/Vm.java
Changed testClass to test to avoid collision with new superclass field
libcore/tools/runner/java/dalvik/runner/JtregRunner.java
libcore/tools/runner/java/dalvik/runner/MainRunner.java
Added @SuppressWarnings("unchecked")
libcore/tools/runner/java/dalvik/runner/OptionParser.java
New android.app.Activity based on Elliot's TestAPK. It encapsulates an
ActivityRunner that invokes the appropriate TestRunner based on test.properties.
libcore/tools/runner/java/dalvik/runner/TestActivity.java
New class that shared contains (old and some new) between the
DalvikRunner and the TestRunner.
libcore/tools/runner/java/dalvik/runner/TestProperties.java
Regression test script for debugging the matrix of various
DalvikRunner modes and test types:
libcore/tools/runner/test-dalvik-runner.sh
Ben Cheng [Tue, 9 Feb 2010 04:57:59 +0000 (20:57 -0800)]
Free the memory associated with the trace descriptor of dropped JIT work orders.
Bill Buzbee [Tue, 9 Feb 2010 01:08:15 +0000 (17:08 -0800)]
Jit: Startup/Shutdown cleanup
A legacy of early parallel Jit development was separate Startup & Shutdown
code for the interpreter half of the jit (dvmJitStartup/dvmJitShutdown)
and the compiler half (dvmCompilerStartup/dvmCompilerShutdown). This cl
eliminates the dvmJit pair. Additionally, guard coded added to the
framework callback to return immediately if the Jit isn't active.