OSDN Git Service

android-x86/art.git
10 years agoMerge "Fix build."
Brian Carlstrom [Sat, 15 Mar 2014 00:57:39 +0000 (00:57 +0000)]
Merge "Fix build."

10 years agoMerge "Make MemMap::MapAnonymous() fail if the requested address is not available."
Brian Carlstrom [Fri, 14 Mar 2014 23:44:59 +0000 (23:44 +0000)]
Merge "Make MemMap::MapAnonymous() fail if the requested address is not available."

10 years agoMake MemMap::MapAnonymous() fail if the requested address is not available.
Hiroshi Yamauchi [Thu, 13 Mar 2014 22:10:27 +0000 (15:10 -0700)]
Make MemMap::MapAnonymous() fail if the requested address is not available.

Change MapAnonymous() so that a requested address vs. actual map
address mismatch will cause a failure. The existing MapAnonymous()
call sites do not check this. This should prevent potential rare case
bugs where mmap does not happen to map a region at an specified
address.

There's a potential bug that if MapAnonymous() does not guarantee the
requested address (and there's a gap between the image/oat files and
the zygote/malloc space), then GC could in theory allocate a large
object space in the gap. This would break the GC notion of the immune
space. This change will prevent this by causing all non-moving spaces
to be (really) adjacent, with no gaps in between, which CL 87711
missed.

Change-Id: Id4adb0e30adbad497334d7e00def4c0c66b15719

10 years agoMerge "Remove unused variable and tidy test #includes."
Ian Rogers [Fri, 14 Mar 2014 21:39:56 +0000 (21:39 +0000)]
Merge "Remove unused variable and tidy test #includes."

10 years agoRemove unused variable and tidy test #includes.
Ian Rogers [Fri, 14 Mar 2014 21:37:59 +0000 (14:37 -0700)]
Remove unused variable and tidy test #includes.

Change-Id: I0eaeea0d50f66302d632aab400cfa48dc301ef69

10 years agoMerge "x86-64 disassembler support."
Ian Rogers [Fri, 14 Mar 2014 21:17:17 +0000 (21:17 +0000)]
Merge "x86-64 disassembler support."

10 years agox86-64 disassembler support.
Ian Rogers [Fri, 14 Mar 2014 21:06:14 +0000 (14:06 -0700)]
x86-64 disassembler support.

Change-Id: I0ae39ae1ffdae2500ff368354f9e4702445176f0

10 years agoFix build.
Robert Craig [Fri, 14 Mar 2014 17:48:45 +0000 (13:48 -0400)]
Fix build.

Patch helps fix the following build breakage.

art/runtime/native/dalvik_system_Zygote.cc:173:3: error: unknown type name 'rlimit'
  rlimit rlim;

Change-Id: I5f6fb29ae71e8819dcdb42eee986f896d856f712
Signed-off-by: rpcraig <rpcraig@tycho.ncsc.mil>
10 years agoMerge "Use quick generic JNI calls based on compiler driver options."
Ian Rogers [Fri, 14 Mar 2014 20:43:01 +0000 (20:43 +0000)]
Merge "Use quick generic JNI calls based on compiler driver options."

10 years agoMerge "Work-around GCC polymorphism problems."
Ian Rogers [Fri, 14 Mar 2014 20:31:37 +0000 (20:31 +0000)]
Merge "Work-around GCC polymorphism problems."

10 years agoWork-around GCC polymorphism problems.
Ian Rogers [Fri, 14 Mar 2014 20:29:43 +0000 (13:29 -0700)]
Work-around GCC polymorphism problems.

Change-Id: Ica1d8e6840cdd9ba493405e66c1728b5da9540a2

10 years agoUse quick generic JNI calls based on compiler driver options.
Ian Rogers [Fri, 14 Mar 2014 20:20:26 +0000 (13:20 -0700)]
Use quick generic JNI calls based on compiler driver options.

Change-Id: Ic70f4b9b5759eb11b35677c0039fb00eb1c4c506

10 years agoMerge "64bit build fix."
Ian Rogers [Fri, 14 Mar 2014 19:01:17 +0000 (19:01 +0000)]
Merge "64bit build fix."

10 years ago64bit build fix.
Ian Rogers [Fri, 14 Mar 2014 19:00:39 +0000 (12:00 -0700)]
64bit build fix.

