svn commit: r234971 - in vendor/llvm/dist: . autoconf cmake/modules docs docs/CommandGuide include/llvm include/llvm-c include/llvm/ADT include/llvm/CodeGen include/llvm/Config include/llvm/MC/MCPa...

Dimitry Andric dim at FreeBSD.org
Thu May 3 16:50:57 UTC 2012


Author: dim
Date: Thu May  3 16:50:55 2012
New Revision: 234971
URL: http://svn.freebsd.org/changeset/base/234971

Log:
  Vendor import of llvm release_31 branch r155985:
  http://llvm.org/svn/llvm-project/llvm/branches/release_31@155985

Added:
  vendor/llvm/dist/include/llvm/Support/Locale.h
  vendor/llvm/dist/include/llvm/Support/MDBuilder.h
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/JITRegistrar.h
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/ObjectImage.h
  vendor/llvm/dist/lib/Support/Locale.cpp
  vendor/llvm/dist/lib/Support/LocaleGeneric.inc
  vendor/llvm/dist/lib/Support/LocaleWindows.inc
  vendor/llvm/dist/lib/Support/LocaleXlocale.inc
  vendor/llvm/dist/lib/Target/Mips/Disassembler/
  vendor/llvm/dist/lib/Target/Mips/Disassembler/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Mips/Disassembler/LLVMBuild.txt
  vendor/llvm/dist/lib/Target/Mips/Disassembler/Makefile
  vendor/llvm/dist/lib/Target/Mips/Disassembler/MipsDisassembler.cpp
  vendor/llvm/dist/test/CodeGen/PowerPC/ppc-vaarg-agg.ll
  vendor/llvm/dist/test/CodeGen/X86/2012-04-26-sdglue.ll
  vendor/llvm/dist/test/CodeGen/X86/GC/cg-O0.ll
  vendor/llvm/dist/test/CodeGen/X86/avx2-vperm.ll   (contents, props changed)
  vendor/llvm/dist/test/CodeGen/X86/dbg-declare.ll
  vendor/llvm/dist/test/MC/Disassembler/ARM/invalid-MRRC2-arm.txt
  vendor/llvm/dist/test/MC/Disassembler/ARM/unpredictable-AI1cmp-arm.txt
  vendor/llvm/dist/test/MC/Disassembler/ARM/unpredictable-MRRC2-arm.txt
  vendor/llvm/dist/test/MC/Disassembler/ARM/unpredictable-MRS-arm.txt
  vendor/llvm/dist/test/MC/Disassembler/ARM/unpredictable-swp-arm.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips32.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips32_le.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r2.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips32r2_le.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips64.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips64_le.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r2.txt
  vendor/llvm/dist/test/MC/Disassembler/Mips/mips64r2_le.txt
  vendor/llvm/dist/test/MC/Mips/sym-offset.ll
  vendor/llvm/dist/test/Transforms/BBVectorize/no-ldstr-conn.ll
  vendor/llvm/dist/test/Transforms/BBVectorize/simple-ldstr-ptrs.ll
  vendor/llvm/dist/test/Transforms/BBVectorize/simple-sel.ll
  vendor/llvm/dist/test/Transforms/InstCombine/2012-04-30-SRem.ll
  vendor/llvm/dist/test/Transforms/LoopStrengthReduce/pr12691.ll
  vendor/llvm/dist/test/Transforms/LoopUnswitch/2012-04-30-LoopUnswitch-LPad-Crash.ll
  vendor/llvm/dist/test/Transforms/ObjCARC/escape.ll
  vendor/llvm/dist/test/Transforms/Reassociate/pr12245.ll
  vendor/llvm/dist/test/Transforms/SimplifyLibCalls/win-math.ll
  vendor/llvm/dist/test/Verifier/fpmath.ll
  vendor/llvm/dist/unittests/Support/MDBuilderTest.cpp
Deleted:
  vendor/llvm/dist/include/llvm/Support/JSONParser.h
  vendor/llvm/dist/lib/Support/JSONParser.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonMCInst.h
  vendor/llvm/dist/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
  vendor/llvm/dist/test/CodeGen/Generic/dbg-declare.ll
  vendor/llvm/dist/test/Verifier/fpaccuracy.ll
  vendor/llvm/dist/unittests/Support/JSONParserTest.cpp
  vendor/llvm/dist/utils/json-bench/
