Apply changes to migrate to upstream Oct 20th 2011.

Change-Id: I2bb819151f3fa5ce18690ef373bf071205d3f278
diff --git a/Android.mk b/Android.mk
index 5bd2170..21fe737 100644
--- a/Android.mk
+++ b/Android.mk
@@ -18,6 +18,7 @@
   lib/MC \
   lib/MC/MCParser \
   lib/Support \
+  lib/TableGen \
   lib/Target \
   lib/Target/ARM \
   lib/Target/ARM/AsmParser \
diff --git a/host/include/llvm/Config/config.h b/host/include/llvm/Config/config.h
index fab79e5..817cf43 100644
--- a/host/include/llvm/Config/config.h
+++ b/host/include/llvm/Config/config.h
@@ -4,6 +4,9 @@
 #ifndef CONFIG_H
 #define CONFIG_H
 
+/* Bug report url */
+#define BUG_REPORT_URL "http://llvm.org/bugs/"
+
 /* Relative directory for resource files */
 #define CLANG_RESOURCE_DIR ""
 
diff --git a/lib/Analysis/Android.mk b/lib/Analysis/Android.mk
index 385ed74..e493ba7 100644
--- a/lib/Analysis/Android.mk
+++ b/lib/Analysis/Android.mk
@@ -8,7 +8,7 @@
   AliasSetTracker.cpp \
   Analysis.cpp \
   BasicAliasAnalysis.cpp \
-  BlockFrequency.cpp \
+  BlockFrequencyInfo.cpp \
   BranchProbabilityInfo.cpp \
   CFGPrinter.cpp \
   CaptureTracking.cpp \
@@ -16,8 +16,8 @@
   DIBuilder.cpp \
   DbgInfoPrinter.cpp \
   DebugInfo.cpp \
-  DominanceFrontier.cpp \
   DomPrinter.cpp \
+  DominanceFrontier.cpp \
   IVUsers.cpp \
   InlineCost.cpp \
   InstCount.cpp \
@@ -27,29 +27,29 @@
   LazyValueInfo.cpp \
   LibCallAliasAnalysis.cpp \
   LibCallSemantics.cpp \
-  Loads.cpp \
-  NoAliasAnalysis.cpp \
-  MemDepPrinter.cpp \
-  MemoryBuiltins.cpp \
-  MemoryDependenceAnalysis.cpp \
-  RegionInfo.cpp \
-  RegionPass.cpp \
-  RegionPrinter.cpp \
   Lint.cpp \
+  Loads.cpp \
   LoopDependenceAnalysis.cpp \
   LoopInfo.cpp \
   LoopPass.cpp \
+  MemDepPrinter.cpp \
+  MemoryBuiltins.cpp \
+  MemoryDependenceAnalysis.cpp \
   ModuleDebugInfoPrinter.cpp \
+  NoAliasAnalysis.cpp \
+  PHITransAddr.cpp \
   PathNumbering.cpp \
   PathProfileInfo.cpp \
   PathProfileVerifier.cpp \
-  PHITransAddr.cpp \
   PostDominators.cpp \
   ProfileEstimatorPass.cpp \
   ProfileInfo.cpp \
   ProfileInfoLoader.cpp \
   ProfileInfoLoaderPass.cpp \
   ProfileVerifierPass.cpp \
+  RegionInfo.cpp \
+  RegionPass.cpp \
+  RegionPrinter.cpp \
   ScalarEvolution.cpp \
   ScalarEvolutionAliasAnalysis.cpp \
   ScalarEvolutionExpander.cpp \
diff --git a/lib/AsmParser/Android.mk b/lib/AsmParser/Android.mk
index a54192e..2c9bbaf 100644
--- a/lib/AsmParser/Android.mk
+++ b/lib/AsmParser/Android.mk
@@ -1,9 +1,9 @@
 LOCAL_PATH:= $(call my-dir)
 
-asm_parser_SRC_FILES :=	\
-	LLLexer.cpp	\
-	LLParser.cpp	\
-	Parser.cpp
+asm_parser_SRC_FILES := \
+  LLLexer.cpp \
+  LLParser.cpp \
+  Parser.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Bitcode/Reader/Android.mk b/lib/Bitcode/Reader/Android.mk
index 02fc617..9fbe9fc 100644
--- a/lib/Bitcode/Reader/Android.mk
+++ b/lib/Bitcode/Reader/Android.mk
@@ -1,6 +1,6 @@
 LOCAL_PATH:= $(call my-dir)
 
-bitcode_reader_SRC_FILES :=	\
+bitcode_reader_SRC_FILES := \
 	BitReader.cpp	\
 	BitcodeReader.cpp
 
diff --git a/lib/Bitcode/Writer/Android.mk b/lib/Bitcode/Writer/Android.mk
index c325d14..fcafe37 100644
--- a/lib/Bitcode/Writer/Android.mk
+++ b/lib/Bitcode/Writer/Android.mk
@@ -1,6 +1,6 @@
 LOCAL_PATH:= $(call my-dir)
 
-bitcode_writer_SRC_FILES :=	\
+bitcode_writer_SRC_FILES := \
 	BitWriter.cpp	\
 	BitcodeWriter.cpp	\
 	BitcodeWriterPass.cpp	\
diff --git a/lib/CodeGen/Android.mk b/lib/CodeGen/Android.mk
index 86bc3ed..79571a7 100644
--- a/lib/CodeGen/Android.mk
+++ b/lib/CodeGen/Android.mk
@@ -1,101 +1,105 @@
 LOCAL_PATH:= $(call my-dir)
 
