svn commit: r193574 - in vendor/llvm/dist: . autoconf cmake cmake/modules docs include/llvm include/llvm-c include/llvm/Analysis include/llvm/CodeGen include/llvm/Config include/llvm/ExecutionEngin...

Ed Schouten ed at FreeBSD.org
Sat Jun 6 08:20:31 UTC 2009


Author: ed
Date: Sat Jun  6 08:20:29 2009
New Revision: 193574
URL: http://svn.freebsd.org/changeset/base/193574

Log:
  Import LLVM, at r72995.
  
  We should now have support for #pragma weak.

Added:
  vendor/llvm/dist/lib/CodeGen/ELF.h
  vendor/llvm/dist/test/CodeGen/ARM/2009-06-04-MissingLiveIn.ll
  vendor/llvm/dist/test/CodeGen/CBackend/fneg.ll
  vendor/llvm/dist/test/CodeGen/Generic/2009-06-03-UnreachableSplitPad.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-03-Win64DisableRedZone.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-03-Win64SpillXMM.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-04-VirtualLiveIn.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-05-ScalarToVectorByteMMX.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-05-VZextByteShort.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-05-VariableIndexInsert.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-05-sitofpCrash.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-06-06-ConcatVectors.ll
  vendor/llvm/dist/test/CodeGen/X86/fmul-zero.ll
  vendor/llvm/dist/test/CodeGen/X86/red-zone2.ll
  vendor/llvm/dist/test/Other/2009-06-05-no-implicit-float.ll
