OSDN Git Service

android-x86/art.git
9 years agoImplement register allocator for floating point registers.
Nicolas Geoffray [Wed, 15 Oct 2014 17:31:05 +0000 (18:31 +0100)]
Implement register allocator for floating point registers.

Also:
- Fix misuses of emitting the rex prefix in the x86_64 assembler.
- Fix movaps code generation in the x86_64 assembler.

Change-Id: Ib6dcf6e7c4a9c43368cfc46b02ba50f69ae69cbe

9 years agoMerge "Constant folding on unary operations in the optimizing compiler."
Roland Levillain [Tue, 21 Oct 2014 13:34:59 +0000 (13:34 +0000)]
Merge "Constant folding on unary operations in the optimizing compiler."

9 years agoMerge "Implement int negate instruction in the optimizing compiler."
Roland Levillain [Tue, 21 Oct 2014 13:28:20 +0000 (13:28 +0000)]
Merge "Implement int negate instruction in the optimizing compiler."

9 years agoConstant folding on unary operations in the optimizing compiler.
Roland Levillain [Mon, 20 Oct 2014 15:47:04 +0000 (16:47 +0100)]
Constant folding on unary operations in the optimizing compiler.

Change-Id: I4b77afa2a89f5ad2eedd4d6c0c6c382585419349

9 years agoImplement int negate instruction in the optimizing compiler.
Roland Levillain [Mon, 20 Oct 2014 15:36:47 +0000 (16:36 +0100)]
Implement int negate instruction in the optimizing compiler.

- Add support for the neg-int (integer two's complement
  negate) instruction in the optimizing compiler.
- Add a HNeg node type for control-flow graphs and an
  intermediate HUnaryOperation base class.
- Generate ARM, x86 and x86-64 code for integer HNeg nodes.

Change-Id: I72fd3e1e5311a75c38a8cb665a9211a20325a42e

9 years agoMerge "Remove the notion of dies at entry."
Nicolas Geoffray [Tue, 21 Oct 2014 10:48:42 +0000 (10:48 +0000)]
Merge "Remove the notion of dies at entry."

9 years agoRemove the notion of dies at entry.
Nicolas Geoffray [Fri, 17 Oct 2014 10:06:38 +0000 (11:06 +0100)]
Remove the notion of dies at entry.

- Instead, explicitly say that the output does not overlap.
- Inputs that must be in a fixed register do die at entry,
  as we know they have a location that others can not take.
- There is also no need to differentiate between an input move
  and a connecting sibling move - those can be put in the
  same parallel move instruction.

Change-Id: I1b2b2827906601f822b59fb9d6a21d48e43bae27

9 years agoMerge "Shut down FaultManager after shutting down threads."
Vladimir Marko [Tue, 21 Oct 2014 09:18:53 +0000 (09:18 +0000)]
Merge "Shut down FaultManager after shutting down threads."

9 years agoMerge "Support running run-test in ndebug mode through make."
Nicolas Geoffray [Tue, 21 Oct 2014 09:03:00 +0000 (09:03 +0000)]
Merge "Support running run-test in ndebug mode through make."

9 years agoSupport running run-test in ndebug mode through make.
Nicolas Geoffray [Thu, 16 Oct 2014 17:04:12 +0000 (18:04 +0100)]
Support running run-test in ndebug mode through make.

Change-Id: I514f44f356ecd0bf64d3f5b1295a99ff52a5d7b3

9 years agoMerge "Link libsigchain.a instead of sigchain.o"
Dmitriy Ivanov [Tue, 21 Oct 2014 01:23:28 +0000 (01:23 +0000)]
Merge "Link libsigchain.a instead of sigchain.o"

9 years agoLink libsigchain.a instead of sigchain.o
Dmitriy Ivanov [Mon, 20 Oct 2014 21:11:00 +0000 (14:11 -0700)]
Link libsigchain.a instead of sigchain.o

  Relative paths may sometimes lead to failed builds
  if sources are built in particular order.

  Also it is possible to export symbols from static lib
  with LOCAL_WHOLE_STATIC_LIBRARIES variable.

Change-Id: I6d62594c2e84020d67254747c1fd465e1144920e