-codegen_SRC_FILES :=   \
-	AggressiveAntiDepBreaker.cpp    \
-	AllocationOrder.cpp \
-	Analysis.cpp    \
-	BranchFolding.cpp   \
-	CalcSpillWeights.cpp    \
-	CallingConvLower.cpp	\
-	CodePlacementOpt.cpp    \
-	CriticalAntiDepBreaker.cpp  \
-	DeadMachineInstructionElim.cpp  \
-	DwarfEHPrepare.cpp  \
-	EdgeBundles.cpp \
-	ELFCodeEmitter.cpp  \
-	ELFWriter.cpp   \
-	ExpandISelPseudos.cpp \
-	GCMetadata.cpp  \
-	GCMetadataPrinter.cpp   \
-	GCStrategy.cpp  \
-	IfConversion.cpp    \
-	InlineSpiller.cpp	\
-	InterferenceCache.cpp \
-	IntrinsicLowering.cpp   \
-	LLVMTargetMachine.cpp   \
-	LatencyPriorityQueue.cpp    \
-	LiveDebugVariables.cpp \
-	LiveInterval.cpp    \
-	LiveIntervalUnion.cpp \
-	LiveIntervalAnalysis.cpp    \
-	LiveRangeEdit.cpp \
-	LiveStackAnalysis.cpp   \
-	LiveVariables.cpp   \
-	LocalStackSlotAllocation.cpp	\
-	LowerSubregs.cpp    \
-	MachineBasicBlock.cpp   \
-	MachineBranchProbabilityInfo.cpp \
-	MachineCSE.cpp  \
-	MachineDominators.cpp   \
-	MachineFunction.cpp \
-	MachineFunctionAnalysis.cpp \
-	MachineFunctionPass.cpp \
-	MachineFunctionPrinterPass.cpp  \
-	MachineBlockFrequency.cpp \
-	MachineInstr.cpp    \
-	MachineLICM.cpp \
-	MachineLoopInfo.cpp \
-	MachineLoopRanges.cpp \
-	MachineModuleInfo.cpp   \
-	MachineModuleInfoImpls.cpp  \
-	MachinePassRegistry.cpp \
-	MachineRegisterInfo.cpp \
-	MachineSSAUpdater.cpp   \
-	MachineSink.cpp \
-	MachineVerifier.cpp \
-	ObjectCodeEmitter.cpp   \
-	OcamlGC.cpp \
-	OptimizePHIs.cpp    \
-	PHIElimination.cpp  \
-	PHIEliminationUtils.cpp \
-	Passes.cpp  \
-	PeepholeOptimizer.cpp	\
-	PostRASchedulerList.cpp \
-	ProcessImplicitDefs.cpp \
-	PrologEpilogInserter.cpp    \
-	PseudoSourceValue.cpp   \
-	RegAllocBasic.cpp \
-	RegAllocFast.cpp	\
-	RegAllocGreedy.cpp \
-	RegAllocLinearScan.cpp  \
-	RegAllocPBQP.cpp    \
-	RegisterCoalescer.cpp   \
-	RegisterClassInfo.cpp \
-	RegisterScavenging.cpp  \
-	RenderMachineFunction.cpp	\
-	ScheduleDAG.cpp \
-	ScheduleDAGEmit.cpp \
-	ScheduleDAGInstrs.cpp   \
-	ScheduleDAGPrinter.cpp  \
-	ScoreboardHazardRecognizer.cpp \
-	ShadowStackGC.cpp   \
-	ShrinkWrapping.cpp  \
-	SjLjEHPrepare.cpp   \
-	SlotIndexes.cpp \
-	Spiller.cpp \
-	SpillPlacement.cpp \
-	SplitKit.cpp	\
-	Splitter.cpp	\
-	StackProtector.cpp  \
-	StackSlotColoring.cpp   \
-	StrongPHIElimination.cpp    \
-	TailDuplication.cpp \
-	TargetInstrInfoImpl.cpp \
-	TargetLoweringObjectFileImpl.cpp    \
-	TwoAddressInstructionPass.cpp   \
-	UnreachableBlockElim.cpp    \
-	VirtRegMap.cpp  \
-	VirtRegRewriter.cpp
+codegen_SRC_FILES := \
+  AggressiveAntiDepBreaker.cpp \
+  AllocationOrder.cpp \
+  Analysis.cpp \
+  BranchFolding.cpp \
+  CalcSpillWeights.cpp \
+  CallingConvLower.cpp \
+  CodeGen.cpp \
+  CodePlacementOpt.cpp \
+  CriticalAntiDepBreaker.cpp \
+  DeadMachineInstructionElim.cpp \
+  DwarfEHPrepare.cpp \
+  EdgeBundles.cpp \
+  ELFCodeEmitter.cpp \
+  ELFWriter.cpp \
+  ExecutionDepsFix.cpp \
+  ExpandISelPseudos.cpp \
+  ExpandPostRAPseudos.cpp \
+  GCMetadata.cpp \
+  GCMetadataPrinter.cpp \
+  GCStrategy.cpp \
+  IfConversion.cpp \
+  InlineSpiller.cpp \
+  InterferenceCache.cpp \
+  IntrinsicLowering.cpp \
+  LLVMTargetMachine.cpp \
+  LatencyPriorityQueue.cpp \
+  LexicalScopes.cpp \
+  LiveDebugVariables.cpp \
+  LiveInterval.cpp \
+  LiveIntervalAnalysis.cpp \
+  LiveIntervalUnion.cpp \
+  LiveStackAnalysis.cpp \
+  LiveVariables.cpp \
+  LiveRangeCalc.cpp \
+  LiveRangeEdit.cpp \
+  LocalStackSlotAllocation.cpp \
+  MachineBasicBlock.cpp \
+  MachineBlockFrequencyInfo.cpp \
+  MachineBranchProbabilityInfo.cpp \
+  MachineCSE.cpp \
+  MachineDominators.cpp \
+  MachineFunction.cpp \
+  MachineFunctionAnalysis.cpp \
+  MachineFunctionPass.cpp \
+  MachineFunctionPrinterPass.cpp \
+  MachineInstr.cpp \
+  MachineLICM.cpp \
+  MachineLoopInfo.cpp \
+  MachineLoopRanges.cpp \
+  MachineModuleInfo.cpp \
+  MachineModuleInfoImpls.cpp \
+  MachinePassRegistry.cpp \
+  MachineRegisterInfo.cpp \
+  MachineSSAUpdater.cpp \
+  MachineSink.cpp \
+  MachineVerifier.cpp \
+  ObjectCodeEmitter.cpp \
+  OcamlGC.cpp \
+  OptimizePHIs.cpp \
+  PHIElimination.cpp \
+  PHIEliminationUtils.cpp \
+  Passes.cpp \
+  PeepholeOptimizer.cpp \
+  PostRASchedulerList.cpp \
+  ProcessImplicitDefs.cpp \
+  PrologEpilogInserter.cpp \
+  PseudoSourceValue.cpp \
+  RegAllocBasic.cpp \
+  RegAllocFast.cpp \
+  RegAllocGreedy.cpp \
+  RegAllocLinearScan.cpp \
+  RegAllocPBQP.cpp \
+  RegisterCoalescer.cpp \
+  RegisterClassInfo.cpp \
+  RegisterScavenging.cpp \
+  RenderMachineFunction.cpp \
+  ScheduleDAG.cpp \
+  ScheduleDAGEmit.cpp \
+  ScheduleDAGInstrs.cpp \
+  ScheduleDAGPrinter.cpp \
+  ScoreboardHazardRecognizer.cpp \
+  ShadowStackGC.cpp \
+  ShrinkWrapping.cpp \
+  SjLjEHPrepare.cpp \
+  SlotIndexes.cpp \
+  Spiller.cpp \
+  SpillPlacement.cpp \
+  SplitKit.cpp \
+  Splitter.cpp \
+  StackProtector.cpp \
+  StackSlotColoring.cpp \
+  StrongPHIElimination.cpp \
+  TailDuplication.cpp \
+  TargetInstrInfoImpl.cpp \
+  TargetLoweringObjectFileImpl.cpp \
+  TwoAddressInstructionPass.cpp \
+  UnreachableBlockElim.cpp \
+  VirtRegMap.cpp \
+  VirtRegRewriter.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/CodeGen/AsmPrinter/Android.mk b/lib/CodeGen/AsmPrinter/Android.mk
index 47cb637..843ff24 100644
--- a/lib/CodeGen/AsmPrinter/Android.mk
+++ b/lib/CodeGen/AsmPrinter/Android.mk
@@ -1,7 +1,7 @@
 LOCAL_PATH := $(call my-dir)
 
-codegen_asmprinter_SRC_FILES :=	\
-	AsmPrinter.cpp
+codegen_asmprinter_SRC_FILES := \
+  AsmPrinter.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/CodeGen/SelectionDAG/Android.mk b/lib/CodeGen/SelectionDAG/Android.mk
index d3522fe..2937196 100644
--- a/lib/CodeGen/SelectionDAG/Android.mk
+++ b/lib/CodeGen/SelectionDAG/Android.mk
@@ -1,27 +1,27 @@
 LOCAL_PATH:= $(call my-dir)
 
-codegen_selectiondag_SRC_FILES :=	\
-	DAGCombiner.cpp	\
-	FastISel.cpp	\
-	FunctionLoweringInfo.cpp	\
-	InstrEmitter.cpp	\
-	LegalizeDAG.cpp	\
-	LegalizeFloatTypes.cpp	\
-	LegalizeIntegerTypes.cpp	\
-	LegalizeTypes.cpp	\
-	LegalizeTypesGeneric.cpp	\
-	LegalizeVectorOps.cpp	\
-	LegalizeVectorTypes.cpp	\
-	ScheduleDAGFast.cpp	\
-	ScheduleDAGList.cpp	\
-	ScheduleDAGRRList.cpp	\
-	ScheduleDAGSDNodes.cpp	\
-	SelectionDAG.cpp	\
-	SelectionDAGBuilder.cpp	\
-	SelectionDAGISel.cpp	\
-	SelectionDAGPrinter.cpp	\
-	TargetLowering.cpp      \
-        TargetSelectionDAGInfo.cpp
+codegen_selectiondag_SRC_FILES := \
+  DAGCombiner.cpp \
+  FastISel.cpp \
+  FunctionLoweringInfo.cpp \
+  InstrEmitter.cpp \
+  LegalizeDAG.cpp \
+  LegalizeFloatTypes.cpp \
+  LegalizeIntegerTypes.cpp \
+  LegalizeTypes.cpp \
+  LegalizeTypesGeneric.cpp \
+  LegalizeVectorOps.cpp \
+  LegalizeVectorTypes.cpp \
+  ScheduleDAGFast.cpp \
+  ScheduleDAGList.cpp \
+  ScheduleDAGRRList.cpp \
+  ScheduleDAGSDNodes.cpp \
+  SelectionDAG.cpp \
+  SelectionDAGBuilder.cpp \
+  SelectionDAGISel.cpp \
+  SelectionDAGPrinter.cpp \
+  TargetLowering.cpp \
+  TargetSelectionDAGInfo.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Linker/Android.mk b/lib/Linker/Android.mk
index 792a675..99c9a3f 100644
--- a/lib/Linker/Android.mk
+++ b/lib/Linker/Android.mk
@@ -1,7 +1,7 @@
 LOCAL_PATH:= $(call my-dir)
 
