summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/optimizing_compiler.cc
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2014-12-29 17:43:08 -0800
committerAndreas Gampe <agampe@google.com>2015-01-15 10:21:11 -0800
commit71fb52fee246b7d511f520febbd73dc7a9bbca79 (patch)
tree444d91e910433aaf887bbdada28dfaa3160bebc2 /compiler/optimizing/optimizing_compiler.cc
parent420457e6040184a6e1639a4c84fcc8e237bd8a3d (diff)
downloadandroid_art-71fb52fee246b7d511f520febbd73dc7a9bbca79.tar.gz
android_art-71fb52fee246b7d511f520febbd73dc7a9bbca79.tar.bz2
android_art-71fb52fee246b7d511f520febbd73dc7a9bbca79.zip
ART: Optimizing compiler intrinsics
Add intrinsics infrastructure to the optimizing compiler. Add almost all intrinsics supported by Quick to the x86-64 backend. Further intrinsics require more assembler support. Change-Id: I48de9b44c82886bb298d16e74e12a9506b8e8807
Diffstat (limited to 'compiler/optimizing/optimizing_compiler.cc')
-rw-r--r--compiler/optimizing/optimizing_compiler.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index eaecbb04ae..605637300f 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -25,6 +25,7 @@
#include "compiler.h"
#include "constant_folding.h"
#include "dead_code_elimination.h"
+#include "dex/quick/dex_file_to_method_inliner_map.h"
#include "driver/compiler_driver.h"
#include "driver/dex_compilation_unit.h"
#include "elf_writer_quick.h"
@@ -32,6 +33,7 @@
#include "gvn.h"
#include "inliner.h"
#include "instruction_simplifier.h"
+#include "intrinsics.h"
#include "jni/quick/jni_compiler.h"
#include "mirror/art_method-inl.h"
#include "nodes.h"
@@ -215,9 +217,12 @@ static void RunOptimizations(HGraph* graph,
BoundsCheckElimination bce(graph);
InstructionSimplifier simplify2(graph);
+ IntrinsicsRecognizer intrinsics(graph, dex_compilation_unit.GetDexFile(), driver);
+
HOptimization* optimizations[] = {
&redundant_phi,
&dead_phi,
+ &intrinsics,
&dce,
&fold,
&simplify1,