Change-Id: I8c597217955d12b215bdcf1d92ca5fab9a7ed6e0

10 years agoMerge "Refactor reflective method invocation."
Ian Rogers [Fri, 14 Mar 2014 18:29:45 +0000 (18:29 +0000)]
Merge "Refactor reflective method invocation."

10 years agoRefactor reflective method invocation.
Ian Rogers [Fri, 14 Mar 2014 06:45:53 +0000 (23:45 -0700)]
Refactor reflective method invocation.

Move invocation code out of JNI internal into reflection, including ArgArray
code. Make reflective invocation use the ArgArray to build arguments rather
than allocating a jvalue[] and unboxing arguments into that.
Move reflection part of jni_internal_test into reflection_test.
Make greater use of fast JNI.

Change-Id: Ib381372df5f9a83679e30e7275de24fa0e6b1057

10 years agoMerge "Refactor reference code into mirror namespace."
Mathieu Chartier [Fri, 14 Mar 2014 17:16:15 +0000 (17:16 +0000)]
Merge "Refactor reference code into mirror namespace."

10 years agoRefactor reference code into mirror namespace.
Mathieu Chartier [Thu, 13 Mar 2014 19:22:56 +0000 (12:22 -0700)]
Refactor reference code into mirror namespace.

Added two new files: mirror/reference.h and mirror/reference-inl.h.

Change-Id: Ibe3ff6379aef7096ff130594535b7f7c0b7dabce

10 years agoMerge "Add dependency for operations with x86 FPU stack"
Bill Buzbee [Fri, 14 Mar 2014 15:51:35 +0000 (15:51 +0000)]
Merge "Add dependency for operations with x86 FPU stack"

10 years agoMerge "Remove small duplicate code in Generic JNI handling, add comments"
Andreas Gampe [Fri, 14 Mar 2014 15:32:12 +0000 (15:32 +0000)]
Merge "Remove small duplicate code in Generic JNI handling, add comments"

10 years agoRemove small duplicate code in Generic JNI handling, add comments
Andreas Gampe [Fri, 14 Mar 2014 14:52:20 +0000 (07:52 -0700)]
Remove small duplicate code in Generic JNI handling, add comments

Change-Id: Ib276fa63b6a00480eaaff6c352d37917c61e966c

10 years agoMerge "mips has no sa_restorer."
Narayan Kamath [Fri, 14 Mar 2014 13:04:07 +0000 (13:04 +0000)]
Merge "mips has no sa_restorer."

10 years agomips has no sa_restorer.
Narayan Kamath [Fri, 14 Mar 2014 12:53:43 +0000 (12:53 +0000)]
mips has no sa_restorer.

This change should be a no-op, because we're not using
it anyway. FaultManager doesn't seem designed for inheritance,
so I can't put this in an arch specific subclass.

Change-Id: I2eaabdf2a77ef558c59139344f8654cf3ccafa86

10 years agoMerge "Fix path for arch/mips/fault_handler_mips.cc"
Brian Carlstrom [Fri, 14 Mar 2014 03:30:54 +0000 (03:30 +0000)]
Merge "Fix path for arch/mips/fault_handler_mips.cc"

10 years agoFix path for arch/mips/fault_handler_mips.cc
Brian Carlstrom [Fri, 14 Mar 2014 03:27:42 +0000 (20:27 -0700)]
Fix path for arch/mips/fault_handler_mips.cc

Change-Id: I4af53b2d1f34641e2c5b68474f80f88613a51bbe

10 years agoAdd dependency for operations with x86 FPU stack
Serguei Katkov [Wed, 12 Mar 2014 08:56:54 +0000 (15:56 +0700)]
Add dependency for operations with x86 FPU stack

Load Hoisting optimization can re-order operations with
FPU stack due to no dependency set.

Patch adds resource dependency between these operations.

Change-Id: Iccce98c8f3c565903667c03803884d9de1281ea8
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoMerge "Avoid bus error from reading unaligned 64-bit literal"
Brian Carlstrom [Fri, 14 Mar 2014 01:25:11 +0000 (01:25 +0000)]
Merge "Avoid bus error from reading unaligned 64-bit literal"

10 years agoMerge "Fix heap trimming logic."
Mathieu Chartier [Thu, 13 Mar 2014 22:46:42 +0000 (22:46 +0000)]
Merge "Fix heap trimming logic."