-linker_SRC_FILES :=	\
-     LinkModules.cpp
+linker_SRC_FILES := \
+  LinkModules.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/MC/Android.mk b/lib/MC/Android.mk
index fe32856..b016dd8 100644
--- a/lib/MC/Android.mk
+++ b/lib/MC/Android.mk
@@ -3,6 +3,7 @@
 mc_SRC_FILES := \
   ELFObjectWriter.cpp \
   MachObjectWriter.cpp \
+  MCAsmBackend.cpp \
   MCAsmInfo.cpp \
   MCAsmInfoCOFF.cpp \
   MCAsmInfoDarwin.cpp \
@@ -19,6 +20,7 @@
   MCExpr.cpp \
   MCInst.cpp \
   MCInstPrinter.cpp \
+  MCInstrAnalysis.cpp \
   MCLabel.cpp \
   MCLoggingStreamer.cpp	\
   MCMachObjectTargetWriter.cpp \
@@ -34,12 +36,12 @@
   MCStreamer.cpp \
   MCSubtargetInfo.cpp \
   MCSymbol.cpp \
+  MCTargetAsmLexer.cpp \
   MCValue.cpp \
   MCWin64EH.cpp \
   WinCOFFObjectWriter.cpp \
   WinCOFFStreamer.cpp \
-  SubtargetFeature.cpp \
-  TargetAsmBackend.cpp
+  SubtargetFeature.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/MC/MCParser/Android.mk b/lib/MC/MCParser/Android.mk
index 33d3aea..c6045d1 100644
--- a/lib/MC/MCParser/Android.mk
+++ b/lib/MC/MCParser/Android.mk
@@ -1,15 +1,15 @@
 LOCAL_PATH:= $(call my-dir)
 
-mc_parser_SRC_FILES :=	\
-	AsmLexer.cpp	\
-	AsmParser.cpp	\
-	COFFAsmParser.cpp \
-        DarwinAsmParser.cpp	\
-        ELFAsmParser.cpp	\
-	MCAsmLexer.cpp	\
-	MCAsmParser.cpp	\
-        MCAsmParserExtension.cpp	\
-	TargetAsmParser.cpp
+mc_parser_SRC_FILES := \
+  AsmLexer.cpp \
+  AsmParser.cpp \
+  COFFAsmParser.cpp \
+  DarwinAsmParser.cpp \
+  ELFAsmParser.cpp \
+  MCAsmLexer.cpp \
+  MCAsmParser.cpp \
+  MCAsmParserExtension.cpp \
+  MCTargetAsmParser.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Support/Android.mk b/lib/Support/Android.mk
index 257cbea..4a36e4a 100644
--- a/lib/Support/Android.mk
+++ b/lib/Support/Android.mk
@@ -1,73 +1,74 @@
 LOCAL_PATH:= $(call my-dir)
 
-support_SRC_FILES :=   \
-	Allocator.cpp   \
-	APFloat.cpp \
-	APInt.cpp   \
-	APSInt.cpp  \
-	Atomic.cpp  \
-	BranchProbability.cpp \
-	CommandLine.cpp \
-	ConstantRange.cpp   \
-	CrashRecoveryContext.cpp	\
-	DAGDeltaAlgorithm.cpp	\
-	Debug.cpp   \
-	DeltaAlgorithm.cpp  \
-	Dwarf.cpp   \
-	DynamicLibrary.cpp	\
-	Errno.cpp	\
-	ErrorHandling.cpp   \
-	FileUtilities.cpp   \
-	FoldingSet.cpp  \
-	FormattedStream.cpp \
-	GraphWriter.cpp \
-	Host.cpp	\
-	IntervalMap.cpp \
-	IntEqClasses.cpp\
-	IsInf.cpp   \
-	IsNAN.cpp   \
-	ManagedStatic.cpp   \
-	Memory.cpp	\
-	MemoryBuffer.cpp    \
-	MemoryObject.cpp    \
-	Mutex.cpp \
-	Path.cpp \
-	PathV2.cpp \
-	PluginLoader.cpp    \
-	PrettyStackTrace.cpp    \
-	Process.cpp \
-	Program.cpp \
-	Regex.cpp   \
-	RWMutex.cpp \
-	SearchForAddressOfSpecialSymbol.cpp \
-	Signals.cpp \
-	SmallPtrSet.cpp \
-	SmallVector.cpp \
-	SourceMgr.cpp   \
-	Statistic.cpp   \
-	StringExtras.cpp    \
-	StringMap.cpp   \
-	StringPool.cpp  \
-	StringRef.cpp   \
-	SystemUtils.cpp \
-	TargetRegistry.cpp  \
-	Threading.cpp \
-	ThreadLocal.cpp \
-	Timer.cpp   \
-	TimeValue.cpp	\
-	ToolOutputFile.cpp \
-	Triple.cpp  \
-	Twine.cpp   \
-	Valgrind.cpp\
-	circular_raw_ostream.cpp    \
-	raw_os_ostream.cpp  \
-	raw_ostream.cpp \
-	regcomp.c   \
-	regerror.c  \
-	regexec.c   \
-	regfree.c   \
-	regstrlcpy.c \
-	system_error.cpp
+support_SRC_FILES := \
+  Allocator.cpp \
+  APFloat.cpp \
+  APInt.cpp \
+  APSInt.cpp \
+  Atomic.cpp \
+  BlockFrequency.cpp \
+  BranchProbability.cpp \
+  CommandLine.cpp \
+  ConstantRange.cpp \
+  CrashRecoveryContext.cpp \
+  DAGDeltaAlgorithm.cpp \
+  Debug.cpp \
+  DeltaAlgorithm.cpp \
+  Dwarf.cpp \
+  DynamicLibrary.cpp \
+  Errno.cpp \
+  ErrorHandling.cpp \
+  FileUtilities.cpp \
+  FoldingSet.cpp \
+  FormattedStream.cpp \
+  GraphWriter.cpp \
+  Host.cpp \
+  IntervalMap.cpp \
+  IntEqClasses.cpp \
+  IsInf.cpp \
+  IsNAN.cpp \
+  ManagedStatic.cpp \
+  Memory.cpp \
+  MemoryBuffer.cpp \
+  MemoryObject.cpp \
+  Mutex.cpp \
+  Path.cpp \
+  PathV2.cpp \
+  PluginLoader.cpp \
+  PrettyStackTrace.cpp \
+  Process.cpp \
+  Program.cpp \
+  Regex.cpp \
+  RWMutex.cpp \
+  SearchForAddressOfSpecialSymbol.cpp \
+  Signals.cpp \
+  SmallPtrSet.cpp \
+  SmallVector.cpp \
+  SourceMgr.cpp \
+  Statistic.cpp \
+  StringExtras.cpp \
+  StringMap.cpp \
+  StringPool.cpp \
+  StringRef.cpp \
+  SystemUtils.cpp \
+  TargetRegistry.cpp \
+  Threading.cpp \
+  ThreadLocal.cpp \
+  Timer.cpp \
+  TimeValue.cpp \
+  ToolOutputFile.cpp \
+  Triple.cpp \
+  Twine.cpp \
+  Valgrind.cpp \
+  circular_raw_ostream.cpp \
+  raw_os_ostream.cpp \
+  raw_ostream.cpp \
+  regcomp.c \
+  regerror.c \
+  regexec.c \
+  regfree.c \
+  regstrlcpy.c \
+  system_error.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/TableGen/Android.mk b/lib/TableGen/Android.mk
new file mode 100644
index 0000000..6e8e7c7
--- /dev/null
+++ b/lib/TableGen/Android.mk
@@ -0,0 +1,36 @@
+LOCAL_PATH:= $(call my-dir)
+
+libtablegen_SRC_FILES := \
+  Error.cpp \
+  Main.cpp \
+  Record.cpp \
+  TableGenBackend.cpp \
+  TGLexer.cpp \
+  TGParser.cpp
+
+# For the host
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := $(libtablegen_SRC_FILES)
+LOCAL_MODULE:= libLLVMTableGen
+
+LOCAL_MODULE_TAGS := optional
+
+REQUIRES_EH := 1
+REQUIRES_RTTI := 1
+
+include $(LLVM_HOST_BUILD_MK)
+include $(BUILD_HOST_STATIC_LIBRARY)
+
+## For the device
+## =====================================================
+#include $(CLEAR_VARS)
+#
+#LOCAL_SRC_FILES := $(libtablegen_SRC_FILES)
+#LOCAL_MODULE:= libLLVMTableGen
+#
+#LOCAL_MODULE_TAGS := optional
+#
+#include $(LLVM_DEVICE_BUILD_MK)
+#include $(BUILD_STATIC_LIBRARY)
diff --git a/lib/Target/ARM/Android.mk b/lib/Target/ARM/Android.mk
index 4da3315..f49d257 100644
--- a/lib/Target/ARM/Android.mk
+++ b/lib/Target/ARM/Android.mk
@@ -1,68 +1,64 @@
 LOCAL_PATH := $(call my-dir)
 
