diff --git a/src/compiler_llvm/compilation_unit.cc b/src/compiler_llvm/compilation_unit.cc
index 66fdba0..4eb7fb5 100644
--- a/src/compiler_llvm/compilation_unit.cc
+++ b/src/compiler_llvm/compilation_unit.cc
@@ -137,11 +137,11 @@
 }
 
 
-bool CompilationUnit::WriteBitcodeToFile() {
+bool CompilationUnit::WriteBitcodeToFile(const std::string& bitcode_filename) {
   std::string errmsg;
 
   llvm::OwningPtr<llvm::tool_output_file> out_file(
-    new llvm::tool_output_file(bitcode_filename_.c_str(), errmsg,
+    new llvm::tool_output_file(bitcode_filename.c_str(), errmsg,
                                llvm::raw_fd_ostream::F_Binary));
 
 
diff --git a/src/compiler_llvm/compilation_unit.h b/src/compiler_llvm/compilation_unit.h
index 953f4f4..b206c80 100644
--- a/src/compiler_llvm/compilation_unit.h
+++ b/src/compiler_llvm/compilation_unit.h
@@ -69,14 +69,6 @@
     return irb_.get();
   }
 
-  std::string const& GetBitcodeFileName() const {
-    return bitcode_filename_;
-  }
-
-  void SetBitcodeFileName(std::string const& filename) {
-    bitcode_filename_ = filename;
-  }
-
   ElfImage GetElfImage() const {
     return ElfImage(elf_image_);
   }
@@ -86,7 +78,7 @@
     return num_elf_funcs_++;
   }
 
-  bool WriteBitcodeToFile();
+  bool WriteBitcodeToFile(const std::string& bitcode_filename);
 
   bool Materialize();
 
@@ -116,7 +108,6 @@
   llvm::Module* module_;
 
   std::string elf_image_;
-  std::string bitcode_filename_;
 
   SafeMap<const llvm::Function*, CompiledMethod*> compiled_methods_map_;
 
diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc
index 8945210..28320c7 100644
--- a/src/compiler_llvm/compiler_llvm.cc
+++ b/src/compiler_llvm/compiler_llvm.cc
@@ -129,15 +129,8 @@
 
   // Allocate compilation unit
   size_t cunit_idx = cunits_.size();
-
   curr_cunit_ = new CompilationUnit(insn_set_, cunit_idx);
 
-  // Setup bitcode output filename
-  if (IsBitcodeFileNameAvailable()) {
-    curr_cunit_->SetBitcodeFileName(
-      StringPrintf("%s-%zu", bitcode_filename_.c_str(), cunit_idx));
-  }
-
   // Register compilation unit
   cunits_.push_back(curr_cunit_);
 }
@@ -167,7 +160,9 @@
 
   // Write bitcode to file when filename is set
   if (IsBitcodeFileNameAvailable()) {
-    curr_cunit_->WriteBitcodeToFile();
+    const size_t cunit_idx = cunits_.size();
+    curr_cunit_->WriteBitcodeToFile(
+      StringPrintf("%s-%zu", bitcode_filename_.c_str(), cunit_idx));
   }
 
   // Materialize the llvm::Module into ELF object file
