From owner-svn-src-vendor@FreeBSD.ORG Sun Mar 21 10:49:06 2010 Return-Path: Delivered-To: svn-src-vendor@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 183FF1065672; Sun, 21 Mar 2010 10:49:06 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 029838FC17; Sun, 21 Mar 2010 10:49:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o2LAn5x4075767; Sun, 21 Mar 2010 10:49:05 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o2LAn5DN075752; Sun, 21 Mar 2010 10:49:05 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201003211049.o2LAn5DN075752@svn.freebsd.org> From: Roman Divacky Date: Sun, 21 Mar 2010 10:49:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r205407 - in vendor/llvm/dist: . autoconf docs include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/CodeGen include/llvm/MC include/llvm/Support include/llvm/Target lib/Anal... X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 21 Mar 2010 10:49:06 -0000 Author: rdivacky Date: Sun Mar 21 10:49:05 2010 New Revision: 205407 URL: http://svn.freebsd.org/changeset/base/205407 Log: Update LLVM to r99115. Added: vendor/llvm/dist/include/llvm/MC/MCObjectWriter.h vendor/llvm/dist/include/llvm/MC/MachObjectWriter.h vendor/llvm/dist/lib/MC/MCObjectWriter.cpp vendor/llvm/dist/lib/MC/MachObjectWriter.cpp vendor/llvm/dist/test/CodeGen/ARM/2010-03-18-ldm-rtrn.ll vendor/llvm/dist/test/CodeGen/Generic/dbg_value.ll vendor/llvm/dist/test/CodeGen/X86/2010-03-17-ISelBug.ll vendor/llvm/dist/test/DebugInfo/2010-03-19-DbgDeclare.ll vendor/llvm/dist/test/FrontendObjC/2010-03-17-StructRef.m vendor/llvm/dist/test/MC/AsmParser/X86/x86_64-encoding.s vendor/llvm/dist/test/MC/AsmParser/X86/x86_64-incl_decl.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-diff-relocs.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-reloc-offsets.s vendor/llvm/dist/test/MC/MachO/darwin-x86_64-reloc.s vendor/llvm/dist/test/MC/MachO/x86_32-optimal_nop.s Deleted: vendor/llvm/dist/test/MC/MachO/Darwin/dg.exp vendor/llvm/dist/test/MC/MachO/Darwin/optimal_nop.s vendor/llvm/dist/test/MC/MachO/Darwin/x86_32_diff_as.s Modified: vendor/llvm/dist/CMakeLists.txt vendor/llvm/dist/Makefile.rules vendor/llvm/dist/autoconf/configure.ac vendor/llvm/dist/configure vendor/llvm/dist/docs/ReleaseNotes.html vendor/llvm/dist/docs/SourceLevelDebugging.html vendor/llvm/dist/include/llvm/ADT/BitVector.h vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h vendor/llvm/dist/include/llvm/ADT/FoldingSet.h vendor/llvm/dist/include/llvm/ADT/SmallVector.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h vendor/llvm/dist/include/llvm/CodeGen/MachineJumpTableInfo.h vendor/llvm/dist/include/llvm/Instructions.h vendor/llvm/dist/include/llvm/IntrinsicsX86.td vendor/llvm/dist/include/llvm/MC/MCAssembler.h vendor/llvm/dist/include/llvm/MC/MCCodeEmitter.h vendor/llvm/dist/include/llvm/MC/MCContext.h vendor/llvm/dist/include/llvm/MC/MCStreamer.h vendor/llvm/dist/include/llvm/MC/MCSymbol.h vendor/llvm/dist/include/llvm/MC/MCValue.h vendor/llvm/dist/include/llvm/Support/Allocator.h vendor/llvm/dist/include/llvm/Support/RecyclingAllocator.h vendor/llvm/dist/include/llvm/Target/Target.td vendor/llvm/dist/include/llvm/Target/TargetAsmBackend.h vendor/llvm/dist/include/llvm/Target/TargetLowering.h vendor/llvm/dist/include/llvm/Target/TargetOptions.h vendor/llvm/dist/include/llvm/Target/TargetRegistry.h vendor/llvm/dist/include/llvm/Target/TargetSelectionDAG.td vendor/llvm/dist/lib/Analysis/ConstantFolding.cpp vendor/llvm/dist/lib/Analysis/LoopDependenceAnalysis.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolution.cpp vendor/llvm/dist/lib/Analysis/ScalarEvolutionExpander.cpp vendor/llvm/dist/lib/Bitcode/Reader/BitcodeReader.cpp vendor/llvm/dist/lib/Bitcode/Writer/BitcodeWriter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/AsmPrinter.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm/dist/lib/CodeGen/BranchFolding.cpp vendor/llvm/dist/lib/CodeGen/GCStrategy.cpp vendor/llvm/dist/lib/CodeGen/LiveIntervalAnalysis.cpp vendor/llvm/dist/lib/CodeGen/MachineFunction.cpp vendor/llvm/dist/lib/CodeGen/RegAllocLocal.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAG.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp vendor/llvm/dist/lib/CodeGen/SimpleRegisterCoalescing.cpp vendor/llvm/dist/lib/CodeGen/TailDuplication.cpp vendor/llvm/dist/lib/MC/CMakeLists.txt vendor/llvm/dist/lib/MC/MCAsmStreamer.cpp vendor/llvm/dist/lib/MC/MCAssembler.cpp vendor/llvm/dist/lib/MC/MCCodeEmitter.cpp vendor/llvm/dist/lib/MC/MCContext.cpp vendor/llvm/dist/lib/MC/MCExpr.cpp vendor/llvm/dist/lib/MC/MCMachOStreamer.cpp vendor/llvm/dist/lib/MC/MCValue.cpp vendor/llvm/dist/lib/MC/TargetAsmBackend.cpp vendor/llvm/dist/lib/Support/FoldingSet.cpp vendor/llvm/dist/lib/System/Unix/Signals.inc vendor/llvm/dist/lib/Target/ARM/ARMAddressingModes.h vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMBaseInstrInfo.h vendor/llvm/dist/lib/Target/ARM/ARMBaseRegisterInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMCodeEmitter.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelLowering.h 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/ARMInstrThumb.td vendor/llvm/dist/lib/Target/ARM/ARMInstrThumb2.td vendor/llvm/dist/lib/Target/ARM/ARMInstrVFP.td vendor/llvm/dist/lib/Target/ARM/ARMLoadStoreOptimizer.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetMachine.h vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp vendor/llvm/dist/lib/Target/ARM/AsmPrinter/ARMInstPrinter.h vendor/llvm/dist/lib/Target/ARM/NEONPreAllocPass.cpp vendor/llvm/dist/lib/Target/ARM/Thumb2ITBlockPass.cpp vendor/llvm/dist/lib/Target/Alpha/AlphaInstrFormats.td vendor/llvm/dist/lib/Target/Alpha/AlphaInstrInfo.td vendor/llvm/dist/lib/Target/Blackfin/BlackfinInstrInfo.td vendor/llvm/dist/lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp vendor/llvm/dist/lib/Target/CBackend/CBackend.cpp vendor/llvm/dist/lib/Target/CellSPU/SPUInstrInfo.td vendor/llvm/dist/lib/Target/CellSPU/SPUNodes.td vendor/llvm/dist/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsInstrInfo.td vendor/llvm/dist/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp vendor/llvm/dist/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h vendor/llvm/dist/lib/Target/PIC16/PIC16Section.h vendor/llvm/dist/lib/Target/PowerPC/PPCInstrInfo.td vendor/llvm/dist/lib/Target/PowerPC/PPCTargetMachine.cpp vendor/llvm/dist/lib/Target/Sparc/SparcInstrInfo.td vendor/llvm/dist/lib/Target/SystemZ/SystemZInstrInfo.td vendor/llvm/dist/lib/Target/TargetData.cpp vendor/llvm/dist/lib/Target/TargetLoweringObjectFile.cpp vendor/llvm/dist/lib/Target/X86/AsmParser/X86AsmParser.cpp vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86Disassembler.cpp vendor/llvm/dist/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c vendor/llvm/dist/lib/Target/X86/X86.td vendor/llvm/dist/lib/Target/X86/X86AsmBackend.cpp vendor/llvm/dist/lib/Target/X86/X86FastISel.cpp vendor/llvm/dist/lib/Target/X86/X86FixupKinds.h vendor/llvm/dist/lib/Target/X86/X86ISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/X86/X86ISelLowering.cpp vendor/llvm/dist/lib/Target/X86/X86Instr64bit.td vendor/llvm/dist/lib/Target/X86/X86InstrFPStack.td vendor/llvm/dist/lib/Target/X86/X86InstrInfo.td vendor/llvm/dist/lib/Target/X86/X86InstrSSE.td vendor/llvm/dist/lib/Target/X86/X86MCCodeEmitter.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.cpp vendor/llvm/dist/lib/Target/X86/X86Subtarget.h vendor/llvm/dist/lib/Target/X86/X86TargetMachine.cpp vendor/llvm/dist/lib/Target/XCore/XCoreInstrInfo.td vendor/llvm/dist/lib/Transforms/IPO/GlobalOpt.cpp vendor/llvm/dist/lib/Transforms/InstCombine/InstCombineCalls.cpp vendor/llvm/dist/lib/Transforms/Scalar/IndVarSimplify.cpp vendor/llvm/dist/lib/Transforms/Scalar/SimplifyLibCalls.cpp vendor/llvm/dist/lib/VMCore/AsmWriter.cpp vendor/llvm/dist/lib/VMCore/Verifier.cpp vendor/llvm/dist/test/CodeGen/ARM/2009-10-27-double-align.ll vendor/llvm/dist/test/CodeGen/ARM/2009-10-30.ll vendor/llvm/dist/test/CodeGen/ARM/arm-negative-stride.ll vendor/llvm/dist/test/CodeGen/ARM/globals.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt5.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt6.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt7.ll vendor/llvm/dist/test/CodeGen/ARM/ifcvt8.ll vendor/llvm/dist/test/CodeGen/ARM/ldm.ll vendor/llvm/dist/test/CodeGen/ARM/ldrd.ll vendor/llvm/dist/test/CodeGen/ARM/str_pre-2.ll vendor/llvm/dist/test/CodeGen/ARM/tls2.ll vendor/llvm/dist/test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll vendor/llvm/dist/test/CodeGen/Thumb2/large-stack.ll vendor/llvm/dist/test/CodeGen/Thumb2/ldr-str-imm12.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldr.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-ldrh.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-str.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-str_pre.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-strb.ll vendor/llvm/dist/test/CodeGen/Thumb2/thumb2-strh.ll vendor/llvm/dist/test/CodeGen/X86/2007-01-08-InstrSched.ll vendor/llvm/dist/test/CodeGen/X86/gather-addresses.ll vendor/llvm/dist/test/CodeGen/X86/lsr-reuse.ll vendor/llvm/dist/test/CodeGen/X86/sibcall.ll vendor/llvm/dist/test/CodeGen/X86/sse2.ll vendor/llvm/dist/test/CodeGen/X86/sse3.ll vendor/llvm/dist/test/CodeGen/X86/sse42.ll vendor/llvm/dist/test/CodeGen/X86/widen_load-2.ll vendor/llvm/dist/test/LLVMC/AppendCmdHook.td vendor/llvm/dist/test/LLVMC/C++/dash-x.cpp vendor/llvm/dist/test/LLVMC/C++/hello.cpp vendor/llvm/dist/test/LLVMC/C++/together.cpp vendor/llvm/dist/test/LLVMC/C/emit-llvm.c vendor/llvm/dist/test/LLVMC/C/hello.c vendor/llvm/dist/test/LLVMC/C/include.c vendor/llvm/dist/test/LLVMC/C/opt-test.c vendor/llvm/dist/test/LLVMC/C/sink.c vendor/llvm/dist/test/LLVMC/C/wall.c vendor/llvm/dist/test/LLVMC/EmptyCompilationGraph.td vendor/llvm/dist/test/LLVMC/EnvParentheses.td vendor/llvm/dist/test/LLVMC/ExternOptions.td vendor/llvm/dist/test/LLVMC/ForwardAs.td vendor/llvm/dist/test/LLVMC/ForwardTransformedValue.td vendor/llvm/dist/test/LLVMC/ForwardValue.td vendor/llvm/dist/test/LLVMC/HookWithArguments.td vendor/llvm/dist/test/LLVMC/HookWithInFile.td vendor/llvm/dist/test/LLVMC/Init.td vendor/llvm/dist/test/LLVMC/MultiValuedOption.td vendor/llvm/dist/test/LLVMC/MultipleCompilationGraphs.td vendor/llvm/dist/test/LLVMC/NoActions.td vendor/llvm/dist/test/LLVMC/NoCompilationGraph.td vendor/llvm/dist/test/LLVMC/OneOrMore.td vendor/llvm/dist/test/LLVMC/OptionPreprocessor.td vendor/llvm/dist/test/LLVMC/TestWarnings.td vendor/llvm/dist/test/MC/AsmParser/X86/x86_32-bit_cat.s vendor/llvm/dist/test/MC/AsmParser/X86/x86_32-encoding.s vendor/llvm/dist/test/MC/AsmParser/X86/x86_64-new-encoder.s vendor/llvm/dist/test/MC/MachO/reloc.s vendor/llvm/dist/test/TableGen/2003-08-03-PassCode.td vendor/llvm/dist/test/TableGen/2006-09-18-LargeInt.td vendor/llvm/dist/test/TableGen/AnonDefinitionOnDemand.td vendor/llvm/dist/test/TableGen/DagDefSubst.td vendor/llvm/dist/test/TableGen/DagIntSubst.td vendor/llvm/dist/test/TableGen/DefmInherit.td vendor/llvm/dist/test/TableGen/ForwardRef.td vendor/llvm/dist/test/TableGen/GeneralList.td vendor/llvm/dist/test/TableGen/IntBitInit.td vendor/llvm/dist/test/TableGen/LazyChange.td vendor/llvm/dist/test/TableGen/ListArgs.td vendor/llvm/dist/test/TableGen/ListArgsSimple.td vendor/llvm/dist/test/TableGen/ListConversion.td vendor/llvm/dist/test/TableGen/ListSlices.td vendor/llvm/dist/test/TableGen/MultiClass.td vendor/llvm/dist/test/TableGen/MultiClassDefName.td vendor/llvm/dist/test/TableGen/MultiClassInherit.td vendor/llvm/dist/test/TableGen/Slice.td vendor/llvm/dist/test/TableGen/String.td vendor/llvm/dist/test/TableGen/SuperSubclassSameName.td vendor/llvm/dist/test/TableGen/TargetInstrInfo.td vendor/llvm/dist/test/TableGen/TargetInstrSpec.td vendor/llvm/dist/test/TableGen/TemplateArgRename.td vendor/llvm/dist/test/TableGen/Tree.td vendor/llvm/dist/test/TableGen/TreeNames.td vendor/llvm/dist/test/TableGen/UnsetBitInit.td vendor/llvm/dist/test/TableGen/cast.td vendor/llvm/dist/test/TableGen/eq.td vendor/llvm/dist/test/TableGen/foreach.td vendor/llvm/dist/test/TableGen/if.td vendor/llvm/dist/test/TableGen/lisp.td vendor/llvm/dist/test/TableGen/nameconcat.td vendor/llvm/dist/test/TableGen/strconcat.td vendor/llvm/dist/test/TableGen/subst.td vendor/llvm/dist/test/TableGen/subst2.td vendor/llvm/dist/test/lit.cfg vendor/llvm/dist/tools/bugpoint/BugDriver.cpp vendor/llvm/dist/tools/bugpoint/BugDriver.h vendor/llvm/dist/tools/bugpoint/OptimizerDriver.cpp vendor/llvm/dist/tools/bugpoint/bugpoint.cpp vendor/llvm/dist/tools/edis/Makefile vendor/llvm/dist/tools/llvm-mc/Disassembler.cpp vendor/llvm/dist/tools/llvm-mc/llvm-mc.cpp vendor/llvm/dist/unittests/ADT/APFloatTest.cpp vendor/llvm/dist/unittests/ADT/APIntTest.cpp vendor/llvm/dist/unittests/ADT/SmallVectorTest.cpp vendor/llvm/dist/unittests/Support/LeakDetectorTest.cpp vendor/llvm/dist/unittests/VMCore/InstructionsTest.cpp vendor/llvm/dist/utils/FileCheck/FileCheck.cpp vendor/llvm/dist/utils/NewNightlyTest.pl vendor/llvm/dist/utils/TableGen/AsmMatcherEmitter.cpp vendor/llvm/dist/utils/TableGen/AsmWriterEmitter.cpp vendor/llvm/dist/utils/TableGen/ClangDiagnosticsEmitter.cpp vendor/llvm/dist/utils/TableGen/CodeEmitterGen.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.cpp vendor/llvm/dist/utils/TableGen/CodeGenDAGPatterns.h vendor/llvm/dist/utils/TableGen/CodeGenInstruction.cpp vendor/llvm/dist/utils/TableGen/CodeGenInstruction.h vendor/llvm/dist/utils/TableGen/CodeGenTarget.cpp vendor/llvm/dist/utils/TableGen/CodeGenTarget.h vendor/llvm/dist/utils/TableGen/DAGISelEmitter.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcher.cpp vendor/llvm/dist/utils/TableGen/DAGISelMatcherGen.cpp vendor/llvm/dist/utils/TableGen/DisassemblerEmitter.cpp vendor/llvm/dist/utils/TableGen/EDEmitter.cpp vendor/llvm/dist/utils/TableGen/FastISelEmitter.cpp vendor/llvm/dist/utils/TableGen/InstrEnumEmitter.cpp vendor/llvm/dist/utils/TableGen/InstrInfoEmitter.cpp vendor/llvm/dist/utils/TableGen/Record.cpp vendor/llvm/dist/utils/buildit/build_llvm vendor/llvm/dist/utils/lit/lit/ExampleTests/Clang/lit.cfg vendor/llvm/dist/utils/lit/lit/LitConfig.py vendor/llvm/dist/utils/lit/lit/LitFormats.py vendor/llvm/dist/utils/lit/lit/TestFormats.py vendor/llvm/dist/utils/lit/lit/TestRunner.py vendor/llvm/dist/utils/lit/lit/lit.py Modified: vendor/llvm/dist/CMakeLists.txt ============================================================================== --- vendor/llvm/dist/CMakeLists.txt Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/CMakeLists.txt Sun Mar 21 10:49:05 2010 (r205407) @@ -217,7 +217,9 @@ if( MSVC ) # List of valid CRTs for MSVC set(MSVC_CRT MD - MDd) + MDd + MT + MTd) set(LLVM_USE_CRT "" CACHE STRING "Specify VC++ CRT to use for debug/release configurations.") add_llvm_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS ) Modified: vendor/llvm/dist/Makefile.rules ============================================================================== --- vendor/llvm/dist/Makefile.rules Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/Makefile.rules Sun Mar 21 10:49:05 2010 (r205407) @@ -578,8 +578,6 @@ endif ifeq ($(TARGET_OS),Darwin) ifneq ($(ARCH),ARM) TargetCommonOpts += -mmacosx-version-min=$(DARWIN_VERSION) - else - TargetCommonOpts += -marm endif endif Modified: vendor/llvm/dist/autoconf/configure.ac ============================================================================== --- vendor/llvm/dist/autoconf/configure.ac Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/autoconf/configure.ac Sun Mar 21 10:49:05 2010 (r205407) @@ -31,12 +31,12 @@ dnl=== dnl===-----------------------------------------------------------------------=== dnl Initialize autoconf and define the package name, version number and dnl email address for reporting bugs. -AC_INIT([[llvm]],[[2.7svn]],[llvmbugs@cs.uiuc.edu]) +AC_INIT([[llvm]],[[2.8svn]],[llvmbugs@cs.uiuc.edu]) dnl Provide a copyright substitution and ensure the copyright notice is included dnl in the output of --version option of the generated configure script. -AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign."]) -AC_COPYRIGHT([Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign.]) +AC_SUBST(LLVM_COPYRIGHT,["Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign."]) +AC_COPYRIGHT([Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign.]) dnl Indicate that we require autoconf 2.59 or later. Ths is needed because we dnl use some autoconf macros only available in 2.59. @@ -62,6 +62,41 @@ dnl Configure all of the projects presen dnl just AC_CONFIG_SUBDIRS on the set of directories in projects that have a dnl configure script, that usage of the AC_CONFIG_SUBDIRS macro is deprecated. dnl Instead we match on the known projects. + +dnl +dnl One tricky part of doing this is that some projects depend upon other +dnl projects. For example, several projects rely upon the LLVM test suite. +dnl We want to configure those projects first so that their object trees are +dnl created before running the configure scripts of projects that depend upon +dnl them. +dnl + +dnl Several projects use llvm-gcc, so configure that first +if test -d ${srcdir}/projects/llvm-gcc ; then + AC_CONFIG_SUBDIRS([projects/llvm-gcc]) +fi + +dnl Several projects use the LLVM test suite, so configure it next. +if test -d ${srcdir}/projects/test-suite ; then + AC_CONFIG_SUBDIRS([projects/test-suite]) +fi + +dnl llvm-test is the old name of the test-suite, kept here for backwards +dnl compatibility +if test -d ${srcdir}/projects/llvm-test ; then + AC_CONFIG_SUBDIRS([projects/llvm-test]) +fi + +dnl Some projects use poolalloc; configure that next +if test -d ${srcdir}/projects/poolalloc ; then + AC_CONFIG_SUBDIRS([projects/poolalloc]) +fi + +if test -d ${srcdir}/projects/llvm-poolalloc ; then + AC_CONFIG_SUBDIRS([projects/llvm-poolalloc]) +fi + +dnl Check for all other projects for i in `ls ${srcdir}/projects` do if test -d ${srcdir}/projects/${i} ; then @@ -70,16 +105,9 @@ do sample) AC_CONFIG_SUBDIRS([projects/sample]) ;; privbracket) AC_CONFIG_SUBDIRS([projects/privbracket]) ;; llvm-stacker) AC_CONFIG_SUBDIRS([projects/llvm-stacker]) ;; - # llvm-test is the old name of the test-suite, kept here for backwards - # compatibility - llvm-test) AC_CONFIG_SUBDIRS([projects/llvm-test]) ;; - test-suite) AC_CONFIG_SUBDIRS([projects/test-suite]) ;; llvm-reopt) AC_CONFIG_SUBDIRS([projects/llvm-reopt]);; - llvm-gcc) AC_CONFIG_SUBDIRS([projects/llvm-gcc]) ;; llvm-java) AC_CONFIG_SUBDIRS([projects/llvm-java]) ;; llvm-tv) AC_CONFIG_SUBDIRS([projects/llvm-tv]) ;; - llvm-poolalloc) AC_CONFIG_SUBDIRS([projects/llvm-poolalloc]) ;; - poolalloc) AC_CONFIG_SUBDIRS([projects/poolalloc]) ;; safecode) AC_CONFIG_SUBDIRS([projects/safecode]) ;; llvm-kernel) AC_CONFIG_SUBDIRS([projects/llvm-kernel]) ;; *) Modified: vendor/llvm/dist/configure ============================================================================== --- vendor/llvm/dist/configure Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/configure Sun Mar 21 10:49:05 2010 (r205407) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.60 for llvm 2.7svn. +# Generated by GNU Autoconf 2.60 for llvm 2.8svn. # # Report bugs to . # @@ -9,7 +9,7 @@ # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. # -# Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign. +# Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## @@ -561,8 +561,8 @@ SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='llvm' PACKAGE_TARNAME='-llvm-' -PACKAGE_VERSION='2.7svn' -PACKAGE_STRING='llvm 2.7svn' +PACKAGE_VERSION='2.8svn' +PACKAGE_STRING='llvm 2.8svn' PACKAGE_BUGREPORT='llvmbugs@cs.uiuc.edu' ac_unique_file="lib/VMCore/Module.cpp" @@ -802,17 +802,17 @@ CPP CXX CXXFLAGS CCC' -ac_subdirs_all='projects/sample +ac_subdirs_all='projects/llvm-gcc +projects/test-suite +projects/llvm-test +projects/poolalloc +projects/llvm-poolalloc +projects/sample projects/privbracket projects/llvm-stacker -projects/llvm-test -projects/test-suite projects/llvm-reopt -projects/llvm-gcc projects/llvm-java projects/llvm-tv -projects/llvm-poolalloc -projects/poolalloc projects/safecode projects/llvm-kernel' @@ -1316,7 +1316,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures llvm 2.7svn to adapt to many kinds of systems. +\`configure' configures llvm 2.8svn to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1382,7 +1382,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of llvm 2.7svn:";; + short | recursive ) echo "Configuration of llvm 2.8svn:";; esac cat <<\_ACEOF @@ -1533,7 +1533,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -llvm configure 2.7svn +llvm configure 2.8svn generated by GNU Autoconf 2.60 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, @@ -1541,7 +1541,7 @@ Copyright (C) 1992, 1993, 1994, 1995, 19 This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. -Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign. +Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign. _ACEOF exit fi @@ -1549,7 +1549,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by llvm $as_me 2.7svn, which was +It was created by llvm $as_me 2.8svn, which was generated by GNU Autoconf 2.60. Invocation command line was $ $0 $@ @@ -1903,7 +1903,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -LLVM_COPYRIGHT="Copyright (c) 2003-2009 University of Illinois at Urbana-Champaign." +LLVM_COPYRIGHT="Copyright (c) 2003-2010 University of Illinois at Urbana-Champaign." @@ -1951,6 +1951,33 @@ echo "$as_me: error: Already configured fi fi + + +if test -d ${srcdir}/projects/llvm-gcc ; then + subdirs="$subdirs projects/llvm-gcc" + +fi + +if test -d ${srcdir}/projects/test-suite ; then + subdirs="$subdirs projects/test-suite" + +fi + +if test -d ${srcdir}/projects/llvm-test ; then + subdirs="$subdirs projects/llvm-test" + +fi + +if test -d ${srcdir}/projects/poolalloc ; then + subdirs="$subdirs projects/poolalloc" + +fi + +if test -d ${srcdir}/projects/llvm-poolalloc ; then + subdirs="$subdirs projects/llvm-poolalloc" + +fi + for i in `ls ${srcdir}/projects` do if test -d ${srcdir}/projects/${i} ; then @@ -1962,24 +1989,12 @@ do ;; llvm-stacker) subdirs="$subdirs projects/llvm-stacker" ;; - # llvm-test is the old name of the test-suite, kept here for backwards - # compatibility - llvm-test) subdirs="$subdirs projects/llvm-test" - ;; - test-suite) subdirs="$subdirs projects/test-suite" - ;; llvm-reopt) subdirs="$subdirs projects/llvm-reopt" ;; - llvm-gcc) subdirs="$subdirs projects/llvm-gcc" - ;; llvm-java) subdirs="$subdirs projects/llvm-java" ;; llvm-tv) subdirs="$subdirs projects/llvm-tv" ;; - llvm-poolalloc) subdirs="$subdirs projects/llvm-poolalloc" - ;; - poolalloc) subdirs="$subdirs projects/poolalloc" - ;; safecode) subdirs="$subdirs projects/safecode" ;; llvm-kernel) subdirs="$subdirs projects/llvm-kernel" @@ -11136,7 +11151,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by llvm $as_me 2.7svn, which was +This file was extended by llvm $as_me 2.8svn, which was generated by GNU Autoconf 2.60. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20661,7 +20676,7 @@ Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -llvm config.status 2.7svn +llvm config.status 2.8svn configured by $0, generated by GNU Autoconf 2.60, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Modified: vendor/llvm/dist/docs/ReleaseNotes.html ============================================================================== --- vendor/llvm/dist/docs/ReleaseNotes.html Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/docs/ReleaseNotes.html Sun Mar 21 10:49:05 2010 (r205407) @@ -10,6 +10,9 @@
LLVM 2.7 Release Notes
+ +
  1. Introduction
  2. Sub-project Status Update
  3. @@ -48,14 +51,18 @@ href="http://llvm.org/releases/">LLVM re

    For more information about LLVM, including information about the latest release, please check out the main LLVM web site. If you have questions or comments, the LLVM Developer's Mailing -List is a good place to send them.

    +href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM Developer's +Mailing List is a good place to send them.

    Note that if you are reading this file from a Subversion checkout or the main LLVM web page, this document applies to the next release, not the current one. To see the release notes for a specific release, please see the releases page.

    + +

    FIXME: llvm.org moved to new server, mention new logo, Ted and Doug new code + owners.

    + @@ -66,6 +73,7 @@ Almost dead code. llvm/Analysis/PointerTracking.h => Edwin wants this, consider for 2.8. ABCD, SCCVN, GEPSplitterPass MSIL backend? + lib/Transforms/Utils/SSI.cpp -> ABCD depends on it. --> @@ -78,8 +86,6 @@ Almost dead code. loop dependence analysis ELF Writer? How stable?
  4. PostRA scheduler improvements, ARM adoption (David Goodwin).
  5. - 2.7 supports the GDB 7.0 jit interfaces for debug info. - 2.7 eliminates ADT/iterator.h --> @@ -123,6 +128,7 @@ development. Here we include updates on
    • ...
    • +include a link to cxx_compatibility.html
    @@ -139,7 +145,7 @@ href="http://clang.llvm.org/StaticAnalys in C and Objective-C programs. The tool performs checks to find bugs that occur on a specific path within a program.

    -

    In the LLVM 2.7 time-frame, the analyzer core has ...

    +

    In the LLVM 2.7 time-frame, the analyzer core has sprouted legs and...

    @@ -192,24 +198,6 @@ License, a "BSD-style" license.

    - -
    -

    -The new LLVM KLEE project is a symbolic -execution framework for programs in LLVM bitcode form. KLEE tries to -symbolically evaluate "all" paths through the application and records state -transitions that lead to fault states. This allows it to construct testcases -that lead to faults and can even be used to verify algorithms. For more -details, please see the OSDI 2008 paper about -KLEE.

    - -
    - - - @@ -257,6 +245,8 @@ The LLVM Machine Code (MC) Toolkit proje
    +Need update. +

    @@ -278,6 +269,8 @@ a counter based JIT, type feedback and s

    +Need update. +

    @@ -308,9 +301,9 @@ built-in list and matrix support (includ an easy-to-use C interface. The interpreter uses LLVM as a backend to JIT-compile Pure programs to fast native code.

    -

    Pure versions ??? and later have been tested and are known to work with -LLVM 2.7 (and continue to work with older LLVM releases >= 2.3 as well). -

    +

    Pure versions 0.43 and later have been tested and are known to work with +LLVM 2.7 (and continue to work with older LLVM releases >= 2.5).

    + @@ -321,6 +314,8 @@ LLVM 2.7 (and continue to work with olde

    +Need update. +

    @@ -342,7 +337,8 @@ fully featured as the original DMD compi Roadsend PHP (rphp) is an open source implementation of the PHP programming language that uses LLVM for its optimizer, JIT and static compiler. This is a -reimplementation of an earlier project that is now based on LLVM.

    +reimplementation of an earlier project that is now based on LLVM. +

    @@ -355,7 +351,8 @@ reimplementation of an earlier project t Unladen Swallow is a branch of Python intended to be fully compatible and significantly faster. It uses LLVM's optimization passes and JIT -compiler.

    +compiler. +

    @@ -365,10 +362,13 @@ compiler.

    +Need update. + +

    @@ -378,13 +378,15 @@ code.

    +Need update. +

    @@ -418,6 +420,54 @@ in this section.
  6. ...
  7. +Extensible metadata solid. + +Debug info improvements: using metadata instead of llvm.dbg global variables. +This brings several enhancements including improved compile times. + +New instruction selector. +GHC Haskell ABI/ calling conv support. +Pre-Alpha support for unions in IR. +New InlineHint and StackAlignment function attributes +Code generator MC'ized except for debug info and EH. +New SCEV AA pass: -scev-aa +Inliner reuses arrays allocas when inlining multiple callers to reduce stack usage. +MC encoding and disassembler apis. +Optimal Edge Profiling? +Instcombine is now a library, has its own IRBuilder to simplify itself. +New llvm/Support/Regex.h API. FileCheck now does regex's +Many subtle pointer invalidation bugs in Callgraph have been fixed and it now uses asserting value handles. +MC Disassembler (with blog post), MCInstPrinter. Many X86 backend and AsmPrinter simplifications +Various tools like llc and opt now read either .ll or .bc files as input. +Malloc and free instructions got removed. +compiler-rt support for ARM. +completely llvm-gcc NEON support. +Can transcode from GAS to intel syntax with "llvm-mc foo.s -output-asm-variant=1" +JIT debug information with GDB 7.0 +New CodeGen Level CSE +CMake can now run tests, what other improvements? +ARM/Thumb using reg scavenging for stack object address materialization (PEI). +New SSAUpdater and MachineSSAUpdater classes for unstructured ssa updating, + changed jump threading, GVN, etc to use it which simplified them and speed + them up. +Combiner-AA improvements, why not on by default? +Pre-regalloc tail duplication +x86 sibcall optimization +New LSR with full strength reduction mode +The most awesome sext / zext optimization pass. ? + + + +CondProp pass removed (functionality merged into jump threading). +AndersAA got removed (from 2.7 or mainline?) +PredSimplify, LoopVR, GVNPRE got removed. +LLVM command line tools now overwrite their output, before they would only do this with -f. +DOUT removed, use DEBUG(errs() instead. +Much stuff converted to use raw_ostream instead of std::ostream. +TargetAsmInfo renamed to MCAsmInfo +llvm/ADT/iterator.h gone. + + @@ -699,13 +749,7 @@ listed by component. If you run into a href="http://llvm.org/bugs/">LLVM bug database and submit a bug if there isn't already one.

    -
      -
    • The llvm-gcc bootstrap will fail with some versions of binutils (e.g. 2.15) - with a message of "Error: can not do 8 - byte pc-relative relocation" when building C++ code. We intend to - fix this on mainline, but a workaround is to upgrade to binutils 2.17 or - later.
    • - +
      • LLVM will not correctly compile on Solaris and/or OpenSolaris using the stock GCC 3.x.x series 'out the box', See: Broken versions of GCC and other tools. @@ -731,10 +775,11 @@ components, please contact us on the LLVMdev list.

          -
        • The MSIL, Alpha, SPU, MIPS, PIC16, Blackfin, MSP430 and SystemZ backends are - experimental.
        • +
        • The MSIL, Alpha, SPU, MIPS, PIC16, Blackfin, MSP430, SystemZ and MicroBlaze + backends are experimental.
        • The llc "-filetype=asm" (the default) is the only - supported value for this option. The ELF writer is experimental.
        • + supported value for this option. The MachO writer is experimental, and + works much better in mainline SVN.
        @@ -865,7 +910,7 @@ appropriate nops inserted to ensure rest
        @@ -883,24 +928,6 @@ appropriate nops inserted to ensure rest - -
        - -

        The C++ front-end is considered to be fully -tested and works for a number of non-trivial programs, including LLVM -itself, Qt, Mozilla, etc.

        - -
          -
        • Exception handling works well on the X86 and PowerPC targets. Currently - only Linux and Darwin targets are supported (both 32 and 64 bit).
        • -
        - -
        - - - @@ -997,7 +1024,7 @@ lists.

        src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"> LLVM Compiler Infrastructure
        - Last modified: $Date: 2010-03-01 20:29:17 +0100 (Mon, 01 Mar 2010) $ + Last modified: $Date: 2010-03-19 04:18:05 +0100 (Fri, 19 Mar 2010) $ Modified: vendor/llvm/dist/docs/SourceLevelDebugging.html ============================================================================== --- vendor/llvm/dist/docs/SourceLevelDebugging.html Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/docs/SourceLevelDebugging.html Sun Mar 21 10:49:05 2010 (r205407) @@ -237,7 +237,7 @@ height="369">

        LLVM debugging information has been carefully designed to make it possible for the optimizer to optimize the program and debugging information without necessarily having to know anything about debugging information. In - particular, te use of metadadta avoids duplicated dubgging information from + particular, the use of metadata avoids duplicated debugging information from the beginning, and the global dead code elimination pass automatically deletes debugging information for a function if it decides to delete the function.

        @@ -370,7 +370,7 @@ height="369">
        -

        These descriptors contain informations for a file. Global variables and top +

        These descriptors contain information for a file. Global variables and top level functions would be defined using this context.k File descriptors also provide context for source line correspondence.

        @@ -967,7 +967,7 @@ call void @llvm.dbg.declare({ }* %2, met -

        Here !14 indicates that Z is declaread at line number 5 and +

        Here !14 indicates that Z is declared at line number 5 and column number 9 inside of lexical scope !13. The lexical scope itself resides inside of lexical scope !1 described above.

        @@ -1762,7 +1762,7 @@ enum Trees { Chris Lattner
        LLVM Compiler Infrastructure
        - Last modified: $Date: 2010-03-09 01:44:10 +0100 (Tue, 09 Mar 2010) $ + Last modified: $Date: 2010-03-17 16:01:50 +0100 (Wed, 17 Mar 2010) $ Modified: vendor/llvm/dist/include/llvm/ADT/BitVector.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/BitVector.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/ADT/BitVector.h Sun Mar 21 10:49:05 2010 (r205407) @@ -329,7 +329,8 @@ public: Size = RHS.size(); unsigned RHSWords = NumBitWords(Size); if (Size <= Capacity * BITWORD_SIZE) { - std::copy(RHS.Bits, &RHS.Bits[RHSWords], Bits); + if (Size) + std::copy(RHS.Bits, &RHS.Bits[RHSWords], Bits); clear_unused_bits(); return *this; } Modified: vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/ADT/EquivalenceClasses.h Sun Mar 21 10:49:05 2010 (r205407) @@ -16,6 +16,7 @@ #define LLVM_ADT_EQUIVALENCECLASSES_H #include "llvm/System/DataTypes.h" +#include #include namespace llvm { Modified: vendor/llvm/dist/include/llvm/ADT/FoldingSet.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/FoldingSet.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/ADT/FoldingSet.h Sun Mar 21 10:49:05 2010 (r205407) @@ -23,6 +23,7 @@ namespace llvm { class APFloat; class APInt; + class BumpPtrAllocator; /// This folding set used for two purposes: /// 1. Given information about a node we want to create, look up the unique @@ -198,6 +199,23 @@ template struct FoldingSetTr }; //===--------------------------------------------------------------------===// +/// FoldingSetNodeIDRef - This class describes a reference to an interned +/// FoldingSetNodeID, which can be a useful to store node id data rather +/// than using plain FoldingSetNodeIDs, since the 32-element SmallVector +/// is often much larger than necessary, and the possibility of heap +/// allocation means it requires a non-trivial destructor call. +class FoldingSetNodeIDRef { + unsigned* Data; + size_t Size; +public: + FoldingSetNodeIDRef() : Data(0), Size(0) {} + FoldingSetNodeIDRef(unsigned *D, size_t S) : Data(D), Size(S) {} + + unsigned *getData() const { return Data; } + size_t getSize() const { return Size; } +}; + +//===--------------------------------------------------------------------===// /// FoldingSetNodeID - This class is used to gather all the unique data bits of /// a node. When all the bits are gathered this class is used to produce a /// hash value for the node. @@ -210,11 +228,8 @@ class FoldingSetNodeID { public: FoldingSetNodeID() {} - /// getRawData - Return the ith entry in the Bits data. - /// - unsigned getRawData(unsigned i) const { - return Bits[i]; - } + FoldingSetNodeID(FoldingSetNodeIDRef Ref) + : Bits(Ref.getData(), Ref.getData() + Ref.getSize()) {} /// Add* - Add various data types to Bit data. /// @@ -242,6 +257,11 @@ public: /// operator== - Used to compare two nodes to each other. /// bool operator==(const FoldingSetNodeID &RHS) const; + + /// Intern - Copy this node's data to a memory region allocated from the + /// given allocator and return a FoldingSetNodeIDRef describing the + /// interned data. + FoldingSetNodeIDRef Intern(BumpPtrAllocator &Allocator) const; }; // Convenience type to hide the implementation of the folding set. Modified: vendor/llvm/dist/include/llvm/ADT/SmallVector.h ============================================================================== --- vendor/llvm/dist/include/llvm/ADT/SmallVector.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/ADT/SmallVector.h Sun Mar 21 10:49:05 2010 (r205407) @@ -57,17 +57,18 @@ protected: // something else. An array of char would work great, but might not be // aligned sufficiently. Instead, we either use GCC extensions, or some // number of union instances for the space, which guarantee maximal alignment. + struct U { #ifdef __GNUC__ - typedef char U; - U FirstEl __attribute__((aligned)); + char X __attribute__((aligned)); #else - union U { - double D; - long double LD; - long long L; - void *P; - } FirstEl; + union { + double D; + long double LD; + long long L; + void *P; + } X; #endif + } FirstEl; // Space after 'FirstEl' is clobbered, do not add any instance vars after it. protected: Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolution.h Sun Mar 21 10:49:05 2010 (r205407) @@ -49,7 +49,11 @@ namespace llvm { /// are opaque objects that the client is not allowed to do much with /// directly. /// - class SCEV : public FastFoldingSetNode { + class SCEV : public FoldingSetNode { + /// FastID - A reference to an Interned FoldingSetNodeID for this node. + /// The ScalarEvolution's BumpPtrAllocator holds the data. + FoldingSetNodeIDRef FastID; + // The SCEV baseclass this node corresponds to const unsigned short SCEVType; @@ -64,11 +68,14 @@ namespace llvm { protected: virtual ~SCEV(); public: - explicit SCEV(const FoldingSetNodeID &ID, unsigned SCEVTy) : - FastFoldingSetNode(ID), SCEVType(SCEVTy), SubclassData(0) {} + explicit SCEV(const FoldingSetNodeIDRef ID, unsigned SCEVTy) : + FastID(ID), SCEVType(SCEVTy), SubclassData(0) {} unsigned getSCEVType() const { return SCEVType; } + /// Profile - FoldingSet support. + void Profile(FoldingSetNodeID& ID) { ID = FastID; } + /// isLoopInvariant - Return true if the value of this SCEV is unchanging in /// the specified loop. virtual bool isLoopInvariant(const Loop *L) const = 0; Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpander.h Sun Mar 21 10:49:05 2010 (r205407) @@ -79,12 +79,7 @@ namespace llvm { /// expandCodeFor - Insert code to directly compute the specified SCEV /// expression into the program. The inserted code is inserted into the /// specified block. - Value *expandCodeFor(const SCEV *SH, const Type *Ty, Instruction *I) { - BasicBlock::iterator IP = I; - while (isInsertedInstruction(IP)) ++IP; - Builder.SetInsertPoint(IP->getParent(), IP); - return expandCodeFor(SH, Ty); - } + Value *expandCodeFor(const SCEV *SH, const Type *Ty, Instruction *I); /// setIVIncInsertPos - Set the current IV increment loop and position. void setIVIncInsertPos(const Loop *L, Instruction *Pos) { @@ -109,6 +104,13 @@ namespace llvm { /// is useful for late optimization passes. void disableCanonicalMode() { CanonicalMode = false; } + /// clearInsertPoint - Clear the current insertion point. This is useful + /// if the instruction that had been serving as the insertion point may + /// have been deleted. + void clearInsertPoint() { + Builder.ClearInsertionPoint(); + } + private: LLVMContext &getContext() const { return SE.getContext(); } Modified: vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h ============================================================================== --- vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h Sun Mar 21 10:44:18 2010 (r205406) +++ vendor/llvm/dist/include/llvm/Analysis/ScalarEvolutionExpressions.h Sun Mar 21 10:49:05 2010 (r205407) @@ -37,7 +37,7 @@ namespace llvm { friend class ScalarEvolution; ConstantInt *V; - SCEVConstant(const FoldingSetNodeID &ID, ConstantInt *v) : + SCEVConstant(const FoldingSetNodeIDRef ID, ConstantInt *v) : SCEV(ID, scConstant), V(v) {} public: ConstantInt *getValue() const { return V; } @@ -81,7 +81,7 @@ namespace llvm { const SCEV *Op; const Type *Ty; - SCEVCastExpr(const FoldingSetNodeID &ID, + SCEVCastExpr(const FoldingSetNodeIDRef ID, unsigned SCEVTy, const SCEV *op, const Type *ty); public: @@ -120,7 +120,7 @@ namespace llvm { class SCEVTruncateExpr : public SCEVCastExpr { friend class ScalarEvolution; - SCEVTruncateExpr(const FoldingSetNodeID &ID, + SCEVTruncateExpr(const FoldingSetNodeIDRef ID, const SCEV *op, const Type *ty); public: @@ -140,7 +140,7 @@ namespace llvm { class SCEVZeroExtendExpr : public SCEVCastExpr { friend class ScalarEvolution; - SCEVZeroExtendExpr(const FoldingSetNodeID &ID, + SCEVZeroExtendExpr(const FoldingSetNodeIDRef ID, const SCEV *op, const Type *ty); public: @@ -160,7 +160,7 @@ namespace llvm { class SCEVSignExtendExpr : public SCEVCastExpr { friend class ScalarEvolution; - SCEVSignExtendExpr(const FoldingSetNodeID &ID, + SCEVSignExtendExpr(const FoldingSetNodeIDRef ID, const SCEV *op, const Type *ty); public: @@ -180,25 +180,27 @@ namespace llvm { /// class SCEVNAryExpr : public SCEV { protected: - SmallVector Operands; - - SCEVNAryExpr(const FoldingSetNodeID &ID, - enum SCEVTypes T, const SmallVectorImpl &ops) - : SCEV(ID, T), Operands(ops.begin(), ops.end()) {} + // Since SCEVs are immutable, ScalarEvolution allocates operand + // arrays with its SCEVAllocator, so this class just needs a simple + // pointer rather than a more elaborate vector-like data structure. + // This also avoids the need for a non-trivial destructor. + const SCEV *const *Operands; + size_t NumOperands; + + SCEVNAryExpr(const FoldingSetNodeIDRef ID, + enum SCEVTypes T, const SCEV *const *O, size_t N) + : SCEV(ID, T), Operands(O), NumOperands(N) {} public: - unsigned getNumOperands() const { return (unsigned)Operands.size(); } + size_t getNumOperands() const { return NumOperands; } const SCEV *getOperand(unsigned i) const { - assert(i < Operands.size() && "Operand index out of range!"); + assert(i < NumOperands && "Operand index out of range!"); return Operands[i]; } - const SmallVectorImpl &getOperands() const { - return Operands; - } - typedef SmallVectorImpl::const_iterator op_iterator; - op_iterator op_begin() const { return Operands.begin(); } - op_iterator op_end() const { return Operands.end(); } + typedef const SCEV *const *op_iterator; + op_iterator op_begin() const { return Operands; } + op_iterator op_end() const { return Operands + NumOperands; } virtual bool isLoopInvariant(const Loop *L) const { for (unsigned i = 0, e = getNumOperands(); i != e; ++i) @@ -260,10 +262,9 @@ namespace llvm { /// class SCEVCommutativeExpr : public SCEVNAryExpr { protected: - SCEVCommutativeExpr(const FoldingSetNodeID &ID, - enum SCEVTypes T, - const SmallVectorImpl &ops) - : SCEVNAryExpr(ID, T, ops) {} + SCEVCommutativeExpr(const FoldingSetNodeIDRef ID, + enum SCEVTypes T, const SCEV *const *O, size_t N) + : SCEVNAryExpr(ID, T, O, N) {} public: virtual const char *getOperationStr() const = 0; @@ -287,9 +288,9 @@ namespace llvm { class SCEVAddExpr : public SCEVCommutativeExpr { friend class ScalarEvolution; - SCEVAddExpr(const FoldingSetNodeID &ID, - const SmallVectorImpl &ops) - : SCEVCommutativeExpr(ID, scAddExpr, ops) { + SCEVAddExpr(const FoldingSetNodeIDRef ID, + const SCEV *const *O, size_t N) + : SCEVCommutativeExpr(ID, scAddExpr, O, N) { } public: @@ -315,9 +316,9 @@ namespace llvm { class SCEVMulExpr : public SCEVCommutativeExpr { friend class ScalarEvolution; - SCEVMulExpr(const FoldingSetNodeID &ID, - const SmallVectorImpl &ops) - : SCEVCommutativeExpr(ID, scMulExpr, ops) { + SCEVMulExpr(const FoldingSetNodeIDRef ID, + const SCEV *const *O, size_t N) + : SCEVCommutativeExpr(ID, scMulExpr, O, N) { } public: @@ -339,7 +340,7 @@ namespace llvm { const SCEV *LHS; const SCEV *RHS; - SCEVUDivExpr(const FoldingSetNodeID &ID, const SCEV *lhs, const SCEV *rhs) + SCEVUDivExpr(const FoldingSetNodeIDRef ID, const SCEV *lhs, const SCEV *rhs) : SCEV(ID, scUDivExpr), LHS(lhs), RHS(rhs) {} public: @@ -389,10 +390,10 @@ namespace llvm { const Loop *L; - SCEVAddRecExpr(const FoldingSetNodeID &ID, - const SmallVectorImpl &ops, const Loop *l) - : SCEVNAryExpr(ID, scAddRecExpr, ops), L(l) { - for (size_t i = 0, e = Operands.size(); i != e; ++i) + SCEVAddRecExpr(const FoldingSetNodeIDRef ID, *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***