summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/optimization.h
Commit message (Collapse)AuthorAgeFilesLines
* Optimizing: Move optimization objects to Arena.Vladimir Marko2015-10-061-1/+2
| | | | | | | | | | | | | 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
* ART: Dead block removalDavid Brazdil2015-04-241-1/+1
| | | | | | | | | 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
* ART: Add -WunusedAndreas Gampe2015-02-241-6/+0
| | | | | | | Until the global CFLAGS are fixed, add Wunused. Fix declarations in the optimizing compiler. Change-Id: Ic4553f08e809dc54f3d82af57ac592622c98e000
* Reference type propagationCalin Juravle2015-02-191-1/+8
| | | | | | | | | - 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
* Create HGraph outside Builder, print timingsDavid Brazdil2015-02-041-0/+2
| | | | | | | | | 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
* Implement LICM in optimizing compiler.Nicolas Geoffray2015-01-301-0/+4
| | | | Change-Id: I9c8afb0a58ef45e568576015473cbfd5f011c242
* ART: Fix unused variables and functionsAndreas Gampe2014-11-241-1/+0
| | | | Change-Id: Icbab884d2dfd71656347368b424cb35cbf524051
* Use HOptimization abstraction for running optimizations.Nicolas Geoffray2014-11-191-11/+2
| | | | | | Move existing optimizations to it. Change-Id: I3b43f9997faf4ed8875162e3a3abdf99375478dd
* Revert "Revert "Introduce a class to implement optimization passes.""Roland Levillain2014-10-171-0/+71
| | | | | | This reverts commit 1ddbf6d4b37979a9f11a203c12befd5ae8b65df4. Change-Id: I110a14668d1564ee0604dc958b91394b40da89fc
* Revert "Introduce a class to implement optimization passes."Nicolas Geoffray2014-10-011-79/+0
| | | | | | This reverts commit bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8. Change-Id: I0a483446666c9c24c45925a5fc199debdefd8b3e
* Introduce a class to implement optimization passes.Roland Levillain2014-10-011-0/+79
- 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