diff --git a/build/Android.common.mk b/build/Android.common.mk
index 1299beb..704da68 100644
--- a/build/Android.common.mk
+++ b/build/Android.common.mk
@@ -127,6 +127,8 @@
 	-Wall \
 	-Werror \
 	-Wextra \
+	-Wno-sign-promo \
+	-Wno-unused-parameter \
 	-Wstrict-aliasing \
 	-fstrict-aliasing
 
diff --git a/compiler/Android.mk b/compiler/Android.mk
index 49fb05e..77dc367 100644
--- a/compiler/Android.mk
+++ b/compiler/Android.mk
@@ -49,7 +49,6 @@
 	dex/quick/x86/int_x86.cc \
 	dex/quick/x86/target_x86.cc \
 	dex/quick/x86/utility_x86.cc \
-	dex/portable/mir_to_gbc.cc \
 	dex/dex_to_dex_compiler.cc \
 	dex/mir_dataflow.cc \
 	dex/mir_optimization.cc \
@@ -64,22 +63,11 @@
 	dex/ssa_transformation.cc \
 	driver/compiler_driver.cc \
 	driver/dex_compilation_unit.cc \
-	jni/portable/jni_compiler.cc \
 	jni/quick/arm/calling_convention_arm.cc \
 	jni/quick/mips/calling_convention_mips.cc \
 	jni/quick/x86/calling_convention_x86.cc \
 	jni/quick/calling_convention.cc \
 	jni/quick/jni_compiler.cc \
-	llvm/compiler_llvm.cc \
-	llvm/gbc_expander.cc \
-	llvm/generated/art_module.cc \
-	llvm/intrinsic_helper.cc \
-	llvm/ir_builder.cc \
-	llvm/llvm_compilation_unit.cc \
-	llvm/md_builder.cc \
-	llvm/runtime_support_builder.cc \
-	llvm/runtime_support_builder_arm.cc \
-	llvm/runtime_support_builder_x86.cc \
 	optimizing/builder.cc \
 	optimizing/nodes.cc \
 	trampolines/trampoline_compiler.cc \
@@ -115,8 +103,22 @@
 endif
 
 LIBART_COMPILER_CFLAGS :=
+
 ifeq ($(ART_USE_PORTABLE_COMPILER),true)
-  LIBART_COMPILER_SRC_FILES += elf_writer_mclinker.cc
+LIBART_COMPILER_SRC_FILES +=
+	dex/portable/mir_to_gbc.cc \
+	elf_writer_mclinker.cc \
+	jni/portable/jni_compiler.cc \
+	llvm/compiler_llvm.cc \
+	llvm/gbc_expander.cc \
+	llvm/generated/art_module.cc \
+	llvm/intrinsic_helper.cc \
+	llvm/ir_builder.cc \
+	llvm/llvm_compilation_unit.cc \
+	llvm/md_builder.cc \
+	llvm/runtime_support_builder.cc \
+	llvm/runtime_support_builder_arm.cc \
+	llvm/runtime_support_builder_x86.cc
   LIBART_COMPILER_CFLAGS += -DART_USE_PORTABLE_COMPILER=1
 endif
 
@@ -197,8 +199,8 @@
     endif
     LOCAL_SHARED_LIBRARIES += libart
   endif
-  LOCAL_SHARED_LIBRARIES += libbcc libbcinfo libLLVM
   ifeq ($(ART_USE_PORTABLE_COMPILER),true)
+    LOCAL_SHARED_LIBRARIES += libbcc libbcinfo libLLVM
     LOCAL_CFLAGS += -DART_USE_PORTABLE_COMPILER=1
     ifeq ($$(art_target_or_host),target)
       LOCAL_STATIC_LIBRARIES_arm += libmcldARMInfo libmcldARMTarget