Modified:
  vendor/llvm/dist/CMakeLists.txt
  vendor/llvm/dist/Makefile.rules
  vendor/llvm/dist/autoconf/configure.ac
  vendor/llvm/dist/cmake/config-ix.cmake
  vendor/llvm/dist/cmake/modules/AddLLVM.cmake
  vendor/llvm/dist/cmake/modules/AddPartiallyLinkedObject.cmake
  vendor/llvm/dist/cmake/modules/LLVMConfig.cmake
  vendor/llvm/dist/configure
  vendor/llvm/dist/docs/CMake.html
  vendor/llvm/dist/docs/GoldPlugin.html
  vendor/llvm/dist/docs/LangRef.html
  vendor/llvm/dist/include/llvm-c/lto.h
  vendor/llvm/dist/include/llvm/Analysis/Dominators.h
  vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h
  vendor/llvm/dist/include/llvm/Attributes.h
  vendor/llvm/dist/include/llvm/CodeGen/JITCodeEmitter.h
  vendor/llvm/dist/include/llvm/CodeGen/MachineCodeEmitter.h
  vendor/llvm/dist/include/llvm/Config/config.h.cmake
  vendor/llvm/dist/include/llvm/Constants.h
  vendor/llvm/dist/include/llvm/ExecutionEngine/JITMemoryManager.h
  vendor/llvm/dist/include/llvm/InstrTypes.h
  vendor/llvm/dist/include/llvm/Instruction.def
  vendor/llvm/dist/include/llvm/Support/ConstantFolder.h
  vendor/llvm/dist/include/llvm/Support/IRBuilder.h
  vendor/llvm/dist/include/llvm/Support/NoFolder.h
  vendor/llvm/dist/include/llvm/Support/PatternMatch.h
  vendor/llvm/dist/include/llvm/Support/StandardPasses.h
  vendor/llvm/dist/include/llvm/Support/TargetFolder.h
  vendor/llvm/dist/include/llvm/Support/raw_ostream.h
  vendor/llvm/dist/include/llvm/System/Process.h
  vendor/llvm/dist/include/llvm/Target/TargetELFWriterInfo.h
  vendor/llvm/dist/include/llvm/Target/TargetLowering.h
  vendor/llvm/dist/include/llvm/Target/TargetOptions.h
  vendor/llvm/dist/lib/Analysis/InstCount.cpp
  vendor/llvm/dist/lib/Analysis/LoopInfo.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp
  vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp
  vendor/llvm/dist/lib/Analysis/ValueTracking.cpp
  vendor/llvm/dist/lib/AsmParser/LLLexer.cpp
  vendor/llvm/dist/lib/AsmParser/LLParser.cpp
  vendor/llvm/dist/lib/AsmParser/LLToken.h
  vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp
  vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfPrinter.cpp
  vendor/llvm/dist/lib/CodeGen/ELFCodeEmitter.cpp
  vendor/llvm/dist/lib/CodeGen/ELFCodeEmitter.h
  vendor/llvm/dist/lib/CodeGen/ELFWriter.cpp
  vendor/llvm/dist/lib/CodeGen/ELFWriter.h
  vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp
  vendor/llvm/dist/lib/CodeGen/RegAllocLinearScan.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/FastISel.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuild.h
  vendor/llvm/dist/lib/CodeGen/SelectionDAG/TargetLowering.cpp
  vendor/llvm/dist/lib/CodeGen/VirtRegRewriter.cpp
  vendor/llvm/dist/lib/ExecutionEngine/ExecutionEngine.cpp
  vendor/llvm/dist/lib/ExecutionEngine/Interpreter/Execution.cpp
  vendor/llvm/dist/lib/ExecutionEngine/JIT/JITEmitter.cpp
  vendor/llvm/dist/lib/ExecutionEngine/JIT/JITMemoryManager.cpp
  vendor/llvm/dist/lib/Support/raw_ostream.cpp
  vendor/llvm/dist/lib/System/Unix/Process.inc
  vendor/llvm/dist/lib/System/Win32/Process.inc
  vendor/llvm/dist/lib/Target/ARM/ARMConstantPoolValue.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
  vendor/llvm/dist/lib/Target/ARM/ARMMachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/ARM/ARMRegisterInfo.td
  vendor/llvm/dist/lib/Target/Alpha/AlphaMachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/CBackend/CBackend.cpp
  vendor/llvm/dist/lib/Target/CppBackend/CPPBackend.cpp
  vendor/llvm/dist/lib/Target/IA64/IA64MachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/MSIL/MSILWriter.cpp
  vendor/llvm/dist/lib/Target/MSP430/MSP430MachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/PIC16/PIC16ISelLowering.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.cpp
  vendor/llvm/dist/lib/Target/PowerPC/PPCISelLowering.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCMachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/PowerPC/PPCRegisterInfo.cpp
  vendor/llvm/dist/lib/Target/TargetMachine.cpp
  vendor/llvm/dist/lib/Target/X86/X86ELFWriterInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86ELFWriterInfo.h
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp
  vendor/llvm/dist/lib/Target/X86/X86ISelLowering.h
  vendor/llvm/dist/lib/Target/X86/X86InstrInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86InstrMMX.td
  vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td
  vendor/llvm/dist/lib/Target/X86/X86MachineFunctionInfo.h
  vendor/llvm/dist/lib/Target/X86/X86RegisterInfo.cpp
  vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp
  vendor/llvm/dist/lib/Target/XCore/XCoreMachineFunctionInfo.h
  vendor/llvm/dist/lib/Transforms/Scalar/GVN.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/GVNPRE.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/InstructionCombining.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/LoopStrengthReduce.cpp
  vendor/llvm/dist/lib/Transforms/Scalar/SimplifyLibCalls.cpp
  vendor/llvm/dist/lib/Transforms/Utils/SimplifyCFG.cpp
  vendor/llvm/dist/lib/VMCore/Attributes.cpp
  vendor/llvm/dist/lib/VMCore/ConstantFold.cpp
  vendor/llvm/dist/lib/VMCore/Constants.cpp
  vendor/llvm/dist/lib/VMCore/Instruction.cpp
  vendor/llvm/dist/lib/VMCore/Instructions.cpp
  vendor/llvm/dist/lib/VMCore/Verifier.cpp
  vendor/llvm/dist/test/Analysis/ScalarEvolution/sext-iv-0.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/sext-iv-1.ll
  vendor/llvm/dist/test/Analysis/ScalarEvolution/trip-count4.ll
  vendor/llvm/dist/test/Assembler/2002-04-07-HexFloatConstants.ll
  vendor/llvm/dist/test/Assembler/2002-04-07-InfConstant.ll
  vendor/llvm/dist/test/CodeGen/ARM/2007-01-19-InfiniteLoop.ll
  vendor/llvm/dist/test/CodeGen/ARM/2008-11-19-ScavengerAssert.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-02-27-SpillerBug.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-03-07-SpillerBug.ll
  vendor/llvm/dist/test/CodeGen/ARM/2009-04-08-FloatUndef.ll
  vendor/llvm/dist/test/CodeGen/ARM/cse-libcalls.ll
  vendor/llvm/dist/test/CodeGen/ARM/fixunsdfdi.ll
  vendor/llvm/dist/test/CodeGen/ARM/fnmul.ll
  vendor/llvm/dist/test/CodeGen/ARM/fparith.ll
  vendor/llvm/dist/test/CodeGen/ARM/fpmem.ll
  vendor/llvm/dist/test/CodeGen/ARM/illegal-vector-bitcast.ll
  vendor/llvm/dist/test/CodeGen/ARM/lsr-scale-addr-mode.ll
  vendor/llvm/dist/test/CodeGen/ARM/memcpy-inline.ll
  vendor/llvm/dist/test/CodeGen/ARM/str_pre-2.ll
  vendor/llvm/dist/test/CodeGen/ARM/vfp.ll
  vendor/llvm/dist/test/CodeGen/CBackend/2006-12-11-Float-Bitcast.ll
  vendor/llvm/dist/test/CodeGen/CBackend/2008-10-21-PPCLongDoubleConstant.ll
  vendor/llvm/dist/test/CodeGen/CBackend/vectors.ll
  vendor/llvm/dist/test/CodeGen/CellSPU/dp_farith.ll
  vendor/llvm/dist/test/CodeGen/CellSPU/fneg-fabs.ll
  vendor/llvm/dist/test/CodeGen/CellSPU/sp_farith.ll
  vendor/llvm/dist/test/CodeGen/Generic/2006-07-03-schedulers.ll
  vendor/llvm/dist/test/CodeGen/Generic/2007-05-15-InfiniteRecursion.ll
  vendor/llvm/dist/test/CodeGen/Generic/2008-02-04-ExtractSubvector.ll
  vendor/llvm/dist/test/CodeGen/Generic/2008-02-25-NegateZero.ll
  vendor/llvm/dist/test/CodeGen/Generic/2008-02-26-NegatableCrash.ll
  vendor/llvm/dist/test/CodeGen/Generic/fneg-fabs.ll
  vendor/llvm/dist/test/CodeGen/Generic/print-arith-fp.ll
  vendor/llvm/dist/test/CodeGen/Generic/select.ll
  vendor/llvm/dist/test/CodeGen/Generic/storetrunc-fp.ll
  vendor/llvm/dist/test/CodeGen/Generic/v-split.ll
  vendor/llvm/dist/test/CodeGen/Generic/vector.ll
  vendor/llvm/dist/test/CodeGen/MSP430/2009-05-19-DoubleSplit.ll
  vendor/llvm/dist/test/CodeGen/Mips/2008-07-06-fadd64.ll
  vendor/llvm/dist/test/CodeGen/Mips/2008-07-22-Cstpool.ll
  vendor/llvm/dist/test/CodeGen/Mips/2008-07-23-fpcmp.ll
  vendor/llvm/dist/test/CodeGen/Mips/2008-08-03-fabs64.ll
  vendor/llvm/dist/test/CodeGen/Mips/2008-11-10-xint_to_fp.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2006-01-11-darwin-fp-argument.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2006-10-11-combiner-aa-regression.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2007-03-30-SpillerCrash.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2007-11-19-VectorSplitting.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2008-07-15-Fabs.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2008-07-17-Fneg.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2008-09-12-CoalescerBug.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2008-10-28-UnprocessedNode.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/2008-10-28-f128-i32.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/buildvec_canonicalize.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/fma.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/fnabs.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/fneg.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/int-fp-conv-1.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/itofp128.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/mem-rr-addr-mode.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/multiple-return-values.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppcf128-1-opt.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppcf128-1.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppcf128-2.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/ppcf128-4.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/return-val-i128.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/unsafe-math.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/vec_fneg.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/vec_splat.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/vec_zero.ll
  vendor/llvm/dist/test/CodeGen/PowerPC/vector.ll
  vendor/llvm/dist/test/CodeGen/SPARC/2006-01-22-BitConvertLegalize.ll
  vendor/llvm/dist/test/CodeGen/X86/2005-05-08-FPStackifierPHI.ll
  vendor/llvm/dist/test/CodeGen/X86/2006-05-25-CycleInDAG.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-01-08-InstrSched.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-01-13-StackPtrIndex.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-03-01-SpillerCrash.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-04-11-InlineAsmVectorResult.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-04-24-VectorCrash.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-06-29-VecFPConstantCSEBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-07-10-StackerAssert.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-09-18-ShuffleXformBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-10-12-SpillerUnfold1.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-11-02-BadAsm.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-11-06-InstrSched.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-11-30-LoadFolding-Bug.ll
  vendor/llvm/dist/test/CodeGen/X86/2007-12-11-FoldImpDefSpill.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-01-16-FPStackifierAssert.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-02-06-LoadFoldingBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-02-08-LoadFoldingBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-02-27-DeadSlotElimBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-02-27-PEICrash.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-03-18-CoalescerBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-03-25-TwoAddrPassBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-07-19-movups-spills.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-07-23-VSetCC.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-08-23-X86-64AsmBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-10-27-CoalescerBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-11-03-F80VAARG.ll
  vendor/llvm/dist/test/CodeGen/X86/2008-12-05-SpillerCrash.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-01-16-UIntToFP.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-02-12-SpillerBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-02-25-CommuteBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-03-03-BitcastLongDouble.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-03-09-SpillerBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-03-12-CPAlignBug.ll
  vendor/llvm/dist/test/CodeGen/X86/2009-03-23-MultiUseSched.ll
  vendor/llvm/dist/test/CodeGen/X86/abi-isel.ll
  vendor/llvm/dist/test/CodeGen/X86/break-anti-dependencies.ll
  vendor/llvm/dist/test/CodeGen/X86/coalescer-commute1.ll
  vendor/llvm/dist/test/CodeGen/X86/coalescer-commute2.ll
  vendor/llvm/dist/test/CodeGen/X86/coalescer-commute4.ll
  vendor/llvm/dist/test/CodeGen/X86/complex-fca.ll
  vendor/llvm/dist/test/CodeGen/X86/constant-pool-remat-0.ll
  vendor/llvm/dist/test/CodeGen/X86/dagcombine-buildvector.ll
  vendor/llvm/dist/test/CodeGen/X86/extract-combine.ll
  vendor/llvm/dist/test/CodeGen/X86/fabs.ll
  vendor/llvm/dist/test/CodeGen/X86/fast-isel.ll
  vendor/llvm/dist/test/CodeGen/X86/fold-pcmpeqd-0.ll
  vendor/llvm/dist/test/CodeGen/X86/fold-pcmpeqd-2.ll
  vendor/llvm/dist/test/CodeGen/X86/fp-in-intregs.ll
  vendor/llvm/dist/test/CodeGen/X86/fp-stack-compare.ll
  vendor/llvm/dist/test/CodeGen/X86/fp_constant_op.ll
  vendor/llvm/dist/test/CodeGen/X86/fp_load_fold.ll
  vendor/llvm/dist/test/CodeGen/X86/fsxor-alignment.ll
  vendor/llvm/dist/test/CodeGen/X86/full-lsr.ll
  vendor/llvm/dist/test/CodeGen/X86/ga-offset.ll
  vendor/llvm/dist/test/CodeGen/X86/illegal-vector-args-return.ll
  vendor/llvm/dist/test/CodeGen/X86/inline-asm-fpstack.ll
  vendor/llvm/dist/test/CodeGen/X86/inline-asm-mrv.ll
  vendor/llvm/dist/test/CodeGen/X86/inline-asm-x-scalar.ll
  vendor/llvm/dist/test/CodeGen/X86/iv-users-in-other-loops.ll
  vendor/llvm/dist/test/CodeGen/X86/masked-iv-safe.ll
  vendor/llvm/dist/test/CodeGen/X86/masked-iv-unsafe.ll
  vendor/llvm/dist/test/CodeGen/X86/multiple-return-values.ll
  vendor/llvm/dist/test/CodeGen/X86/neg_fp.ll
  vendor/llvm/dist/test/CodeGen/X86/negate-add-zero.ll
  vendor/llvm/dist/test/CodeGen/X86/negative-sin.ll
  vendor/llvm/dist/test/CodeGen/X86/peep-test-0.ll
  vendor/llvm/dist/test/CodeGen/X86/peep-test-1.ll
  vendor/llvm/dist/test/CodeGen/X86/phys_subreg_coalesce.ll
  vendor/llvm/dist/test/CodeGen/X86/pr2656.ll
  vendor/llvm/dist/test/CodeGen/X86/pr3154.ll
  vendor/llvm/dist/test/CodeGen/X86/pr3457.ll
  vendor/llvm/dist/test/CodeGen/X86/pre-split1.ll
  vendor/llvm/dist/test/CodeGen/X86/pre-split10.ll
  vendor/llvm/dist/test/CodeGen/X86/pre-split4.ll
  vendor/llvm/dist/test/CodeGen/X86/pre-split5.ll
  vendor/llvm/dist/test/CodeGen/X86/pre-split6.ll
  vendor/llvm/dist/test/CodeGen/X86/pre-split7.ll
  vendor/llvm/dist/test/CodeGen/X86/pre-split8.ll
  vendor/llvm/dist/test/CodeGen/X86/pre-split9.ll
  vendor/llvm/dist/test/CodeGen/X86/remat-constant.ll
  vendor/llvm/dist/test/CodeGen/X86/shrink-fp-const1.ll
  vendor/llvm/dist/test/CodeGen/X86/small-byval-memcpy.ll
  vendor/llvm/dist/test/CodeGen/X86/soft-fp.ll
  vendor/llvm/dist/test/CodeGen/X86/sse-align-0.ll
  vendor/llvm/dist/test/CodeGen/X86/sse-align-2.ll
  vendor/llvm/dist/test/CodeGen/X86/sse-fcopysign.ll
  vendor/llvm/dist/test/CodeGen/X86/sse41-extractps-bitcast-1.ll
  vendor/llvm/dist/test/CodeGen/X86/sse41-pmovx.ll
  vendor/llvm/dist/test/CodeGen/X86/stack-align.ll
  vendor/llvm/dist/test/CodeGen/X86/storetrunc-fp.ll
  vendor/llvm/dist/test/CodeGen/X86/stride-reuse.ll
  vendor/llvm/dist/test/CodeGen/X86/twoaddr-coalesce-2.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_extract.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_fneg.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_ins_extract.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_insert.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_logical.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_select.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_shuffle-27.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_shuffle-3.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_shuffle-5.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_splat.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_ss_load_fold.ll
  vendor/llvm/dist/test/CodeGen/X86/vec_zero.ll
  vendor/llvm/dist/test/CodeGen/X86/vector.ll
  vendor/llvm/dist/test/CodeGen/X86/widen_arith-6.ll
  vendor/llvm/dist/test/CodeGen/X86/widen_shuffle-1.ll
  vendor/llvm/dist/test/CodeGen/X86/widen_shuffle-2.ll
  vendor/llvm/dist/test/CodeGen/XCore/2009-01-14-Remat-Crash.ll
  vendor/llvm/dist/test/CodeGen/XCore/fneg.ll
  vendor/llvm/dist/test/ExecutionEngine/2003-01-10-FUCOM.ll
  vendor/llvm/dist/test/ExecutionEngine/test-fp.ll
  vendor/llvm/dist/test/ExecutionEngine/test-setcond-fp.ll
  vendor/llvm/dist/test/Feature/ppcld.ll
  vendor/llvm/dist/test/Feature/sparcld.ll
  vendor/llvm/dist/test/Feature/x86ld.ll
  vendor/llvm/dist/test/FrontendC/2009-01-20-k8.c
  vendor/llvm/dist/test/FrontendC/2009-05-04-EnumInreg.c
  vendor/llvm/dist/test/Other/2004-08-16-PackedSelect.ll
  vendor/llvm/dist/test/Other/2004-08-16-PackedSimple.ll
  vendor/llvm/dist/test/Other/2004-08-20-PackedControlFlow.ll
  vendor/llvm/dist/test/Transforms/ConstProp/calls.ll
  vendor/llvm/dist/test/Transforms/DeadStoreElimination/2006-06-27-AST-Remove.ll
  vendor/llvm/dist/test/Transforms/GVNPRE/2007-06-18-ConstantInPhi.ll
  vendor/llvm/dist/test/Transforms/GlobalOpt/2008-01-29-VolatileGlobal.ll
  vendor/llvm/dist/test/Transforms/GlobalOpt/2008-04-26-SROA-Global-Align.ll
  vendor/llvm/dist/test/Transforms/GlobalOpt/constantexpr-dangle.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/2006-12-10-BitCast.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/2008-11-03-Floating.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/2008-11-17-Floating.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/2008-11-25-APFloatAssert.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/2009-04-27-Floating.ll
  vendor/llvm/dist/test/Transforms/IndVarSimplify/iv-zext.ll
  vendor/llvm/dist/test/Transforms/InstCombine/2006-10-26-VectorReassoc.ll
  vendor/llvm/dist/test/Transforms/InstCombine/2006-12-01-BadFPVectorXform.ll
  vendor/llvm/dist/test/Transforms/InstCombine/2008-07-16-fsub.ll
  vendor/llvm/dist/test/Transforms/InstCombine/add-sitofp.ll
  vendor/llvm/dist/test/Transforms/InstCombine/dce-iterate.ll
  vendor/llvm/dist/test/Transforms/InstCombine/fpextend.ll
  vendor/llvm/dist/test/Transforms/InstCombine/mul.ll
  vendor/llvm/dist/test/Transforms/InstCombine/multi-use-or.ll
  vendor/llvm/dist/test/Transforms/InstCombine/shufflemask-undef.ll
  vendor/llvm/dist/test/Transforms/InstCombine/signed-comparison.ll
  vendor/llvm/dist/test/Transforms/InstCombine/sitofp.ll
  vendor/llvm/dist/test/Transforms/InstCombine/vec_demanded_elts.ll
  vendor/llvm/dist/test/Transforms/InstCombine/vec_narrow.ll
  vendor/llvm/dist/test/Transforms/InstCombine/zero-point-zero-add.ll
  vendor/llvm/dist/test/Transforms/LCSSA/2007-07-12-LICM-2.ll
  vendor/llvm/dist/test/Transforms/LCSSA/2007-07-12-LICM-3.ll
  vendor/llvm/dist/test/Transforms/LCSSA/2007-07-12-LICM.ll
  vendor/llvm/dist/test/Transforms/LoopIndexSplit/2007-09-24-UpdateIterationSpace.ll
  vendor/llvm/dist/test/Transforms/LoopIndexSplit/2007-09-25-UpdateIterationSpace-2.ll
  vendor/llvm/dist/test/Transforms/Mem2Reg/PromoteMemToRegister.ll
  vendor/llvm/dist/test/Transforms/MemCpyOpt/memcpy.ll
  vendor/llvm/dist/test/Transforms/MemCpyOpt/sret.ll
  vendor/llvm/dist/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll
  vendor/llvm/dist/test/Transforms/Reassociate/2006-04-27-ReassociateVector.ll
  vendor/llvm/dist/test/Transforms/SCCP/2006-12-04-PackedType.ll
  vendor/llvm/dist/test/Transforms/SCCP/apint-ipsccp4.ll
  vendor/llvm/dist/test/Transforms/ScalarRepl/2009-03-17-CleanUp.ll
  vendor/llvm/dist/test/Transforms/ScalarRepl/copy-aggregate.ll
  vendor/llvm/dist/test/Transforms/ScalarRepl/memcpy-from-global.ll
  vendor/llvm/dist/test/Transforms/ScalarRepl/vector_promote.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/2006-10-29-InvokeCrash.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/2008-01-02-hoist-fp-add.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/2008-04-27-MultipleReturnCrash.ll
  vendor/llvm/dist/test/Transforms/SimplifyCFG/2009-05-12-externweak.ll
  vendor/llvm/dist/test/Transforms/SimplifyLibCalls/half-powr.ll
  vendor/llvm/dist/tools/CMakeLists.txt
  vendor/llvm/dist/tools/llc/llc.cpp
  vendor/llvm/dist/tools/llvm-ld/Optimize.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/utils/llvm.grm
  vendor/llvm/dist/utils/vim/llvm.vim