10 years agoFix heap trimming logic.
Mathieu Chartier [Thu, 13 Mar 2014 21:46:09 +0000 (14:46 -0700)]
Fix heap trimming logic.

The new heap trimming logic introduced in the c/84301 was not very
good since the heap trim would get avoided since the daemon thread
was coming to the heap trimming code before the scheduled time.

The new logic is to do the heap trim if the last heap trim occurred
more than kHeapTrimWait ns ago.

Change-Id: I9d0e6766bf0c68e5f7fb15fb059140e1f1264216

10 years agoMerge "Fixes for Generic JNI"
Andreas Gampe [Thu, 13 Mar 2014 22:21:55 +0000 (22:21 +0000)]
Merge "Fixes for Generic JNI"

10 years agoFixes for Generic JNI
Andreas Gampe [Thu, 13 Mar 2014 01:07:19 +0000 (18:07 -0700)]
Fixes for Generic JNI

This fixes some linking issues and native code retrieval errors.
All host tests are functional with this change.

Make ArtMethod::GetFrameSizeInBytes() templated to bypass the
embedded sanity check. Necessary for fix-up decision.

Add ArtMethod metadata fix-up code to ClassLinker::LinkCode.
Necessitates new parameters to access the shorty and compute
the frame size.

Fix handling the JNI dlsym lookup stub in the generic JNI code.

Change-Id: I4173b0fbb1ba5b1bcbee1bb340cfdd08a54767e5

10 years agoAvoid bus error from reading unaligned 64-bit literal
Brian Carlstrom [Thu, 13 Mar 2014 22:12:11 +0000 (15:12 -0700)]
Avoid bus error from reading unaligned 64-bit literal

Change-Id: I5932f130e6a8d31e09ef615e8544ff0e1073ede9

10 years agoMerge "Implicit null/suspend checks (oat version bump)"
Dave Allison [Thu, 13 Mar 2014 19:24:47 +0000 (19:24 +0000)]
Merge "Implicit null/suspend checks (oat version bump)"

10 years agoImplicit null/suspend checks (oat version bump)
Dave Allison [Fri, 21 Feb 2014 00:06:36 +0000 (16:06 -0800)]
Implicit null/suspend checks (oat version bump)

This adds the ability to use SEGV signals
to throw NullPointerException exceptions from Java code rather
than having the compiler generate explicit comparisons and
branches.  It does this by using sigaction to trap SIGSEGV and when triggered
makes sure it's in compiled code and if so, sets the return
address to the entry point to throw the exception.

It also uses this signal mechanism to determine whether to check
for thread suspension.  Instead of the compiler generating calls
to a function to check for threads being suspended, the compiler
will now load indirect via an address in the TLS area.  To trigger
a suspend, the contents of this address are changed from something
valid to 0.  A SIGSEGV will occur and the handler will check
for a valid instruction pattern before invoking the thread
suspension check code.

If a user program taps SIGSEGV it will prevent our signal handler
working.  This will cause a failure in the runtime.

There are two signal handlers at present.  You can control them
individually using the flags -implicit-checks: on the runtime
command line.  This takes a string parameter, a comma
separated set of strings.  Each can be one of:

none        switch off
null        null pointer checks
suspend     suspend checks
all         all checks

So to switch only suspend checks on, pass:
-implicit-checks:suspend

There is also -explicit-checks to provide the reverse once
we change the default.

For dalvikvm, pass --runtime-arg -implicit-checks:foo,bar

The default is -implicit-checks:none

There is also a property 'dalvik.vm.implicit_checks' whose value is the same
string as the command option.  The default is 'none'.  For example to switch on
null checks using the option:

setprop dalvik.vm.implicit_checks null

It only works for ARM right now.

Bumps OAT version number due to change to Thread offsets.

Bug: 13121132
Change-Id: If743849138162f3c7c44a523247e413785677370

10 years agoMerge "Allow patching between dex files in the boot classpath."
Jeff Hao [Thu, 13 Mar 2014 17:55:43 +0000 (17:55 +0000)]
Merge "Allow patching between dex files in the boot classpath."

10 years agoMerge "Refactor immune region logic into its own file."
Mathieu Chartier [Thu, 13 Mar 2014 17:20:47 +0000 (17:20 +0000)]
Merge "Refactor immune region logic into its own file."