-arm_codegen_TBLGEN_TABLES :=	\
-	ARMGenAsmWriter.inc	\
-	ARMGenMCCodeEmitter.inc \
-	ARMGenMCPseudoLowering.inc \
-	ARMGenRegisterInfo.inc	\
-	ARMGenInstrInfo.inc	\
-	ARMGenDAGISel.inc	\
-	ARMGenFastISel.inc	\
-	ARMGenSubtargetInfo.inc	\
-	ARMGenCodeEmitter.inc	\
-	ARMGenCallingConv.inc
+arm_codegen_TBLGEN_TABLES := \
+  ARMGenRegisterInfo.inc \
+  ARMGenInstrInfo.inc \
+  ARMGenCodeEmitter.inc \
+  ARMGenMCCodeEmitter.inc \
+  ARMGenMCPseudoLowering.inc \
+  ARMGenAsmWriter.inc \
+  ARMGenAsmMatcher.inc \
+  ARMGenDAGISel.inc \
+  ARMGenFastISel.inc \
+  ARMGenCallingConv.inc \
+  ARMGenSubtargetInfo.inc \
+  ARMGenEDInfo.inc \
+  ARMGenDisassemblerTables.inc
 
-arm_codegen_SRC_FILES :=   \
-	ARMAsmBackend.cpp \
-	ARMAsmPrinter.cpp \
-	ARMBaseInstrInfo.cpp    \
-	ARMBaseRegisterInfo.cpp \
-	ARMCodeEmitter.cpp  \
-	ARMConstantIslandPass.cpp   \
-	ARMConstantPoolValue.cpp    \
-	ARMELFWriterInfo.cpp \
-	ARMExpandPseudoInsts.cpp    \
-	ARMFastISel.cpp	\
-	ARMFrameLowering.cpp \
-	ARMGlobalMerge.cpp  \
-	ARMHazardRecognizer.cpp \
-	ARMISelDAGToDAG.cpp \
-	ARMISelLowering.cpp \
-	ARMInstrInfo.cpp    \
-	ARMJITInfo.cpp  \
-	ARMLoadStoreOptimizer.cpp   \
-	ARMMachObjectWriter.cpp \
-	ARMMCCodeEmitter.cpp\
-	ARMMCExpr.cpp	\
-	ARMMCInstLower.cpp  \
-	ARMRegisterInfo.cpp \
-	ARMSelectionDAGInfo.cpp	\
-	ARMSubtarget.cpp    \
-	ARMTargetMachine.cpp    \
-	ARMTargetObjectFile.cpp \
-	InstPrinter/ARMInstPrinter.cpp \
-	MLxExpansionPass.cpp \
-	NEONMoveFix.cpp \
-	Thumb1FrameLowering.cpp \
-	Thumb1InstrInfo.cpp \
-	Thumb1RegisterInfo.cpp  \
-	Thumb2ITBlockPass.cpp   \
-	Thumb2InstrInfo.cpp \
-	Thumb2RegisterInfo.cpp  \
-	Thumb2SizeReduction.cpp
+arm_codegen_SRC_FILES := \
+  ARMAsmPrinter.cpp \
+  ARMBaseInstrInfo.cpp \
+  ARMBaseRegisterInfo.cpp \
+  ARMCodeEmitter.cpp \
+  ARMConstantIslandPass.cpp \
+  ARMConstantPoolValue.cpp \
+  ARMELFWriterInfo.cpp \
+  ARMExpandPseudoInsts.cpp \
+  ARMFastISel.cpp \
+  ARMFrameLowering.cpp \
+  ARMHazardRecognizer.cpp \
+  ARMISelDAGToDAG.cpp \
+  ARMISelLowering.cpp \
+  ARMInstrInfo.cpp \
+  ARMJITInfo.cpp \
+  ARMLoadStoreOptimizer.cpp \
+  ARMMCInstLower.cpp \
+  ARMRegisterInfo.cpp \
+  ARMSelectionDAGInfo.cpp \
+  ARMSubtarget.cpp \
+  ARMTargetMachine.cpp \
+  ARMTargetObjectFile.cpp \
+  InstPrinter/ARMInstPrinter.cpp \
+  MLxExpansionPass.cpp \
+  Thumb1FrameLowering.cpp \
+  Thumb1InstrInfo.cpp \
+  Thumb1RegisterInfo.cpp \
+  Thumb2ITBlockPass.cpp \
+  Thumb2InstrInfo.cpp \
+  Thumb2RegisterInfo.cpp \
+  Thumb2SizeReduction.cpp
 
 # For the host
 # =====================================================
 include $(CLEAR_VARS)
 include $(CLEAR_TBLGEN_VARS)
 
-TBLGEN_TABLES := $(arm_codegen_TBLGEN_TABLES)
+LOCAL_MODULE:= libLLVMARMCodeGen
+LOCAL_MODULE_TAGS := optional
 
 LOCAL_SRC_FILES := $(arm_codegen_SRC_FILES)
-
-LOCAL_MODULE:= libLLVMARMCodeGen
-
-LOCAL_MODULE_TAGS := optional
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc
+TBLGEN_TABLES := $(arm_codegen_TBLGEN_TABLES)
 
 include $(LLVM_HOST_BUILD_MK)
 include $(LLVM_TBLGEN_RULES_MK)
@@ -75,13 +71,12 @@
 include $(CLEAR_VARS)
 include $(CLEAR_TBLGEN_VARS)
 
-TBLGEN_TABLES := $(arm_codegen_TBLGEN_TABLES)
+LOCAL_MODULE:= libLLVMARMCodeGen
+LOCAL_MODULE_TAGS := optional
 
 LOCAL_SRC_FILES := $(arm_codegen_SRC_FILES)
-
-LOCAL_MODULE:= libLLVMARMCodeGen
-
-LOCAL_MODULE_TAGS := optional
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/MCTargetDesc
+TBLGEN_TABLES := $(arm_codegen_TBLGEN_TABLES)
 
 include $(LLVM_DEVICE_BUILD_MK)
 include $(LLVM_TBLGEN_RULES_MK)
diff --git a/lib/Target/ARM/Disassembler/Android.mk b/lib/Target/ARM/Disassembler/Android.mk
index 917a43d..fb14762 100644
--- a/lib/Target/ARM/Disassembler/Android.mk
+++ b/lib/Target/ARM/Disassembler/Android.mk
@@ -1,15 +1,14 @@
 LOCAL_PATH := $(call my-dir)
 
 arm_disassembler_TBLGEN_TABLES := \
-    ARMGenDecoderTables.inc \
-    ARMGenEDInfo.inc \
-    ARMGenInstrInfo.inc \
-    ARMGenSubtargetInfo.inc \
-    ARMGenRegisterInfo.inc
+  ARMGenDisassemblerTables.inc \
+  ARMGenEDInfo.inc \
+  ARMGenInstrInfo.inc \
+  ARMGenSubtargetInfo.inc \
+  ARMGenRegisterInfo.inc
 
 arm_disassembler_SRC_FILES := \
-    ARMDisassembler.cpp \
-    ARMDisassemblerCore.cpp
+  ARMDisassembler.cpp
 
 # For the device
 # =====================================================
diff --git a/lib/Target/ARM/InstPrinter/Android.mk b/lib/Target/ARM/InstPrinter/Android.mk
index fdd8a0e..a047f6f 100644
--- a/lib/Target/ARM/InstPrinter/Android.mk
+++ b/lib/Target/ARM/InstPrinter/Android.mk
@@ -1,13 +1,13 @@
 LOCAL_PATH := $(call my-dir)
 
-arm_asm_printer_TBLGEN_TABLES :=    \
-    ARMGenAsmWriter.inc \
-    ARMGenRegisterInfo.inc\
-    ARMGenSubtargetInfo.inc \
-    ARMGenInstrInfo.inc
+arm_asm_printer_TBLGEN_TABLES := \
+  ARMGenAsmWriter.inc \
+  ARMGenRegisterInfo.inc \
+  ARMGenSubtargetInfo.inc \
+  ARMGenInstrInfo.inc
 
-arm_asm_printer_SRC_FILES :=    \
-    ARMInstPrinter.cpp
+arm_asm_printer_SRC_FILES := \
+  ARMInstPrinter.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Target/ARM/MCTargetDesc/Android.mk b/lib/Target/ARM/MCTargetDesc/Android.mk
index fee940e..3365b2c 100644
--- a/lib/Target/ARM/MCTargetDesc/Android.mk
+++ b/lib/Target/ARM/MCTargetDesc/Android.mk
@@ -1,27 +1,34 @@
 LOCAL_PATH := $(call my-dir)
 