Modified: vendor/llvm/dist/CMakeLists.txt
==============================================================================
--- vendor/llvm/dist/CMakeLists.txt	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/CMakeLists.txt	Sat Jun  6 08:20:29 2009	(r193574)
@@ -58,13 +58,22 @@ endif( MSVC )
 option(LLVM_ENABLE_THREADS "Use threads if available." ON)
 
 if( uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
-  option(LLVM_ENABLE_ASSERTS "Enable asserts" OFF)
+  option(LLVM_ENABLE_ASSERTIONS "Enable assertions" OFF)
 else()
-  option(LLVM_ENABLE_ASSERTS "Enable asserts" ON)
+  option(LLVM_ENABLE_ASSERTIONS "Enable assertions" ON)
 endif()
 
-if( LLVM_ENABLE_ASSERTS )
-  add_definitions( -D_DEBUG -UNDEBUG )
+if( LLVM_ENABLE_ASSERTIONS )
+  add_definitions( -D_DEBUG )
+  # On Release builds cmake automatically defines NDEBUG, so we
+  # explicitly undefine it:
+  if( uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
+    add_definitions( -UNDEBUG )
+  endif()
+else()
+  if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
+    add_definitions( -DNDEBUG )
+  endif()
 endif()
 
 if( LLVM_TARGETS_TO_BUILD STREQUAL "all" )
@@ -81,6 +90,24 @@ endforeach(c)
 
 set(llvm_builded_incs_dir ${LLVM_BINARY_DIR}/include/llvm)
 
+# The USE_EXPLICIT_DEPENDENCIES variable will be TRUE to indicate that
+# we should use the library dependencies explicitly specified in the
+# CMakeLists.txt files rather than those determined by
+# llvm-config. This value must be true for non-make and IDE
+# generators.
+if (MSVC_IDE)
+  set(DEFAULT_USE_EXPLICIT_DEPENDENCIES ON)
+elseif (XCODE)
+  set(DEFAULT_USE_EXPLICIT_DEPENDENCIES ON)
+else ()
+ set(DEFAULT_USE_EXPLICIT_DEPENDENCIES OFF)
+endif ()
+
+option(USE_EXPLICIT_DEPENDENCIES 
+  "Use explicit dependencies instead of llvm-config" 
+  ${DEFAULT_USE_EXPLICIT_DEPENDENCIES})
+mark_as_advanced(USE_EXPLICIT_DEPENDENCIES)
+
 # Add path for custom modules
 set(CMAKE_MODULE_PATH
   ${CMAKE_MODULE_PATH}
@@ -123,11 +150,13 @@ include(config-ix)
 
 option(LLVM_ENABLE_PIC "Build Position-Independent Code" OFF)
 
+set(ENABLE_PIC 0)
 if( LLVM_ENABLE_PIC )
   if( SUPPORTS_FPIC_FLAG )
     message(STATUS "Building with -fPIC")
     add_llvm_definitions(-fPIC)
-  else( SUPPORTS_FPIC_FLAG )
+    set(ENABLE_PIC 1)
+ else( SUPPORTS_FPIC_FLAG )
     message(STATUS "Warning: -fPIC not supported.")
   endif()
 endif()

Modified: vendor/llvm/dist/Makefile.rules
==============================================================================
--- vendor/llvm/dist/Makefile.rules	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/Makefile.rules	Sat Jun  6 08:20:29 2009	(r193574)
@@ -1066,7 +1066,7 @@ all-local:: $(LibName.O)
 
 $(LibName.O): $(ObjectsO) $(LibDir)/.dir
 	$(Echo) Linking $(BuildMode) Object Library $(notdir $@)
-	$(Verb) $(Relink) -Wl,-r -nodefaultlibs -nostdlib -nostartfiles -o $@ $(ObjectsO)
+	$(Verb) $(Relink) -r -nodefaultlibs -nostdlib -nostartfiles -o $@ $(ObjectsO)
 
 clean-local::
 ifneq ($(strip $(LibName.O)),)

Modified: vendor/llvm/dist/autoconf/configure.ac
==============================================================================
--- vendor/llvm/dist/autoconf/configure.ac	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/autoconf/configure.ac	Sat Jun  6 08:20:29 2009	(r193574)
@@ -279,7 +279,7 @@ dnl===----------------------------------
 
 dnl --enable-optimized : check whether they want to do an optimized build:
 AC_ARG_ENABLE(optimized, AS_HELP_STRING(
- [--enable-optimized,Compile with optimizations enabled (default is NO)]),,enableval=$optimize)
+ --enable-optimized,[Compile with optimizations enabled (default is NO)]),,enableval=$optimize)
 if test ${enableval} = "no" ; then
   AC_SUBST(ENABLE_OPTIMIZED,[[]])
 else
@@ -288,7 +288,7 @@ fi
 
 dnl --enable-profiling : check whether they want to do a profile build:
 AC_ARG_ENABLE(profiling, AS_HELP_STRING(
- [--enable-profiling,Compile with profiling enabled (default is NO)]),,enableval="no")
+ --enable-profiling,[Compile with profiling enabled (default is NO)]),,enableval="no")
 if test ${enableval} = "no" ; then
   AC_SUBST(ENABLE_PROFILING,[[]])
 else