10 years agoRefactor immune region logic into its own file.
Mathieu Chartier [Thu, 13 Mar 2014 00:42:10 +0000 (17:42 -0700)]
Refactor immune region logic into its own file.

Added immune_region.cc/.h in the collector directory. Changed the
functionality to no longer assume spaces are added to immune region
in ascending order.

Change-Id: Id1d643b3849ad2695e8a151dbbb74a5035644472

10 years agoMerge "Fix debugger crashes in presence of proxy objects."
Sebastien Hertz [Thu, 13 Mar 2014 16:16:13 +0000 (16:16 +0000)]
Merge "Fix debugger crashes in presence of proxy objects."

10 years agoMerge "Implement FINAL/OVERRIDE for clang."
Ian Rogers [Thu, 13 Mar 2014 16:13:20 +0000 (16:13 +0000)]
Merge "Implement FINAL/OVERRIDE for clang."

10 years agoImplement FINAL/OVERRIDE for clang.
Ian Rogers [Thu, 13 Mar 2014 16:02:55 +0000 (09:02 -0700)]
Implement FINAL/OVERRIDE for clang.

Separate declaration from definition in certain places to work-around issues
with clang.
Remove bogus lock annotation at definition in compilers.cc that is already
present at the declaration.
Remove duplicate definition of ClassReference.

Change-Id: I5368057bb36319a259110b2198610d9d2b2e5041

10 years agoMerge "Fix thread suspension assertion in debugger."
Sebastien Hertz [Thu, 13 Mar 2014 16:12:08 +0000 (16:12 +0000)]
Merge "Fix thread suspension assertion in debugger."

10 years agoFix thread suspension assertion in debugger.
Sebastien Hertz [Thu, 13 Mar 2014 15:17:40 +0000 (16:17 +0100)]
Fix thread suspension assertion in debugger.

Updates Dbg::GetThreadGroup to ensure we do call EndAssertNoThreadSuspension
after StartAssertNoThreadSuspension and not returning in the middle. Note this
only happens in debug mode where this assertion is enabled.

Also add missing thread safety annotations.

Bug: 13425576
Change-Id: Idb9f32d289038b77771369c1283774676ff433c7

10 years agoMerge "Use LIRSlowPath for intrinsics, improve String.indexOf()."
Vladimir Marko [Thu, 13 Mar 2014 16:00:35 +0000 (16:00 +0000)]
Merge "Use LIRSlowPath for intrinsics, improve String.indexOf()."

10 years agoUse LIRSlowPath for intrinsics, improve String.indexOf().
Vladimir Marko [Thu, 13 Mar 2014 14:11:28 +0000 (14:11 +0000)]
Use LIRSlowPath for intrinsics, improve String.indexOf().

Rewrite intrinsic launchpads to use the LIRSlowPath.
Improve String.indexOf for constant chars by avoiding
the check for code points over 0xFFFF.

Change-Id: I7fd5583214c5b4ab9c38ee36c5d6f003dd6345a8

10 years agoMerge "Bump up stack overflow region for 64bit."
Ian Rogers [Thu, 13 Mar 2014 15:19:04 +0000 (15:19 +0000)]
Merge "Bump up stack overflow region for 64bit."

10 years agoFix debugger crashes in presence of proxy objects.
Sebastien Hertz [Thu, 13 Mar 2014 10:52:31 +0000 (11:52 +0100)]
Fix debugger crashes in presence of proxy objects.

Fix ClassHelper::NumDirectInterfaces to use IfTable::Count instead of the
iftable array's length (which is twice the interface count). This happens when
processing ReferenceType::Interfaces command and was causing a crash.

Return ABSENT_INFORMATION error code when we're asked for the source file of a
proxy class. Otherwise we call ClassHelper::GetSourceFile which expect the
class has a corresponding ClassDef item in the DEX file which is not true for
proxy classes.

Add new proxy_test to check ClassHelper works correctly with proxy classes.

Bug: 13426918
Change-Id: I5c1212b1a697dd7dc1ab18e99552ee113c533a5a

10 years agoMerge "ART's intrinsic for String.indexOf use the incorrect register"
Bill Buzbee [Thu, 13 Mar 2014 13:33:19 +0000 (13:33 +0000)]
Merge "ART's intrinsic for String.indexOf use the incorrect register"

