summaryrefslogtreecommitdiffstats
path: root/compiler/dex/pass.h
Commit message (Collapse)AuthorAgeFilesLines
* ART: Some Quick cleanupAndreas Gampe2015-01-261-17/+0
| | | | | | | | | | Make several fields const in CompilationUnit. May benefit some Mir2Lir code that repeats tests, and in general immutability is good. Remove compiler_internals.h and refactor some other headers to reduce overly broad imports (and thus forced recompiles on changes). Change-Id: I898405907c68923581373b5981d8a85d2e5d185a
* Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags.Ian Rogers2014-11-031-10/+7
| | | | | | | | | | | Fix associated errors about unused paramenters and implict sign conversions. For sign conversion this was largely in the area of enums, so add ostream operators for the effected enums and fix tools/generate-operator-out.py. Tidy arena allocation code and arena allocated data types, rather than fixing new and delete operators. Remove dead code. Change-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b
* Quick: Avoid node iteration for passes that don't need it.Vladimir Marko2014-10-151-0/+3
| | | | Change-Id: Ic1f6796a29ba861cee37a31193e07b497b84eb3f
* ART: Added dirty flag to optimizationsJean Christophe Beyler2014-08-261-1/+1
| | | | | | | | - Added a dirty flag to the PassMEDataHolder and use it to determine if we want to perform the post-optimization passes or not. Change-Id: I59a85f5198f9224d5fe8893397bfaf68a978d8f1 Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
* ART: PassMEDataHolder should have a data fieldJean Christophe Beyler2014-06-141-2/+2
| | | | | | | | | For passes that would like to pass data around while working, let them actually allocate it if need be in the Start, use it during the Worker, and potentially free it during the End. Change-Id: I03238ef17158f7e2615d6defe5d7f15432c8a511 Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
* ART: Print and dump functionalities per passJean Christophe Beyler2014-05-271-0/+15
| | | | | | | | | | | | | | | | | | | | | | LOG is a great logging tool but sometimes a pass has some debugging text it want to be able to turn on/off easily. By going via a print_pass flag, we can actually turn it on/off easily per pass when debugging/instrumenting. - Added a pass printer to help debug messages for future passes. - Added a print_pass flag in CompilationUnit to filter out messages. At the same time, did a similar system for dumping the CFG. - Also moved some API into public from protected. Change-Id: Ie0e89a8fc773e8583f3e4ffd6e4bd2eebdbb2bf4 Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com> Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com> Signed-off-by: Yixin Shou <yixin.shou@intel.com> Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com> Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
* ART: Topological Sort Traversal ImplementationJean Christophe Beyler2014-05-221-0/+5
| | | | | | | | | | | | | - Added a topological sort implementation for traversal. - Useful for traversals that require traversing the predecessors first. - Added a function to BasicBlock to detect if it is an exception block. Change-Id: I573da1768a635c6fd0259573dbb46b112132e129 Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com> Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com> Signed-off-by: Yixin Shou <yixin.shou@intel.com> Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com> Signed-off-by: Udayan Banerji <udayan.banerji@intel.com>
* ART: Pass driver generalizationJames C Scott2014-05-221-74/+20
| | | | | | | | | | | | - Generalizing Pass Driver. - Migrating ME Pass Driver to use the new generalized Pass Driver. There will be some more changes after in the compiler code to generalize it a bit more by separating what is being done by the optimizing passes and post-pass cleanups. Change-Id: I140a70e88483d7c3991b7d336bd593b2613ae194 Signed-off-by: James C Scott <james.c.scott@intel.com>
* Fix clang to compile and run host tests.Ian Rogers2014-02-281-2/+2
| | | | | | | | | | | | | | Don't use the computed goto interpreter with clang 3.4 as it causes compilation to hang. Avoid inclusion of LLVM_(HOST|DEVICE)_BUILD_MK except for with portable as it sets clang incompatible cflags. Most fixes are self-evident, for the quick dex file method inliner the enums were being used with ostreams, so fix the enums and operator out python script to allow this. Note this change effects portable but this is untestable as portable was broken by ELF file and mc linker changes. Change-Id: Ia54348f6b1bd3f76d3b71c6e8c5f97626386b903
* Reduce PassDriver overhead, clean up Pass and PassDriver.Vladimir Marko2014-01-291-11/+16
| | | | | | | | | Remove name lookup map and use vector for the pass list. Add traversal mode kNoNodes to skip BasicBlock traversal. Replace the warn_override parameter with a DCHECK. Move iterators from arena to the stack. Style cleanup. Change-Id: I4bf10e28caa65efb98ce82a4d7486d803ceca535
* Added pass frameworkJean Christophe Beyler2014-01-131-0/+145
The patch adds a Middle-End pass system and normalizes the current passes into the pass framework. Passes have: - A start, work, and end functions. - A gate to determine to apply the pass. - Can provide a CFG dump folder. mir_dataflow.cc, mir_graph.cc, mir_optimization.cc, ssa_transformation.cc: - Changed due to moving code into bb_optimizations.cc. - Moved certain functions from private to public due to needed from the passes. pass.cc, pass.h: - Pass base class pass_driver.cc, pass_driver.h: - The pass driver implementation. frontend.cc: - Replace the function calls to the passes with the pass driver. Change-Id: I88cd82efbf6499df9e6c7f135d7e294dd724a079 Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>