@@ -297,7 +297,7 @@ fi
 
 dnl --enable-assertions : check whether they want to turn on assertions or not:
 AC_ARG_ENABLE(assertions,AS_HELP_STRING(
-  [--enable-assertions,Compile with assertion checks enabled (default is YES)]),, enableval="yes")
+  --enable-assertions,[Compile with assertion checks enabled (default is YES)]),, enableval="yes")
 if test ${enableval} = "yes" ; then
   AC_SUBST(DISABLE_ASSERTIONS,[[]])
 else
@@ -306,7 +306,7 @@ fi
 
 dnl --enable-expensive-checks : check whether they want to turn on expensive debug checks:
 AC_ARG_ENABLE(expensive-checks,AS_HELP_STRING(
-  [--enable-expensive-checks,Compile with expensive debug checks enabled (default is NO)]),, enableval="no")
+  --enable-expensive-checks,[Compile with expensive debug checks enabled (default is NO)]),, enableval="no")
 if test ${enableval} = "yes" ; then
   AC_SUBST(ENABLE_EXPENSIVE_CHECKS,[[ENABLE_EXPENSIVE_CHECKS=1]])
   AC_SUBST(EXPENSIVE_CHECKS,[[yes]])
@@ -317,7 +317,7 @@ fi
 
 dnl --enable-debug-runtime : should runtime libraries have debug symbols?
 AC_ARG_ENABLE(debug-runtime,
-   AS_HELP_STRING([--enable-debug-runtime,Build runtime libs with debug symbols (default is NO)]),,enableval=no)
+   AS_HELP_STRING(--enable-debug-runtime,[Build runtime libs with debug symbols (default is NO)]),,enableval=no)
 if test ${enableval} = "no" ; then
   AC_SUBST(DEBUG_RUNTIME,[[]])
 else
@@ -553,6 +553,16 @@ if test "x$WITH_BINUTILS_INCDIR" != xdef
   fi
 fi
 
+dnl --enable-libffi : check whether the user wants to turn off libffi:
+AC_ARG_ENABLE(libffi,AS_HELP_STRING(
+  --enable-libffi,[Check for the presence of libffi (default is YES)]),,
+  enableval=yes)
+case "$enableval" in
+  yes) llvm_cv_enable_libffi="yes" ;;
+  no)  llvm_cv_enable_libffi="no"  ;;
+  *) AC_MSG_ERROR([Invalid setting for --enable-libffi. Use "yes" or "no"]) ;;
+esac
+
 dnl===-----------------------------------------------------------------------===
 dnl===
 dnl=== SECTION 4: Check for programs we need and that they are the right version
