OSDN Git Service

android-x86/art.git
8 years agoART: Change UnresolvedMergedType internal representation
Andreas Gampe [Thu, 6 Aug 2015 18:31:56 +0000 (11:31 -0700)]
ART: Change UnresolvedMergedType internal representation

Use a BitVector instead of the tree representation. This
avoids flattening the components and other instances.

Bug: 22881413
Change-Id: Ibf7cfb54443affeb1753bf114c0f306125391c62

8 years agoMerge "ART: Clean up unnecessary ArtMethod**"
Andreas Gampe [Sat, 8 Aug 2015 00:23:51 +0000 (00:23 +0000)]
Merge "ART: Clean up unnecessary ArtMethod**"

8 years agoART: Clean up unnecessary ArtMethod**
Andreas Gampe [Sat, 8 Aug 2015 00:20:11 +0000 (17:20 -0700)]
ART: Clean up unnecessary ArtMethod**

ArtMethods are no longer Java objects, so the additional indirection
is no longer necessary here.

Change-Id: If76756d875b418b3f6e83f51b3225a158e9ce29b

8 years agoMerge "ART: Remove TODO in BitVector"
Andreas Gampe [Sat, 8 Aug 2015 00:14:42 +0000 (00:14 +0000)]
Merge "ART: Remove TODO in BitVector"

8 years agoART: Remove TODO in BitVector
Andreas Gampe [Fri, 7 Aug 2015 15:29:13 +0000 (08:29 -0700)]
ART: Remove TODO in BitVector

Refactor the BitVector constructor: split it up to remove the
possibility to provide contradicting parameters, and add a custom
copying constructor.

Change-Id: Ie943f279baa007db578aea0f2f33fa93311612ee

8 years agoMerge "Add class table field to class loader"
Mathieu Chartier [Fri, 7 Aug 2015 23:33:43 +0000 (23:33 +0000)]
Merge "Add class table field to class loader"

8 years agoMerge "Fix C++14 bitrot."
Dan Albert [Fri, 7 Aug 2015 23:21:25 +0000 (23:21 +0000)]
Merge "Fix C++14 bitrot."

8 years agoFix C++14 bitrot.
Dan Albert [Fri, 7 Aug 2015 23:19:01 +0000 (16:19 -0700)]
Fix C++14 bitrot.

Change-Id: I22f7925a87bca45646c563971342a9a1b2090ba6

8 years agoAdd class table field to class loader
Mathieu Chartier [Wed, 5 Aug 2015 22:08:12 +0000 (15:08 -0700)]
Add class table field to class loader

Fixes bug with the class table where the comparator would cause read
barriers and break the map strict ordering properties.

Bug: 22957957

Change-Id: I8dbc042db6e22e2172ab4ec58ddf1db0345dcaaa

8 years agoMerge "Ensure coherency of call kinds for LocationSummary."
Nicolas Geoffray [Fri, 7 Aug 2015 16:04:33 +0000 (16:04 +0000)]
Merge "Ensure coherency of call kinds for LocationSummary."

8 years agoMerge "Revert "Pass the verified method to the inlinee DexCompilationUnit.""
Nicolas Geoffray [Fri, 7 Aug 2015 15:31:20 +0000 (15:31 +0000)]
Merge "Revert "Pass the verified method to the inlinee DexCompilationUnit.""

8 years agoRevert "Pass the verified method to the inlinee DexCompilationUnit."
Nicolas Geoffray [Fri, 7 Aug 2015 15:31:10 +0000 (15:31 +0000)]
Revert "Pass the verified method to the inlinee DexCompilationUnit."

Crashes testing libcore on host/x86.

Bug:22866717

This reverts commit 08624c50f488ecd845e48683e84726ff8c53e6a7.

Change-Id: Ia8f130d9ea32e171e554bd3e10c44f8453111b52

8 years agoMerge "Pass the verified method to the inlinee DexCompilationUnit."
Nicolas Geoffray [Fri, 7 Aug 2015 14:47:18 +0000 (14:47 +0000)]
Merge "Pass the verified method to the inlinee DexCompilationUnit."

8 years agoMerge "Tighten default inlining settings when using the space filter."
Roland Levillain [Fri, 7 Aug 2015 10:50:06 +0000 (10:50 +0000)]
Merge "Tighten default inlining settings when using the space filter."

8 years agoTighten default inlining settings when using the space filter.
Roland Levillain [Fri, 7 Aug 2015 10:38:32 +0000 (11:38 +0100)]
Tighten default inlining settings when using the space filter.