9 years agoMerge "Refactor quick entrypoints"
Ian Rogers [Mon, 20 Oct 2014 23:09:30 +0000 (23:09 +0000)]
Merge "Refactor quick entrypoints"

9 years agoRefactor quick entrypoints
Ian Rogers [Tue, 23 Sep 2014 05:51:09 +0000 (22:51 -0700)]
Refactor quick entrypoints

Remove FinishCalleeSaveFrameSetup.
Assembly routines write down anchor into TLS as well as placing runtime
method in callee save frame.
Simplify artSet64InstanceFromCode by not computing the referrer from the
stack in the C++ code.
Move assembly offset tests next to constant declaration and tidy arch_test.

Change-Id: Iededeebc05e54a1e2bb7bb3572b8ba012cffa1c8

9 years agoMerge "Rosalloc should print unreachable page map type"
Hiroshi Yamauchi [Mon, 20 Oct 2014 17:18:50 +0000 (17:18 +0000)]
Merge "Rosalloc should print unreachable page map type"

9 years agoShut down FaultManager after shutting down threads.
Vladimir Marko [Mon, 20 Oct 2014 17:13:22 +0000 (18:13 +0100)]
Shut down FaultManager after shutting down threads.

Bug: 17703163
Change-Id: I7a8454b61e887376d019af601f3a416d18bc0760

9 years agoMerge "Add perf option to art tool"
Calin Juravle [Mon, 20 Oct 2014 16:59:09 +0000 (16:59 +0000)]
Merge "Add perf option to art tool"

9 years agoAdd perf option to art tool
Calin Juravle [Mon, 20 Oct 2014 14:58:57 +0000 (15:58 +0100)]
Add perf option to art tool

'art --perf' will record user space cycle information
'art --perf-report' will also report the saved data.

When using perf, the temporary data directory is not deleted.

Change-Id: Iadceeb3883f815cac8ed2b8a96b9b8363661d156

9 years agoMerge "Have HInstruction::StrictlyDominates compute strict dominance."
Roland Levillain [Mon, 20 Oct 2014 09:37:45 +0000 (09:37 +0000)]
Merge "Have HInstruction::StrictlyDominates compute strict dominance."

9 years agoMerge "Revert "Revert "Introduce a class to implement optimization passes."""
Roland Levillain [Mon, 20 Oct 2014 09:34:08 +0000 (09:34 +0000)]
Merge "Revert "Revert "Introduce a class to implement optimization passes."""

9 years agoMerge "Just depend on TARGET_CORE_DEX_FILES."
Nicolas Geoffray [Fri, 17 Oct 2014 17:04:42 +0000 (17:04 +0000)]
Merge "Just depend on TARGET_CORE_DEX_FILES."

9 years agoMerge "Rename arm64 `Register` to `XRegister`."
Nicolas Geoffray [Fri, 17 Oct 2014 17:03:56 +0000 (17:03 +0000)]
Merge "Rename arm64 `Register` to `XRegister`."

9 years agoMerge "Rework arm64 register codes and fix Arm64ManagedRegister tests."
Nicolas Geoffray [Fri, 17 Oct 2014 16:53:05 +0000 (16:53 +0000)]
Merge "Rework arm64 register codes and fix Arm64ManagedRegister tests."

9 years agoMerge "Quick: In GVN, apply modifications early if outside loop."
Vladimir Marko [Fri, 17 Oct 2014 16:41:24 +0000 (16:41 +0000)]
Merge "Quick: In GVN, apply modifications early if outside loop."

9 years agoJust depend on TARGET_CORE_DEX_FILES.
Nicolas Geoffray [Fri, 17 Oct 2014 16:27:47 +0000 (17:27 +0100)]
Just depend on TARGET_CORE_DEX_FILES.

There is no such thing as a 2NDTARGET_CORE_DEX_FILES.

Change-Id: Idccf31a7b9d7f2329678352805b260a48851d568

9 years agoHave HInstruction::StrictlyDominates compute strict dominance.
Roland Levillain [Mon, 13 Oct 2014 15:10:27 +0000 (16:10 +0100)]
Have HInstruction::StrictlyDominates compute strict dominance.