@@ -769,9 +779,11 @@ AC_SEARCH_LIBS(dlopen,dl,AC_DEFINE([HAVE
                AC_MSG_WARN([dlopen() not found - disabling plugin support]))
 
 dnl libffi is optional; used to call external functions from the interpreter
-AC_SEARCH_LIBS(ffi_call,ffi,AC_DEFINE([HAVE_FFI_CALL],[1],
-               [Define if libffi is available on this platform.]),
-               AC_MSG_WARN([libffi not found - disabling external calls from interpreter]))
+if test "$llvm_cv_enable_libffi" = "yes" ; then
+  AC_SEARCH_LIBS(ffi_call,ffi,AC_DEFINE([HAVE_FFI_CALL],[1],
+                 [Define if libffi is available on this platform.]),
+                 AC_MSG_WARN([libffi not found - disabling external calls from interpreter]))
+fi
 
 dnl mallinfo is optional; the code can compile (minus features) without it
 AC_SEARCH_LIBS(mallinfo,malloc,AC_DEFINE([HAVE_MALLINFO],[1],
@@ -836,7 +848,9 @@ else
 fi
 
 dnl Try to find ffi.h.
-AC_CHECK_HEADERS([ffi.h ffi/ffi.h])
+if test "$llvm_cv_enable_libffi" = "yes" ; then
+  AC_CHECK_HEADERS([ffi.h ffi/ffi.h])
+fi
 
 dnl===-----------------------------------------------------------------------===
 dnl===

Modified: vendor/llvm/dist/cmake/config-ix.cmake
==============================================================================
--- vendor/llvm/dist/cmake/config-ix.cmake	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/cmake/config-ix.cmake	Sat Jun  6 08:20:29 2009	(r193574)
@@ -1,6 +1,7 @@
 
 # include checks
 include(CheckIncludeFile)
+check_include_file(alloca.h HAVE_ALLOCA_H)
 check_include_file(argz.h HAVE_ARGZ_H)
 check_include_file(assert.h HAVE_ASSERT_H)
 check_include_file(dirent.h HAVE_DIRENT_H)
@@ -34,6 +35,7 @@ check_include_file(sys/resource.h HAVE_S
 check_include_file(sys/stat.h HAVE_SYS_STAT_H)
 check_include_file(sys/time.h HAVE_SYS_TIME_H)
 check_include_file(sys/types.h HAVE_SYS_TYPES_H)
+check_include_file(sys/wait.h HAVE_SYS_WAIT_H)
 check_include_file(termios.h HAVE_TERMIOS_H)
 check_include_file(unistd.h HAVE_UNISTD_H)
 check_include_file(utime.h HAVE_UTIME_H)
@@ -47,6 +49,7 @@ check_library_exists(dl dlopen "" HAVE_L
 # function checks
 include(CheckSymbolExists)
 include(CheckFunctionExists)
+check_symbol_exists(alloca alloca.h HAVE_ALLOCA)
 check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE)
 check_symbol_exists(getrusage sys/resource.h HAVE_GETRUSAGE)
 check_symbol_exists(setrlimit sys/resource.h HAVE_SETRLIMIT)
@@ -58,6 +61,8 @@ check_symbol_exists(isnan math.h HAVE_IS
 check_symbol_exists(ceilf math.h HAVE_CEILF)
 check_symbol_exists(floorf math.h HAVE_FLOORF)
 check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
+check_symbol_exists(malloc_zone_statistics malloc/malloc.h
+                    HAVE_MALLOC_ZONE_STATISTICS)
 check_symbol_exists(pthread_mutex_lock pthread.h HAVE_PTHREAD_MUTEX_LOCK)
 check_symbol_exists(strtoll stdlib.h HAVE_STRTOLL)
 

Modified: vendor/llvm/dist/cmake/modules/AddLLVM.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/AddLLVM.cmake	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/cmake/modules/AddLLVM.cmake	Sat Jun  6 08:20:29 2009	(r193574)
@@ -26,11 +26,11 @@ macro(add_llvm_executable name)
   if( LLVM_LINK_COMPONENTS )
     llvm_config(${name} ${LLVM_LINK_COMPONENTS})
   endif( LLVM_LINK_COMPONENTS )
-  if( MSVC )
+  if( USE_EXPLICIT_DEPENDENCIES )
     target_link_libraries(${name} ${llvm_libs})
-  else( MSVC )
+  else( )
     add_dependencies(${name} llvm-config.target)
-  endif( MSVC )
+  endif( )
   get_system_libs(llvm_system_libs)
   if( llvm_system_libs )
     target_link_libraries(${name} ${llvm_system_libs})

Modified: vendor/llvm/dist/cmake/modules/AddPartiallyLinkedObject.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/AddPartiallyLinkedObject.cmake	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/cmake/modules/AddPartiallyLinkedObject.cmake	Sat Jun  6 08:20:29 2009	(r193574)
@@ -1,18 +1,18 @@
 include(LLVMProcessSources)
 
 macro(target_name_of_partially_linked_object lib var)
-  if( MSVC )
+  if( USE_EXPLICIT_DEPENDENCIES )
     set(${var} ${lib})
-  else( MSVC )
+  else( )
     set(${var} ${lib}_pll)
-  endif( MSVC )
+  endif( )
 endmacro(target_name_of_partially_linked_object lib var)
 
 
 macro(add_partially_linked_object lib)
-  if( MSVC )
+  if( USE_EXPLICIT_DEPENDENCIES )
     add_llvm_library( ${lib} ${ARGN})
-  else( MSVC )
+  else( )
     set(pll ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/${lib}.o)
     set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
     set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/temp_lib)
@@ -36,7 +36,7 @@ macro(add_partially_linked_object lib)
     add_custom_target(${tnplo} ALL DEPENDS ${pll})
     set( llvm_libs ${llvm_libs} ${pll} PARENT_SCOPE)
     set( llvm_lib_targets ${llvm_lib_targets} ${tnplo} PARENT_SCOPE )
-  endif( MSVC )
+  endif( )
   install(FILES ${pll}
     DESTINATION lib)
 endmacro(add_partially_linked_object lib)

Modified: vendor/llvm/dist/cmake/modules/LLVMConfig.cmake
==============================================================================
--- vendor/llvm/dist/cmake/modules/LLVMConfig.cmake	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/cmake/modules/LLVMConfig.cmake	Sat Jun  6 08:20:29 2009	(r193574)
@@ -21,36 +21,40 @@ endfunction(get_system_libs)
 
 macro(llvm_config executable)
   # extra args is the list of link components.
-  if( MSVC )
-    msvc_llvm_config(${executable} ${ARGN})
-  else( MSVC )
+  if( USE_EXPLICIT_DEPENDENCIES )
+    explicit_llvm_config(${executable} ${ARGN})
+  else( )
     nix_llvm_config(${executable} ${ARGN})
-  endif( MSVC )
+  endif( )
 endmacro(llvm_config)
 
 
-function(msvc_llvm_config executable)
+function(explicit_llvm_config executable)
   set( link_components ${ARGN} )
-  if( CMAKE_CL_64 )
-    set(include_lflag "/INCLUDE:")
-  else( CMAKE_CL_64 )
-    set(include_lflag "/INCLUDE:_")
-  endif()
-  foreach(c ${link_components})
-    if( c STREQUAL "jit" )
-      set(lfgs "${lfgs} ${include_lflag}X86TargetMachineModule")
-    endif( c STREQUAL "jit" )
-    list(FIND LLVM_TARGETS_TO_BUILD ${c} idx)
-    if( NOT idx LESS 0 )
-      set(lfgs "${lfgs} ${include_lflag}${c}TargetMachineModule")
-      list(FIND LLVM_ASMPRINTERS_FORCE_LINK ${c} idx)
+
+  set(lfgs)
+  if (MSVC)
+    if( CMAKE_CL_64 )
+      set(include_lflag "/INCLUDE:")
+    else( CMAKE_CL_64 )
+      set(include_lflag "/INCLUDE:_")
+    endif()
+    foreach(c ${link_components})
+      if( c STREQUAL "jit" )
+        set(lfgs "${lfgs} ${include_lflag}X86TargetMachineModule")
+      endif( c STREQUAL "jit" )
+      list(FIND LLVM_TARGETS_TO_BUILD ${c} idx)
       if( NOT idx LESS 0 )
-	set(lfgs "${lfgs} ${include_lflag}${c}AsmPrinterForceLink")
+        set(lfgs "${lfgs} ${include_lflag}${c}TargetMachineModule")
+        list(FIND LLVM_ASMPRINTERS_FORCE_LINK ${c} idx)
+        if( NOT idx LESS 0 )
+	  set(lfgs "${lfgs} ${include_lflag}${c}AsmPrinterForceLink")
+        endif()
       endif()
-    endif()
-  endforeach(c)
+    endforeach(c)
+  endif ()
 
-  msvc_map_components_to_libraries(LIBRARIES ${link_components})
+  explicit_map_components_to_libraries(LIBRARIES ${link_components})
   target_link_libraries(${executable} ${LIBRARIES})
 
   if( lfgs )
@@ -58,10 +62,10 @@ function(msvc_llvm_config executable)
       PROPERTIES
       LINK_FLAGS ${lfgs})
   endif()
-endfunction(msvc_llvm_config)
+endfunction(explicit_llvm_config)
 
 
-function(msvc_map_components_to_libraries out_libs)
+function(explicit_map_components_to_libraries out_libs)
   set( link_components ${ARGN} )
   foreach(c ${link_components})
     # add codegen/asmprinter
@@ -121,7 +125,7 @@ function(msvc_map_components_to_librarie
   endwhile( ${curr_idx} LESS ${lst_size} )
   list(REMOVE_DUPLICATES result)
   set(${out_libs} ${result} PARENT_SCOPE)
-endfunction(msvc_map_components_to_libraries)
+endfunction(explicit_map_components_to_libraries)
 
 
 macro(nix_llvm_config executable)

Modified: vendor/llvm/dist/configure
==============================================================================
--- vendor/llvm/dist/configure	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/configure	Sat Jun  6 08:20:29 2009	(r193574)
@@ -1533,12 +1533,15 @@ if test -n "$ac_init_help"; then
 Optional Features:
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-optimized
-  --enable-profiling
-  --enable-assertions
+  --enable-optimized      Compile with optimizations enabled (default is NO)
+  --enable-profiling      Compile with profiling enabled (default is NO)
+  --enable-assertions     Compile with assertion checks enabled (default is
+                          YES)
   --enable-expensive-checks
-
-  --enable-debug-runtime
+                          Compile with expensive debug checks enabled (default
+                          is NO)
+  --enable-debug-runtime  Build runtime libs with debug symbols (default is
+                          NO)
   --enable-jit            Enable Just In Time Compiling (default is YES)
   --enable-doxygen        Build doxygen documentation (default is NO)
   --enable-threads        Use threads if available (default is YES)
@@ -1550,6 +1553,7 @@ Optional Features:
                           %a (default is YES)
   --enable-bindings       Build specific language bindings:
                           all,auto,none,{binding-name} (default=auto)
+  --enable-libffi         Check for the presence of libffi (default is YES)
   --enable-ltdl-install   install libltdl
   --enable-shared[=PKGS]  build shared libraries
                           [default=yes]
@@ -5111,6 +5115,21 @@ echo "$as_me: error: Invalid path to dir
   fi
 fi
 
+# Check whether --enable-libffi was given.
+if test "${enable_libffi+set}" = set; then
+  enableval=$enable_libffi;
+else
+  enableval=yes
+fi
+
+case "$enableval" in
+  yes) llvm_cv_enable_libffi="yes" ;;
+  no)  llvm_cv_enable_libffi="no"  ;;
+  *) { { echo "$as_me:$LINENO: error: Invalid setting for --enable-libffi. Use \"yes\" or \"no\"" >&5
+echo "$as_me: error: Invalid setting for --enable-libffi. Use \"yes\" or \"no\"" >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -10575,7 +10594,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10578 "configure"
+#line 10597 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12719,7 +12738,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 12722 "configure"' > conftest.$ac_ext
+  echo '#line 12741 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -14437,11 +14456,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14440: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14459: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14444: \$? = $ac_status" >&5
+   echo "$as_me:14463: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14705,11 +14724,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14708: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14727: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14712: \$? = $ac_status" >&5
+   echo "$as_me:14731: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14809,11 +14828,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14812: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14831: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14816: \$? = $ac_status" >&5
+   echo "$as_me:14835: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17261,7 +17280,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 17264 "configure"
+#line 17283 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -17361,7 +17380,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 17364 "configure"
+#line 17383 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -19729,11 +19748,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19732: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19751: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:19736: \$? = $ac_status" >&5
+   echo "$as_me:19755: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -19833,11 +19852,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:19836: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:19855: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:19840: \$? = $ac_status" >&5
+   echo "$as_me:19859: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -21403,11 +21422,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:21406: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:21425: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:21410: \$? = $ac_status" >&5
+   echo "$as_me:21429: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -21507,11 +21526,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:21510: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:21529: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:21514: \$? = $ac_status" >&5
+   echo "$as_me:21533: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -23742,11 +23761,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:23745: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:23764: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:23749: \$? = $ac_status" >&5
+   echo "$as_me:23768: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -24010,11 +24029,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:24013: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:24032: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:24017: \$? = $ac_status" >&5
+   echo "$as_me:24036: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -24114,11 +24133,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:24117: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:24136: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:24121: \$? = $ac_status" >&5
+   echo "$as_me:24140: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -27473,7 +27492,8 @@ echo "$as_me: WARNING: dlopen() not foun
 fi
 
 
-{ echo "$as_me:$LINENO: checking for library containing ffi_call" >&5
+if test "$llvm_cv_enable_libffi" = "yes" ; then
+  { echo "$as_me:$LINENO: checking for library containing ffi_call" >&5
 echo $ECHO_N "checking for library containing ffi_call... $ECHO_C" >&6; }
 if test "${ac_cv_search_ffi_call+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -27579,6 +27599,7 @@ else
 echo "$as_me: WARNING: libffi not found - disabling external calls from interpreter" >&2;}
 fi
 
+fi
 
 { echo "$as_me:$LINENO: checking for library containing mallinfo" >&5
 echo $ECHO_N "checking for library containing mallinfo... $ECHO_C" >&6; }
@@ -29824,6 +29845,7 @@ else
 
 fi
 
+if test "$llvm_cv_enable_libffi" = "yes" ; then
 
 
 for ac_header in ffi.h ffi/ffi.h
@@ -29994,6 +30016,7 @@ fi
 
 done
 
+fi
 
 
 

Modified: vendor/llvm/dist/docs/CMake.html
==============================================================================
--- vendor/llvm/dist/docs/CMake.html	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/docs/CMake.html	Sat Jun  6 08:20:29 2009	(r193574)
@@ -248,8 +248,8 @@
   <dt><b>LLVM_ENABLE_THREADS</b>:BOOL</dt>
   <dd>Build with threads support, if available. Defaults to ON.</dd>
 
-  <dt><b>LLVM_ENABLE_ASSERTS</b>:BOOL</dt>
-  <dd>Enables code asserts. Defaults to ON if and only if
+  <dt><b>LLVM_ENABLE_ASSERTIONS</b>:BOOL</dt>
+  <dd>Enables code assertions. Defaults to ON if and only if
     CMAKE_BUILD_TYPE is <i>Release</i>.</dd>
 
   <dt><b>LLVM_ENABLE_PIC</b>:BOOL</dt>

Modified: vendor/llvm/dist/docs/GoldPlugin.html
==============================================================================
--- vendor/llvm/dist/docs/GoldPlugin.html	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/docs/GoldPlugin.html	Sat Jun  6 08:20:29 2009	(r193574)
@@ -153,12 +153,21 @@ $ llvm-gcc -use-gold-plugin a.o b.o -o m
     <pre class="doc_code">
 export CC="$PREFIX/bin/llvm-gcc -use-gold-plugin"
 export CXX="$PREFIX/bin/llvm-g++ -use-gold-plugin"
-export AR="$PREFIX/bin/ar --plugin libLLVMgold.so"
-export NM="$PREFIX/bin/nm --plugin libLLVMgold.so"
+export AR="$PREFIX/bin/ar"
+export NM="$PREFIX/bin/nm"
 export RANLIB=/bin/true #ranlib is not needed, and doesn't support .bc files in .a
 export CFLAGS="-O4"
      </pre>
      </li>
+     <li>Or you can just set your path:
+    <pre class="doc_code">
+export PATH="$PREFIX/bin:$PATH"
+export CC="llvm-gcc -use-gold-plugin"
+export CXX="llvm-g++ -use-gold-plugin"
+export RANLIB=/bin/true
+export CFLAGS="-O4"
+     </pre>
+     </li>
      <li>Configure &amp; build the project as usual: <tt>./configure &amp;&amp; make &amp;&amp; make check</tt> </li>
    </ul>
    <p> The environment variable settings may work for non-autotooled projects

Modified: vendor/llvm/dist/docs/LangRef.html
==============================================================================
--- vendor/llvm/dist/docs/LangRef.html	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/docs/LangRef.html	Sat Jun  6 08:20:29 2009	(r193574)
@@ -89,8 +89,11 @@
       <li><a href="#binaryops">Binary Operations</a>
         <ol>
           <li><a href="#i_add">'<tt>add</tt>' Instruction</a></li>
+          <li><a href="#i_fadd">'<tt>fadd</tt>' Instruction</a></li>
           <li><a href="#i_sub">'<tt>sub</tt>' Instruction</a></li>
+          <li><a href="#i_fsub">'<tt>fsub</tt>' Instruction</a></li>
           <li><a href="#i_mul">'<tt>mul</tt>' Instruction</a></li>
+          <li><a href="#i_fmul">'<tt>fmul</tt>' Instruction</a></li>
           <li><a href="#i_udiv">'<tt>udiv</tt>' Instruction</a></li>
           <li><a href="#i_sdiv">'<tt>sdiv</tt>' Instruction</a></li>
           <li><a href="#i_fdiv">'<tt>fdiv</tt>' Instruction</a></li>
@@ -2503,16 +2506,15 @@ The result value has the same type as it
 <h5>Arguments:</h5>
 
 <p>The two arguments to the '<tt>add</tt>' instruction must be <a
- href="#t_integer">integer</a>, <a href="#t_floating">floating point</a>, or
- <a href="#t_vector">vector</a> values. Both arguments must have identical
- types.</p>
+ href="#t_integer">integer</a> or
+ <a href="#t_vector">vector</a> of integer values. Both arguments must
+ have identical types.</p>
 
 <h5>Semantics:</h5>
 
-<p>The value produced is the integer or floating point sum of the two
-operands.</p>
+<p>The value produced is the integer sum of the two operands.</p>
 
-<p>If an integer sum has unsigned overflow, the result returned is the
+<p>If the sum has unsigned overflow, the result returned is the
 mathematical result modulo 2<sup>n</sup>, where n is the bit width of
 the result.</p>
 
@@ -2527,6 +2529,39 @@ instruction is appropriate for both sign
 </div>
 <!-- _______________________________________________________________________ -->
 <div class="doc_subsubsection">
+  <a name="i_fadd">'<tt>fadd</tt>' Instruction</a>
+</div>
+
+<div class="doc_text">
+
+<h5>Syntax:</h5>
+
+<pre>
+  &lt;result&gt; = fadd &lt;ty&gt; &lt;op1&gt;, &lt;op2&gt;   <i>; yields {ty}:result</i>
+</pre>
+
+<h5>Overview:</h5>
+
+<p>The '<tt>fadd</tt>' instruction returns the sum of its two operands.</p>
+
+<h5>Arguments:</h5>
+
+<p>The two arguments to the '<tt>fadd</tt>' instruction must be
+<a href="#t_floating">floating point</a> or <a href="#t_vector">vector</a> of
+floating point values. Both arguments must have identical types.</p>
+
+<h5>Semantics:</h5>
+
+<p>The value produced is the floating point sum of the two operands.</p>
+
+<h5>Example:</h5>
+
+<pre>
+  &lt;result&gt; = fadd float 4.0, %var          <i>; yields {float}:result = 4.0 + %var</i>
+</pre>
+</div>
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">
    <a name="i_sub">'<tt>sub</tt>' Instruction</a>
 </div>
 
@@ -2550,16 +2585,14 @@ representations.</p>
 <h5>Arguments:</h5>
 
 <p>The two arguments to the '<tt>sub</tt>' instruction must be <a
- href="#t_integer">integer</a>, <a href="#t_floating">floating point</a>,
- or <a href="#t_vector">vector</a> values.  Both arguments must have identical
- types.</p>
+ href="#t_integer">integer</a> or <a href="#t_vector">vector</a> of
+ integer values.  Both arguments must have identical types.</p>
 
 <h5>Semantics:</h5>
 
-<p>The value produced is the integer or floating point difference of
-the two operands.</p>
+<p>The value produced is the integer difference of the two operands.</p>
 
-<p>If an integer difference has unsigned overflow, the result returned is the
+<p>If the difference has unsigned overflow, the result returned is the
 mathematical result modulo 2<sup>n</sup>, where n is the bit width of
 the result.</p>
 
@@ -2575,6 +2608,45 @@ instruction is appropriate for both sign
 
 <!-- _______________________________________________________________________ -->
 <div class="doc_subsubsection">
+   <a name="i_fsub">'<tt>fsub</tt>' Instruction</a>
+</div>
+
+<div class="doc_text">
+
+<h5>Syntax:</h5>
+
+<pre>
+  &lt;result&gt; = fsub &lt;ty&gt; &lt;op1&gt;, &lt;op2&gt;   <i>; yields {ty}:result</i>
+</pre>
+
+<h5>Overview:</h5>
+
+<p>The '<tt>fsub</tt>' instruction returns the difference of its two
+operands.</p>
+
+<p>Note that the '<tt>fsub</tt>' instruction is used to represent the
+'<tt>fneg</tt>' instruction present in most other intermediate
+representations.</p>
+
+<h5>Arguments:</h5>
+
+<p>The two arguments to the '<tt>fsub</tt>' instruction must be <a
+ <a href="#t_floating">floating point</a> or <a href="#t_vector">vector</a>
+ of floating point values.  Both arguments must have identical types.</p>
+
+<h5>Semantics:</h5>
+
+<p>The value produced is the floating point difference of the two operands.</p>
+
+<h5>Example:</h5>
+<pre>
+  &lt;result&gt; = fsub float 4.0, %var           <i>; yields {float}:result = 4.0 - %var</i>
+  &lt;result&gt; = fsub float -0.0, %val          <i>; yields {float}:result = -%var</i>
+</pre>
+</div>
+
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">
   <a name="i_mul">'<tt>mul</tt>' Instruction</a>
 </div>
 
@@ -2590,16 +2662,14 @@ operands.</p>
 <h5>Arguments:</h5>
 
 <p>The two arguments to the '<tt>mul</tt>' instruction must be <a
-href="#t_integer">integer</a>, <a href="#t_floating">floating point</a>,
-or <a href="#t_vector">vector</a> values.  Both arguments must have identical
-types.</p>
+href="#t_integer">integer</a> or <a href="#t_vector">vector</a> of integer
+values.  Both arguments must have identical types.</p>
  
 <h5>Semantics:</h5>
 
-<p>The value produced is the integer or floating point product of the
-two operands.</p>
+<p>The value produced is the integer product of the two operands.</p>
 
-<p>If the result of an integer multiplication has unsigned overflow,
+<p>If the result of the multiplication has unsigned overflow,
 the result returned is the mathematical result modulo 
 2<sup>n</sup>, where n is the bit width of the result.</p>
 <p>Because LLVM integers use a two's complement representation, and the
@@ -2614,6 +2684,35 @@ width of the full product.</p>
 </div>
 
 <!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">
+  <a name="i_fmul">'<tt>fmul</tt>' Instruction</a>
+</div>
+
+<div class="doc_text">
+
+<h5>Syntax:</h5>
+<pre>  &lt;result&gt; = fmul &lt;ty&gt; &lt;op1&gt;, &lt;op2&gt;   <i>; yields {ty}:result</i>
+</pre>
+<h5>Overview:</h5>
+<p>The  '<tt>fmul</tt>' instruction returns the product of its two
+operands.</p>
+
+<h5>Arguments:</h5>
+
+<p>The two arguments to the '<tt>fmul</tt>' instruction must be
+<a href="#t_floating">floating point</a> or <a href="#t_vector">vector</a>
+of floating point values.  Both arguments must have identical types.</p>
+
+<h5>Semantics:</h5>
+
+<p>The value produced is the floating point product of the two operands.</p>
+
+<h5>Example:</h5>
+<pre>  &lt;result&gt; = fmul float 4.0, %var          <i>; yields {float}:result = 4.0 * %var</i>
+</pre>
+</div>
+
+<!-- _______________________________________________________________________ -->
 <div class="doc_subsubsection"> <a name="i_udiv">'<tt>udiv</tt>' Instruction
 </a></div>
 <div class="doc_text">
@@ -7110,7 +7209,7 @@ declare void @llvm.stackprotector( i8* &
 
   <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: 2009-06-03 12:20:10 +0200 (Wed, 03 Jun 2009) $
+  Last modified: $Date: 2009-06-05 00:49:04 +0200 (Fri, 05 Jun 2009) $
 </address>
 
 </body>

Modified: vendor/llvm/dist/include/llvm-c/lto.h
==============================================================================
--- vendor/llvm/dist/include/llvm-c/lto.h	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/include/llvm-c/lto.h	Sat Jun  6 08:20:29 2009	(r193574)
@@ -19,6 +19,8 @@
 #include <stdbool.h>
 #include <stddef.h>
 
+#define LTO_API_VERSION 3
+
 typedef enum {
     LTO_SYMBOL_ALIGNMENT_MASK         = 0x0000001F,    /* log2 of alignment */
     LTO_SYMBOL_PERMISSIONS_MASK       = 0x000000E0,    
@@ -208,6 +210,14 @@ lto_codegen_set_gcc_path(lto_code_gen_t 
 
 
 /**
+ * Sets the location of the assembler tool to run. If not set, libLTO
+ * will use gcc to invoke the assembler.
+ */
+extern void
+lto_codegen_set_assembler_path(lto_code_gen_t cg, const char* path);
+
+
+/**
  * 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/Analysis/Dominators.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/Dominators.h	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/include/llvm/Analysis/Dominators.h	Sat Jun  6 08:20:29 2009	(r193574)
@@ -270,12 +270,17 @@ protected:
         NewBBIDom = PredBlocks[i];
         break;
       }
-    assert(i != PredBlocks.size() && "No reachable preds?");
+
+    // It's possible that none of the predecessors of NewBB are reachable;
+    // in that case, NewBB itself is unreachable, so nothing needs to be
+    // changed.
+    if (!NewBBIDom)
+      return;
+
     for (i = i + 1; i < PredBlocks.size(); ++i) {
       if (DT.isReachableFromEntry(PredBlocks[i]))
         NewBBIDom = DT.findNearestCommonDominator(NewBBIDom, PredBlocks[i]);
     }
-    assert(NewBBIDom && "No immediate dominator found??");
 
     // Create the new dominator tree node... and set the idom of NewBB.
     DomTreeNodeBase<NodeT> *NewBBNode = DT.addNewBlock(NewBB, NewBBIDom);

Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h	Sat Jun  6 08:20:29 2009	(r193574)
@@ -60,12 +60,7 @@ namespace llvm {
     /// canonical induction variable of the specified type for the specified
     /// loop (inserting one if there is none).  A canonical induction variable
     /// starts at zero and steps by one on each iteration.
-    Value *getOrInsertCanonicalInductionVariable(const Loop *L, const Type *Ty){
-      assert(Ty->isInteger() && "Can only insert integer induction variables!");
-      SCEVHandle H = SE.getAddRecExpr(SE.getIntegerSCEV(0, Ty),
-                                      SE.getIntegerSCEV(1, Ty), L);
-      return expand(H);
-    }
+    Value *getOrInsertCanonicalInductionVariable(const Loop *L, const Type *Ty);
 
     /// addInsertedValue - Remember the specified instruction as being the
     /// canonical form for the specified SCEV.

Modified: vendor/llvm/dist/include/llvm/Attributes.h
==============================================================================
--- vendor/llvm/dist/include/llvm/Attributes.h	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/include/llvm/Attributes.h	Sat Jun  6 08:20:29 2009	(r193574)
@@ -54,13 +54,17 @@ const Attributes Alignment = 31<<16; ///
                                      // stored as log2 of alignment with +1 bias
                                      // 0 means unaligned different from align 1
 const Attributes NoCapture = 1<<21; ///< Function creates no aliases of pointer
+const Attributes NoRedZone = 1<<22; /// disable redzone
+const Attributes NoImplicitFloat = 1<<23; /// disable implicit floating point
+                                          /// instructions.
 
 /// @brief Attributes that only apply to function parameters.
 const Attributes ParameterOnly = ByVal | Nest | StructRet | NoCapture;
 
 /// @brief Attributes that only apply to function.
 const Attributes FunctionOnly = NoReturn | NoUnwind | ReadNone | ReadOnly | 
-  NoInline | AlwaysInline | OptimizeForSize | StackProtect | StackProtectReq;
+  NoInline | AlwaysInline | OptimizeForSize | StackProtect | StackProtectReq |
+  NoRedZone | NoImplicitFloat;
 
 /// @brief Parameter attributes that do not apply to vararg call arguments.
 const Attributes VarArgsIncompatible = StructRet;

Modified: vendor/llvm/dist/include/llvm/CodeGen/JITCodeEmitter.h
==============================================================================
--- vendor/llvm/dist/include/llvm/CodeGen/JITCodeEmitter.h	Sat Jun  6 07:29:19 2009	(r193573)
+++ vendor/llvm/dist/include/llvm/CodeGen/JITCodeEmitter.h	Sat Jun  6 08:20:29 2009	(r193574)
@@ -89,7 +89,7 @@ public:
   /// emitByte - This callback is invoked when a byte needs to be written to the
   /// output stream.
   ///
-  void emitByte(unsigned char B) {
+  void emitByte(uint8_t B) {
     if (CurBufferPtr != BufferEnd)
       *CurBufferPtr++ = B;
   }
@@ -99,10 +99,10 @@ public:
   ///
   void emitWordLE(unsigned W) {
     if (4 <= BufferEnd-CurBufferPtr) {
-      *CurBufferPtr++ = (unsigned char)(W >>  0);
-      *CurBufferPtr++ = (unsigned char)(W >>  8);
-      *CurBufferPtr++ = (unsigned char)(W >> 16);
-      *CurBufferPtr++ = (unsigned char)(W >> 24);
+      *CurBufferPtr++ = (uint8_t)(W >>  0);
+      *CurBufferPtr++ = (uint8_t)(W >>  8);
+      *CurBufferPtr++ = (uint8_t)(W >> 16);
+      *CurBufferPtr++ = (uint8_t)(W >> 24);
     } else {
       CurBufferPtr = BufferEnd;
     }
@@ -113,10 +113,10 @@ public:
   ///
   void emitWordBE(unsigned W) {
     if (4 <= BufferEnd-CurBufferPtr) {
-      *CurBufferPtr++ = (unsigned char)(W >> 24);
-      *CurBufferPtr++ = (unsigned char)(W >> 16);
-      *CurBufferPtr++ = (unsigned char)(W >>  8);
-      *CurBufferPtr++ = (unsigned char)(W >>  0);
+      *CurBufferPtr++ = (uint8_t)(W >> 24);
+      *CurBufferPtr++ = (uint8_t)(W >> 16);
+      *CurBufferPtr++ = (uint8_t)(W >>  8);
+      *CurBufferPtr++ = (uint8_t)(W >>  0);
     } else {
       CurBufferPtr = BufferEnd;
     }
@@ -127,14 +127,14 @@ public:
   ///
   void emitDWordLE(uint64_t W) {
     if (8 <= BufferEnd-CurBufferPtr) {
-      *CurBufferPtr++ = (unsigned char)(W >>  0);
-      *CurBufferPtr++ = (unsigned char)(W >>  8);
-      *CurBufferPtr++ = (unsigned char)(W >> 16);
-      *CurBufferPtr++ = (unsigned char)(W >> 24);
-      *CurBufferPtr++ = (unsigned char)(W >> 32);
-      *CurBufferPtr++ = (unsigned char)(W >> 40);
-      *CurBufferPtr++ = (unsigned char)(W >> 48);
-      *CurBufferPtr++ = (unsigned char)(W >> 56);
+      *CurBufferPtr++ = (uint8_t)(W >>  0);
+      *CurBufferPtr++ = (uint8_t)(W >>  8);
+      *CurBufferPtr++ = (uint8_t)(W >> 16);
+      *CurBufferPtr++ = (uint8_t)(W >> 24);
+      *CurBufferPtr++ = (uint8_t)(W >> 32);
+      *CurBufferPtr++ = (uint8_t)(W >> 40);
+      *CurBufferPtr++ = (uint8_t)(W >> 48);

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


More information about the svn-src-all mailing list