Modified:
  vendor/llvm/dist/CMakeLists.txt
  vendor/llvm/dist/CREDITS.TXT
  vendor/llvm/dist/autoconf/configure.ac
  vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake
  vendor/llvm/dist/configure
  vendor/llvm/dist/docs/CodeGenerator.html
  vendor/llvm/dist/docs/CommandGuide/FileCheck.pod
  vendor/llvm/dist/docs/DebuggingJITedCode.html
  vendor/llvm/dist/docs/LLVMBuild.html
  vendor/llvm/dist/docs/LangRef.html
  vendor/llvm/dist/docs/ProgrammersManual.html
  vendor/llvm/dist/docs/ReleaseNotes.html
  vendor/llvm/dist/docs/TestingGuide.html
  vendor/llvm/dist/include/llvm-c/lto.h
  vendor/llvm/dist/include/llvm/ADT/SmallPtrSet.h
  vendor/llvm/dist/include/llvm/ADT/StringMap.h
  vendor/llvm/dist/include/llvm/CodeGen/DFAPacketizer.h
  vendor/llvm/dist/include/llvm/CodeGen/Passes.h
  vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAGInstrs.h
  vendor/llvm/dist/include/llvm/CodeGen/SlotIndexes.h
  vendor/llvm/dist/include/llvm/Config/config.h.cmake
  vendor/llvm/dist/include/llvm/Config/config.h.in
  vendor/llvm/dist/include/llvm/IntrinsicsX86.td
  vendor/llvm/dist/include/llvm/LLVMContext.h
  vendor/llvm/dist/include/llvm/MC/MCParser/AsmLexer.h
  vendor/llvm/dist/include/llvm/MC/MCParser/MCAsmLexer.h
  vendor/llvm/dist/include/llvm/Object/ELF.h
  vendor/llvm/dist/include/llvm/Operator.h
  vendor/llvm/dist/include/llvm/Support/IRBuilder.h
  vendor/llvm/dist/include/llvm/Support/Process.h
  vendor/llvm/dist/include/llvm/Support/SourceMgr.h
  vendor/llvm/dist/include/llvm/Support/YAMLParser.h
  vendor/llvm/dist/include/llvm/Support/raw_ostream.h
  vendor/llvm/dist/include/llvm/TableGen/Error.h
  vendor/llvm/dist/include/llvm/TableGen/Record.h
  vendor/llvm/dist/include/llvm/Target/TargetLibraryInfo.h
  vendor/llvm/dist/include/llvm/Target/TargetRegisterInfo.h
  vendor/llvm/dist/include/llvm/Transforms/Utils/BasicBlockUtils.h
  vendor/llvm/dist/include/llvm/Transforms/Vectorize.h
  vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp
  vendor/llvm/dist/lib/Analysis/ValueTracking.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfAccelTable.h
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
  vendor/llvm/dist/lib/CodeGen/DFAPacketizer.cpp
  vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp
  vendor/llvm/dist/lib/CodeGen/MachineBasicBlock.cpp
  vendor/llvm/dist/lib/CodeGen/MachineBlockPlacement.cpp
  vendor/llvm/dist/lib/CodeGen/Passes.cpp
  vendor/llvm/dist/lib/CodeGen/ScheduleDAGInstrs.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  vendor/llvm/dist/lib/CodeGen/SlotIndexes.cpp
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
  vendor/llvm/dist/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h
  vendor/llvm/dist/lib/MC/MCParser/AsmParser.cpp
  vendor/llvm/dist/lib/Object/ELFObjectFile.cpp
  vendor/llvm/dist/lib/Support/CMakeLists.txt
  vendor/llvm/dist/lib/Support/SmallPtrSet.cpp
  vendor/llvm/dist/lib/Support/SourceMgr.cpp
  vendor/llvm/dist/lib/Support/Unix/Process.inc
  vendor/llvm/dist/lib/Support/Windows/Process.inc
  vendor/llvm/dist/lib/Support/YAMLParser.cpp
  vendor/llvm/dist/lib/Support/raw_ostream.cpp
  vendor/llvm/dist/lib/TableGen/Error.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMCallingConv.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrFormats.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td
  vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td
  vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp
  vendor/llvm/dist/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
  vendor/llvm/dist/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
  vendor/llvm/dist/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
  vendor/llvm/dist/lib/Target/CellSPU/SPUCallingConv.td
  vendor/llvm/dist/lib/Target/CellSPU/SPUTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Hexagon/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Hexagon/Hexagon.h
  vendor/llvm/dist/lib/Target/Hexagon/HexagonAsmPrinter.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonISelLowering.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormats.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrFormatsV4.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.h
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfo.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV3.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonInstrInfoV4.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonMCInstLower.cpp
  vendor/llvm/dist/lib/Target/Hexagon/HexagonSchedule.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonScheduleV4.td
  vendor/llvm/dist/lib/Target/Hexagon/HexagonTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Hexagon/InstPrinter/HexagonInstPrinter.cpp
  vendor/llvm/dist/lib/Target/Hexagon/InstPrinter/HexagonInstPrinter.h
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h
  vendor/llvm/dist/lib/Target/MBlaze/MBlazeCallingConv.td
  vendor/llvm/dist/lib/Target/MBlaze/MBlazeTargetMachine.cpp
  vendor/llvm/dist/lib/Target/MSP430/MSP430TargetMachine.cpp
  vendor/llvm/dist/lib/Target/Mips/CMakeLists.txt
  vendor/llvm/dist/lib/Target/Mips/LLVMBuild.txt
  vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
  vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
  vendor/llvm/dist/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
  vendor/llvm/dist/lib/Target/Mips/Makefile
  vendor/llvm/dist/lib/Target/Mips/Mips64InstrInfo.td
  vendor/llvm/dist/lib/Target/Mips/MipsCondMov.td
  vendor/llvm/dist/lib/Target/Mips/MipsISelLowering.cpp
  vendor/llvm/dist/lib/Target/Mips/MipsInstrFPU.td
  vendor/llvm/dist/lib/Target/Mips/MipsInstrFormats.td
  vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td
  vendor/llvm/dist/lib/Target/Mips/MipsTargetMachine.cpp
  vendor/llvm/dist/lib/Target/PTX/PTXTargetMachine.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCCallingConv.td
  vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp
  vendor/llvm/dist/lib/Target/Sparc/SparcTargetMachine.cpp
  vendor/llvm/dist/lib/Target/TargetLibraryInfo.cpp
  vendor/llvm/dist/lib/Target/X86/Utils/X86ShuffleDecode.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h
  vendor/llvm/dist/lib/Target/X86/X86InstrFragmentsSIMD.td
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td
  vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp
  vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreTargetMachine.cpp
  vendor/llvm/dist/lib/Transforms/IPO/Internalize.cpp
  vendor/llvm/dist/lib/Transforms/IPO/PassManagerBuilder.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopUnswitch.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/ObjCARC.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/Reassociate.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SimplifyLibCalls.cpp
  vendor/llvm/dist/lib/Transforms/Utils/BreakCriticalEdges.cpp
  vendor/llvm/dist/lib/Transforms/Vectorize/BBVectorize.cpp
  vendor/llvm/dist/lib/VMCore/AutoUpgrade.cpp
  vendor/llvm/dist/lib/VMCore/Instructions.cpp
  vendor/llvm/dist/lib/VMCore/LLVMContext.cpp
  vendor/llvm/dist/lib/VMCore/Module.cpp
  vendor/llvm/dist/lib/VMCore/Verifier.cpp
  vendor/llvm/dist/test/Analysis/ScalarEvolution/nsw-offset.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/nsw.ll
  vendor/llvm/dist/test/CodeGen/ARM/2011-03-23-PeepholeBug.ll
  vendor/llvm/dist/test/CodeGen/ARM/fusedMAC.ll
  vendor/llvm/dist/test/CodeGen/ARM/ldr_post.ll
  vendor/llvm/dist/test/CodeGen/ARM/ldr_pre.ll
  vendor/llvm/dist/test/CodeGen/ARM/tail-opts.ll
  vendor/llvm/dist/test/CodeGen/ARM/vector-extend-narrow.ll
  vendor/llvm/dist/test/CodeGen/ARM/widen-vmovs.ll
  vendor/llvm/dist/test/CodeGen/CellSPU/2009-01-01-BrCond.ll
  vendor/llvm/dist/test/CodeGen/Mips/analyzebranch.ll
  vendor/llvm/dist/test/CodeGen/Mips/eh.ll
  vendor/llvm/dist/test/CodeGen/Mips/fpbr.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-branch.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ifcvt2.ll
  vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-jtb.ll
  vendor/llvm/dist/test/CodeGen/X86/2006-10-19-SwitchUnnecessaryBranching.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-05-01-InvalidOrdCompare.ll
  vendor/llvm/dist/test/CodeGen/X86/2010-08-04-MaskedSignedCompare.ll
  vendor/llvm/dist/test/CodeGen/X86/2010-11-18-SelectOfExtload.ll
  vendor/llvm/dist/test/CodeGen/X86/2011-09-14-valcoalesce.ll
  vendor/llvm/dist/test/CodeGen/X86/atom-sched.ll
  vendor/llvm/dist/test/CodeGen/X86/atomic_op.ll
  vendor/llvm/dist/test/CodeGen/X86/avx2-intrinsics-x86.ll
  vendor/llvm/dist/test/CodeGen/X86/block-placement.ll
  vendor/llvm/dist/test/CodeGen/X86/br-fold.ll
  vendor/llvm/dist/test/CodeGen/X86/call-push.ll
  vendor/llvm/dist/test/CodeGen/X86/licm-dominance.ll
  vendor/llvm/dist/test/CodeGen/X86/loop-blocks.ll
  vendor/llvm/dist/test/CodeGen/X86/machine-cp.ll
  vendor/llvm/dist/test/CodeGen/X86/postra-licm.ll
  vendor/llvm/dist/test/CodeGen/X86/pr2659.ll
  vendor/llvm/dist/test/CodeGen/X86/select.ll
  vendor/llvm/dist/test/CodeGen/X86/sibcall.ll
  vendor/llvm/dist/test/CodeGen/X86/sink-hoist.ll
  vendor/llvm/dist/test/CodeGen/X86/smul-with-overflow.ll
  vendor/llvm/dist/test/CodeGen/X86/sse41-blend.ll
  vendor/llvm/dist/test/CodeGen/X86/sub-with-overflow.ll
  vendor/llvm/dist/test/CodeGen/X86/switch-bt.ll
  vendor/llvm/dist/test/CodeGen/X86/tail-opts.ll
  vendor/llvm/dist/test/CodeGen/X86/uint64-to-float.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_shuffle-20.ll
  vendor/llvm/dist/test/CodeGen/X86/xor-icmp.ll
  vendor/llvm/dist/test/CodeGen/XCore/ashr.ll
  vendor/llvm/dist/test/MC/ARM/neon-add-encoding.s
  vendor/llvm/dist/test/MC/ARM/neon-shift-encoding.s
  vendor/llvm/dist/test/MC/ARM/neon-sub-encoding.s
  vendor/llvm/dist/test/MC/AsmParser/macro-args.s
  vendor/llvm/dist/test/MC/Disassembler/ARM/arm-tests.txt
  vendor/llvm/dist/test/MC/Disassembler/ARM/neon.txt
  vendor/llvm/dist/test/MC/Disassembler/ARM/neont2.txt
  vendor/llvm/dist/test/MC/Disassembler/X86/intel-syntax.txt
  vendor/llvm/dist/test/MC/Mips/elf-bigendian.ll
  vendor/llvm/dist/test/Transforms/GlobalOpt/constantfold-initializers.ll
  vendor/llvm/dist/test/Transforms/InstCombine/apint-shift.ll
  vendor/llvm/dist/test/Transforms/LoopStrengthReduce/X86/2012-01-13-phielim.ll
  vendor/llvm/dist/test/Transforms/SimplifyLibCalls/floor.ll
  vendor/llvm/dist/test/lit.cfg
  vendor/llvm/dist/tools/llc/llc.cpp
  vendor/llvm/dist/tools/lli/lli.cpp
  vendor/llvm/dist/tools/llvm-mc/Disassembler.cpp
  vendor/llvm/dist/tools/llvm-mc/Disassembler.h
  vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp
  vendor/llvm/dist/tools/llvm-shlib/Makefile
  vendor/llvm/dist/tools/llvm-stress/llvm-stress.cpp
  vendor/llvm/dist/tools/lto/LTOCodeGenerator.cpp
  vendor/llvm/dist/tools/lto/LTOCodeGenerator.h
  vendor/llvm/dist/tools/lto/lto.cpp
  vendor/llvm/dist/tools/lto/lto.exports
  vendor/llvm/dist/tools/opt/opt.cpp
  vendor/llvm/dist/unittests/CMakeLists.txt
  vendor/llvm/dist/unittests/VMCore/InstructionsTest.cpp
  vendor/llvm/dist/utils/Makefile
  vendor/llvm/dist/utils/TableGen/AsmMatcherEmitter.cpp
  vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp
  vendor/llvm/dist/utils/TableGen/CodeGenRegisters.cpp
  vendor/llvm/dist/utils/TableGen/EDEmitter.cpp
  vendor/llvm/dist/utils/TableGen/RegisterInfoEmitter.cpp
  vendor/llvm/dist/utils/buildit/build_llvm
  vendor/llvm/dist/utils/release/findRegressions-nightly.py
  vendor/llvm/dist/utils/release/findRegressions-simple.py
  vendor/llvm/dist/utils/release/tag.sh
  vendor/llvm/dist/utils/release/test-release.sh