Change-Id: I3a4fa133268615fb4ce54a0bcb43e0c2458cc865

9 years agoRevert "Revert "Introduce a class to implement optimization passes.""
Roland Levillain [Fri, 17 Oct 2014 16:02:00 +0000 (17:02 +0100)]
Revert "Revert "Introduce a class to implement optimization passes.""

This reverts commit 1ddbf6d4b37979a9f11a203c12befd5ae8b65df4.

Change-Id: I110a14668d1564ee0604dc958b91394b40da89fc

9 years agoMerge "Add -no-integrated-as at local level."
Chih-Hung Hsieh [Fri, 17 Oct 2014 15:48:06 +0000 (15:48 +0000)]
Merge "Add -no-integrated-as at local level."

9 years agoQuick: In GVN, apply modifications early if outside loop.
Vladimir Marko [Tue, 30 Sep 2014 17:09:14 +0000 (18:09 +0100)]
Quick: In GVN, apply modifications early if outside loop.

To improve GVN performance, apply modifications to blocks
outside loops during the initial convergence phase. During
the post processing phase, apply modifications only to the
blocks belonging to loops.

Also clean up the check whether to run the LVN and add the
capability to limit the maximum number of nested loops we
allow the GVN to process.

Change-Id: Ie7f1254f91a442397c06a325d5d314d8f58e5012

9 years agoRename arm64 `Register` to `XRegister`.
Alexandre Rames [Fri, 17 Oct 2014 13:35:27 +0000 (14:35 +0100)]
Rename arm64 `Register` to `XRegister`.

This will avoid naming conflicts in the arm64 port of
the optimizing compiler.

Change-Id: Ie736ddd2ddbd2e299058256de28bad5d41c57d6f

9 years agoRework arm64 register codes and fix Arm64ManagedRegister tests.
Alexandre Rames [Fri, 17 Oct 2014 13:35:27 +0000 (14:35 +0100)]
Rework arm64 register codes and fix Arm64ManagedRegister tests.

Change-Id: I81ce3bc8a212c9c35be3a41b182ada87b32391ec

9 years agoMerge "Fix error message to match the code."
Piotr Jastrzebski [Fri, 17 Oct 2014 12:14:13 +0000 (12:14 +0000)]
Merge "Fix error message to match the code."

9 years agoFix error message to match the code.
Piotr Jastrzebski [Fri, 17 Oct 2014 11:40:38 +0000 (12:40 +0100)]
Fix error message to match the code.

The code checks that curr_opt > option_count
but error message says that curr_opt >= option_count.

Change-Id: I19cd077e2383ad9a368e324a1e35cc98170a40a4

9 years agoMerge "Add multiplication for integral types"
Calin Juravle [Fri, 17 Oct 2014 10:48:06 +0000 (10:48 +0000)]
Merge "Add multiplication for integral types"

9 years agoAdd multiplication for integral types
Calin Juravle [Tue, 7 Oct 2014 19:23:36 +0000 (20:23 +0100)]
Add multiplication for integral types

This also fixes an issue where we could allocate a pair register even if
one of its parts was already blocked.

Change-Id: I4869175933409add2a56f1ccfb369c3d3dd3cb01

9 years agoMerge "Fix dex2oat cross-compilation."
Nicolas Geoffray [Fri, 17 Oct 2014 09:53:38 +0000 (09:53 +0000)]
Merge "Fix dex2oat cross-compilation."

9 years agoMerge "Disable some instruction set tests due to Linux kernel bugs."
Nicolas Geoffray [Fri, 17 Oct 2014 09:35:00 +0000 (09:35 +0000)]
Merge "Disable some instruction set tests due to Linux kernel bugs."

9 years agoFix dex2oat cross-compilation.
Nicolas Geoffray [Fri, 17 Oct 2014 09:32:58 +0000 (10:32 +0100)]
Fix dex2oat cross-compilation.

The instruction set features was not correctly set when it was not
given in the command line.

Change-Id: I649cc077e7bbc830d281ae59af43e59fd0541c1b

9 years agoDisable some instruction set tests due to Linux kernel bugs.
Ian Rogers [Fri, 17 Oct 2014 09:07:35 +0000 (02:07 -0700)]
Disable some instruction set tests due to Linux kernel bugs.