-arm_mc_desc_TBLGEN_TABLES :=	\
-	ARMGenRegisterInfo.inc	\
-	ARMGenInstrInfo.inc	\
-	ARMGenSubtargetInfo.inc
+arm_mc_desc_TBLGEN_TABLES := \
+  ARMGenRegisterInfo.inc \
+  ARMGenInstrInfo.inc \
+  ARMGenMCCodeEmitter.inc \
+  ARMGenSubtargetInfo.inc
 
-arm_mc_desc_SRC_FILES :=   \
-	ARMMCAsmInfo.cpp \
-	ARMMCTargetDesc.cpp
+arm_mc_desc_SRC_FILES := \
+  ARMAsmBackend.cpp \
+  ARMMCAsmInfo.cpp \
+  ARMMCCodeEmitter.cpp \
+  ARMMCExpr.cpp \
+  ARMMCTargetDesc.cpp \
+  ARMMachObjectWriter.cpp
 
 # For the host
 # =====================================================
 include $(CLEAR_VARS)
 include $(CLEAR_TBLGEN_VARS)
 
-TBLGEN_TABLES := $(arm_mc_desc_TBLGEN_TABLES)
-
-LOCAL_SRC_FILES := $(arm_mc_desc_SRC_FILES)
 
 LOCAL_MODULE:= libLLVMARMDesc
-
 LOCAL_MODULE_TAGS := optional
 
+LOCAL_SRC_FILES := $(arm_mc_desc_SRC_FILES)
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
+
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+TBLGEN_TABLES := $(arm_mc_desc_TBLGEN_TABLES)
+
 include $(LLVM_HOST_BUILD_MK)
 include $(LLVM_TBLGEN_RULES_MK)
 include $(LLVM_GEN_INTRINSICS_MK)
@@ -33,13 +40,14 @@
 include $(CLEAR_VARS)
 include $(CLEAR_TBLGEN_VARS)
 
-TBLGEN_TABLES := $(arm_mc_desc_TBLGEN_TABLES)
+LOCAL_MODULE:= libLLVMARMDesc
+LOCAL_MODULE_TAGS := optional
 
 LOCAL_SRC_FILES := $(arm_mc_desc_SRC_FILES)
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
 
-LOCAL_MODULE:= libLLVMARMDesc
-
-LOCAL_MODULE_TAGS := optional
+TBLGEN_TD_DIR := $(LOCAL_PATH)/..
+TBLGEN_TABLES := $(arm_mc_desc_TBLGEN_TABLES)
 
 include $(LLVM_DEVICE_BUILD_MK)
 include $(LLVM_TBLGEN_RULES_MK)
diff --git a/lib/Target/ARM/TargetInfo/Android.mk b/lib/Target/ARM/TargetInfo/Android.mk
index af85496..d1af6ae 100644
--- a/lib/Target/ARM/TargetInfo/Android.mk
+++ b/lib/Target/ARM/TargetInfo/Android.mk
@@ -1,12 +1,12 @@
 LOCAL_PATH := $(call my-dir)
 
-arm_target_info_TBLGEN_TABLES :=	\
-	ARMGenSubtargetInfo.inc \
-	ARMGenRegisterInfo.inc	\
-	ARMGenInstrInfo.inc
+arm_target_info_TBLGEN_TABLES := \
+  ARMGenSubtargetInfo.inc \
+  ARMGenRegisterInfo.inc \
+  ARMGenInstrInfo.inc
 
-arm_target_info_SRC_FILES :=	\
-	ARMTargetInfo.cpp
+arm_target_info_SRC_FILES := \
+  ARMTargetInfo.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Target/Android.mk b/lib/Target/Android.mk
index ddbe63a..16cb688 100644
--- a/lib/Target/Android.mk
+++ b/lib/Target/Android.mk
@@ -1,20 +1,18 @@
 LOCAL_PATH:= $(call my-dir)
 
-target_SRC_FILES :=	\
-	Mangler.cpp	\
-	Target.cpp	\
-	TargetAsmInfo.cpp	\
-	TargetAsmLexer.cpp	\
-	TargetData.cpp	\
-	TargetELFWriterInfo.cpp	\
-	TargetFrameLowering.cpp \
-	TargetInstrInfo.cpp	\
-	TargetIntrinsicInfo.cpp	\
-	TargetLoweringObjectFile.cpp	\
-	TargetLibraryInfo.cpp	\
-	TargetMachine.cpp	\
-	TargetRegisterInfo.cpp	\
-	TargetSubtargetInfo.cpp
+target_SRC_FILES := \
+  Mangler.cpp \
+  Target.cpp \
+  TargetData.cpp \
+  TargetELFWriterInfo.cpp \
+  TargetFrameLowering.cpp \
+  TargetInstrInfo.cpp \
+  TargetIntrinsicInfo.cpp \
+  TargetLoweringObjectFile.cpp \
+  TargetLibraryInfo.cpp \
+  TargetMachine.cpp \
+  TargetRegisterInfo.cpp \
+  TargetSubtargetInfo.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Target/X86/Android.mk b/lib/Target/X86/Android.mk
index 9a86718..8432ad9 100644
--- a/lib/Target/X86/Android.mk
+++ b/lib/Target/X86/Android.mk
@@ -1,37 +1,34 @@
 LOCAL_PATH := $(call my-dir)
 
-x86_codegen_TBLGEN_TABLES :=	\
-    X86GenAsmWriter.inc \
-    X86GenAsmWriter1.inc \
-    X86GenRegisterInfo.inc	\
-    X86GenInstrInfo.inc	\
-    X86GenDAGISel.inc	\
-    X86GenFastISel.inc	\
-    X86GenSubtargetInfo.inc	\
-    X86GenCallingConv.inc
+x86_codegen_TBLGEN_TABLES := \
+  X86GenAsmWriter.inc \
+  X86GenAsmWriter1.inc \
+  X86GenRegisterInfo.inc \
+  X86GenInstrInfo.inc \
+  X86GenDAGISel.inc \
+  X86GenFastISel.inc \
+  X86GenSubtargetInfo.inc \
+  X86GenCallingConv.inc
 
-x86_codegen_SRC_FILES :=	\
-    SSEDomainFix.cpp	\
-    X86AsmBackend.cpp	\
-    X86AsmPrinter.cpp	\
-    X86COFFMachineModuleInfo.cpp	\
-    X86CodeEmitter.cpp	\
-    X86ELFWriterInfo.cpp	\
-    X86FastISel.cpp	\
-    X86FloatingPoint.cpp\
-    X86FrameLowering.cpp\
-    X86ISelDAGToDAG.cpp	\
-    X86ISelLowering.cpp	\
-    X86InstrInfo.cpp	\
-    X86JITInfo.cpp	\
-    X86MachObjectWriter.cpp \
-    X86MCCodeEmitter.cpp	\
-    X86MCInstLower.cpp	\
-    X86RegisterInfo.cpp	\
-    X86SelectionDAGInfo.cpp	\
-    X86Subtarget.cpp	\
-    X86TargetMachine.cpp	\
-    X86TargetObjectFile.cpp
+x86_codegen_SRC_FILES := \
+  X86AsmPrinter.cpp \
+  X86COFFMachineModuleInfo.cpp \
+  X86CodeEmitter.cpp \
+  X86ELFWriterInfo.cpp \
+  X86FastISel.cpp \
+  X86FloatingPoint.cpp \
+  X86FrameLowering.cpp \
+  X86ISelDAGToDAG.cpp \
+  X86ISelLowering.cpp \
+  X86InstrInfo.cpp \
+  X86JITInfo.cpp \
+  X86MCInstLower.cpp \
+  X86RegisterInfo.cpp \
+  X86SelectionDAGInfo.cpp \
+  X86Subtarget.cpp \
+  X86TargetMachine.cpp \
+  X86TargetObjectFile.cpp \
+  X86VZeroUpper.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Target/X86/Disassembler/Android.mk b/lib/Target/X86/Disassembler/Android.mk
index 69d3435..e631db6 100644
--- a/lib/Target/X86/Disassembler/Android.mk
+++ b/lib/Target/X86/Disassembler/Android.mk
@@ -1,13 +1,14 @@
 LOCAL_PATH := $(call my-dir)
 
 x86_disassembler_TBLGEN_TABLES := \
