f9f6441c665b5ff9004d3ed55014f46d416fb1bb |
|
02-Sep-2015 |
Vladimir Marko <vmarko@google.com> |
Optimizing: Tag Arena allocations with their source. This adds the ability to track where we allocate memory when the kArenaAllocatorCountAllocations flag is turned on. Also move some allocations from native heap to the Arena and remove some unnecessary utilities. Bug: 23736311 Change-Id: I1aaef3fd405d1de444fe9e618b1ce7ecef07ade3
|
854a02b1b488327f80c544ca1119b386b8715c26 |
|
15-Jul-2015 |
Aart Bik <ajcbik@google.com> |
Improved side effect analysis (field/array write/read). Rationale: Types (int, float etc.) and access type (field vs. array) can be used to disambiguate write/read side-effects analysis. This directly improves e.g. dead code elimination and licm. Change-Id: I371f6909a3f42bda13190a03f04c4a867bde1d06
|
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
|
2d7352ba5311b8f57427b91b7a891e61497373c1 |
|
20-Apr-2015 |
David Brazdil <dbrazdil@google.com> |
ART: Dead block removal Adds a new pass which finds all unreachable blocks, typically due to simplifying an if-condition to a constant, and removes them from the graph. The patch also slightly generalizes the graph-transforming operations. Change-Id: Iff7c97f1d10b52886f3cd7401689ebe1bfdbf456
|
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
|
5e8b137d28c840b128e2488f954cccee3e86db14 |
|
23-Jan-2015 |
David Brazdil <dbrazdil@google.com> |
Create HGraph outside Builder, print timings This patch refactors the way HGraph objects are created, moving the instantiation out of the Builder class and creating the CodeGenerator earlier. The patch uses this to build a single interface for printing timings info and dumping the CFG. Change-Id: I2eb63eabf28e2d0f5cdc7affaa690c3a4b1bdd21
|
82091dad38f3e5bfaf3b6984c9ab73069fb68310 |
|
26-Jan-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Implement LICM in optimizing compiler. Change-Id: I9c8afb0a58ef45e568576015473cbfd5f011c242
|
9f612ffab2b188d80027d961d7118eb2c461b5ad |
|
24-Nov-2014 |
Andreas Gampe <agampe@google.com> |
ART: Fix unused variables and functions Change-Id: Icbab884d2dfd71656347368b424cb35cbf524051
|
5e6916cea259897baaca019c5c7a5d05746306ed |
|
18-Nov-2014 |
Nicolas Geoffray <ngeoffray@google.com> |
Use HOptimization abstraction for running optimizations. Move existing optimizations to it. Change-Id: I3b43f9997faf4ed8875162e3a3abdf99375478dd
|
75be28332b278cff9039b54bfb228ac72f539ccc |
|
17-Oct-2014 |
Roland Levillain <rpl@google.com> |
Revert "Revert "Introduce a class to implement optimization passes."" This reverts commit 1ddbf6d4b37979a9f11a203c12befd5ae8b65df4. Change-Id: I110a14668d1564ee0604dc958b91394b40da89fc
|
1ddbf6d4b37979a9f11a203c12befd5ae8b65df4 |
|
01-Oct-2014 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "Introduce a class to implement optimization passes." This reverts commit bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8. Change-Id: I0a483446666c9c24c45925a5fc199debdefd8b3e
|
bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8 |
|
30-Sep-2014 |
Roland Levillain <rpl@google.com> |
Introduce a class to implement optimization passes. - Add art::HOptimization. - Rename art::ConstantPropagation to art::HConstantFolding in compiler/optimizing/constant_folding.h to avoid name clashes with a class of the same name in compiler/dex/post_opt_passes.h. - Rename art::DeadCodeElimination to art::HDeadCodeElimination for consistency reasons. - Have art::HDeadCodeElimination and art::HConstantFolding derive from art::HOptimization. - Start to use these optimizations in art:OptimizingCompiler::TryCompile. Change-Id: Iaab350c122d87b2333b3760312b15c0592d7e010
|