Linux kernels are misreporting CPU features via /proc/cpuinfo and AT_HWCAP.

Change-Id: I422ae0bb674517897bfe9b069d37d4d24736f1d1

9 years agoMerge "x86 build fix."
Ian Rogers [Fri, 17 Oct 2014 08:59:02 +0000 (08:59 +0000)]
Merge "x86 build fix."

9 years agox86 build fix.
Ian Rogers [Fri, 17 Oct 2014 08:18:08 +0000 (01:18 -0700)]
x86 build fix.

Remove -fkeep-inline-functions from debug builds, having it there causes
missing dependencies when we include system/core headers for the target on x86.

Change-Id: Ice5c6f0469f604efb58dfacf2ab6bb3183429850

9 years agoMerge "Tracking change to make Class.getDeclaredFields/Methods public"
Brian Carlstrom [Fri, 17 Oct 2014 07:37:06 +0000 (07:37 +0000)]
Merge "Tracking change to make Class.getDeclaredFields/Methods public"

9 years agoMerge "Stop using |instance_| in Runtime::InitNativeMethods."
Piotr Jastrzebski [Fri, 17 Oct 2014 07:36:44 +0000 (07:36 +0000)]
Merge "Stop using |instance_| in Runtime::InitNativeMethods."

9 years agoMerge "Fix Mac build."
Ian Rogers [Fri, 17 Oct 2014 06:44:37 +0000 (06:44 +0000)]
Merge "Fix Mac build."

9 years agoFix Mac build.
Ian Rogers [Fri, 17 Oct 2014 06:05:10 +0000 (23:05 -0700)]
Fix Mac build.

Not sure how this built on Linux, the correct type is siginfo_t and
we use that correctly elsewhere.

Change-Id: I44ddc77e11558337342c1448553a16c7db231a66

9 years agoTracking change to make Class.getDeclaredFields/Methods public
Brian Carlstrom [Fri, 17 Oct 2014 05:02:23 +0000 (22:02 -0700)]
Tracking change to make Class.getDeclaredFields/Methods public

(cherry picked from commit d8bef73723ea2d101b36e857968bc15d0887dcee)

Bug: 17375269
Change-Id: I8a810b4f21eb5a94883415cf7ecc4df273d72688

9 years agoMerge "Some additional verbose logging for DexFile_defineClassNative"
Brian Carlstrom [Fri, 17 Oct 2014 04:45:00 +0000 (04:45 +0000)]
Merge "Some additional verbose logging for DexFile_defineClassNative"

9 years agoMerge "Renumber 122-missing-classes to 124-missing-classes"
Brian Carlstrom [Fri, 17 Oct 2014 04:44:57 +0000 (04:44 +0000)]
Merge "Renumber 122-missing-classes to 124-missing-classes"

9 years agoMerge "Some code clean-up."
Ian Rogers [Fri, 17 Oct 2014 04:37:54 +0000 (04:37 +0000)]
Merge "Some code clean-up."

9 years agoSome code clean-up.
Ian Rogers [Fri, 17 Oct 2014 03:31:53 +0000 (20:31 -0700)]
Some code clean-up.

Change-Id: I4b745fd5298cd61c793e3b57514b48347bd66c0e

9 years agoSome additional verbose logging for DexFile_defineClassNative
Brian Carlstrom [Fri, 17 Oct 2014 02:12:28 +0000 (19:12 -0700)]
Some additional verbose logging for DexFile_defineClassNative

Change-Id: I6a86352e9eecf4cc5b529feb784e6cd5e8ec0a45

9 years agoMerge "dex2oat: Add a --compile-pic option"
Igor Murashkin [Fri, 17 Oct 2014 03:13:06 +0000 (03:13 +0000)]
Merge "dex2oat: Add a --compile-pic option"

9 years agoMerge "Make ART compile with GCC -O0 again."
Ian Rogers [Fri, 17 Oct 2014 02:29:32 +0000 (02:29 +0000)]
Merge "Make ART compile with GCC -O0 again."

9 years agoMake ART compile with GCC -O0 again.
Ian Rogers [Wed, 15 Oct 2014 00:41:57 +0000 (17:41 -0700)]
Make ART compile with GCC -O0 again.

