Add a register allocation strategy compiler option
Test: manually, on device.
Change-Id: If007a1657dd5769ddef03691e0a19dbbe6ba1a29
diff --git a/compiler/driver/compiler_options.h b/compiler/driver/compiler_options.h
index 60b700a..cc66d7a 100644
--- a/compiler/driver/compiler_options.h
+++ b/compiler/driver/compiler_options.h
@@ -24,6 +24,7 @@
#include "base/macros.h"
#include "compiler_filter.h"
#include "globals.h"
+#include "optimizing/register_allocator.h"
#include "utils.h"
namespace art {
@@ -74,7 +75,8 @@
bool abort_on_hard_verifier_failure,
const std::string& dump_cfg_file_name,
bool dump_cfg_append,
- bool force_determinism);
+ bool force_determinism,
+ RegisterAllocator::Strategy regalloc_strategy);
CompilerFilter::Filter GetCompilerFilter() const {
return compiler_filter_;
@@ -244,6 +246,10 @@
return force_determinism_;
}
+ RegisterAllocator::Strategy GetRegisterAllocationStrategy() const {
+ return register_allocation_strategy_;
+ }
+
private:
void ParseDumpInitFailures(const StringPiece& option, UsageFn Usage);
void ParseDumpCfgPasses(const StringPiece& option, UsageFn Usage);
@@ -254,6 +260,7 @@
void ParseSmallMethodMax(const StringPiece& option, UsageFn Usage);
void ParseLargeMethodMax(const StringPiece& option, UsageFn Usage);
void ParseHugeMethodMax(const StringPiece& option, UsageFn Usage);
+ void ParseRegisterAllocationStrategy(const StringPiece& option, UsageFn Usage);
CompilerFilter::Filter compiler_filter_;
size_t huge_method_threshold_;
@@ -297,6 +304,8 @@
// outcomes.
bool force_determinism_;
+ RegisterAllocator::Strategy register_allocation_strategy_;
+
friend class Dex2Oat;
DISALLOW_COPY_AND_ASSIGN(CompilerOptions);