diff --git a/compiler/compiler_backend.cc b/compiler/compiler_backend.cc
index b8f21a9..eaa39f8 100644
--- a/compiler/compiler_backend.cc
+++ b/compiler/compiler_backend.cc
@@ -177,7 +177,9 @@
 #ifdef ART_USE_PORTABLE_COMPILER
 
 extern "C" void ArtInitCompilerContext(art::CompilerDriver& driver);
+
 extern "C" void ArtUnInitCompilerContext(art::CompilerDriver& driver);
+
 extern "C" art::CompiledMethod* ArtCompileMethod(art::CompilerDriver& driver,
                                                  const art::DexFile::CodeItem* code_item,
                                                  uint32_t access_flags,
@@ -186,10 +188,14 @@
                                                  uint32_t method_idx,
                                                  jobject class_loader,
                                                  const art::DexFile& dex_file);
+
 extern "C" art::CompiledMethod* ArtLLVMJniCompileMethod(art::CompilerDriver& driver,
                                                         uint32_t access_flags, uint32_t method_idx,
                                                         const art::DexFile& dex_file);
 
+extern "C" void compilerLLVMSetBitcodeFileName(art::CompilerDriver& driver,
+                                               std::string const& filename);
+
 
 class LLVMBackend : public CompilerBackend {
  public:
@@ -267,6 +273,15 @@
 
   bool isPortable() const { return true; }
 
+  void SetBitcodeFileName(std::string const& filename) {
+    typedef void (*SetBitcodeFileNameFn)(CompilerDriver&, std::string const&);
+
+    SetBitcodeFileNameFn set_bitcode_file_name =
+      reinterpret_cast<SetBitcodeFileNameFn>(compilerLLVMSetBitcodeFileName);
+
+    set_bitcode_file_name(*this, filename);
+  }
+
  private:
   DISALLOW_COPY_AND_ASSIGN(LLVMBackend);
 };
diff --git a/compiler/compiler_backend.h b/compiler/compiler_backend.h
index b20c125..01a69af 100644
--- a/compiler/compiler_backend.h
+++ b/compiler/compiler_backend.h
@@ -80,6 +80,9 @@
   }
 
   virtual bool IsPortable() const { return false; }
+  void SetBitcodeFileName(std::string const& filename) {
+    UNUSED(filename);
+  }
 
   virtual void InitCompilationUnit(CompilationUnit& cu) const = 0;
 
diff --git a/compiler/dex/compiler_ir.h b/compiler/dex/compiler_ir.h
index ded8005..8447d23 100644
--- a/compiler/dex/compiler_ir.h
+++ b/compiler/dex/compiler_ir.h
@@ -18,25 +18,18 @@
 #define ART_COMPILER_DEX_COMPILER_IR_H_
 
 #include <vector>
-#include <llvm/IR/Module.h>
+
 #include "compiler_enums.h"
 #include "dex/quick/mir_to_lir.h"
 #include "dex_instruction.h"
 #include "driver/compiler_driver.h"
 #include "driver/dex_compilation_unit.h"