Tidy up InstructionSetFeatures so that it has a type hierarchy dependent on
architecture.
Add to instruction_set_test to warn when InstructionSetFeatures don't agree
with ones from system properties, AT_HWCAP and /proc/cpuinfo.
Clean-up class linker entry point logic to not return entry points but to
test whether the passed code is the particular entrypoint. This works around
image trampolines that replicate entrypoints.
Bug: 17993736

Change-Id: I5f4b49e88c3b02a79f9bee04f83395146ed7be23

9 years agoMerge "Add way to ensure we are at the front of the sigaction chain"
Mathieu Chartier [Fri, 17 Oct 2014 02:17:11 +0000 (02:17 +0000)]
Merge "Add way to ensure we are at the front of the sigaction chain"

9 years agoAdd way to ensure we are at the front of the sigaction chain
Mathieu Chartier [Wed, 15 Oct 2014 23:59:47 +0000 (16:59 -0700)]
Add way to ensure we are at the front of the sigaction chain

Calling this after jni_on_load fixes the unity apps. This is
not exactly correct since we may already have the following chain.

Start up:
Us -> debuggerd

After app goes in front:
App -> us -> debuggerd

After we put ourself back at the front:
Us -> app -> us -> app -> .... stack overflow.

Bug: 17620677
Change-Id: I9183997e3d5ebd51c320b5d51425be5142e938f3

(cherry picked from commit 1f24296c7c8a6501ee2388c0d20b48f471b48660)

9 years agoRenumber 122-missing-classes to 124-missing-classes
Brian Carlstrom [Fri, 17 Oct 2014 01:58:56 +0000 (18:58 -0700)]
Renumber 122-missing-classes to 124-missing-classes

Change-Id: I733bdb455c5453d03784ba25a691f2a4e48bda6a

9 years agodex2oat: Add a --compile-pic option
Igor Murashkin [Fri, 17 Oct 2014 01:36:16 +0000 (18:36 -0700)]
dex2oat: Add a --compile-pic option

Change-Id: I80e03613e3b6ac079bcbc7e068bbaae760c364c9

9 years agoAdd -no-integrated-as at local level.
Chih-Hung Hsieh [Thu, 16 Oct 2014 19:14:02 +0000 (12:14 -0700)]
Add -no-integrated-as at local level.

Later we will enable integrated-as as default at the global level.

BUG: 17820427
BUG: 17443165
Change-Id: Idbbeccb7f725a63530c65e33723d1328c80443b3

9 years agoMerge "Add OOME try catch around gc-thrash dive logic"
Mathieu Chartier [Thu, 16 Oct 2014 22:20:00 +0000 (22:20 +0000)]
Merge "Add OOME try catch around gc-thrash dive logic"

9 years agoMerge "Remove test dependencies on phony targets."
Ian Rogers [Thu, 16 Oct 2014 19:26:54 +0000 (19:26 +0000)]
Merge "Remove test dependencies on phony targets."

9 years agoMerge "Quick: Avoid node iteration for passes that don't need it."
Vladimir Marko [Thu, 16 Oct 2014 18:02:25 +0000 (18:02 +0000)]
Merge "Quick: Avoid node iteration for passes that don't need it."

9 years agoMerge "Quick: Handle kMirOpNullCheck in LVN/GVN."
Vladimir Marko [Thu, 16 Oct 2014 18:01:00 +0000 (18:01 +0000)]
Merge "Quick: Handle kMirOpNullCheck in LVN/GVN."

9 years agoAdd OOME try catch around gc-thrash dive logic
Mathieu Chartier [Thu, 16 Oct 2014 17:01:39 +0000 (10:01 -0700)]
Add OOME try catch around gc-thrash dive logic

Bug: 17962200
Change-Id: I4ed1f7ac2b07795b5e30ccb5b322cbe47e237ba8

9 years agoMerge "Don't use assembler classes in code_generator.h."
Nicolas Geoffray [Thu, 16 Oct 2014 14:20:58 +0000 (14:20 +0000)]
Merge "Don't use assembler classes in code_generator.h."