-	X86GenDisassemblerTables.inc	\
-	X86GenEDInfo.inc	\
-	X86GenRegisterInfo.inc
+  X86GenDisassemblerTables.inc \
+  X86GenEDInfo.inc \
+  X86GenInstrInfo.inc \
+  X86GenRegisterInfo.inc
 
 x86_disassembler_SRC_FILES := \
-	X86Disassembler.cpp	\
-	X86DisassemblerDecoder.c
+  X86Disassembler.cpp \
+  X86DisassemblerDecoder.c
 
 # For the device
 # =====================================================
diff --git a/lib/Target/X86/MCTargetDesc/Android.mk b/lib/Target/X86/MCTargetDesc/Android.mk
index 13da039..f50d081 100644
--- a/lib/Target/X86/MCTargetDesc/Android.mk
+++ b/lib/Target/X86/MCTargetDesc/Android.mk
@@ -1,26 +1,28 @@
 LOCAL_PATH := $(call my-dir)
 
-x86_mc_desc_TBLGEN_TABLES :=	\
-	X86GenRegisterInfo.inc	\
-	X86GenInstrInfo.inc	\
-	X86GenSubtargetInfo.inc
+x86_mc_desc_TBLGEN_TABLES := \
+  X86GenRegisterInfo.inc \
+  X86GenInstrInfo.inc \
+  X86GenSubtargetInfo.inc
 
-x86_mc_desc_SRC_FILES :=   \
-	X86MCAsmInfo.cpp \
-	X86MCTargetDesc.cpp
+x86_mc_desc_SRC_FILES := \
+  X86AsmBackend.cpp \
+  X86MCTargetDesc.cpp \
+  X86MCAsmInfo.cpp \
+  X86MCCodeEmitter.cpp \
+  X86MachObjectWriter.cpp
 
 # For the host
 # =====================================================
 include $(CLEAR_VARS)
 include $(CLEAR_TBLGEN_VARS)
 
-TBLGEN_TABLES := $(x86_mc_desc_TBLGEN_TABLES)
+LOCAL_MODULE:= libLLVMX86Desc
+LOCAL_MODULE_TAGS := optional
 
 LOCAL_SRC_FILES := $(x86_mc_desc_SRC_FILES)
-
-LOCAL_MODULE:= libLLVMX86Desc
-
-LOCAL_MODULE_TAGS := optional
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
+TBLGEN_TABLES := $(x86_mc_desc_TBLGEN_TABLES)
 
 include $(LLVM_HOST_BUILD_MK)
 include $(LLVM_TBLGEN_RULES_MK)
@@ -33,14 +35,14 @@
 include $(CLEAR_VARS)
 include $(CLEAR_TBLGEN_VARS)
 
-TBLGEN_TABLES := $(x86_mc_desc_TBLGEN_TABLES)
-
-LOCAL_SRC_FILES := $(x86_mc_desc_SRC_FILES)
 
 LOCAL_MODULE:= libLLVMX86Desc
-
 LOCAL_MODULE_TAGS := optional
 
+LOCAL_SRC_FILES := $(x86_mc_desc_SRC_FILES)
+LOCAL_C_INCLUDES := $(LOCAL_PATH)/..
+TBLGEN_TABLES := $(x86_mc_desc_TBLGEN_TABLES)
+
 include $(LLVM_DEVICE_BUILD_MK)
 include $(LLVM_TBLGEN_RULES_MK)
 include $(LLVM_GEN_INTRINSICS_MK)
diff --git a/lib/Target/X86/TargetInfo/Android.mk b/lib/Target/X86/TargetInfo/Android.mk
index 1ac0a47..c72b383 100644
--- a/lib/Target/X86/TargetInfo/Android.mk
+++ b/lib/Target/X86/TargetInfo/Android.mk
@@ -1,12 +1,12 @@
 LOCAL_PATH := $(call my-dir)
 
-x86_target_info_TBLGEN_TABLES :=	\
-	X86GenRegisterInfo.inc	\
-	X86GenSubtargetInfo.inc \
-	X86GenInstrInfo.inc
+x86_target_info_TBLGEN_TABLES := \
+  X86GenRegisterInfo.inc \
+  X86GenSubtargetInfo.inc \
+  X86GenInstrInfo.inc
 
-x86_target_info_SRC_FILES :=	\
-	X86TargetInfo.cpp
+x86_target_info_SRC_FILES := \
+  X86TargetInfo.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Transforms/IPO/Android.mk b/lib/Transforms/IPO/Android.mk
index 3130102..ba9f2b5 100644
--- a/lib/Transforms/IPO/Android.mk
+++ b/lib/Transforms/IPO/Android.mk
@@ -1,26 +1,26 @@
 LOCAL_PATH:= $(call my-dir)
 
-transforms_ipo_SRC_FILES :=	\
-	ArgumentPromotion.cpp	\
-	ConstantMerge.cpp	\
-	DeadArgumentElimination.cpp	\
-	ExtractGV.cpp	\
-	FunctionAttrs.cpp	\
-	GlobalDCE.cpp	\
-	GlobalOpt.cpp	\
-	IPConstantPropagation.cpp	\
-	IPO.cpp	\
-	InlineAlways.cpp	\
-	InlineSimple.cpp	\
-	Inliner.cpp	\
-	Internalize.cpp	\
-	LoopExtractor.cpp	\
-	LowerSetJmp.cpp	\
-	MergeFunctions.cpp	\
-	PartialInlining.cpp	\
-	PruneEH.cpp	\
-	StripDeadPrototypes.cpp	\
-	StripSymbols.cpp
+transforms_ipo_SRC_FILES := \
+  ArgumentPromotion.cpp \
+  ConstantMerge.cpp \
+  DeadArgumentElimination.cpp \
+  ExtractGV.cpp \
+  FunctionAttrs.cpp \
+  GlobalDCE.cpp \
+  GlobalOpt.cpp \
+  IPConstantPropagation.cpp \
+  IPO.cpp \
+  InlineAlways.cpp \
+  InlineSimple.cpp \
+  Inliner.cpp \
+  Internalize.cpp \
+  LoopExtractor.cpp \
+  MergeFunctions.cpp \
+  PartialInlining.cpp \
+  PassManagerBuilder.cpp \
+  PruneEH.cpp \
+  StripDeadPrototypes.cpp \
+  StripSymbols.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Transforms/InstCombine/Android.mk b/lib/Transforms/InstCombine/Android.mk
index b30fcd9..31605d9 100644
--- a/lib/Transforms/InstCombine/Android.mk
+++ b/lib/Transforms/InstCombine/Android.mk
@@ -1,19 +1,19 @@
 LOCAL_PATH:= $(call my-dir)
 
-transforms_inst_combine_SRC_FILES :=	\
-	InstCombineAddSub.cpp	\
-	InstCombineAndOrXor.cpp	\
-	InstCombineCalls.cpp	\
-	InstCombineCasts.cpp	\
-	InstCombineCompares.cpp	\
-	InstCombineLoadStoreAlloca.cpp	\
-	InstCombineMulDivRem.cpp	\
-	InstCombinePHI.cpp	\
-	InstCombineSelect.cpp	\
-	InstCombineShifts.cpp	\
-	InstCombineSimplifyDemanded.cpp	\
-	InstCombineVectorOps.cpp	\
-	InstructionCombining.cpp
+transforms_inst_combine_SRC_FILES := \
+  InstCombineAddSub.cpp \
+  InstCombineAndOrXor.cpp \
+  InstCombineCalls.cpp \
+  InstCombineCasts.cpp \
+  InstCombineCompares.cpp \
+  InstCombineLoadStoreAlloca.cpp \
+  InstCombineMulDivRem.cpp \
+  InstCombinePHI.cpp \
+  InstCombineSelect.cpp \
+  InstCombineShifts.cpp \
+  InstCombineSimplifyDemanded.cpp \
+  InstCombineVectorOps.cpp \
+  InstructionCombining.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Transforms/Scalar/Android.mk b/lib/Transforms/Scalar/Android.mk
index 88c0bb3..8804508 100644
--- a/lib/Transforms/Scalar/Android.mk
+++ b/lib/Transforms/Scalar/Android.mk
@@ -1,38 +1,38 @@
 LOCAL_PATH:= $(call my-dir)
 
 transforms_scalar_SRC_FILES := \
