1252e976b972231a84b36e4bb73cf513bb7799d1 |
|
06-Aug-2015 |
Roland Levillain <rpl@google.com> |
Implement Optimizing's constant folding as a visitor. Refactor the logic of art::HConstantFolding::Run into a new visitor, art::HConstantFoldingVisitor. Change-Id: Id8d3c3826f6dff6cc2d18a01f6c48d79bde483b3
|
4fa13f65ece3b68fe3d8722d679ebab8656bbf99 |
|
06-Jul-2015 |
Roland Levillain <rpl@google.com> |
Fuse long and FP compare & condition on ARM in Optimizing. Also: - Stylistic changes in corresponding parts on the x86 and x86-64 code generators. - Update and improve the documentation of art::arm::Condition. Bug: 21120453 Change-Id: If144772046e7d21362c3c2086246cb7d011d49ce
|
69ba7b7112c2277ac225615b37e6df74c055740d |
|
23-Jun-2015 |
David Brazdil <dbrazdil@google.com> |
ART: Run GraphChecker after Builder and SsaBuilder This patch refactors the way GraphChecker is invoked, utilizing the same scoping mechanism as pass timing and graph visualizer. Therefore, GraphChecker will now run not just after instances of HOptimization but after the builders and reg alloc, too. Change-Id: I8173b98b79afa95e1fcbf3ac9630a873d7f6c1d4
|
a3a3c5943522e7325d60cfcbdd17aff1e138f53d |
|
12-Jun-2015 |
Vladimir Marko <vmarko@google.com> |
Optimizing: Move optimization objects to Arena. This should reduce the stack size needed by the OptimizingCompiler::CompileOptimized() which was very close to our limits for clang builds, causing repeated build breakages on otherwise healthy changes: art/compiler/optimizing/optimizing_compiler.cc:395:37: error: stack frame size of 1760 bytes in function 'art::OptimizingCompiler::CompileOptimized' [-Werror,-Wframe-larger-than=] Change-Id: I2f4ab0235f4eac61823a4a320bb4fe78942a23c2
|
7c3952f423b8213083d60596a5f0bf4237ca3f7b |
|
20-Feb-2015 |
Andreas Gampe <agampe@google.com> |
ART: Add -Wunused Until the global CFLAGS are fixed, add Wunused. Fix declarations in the optimizing compiler. Change-Id: Ic4553f08e809dc54f3d82af57ac592622c98e000
|
acf735c13998ad2a175f5a17e7bfce220073279d |
|
12-Feb-2015 |
Calin Juravle <calin@google.com> |
Reference type propagation - propagate reference types between instructions - remove checked casts when possible - add StackHandleScopeCollection to manage an arbitrary number of stack handles (see comments) Change-Id: I31200067c5e7375a5ea8e2f873c4374ebdb5ee60
|
10e244f9e7f6d96a95c910a2bedef5bd3810c637 |
|
26-Jan-2015 |
Calin Juravle <calin@google.com> |
optimizing: NullCheck elimination How it works: - run a type analysis to propagate null information on instructions - during the last instruction simplifier remove null checks for which the input is known to be not null The current type analysis is actually a nullability analysis but it will be reused in follow up CLs to propagate type information: so it keeps the more convenient name. Change-Id: I54bb1d32ab24604b4d677d1ecdaf8d60a5ff5ce9
|
5e6916cea259897baaca019c5c7a5d05746306ed |
|
18-Nov-2014 |
Nicolas Geoffray <ngeoffray@google.com> |
Use HOptimization abstraction for running optimizations. Move existing optimizations to it. Change-Id: I3b43f9997faf4ed8875162e3a3abdf99375478dd
|
af07bc121121d7bd7e8329c55dfe24782207b561 |
|
12-Nov-2014 |
Nicolas Geoffray <ngeoffray@google.com> |
Minor object store optimizations. - Avoid emitting write barrier when the value is null. - Do not do a typecheck on an arraystore when storing something that was loaded from the same array. Change-Id: I902492928692e4553b5af0fc99cce3c2186c442a
|
01ef345767ea609417fc511e42007705c9667546 |
|
01-Oct-2014 |
Nicolas Geoffray <ngeoffray@google.com> |
Add trivial register hints to the register allocator. - Add hints for phis, same as first input, and expected registers. - Make the if instruction accept non-condition instructions. Change-Id: I34fa68393f0d0c19c68128f017b7a05be556fbe5
|
3c04974a90b0e03f4b509010bff49f0b2a3da57f |
|
24-Sep-2014 |
Nicolas Geoffray <ngeoffray@google.com> |
Optimize suspend checks in optimizing compiler. - Remove the ones added during graph build (they were added for the baseline code generator). - Emit them at loop back edges after phi moves, so that the test can directly jump to the loop header. - Fix x86 and x86_64 suspend check by using cmpw instead of cmpl. Change-Id: I6fad5795a55705d86c9e1cb85bf5d63dadfafa2a
|