10 years agoMerge "Add dex2oat --print-pass-names and --disable-passes= options."
Vladimir Marko [Thu, 13 Mar 2014 12:10:49 +0000 (12:10 +0000)]
Merge "Add dex2oat --print-pass-names and --disable-passes= options."

10 years agoMerge "Move inline method detection to runtime."
Vladimir Marko [Thu, 13 Mar 2014 10:33:35 +0000 (10:33 +0000)]
Merge "Move inline method detection to runtime."

10 years agoMerge "Fix non-{arm, x86} builds."
Nicolas Geoffray [Thu, 13 Mar 2014 10:30:13 +0000 (10:30 +0000)]
Merge "Fix non-{arm, x86} builds."

10 years agoFix non-{arm, x86} builds.
Nicolas Geoffray [Thu, 13 Mar 2014 10:28:41 +0000 (10:28 +0000)]
Fix non-{arm, x86} builds.

Change-Id: If4c13775f8e1fd0fd26b4a731f3011c77b0bfed1

10 years agoMerge "Fix virt-specifiers outside class definition errors."
Nicolas Geoffray [Thu, 13 Mar 2014 09:59:19 +0000 (09:59 +0000)]
Merge "Fix virt-specifiers outside class definition errors."

10 years agoFix virt-specifiers outside class definition errors.
Nicolas Geoffray [Thu, 13 Mar 2014 09:50:25 +0000 (09:50 +0000)]
Fix virt-specifiers outside class definition errors.

Change-Id: Iab341e12e7a978aff6bc35117e9b15f3b2c2cedd

10 years agoMerge "More code generation for the optimizing compiler."
Nicolas Geoffray [Thu, 13 Mar 2014 09:24:22 +0000 (09:24 +0000)]
Merge "More code generation for the optimizing compiler."

10 years agoMore code generation for the optimizing compiler.
Nicolas Geoffray [Tue, 11 Mar 2014 17:53:17 +0000 (17:53 +0000)]
More code generation for the optimizing compiler.

- Add HReturn instruction
- Generate code for locals/if/return
- Setup infrastructure for register allocation. Currently
  emulate a stack.

Change-Id: Ib28c2dba80f6c526177ed9a7b09c0689ac8122fb

10 years agoMerge "Add command line support for enabling the optimizing compiler."
Nicolas Geoffray [Thu, 13 Mar 2014 09:12:59 +0000 (09:12 +0000)]
Merge "Add command line support for enabling the optimizing compiler."

10 years agoAdd command line support for enabling the optimizing compiler.
Nicolas Geoffray [Fri, 7 Mar 2014 15:28:39 +0000 (15:28 +0000)]
Add command line support for enabling the optimizing compiler.

Also run tests with the optimizing compiler enabled when
the file art/USE_OPTIMIZING_COMPILER is present.

Change-Id: Ibc33eed62a43547bc3b9fe786d014c0d81b5add8

10 years agoART's intrinsic for String.indexOf use the incorrect register
Yevgeny Rouban [Thu, 13 Mar 2014 05:15:58 +0000 (12:15 +0700)]
ART's intrinsic for String.indexOf use the incorrect register

ART's intrinsic for String.indexOf of x86 platform use the incorrect register
to compare start with the string length. It should be fixed.

Change-Id: I22986b4d4b23f62b4bb97baab9fe43152d12145e
Signed-off-by: Vladimir Ivanov <vladimir.a.ivanov@intel.com>
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
10 years agoBump up stack overflow region for 64bit.
Ian Rogers [Thu, 13 Mar 2014 06:35:11 +0000 (23:35 -0700)]
Bump up stack overflow region for 64bit.

Change-Id: Ia57538ae4ae2d13c5c570a8cbdf3f7703b568c87

10 years agoMerge "Fix type of constant to be long."
Ian Rogers [Thu, 13 Mar 2014 01:54:32 +0000 (01:54 +0000)]
Merge "Fix type of constant to be long."

10 years agoFix type of constant to be long.
Ian Rogers [Thu, 13 Mar 2014 01:40:08 +0000 (18:40 -0700)]
Fix type of constant to be long.

Change-Id: Ie6bf60ccfd0517b6e07c7e4461f58c84b4a51fe4