-	ADCE.cpp    \
-	BasicBlockPlacement.cpp \
-	CodeGenPrepare.cpp  \
-	ConstantProp.cpp    \
-	CorrelatedValuePropagation.cpp \
-	DCE.cpp \
-	DeadStoreElimination.cpp    \
-	EarlyCSE.cpp \
-	GVN.cpp \
-	IndVarSimplify.cpp  \
-	JumpThreading.cpp   \
-	LICM.cpp    \
-	LoopDeletion.cpp    \
-	LoopIdiomRecognize.cpp \
-	LoopInstSimplify.cpp \
-	LoopRotation.cpp    \
-	LoopStrengthReduce.cpp  \
-	LoopUnrollPass.cpp  \
-	LoopUnswitch.cpp    \
-	LowerAtomic.cpp \
-	MemCpyOptimizer.cpp \
-	ObjCARC.cpp \
-	Reassociate.cpp \
-	Reg2Mem.cpp \
-	SCCP.cpp    \
-	Scalar.cpp  \
-	ScalarReplAggregates.cpp    \
-	SimplifyCFGPass.cpp \
-	SimplifyLibCalls.cpp    \
-	Sink.cpp	\
-	TailDuplication.cpp \
-	TailRecursionElimination.cpp
+  ADCE.cpp \
+  BasicBlockPlacement.cpp \
+  CodeGenPrepare.cpp \
+  ConstantProp.cpp \
+  CorrelatedValuePropagation.cpp \
+  DCE.cpp \
+  DeadStoreElimination.cpp \
+  EarlyCSE.cpp \
+  GlobalMerge.cpp \
+  GVN.cpp \
+  IndVarSimplify.cpp \
+  JumpThreading.cpp \
+  LICM.cpp \
+  LoopDeletion.cpp \
+  LoopIdiomRecognize.cpp \
+  LoopInstSimplify.cpp \
+  LoopRotation.cpp \
+  LoopStrengthReduce.cpp \
+  LoopUnrollPass.cpp \
+  LoopUnswitch.cpp \
+  LowerAtomic.cpp \
+  MemCpyOptimizer.cpp \
+  ObjCARC.cpp \
+  Reassociate.cpp \
+  Reg2Mem.cpp \
+  SCCP.cpp \
+  Scalar.cpp \
+  ScalarReplAggregates.cpp \
+  SimplifyCFGPass.cpp \
+  SimplifyLibCalls.cpp \
+  Sink.cpp \
+  TailRecursionElimination.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/Transforms/Utils/Android.mk b/lib/Transforms/Utils/Android.mk
index c4018e2..d41096f 100644
--- a/lib/Transforms/Utils/Android.mk
+++ b/lib/Transforms/Utils/Android.mk
@@ -1,32 +1,33 @@
 LOCAL_PATH:= $(call my-dir)
 
-transforms_utils_SRC_FILES :=	\
-	AddrModeMatcher.cpp	\
-	BasicBlockUtils.cpp	\
-	BasicInliner.cpp	\
-	BreakCriticalEdges.cpp	\
-	BuildLibCalls.cpp	\
-	CloneFunction.cpp	\
-	CloneModule.cpp	\
-	CodeExtractor.cpp	\
-	DemoteRegToStack.cpp	\
-	InlineFunction.cpp	\
-	InstructionNamer.cpp	\
-	LCSSA.cpp	\
-	Local.cpp	\
-	LoopSimplify.cpp	\
-	LoopUnroll.cpp	\
-	LowerExpectIntrinsic.cpp \
-	LowerInvoke.cpp	\
-	LowerSwitch.cpp	\
-	Mem2Reg.cpp	\
-	PromoteMemoryToRegister.cpp	\
-	SSAUpdater.cpp	\
-	SimplifyCFG.cpp	\
-	SimplifyInstructions.cpp	\
-	UnifyFunctionExitNodes.cpp	\
-	Utils.cpp \
-	ValueMapper.cpp
+transforms_utils_SRC_FILES := \
+  AddrModeMatcher.cpp \
+  BasicBlockUtils.cpp \
+  BasicInliner.cpp \
+  BreakCriticalEdges.cpp \
+  BuildLibCalls.cpp \
+  CloneFunction.cpp \
+  CloneModule.cpp \
+  CodeExtractor.cpp \
+  DemoteRegToStack.cpp \
+  InlineFunction.cpp \
+  InstructionNamer.cpp \
+  LCSSA.cpp \
+  Local.cpp \
+  LoopSimplify.cpp \
+  LoopUnroll.cpp \
+  LowerExpectIntrinsic.cpp \
+  LowerInvoke.cpp \
+  LowerSwitch.cpp \
+  Mem2Reg.cpp \
+  PromoteMemoryToRegister.cpp \
+  SSAUpdater.cpp \
+  SimplifyCFG.cpp \
+  SimplifyIndVar.cpp \
+  SimplifyInstructions.cpp \
+  UnifyFunctionExitNodes.cpp \
+  Utils.cpp \
+  ValueMapper.cpp
 
 # For the host
 # =====================================================
diff --git a/lib/VMCore/Android.mk b/lib/VMCore/Android.mk
index 3c70a0b..e36b8c5 100644
--- a/lib/VMCore/Android.mk
+++ b/lib/VMCore/Android.mk
@@ -1,40 +1,40 @@
 LOCAL_PATH:= $(call my-dir)
 
-vmcore_SRC_FILES :=	\
-	AsmWriter.cpp	\
-	Attributes.cpp	\
-	AutoUpgrade.cpp	\
-	BasicBlock.cpp	\
-	ConstantFold.cpp	\
-	Constants.cpp	\
-	Core.cpp	\
-	DebugLoc.cpp	\
-	DebugInfoProbe.cpp \
-	Dominators.cpp	\
-	Function.cpp	\
-	GVMaterializer.cpp	\
-	Globals.cpp	\
-	IRBuilder.cpp	\
-	InlineAsm.cpp	\
-	Instruction.cpp	\
-	Instructions.cpp	\
-	IntrinsicInst.cpp	\
-	LLVMContext.cpp	\
-	LLVMContextImpl.cpp	\
-	LeakDetector.cpp	\
-	Metadata.cpp	\
-	Module.cpp	\
-	Pass.cpp	\
-	PassManager.cpp	\
-	PassRegistry.cpp	\
-	PrintModulePass.cpp	\
-	Type.cpp	\
-	Use.cpp	\
-	User.cpp\
-	Value.cpp	\
-	ValueSymbolTable.cpp	\
-	ValueTypes.cpp	\
-	Verifier.cpp
+vmcore_SRC_FILES := \
+  AsmWriter.cpp \
+  Attributes.cpp \
+  AutoUpgrade.cpp \
+  BasicBlock.cpp \
+  ConstantFold.cpp \
+  Constants.cpp \
+  Core.cpp \
+  DebugLoc.cpp \
+  DebugInfoProbe.cpp \
+  Dominators.cpp \
+  Function.cpp \
+  GVMaterializer.cpp \
+  Globals.cpp \
+  IRBuilder.cpp \
+  InlineAsm.cpp \
+  Instruction.cpp \
+  Instructions.cpp \
+  IntrinsicInst.cpp \
+  LLVMContext.cpp \
+  LLVMContextImpl.cpp \
+  LeakDetector.cpp \
+  Metadata.cpp \
+  Module.cpp \
+  Pass.cpp \
+  PassManager.cpp \
+  PassRegistry.cpp \
+  PrintModulePass.cpp \
+  Type.cpp \
+  Use.cpp \
+  User.cpp \
+  Value.cpp \
+  ValueSymbolTable.cpp \
+  ValueTypes.cpp \
+  Verifier.cpp
 
 # For the host
 # =====================================================
diff --git a/tblgen-rules.mk b/tblgen-rules.mk
index 6e7bcf1..27b94f0 100644
--- a/tblgen-rules.mk
+++ b/tblgen-rules.mk
@@ -70,6 +70,16 @@
 	$(call transform-td-to-out,emitter)
 endif
 
+ifneq ($(filter %GenMCCodeEmitter.inc,$(tblgen_gen_tables)),)
+$(intermediates)/%GenMCCodeEmitter.inc: $(tblgen_source_dir)/%.td $(TBLGEN)
+	$(call transform-td-to-out,emitter -mc-emitter)
+endif
+
+ifneq ($(filter %GenMCPseudoLowering.inc,$(tblgen_gen_tables)),)
+$(intermediates)/%GenMCPseudoLowering.inc: $(tblgen_source_dir)/%.td $(TBLGEN)
+	$(call transform-td-to-out,pseudo-lowering)
+endif
+
 ifneq ($(filter %GenDAGISel.inc,$(tblgen_gen_tables)),)
 $(intermediates)/%GenDAGISel.inc: $(tblgen_source_dir)/%.td $(TBLGEN)
 	$(call transform-td-to-out,dag-isel)
@@ -90,8 +100,8 @@
 	$(call transform-td-to-out,fast-isel)
 endif
 