Bug: 21868508
Change-Id: Ic83813a966cef18e59447083926bf033aa587154

8 years agoEnsure coherency of call kinds for LocationSummary.
Alexandre Rames [Fri, 7 Aug 2015 09:26:17 +0000 (10:26 +0100)]
Ensure coherency of call kinds for LocationSummary.

The coherency is enforced with checks added in the `InvokeRuntime`
helper, that we now also use on x86 and x86_64.

Change-Id: I8cb92b042f25dc3c5fd390e9c61a45b477d081f4

8 years agoMerge "Introduce arch-specific checker tests."
David Brazdil [Fri, 7 Aug 2015 07:23:23 +0000 (07:23 +0000)]
Merge "Introduce arch-specific checker tests."

8 years agoPass the verified method to the inlinee DexCompilationUnit.
Nicolas Geoffray [Fri, 7 Aug 2015 04:10:30 +0000 (21:10 -0700)]
Pass the verified method to the inlinee DexCompilationUnit.

Sharpening and other optimizations in compiler driver rely
on having it there.

Also fixes a warning for the intrinsics code.

bug:22866717
Change-Id: I6ac4f55e9e77452a4ea9e0d0dd0ad70124a95a55

8 years agoMerge "ART: Fix the simplifier for add/sub"
Calin Juravle [Thu, 6 Aug 2015 17:49:55 +0000 (17:49 +0000)]
Merge "ART: Fix the simplifier for add/sub"

8 years agoART: Fix the simplifier for add/sub
Serguei Katkov [Wed, 5 Aug 2015 11:03:30 +0000 (17:03 +0600)]
ART: Fix the simplifier for add/sub

Instruction simplifier for add/sub should not proceed with floats
because that might cause the incorrect behavior with signed zero.

Change-Id: If0c9bf3931bcbf96b0814f8605a86997aea37145
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
8 years agoMerge "Fix image loading in interpeter-only mode"
Sebastien Hertz [Thu, 6 Aug 2015 14:46:41 +0000 (14:46 +0000)]
Merge "Fix image loading in interpeter-only mode"

8 years agoMerge "Fix DDM reply buffer deallocation"
Sebastien Hertz [Thu, 6 Aug 2015 14:43:58 +0000 (14:43 +0000)]
Merge "Fix DDM reply buffer deallocation"

8 years agoIntroduce arch-specific checker tests.
Alexandre Rames [Thu, 6 Aug 2015 13:49:28 +0000 (14:49 +0100)]
Introduce arch-specific checker tests.

- The '.cfg' output is now created on target.
- Arch-specific checker tests can be created by inserting a
  suffix. For example:
      /// CHECK-START-ARM64: int Main.foo(int) register (after)
      /// CHECK-DAG:   <<Arg:i\d+>>     ParameterValue

Change-Id: I55cdb37f8e806c7ffdde6b676c8f44ac30b59051

8 years agoFix image loading in interpeter-only mode
Sebastien Hertz [Thu, 6 Aug 2015 10:52:43 +0000 (12:52 +0200)]
Fix image loading in interpeter-only mode

Follow-up https://android-review.googlesource.com/162935. We now need
an ArtMethodVisitor to update entrypoints of methods in the image.

Bug: 22832610
Change-Id: I30ca9c369a73c3372694b446e73afa2e37890a65

8 years agoFix DDM reply buffer deallocation
Sebastien Hertz [Thu, 6 Aug 2015 09:37:02 +0000 (11:37 +0200)]
Fix DDM reply buffer deallocation

Reply buffer is an uint8_t* allocated with new uint8_t[...] so it
must be deallocated with delete[], not free.

Change-Id: Ib5d6387aa63f1e0393113f82602f661bbada4aa2

8 years agoMerge "Move ArtFields and ArtMethods to be a length prefixed array"
Mathieu Chartier [Thu, 6 Aug 2015 03:12:39 +0000 (03:12 +0000)]
Merge "Move ArtFields and ArtMethods to be a length prefixed array"

8 years agoMove ArtFields and ArtMethods to be a length prefixed array
Mathieu Chartier [Thu, 30 Jul 2015 23:20:06 +0000 (16:20 -0700)]
Move ArtFields and ArtMethods to be a length prefixed array

Fixes race conditions between changing method and fields arrays
being seen in the wrong order by the GC.

Bug: 22832610
Change-Id: Ia21d6698f73ba207a6392c3d6b9be2658933073f

8 years agoMerge "ART: Extend ISA features option for (host) run tests"
Andreas Gampe [Wed, 5 Aug 2015 23:06:02 +0000 (23:06 +0000)]
Merge "ART: Extend ISA features option for (host) run tests"