Modified: vendor/llvm/dist/CMakeLists.txt
==============================================================================
--- vendor/llvm/dist/CMakeLists.txt	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/CMakeLists.txt	Thu May  3 16:50:55 2012	(r234971)
@@ -213,15 +213,6 @@ if( WIN32 AND NOT CYGWIN )
   set(LLVM_LIT_TOOLS_DIR "" CACHE PATH "Path to GnuWin32 tools")
 endif()
 
-# On Win32 using MS tools, provide an option to set the number of parallel jobs
-# to use.
-if( MSVC_IDE AND ( MSVC90 OR MSVC10 ) )
-  # Only Visual Studio 2008 and 2010 officially supports /MP.  Visual Studio
-  # 2005 supports it but it is experimental.
-  set(LLVM_COMPILER_JOBS "0" CACHE STRING
-    "Number of parallel compiler jobs. 0 means use all processors. Default is 0.")
-endif()
-
 # Define options to control the inclusion and default build behavior for
 # components which may not strictly be necessary (tools, runtime, examples, and
 # tests).
@@ -396,7 +387,6 @@ add_subdirectory(utils/FileUpdate)
 add_subdirectory(utils/count)
 add_subdirectory(utils/not)
 add_subdirectory(utils/llvm-lit)
-add_subdirectory(utils/json-bench)
 add_subdirectory(utils/yaml-bench)
 
 add_subdirectory(projects)