10 years agoAllow patching between dex files in the boot classpath.
Jeff Hao [Wed, 12 Mar 2014 18:05:25 +0000 (11:05 -0700)]
Allow patching between dex files in the boot classpath.

Change-Id: I53f219a5382d0fcd580e96e50025fdad4fc399df

10 years agoMerge "Work-around stack overflow issues."
Andreas Gampe [Thu, 13 Mar 2014 00:02:07 +0000 (00:02 +0000)]
Merge "Work-around stack overflow issues."

10 years agoWork-around stack overflow issues.
Ian Rogers [Wed, 12 Mar 2014 23:23:09 +0000 (16:23 -0700)]
Work-around stack overflow issues.

Change-Id: I06693a53469f1f2cccc956bff5d53f04aed5f62d

10 years agoMerge "Fixing structure of native frame for Generic JNI"
Andreas Gampe [Wed, 12 Mar 2014 22:20:00 +0000 (22:20 +0000)]
Merge "Fixing structure of native frame for Generic JNI"

10 years agoFixing structure of native frame for Generic JNI
Andreas Gampe [Mon, 10 Mar 2014 20:37:40 +0000 (13:37 -0700)]
Fixing structure of native frame for Generic JNI

This changes the layout of the callee-save frame used in generic
JNI to be consistent with the JNI compiler, that is, the SIRT is
inline (above the method reference). Now the location of the
"this" object is consistent.

Change-Id: Ibad0882680712cb640b4c70ada0229ef7cf4e62c

10 years agoMerge "Fix tests for 64b"
Andreas Gampe [Wed, 12 Mar 2014 22:14:25 +0000 (22:14 +0000)]
Merge "Fix tests for 64b"

10 years agoMerge "Improve use of CHECK macros."
Ian Rogers [Wed, 12 Mar 2014 22:01:53 +0000 (22:01 +0000)]
Merge "Improve use of CHECK macros."

10 years agoMerge "Fix oatdump for apps."
Dave Allison [Wed, 12 Mar 2014 21:50:13 +0000 (21:50 +0000)]
Merge "Fix oatdump for apps."

10 years agoImprove use of CHECK macros.
Ian Rogers [Wed, 12 Mar 2014 21:32:27 +0000 (14:32 -0700)]
Improve use of CHECK macros.

Motivated by a bogus compiler warning for debug with O2, switch from
CHECK(x < y) to the recommended CHECK_LT(x, y). Fix bug in
RosAlloc::Initialize where an assignment was being performed within
a DCHECK.

Change-Id: Iaf466849ae79ae1497162e81a3e092bf13109aa9

10 years agoFix tests for 64b
Andreas Gampe [Wed, 12 Mar 2014 21:11:40 +0000 (14:11 -0700)]
Fix tests for 64b

These tests make assumptions about pointer sizes.

Change-Id: Idfd410144393d716ae176a6e9a51c5b414e0888e

10 years agoMerge "Implement proxy support for x86-64."
Ian Rogers [Wed, 12 Mar 2014 19:18:10 +0000 (19:18 +0000)]
Merge "Implement proxy support for x86-64."

10 years agoImplement proxy support for x86-64.
Ian Rogers [Wed, 12 Mar 2014 19:11:54 +0000 (12:11 -0700)]
Implement proxy support for x86-64.

Change-Id: I91490a38347fdee413a191412f07b883654d4229

10 years agoMerge "Set default dex2oat instruction set for x86-64 and ARM64."
Ian Rogers [Wed, 12 Mar 2014 19:07:11 +0000 (19:07 +0000)]
Merge "Set default dex2oat instruction set for x86-64 and ARM64."

10 years agoSet default dex2oat instruction set for x86-64 and ARM64.
Ian Rogers [Wed, 12 Mar 2014 18:51:02 +0000 (11:51 -0700)]
Set default dex2oat instruction set for x86-64 and ARM64.

Change-Id: I43062dfadb8a4f51304fd06f0105d6af81cf0331

10 years agoMerge "Fixed and refactored 64b host build"
Andreas Gampe [Wed, 12 Mar 2014 18:36:39 +0000 (18:36 +0000)]
Merge "Fixed and refactored 64b host build"