-ifneq ($(filter %GenSubtarget.inc,$(tblgen_gen_tables)),)
-$(intermediates)/%GenSubtarget.inc: $(tblgen_source_dir)/%.td $(TBLGEN)
+ifneq ($(filter %GenSubtargetInfo.inc,$(tblgen_gen_tables)),)
+$(intermediates)/%GenSubtargetInfo.inc: $(tblgen_source_dir)/%.td $(TBLGEN)
 	$(call transform-td-to-out,subtarget)
 endif
 
diff --git a/tools/llc/Android.mk b/tools/llc/Android.mk
index 0a693ba..f9c76cc 100644
--- a/tools/llc/Android.mk
+++ b/tools/llc/Android.mk
@@ -54,8 +54,8 @@
   libLLVMX86AsmParser \
   libLLVMX86CodeGen \
   libLLVMX86Disassembler \
-  libLLVMX86AsmPrinter \
   libLLVMX86Desc \
+  libLLVMX86AsmPrinter \
   libLLVMX86Utils \
   $(llvm_llc_STATIC_LIBRARIES)
 LOCAL_LDLIBS += -lpthread -lm -ldl
diff --git a/tools/llvm-as/Android.mk b/tools/llvm-as/Android.mk
index b44ecb7..44f3d4f 100644
--- a/tools/llvm-as/Android.mk
+++ b/tools/llvm-as/Android.mk
@@ -1,23 +1,23 @@
 LOCAL_PATH:= $(call my-dir)
 
+llvm_as_SRC_FILES := \
+  llvm-as.cpp
+
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := llvm-as
-
-LOCAL_SRC_FILES := llvm-as.cpp
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(llvm_as_SRC_FILES)
+LOCAL_LDLIBS += -lpthread -lm -ldl
 
 REQUIRES_EH := 1
 REQUIRES_RTTI := 1
 
 LOCAL_STATIC_LIBRARIES := \
-    libLLVMAsmParser \
-    libLLVMBitWriter \
-    libLLVMCore \
-    libLLVMSupport
-
-LOCAL_LDLIBS += -lpthread -lm -ldl
-
-LOCAL_MODULE_TAGS := optional
+  libLLVMAsmParser \
+  libLLVMBitWriter \
+  libLLVMCore \
+  libLLVMSupport
 
 include $(LLVM_HOST_BUILD_MK)
 include $(BUILD_HOST_EXECUTABLE)
diff --git a/tools/llvm-link/Android.mk b/tools/llvm-link/Android.mk
index bcf70e5..96dfff9 100644
--- a/tools/llvm-link/Android.mk
+++ b/tools/llvm-link/Android.mk
@@ -7,10 +7,12 @@
   libLLVMLinker \
   libLLVMBitReader \
   libLLVMBitWriter \
-  libLLVMCore \
-  libLLVMSupport \
   libLLVMAsmParser \
-  libLLVMTransformUtils
+  libLLVMTransformUtils \
+  libLLVMAnalysis \
+  libLLVMTarget \
+  libLLVMCore \
+  libLLVMSupport
 
 #===---------------------------------------------------------------===
 # llvm-link command line tool (host)
diff --git a/tools/opt/Android.mk b/tools/opt/Android.mk
index 77bb2a2..f4388fe 100644
--- a/tools/opt/Android.mk
+++ b/tools/opt/Android.mk
@@ -14,18 +14,19 @@
   opt.cpp
 
 llvm_opt_STATIC_LIBRARIES := \
-  libLLVMipo \
   libLLVMScalarOpts \
   libLLVMInstCombine \
   libLLVMInstrumentation \
-  libLLVMTransformUtils \
-  libLLVMipa \
-  libLLVMAnalysis \
-  libLLVMTarget \
+  libLLVMMCParser \
   libLLVMMC \
   libLLVMAsmParser \
   libLLVMBitWriter \
   libLLVMBitReader \
+  libLLVMipa \
+  libLLVMipo \
+  libLLVMTransformUtils \
+  libLLVMAnalysis \
+  libLLVMTarget \
   libLLVMCore \
   libLLVMSupport
 
diff --git a/utils/TableGen/Android.mk b/utils/TableGen/Android.mk
index ac5e162..28de64f 100644
--- a/utils/TableGen/Android.mk
+++ b/utils/TableGen/Android.mk
@@ -1,56 +1,51 @@
 LOCAL_PATH:= $(call my-dir)
+
+tablegen_SRC_FILES := \
+  ARMDecoderEmitter.cpp \
+  AsmMatcherEmitter.cpp \
+  AsmWriterEmitter.cpp \
+  AsmWriterInst.cpp \
+  CallingConvEmitter.cpp \
+  CodeEmitterGen.cpp \
+  CodeGenDAGPatterns.cpp \
+  CodeGenInstruction.cpp \
+  CodeGenRegisters.cpp \
+  CodeGenTarget.cpp \
+  DAGISelEmitter.cpp \
+  DAGISelMatcherEmitter.cpp \
+  DAGISelMatcherGen.cpp \
+  DAGISelMatcherOpt.cpp \
+  DAGISelMatcher.cpp \
+  DisassemblerEmitter.cpp \
+  EDEmitter.cpp \
+  FastISelEmitter.cpp \
+  FixedLenDecoderEmitter.cpp \
+  InstrEnumEmitter.cpp \
+  InstrInfoEmitter.cpp \
+  IntrinsicEmitter.cpp \
+  PseudoLoweringEmitter.cpp \
+  RegisterInfoEmitter.cpp \
+  SetTheory.cpp \
+  StringMatcher.cpp \
+  SubtargetEmitter.cpp \
+  TGValueTypes.cpp \
+  TableGen.cpp \
+  X86DisassemblerTables.cpp \
+  X86RecognizableInstr.cpp
+
 include $(CLEAR_VARS)
 
-LOCAL_SRC_FILES :=	\
-	ARMDecoderEmitter.cpp	\
-	AsmMatcherEmitter.cpp   \
-	AsmWriterEmitter.cpp    \
-	AsmWriterInst.cpp   \
-	CallingConvEmitter.cpp  \
-	ClangASTNodesEmitter.cpp	\
-	ClangAttrEmitter.cpp	\
-	ClangDiagnosticsEmitter.cpp \
-	ClangSACheckersEmitter.cpp  \
-	CodeEmitterGen.cpp  \
-	CodeGenDAGPatterns.cpp  \
-	CodeGenInstruction.cpp  \
-	CodeGenTarget.cpp   \
-	CodeGenRegisters.cpp \
-	DAGISelEmitter.cpp  \
-	DAGISelMatcher.cpp  \
-	DAGISelMatcherEmitter.cpp   \
-	DAGISelMatcherGen.cpp   \
-	DAGISelMatcherOpt.cpp   \
-	DisassemblerEmitter.cpp \
-	EDEmitter.cpp   \
-	Error.cpp \
-	FastISelEmitter.cpp \
-	FixedLenDecoderEmitter.cpp \
-	InstrEnumEmitter.cpp    \
-	InstrInfoEmitter.cpp    \
-	IntrinsicEmitter.cpp    \
-	LLVMCConfigurationEmitter.cpp   \
-	NeonEmitter.cpp	\
-	OptParserEmitter.cpp    \
-	PseudoLoweringEmitter.cpp \
-	Record.cpp  \
-	RegisterInfoEmitter.cpp \
-	SetTheory.cpp \
-	StringMatcher.cpp \
-	SubtargetEmitter.cpp    \
-	TGLexer.cpp \
-	TGParser.cpp    \
-	TGValueTypes.cpp    \
-	TableGen.cpp    \
-	TableGenBackend.cpp \
-	X86DisassemblerTables.cpp   \
-	X86RecognizableInstr.cpp
+LOCAL_MODULE := tblgen
+LOCAL_MODULE_TAGS := optional
+LOCAL_SRC_FILES := $(tablegen_SRC_FILES)
 
 REQUIRES_EH := 1
 REQUIRES_RTTI := 1
 
-LOCAL_STATIC_LIBRARIES := libLLVMSupport
-LOCAL_MODULE := tblgen
+LOCAL_STATIC_LIBRARIES := \
+  libLLVMTableGen \
+  libLLVMSupport
+
 LOCAL_LDLIBS += -lm
 ifeq ($(HOST_OS),windows)
   LOCAL_LDLIBS += -limagehlp -lpsapi
@@ -58,7 +53,5 @@
   LOCAL_LDLIBS += -lpthread -ldl
 endif
 
-LOCAL_MODULE_TAGS := optional
-
 include $(LLVM_HOST_BUILD_MK)
 include $(BUILD_HOST_EXECUTABLE)