Modified: vendor/llvm/dist/CREDITS.TXT
==============================================================================
--- vendor/llvm/dist/CREDITS.TXT	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/CREDITS.TXT	Thu May  3 16:50:55 2012	(r234971)
@@ -50,9 +50,15 @@ N: Cameron Buschardt
 E: buschard at uiuc.edu
 D: The `mem2reg' pass - promotes values stored in memory to registers
 
+N: Brendon Cahoon
+E: bcahoon at codeaurora.org
+D: Loop unrolling with run-time trip counts.
+
 N: Chandler Carruth
 E: chandlerc at gmail.com
-D: LinkTimeOptimizer for Linux, via binutils integration, and C API
+D: Hashing algorithms and interfaces
+D: Inline cost analysis
+D: Machine block placement pass
 
 N: Casey Carter
 E: ccarter at uiuc.edu
@@ -210,6 +216,10 @@ N: Benjamin Kramer
 E: benny.kra at gmail.com
 D: Miscellaneous bug fixes
 
+N: Sundeep Kushwaha
+E: sundeepk at codeaurora.org
+D: Implemented DFA-based target independent VLIW packetizer
+
 N: Christopher Lamb
 E: christopher.lamb at gmail.com
 D: aligned load/store support, parts of noalias and restrict support
@@ -245,6 +255,10 @@ N: Nick Lewycky
 E: nicholas at mxc.ca
 D: PredicateSimplifier pass
 
+N: Tony Linthicum, et. al.
+E: tlinth at codeaurora.org
+D: Backend for Qualcomm's Hexagon VLIW processor.
+
 N: Bruno Cardoso Lopes
 E: bruno.cardoso at gmail.com
 W: http://www.brunocardoso.org
@@ -271,6 +285,10 @@ N: Scott Michel
 E: scottm at aero.org
 D: Added STI Cell SPU backend.
 
+N: Kai Nacke
+E: kai at redstar.de
+D: Support for implicit TLS model used with MS VC runtime
+
 N: Takumi Nakamura
 E: geek4civic at gmail.com
 E: chapuni at hf.rim.or.jp

Modified: vendor/llvm/dist/autoconf/configure.ac
==============================================================================
--- vendor/llvm/dist/autoconf/configure.ac	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/autoconf/configure.ac	Thu May  3 16:50:55 2012	(r234971)
@@ -838,6 +838,13 @@ AC_ARG_WITH(gcc-toolchain,
 AC_DEFINE_UNQUOTED(GCC_INSTALL_PREFIX,"$withval",
                    [Directory where gcc is installed.])
 
+AC_ARG_WITH(default-sysroot,
+  AS_HELP_STRING([--with-default-sysroot],
+    [Add --sysroot=<path> to all compiler invocations.]),,
+    withval="")
+AC_DEFINE_UNQUOTED(DEFAULT_SYSROOT,"$withval",
+                   [Default <path> to all compiler invocations for --sysroot=<path>.])
+
 dnl Allow linking of LLVM with GPLv3 binutils code.
 AC_ARG_WITH(binutils-include,
   AS_HELP_STRING([--with-binutils-include],

Modified: vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/cmake/modules/HandleLLVMOptions.cmake	Thu May  3 16:50:55 2012	(r234971)
@@ -110,9 +110,9 @@ if( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT 
   endif( LLVM_BUILD_32_BITS )
 endif( CMAKE_SIZEOF_VOID_P EQUAL 8 AND NOT WIN32 )
 
-if( MSVC_IDE AND ( MSVC90 OR MSVC10 ) )
-  # Only Visual Studio 2008 and 2010 officially supports /MP.
-  # Visual Studio 2005 do support it but it's experimental there.
+# On Win32 using MS tools, provide an option to set the number of parallel jobs
+# to use.
+if( MSVC_IDE )
   set(LLVM_COMPILER_JOBS "0" CACHE STRING
     "Number of parallel compiler jobs. 0 means use all processors. Default is 0.")
   if( NOT LLVM_COMPILER_JOBS STREQUAL "1" )

Modified: vendor/llvm/dist/configure
==============================================================================
--- vendor/llvm/dist/configure	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/configure	Thu May  3 16:50:55 2012	(r234971)
@@ -1442,6 +1442,7 @@ Optional Packages:
   --with-c-include-dirs   Colon separated list of directories clang will
                           search for headers
   --with-gcc-toolchain    Directory where gcc is installed.
+  --with-default-sysroot  Add --sysroot=<path> to all compiler invocations.
   --with-binutils-include Specify path to binutils/include/ containing
                           plugin-api.h file for gold plugin.
   --with-bug-report-url   Specify the URL where bug reports should be
@@ -3802,7 +3803,7 @@ else
     llvm_cv_target_os_type="Darwin" ;;
   *-*-minix*)
     llvm_cv_target_os_type="Minix" ;;
-  *-*-freebsd*| *-*-kfreebsd-gnu)
+  *-*-freebsd* | *-*-kfreebsd-gnu)
     llvm_cv_target_os_type="FreeBSD" ;;
   *-*-openbsd*)
     llvm_cv_target_os_type="OpenBSD" ;;
@@ -5583,6 +5584,20 @@ _ACEOF
 
 
 
+# Check whether --with-default-sysroot was given.
+if test "${with_default_sysroot+set}" = set; then
+  withval=$with_default_sysroot;
+else
+  withval=""
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_SYSROOT "$withval"
+_ACEOF
+
+
+
 # Check whether --with-binutils-include was given.
 if test "${with_binutils_include+set}" = set; then
   withval=$with_binutils_include;
@@ -10386,7 +10401,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10387 "configure"
+#line 10404 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H

Modified: vendor/llvm/dist/docs/CodeGenerator.html
==============================================================================
--- vendor/llvm/dist/docs/CodeGenerator.html	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/docs/CodeGenerator.html	Thu May  3 16:50:55 2012	(r234971)
@@ -1617,9 +1617,9 @@ def : Pat&lt;(i32 imm:$imm),
    range from 1 to 1023. To see how this numbering is defined for a particular
    architecture, you can read the <tt>GenRegisterNames.inc</tt> file for that
    architecture. For instance, by
-   inspecting <tt>lib/Target/X86/X86GenRegisterNames.inc</tt> we see that the
-   32-bit register <tt>EAX</tt> is denoted by 15, and the MMX register
-   <tt>MM0</tt> is mapped to 48.</p>
+   inspecting <tt>lib/Target/X86/X86GenRegisterInfo.inc</tt> we see that the
+   32-bit register <tt>EAX</tt> is denoted by 43, and the MMX register
+   <tt>MM0</tt> is mapped to 65.</p>
 
 <p>Some architectures contain registers that share the same physical location. A
    notable example is the X86 platform. For instance, in the X86 architecture,
@@ -1627,7 +1627,7 @@ def : Pat&lt;(i32 imm:$imm),
    bits. These physical registers are marked as <i>aliased</i> in LLVM. Given a
    particular architecture, you can check which registers are aliased by
    inspecting its <tt>RegisterInfo.td</tt> file. Moreover, the method
-   <tt>TargetRegisterInfo::getAliasSet(p_reg)</tt> returns an array containing
+   <tt>MCRegisterInfo::getAliasSet(p_reg)</tt> returns an array containing
    all the physical registers aliased to the register <tt>p_reg</tt>.</p>
 
 <p>Physical registers, in LLVM, are grouped in <i>Register Classes</i>.
@@ -3182,7 +3182,7 @@ MOVSX32rm16 -&gt; movsx, 32-bit register
 
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2012-03-27 13:25:16 +0200 (Tue, 27 Mar 2012) $
+  Last modified: $Date: 2012-04-15 22:22:36 +0200 (Sun, 15 Apr 2012) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/CommandGuide/FileCheck.pod
==============================================================================
--- vendor/llvm/dist/docs/CommandGuide/FileCheck.pod	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/docs/CommandGuide/FileCheck.pod	Thu May  3 16:50:55 2012	(r234971)
@@ -67,20 +67,20 @@ This syntax says to pipe the current fil
 llc, then pipe the output of llc into FileCheck.  This means that FileCheck will
 be verifying its standard input (the llc output) against the filename argument
 specified (the original .ll file specified by "%s").  To see how this works,
-lets look at the rest of the .ll file (after the RUN line):
+let's look at the rest of the .ll file (after the RUN line):
 
   define void @sub1(i32* %p, i32 %v) {
   entry:
-  ; <b>CHECK: sub1:</b>
-  ; <b>CHECK: subl</b>
+  ; CHECK: sub1:
+  ; CHECK: subl
           %0 = tail call i32 @llvm.atomic.load.sub.i32.p0i32(i32* %p, i32 %v)
           ret void
   }
   
   define void @inc4(i64* %p) {
   entry:
-  ; <b>CHECK: inc4:</b>
-  ; <b>CHECK: incq</b>
+  ; CHECK: inc4:
+  ; CHECK: incq
           %0 = tail call i64 @llvm.atomic.load.add.i64.p0i64(i64* %p, i64 1)
           ret void
   }
@@ -111,18 +111,18 @@ driven from one .ll file.  This is usefu
 testing different architectural variants with llc.  Here's a simple example:
 
   ; RUN: llvm-as < %s | llc -mtriple=i686-apple-darwin9 -mattr=sse41 \
-  ; RUN:              | <b>FileCheck %s -check-prefix=X32</b>
+  ; RUN:              | FileCheck %s -check-prefix=X32>
   ; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin9 -mattr=sse41 \
-  ; RUN:              | <b>FileCheck %s -check-prefix=X64</b>
+  ; RUN:              | FileCheck %s -check-prefix=X64>
 
   define <4 x i32> @pinsrd_1(i32 %s, <4 x i32> %tmp) nounwind {
           %tmp1 = insertelement <4 x i32>; %tmp, i32 %s, i32 1
           ret <4 x i32> %tmp1
-  ; <b>X32:</b> pinsrd_1:
-  ; <b>X32:</b>    pinsrd $1, 4(%esp), %xmm0
+  ; X32: pinsrd_1:
+  ; X32:    pinsrd $1, 4(%esp), %xmm0
   
-  ; <b>X64:</b> pinsrd_1:
-  ; <b>X64:</b>    pinsrd $1, %edi, %xmm0
+  ; X64: pinsrd_1:
+  ; X64:    pinsrd $1, %edi, %xmm0
   }
 
 In this case, we're testing that we get the expected code generation with
@@ -147,13 +147,13 @@ example, something like this works as yo
 	store <2 x double&gt; %tmp9, <2 x double&gt;* %r, align 16
 	ret void
         
-  ; <b>CHECK:</b> t2:
-  ; <b>CHECK:</b> 	movl	8(%esp), %eax
-  ; <b>CHECK-NEXT:</b> 	movapd	(%eax), %xmm0
-  ; <b>CHECK-NEXT:</b> 	movhpd	12(%esp), %xmm0
-  ; <b>CHECK-NEXT:</b> 	movl	4(%esp), %eax
-  ; <b>CHECK-NEXT:</b> 	movapd	%xmm0, (%eax)
-  ; <b>CHECK-NEXT:</b> 	ret
+  ; CHECK:          t2:
+  ; CHECK: 	        movl	8(%esp), %eax
+  ; CHECK-NEXT: 	movapd	(%eax), %xmm0
+  ; CHECK-NEXT: 	movhpd	12(%esp), %xmm0
+  ; CHECK-NEXT: 	movl	4(%esp), %eax
+  ; CHECK-NEXT: 	movapd	%xmm0, (%eax)
+  ; CHECK-NEXT: 	ret
   }
 
 CHECK-NEXT: directives reject the input unless there is exactly one newline
@@ -177,9 +177,9 @@ can be used:
 
     %A = load i8* %P3
     ret i8 %A
-  ; <b>CHECK:</b> @coerce_offset0
-  ; <b>CHECK-NOT:</b> load
-  ; <b>CHECK:</b> ret i8
+  ; CHECK: @coerce_offset0
+  ; CHECK-NOT: load
+  ; CHECK: ret i8
   }
 
 
@@ -195,7 +195,7 @@ matching for a majority of what we do, F
 mixing and matching fixed string matching with regular expressions.  This allows
 you to write things like this:
 
-  ; CHECK: movhpd	<b>{{[0-9]+}}</b>(%esp), <b>{{%xmm[0-7]}}</b>
+  ; CHECK: movhpd	{{[0-9]+}}(%esp), {{%xmm[0-7]}}
 
 In this case, any offset from the ESP register will be allowed, and any xmm
 register will be allowed.
@@ -217,20 +217,20 @@ allows named variables to be defined and
 simple example:
 
   ; CHECK: test5:
-  ; CHECK:    notw	<b>[[REGISTER:%[a-z]+]]</b>
-  ; CHECK:    andw	{{.*}}<b>[[REGISTER]]</b>
+  ; CHECK:    notw	[[REGISTER:%[a-z]+]]
+  ; CHECK:    andw	{{.*}}[REGISTER]]
 
-The first check line matches a regex (<tt>%[a-z]+</tt>) and captures it into
-the variables "REGISTER".  The second line verifies that whatever is in REGISTER
+The first check line matches a regex (B<%[a-z]+>) and captures it into
+the variable "REGISTER".  The second line verifies that whatever is in REGISTER
 occurs later in the file after an "andw".  FileCheck variable references are
-always contained in <tt>[[ ]]</tt> pairs, are named, and their names can be
-formed with the regex "<tt>[a-zA-Z_][a-zA-Z0-9_]*</tt>".  If a colon follows the
+always contained in B<[[ ]]> pairs, are named, and their names can be
+formed with the regex "B<[a-zA-Z_][a-zA-Z0-9_]*>".  If a colon follows the
 name, then it is a definition of the variable, if not, it is a use.
 
 FileCheck variables can be defined multiple times, and uses always get the
 latest value.  Note that variables are all read at the start of a "CHECK" line
 and are all defined at the end.  This means that if you have something like
-"<tt>CHECK: [[XYZ:.*]]x[[XYZ]]<tt>" that the check line will read the previous
+"B<CHECK: [[XYZ:.*]]x[[XYZ]]>", the check line will read the previous
 value of the XYZ variable and define a new one after the match is performed.  If
 you need to do something like this you can probably take advantage of the fact
 that FileCheck is not actually line-oriented when it matches, this allows you to

Modified: vendor/llvm/dist/docs/DebuggingJITedCode.html
==============================================================================
--- vendor/llvm/dist/docs/DebuggingJITedCode.html	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/docs/DebuggingJITedCode.html	Thu May  3 16:50:55 2012	(r234971)
@@ -8,135 +8,165 @@
 </head>
 <body>
 
-<h1>Debugging JITed Code With GDB</h1>
+<h1>Debugging JIT-ed Code With GDB</h1>
 <ol>
-  <li><a href="#example">Example usage</a></li>
   <li><a href="#background">Background</a></li>
+  <li><a href="#gdbversion">GDB Version</a></li>
+  <li><a href="#mcjitdebug">Debugging MCJIT-ed code</a></li>
+  <ul>
+    <li><a href="#mcjitdebug_example">Example</a></li>
+  </ul>
 </ol>
-<div class="doc_author">Written by Reid Kleckner</div>
+<div class="doc_author">Written by Reid Kleckner and Eli Bendersky</div>
 
 <!--=========================================================================-->
-<h2><a name="example">Example usage</a></h2>
+<h2><a name="background">Background</a></h2>
 <!--=========================================================================-->
 <div>
 
-<p>In order to debug code JITed by LLVM, you need GDB 7.0 or newer, which is
+<p>Without special runtime support, debugging dynamically generated code with
+GDB (as well as most debuggers) can be quite painful.  Debuggers generally read
+debug information from the object file of the code, but for JITed code, there is
+no such file to look for.
+</p>
+
+<p>In order to communicate the necessary debug info to GDB, an interface for
+registering JITed code with debuggers has been designed and implemented for
+GDB and LLVM MCJIT.  At a high level, whenever MCJIT generates new machine code,
+it does so in an in-memory object file that contains the debug information in
+DWARF format.  MCJIT then adds this in-memory object file to a global list of
+dynamically generated object files and calls a special function
+(<tt>__jit_debug_register_code</tt>) marked noinline that GDB knows about.  When
+GDB attaches to a process, it puts a breakpoint in this function and loads all
+of the object files in the global list.  When MCJIT calls the registration
+function, GDB catches the breakpoint signal, loads the new object file from
+the inferior's memory, and resumes the execution.  In this way, GDB can get the
+necessary debug information.
+</p>
+</div>
+
+<!--=========================================================================-->
+<h2><a name="gdbversion">GDB Version</a></h2>
+<!--=========================================================================-->
+
+<p>In order to debug code JIT-ed by LLVM, you need GDB 7.0 or newer, which is
 available on most modern distributions of Linux.  The version of GDB that Apple
 ships with XCode has been frozen at 6.3 for a while.  LLDB may be a better
-option for debugging JITed code on Mac OS X.
+option for debugging JIT-ed code on Mac OS X.
 </p>
 
-<p>Consider debugging the following code compiled with clang and run through
-lli:
-</p>
 
-<pre class="doc_code">
-#include &lt;stdio.h&gt;
+<!--=========================================================================-->
+<h2><a name="mcjitdebug">Debugging MCJIT-ed code</a></h2>
+<!--=========================================================================-->
+<div>
 
-void foo() {
-    printf("%d\n", *(int*)NULL);  // Crash here
-}
-
-void bar() {
-    foo();
-}
-
-void baz() {
-    bar();
-}
-
-int main(int argc, char **argv) {
-    baz();
-}
-</pre>
+<p>The emerging MCJIT component of LLVM allows full debugging of JIT-ed code with
+GDB.  This is due to MCJIT's ability to use the MC emitter to provide full
+DWARF debugging information to GDB.</p>
 
-<p>Here are the commands to run that application under GDB and print the stack
-trace at the crash:
-</p>
+<p>Note that lli has to be passed the <tt>-use-mcjit</tt> flag to JIT the code
+with MCJIT instead of the old JIT.</p>
 
-<pre class="doc_code">
-# Compile foo.c to bitcode.  You can use either clang or llvm-gcc with this
-# command line.  Both require -fexceptions, or the calls are all marked
-# 'nounwind' which disables DWARF exception handling info.  Custom frontends
-# should avoid adding this attribute to JITed code, since it interferes with
-# DWARF CFA generation at the moment.
-$ clang foo.c -fexceptions -emit-llvm -c -o foo.bc
-
-# Run foo.bc under lli with -jit-emit-debug.  If you built lli in debug mode,
-# -jit-emit-debug defaults to true.
-$ $GDB_INSTALL/gdb --args lli -jit-emit-debug foo.bc
-...
-
-# Run the code.
-(gdb) run
-Starting program: /tmp/gdb/lli -jit-emit-debug foo.bc
-[Thread debugging using libthread_db enabled]
+<h3><a name="mcjitdebug_example">Example</a></h3>
 
-Program received signal SIGSEGV, Segmentation fault.
-0x00007ffff7f55164 in foo ()
+<div>
 
-# Print the backtrace, this time with symbols instead of ??.
-(gdb) bt
-#0  0x00007ffff7f55164 in foo ()
-#1  0x00007ffff7f550f9 in bar ()
-#2  0x00007ffff7f55099 in baz ()
-#3  0x00007ffff7f5502a in main ()
-#4  0x00000000007c0225 in llvm::JIT::runFunction(llvm::Function*,
-    std::vector&lt;llvm::GenericValue,
-    std::allocator&lt;llvm::GenericValue&gt; &gt; const&amp;) ()
-#5  0x00000000007d6d98 in
-    llvm::ExecutionEngine::runFunctionAsMain(llvm::Function*,
-    std::vector&lt;std::string,
-    std::allocator&lt;std::string&gt; &gt; const&amp;, char const* const*) ()
-#6  0x00000000004dab76 in main ()
+<p>Consider the following C code (with line numbers added to make the example
+easier to follow):</p>
+
+<pre class="doc_code">
+1   int compute_factorial(int n)
+2   {
+3       if (n <= 1)
+4           return 1;
+5
+6       int f = n;
+7       while (--n > 1) 
+8           f *= n;
+9       return f;
+10  }
+11
+12
+13  int main(int argc, char** argv)
+14  {
+15      if (argc < 2)
+16          return -1;
+17      char firstletter = argv[1][0];
+18      int result = compute_factorial(firstletter - '0');
+19  
+20      // Returned result is clipped at 255...
+21      return result;
+22  }
 </pre>
 
-<p>As you can see, GDB can correctly unwind the stack and has the appropriate
-function names.
+<p>Here is a sample command line session that shows how to build and run this
+code via lli inside GDB:
 </p>
-</div>
 
-<!--=========================================================================-->
-<h2><a name="background">Background</a></h2>
-<!--=========================================================================-->
-<div>
+<pre class="doc_code">
+$ $BINPATH/clang -cc1 -O0 -g -emit-llvm showdebug.c
+$ gdb --quiet --args $BINPATH/lli -use-mcjit showdebug.ll 5
+Reading symbols from $BINPATH/lli...done.
+(gdb) b showdebug.c:6
+No source file named showdebug.c.
+Make breakpoint pending on future shared library load? (y or [n]) y
+Breakpoint 1 (showdebug.c:6) pending.
+(gdb) r
+Starting program: $BINPATH/lli -use-mcjit showdebug.ll 5
+[Thread debugging using libthread_db enabled]
 
-<p>Without special runtime support, debugging dynamically generated code with
-GDB (as well as most debuggers) can be quite painful.  Debuggers generally read
-debug information from the object file of the code, but for JITed code, there is
-no such file to look for.
-</p>
+Breakpoint 1, compute_factorial (n=5) at showdebug.c:6
+6	    int f = n;
+(gdb) p n
+$1 = 5
+(gdb) p f
+$2 = 0
+(gdb) n
+7	    while (--n > 1) 
+(gdb) p f
+$3 = 5
+(gdb) b showdebug.c:9
+Breakpoint 2 at 0x7ffff7ed404c: file showdebug.c, line 9.
+(gdb) c
+Continuing.
+
+Breakpoint 2, compute_factorial (n=1) at showdebug.c:9
+9	    return f;
+(gdb) p f
+$4 = 120
+(gdb) bt
+#0  compute_factorial (n=1) at showdebug.c:9
+#1  0x00007ffff7ed40a9 in main (argc=2, argv=0x16677e0) at showdebug.c:18
+#2  0x3500000001652748 in ?? ()
+#3  0x00000000016677e0 in ?? ()
+#4  0x0000000000000002 in ?? ()
+#5  0x0000000000d953b3 in llvm::MCJIT::runFunction (this=0x16151f0, F=0x1603020, ArgValues=...) at /home/ebenders_test/llvm_svn_rw/lib/ExecutionEngine/MCJIT/MCJIT.cpp:161
+#6  0x0000000000dc8872 in llvm::ExecutionEngine::runFunctionAsMain (this=0x16151f0, Fn=0x1603020, argv=..., envp=0x7fffffffe040)
+    at /home/ebenders_test/llvm_svn_rw/lib/ExecutionEngine/ExecutionEngine.cpp:397
+#7  0x000000000059c583 in main (argc=4, argv=0x7fffffffe018, envp=0x7fffffffe040) at /home/ebenders_test/llvm_svn_rw/tools/lli/lli.cpp:324
+(gdb) finish
+Run till exit from #0  compute_factorial (n=1) at showdebug.c:9
+0x00007ffff7ed40a9 in main (argc=2, argv=0x16677e0) at showdebug.c:18
+18	    int result = compute_factorial(firstletter - '0');
+Value returned is $5 = 120
+(gdb) p result
+$6 = 23406408
+(gdb) n
+21	    return result;
+(gdb) p result
+$7 = 120
+(gdb) c
+Continuing.
 
-<p>Depending on the architecture, this can impact the debugging experience in
-different ways.  For example, on most 32-bit x86 architectures, you can simply
-compile with -fno-omit-frame-pointer for GCC and -disable-fp-elim for LLVM.
-When GDB creates a backtrace, it can properly unwind the stack, but the stack
-frames owned by JITed code have ??'s instead of the appropriate symbol name.
-However, on Linux x86_64 in particular, GDB relies on the DWARF call frame
-address (CFA) debug information to unwind the stack, so even if you compile
-your program to leave the frame pointer untouched, GDB will usually be unable
-to unwind the stack past any JITed code stack frames.
-</p>
+Program exited with code 0170.
+(gdb) 
 
-<p>In order to communicate the necessary debug info to GDB, an interface for
-registering JITed code with debuggers has been designed and implemented for
-GDB and LLVM.  At a high level, whenever LLVM generates new machine code, it
-also generates an object file in memory containing the debug information.  LLVM
-then adds the object file to the global list of object files and calls a special
-function (__jit_debug_register_code) marked noinline that GDB knows about.  When
-GDB attaches to a process, it puts a breakpoint in this function and loads all
-of the object files in the global list.  When LLVM calls the registration
-function, GDB catches the breakpoint signal, loads the new object file from
-LLVM's memory, and resumes the execution.  In this way, GDB can get the
-necessary debug information.
-</p>
+</pre>
 
-<p>At the time of this writing, LLVM only supports architectures that use ELF
-object files and it only generates symbols and DWARF CFA information.  However,
-it would be easy to add more information to the object file, so we don't need to
-coordinate with GDB to get better debug information.
-</p>
 </div>
+</div>
+
 
 <!-- *********************************************************************** -->
 <hr>
@@ -145,9 +175,10 @@ coordinate with GDB to get better debug 
   src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"></a>
   <a href="http://validator.w3.org/check/referer"><img
   src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
-  <a href="mailto:reid.kleckner at gmail.com">Reid Kleckner</a><br>
+  <a href="mailto:reid.kleckner at gmail.com">Reid Kleckner</a>,
+  <a href="mailto:eliben at gmail.com">Eli Bendersky</a><br>
   <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2011-10-31 12:21:59 +0100 (Mon, 31 Oct 2011) $
+  Last modified: $Date: 2012-05-01 09:58:54 +0200 (Tue, 01 May 2012) $
 </address>
 </body>
 </html>

Modified: vendor/llvm/dist/docs/LLVMBuild.html
==============================================================================
--- vendor/llvm/dist/docs/LLVMBuild.html	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/docs/LLVMBuild.html	Thu May  3 16:50:55 2012	(r234971)
@@ -101,7 +101,7 @@ $ROOT of project trees for things which 
 
 <div>
   <p>As mentioned earlier, LLVM projects are organized into
-  logical <em>components</em>. Every component is typically grouped into it's
+  logical <em>components</em>. Every component is typically grouped into its
   own subdirectory. Generally, a component is organized around a coherent group
   of sources which have some kind of clear API separation from other parts of
   the code.</p>
@@ -190,7 +190,7 @@ required_libraries = Archive BitReader C
   number in order for files with multiple components ("component_0",
   "component_1", and so on).<p>
 
-  <p><b>Section names not matches this format (or the "common" section) are
+  <p><b>Section names not matching this format (or the "common" section) are
   currently unused and are disallowed.</b></p>
 
   <p>Every component is defined by the properties in the section. The exact list
@@ -212,7 +212,7 @@ required_libraries = Archive BitReader C
     <li><i>parent</i> <b>[required]</b>
       <p>The name of the logical parent of the component. Components are
       organized into a logical tree to make it easier to navigate and organize
-      groups of components. The parent's have no semantics as far as the project
+      groups of components. The parents have no semantics as far as the project
       build is concerned, however. Typically, the parent will be the main
       component of the parent directory.</p>
 
@@ -263,7 +263,7 @@ required_libraries = Archive BitReader C
           <p>If given, a list of the names of Library or LibraryGroup components
           which must also be linked in whenever this library is used. That is,
           the link time dependencies for this component. When tools are built,
-          the build system will include the transitive closer of
+          the build system will include the transitive closure of
           all <i>required_libraries</i> for the components the tool needs.</p></li>
 
         <li><i>add_to_library_groups</i> <b>[optional]</b>

Modified: vendor/llvm/dist/docs/LangRef.html
==============================================================================
--- vendor/llvm/dist/docs/LangRef.html	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/docs/LangRef.html	Thu May  3 16:50:55 2012	(r234971)
@@ -103,7 +103,7 @@
       <li><a href="#metadata">Metadata Nodes and Metadata Strings</a>
         <ol>
           <li><a href="#tbaa">'<tt>tbaa</tt>' Metadata</a></li>
-          <li><a href="#fpaccuracy">'<tt>fpaccuracy</tt>' Metadata</a></li>
+          <li><a href="#fpmath">'<tt>fpmath</tt>' Metadata</a></li>
           <li><a href="#range">'<tt>range</tt>' Metadata</a></li>
         </ol>
       </li>
@@ -3000,16 +3000,16 @@ call void @llvm.dbg.value(metadata !24, 
 
 <!-- _______________________________________________________________________ -->
 <h4>
-  <a name="fpaccuracy">'<tt>fpaccuracy</tt>' Metadata</a>
+  <a name="fpmath">'<tt>fpmath</tt>' Metadata</a>
 </h4>
  
 <div>
 
-<p><tt>fpaccuracy</tt> metadata may be attached to any instruction of floating
-   point type.  It expresses the maximum relative error allowed in the result
-   of that instruction, in ULPs, thus potentially allowing the compiler to use
-   a more efficient but less accurate method of computing it.
-   ULP is defined as follows:</p>
+<p><tt>fpmath</tt> metadata may be attached to any instruction of floating point
+  type.  It can be used to express the maximum acceptable error in the result of
+  that instruction, in ULPs, thus potentially allowing the compiler to use a
+  more efficient but less accurate method of computing it.  ULP is defined as
+  follows:</p>
 
 <blockquote>
 
@@ -3021,13 +3021,12 @@ call void @llvm.dbg.value(metadata !24, 
 
 </blockquote>
 
-<p>The metadata node shall consist of a single non-negative floating
-   point number representing the maximum relative error.  For example,
-   2.5 ULP:</p>
+<p>The metadata node shall consist of a single positive floating point number
+   representing the maximum relative error, for example:</p>
 
 <div class="doc_code">
 <pre>
-!0 = metadata !{ float 2.5 }
+!0 = metadata !{ float 2.5 } ; maximum acceptable inaccuracy is 2.5 ULPs
 </pre>
 </div>
 
@@ -8506,7 +8505,7 @@ LLVM</a>.</p>
 
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2012-04-10 10:22:43 +0200 (Tue, 10 Apr 2012) $
+  Last modified: $Date: 2012-04-16 21:39:33 +0200 (Mon, 16 Apr 2012) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/ProgrammersManual.html
==============================================================================
--- vendor/llvm/dist/docs/ProgrammersManual.html	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/docs/ProgrammersManual.html	Thu May  3 16:50:55 2012	(r234971)
@@ -1734,6 +1734,9 @@ already in the table, and each pair in t
 
 <p>StringMap also provides query methods that take byte ranges, so it only ever
 copies a string if a value is inserted into the table.</p>
+
+<p>StringMap iteratation order, however, is not guaranteed to be deterministic,
+so any uses which require that should instead use a std::map.</p>
 </div>
 
 <!-- _______________________________________________________________________ -->
@@ -4125,7 +4128,7 @@ arguments. An argument has a pointer to 
   <a href="mailto:dhurjati at cs.uiuc.edu">Dinakar Dhurjati</a> and
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2012-03-27 13:25:16 +0200 (Tue, 27 Mar 2012) $
+  Last modified: $Date: 2012-04-18 22:28:55 +0200 (Wed, 18 Apr 2012) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/ReleaseNotes.html
==============================================================================
--- vendor/llvm/dist/docs/ReleaseNotes.html	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/docs/ReleaseNotes.html	Thu May  3 16:50:55 2012	(r234971)
@@ -206,6 +206,36 @@ Release Notes</a>.</h1>
 
 </div>
 
+
+<!--=========================================================================-->
+<h3>
+<a name="Polly">Polly: Polyhedral Optimizer</a>
+</h3>
+
+<div>
+
+  <p><a href="http://polly.llvm.org/">Polly</a> is an <em>experimental</em>
+  optimizer for data locality and parallelism. It currently provides high-level
+  loop optimizations and automatic parallelisation (using the OpenMP run time).
+  Work in the area of automatic SIMD and accelerator code generation was
+  started.
+
+  <p>Within the LLVM 3.1 time-frame there were the following highlights:</p>
+
+  <ul>
+  <li>Polly became an official LLVM project</li>
+  <li>Polly can be loaded directly into clang (Enabled by '-O3 -mllvm -polly'
+  )</li>
+  <li>An automatic scheduling optimizer (derived from <a
+  href="http://pluto-compiler.sourceforge.net/">Pluto</a>) was integrated. It
+  performs loop transformations to optimize for data-locality and parallelism.
+  The transformations include, but are not limited to interchange, fusion,
+  fission, skewing and tiling.
+  </li>
+  </ul>
+
+</div>
+
 </div>
 
 <!-- *********************************************************************** -->
@@ -269,6 +299,8 @@ Release Notes</a>.</h1>
       Support to model instruction bundling / packing.</li>
   <li><a href="#armintegratedassembler">ARM Integrated Assembler</a>,
       A full featured assembler and direct-to-object support for ARM.</li>
+  <li><a href="#blockplacement">Basic Block Placement</a>
+      Probability driven basic block placement.</li>
   <li>....</li>
 </ul>
 
@@ -292,6 +324,9 @@ Release Notes</a>.</h1>
         module as a whole to LLVM subsystems.</li>
     <li>Loads can now have range metadata attached to them to describe the
         possible values being loaded.</li>
+    <li>Inline cost heuristics have been completely overhauled and now closely
+        model constant propagation through call sites, disregard trivially dead
+        code costs, and can model C++ STL iterator patterns.</li>
     <li>....</li>
   </ul>
 </div>
@@ -308,6 +343,14 @@ Release Notes</a>.</h1>
    optimizers:</p>
 
 <ul>
+  <li>The loop unroll pass now is able to unroll loops with run-time trip counts.
+      This feature is turned off by default, and is enabled with the
+      <code>-unroll-runtime</code> flag.</li>
+  <li>A new basic-block autovectorization pass is available. Pass
+      <code>-vectorize</code> to run this pass along with some associated
+      post-vectorization cleanup passes. For more information, see the EuroLLVM
+      2012 slides: <a href="http://llvm.org/devmtg/2012-04-12/Slides/Hal_Finkel.pdf">
+      Autovectorization with LLVM</a>.</li>
   <li>....</li>
 </ul>
 
@@ -373,6 +416,19 @@ Release Notes</a>.</h1>
     target's schedule description which can be queried to determine
     legal groupings of instructions in a bundle.</p>
 
+<p> We have added a new target independent VLIW packetizer based on the
+    DFA infrastructure to group machine instructions into bundles.</p>
+
+</div>
+
+<h4>
+<a name="blockplacement">Basic Block Placement</a>
+</h4>
+<div>
+<p>A probability based block placement and code layout algorithm was added to
+LLVM's code generator. This layout pass supports probabilities derived from
+static heuristics as well as source code annotations such as
+<code>__builtin_expect</code>.</p>
 </div>
 
 <!--=========================================================================-->
@@ -391,6 +447,7 @@ Release Notes</a>.</h1>
   times and better support for different calling conventions.  The old WINCALL
   instructions are no longer needed.</li>
   <li>DW2 Exception Handling is enabled on Cygwin and MinGW.</li>
+  <li>Support for implicit TLS model used with MS VC runtime</li>
 </ul>
 
 </div>
@@ -451,6 +508,8 @@ syntax, there are still significant gaps
 
 <div>
 
+<p>Support for Qualcomm's Hexagon VLIW processor has been added.</p>
+
 <ul>
   <li>....</li>
 
@@ -524,6 +583,8 @@ syntax, there are still significant gaps
 <li><code>llvm::getTrapFunctionName()</code></li>
 <li><code>llvm::EnableSegmentedStacks</code></li>
 </ul></li>
+  <li>The MDBuilder class has been added to simplify the creation of
+      metadata.</li>
   <li>....</li>
 </ul>
 
@@ -621,7 +682,7 @@ syntax, there are still significant gaps
   src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"></a>
 
   <a href="http://llvm.org/">LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2012-04-12 17:17:35 +0200 (Thu, 12 Apr 2012) $
+  Last modified: $Date: 2012-04-17 03:13:53 +0200 (Tue, 17 Apr 2012) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/docs/TestingGuide.html
==============================================================================
--- vendor/llvm/dist/docs/TestingGuide.html	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/docs/TestingGuide.html	Thu May  3 16:50:55 2012	(r234971)
@@ -299,15 +299,15 @@ clang/test directory. </p>
   you.</p>
 
   <p>In order for the regression tests to work, each directory of tests must
-  have a <tt>dg.exp</tt> file. Lit looks for this file to determine how to
-  run the tests. This file is just a Tcl script and it can do anything you want,
+  have a <tt>lit.local.cfg</tt> file. Lit looks for this file to determine how
+  to run the tests. This file is just Python code and thus is very flexible,
   but we've standardized it for the LLVM regression tests. If you're adding a
-  directory of tests, just copy <tt>dg.exp</tt> from another directory to get
-  running. The standard <tt>dg.exp</tt> simply loads a Tcl library
-  (<tt>test/lib/llvm.exp</tt>) and calls the <tt>llvm_runtests</tt> function
-  defined in that library with a list of file names to run. The names are
-  obtained by using Tcl's glob command.  Any directory that contains only
-  directories does not need the <tt>dg.exp</tt> file.</p>
+  directory of tests, just copy <tt>lit.local.cfg</tt> from another directory to
+  get running. The standard <tt>lit.local.cfg</tt> simply specifies which files
+  to look in for tests. Any directory that contains only directories does not
+  need the <tt>lit.local.cfg</tt> file. Read the
+  <a href="http://llvm.org/cmds/lit.html">Lit documentation</a> for more
+  information. </p>
 
   <p>The <tt>llvm-runtests</tt> function looks at each file that is passed to
   it and gathers any lines together that match "RUN:". These are the "RUN" lines
@@ -473,7 +473,7 @@ negatives).</p>
 llc, then pipe the output of llc into FileCheck.  This means that FileCheck will
 be verifying its standard input (the llc output) against the filename argument
 specified (the original .ll file specified by "%s").  To see how this works,
-lets look at the rest of the .ll file (after the RUN line):</p>
+let's look at the rest of the .ll file (after the RUN line):</p>
 
 <div class="doc_code">
 <pre>
@@ -900,7 +900,7 @@ the <a href="TestSuiteMakefileGuide.html
 
   John T. Criswell, Daniel Dunbar, Reid Spencer, and Tanya Lattner<br>
   <a href="http://llvm.org/">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2012-03-27 13:25:16 +0200 (Tue, 27 Mar 2012) $
+  Last modified: $Date: 2012-04-18 10:02:25 +0200 (Wed, 18 Apr 2012) $
 </address>
 </body>
 </html>

Modified: vendor/llvm/dist/include/llvm-c/lto.h
==============================================================================
--- vendor/llvm/dist/include/llvm-c/lto.h	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/include/llvm-c/lto.h	Thu May  3 16:50:55 2012	(r234971)
@@ -251,12 +251,6 @@ lto_codegen_set_assembler_args(lto_code_
                                int nargs);
 
 /**
- * Enables the internalize pass during LTO optimizations.
- */
-extern void
-lto_codegen_set_whole_program_optimization(lto_code_gen_t cg);
-
-/**
  * Adds to a list of all global symbols that must exist in the final
  * generated code.  If a function is not listed, it might be
  * inlined into every usage and optimized away.

Modified: vendor/llvm/dist/include/llvm/ADT/SmallPtrSet.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/SmallPtrSet.h	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/include/llvm/ADT/SmallPtrSet.h	Thu May  3 16:50:55 2012	(r234971)
@@ -126,9 +126,6 @@ protected:
 private:
   bool isSmall() const { return CurArray == SmallArray; }
 
-  unsigned Hash(const void *Ptr) const {
-    return static_cast<unsigned>(((uintptr_t)Ptr >> 4) & (CurArraySize-1));
-  }
   const void * const *FindBucketFor(const void *Ptr) const;
   void shrink_and_clear();
 

Modified: vendor/llvm/dist/include/llvm/ADT/StringMap.h
==============================================================================
--- vendor/llvm/dist/include/llvm/ADT/StringMap.h	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/include/llvm/ADT/StringMap.h	Thu May  3 16:50:55 2012	(r234971)
@@ -239,7 +239,7 @@ public:
   explicit StringMap(AllocatorTy A)
     : StringMapImpl(static_cast<unsigned>(sizeof(MapEntryTy))), Allocator(A) {}
 
-  explicit StringMap(const StringMap &RHS)
+  StringMap(const StringMap &RHS)
     : StringMapImpl(static_cast<unsigned>(sizeof(MapEntryTy))) {
     assert(RHS.empty() &&
            "Copy ctor from non-empty stringmap not implemented yet!");

Modified: vendor/llvm/dist/include/llvm/CodeGen/DFAPacketizer.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/DFAPacketizer.h	Thu May  3 16:49:27 2012	(r234970)
+++ vendor/llvm/dist/include/llvm/CodeGen/DFAPacketizer.h	Thu May  3 16:50:55 2012	(r234971)
@@ -28,7 +28,6 @@
 
 #include "llvm/CodeGen/MachineBasicBlock.h"
 #include "llvm/ADT/DenseMap.h"
-#include <map>
 
 namespace llvm {
 
@@ -37,7 +36,7 @@ class MachineInstr;
 class MachineLoopInfo;
 class MachineDominatorTree;
 class InstrItineraryData;
-class DefaultVLIWScheduler;
+class ScheduleDAGInstrs;
 class SUnit;
 
 class DFAPacketizer {
@@ -78,8 +77,6 @@ public:
   // reserveResources - Reserve the resources occupied by a machine
   // instruction and change the current state to reflect that change.
   void reserveResources(llvm::MachineInstr *MI);
-
-  const InstrItineraryData *getInstrItins() const { return InstrItins; }
 };
 
 // VLIWPacketizerList - Implements a simple VLIW packetizer using DFA. The
@@ -90,21 +87,20 @@ public:
 // and machine resource is marked as taken. If any dependency is found, a target
 // API call is made to prune the dependence.
 class VLIWPacketizerList {
-protected:
   const TargetMachine &TM;
   const MachineFunction &MF;
   const TargetInstrInfo *TII;
 
-  // The VLIW Scheduler.
-  DefaultVLIWScheduler *VLIWScheduler;
+  // Encapsulate data types not exposed to the target interface.
+  ScheduleDAGInstrs *SchedulerImpl;
 
+protected:
   // Vector of instructions assigned to the current packet.
   std::vector<MachineInstr*> CurrentPacketMIs;
   // DFA resource tracker.
   DFAPacketizer *ResourceTracker;
-
-  // Generate MI -> SU map.
-  std::map<MachineInstr*, SUnit*> MIToSUnit;
+  // Scheduling units.
+  std::vector<SUnit> SUnits;
 
 public:
   VLIWPacketizerList(
@@ -122,32 +118,17 @@ public:
   DFAPacketizer *getResourceTracker() {return ResourceTracker;}
 
   // addToPacket - Add MI to the current packet.
-  virtual MachineBasicBlock::iterator addToPacket(MachineInstr *MI) {
-    MachineBasicBlock::iterator MII = MI;
-    CurrentPacketMIs.push_back(MI);
-    ResourceTracker->reserveResources(MI);
-    return MII;
-  }
+  void addToPacket(MachineInstr *MI);
 
   // endPacket - End the current packet.
-  void endPacket(MachineBasicBlock *MBB, MachineInstr *MI);
-
-  // initPacketizerState - perform initialization before packetizing
-  // an instruction. This function is supposed to be overrided by
-  // the target dependent packetizer.

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-vendor mailing list