Merge from LLVM upstream.

Conflicts:
	include/llvm/IR/CallingConv.h
	include/llvm/IR/DataLayout.h
	lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
	lib/IR/Function.cpp
	lib/Support/Triple.cpp
	lib/Target/Mips/AsmParser/MipsAsmParser.cpp
	lib/Target/Mips/Disassembler/MipsDisassembler.cpp
	lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
	lib/Target/Mips/MipsCallingConv.td
	lib/Target/Mips/MipsCodeEmitter.cpp
	lib/Target/Mips/MipsISelLowering.cpp
	lib/Target/Mips/MipsISelLowering.h
	lib/Target/Mips/MipsInstrFPU.td
	lib/Target/Mips/MipsSubtarget.cpp
	lib/Target/Mips/MipsTargetMachine.cpp
	lib/Target/Mips/MipsTargetStreamer.h
	lib/Transforms/Scalar/SROA.cpp
	lib/Transforms/Utils/SimplifyLibCalls.cpp
	utils/TableGen/IntrinsicEmitter.cpp