8 years agoART: Extend ISA features option for (host) run tests
Andreas Gampe [Wed, 5 Aug 2015 16:24:45 +0000 (09:24 -0700)]
ART: Extend ISA features option for (host) run tests

To allow to test advanced intrinsics only available on (fairly)
modern processors, and because our build requirements are still
too low to enable them in the build system, pipe through the
existing make variables to the run-tests to allow to override
the dex2oat autodetection scheme.

Usage (standalone run-test): use the new --instruction-set-features
command line parameter to set the value for dex2oat (in the prebuild
configuration) or as an -Xcompiler-option (for no-prebuild). Note:
this is general and also works for target tests.

Usage (through make): set DEX2OAT_HOST_INSTRUCTION_SET_FEATURES and
2ND_DEX2OAT_HOST_INSTRUCTION_SET_FEATURES to set instruction set
features, as was possible before for the compilation of core files.
This option is now forwarded to host run-tests.

Change-Id: I9d89c82b6a5c8853748e5d1c153dde5d4050757a

8 years agoMerge "ART: Wire up DexToDexCompiler without extern"
Andreas Gampe [Wed, 5 Aug 2015 18:59:25 +0000 (18:59 +0000)]
Merge "ART: Wire up DexToDexCompiler without extern"

8 years agoART: Wire up DexToDexCompiler without extern
Andreas Gampe [Thu, 23 Jul 2015 08:19:26 +0000 (01:19 -0700)]
ART: Wire up DexToDexCompiler without extern

The extern declaration actually had the wrong signature, a parameter
was missing, and we never noticed.

Remove the function field and extern. Add a header for the compiler.
Use the header file.

Change-Id: Ia4d4dd86211da6045709a45c7bf8430471d1b62b

8 years agoMerge "Revert "cleanup: Replace pointers with out-parameters and fix-up formatting""
Igor Murashkin [Wed, 5 Aug 2015 18:18:59 +0000 (18:18 +0000)]
Merge "Revert "cleanup: Replace pointers with out-parameters and fix-up formatting""

8 years agoMerge "Address some comments and clean up"
Mathieu Chartier [Wed, 5 Aug 2015 18:02:53 +0000 (18:02 +0000)]
Merge "Address some comments and clean up"

8 years agoMerge "Fix mod-union logic for native roots"
Mathieu Chartier [Wed, 5 Aug 2015 17:42:56 +0000 (17:42 +0000)]
Merge "Fix mod-union logic for native roots"

8 years agoFix mod-union logic for native roots
Mathieu Chartier [Wed, 5 Aug 2015 17:10:07 +0000 (10:10 -0700)]
Fix mod-union logic for native roots

Bug: 22949217
Change-Id: I9e4631870160d5a9412df1eec2a7b79c65668542

8 years agoMerge "Have constant folding be more flexible."
Roland Levillain [Wed, 5 Aug 2015 12:52:12 +0000 (12:52 +0000)]
Merge "Have constant folding be more flexible."

8 years agoMerge "Add constant folding for long unary operations in opt. compiler."
Roland Levillain [Wed, 5 Aug 2015 10:03:46 +0000 (10:03 +0000)]
Merge "Add constant folding for long unary operations in opt. compiler."

8 years agoHave constant folding be more flexible.
Roland Levillain [Wed, 5 Aug 2015 09:21:34 +0000 (10:21 +0100)]
Have constant folding be more flexible.

- Have Evaluate methods take as argument(s) and return value
  instances of HConstant (instead of built-in 32- or 64-bit
  integer values), to let the evaluated instruction choose
  the type of the statically evaluated node; for instance,
  art::HEqual::Evaluate shall return a HIntConstant
  node (as implementation of a Boolean constant) whatever
  the type of its inputs (a pair of HIntConstant or a pair
  of HLongConstant).
- Split the evaluation job from the operation logic: the
  former is addressed by Evaluate methods, while the latter
  is done by a generic Compute method.
- Adress valid BinOp(int, long) and BinOp(long, int) cases.
- Add a constructor to art::HIntConstant to build an integer
  constant from a `bool` value.

Change-Id: If84b6fe8406bb94ddb1aa8b02e36628dff526db3

8 years agoAdd constant folding for long unary operations in opt. compiler.
Roland Levillain [Thu, 11 Dec 2014 12:14:33 +0000 (12:14 +0000)]
Add constant folding for long unary operations in opt. compiler.