9 years agoDon't use assembler classes in code_generator.h.
Nicolas Geoffray [Thu, 16 Oct 2014 10:12:52 +0000 (11:12 +0100)]
Don't use assembler classes in code_generator.h.

The arm64 backend uses its own assembler and does not share
the same classes as the other backends. To avoid conflicts
or unnecessary mappings, just don't use those classes in the
shared part of the code generator.

Change-Id: I9e5fa40c1021d2e83a4ef14c52cd1ccd03f2f73d

9 years agoMerge "Implement default traversals in CFG & SSA graph checkers."
Roland Levillain [Thu, 16 Oct 2014 13:26:29 +0000 (13:26 +0000)]
Merge "Implement default traversals in CFG & SSA graph checkers."

9 years agoMerge "Improve art::SSAChecker::VisitInstruction."
Roland Levillain [Thu, 16 Oct 2014 13:12:56 +0000 (13:12 +0000)]
Merge "Improve art::SSAChecker::VisitInstruction."

9 years agoMerge "Do not remove NullChecks & BoundsChecks in HDeadCodeElimination."
Roland Levillain [Thu, 16 Oct 2014 12:59:34 +0000 (12:59 +0000)]
Merge "Do not remove NullChecks & BoundsChecks in HDeadCodeElimination."

9 years agoMerge "Turn constant conditional jumps into unconditional jumps."
Roland Levillain [Thu, 16 Oct 2014 12:51:34 +0000 (12:51 +0000)]
Merge "Turn constant conditional jumps into unconditional jumps."

9 years agoQuick: Handle kMirOpNullCheck in LVN/GVN.
Vladimir Marko [Thu, 16 Oct 2014 12:38:44 +0000 (13:38 +0100)]
Quick: Handle kMirOpNullCheck in LVN/GVN.

Change-Id: I0274e98cc61ccd1dbe0bd3e50deeb7d62bd1cb22

9 years agoMerge "Quick: Improve the BBCombine pass."
Vladimir Marko [Thu, 16 Oct 2014 11:29:59 +0000 (11:29 +0000)]
Merge "Quick: Improve the BBCombine pass."

9 years agoStop using |instance_| in Runtime::InitNativeMethods.
Piotr Jastrzebski [Thu, 16 Oct 2014 10:04:27 +0000 (11:04 +0100)]
Stop using |instance_| in Runtime::InitNativeMethods.

Runtime::InitNativeMethods is a member function so we
don't need to use |instance_| to call Runtime methods there.

I believe that this call uses |instance_| instead of |this|
because it was originally in a static Runtime::Create method.
It was originally called 'instance_->InitLibraries();' and was
moved to Runtime::Start which is a member function here:
http://ag/#/c/133053/6/src/runtime.cc
and since then it was further moved and renamed but it kept using |instance_|
even though use of |this| seems more appropriate.

Change-Id: I79b9d23873272ba2f124e285602f1b2683c2f27f

9 years agoMerge "Rewrite null check elimination to work on dalvik regs."
Vladimir Marko [Thu, 16 Oct 2014 08:58:35 +0000 (08:58 +0000)]
Merge "Rewrite null check elimination to work on dalvik regs."

9 years agoRosalloc should print unreachable page map type
Maxim Kazantsev [Thu, 16 Oct 2014 03:55:47 +0000 (10:55 +0700)]
Rosalloc should print unreachable page map type

When rosalloc receives unexpected page map type, it is not
printed in error message because it has 'byte' type. When printed
to LOG(FATAL), it is interpreted as symbol (usually unprintable).
This patch allows to see unexpected page map types as integers.

Change-Id: Ic9d472f933862f4e2671904277990d8a83bc4c89

9 years agoMerge "Store exiting thread ids and names while tracing to output later."
Jeff Hao [Thu, 16 Oct 2014 00:25:14 +0000 (00:25 +0000)]
Merge "Store exiting thread ids and names while tracing to output later."

9 years agoMerge "Add more logging to finalization test"
Mathieu Chartier [Wed, 15 Oct 2014 21:46:25 +0000 (21:46 +0000)]
Merge "Add more logging to finalization test"

