OSDN Git Service
Andreas Gampe [Fri, 14 Aug 2015 03:55:31 +0000 (20:55 -0700)]
ART: DCHECK zero case for CLZ/CTZ
Add a DCHECK_CONSTEXPR. All current callers have an explicit
zero check before hand and so we should not trip this at the
moment. Remove the TODO.
Add the check for T being unsigned for CLZ (trivial fix for
leb128.h). We use CTZ with signed types.
Change-Id: I7bbf0b1699eed21715c6cc20dbfe22b7da403b1a
Mathieu Chartier [Thu, 13 Aug 2015 21:28:28 +0000 (21:28 +0000)]
Merge "Ignore OOME in ThreadStress Daemon threads"
Mathieu Chartier [Thu, 13 Aug 2015 20:02:01 +0000 (13:02 -0700)]
Ignore OOME in ThreadStress Daemon threads
When the runtime is shutting down we don't allow GC, this can cause
OOME in Daemon threads that are allocating. The OOME stack trace
printing can cause the test to fail.
Bug:
18577101
Change-Id: Iabbce3d75caada361dd06942f4b3be9907596091
Roland Levillain [Thu, 13 Aug 2015 16:25:52 +0000 (16:25 +0000)]
Merge "Adjust art::HTypeConversion's side effects for MIPS64."
Nicolas Geoffray [Thu, 13 Aug 2015 15:16:40 +0000 (15:16 +0000)]
Merge "Small optimization improvements."
Roland Levillain [Thu, 13 Aug 2015 11:31:44 +0000 (12:31 +0100)]
Adjust art::HTypeConversion's side effects for MIPS64.
Also improve debugging information in
art::CodeGenerator::ValidateInvokeRuntime.
Change-Id: Icfcd1a5cfa5e5449a316251dc20547de6badecb5
Roland Levillain [Thu, 13 Aug 2015 11:00:54 +0000 (11:00 +0000)]
Merge "Remove unnecessary `explicit` qualifiers on constructors."
Andreas Gampe [Thu, 13 Aug 2015 05:26:35 +0000 (05:26 +0000)]
Merge "Intrinsics recognizer returns kNone for MIPS, MIPS64 instruction sets"
Andreas Gampe [Thu, 13 Aug 2015 05:13:11 +0000 (05:13 +0000)]
Merge "Structure for String.Equals intrinsic"
agicsaki [Thu, 13 Aug 2015 03:30:17 +0000 (20:30 -0700)]
Structure for String.Equals intrinsic
Added structure for implementing String.Equals intrinsics. There is no
functional change at this point- the intrinsic is marked as unimplemented
for all instruction sets and compilers.
Bug:
21481923
Change-Id: Ic2a1e22a113ff6091581126f12e926478c011340
agicsaki [Thu, 13 Aug 2015 04:20:43 +0000 (21:20 -0700)]
Intrinsics recognizer returns kNone for MIPS, MIPS64 instruction sets
Since no intrinsics are implemented in MIPS or MIPS64, the intrinsics
recognizer now does not mark methods as being intrinsified if the
current instruction set is either MIPS or MIPS64.
Change-Id: I9819ccd11d280e548623ad18add057eefefbf6d5
Andreas Gampe [Thu, 13 Aug 2015 02:54:37 +0000 (02:54 +0000)]
Merge "Add support to indicate whether intrinsics require an environment"
Mathieu Chartier [Thu, 13 Aug 2015 01:38:18 +0000 (01:38 +0000)]
Merge "Wait for GC to finish in ThreadList::~ThreadList"
Nicolas Geoffray [Thu, 13 Aug 2015 01:28:14 +0000 (18:28 -0700)]
Small optimization improvements.
- Tune CanBeNull for HBoundType.
- Remove LoadClass when we know the class is loaded.
- Tune CanBeNull for StringInit.
Change-Id: I564ed33a506d65e991a514342bdfd1610bed0cf5
Mathieu Chartier [Wed, 12 Aug 2015 23:40:32 +0000 (16:40 -0700)]
Wait for GC to finish in ThreadList::~ThreadList
Added a DisableGC to the heap instead of using the runtime shutdown
boolean. The runtime shutting down boolean is set to true before the
non daemon threads have exited. These threads may still be doing
allocations and we don't want to throw OOME if unnecessary.
Bug:
18577101
Change-Id: Iceb7048e6bd799aa2716099459c54f8dc0fb8feb
agicsaki [Wed, 12 Aug 2015 00:39:37 +0000 (17:39 -0700)]
Add support to indicate whether intrinsics require an environment
A structural change to indicate whether a given intrinsic requires
access to an environment. I added a field to HInvoke objects to indicate
if they need an environment whose default value is true and is only updated
if an intrinsic is marked as not requiring an environment. At this point
there is no functional change, as all intrinsics are marked as requiring
an environment. This change adds the structure for future inliner work
which will allow us to inline more intrinsified calls.
Change-Id: I2930e3cef7b785384bf95b95a542d34af442f3b9
Mathieu Chartier [Thu, 13 Aug 2015 01:01:38 +0000 (01:01 +0000)]
Merge "Visit class roots from ClassLoader::VisitReferences"
Andreas Gampe [Wed, 12 Aug 2015 23:53:44 +0000 (23:53 +0000)]
Merge "ART: Add correct -inl file"
Andreas Gampe [Wed, 12 Aug 2015 23:42:06 +0000 (16:42 -0700)]
ART: Add correct -inl file
Follow-up to
f10b6e109bfb595b6752d1b59db680694ac1684d.
Bug:
20843113
Change-Id: Idfb9479c2cd242c2fbf748177177ae1cba0508d6
Andreas Gampe [Wed, 12 Aug 2015 23:28:54 +0000 (23:28 +0000)]
Merge "ART: Change UninitializedThis tracking in the verifier"
Andreas Gampe [Wed, 12 Aug 2015 17:48:12 +0000 (10:48 -0700)]
ART: Change UninitializedThis tracking in the verifier
Only relying on register types is error-prone. For example, we may
inadvertently reject correct code when the constructor terminates
abnormally.
Bug:
20843113
Change-Id: I8826cd167780df25a6166740f183d216483fa550
Mathieu Chartier [Thu, 6 Aug 2015 22:34:15 +0000 (15:34 -0700)]
Visit class roots from ClassLoader::VisitReferences
This causes the classes of a class loader to get marked when that
class loader gets marked instead of during class root visiting.
Bug:
22720414
Change-Id: If53f042aff1d9f7bf94ecbe6886601edda029b7d
Mathieu Chartier [Wed, 12 Aug 2015 22:02:02 +0000 (22:02 +0000)]
Merge "Don't allow GC to start if the runtime is shutting down"
Mathieu Chartier [Wed, 12 Aug 2015 20:53:06 +0000 (13:53 -0700)]
Don't allow GC to start if the runtime is shutting down
Daemon threads may be trying to do allocations as the runtime is
shutting down, don't allow GC to start since it touches the heap
and may cause crashes if it is running while we delete the heap
or thread list.
Bug:
18577101
Change-Id: I1404b41f2aee13d3c26acffdf588c985628beefc
Mathieu Chartier [Wed, 12 Aug 2015 20:22:34 +0000 (20:22 +0000)]
Merge "Delete AllocationTimer"
Mathieu Chartier [Wed, 12 Aug 2015 17:20:27 +0000 (10:20 -0700)]
Delete AllocationTimer
Not very useful, running benchmarks is better.
Bug:
19534862
Change-Id: I725830274e306621bffdabffdee602a03daf016f
Roland Levillain [Wed, 12 Aug 2015 17:46:35 +0000 (17:46 +0000)]
Merge "Add a GVN dependency 'GC' for garbage collection."
Roland Levillain [Wed, 12 Aug 2015 17:15:42 +0000 (18:15 +0100)]
Remove unnecessary `explicit` qualifiers on constructors.
Change-Id: Id12e392ad50f66a6e2251a68662b7959315dc567
Alexandre Rames [Wed, 12 Aug 2015 12:43:29 +0000 (13:43 +0100)]
Add a GVN dependency 'GC' for garbage collection.
This will be used by incoming architecture specific optimizations. The
dependencies must be conservative. When an HInstruction is created we
may not be sure whether it can trigger GC. In that case the
'ChangesGC' dependency must be set. We control at code-generation time
that HInstructions that can call have the 'ChangesGC' dependency
set.
Change-Id: Iea6a7f430009f37a9599b0a0039207049906e45d
Roland Levillain [Wed, 12 Aug 2015 11:43:20 +0000 (11:43 +0000)]
Merge "[optimizing] More x86_64 code improvements"
Mathieu Chartier [Wed, 12 Aug 2015 03:22:25 +0000 (03:22 +0000)]
Merge "Some heap cleanup"
Mathieu Chartier [Wed, 12 Aug 2015 00:35:25 +0000 (17:35 -0700)]
Some heap cleanup
Bug:
19534862
Change-Id: Ia63f489d26ec8813a263ce877bdbbc8c4e8fe5f4
Mathieu Chartier [Wed, 12 Aug 2015 00:12:18 +0000 (00:12 +0000)]
Merge "Add daemon threads to 004-ThreadStress"
Roland Levillain [Tue, 11 Aug 2015 22:34:21 +0000 (22:34 +0000)]
Merge "[MIPS] Avoid using odd numbered fp registers"
Mathieu Chartier [Tue, 11 Aug 2015 21:13:37 +0000 (21:13 +0000)]
Merge "Address some comments"
Mathieu Chartier [Tue, 11 Aug 2015 20:01:23 +0000 (13:01 -0700)]
Address some comments
Change-Id: I0262304cc720a0e93015955d0a7fb05dfebe213e
Nicolas Geoffray [Tue, 11 Aug 2015 17:42:21 +0000 (17:42 +0000)]
Merge "Revert "Revert "Pass the verified method to the inlinee DexCompilationUnit."""
Mark Mendell [Mon, 25 May 2015 20:02:44 +0000 (16:02 -0400)]
[optimizing] More x86_64 code improvements
Use the constant area some more, use 32-bit immediates in movq
instructions when possible, and other small tweaks.
Remove the commented out code for Math.Abs(float/double) as it would
fail for baseline compiler due to the output being the same as the
input.
Change-Id: Ifa39f1865b94cec2e1c0a99af3066a645e9d3618
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Vladimir Marko [Tue, 11 Aug 2015 14:28:04 +0000 (14:28 +0000)]
Merge "ART: Fix Quick's DCE+GVN"
Calin Juravle [Tue, 11 Aug 2015 14:25:45 +0000 (14:25 +0000)]
Merge "ART-Optimizing: Fix the type of HDivZeroCheck"
Serguei Katkov [Mon, 10 Aug 2015 06:59:02 +0000 (12:59 +0600)]
ART: Fix Quick's DCE+GVN
DCE_GVN does not take into account the following case:
mov a, b
...
mov c, b
when optimization tries to replace a with c it must ensure that
for all uses of a there is no new definition of c before use.
Otherwise that use will incorrectly substituted with new c instead
of original b.
Bug:
23102860
Change-Id: I48ee0bd4386419b0f9c814c21b3537a392518cd1
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Serguei Katkov [Mon, 3 Aug 2015 07:55:33 +0000 (13:55 +0600)]
ART-Optimizing: Fix the type of HDivZeroCheck
HDivZeroCheck is created during the building CFG and at this moment
its type is not known completely. So it sets the type to int or long.
However, later SSA builder can insert the type conversion and type
of input of HDivZeroCheck can become byte or short while the type
of HDivZeroCheck remains the same.
In reality the type of HDivZeroCheck should be always equal to
its input parameter.
To fix this inconsistency we return the type of HDivZeroCheck as its
input type. Code generators are updated accordingly.
Change-Id: I6a5aedc8d479cfc6328704e7ddf252bca830076b
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Nicolas Geoffray [Tue, 11 Aug 2015 02:14:38 +0000 (02:14 +0000)]
Revert "Revert "Pass the verified method to the inlinee DexCompilationUnit.""
bug:
22866717
This reverts commit
f25b661b3708c865cdaa0a018372a42881353bea.
Change-Id: I95e8310e6c3d8e6edb736fdefcabf602cce3a4e0
Andreas Gampe [Tue, 11 Aug 2015 01:18:15 +0000 (01:18 +0000)]
Merge "ART: Change UnresolvedMergedType merge"
Andreas Gampe [Tue, 11 Aug 2015 00:15:32 +0000 (17:15 -0700)]
ART: Change UnresolvedMergedType merge
Change to use IsUnresolvedTypes.
Bug:
22881413
(cherry picked from commit
168387df8dcbae1b51f124eed84daf8e8de6a974)
Change-Id: Ic27b97b475b28a5bdf994ea5178767e0efb0e752
Man Cao [Mon, 10 Aug 2015 22:51:27 +0000 (15:51 -0700)]
Add daemon threads to 004-ThreadStress
Bug:
19537976
Change-Id: I129e311aa6f7ca4f49d64ec50c0e07857b12b6d8
Andreas Gampe [Mon, 10 Aug 2015 18:46:55 +0000 (18:46 +0000)]
Merge "ART: Fix reg_type_test"
Andreas Gampe [Mon, 10 Aug 2015 18:45:24 +0000 (11:45 -0700)]
ART: Fix reg_type_test
Follow-up to
750f7c2827318f6d07620f2ef0321218ea4d8670.
Bug:
22881413
Change-Id: Iaea4cc29ed680710d01532124bc472547ee18bdb
Andreas Gampe [Mon, 10 Aug 2015 18:26:59 +0000 (18:26 +0000)]
Merge "ART: Add complex UnresolvedMergedType test case"
Andreas Gampe [Mon, 10 Aug 2015 18:26:46 +0000 (18:26 +0000)]
Merge "ART: Change UnresolvedMergedType internal representation"
Mathieu Chartier [Mon, 10 Aug 2015 18:16:03 +0000 (18:16 +0000)]
Merge "Do read barriers on native roots in CopyClassVisitor"
Mathieu Chartier [Mon, 10 Aug 2015 17:13:02 +0000 (10:13 -0700)]
Do read barriers on native roots in CopyClassVisitor
Fixes a race condition caused by making a copy of a class then
clearing the native root arrays of the original class. If the
original class was gray and the new class was black then the GC
would miss the native roots.
Bug:
22957957
Change-Id: I706110018220af12a2ad0d72eb803f1cfe3580b9
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
Andreas Gampe [Fri, 7 Aug 2015 15:07:16 +0000 (08:07 -0700)]
ART: Add complex UnresolvedMergedType test case
Add a test case that stresses the verifier. Add dex2oat timeout
to the host prebuild configuration.
Bug:
22881413
Change-Id: Ic4a0d16a4dc69f3d43bac40a560b6e6884df263f
Nicolas Geoffray [Mon, 10 Aug 2015 15:07:43 +0000 (15:07 +0000)]
Merge "Fix a bug in the register allocator around pair allocation."
Goran Jakovljevic [Tue, 28 Jul 2015 12:26:12 +0000 (14:26 +0200)]
[MIPS] Avoid using odd numbered fp registers
Don't use odd numbered fp registers for single precision data on
MIPS32r6 (64-bit FPU).
Bug:
23050326
Change-Id: I35cc19df091149773411e2336b01c170929376bc
Nicolas Geoffray [Sat, 8 Aug 2015 01:13:03 +0000 (18:13 -0700)]
Fix a bug in the register allocator around pair allocation.
We may get hints that do not work with the current implementation
of register pairs, which forces the allocation of (low + 1)
for the high register. For example, if the hint is EBX, we will
allocate ESP for the high register.
bug:
23043730
Change-Id: I371ebb0c61568f09d12eb9ab815c0bf0ea02d49b
Andreas Gampe [Sat, 8 Aug 2015 00:23:51 +0000 (00:23 +0000)]
Merge "ART: 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
Andreas Gampe [Sat, 8 Aug 2015 00:14:42 +0000 (00:14 +0000)]
Merge "ART: 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
Mathieu Chartier [Fri, 7 Aug 2015 23:33:43 +0000 (23:33 +0000)]
Merge "Add class table field to class loader"
Dan Albert [Fri, 7 Aug 2015 23:21:25 +0000 (23:21 +0000)]
Merge "Fix C++14 bitrot."
Dan Albert [Fri, 7 Aug 2015 23:19:01 +0000 (16:19 -0700)]
Fix C++14 bitrot.
Change-Id: I22f7925a87bca45646c563971342a9a1b2090ba6
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
Nicolas Geoffray [Fri, 7 Aug 2015 16:04:33 +0000 (16:04 +0000)]
Merge "Ensure coherency of call kinds for LocationSummary."
Nicolas Geoffray [Fri, 7 Aug 2015 15:31:20 +0000 (15:31 +0000)]
Merge "Revert "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
Nicolas Geoffray [Fri, 7 Aug 2015 14:47:18 +0000 (14:47 +0000)]
Merge "Pass the verified method to the inlinee DexCompilationUnit."
Roland Levillain [Fri, 7 Aug 2015 10:50:06 +0000 (10:50 +0000)]
Merge "Tighten 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
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
David Brazdil [Fri, 7 Aug 2015 07:23:23 +0000 (07:23 +0000)]
Merge "Introduce arch-specific checker tests."
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
Calin Juravle [Thu, 6 Aug 2015 17:49:55 +0000 (17:49 +0000)]
Merge "ART: 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>
Sebastien Hertz [Thu, 6 Aug 2015 14:46:41 +0000 (14:46 +0000)]
Merge "Fix image loading in interpeter-only mode"
Sebastien Hertz [Thu, 6 Aug 2015 14:43:58 +0000 (14:43 +0000)]
Merge "Fix DDM reply buffer deallocation"
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
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
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
Mathieu Chartier [Thu, 6 Aug 2015 03:12:39 +0000 (03:12 +0000)]
Merge "Move 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
Andreas Gampe [Wed, 5 Aug 2015 23:06:02 +0000 (23:06 +0000)]
Merge "ART: 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
Andreas Gampe [Wed, 5 Aug 2015 18:59:25 +0000 (18:59 +0000)]
Merge "ART: 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
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""
Mathieu Chartier [Wed, 5 Aug 2015 18:02:53 +0000 (18:02 +0000)]
Merge "Address some comments and clean up"
Mathieu Chartier [Wed, 5 Aug 2015 17:42:56 +0000 (17:42 +0000)]
Merge "Fix 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
Roland Levillain [Wed, 5 Aug 2015 12:52:12 +0000 (12:52 +0000)]
Merge "Have constant folding be more flexible."
Roland Levillain [Wed, 5 Aug 2015 10:03:46 +0000 (10:03 +0000)]
Merge "Add constant folding for long unary operations in opt. compiler."
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
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
David Brazdil [Wed, 5 Aug 2015 08:34:24 +0000 (08:34 +0000)]
Merge "ART: Move exception clearing into own instruction"
Andreas Gampe [Wed, 5 Aug 2015 02:55:46 +0000 (02:55 +0000)]
Merge "Revert "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
Nicolas Geoffray [Wed, 5 Aug 2015 02:11:01 +0000 (02:11 +0000)]
Merge "ART: x86_64 RoundDouble/Float intrinsics should initialize out value."
Mathieu Chartier [Tue, 4 Aug 2015 22:19:41 +0000 (15:19 -0700)]
Address some comments and clean up
Change-Id: I538cf204f1c89d5fc81f8fc5e5800fcf1cf87359