-#include "llvm/intrinsic_helper.h"
-#include "llvm/ir_builder.h"
 #include "safe_map.h"
 #include "base/timing_logger.h"
 #include "utils/arena_allocator.h"
 
 namespace art {
 
-class LLVMInfo;
-namespace llvm {
-class LlvmCompilationUnit;
-}  // namespace llvm
-
 struct ArenaMemBlock;
 class Backend;
 struct Memstats;
diff --git a/compiler/dex/mir_graph.cc b/compiler/dex/mir_graph.cc
index dfd8e63..e4550d1 100644
--- a/compiler/dex/mir_graph.cc
+++ b/compiler/dex/mir_graph.cc
@@ -14,14 +14,16 @@
  * limitations under the License.
  */
 
+#include "mir_graph.h"
+
+#include <inttypes.h>
+
 #include "base/stl_util.h"
 #include "compiler_internals.h"
 #include "dex_file-inl.h"
-#include "leb128.h"
-#include "mir_graph.h"
-
 #include "dex/quick/dex_file_to_method_inliner_map.h"
 #include "dex/quick/dex_file_method_inliner.h"
+#include "leb128.h"
 
 namespace art {
 
diff --git a/compiler/dex/quick/x86/target_x86.cc b/compiler/dex/quick/x86/target_x86.cc
index 8e04e64..fa9a944 100644
--- a/compiler/dex/quick/x86/target_x86.cc
+++ b/compiler/dex/quick/x86/target_x86.cc
@@ -14,13 +14,14 @@
  * limitations under the License.
  */
 
+#include <string>
+#include <inttypes.h>
+
 #include "codegen_x86.h"
 #include "dex/compiler_internals.h"
 #include "dex/quick/mir_to_lir-inl.h"
 #include "x86_lir.h"
 
-#include <string>
-
 namespace art {
 
 // FIXME: restore "static" when usage uncovered
diff --git a/compiler/driver/compiler_driver.cc b/compiler/driver/compiler_driver.cc
index b46ae2b..5adb792 100644
--- a/compiler/driver/compiler_driver.cc
+++ b/compiler/driver/compiler_driver.cc
@@ -293,9 +293,6 @@
                                               jobject class_loader,
                                               const art::DexFile& dex_file);
 
-extern "C" void compilerLLVMSetBitcodeFileName(art::CompilerDriver& driver,
-                                               std::string const& filename);
-
 CompilerDriver::CompilerDriver(VerificationResults* verification_results,
                                DexFileToMethodInlinerMap* method_inliner_map,
                                CompilerBackend::Kind compiler_backend_kind,
@@ -2017,16 +2014,6 @@
   return it->second;
 }
 
-void CompilerDriver::SetBitcodeFileName(std::string const& filename) {
-  typedef void (*SetBitcodeFileNameFn)(CompilerDriver&, std::string const&);
-
-  SetBitcodeFileNameFn set_bitcode_file_name =
-    reinterpret_cast<SetBitcodeFileNameFn>(compilerLLVMSetBitcodeFileName);
-
-  set_bitcode_file_name(*this, filename);
-}
-
-
 void CompilerDriver::AddRequiresConstructorBarrier(Thread* self, const DexFile* dex_file,
                                                    uint16_t class_def_index) {
   WriterMutexLock mu(self, freezing_constructor_lock_);
diff --git a/compiler/driver/compiler_driver.h b/compiler/driver/compiler_driver.h
index da4b69d..092fe52 100644
--- a/compiler/driver/compiler_driver.h
+++ b/compiler/driver/compiler_driver.h
@@ -260,8 +260,6 @@
                      size_t literal_offset)
       LOCKS_EXCLUDED(compiled_methods_lock_);
 
-  void SetBitcodeFileName(std::string const& filename);
-
   bool GetSupportBootImageFixup() const {
     return support_boot_image_fixup_;
   }
diff --git a/compiler/elf_writer.cc b/compiler/elf_writer.cc
index ba5f1cb..6db3fa1 100644
--- a/compiler/elf_writer.cc
+++ b/compiler/elf_writer.cc
@@ -23,7 +23,6 @@
 #include "driver/compiler_driver.h"
 #include "elf_file.h"
 #include "invoke_type.h"
-#include "llvm/utils_llvm.h"
 #include "mirror/art_method-inl.h"
 #include "mirror/object-inl.h"
 #include "oat.h"
diff --git a/dex2oat/dex2oat.cc b/dex2oat/dex2oat.cc
index 7f88471..dab419f 100644
--- a/dex2oat/dex2oat.cc
+++ b/dex2oat/dex2oat.cc
@@ -287,9 +287,7 @@
                                                         dump_passes,
                                                         &compiler_phases_timings));
 
-    if (compiler_backend_ == CompilerBackend::kPortable) {
-      driver->SetBitcodeFileName(bitcode_filename);
-    }
+    driver->GetCompilerBackend()->SetBitcodeFileName(bitcode_filename);
 
     driver->CompileAll(class_loader, dex_files, timings);
 
