diff --git a/src/compiler_llvm/backend_options.h b/src/compiler_llvm/backend_options.h
new file mode 100644
index 0000000..f8295d1
--- /dev/null
+++ b/src/compiler_llvm/backend_options.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ART_SRC_COMPILER_LLVM_BACKEND_OPTIONS_H_
+#define ART_SRC_COMPILER_LLVM_BACKEND_OPTIONS_H_
+
+#include <llvm/Support/CommandLine.h>
+
+#define DECLARE_ARM_BACKEND_OPTIONS \
+extern llvm::cl::opt<bool> EnableARMLongCalls; \
+extern llvm::cl::opt<bool> ReserveR9;
+
+#define INITIAL_ARM_BACKEND_OPTIONS \
+EnableARMLongCalls = false; \
+ReserveR9 = true;
+
+#define DECLARE_X86_BACKEND_OPTIONS
+#define INITIAL_X86_BACKEND_OPTIONS
+
+#define DECLARE_Mips_BACKEND_OPTIONS
+#define INITIAL_Mips_BACKEND_OPTIONS
+
+#define LLVM_TARGET(TargetName) DECLARE_##TargetName##_BACKEND_OPTIONS
+#include "llvm/Config/Targets.def"
+
+namespace art {
+namespace compiler_llvm {
+
+inline void InitialBackendOptions() {
+#define LLVM_TARGET(TargetName) INITIAL_##TargetName##_BACKEND_OPTIONS
+#include "llvm/Config/Targets.def"
+}
+
+}  // namespace compiler_llvm
+}  // namespace art
+
+#endif  // ART_SRC_COMPILER_LLVM_BACKEND_OPTIONS_H_
diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc
index b517d47..6d30912 100644
--- a/src/compiler_llvm/compiler_llvm.cc
+++ b/src/compiler_llvm/compiler_llvm.cc
@@ -16,6 +16,7 @@
 
 #include "compiler_llvm.h"
 
+#include "backend_options.h"
 #include "class_linker.h"
 #include "compilation_unit.h"
 #include "compiled_method.h"
@@ -33,7 +34,6 @@
 
 #include <llvm/LinkAllPasses.h>
 #include <llvm/LinkAllVMCore.h>
-#include <llvm/Support/CommandLine.h>
 #include <llvm/Support/ManagedStatic.h>
 #include <llvm/Support/TargetSelect.h>
 #include <llvm/Support/Threading.h>
@@ -42,14 +42,6 @@
   extern bool TimePassesIsEnabled;
 }
 
-// NOTE: Although EnableARMLongCalls is defined in llvm/lib/Target/ARM/
-// ARMISelLowering.cpp, however, it is not in the llvm namespace.
-extern llvm::cl::opt<bool> EnableARMLongCalls;
-
-// ReserveR9 is defined in llvm/lib/Target/ARM/ARMSubtarget.cpp
-extern llvm::cl::opt<bool> ReserveR9;
-
-
 namespace {
 
 pthread_once_t llvm_initialized = PTHREAD_ONCE_INIT;
@@ -61,11 +53,8 @@
   // NOTE: Uncomment following line to show the time consumption of LLVM passes
   //llvm::TimePassesIsEnabled = true;
 
-  // Enable -arm-reserve-r9
-  ReserveR9 = true;
-
-  // Enable -arm-long-calls
-  EnableARMLongCalls = false;
+  // Initialize LLVM target-specific options.
+  art::compiler_llvm::InitialBackendOptions();
 
   // Initialize LLVM target, MC subsystem, asm printer, and asm parser
   llvm::InitializeAllTargets();
diff --git a/src/compiler_llvm/compiler_runtime_func_list.h b/src/compiler_llvm/compiler_runtime_func_list.h
index 6b116fd..d9bdc8e 100644
--- a/src/compiler_llvm/compiler_runtime_func_list.h
+++ b/src/compiler_llvm/compiler_runtime_func_list.h
@@ -65,49 +65,34 @@
   V(copysignl) \
   V(cos) \
   V(cosf) \
-  V(cosl) \
   V(exp) \
   V(exp2) \
   V(exp2f) \
-  V(exp2l) \
   V(expf) \
-  V(expl) \
   V(floor) \
   V(floorf) \
   V(floorl) \
   V(fma) \
   V(fmaf) \
-  V(fmal) \
   V(fmod) \
   V(fmodf) \
-  V(fmodl) \
   V(log) \
   V(log10) \
   V(log10f) \
-  V(log10l) \
-  V(log2) \
-  V(log2f) \
-  V(log2l) \
   V(logf) \
-  V(logl) \
   V(memcpy) \
   V(memmove) \
   V(memset) \
   V(nearbyint) \
   V(nearbyintf) \
-  V(nearbyintl) \
   V(pow) \
   V(powf) \
-  V(powl) \
   V(rint) \
   V(rintf) \
-  V(rintl) \
   V(sin) \
   V(sinf) \
-  V(sinl) \
   V(sqrt) \
   V(sqrtf) \
-  V(sqrtl) \
   V(trunc) \
   V(truncf) \
   V(truncl)