Add tests to exercise the constant folding of these
instructions.

Also, prevent Java methods from run-tests exercising the
code generation of these instruction from being inlined,
so that they continue to check the generated code (and
not the code produced by the constant folding pass).

Change-Id: I28efca7cdb5142ac2b6d158ba296fb9136d62481

8 years agoMerge "ART: Move exception clearing into own instruction"
David Brazdil [Wed, 5 Aug 2015 08:34:24 +0000 (08:34 +0000)]
Merge "ART: Move exception clearing into own instruction"

8 years agoMerge "Revert "Revert "ART: Use bionic TLS slot for thread-self"""
Andreas Gampe [Wed, 5 Aug 2015 02:55:46 +0000 (02:55 +0000)]
Merge "Revert "Revert "ART: Use bionic TLS slot for thread-self"""

8 years agoRevert "Revert "ART: Use bionic TLS slot for thread-self""
Andreas Gampe [Wed, 5 Aug 2015 01:08:53 +0000 (01:08 +0000)]
Revert "Revert "ART: Use bionic TLS slot for thread-self""

This reverts commit 50832b6804d15ea5ddfe99a2753a09111b5bfe37.

Fix clearing the TLS on detach.

Change-Id: I75ed5ccccb4f31800e5f893055e96067a9695258

8 years agoMerge "ART: x86_64 RoundDouble/Float intrinsics should initialize out value."
Nicolas Geoffray [Wed, 5 Aug 2015 02:11:01 +0000 (02:11 +0000)]
Merge "ART: x86_64 RoundDouble/Float intrinsics should initialize out value."

8 years agoAddress some comments and clean up
Mathieu Chartier [Tue, 4 Aug 2015 22:19:41 +0000 (15:19 -0700)]
Address some comments and clean up

Change-Id: I538cf204f1c89d5fc81f8fc5e5800fcf1cf87359

8 years agoMerge "Revert "ART: Use bionic TLS slot for thread-self""
Andreas Gampe [Wed, 5 Aug 2015 00:36:05 +0000 (00:36 +0000)]
Merge "Revert "ART: Use bionic TLS slot for thread-self""

8 years agoRevert "ART: Use bionic TLS slot for thread-self"
Andreas Gampe [Wed, 5 Aug 2015 00:31:02 +0000 (00:31 +0000)]
Revert "ART: Use bionic TLS slot for thread-self"

This reverts commit b81535875ff46d1630c76091fe969a9eb7fc4d16.

Breaking tests, need to investigate.

Change-Id: Iab8c4f6136e6cb9bd6cf3c3495aa33962ef890ee

8 years agoMerge "Parallel Move Resolver: Perform Stack/Stack first"
Nicolas Geoffray [Wed, 5 Aug 2015 00:10:01 +0000 (00:10 +0000)]
Merge "Parallel Move Resolver: Perform Stack/Stack first"

8 years agoMerge "ART: Use bionic TLS slot for thread-self"
Andreas Gampe [Tue, 4 Aug 2015 22:35:34 +0000 (22:35 +0000)]
Merge "ART: Use bionic TLS slot for thread-self"

8 years agoMerge "Update expectation."
Nicolas Geoffray [Tue, 4 Aug 2015 19:06:16 +0000 (19:06 +0000)]
Merge "Update expectation."

8 years agoRevert "cleanup: Replace pointers with out-parameters and fix-up formatting"
Igor Murashkin [Tue, 4 Aug 2015 18:18:43 +0000 (11:18 -0700)]
Revert "cleanup: Replace pointers with out-parameters and fix-up formatting"

This reverts commit a315f5c546b796f55f4872bb6efc15eb858d9639.

--

Revert "runtime: cleanup class_linker out-parameters and formatting"

This reverts commit bc1d78daa463572c5a770cdca858a3b51d8e1b7b.

--

Revert "base: replace raw pointers for out-parameters with safer out<T>"

This reverts commit fb326cffc679cab8eb873b9e44795706f023cb3c.

8 years agoUpdate expectation.
Nicolas Geoffray [Tue, 4 Aug 2015 17:16:43 +0000 (18:16 +0100)]
Update expectation.

Vogar wants # between class and method.

Change-Id: I3e4d54e2cc22bac6b73fe611fcbfcbe39095159c

8 years agoMerge "ART: Use Clang default integrated assembler."
Andreas Gampe [Tue, 4 Aug 2015 16:47:39 +0000 (16:47 +0000)]
Merge "ART: Use Clang default integrated assembler."