9 years agoRemove test dependencies on phony targets.
Ian Rogers [Wed, 15 Oct 2014 18:57:01 +0000 (11:57 -0700)]
Remove test dependencies on phony targets.

We already depend in the test on the presence of the executable, depending on
the phony causes make to complain about "don't know how to build".

Change-Id: I0db61d184106df6642791909d416666c3d4f370e

9 years agoQuick: Improve the BBCombine pass.
Vladimir Marko [Tue, 7 Oct 2014 14:01:57 +0000 (15:01 +0100)]
Quick: Improve the BBCombine pass.

Eliminate exception edges for insns that cannot throw even
when inside a try-block. Run the BBCombine pass before the
SSA transformation to reduce the compilation time.

Bug: 16398693
Change-Id: I8e91df593e316c994679b9d482b0ae20700b9499

9 years agoMerge "Fix oatdump for no image"
Mathieu Chartier [Wed, 15 Oct 2014 17:33:37 +0000 (17:33 +0000)]
Merge "Fix oatdump for no image"

9 years agoFix oatdump for no image
Mathieu Chartier [Wed, 15 Oct 2014 17:31:46 +0000 (10:31 -0700)]
Fix oatdump for no image

Added MemMap::Init if we dont initialize the runtime.

Bug: 18000219
Change-Id: I1bd715e18838919c0773db5fa25623348326baa6

9 years agoAdd more logging to finalization test
Mathieu Chartier [Wed, 15 Oct 2014 16:59:03 +0000 (09:59 -0700)]
Add more logging to finalization test

We now print which elements were not finalized then attempt a
sleep to see if the error is a race condition or a another error.

Bug: 17932313
Change-Id: I4d41abfff0fa6838dd513cf23821bb486305d74f

9 years agoRewrite null check elimination to work on dalvik regs.
Vladimir Marko [Thu, 9 Oct 2014 17:01:24 +0000 (18:01 +0100)]
Rewrite null check elimination to work on dalvik regs.

And move the null check and class init check elimination
before the SSA transformation. The new pass ordering is in
anticipation of subsequent changes. (An improved class init
check elimination can benefit special method inlining. An
improved block combination pass before SSA transformation
can improve compilation time.)

Also add tests for the NCE.

Change-Id: Ie4fb1880e06334a703295aef454b437d58a3e878

9 years agoMerge "ART: NullCheckElimination should converge with MIR_IGNORE_NULL_CHECK"
Vladimir Marko [Wed, 15 Oct 2014 12:35:54 +0000 (12:35 +0000)]
Merge "ART: NullCheckElimination should converge with MIR_IGNORE_NULL_CHECK"

9 years agoQuick: Avoid node iteration for passes that don't need it.
Vladimir Marko [Wed, 15 Oct 2014 10:35:44 +0000 (11:35 +0100)]
Quick: Avoid node iteration for passes that don't need it.

Change-Id: Ic1f6796a29ba861cee37a31193e07b497b84eb3f

9 years agoART: NullCheckElimination should converge with MIR_IGNORE_NULL_CHECK
Yevgeny Rouban [Wed, 15 Oct 2014 10:32:25 +0000 (17:32 +0700)]
ART: NullCheckElimination should converge with MIR_IGNORE_NULL_CHECK

If the MIRGraph::EliminateNullChecksAndInferTypes() function managed
to prove that some regs are non-null then it sets the flag
MIR_IGNORE_NULL_CHECK and resets this flag for all the other regs.
If some previous optimizations have already set MIR_IGNORE_NULL_CHECK
then it can be reset by EliminateNullChecksAndInferTypes. This way
NullCheckElimination discards some optimization efforts.
Optimization passes should not reset MIR_IGNORE_NULL_CHECK unless
they 100% sure NullCheck is needed.

This patch makes the NCE_TypeInference pass merge its own
calculated MIR_IGNORE_NULL_CHECK with the one came from previous
optimizations. Technically NCE_TypeInference calculates the flag
in a temporary MIR_MARK-th bit by preserving MIR_IGNORE_NULL_CHECK.
Then at the end of NCE pass MIR_MARK is or-ed with
MIR_IGNORE_NULL_CHECK.