10 years agoFix oatdump for apps.
Dave Allison [Wed, 12 Mar 2014 18:05:39 +0000 (11:05 -0700)]
Fix oatdump for apps.

This fixes the assertion failure for the interpreter to interpreter bridge offset
when dumping an app.

Bug: 13433669
Change-Id: Ic405ef7e43b849573a27db2ffa570e87b80c6af7

10 years agoFixed and refactored 64b host build
Andreas Gampe [Wed, 12 Mar 2014 17:59:26 +0000 (10:59 -0700)]
Fixed and refactored 64b host build

Add a global variable ART_HOST_ARCH in build/Android.common.mk that
will be set to x86 or x86_64 depending on BUILD_HOST_64bit. This is
then used as the instruction set for dex2oat.

Change-Id: Icec8ef9139f780314a3ff325a729750e65d6d8da

10 years agoMove inline method detection to runtime.
Vladimir Marko [Wed, 12 Mar 2014 15:42:41 +0000 (15:42 +0000)]
Move inline method detection to runtime.

The debugger needs this for selective deoptimization.

Change-Id: I8100000449b56e619288fb05d41ea6f02b53b334

10 years agoAdd dex2oat --print-pass-names and --disable-passes= options.
Chao-ying Fu [Tue, 11 Mar 2014 21:57:19 +0000 (14:57 -0700)]
Add dex2oat --print-pass-names and --disable-passes= options.

Add --print-pass-names to print a list of pass names.
Add --disable-passes= to disable one ore more passes
separated by comma.
Ex: Using --disable-passes=UseCount,BBOptimizations can disable UseCount
and BBOptimizations passes.

Change-Id: I0dffaf10547afdcca78a20d8e0e6b358bfb2ee8c
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
10 years agoMerge "Test Method.getModifiers() result for proxy methods"
Brian Carlstrom [Wed, 12 Mar 2014 15:58:55 +0000 (15:58 +0000)]
Merge "Test Method.getModifiers() result for proxy methods"

10 years agoTest Method.getModifiers() result for proxy methods
Brian Carlstrom [Wed, 12 Mar 2014 15:42:34 +0000 (08:42 -0700)]
Test Method.getModifiers() result for proxy methods

Change-Id: I2ba3be80ea21c5cfc0e2b9463270e34622c8c92b

10 years agoMerge "A few 64bit fixes."
Ian Rogers [Wed, 12 Mar 2014 15:42:04 +0000 (15:42 +0000)]
Merge "A few 64bit fixes."

10 years agoA few 64bit fixes.
Ian Rogers [Wed, 12 Mar 2014 08:02:21 +0000 (01:02 -0700)]
A few 64bit fixes.

Change-Id: I1fe189d638b9cb5127b897da6cecdad6902db930

10 years agoMerge "Remove spurious duplicate line of code"
Ian Rogers [Wed, 12 Mar 2014 05:04:36 +0000 (05:04 +0000)]
Merge "Remove spurious duplicate line of code"

10 years agoMerge "Always reset CFI state."
Ian Rogers [Wed, 12 Mar 2014 04:56:00 +0000 (04:56 +0000)]
Merge "Always reset CFI state."

10 years agoAlways reset CFI state.
Ian Rogers [Tue, 11 Mar 2014 23:29:07 +0000 (16:29 -0700)]
Always reset CFI state.

.cfi_startproc simple may do even less than .cfi_startproc, so don't rely on
it. Instead, use regular .cfi_startporc and always set up the expected entry
state.

Change-Id: I6d3e8b8e4a07621bc99c062359a109eb76f85184

10 years agoRemove spurious duplicate line of code
buzbee [Tue, 11 Mar 2014 23:05:14 +0000 (16:05 -0700)]
Remove spurious duplicate line of code

This CL removes a duplicate line of code which appears to have
been intended for removal during a cleanup, but wasn't.  It would
not have affected correctness, rather it uselessly performed the
same store twice.

Bug originally reported by M Mendell.

Change-Id: If4333a29f32b6bdb944b67aa560d856611041ff6

10 years agoMerge "Put the post zygote non-moving space next to the malloc space."
Hiroshi Yamauchi [Tue, 11 Mar 2014 21:47:18 +0000 (21:47 +0000)]
Merge "Put the post zygote non-moving space next to the malloc space."