8 years agoART: Use Clang default integrated assembler.
Chih-Hung Hsieh [Mon, 27 Jul 2015 17:10:44 +0000 (10:10 -0700)]
ART: Use Clang default integrated assembler.

Issues with x86, arm32 and arm64 have been fixed.
Allow the use of the integrated assembler.

Bug: 22874917
Change-Id: Iacfffda29d57bfc931da568a9436c2e34cb38df6

8 years agoART: Move exception clearing into own instruction
David Brazdil [Tue, 4 Aug 2015 15:22:25 +0000 (16:22 +0100)]
ART: Move exception clearing into own instruction

Runtime delivers exceptions only to catch blocks which begin with a
MOVE_EXCEPTION instruction (in DEX). In that case, the catch block is
expected to clear the thread-local exception storage after having
read the exception reference.

This patch changes Optimizing to represent MOVE_EXCEPTION with two
instructions - HLoadException and HClearException - instead of one.
If the exception reference is not used, HLoadException can be safely
removed, saving a memory load without breaking the runtime behaviour.

Change-Id: Idad8a714467bf9d9d5fccefbc43c0bd8ae13ddba

8 years agoMerge "ART: Fix arm32 assembly for Clang"
Andreas Gampe [Tue, 4 Aug 2015 15:16:33 +0000 (15:16 +0000)]
Merge "ART: Fix arm32 assembly for Clang"

8 years agoART: Fix arm32 assembly for Clang
Chih-Hung Hsieh [Mon, 27 Jul 2015 17:10:44 +0000 (10:10 -0700)]
ART: Fix arm32 assembly for Clang

Clang ignores .thumb_func and requires an explicit
.thumb directive, as given by the ARM Unified Assembler
Language. Conditionally add .thumb to thumb2 functions.

Bug: 22762844
Change-Id: I08abdb5f4e0ba5135d4ed850ca3e284203f95a03

8 years agoART: x86_64 RoundDouble/Float intrinsics should initialize out value.
Pavel Vyssotski [Fri, 31 Jul 2015 07:03:17 +0000 (13:03 +0600)]
ART: x86_64 RoundDouble/Float intrinsics should initialize out value.

x86_64 RoundDouble intrinsic should initialize output register for the case of
"inPlusPointFive >= maxLong" as expected. The same for the RoundFloat intrinsic.
Fixed also the out register type in CreateSSE41FPToIntLocations provoking
a DCHECK failure.

Change-Id: I0a910682e2917214861683c678ffba8e0f4bfed8
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
8 years agoMerge "Added repe_cmpsq instruction to x86_64 assembler"
Vladimir Marko [Tue, 4 Aug 2015 11:20:31 +0000 (11:20 +0000)]
Merge "Added repe_cmpsq instruction to x86_64 assembler"

8 years agoMerge "ARM/ARM64: Implement numberOfLeadingZeros intrinsic."
Vladimir Marko [Tue, 4 Aug 2015 09:05:51 +0000 (09:05 +0000)]
Merge "ARM/ARM64: Implement numberOfLeadingZeros intrinsic."

8 years agoARM/ARM64: Implement numberOfLeadingZeros intrinsic.
Scott Wakeling [Fri, 10 Jul 2015 10:42:06 +0000 (11:42 +0100)]
ARM/ARM64: Implement numberOfLeadingZeros intrinsic.

Change-Id: I4042fb7a0b75140475dcfca23e8f79d310f5333b

8 years agoAdded repe_cmpsq instruction to x86_64 assembler
agicsaki [Tue, 4 Aug 2015 03:14:29 +0000 (20:14 -0700)]
Added repe_cmpsq instruction to x86_64 assembler

Change-Id: I9085694fd3313581b2775a8267ccda58fec19a1a

8 years agoMerge "ART: Fix stub_test"
Andreas Gampe [Mon, 3 Aug 2015 22:07:15 +0000 (22:07 +0000)]
Merge "ART: Fix stub_test"

8 years agoMerge "cleanup: Replace pointers with out-parameters and fix-up formatting"
Igor Murashkin [Mon, 3 Aug 2015 21:27:27 +0000 (21:27 +0000)]
Merge "cleanup: Replace pointers with out-parameters and fix-up formatting"

8 years agoMerge "Optimizing: Add Non Temporal Move support for x86"
Aart Bik [Mon, 3 Aug 2015 17:48:11 +0000 (17:48 +0000)]
Merge "Optimizing: Add Non Temporal Move support for x86"

8 years agoART: Fix stub_test
Andreas Gampe [Mon, 3 Aug 2015 17:25:06 +0000 (10:25 -0700)]
ART: Fix stub_test

