Merge LLVM 3.4 into PNaCl's branch

This fixes up numerous merge conflicts.  Note that this does not
update files that are specific to the PNaCl branch -- compile fixes
for these files will be done in a separate commit.

Note that since the PNaCl branch contained a lot of changes
cherry-picked from between 3.3 and 3.4, these changes go away --
generally these are the ones without 'LOCALMOD' markers.  This
includes:

 * Various ARM changes, including tests in test/CodeGen/ARM
 * Various MIPS changes

There were large merge conflicts in:

 * lib/Support/Unix: This was refactored upstream.
    * Removed the Mac debugging localmod for getcwd() in
      lib/Support/Unix/Path.inc.

 * SelectionDAG code: DebugLoc was changed to SDLoc in many places.

 * ARMFrameLowering.cpp, ARMMCTargetDesc.cpp: I've reworked the
   localmods for implementing DWARF CFI generation.  They now use
   addFrameInst().

 * lib/Target/ARM/ARMInstrInfo.td, test/CodeGen/ARM/prefetch.ll:
   Dropped these localmods because of merge conflicts.  This doesn't
   affect ABI-stable pexes since the PNaCl ABI doesn't support the
   llvm.prefetch intrinsic.

 * lib/Target/Mips/MipsInstrFPU.td: This was refactored upstream.

 * lib/Target/X86/X86FastISel.cpp: Big conflict with refactoring that
   adds handleConstantAddresses().

 * lib/Transforms/IPO/GlobalOpt.cpp: The localmod was patching an
   optimisation that was removed in r191834, so it goes away.

 * Localmods applying to tools/lto were moved to lib/LTO.

BUG=https://code.google.com/p/nativeclient/issues/detail?id=3757
TEST=Only testable with following fixup change

Review URL: https://groups.google.com/forum/#!topic/native-client-reviews/TBEjmKlq5uc