Apply changes to migrate to LLVM upstream Oct 20th 2011.

- StructType::isAnonymous is renamed to StructType::isLiteral.

- PassManagerBuilder has been moved from
  llvm/Support/PassManagerBuilder.h to
  llvm/Transforms/IPO/PassManagerBuilder.h

- Include llvm/Transforms/IPO.h for llvm::createInternalizePass.

- clang::DiagClient has be renamed to clang::DiagnosticConsumer.
  Besides, we have to implement one additional pure virtual method
  'clone' for create a clone of slang::DiagnosticBuffer.

- llvm::Linker::LinkModules comes with one additional parameter.
  Passing llvm::Linker::DestroySource should be equivalent to
  the old code we were using.

- slang::Slang is now derived from clang::ModuleLoader and implemented
  loadModule pure virtual method (though we will always return NULL.)

- clang::Preprocessor is taking one additional parameter for
  clang::ModuleLoader.

- clang::Diagnostic has been changed.  A lot of the method has been
  moved to clang::DiagnosticsEngine, and we can no longer 'Report' a
  diagnostic from clang::Diagnostic.  We have to use
  clang::DiagnosticEngine instead.

- llvm::setCodeModel has been removed.

Change-Id: I1f2a4cbeaf61a8ed1d0d635a5a0e1baa90d99d07
diff --git a/slang_backend.h b/slang_backend.h
index 052be4b..c678574 100644
--- a/slang_backend.h
+++ b/slang_backend.h
@@ -77,7 +77,7 @@
 
  protected:
   llvm::LLVMContext &mLLVMContext;
-  clang::Diagnostic &mDiags;
+  clang::DiagnosticsEngine &mDiagEngine;
 
   PragmaList *mPragmas;
 
@@ -99,7 +99,7 @@
   virtual void HandleTranslationUnitPost(llvm::Module *M) { return; }
 
  public:
-  Backend(clang::Diagnostic *Diags,
+  Backend(clang::DiagnosticsEngine *DiagEngine,
           const clang::CodeGenOptions &CodeGenOpts,
           const clang::TargetOptions &TargetOpts,
           PragmaList *Pragmas,