10 years agoPut the post zygote non-moving space next to the malloc space.
Hiroshi Yamauchi [Tue, 11 Mar 2014 19:19:04 +0000 (12:19 -0700)]
Put the post zygote non-moving space next to the malloc space.

This change fixes the following problem with the GSS collector: if the
post zygote non-moving space happens to be located after the bump
pointer spaces, the bump pointer space is treated wrongfully as an
immune space. The reasons are 1) the immune space is represented by a
simple address range and 2) the GSS collector treats the post zygote
non-moving space as an immune space at a bump pointer space only
collection.

In addition, this change makes it a reality that all the non-moving
spaces are adjacent, which we tend to assume in the code (eg. the
notion of the immune space represented by a simple address range.)
This should help avoid potential confusions in the future.

Fix a DCHECK failure where usable_size isn't set properly when
-XX:UseTLAB is used.

Change-Id: I585920e433744a390f87e9a25bef6114b2a4623f

10 years agoMerge "Ensure functions start with clean CFA state."
Ian Rogers [Tue, 11 Mar 2014 18:44:00 +0000 (18:44 +0000)]
Merge "Ensure functions start with clean CFA state."

10 years agoEnsure functions start with clean CFA state.
Ian Rogers [Tue, 11 Mar 2014 18:30:20 +0000 (11:30 -0700)]
Ensure functions start with clean CFA state.

.cfi_startproc doesn't reset CFA state and so delivering exceptions and the
like can leave the CFA with an incorrect offset. Reset the state in the
DEFINE_FUNCTION macro.
Also fix using test/run-test with --gdb for the target.

Change-Id: I4c03768e118ef1e06d34fedce856919e6ecba0c4

10 years agoMerge "Fix BitVector::SetInitialBits()."
Vladimir Marko [Tue, 11 Mar 2014 13:49:19 +0000 (13:49 +0000)]
Merge "Fix BitVector::SetInitialBits()."

10 years agoFix BitVector::SetInitialBits().
Vladimir Marko [Tue, 11 Mar 2014 12:42:25 +0000 (12:42 +0000)]
Fix BitVector::SetInitialBits().

Change-Id: Iad3699d76ad69536aa4810329f5863bc995f6551

10 years agoMerge "Avoid Cache*LoweringInfo pass when there's no GET/PUT/INVOKE."
Vladimir Marko [Tue, 11 Mar 2014 11:28:49 +0000 (11:28 +0000)]
Merge "Avoid Cache*LoweringInfo pass when there's no GET/PUT/INVOKE."

10 years agoAvoid Cache*LoweringInfo pass when there's no GET/PUT/INVOKE.
Vladimir Marko [Thu, 6 Mar 2014 15:18:04 +0000 (15:18 +0000)]
Avoid Cache*LoweringInfo pass when there's no GET/PUT/INVOKE.

Add new data flow flags indicating instance/static field
access. Record merged flags of all insns and use them to skip
the CacheFieldLoweringInfo pass if the method uses no fields
and the CacheMethodLoweringInfo pass if it has no invokes.

Change-Id: I36a36b438ca9b0f104a7baddc0497d736495cc3c

10 years agoMerge "Disable host clang only if WITHOUT_HOST_CLANG is set"
Ying Wang [Tue, 11 Mar 2014 02:03:26 +0000 (02:03 +0000)]
Merge "Disable host clang only if WITHOUT_HOST_CLANG is set"

10 years agoDisable host clang only if WITHOUT_HOST_CLANG is set
Ying Wang [Tue, 11 Mar 2014 01:27:10 +0000 (18:27 -0700)]
Disable host clang only if WITHOUT_HOST_CLANG is set

Bug: 13402154
Change-Id: Ib915e31106aeb2adf64f8fa5d008b34debc205d7

10 years agoMerge "Unify 64bit int constant definitions."
Ian Rogers [Tue, 11 Mar 2014 01:06:50 +0000 (01:06 +0000)]
Merge "Unify 64bit int constant definitions."

10 years agoUnify 64bit int constant definitions.
Ian Rogers [Mon, 10 Mar 2014 23:18:37 +0000 (16:18 -0700)]
Unify 64bit int constant definitions.

LL and ULL prefixes are word size dependent, use the INT64_C and UINT64_C
macros instead.

Change-Id: I5b70027651898814fc0b3e9e22a18a1047e76cb9