Clobber another register on arm32.

Change-Id: I0d355f69dfa7e6d86cb7c211f6ac2cb56f995d9d

8 years agoMerge "Optimizing: Use more X86 3 operand multiplies"
Roland Levillain [Mon, 3 Aug 2015 14:57:38 +0000 (14:57 +0000)]
Merge "Optimizing: Use more X86 3 operand multiplies"

8 years agoMerge "Revert "Optimizing String.Equals as an intrinsic (x86)""
Roland Levillain [Mon, 3 Aug 2015 14:55:11 +0000 (14:55 +0000)]
Merge "Revert "Optimizing String.Equals as an intrinsic (x86)""

8 years agoRevert "Optimizing String.Equals as an intrinsic (x86)"
Roland Levillain [Mon, 3 Aug 2015 14:54:45 +0000 (14:54 +0000)]
Revert "Optimizing String.Equals as an intrinsic (x86)"

Reverted as it breaks the compilation of boot.{oat,art} on x86 (although this CL may not be the culprit, as the issue seems to come from Optimizing's register allocator).

This reverts commit 8ab7bd6c8b10ad58758c33a1dc9326212bd200e9.

Change-Id: If7c8b6258d1e690f4d2a06bcc82c92563ac6cdef

8 years agoMerge "Fix ambiguous phrasing in tests comments regarding $opt$."
Roland Levillain [Mon, 3 Aug 2015 14:34:42 +0000 (14:34 +0000)]
Merge "Fix ambiguous phrasing in tests comments regarding $opt$."

8 years agoFix ambiguous phrasing in tests comments regarding $opt$.
Roland Levillain [Mon, 3 Aug 2015 14:20:02 +0000 (15:20 +0100)]
Fix ambiguous phrasing in tests comments regarding $opt$.

Change-Id: I78e6bccbe35288df5de30700d3877bbcdef37d65

8 years agoMerge "Optimizing String.Equals as an intrinsic (x86)"
Roland Levillain [Mon, 3 Aug 2015 08:48:11 +0000 (08:48 +0000)]
Merge "Optimizing String.Equals as an intrinsic (x86)"

8 years agoMerge "ART: Check a RETURN_VOID_NO_BARRIER like a RETURN_VOID"
Andreas Gampe [Sat, 1 Aug 2015 04:14:14 +0000 (04:14 +0000)]
Merge "ART: Check a RETURN_VOID_NO_BARRIER like a RETURN_VOID"

8 years agoART: Check a RETURN_VOID_NO_BARRIER like a RETURN_VOID
Andreas Gampe [Fri, 31 Jul 2015 20:36:10 +0000 (13:36 -0700)]
ART: Check a RETURN_VOID_NO_BARRIER like a RETURN_VOID

RETURN_VOID_NO_BARRIER is used in all methods with return-void,
as long as they're not a constructor and have been quickened. As
such, do the regular checking of the return type.

Bug: https://code.google.com/p/android/issues/detail?id=181700
Bug: 22871329
Change-Id: I11bcf7bffd91fc01995b703a99e603ddb370016e

8 years agocleanup: Replace pointers with out-parameters and fix-up formatting
Igor Murashkin [Sat, 1 Aug 2015 00:35:52 +0000 (17:35 -0700)]
cleanup: Replace pointers with out-parameters and fix-up formatting

Cleans all of oat_file.h/.cc, parsed_options.h./cc, runtime.h/.cc

Other files are touched only incidentally to use outof(x) instead of &x.

Change-Id: I0bb15111149d53bb21aac2199ef33bd35333b0ca

8 years agoMerge "runtime: cleanup class_linker out-parameters and formatting"
Igor Murashkin [Fri, 31 Jul 2015 23:03:58 +0000 (23:03 +0000)]
Merge "runtime: cleanup class_linker out-parameters and formatting"

8 years agoruntime: cleanup class_linker out-parameters and formatting
Igor Murashkin [Thu, 30 Jul 2015 23:39:45 +0000 (16:39 -0700)]
runtime: cleanup class_linker out-parameters and formatting

* Use out<T> instead of parameters
* Fixes up some other signatures to be more correct
* Reformat parameters to be one per line if they can't fit on one line
* Reformat locks to be one per line if they can't fit on the decl line

Change-Id: Ib71b08707d3ed0bb85299406c0b23a1de4e92a1c

8 years agoMerge "Revert "runtime: cleanup class_linker out-parameters and formatting""
Igor Murashkin [Fri, 31 Jul 2015 23:02:50 +0000 (23:02 +0000)]
Merge "Revert "runtime: cleanup class_linker out-parameters and formatting""

8 years agoRevert "runtime: cleanup class_linker out-parameters and formatting"
Igor Murashkin [Fri, 31 Jul 2015 23:02:30 +0000 (23:02 +0000)]
Revert "runtime: cleanup class_linker out-parameters and formatting"

This reverts commit 0de694ed3efe8412b83622a24074831edcc7e384.

Change-Id: I4b185584d6e47918179b16d76709cc3366872f3c

8 years agoMerge "runtime: cleanup class_linker out-parameters and formatting"
Igor Murashkin [Fri, 31 Jul 2015 23:02:04 +0000 (23:02 +0000)]
Merge "runtime: cleanup class_linker out-parameters and formatting"

8 years agoOptimizing String.Equals as an intrinsic (x86)
agicsaki [Mon, 27 Jul 2015 17:25:10 +0000 (10:25 -0700)]
Optimizing String.Equals as an intrinsic (x86)

The third implementation of String.Equals.  I added an intrinsic
in x86 which is similar to the original java implementation of
String.equals: an instanceof check, null check, length check, and
reference equality check followed by a loop comparing strings
character by character.

Interesting Benchmarking Values:

Optimizing Compiler on Nexus Player
Intrinsic 15-30 Character Strings: 177 ns
Original 15-30 Character Strings: 275 ns
Intrinsic Null Argument: 59 ns
Original Null Argument: 137 ns
Intrinsic 100-1000 Character Strings: 1812 ns
Original 100-1000 Character Strings: 6334 ns

Bug: 21481923
Change-Id: Ia386e19b9dbfe0dac688b20ec93d8f90f67af47e

8 years agoruntime: cleanup class_linker out-parameters and formatting
Igor Murashkin [Thu, 30 Jul 2015 23:39:45 +0000 (16:39 -0700)]
runtime: cleanup class_linker out-parameters and formatting

* Use out<T> instead of parameters
* Fixes up some other signatures to be more correct
* Reformat parameters to be one per line if they can't fit on one line
* Reformat locks to be one per line if they can't fit on the decl line

Change-Id: I1031cf4edc41f95b89edb343d43ef93e15384206

8 years agoMerge "Revert "ART: Do not allow RETURN_VOID_NO_BARRIER outside constructors""
Andreas Gampe [Fri, 31 Jul 2015 20:31:40 +0000 (20:31 +0000)]
Merge "Revert "ART: Do not allow RETURN_VOID_NO_BARRIER outside constructors""

8 years agoRevert "ART: Do not allow RETURN_VOID_NO_BARRIER outside constructors"
Andreas Gampe [Fri, 31 Jul 2015 20:31:24 +0000 (20:31 +0000)]
Revert "ART: Do not allow RETURN_VOID_NO_BARRIER outside constructors"

This reverts commit e93505f599682a2e95c4dac1c8633dec79c602bc.

This isn't the right thing to do, actually.

Bug: 22871329
Change-Id: I0a0a5a86c7c8d8afdf417444ca7d73e56e040515

8 years agoMerge "ART: Do not allow RETURN_VOID_NO_BARRIER outside constructors"
Andreas Gampe [Fri, 31 Jul 2015 19:04:29 +0000 (19:04 +0000)]
Merge "ART: Do not allow RETURN_VOID_NO_BARRIER outside constructors"

8 years agoART: Do not allow RETURN_VOID_NO_BARRIER outside constructors
Andreas Gampe [Fri, 31 Jul 2015 18:34:24 +0000 (11:34 -0700)]
ART: Do not allow RETURN_VOID_NO_BARRIER outside constructors

Let the verifier fail non-constructor methods using the no-barrier
variant of return. This is a quickened return purely to avoid the
constructor barrier for final fields, and cannot be used as a stand-in
for a regular return.

Bug: https://code.google.com/p/android/issues/detail?id=181700
Bug: 22871329
Change-Id: I9559c6a1599c20ce526582527ebed73b25242767

8 years agoMerge "ART: Remove unique-numbered labels from arm64 assembly"
Andreas Gampe [Fri, 31 Jul 2015 17:52:19 +0000 (17:52 +0000)]
Merge "ART: Remove unique-numbered labels from arm64 assembly"

8 years agoART: Remove unique-numbered labels from arm64 assembly
Chih-Hung Hsieh [Mon, 27 Jul 2015 17:10:44 +0000 (10:10 -0700)]
ART: Remove unique-numbered labels from arm64 assembly

Use local labels like 1, 2, 3 in macros. Clang does not support
the unique counter variable \@.

Bug: 22799850
Change-Id: I9ef1859be40b875ef4d7ae74ec1af52ad05f7352

8 years agoMerge "Added repe_cmpsl instruction to x86, x86_64 assemblers"
Andreas Gampe [Fri, 31 Jul 2015 17:46:52 +0000 (17:46 +0000)]
Merge "Added repe_cmpsl instruction to x86, x86_64 assemblers"

8 years agoAdded repe_cmpsl instruction to x86, x86_64 assemblers
agicsaki [Fri, 31 Jul 2015 17:31:14 +0000 (10:31 -0700)]
Added repe_cmpsl instruction to x86, x86_64 assemblers

Support for this instruction has already been added to the disassembler
in commit 124b392d.

Change-Id: I6e8401a7b814618758427f5cc6b4992e265f937c

8 years agoMerge "Optimizing: Replace x86 xchg use with xor sequence"
Roland Levillain [Fri, 31 Jul 2015 17:09:10 +0000 (17:09 +0000)]
Merge "Optimizing: Replace x86 xchg use with xor sequence"

8 years agoMerge "ART: Change stream output kNone intrinsic"
David Brazdil [Fri, 31 Jul 2015 16:28:03 +0000 (16:28 +0000)]
Merge "ART: Change stream output kNone intrinsic"

8 years agoART: Change stream output kNone intrinsic
David Brazdil [Fri, 31 Jul 2015 16:10:43 +0000 (17:10 +0100)]
ART: Change stream output kNone intrinsic

Name of intrinsics is dumped with C1visualizer and checked with
Checker whose attributes should not contain whitespace. This patch
changes the output printed for non-intrinsified invokes.

Change-Id: I3e565e8c9e26eb61026e7a13823eab20409dd63a

8 years agoMerge "Do not use -DUSE_*MALLOC for host build"
Shinichiro Hamaji [Fri, 31 Jul 2015 06:03:10 +0000 (06:03 +0000)]
Merge "Do not use -DUSE_*MALLOC for host build"

8 years agoMerge "Added disassembler support for repe_cmpsw instruction in x86, x86_64"
Andreas Gampe [Thu, 30 Jul 2015 23:31:39 +0000 (23:31 +0000)]
Merge "Added disassembler support for repe_cmpsw instruction in x86, x86_64"

8 years agoMerge "base: replace raw pointers for out-parameters with safer out<T>"
Igor Murashkin [Thu, 30 Jul 2015 23:31:12 +0000 (23:31 +0000)]
Merge "base: replace raw pointers for out-parameters with safer out<T>"

8 years agoMerge "Don't dump stack when deleting an invalid local ref"
Mathieu Chartier [Thu, 30 Jul 2015 21:57:12 +0000 (21:57 +0000)]
Merge "Don't dump stack when deleting an invalid local ref"

8 years agoDon't dump stack when deleting an invalid local ref
Mathieu Chartier [Thu, 30 Jul 2015 18:41:04 +0000 (11:41 -0700)]
Don't dump stack when deleting an invalid local ref

Bug: 21724724

(cherry picked from commit 2ada67b3145d38b352297bdb9d0546f58882e208)

Change-Id: Ifa99df9ee9f3265038a0c0f7944e834e42c498d4

8 years agobase: replace raw pointers for out-parameters with safer out<T>
Igor Murashkin [Thu, 23 Jul 2015 23:53:53 +0000 (16:53 -0700)]
base: replace raw pointers for out-parameters with safer out<T>

Add a zero-cost type-safe abstraction for representing "out" parameters
(i.e. when the calling function has to return multiple results out
by-reference into the argument slots instead of using the return slot).

Change-Id: I33a941e4863b6bed71d2bfa43d7f48e9b111f83f

8 years agoAdded disassembler support for repe_cmpsw instruction in x86, x86_64
agicsaki [Thu, 30 Jul 2015 20:40:13 +0000 (13:40 -0700)]
Added disassembler support for repe_cmpsw instruction in x86, x86_64

Also included support for repe_cmpsl instruction. This is a follow up to
commit 71311f868e2 which added support for repe_cmpsw in the x86 and
x86_64 assemblers.

Change-Id: I2beac05a57341539acf96cdf77062facd031a864

8 years agoMerge "ART: Fix gtest after GraphChecker CL"
David Brazdil [Thu, 30 Jul 2015 17:23:05 +0000 (17:23 +0000)]
Merge "ART: Fix gtest after GraphChecker CL"