Change-Id: Ib26997c70ecf2c158f61496dee9b1fe45c812096
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
9 years agoMerge "Add tests for missing classes"
Brian Carlstrom [Wed, 15 Oct 2014 04:36:12 +0000 (04:36 +0000)]
Merge "Add tests for missing classes"

9 years agoMerge "Fix mac build (second attempt)"
Dmitriy Ivanov [Wed, 15 Oct 2014 01:34:56 +0000 (01:34 +0000)]
Merge "Fix mac build (second attempt)"

9 years agoStore exiting thread ids and names while tracing to output later.
Jeff Hao [Tue, 14 Oct 2014 20:12:01 +0000 (13:12 -0700)]
Store exiting thread ids and names while tracing to output later.

Bug: 17909204

(cherry picked from commit fdcbc5c4c7c67bba06e038ac96a2e8bc49b91f84)

Change-Id: Iea087560ba8b983412a6dde2ec166c9e7214f3a1

9 years agoFix mac build (second attempt)
Dmitriy Ivanov [Wed, 15 Oct 2014 00:55:28 +0000 (17:55 -0700)]
Fix mac build (second attempt)

  It appears that the version of mac ld with
  -export_dynamic is pretty recent.

  Remove -export_dynamic to fix build for older
  mac versions (?)

Change-Id: Ibc3b2f9a0aeec9125cd73b7df0cf22de9e8e4d16

9 years agoAdd tests for missing classes
Brian Carlstrom [Tue, 14 Oct 2014 07:06:31 +0000 (00:06 -0700)]
Add tests for missing classes

Bug: 17959926
Change-Id: I659e410051dc52e054953a779d573807f8aa54fa

9 years agoMerge "Add VLOG(class_linker) for clinit errors"
Brian Carlstrom [Wed, 15 Oct 2014 00:03:55 +0000 (00:03 +0000)]
Merge "Add VLOG(class_linker) for clinit errors"

9 years agoAdd VLOG(class_linker) for clinit errors
Brian Carlstrom [Thu, 9 Oct 2014 00:55:21 +0000 (17:55 -0700)]
Add VLOG(class_linker) for clinit errors

Bug: 17915141
Change-Id: I3002cf4348ec3fa241f63ff1515f813f6051c267

9 years agoMerge "Use exit(1), not exit(-1)"
Brian Carlstrom [Tue, 14 Oct 2014 23:49:24 +0000 (23:49 +0000)]
Merge "Use exit(1), not exit(-1)"

9 years agoMerge "Fixing mac build"
Dmitriy Ivanov [Tue, 14 Oct 2014 23:12:15 +0000 (23:12 +0000)]
Merge "Fixing mac build"

9 years agoUse exit(1), not exit(-1)
Brian Carlstrom [Tue, 14 Oct 2014 22:39:01 +0000 (15:39 -0700)]
Use exit(1), not exit(-1)

Change-Id: If59f988ee8b37f6f87363fe8ea8edfde738f3397

9 years agoMerge "Change MemMap::maps_ to not be global variable"
Mathieu Chartier [Tue, 14 Oct 2014 22:57:06 +0000 (22:57 +0000)]
Merge "Change MemMap::maps_ to not be global variable"

9 years agoFixing mac build
Dmitriy Ivanov [Tue, 14 Oct 2014 19:18:10 +0000 (12:18 -0700)]
Fixing mac build

 MacOS static linker does not understand --export-dynamic
 and --version-script. According to man ld there is
 -export_dynamic option which should do the same
 thing.

Change-Id: I8cde8c6c7305bebbbcc9dded143fa5cdaf386d65

9 years agoChange MemMap::maps_ to not be global variable
Mathieu Chartier [Tue, 14 Oct 2014 22:01:24 +0000 (15:01 -0700)]
Change MemMap::maps_ to not be global variable

Runtime.exit() was causing globals to get destructed at the same time
that another thread was using it for allocating a new mem map.

Bug: 17962201
Change-Id: I400cb7b8141d858f3c08a6fe59a02838c04c6962

9 years agoMerge "Untie gtest executables from LD_PRELOAD"
Dmitriy Ivanov [Tue, 14 Oct 2014 18:44:26 +0000 (18:44 +0000)]
Merge "Untie gtest executables from LD_PRELOAD"