mirror of
https://github.com/Cisco-Talos/clamav.git
synced 2026-02-06 13:01:36 -05:00
c19477ec23b955d70f7fe71a00a01e203bf5ea09
7 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
79a10b488f |
Merge LLVM 2.8 from upstream
Conflicts: libclamav/c++/llvm/CMakeLists.txt libclamav/c++/llvm/README.txt libclamav/c++/llvm/autoconf/configure.ac libclamav/c++/llvm/bindings/ada/llvm/llvm.ads libclamav/c++/llvm/bindings/ocaml/Makefile.ocaml libclamav/c++/llvm/bindings/ocaml/llvm/llvm.ml libclamav/c++/llvm/bindings/ocaml/llvm/llvm.mli libclamav/c++/llvm/bindings/ocaml/llvm/llvm_ocaml.c libclamav/c++/llvm/configure libclamav/c++/llvm/docs/AliasAnalysis.html libclamav/c++/llvm/docs/BitCodeFormat.html libclamav/c++/llvm/docs/CMake.html libclamav/c++/llvm/docs/CodeGenerator.html libclamav/c++/llvm/docs/CommandGuide/bugpoint.pod libclamav/c++/llvm/docs/CommandGuide/index.html libclamav/c++/llvm/docs/CommandGuide/lit.pod libclamav/c++/llvm/docs/CommandGuide/lli.pod libclamav/c++/llvm/docs/DebuggingJITedCode.html libclamav/c++/llvm/docs/DeveloperPolicy.html libclamav/c++/llvm/docs/ExceptionHandling.html libclamav/c++/llvm/docs/FAQ.html libclamav/c++/llvm/docs/GCCFEBuildInstrs.html libclamav/c++/llvm/docs/GarbageCollection.html libclamav/c++/llvm/docs/GetElementPtr.html libclamav/c++/llvm/docs/GettingStarted.html libclamav/c++/llvm/docs/GoldPlugin.html libclamav/c++/llvm/docs/HowToReleaseLLVM.html libclamav/c++/llvm/docs/HowToSubmitABug.html libclamav/c++/llvm/docs/LangRef.html libclamav/c++/llvm/docs/Lexicon.html libclamav/c++/llvm/docs/LinkTimeOptimization.html libclamav/c++/llvm/docs/MakefileGuide.html libclamav/c++/llvm/docs/Passes.html libclamav/c++/llvm/docs/ProgrammersManual.html libclamav/c++/llvm/docs/ReleaseNotes.html libclamav/c++/llvm/docs/SourceLevelDebugging.html libclamav/c++/llvm/docs/TableGenFundamentals.html libclamav/c++/llvm/docs/TestingGuide.html libclamav/c++/llvm/docs/WritingAnLLVMBackend.html libclamav/c++/llvm/docs/WritingAnLLVMPass.html libclamav/c++/llvm/docs/tutorial/LangImpl3.html libclamav/c++/llvm/docs/tutorial/LangImpl4.html libclamav/c++/llvm/docs/tutorial/LangImpl5.html libclamav/c++/llvm/docs/tutorial/LangImpl6.html libclamav/c++/llvm/docs/tutorial/LangImpl7.html libclamav/c++/llvm/docs/tutorial/OCamlLangImpl3.html libclamav/c++/llvm/docs/tutorial/OCamlLangImpl4.html libclamav/c++/llvm/docs/tutorial/OCamlLangImpl5.html libclamav/c++/llvm/docs/tutorial/OCamlLangImpl6.html libclamav/c++/llvm/docs/tutorial/OCamlLangImpl7.html libclamav/c++/llvm/examples/BrainF/BrainF.cpp libclamav/c++/llvm/examples/ExceptionDemo/ExceptionDemo.cpp libclamav/c++/llvm/examples/ExceptionDemo/Makefile libclamav/c++/llvm/examples/Fibonacci/fibonacci.cpp libclamav/c++/llvm/examples/Kaleidoscope/Chapter3/toy.cpp libclamav/c++/llvm/examples/Kaleidoscope/Chapter4/toy.cpp libclamav/c++/llvm/examples/Kaleidoscope/Chapter5/toy.cpp libclamav/c++/llvm/examples/Kaleidoscope/Chapter6/toy.cpp libclamav/c++/llvm/examples/Kaleidoscope/Chapter7/toy.cpp libclamav/c++/llvm/examples/Makefile libclamav/c++/llvm/include/llvm/ADT/SmallVector.h libclamav/c++/llvm/include/llvm/Config/config.h.in libclamav/c++/llvm/include/llvm/Target/TargetLowering.h libclamav/c++/llvm/lib/Analysis/PointerTracking.cpp libclamav/c++/llvm/lib/Archive/Archive.cpp libclamav/c++/llvm/lib/Archive/ArchiveInternals.h libclamav/c++/llvm/lib/Archive/ArchiveReader.cpp libclamav/c++/llvm/lib/Archive/ArchiveWriter.cpp libclamav/c++/llvm/lib/Archive/CMakeLists.txt libclamav/c++/llvm/lib/CodeGen/LiveInterval.cpp libclamav/c++/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp libclamav/c++/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp libclamav/c++/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp libclamav/c++/llvm/lib/CodeGen/Spiller.cpp libclamav/c++/llvm/lib/CompilerDriver/Action.cpp libclamav/c++/llvm/lib/CompilerDriver/BuiltinOptions.cpp libclamav/c++/llvm/lib/CompilerDriver/CompilationGraph.cpp libclamav/c++/llvm/lib/CompilerDriver/Main.cpp libclamav/c++/llvm/lib/CompilerDriver/Makefile libclamav/c++/llvm/lib/CompilerDriver/Tool.cpp libclamav/c++/llvm/lib/ExecutionEngine/JIT/JIT.cpp libclamav/c++/llvm/lib/Linker/LinkItems.cpp libclamav/c++/llvm/lib/Linker/LinkModules.cpp libclamav/c++/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp libclamav/c++/llvm/lib/MC/MCDisassembler/EDDisassembler.h libclamav/c++/llvm/lib/MC/MCDisassembler/EDInst.cpp libclamav/c++/llvm/lib/MC/MCDisassembler/EDInst.h libclamav/c++/llvm/lib/MC/MCDisassembler/EDOperand.h libclamav/c++/llvm/lib/MC/MCDisassembler/EDToken.cpp libclamav/c++/llvm/lib/MC/MCDisassembler/EDToken.h libclamav/c++/llvm/lib/MC/MCParser/AsmLexer.cpp libclamav/c++/llvm/lib/MC/MCParser/AsmParser.cpp libclamav/c++/llvm/lib/MC/MCParser/CMakeLists.txt libclamav/c++/llvm/lib/MC/MCParser/MCAsmLexer.cpp libclamav/c++/llvm/lib/MC/MCParser/MCAsmParser.cpp libclamav/c++/llvm/lib/MC/MCParser/TargetAsmParser.cpp libclamav/c++/llvm/lib/System/DynamicLibrary.cpp libclamav/c++/llvm/lib/Target/ARM/ARMInstrInfo.td libclamav/c++/llvm/lib/Target/ARM/ARMSubtarget.cpp libclamav/c++/llvm/lib/Target/ARM/ARMSubtarget.h libclamav/c++/llvm/lib/Target/ARM/Disassembler/Makefile libclamav/c++/llvm/lib/Target/Alpha/Alpha.td libclamav/c++/llvm/lib/Target/Alpha/AlphaBranchSelector.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaCodeEmitter.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaISelLowering.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaISelLowering.h libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrFormats.td libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.h libclamav/c++/llvm/lib/Target/Alpha/AlphaInstrInfo.td libclamav/c++/llvm/lib/Target/Alpha/AlphaJITInfo.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaLLRP.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaMCAsmInfo.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaMCAsmInfo.h libclamav/c++/llvm/lib/Target/Alpha/AlphaMachineFunctionInfo.h libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaRegisterInfo.h libclamav/c++/llvm/lib/Target/Alpha/AlphaSchedule.td libclamav/c++/llvm/lib/Target/Alpha/AlphaTargetMachine.cpp libclamav/c++/llvm/lib/Target/Alpha/AlphaTargetMachine.h libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp libclamav/c++/llvm/lib/Target/Alpha/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/Alpha/CMakeLists.txt libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/BlackfinAsmPrinter.cpp libclamav/c++/llvm/lib/Target/Blackfin/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelLowering.cpp libclamav/c++/llvm/lib/Target/Blackfin/BlackfinISelLowering.h libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.cpp libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.h libclamav/c++/llvm/lib/Target/Blackfin/BlackfinInstrInfo.td libclamav/c++/llvm/lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp libclamav/c++/llvm/lib/Target/Blackfin/BlackfinIntrinsics.td libclamav/c++/llvm/lib/Target/Blackfin/BlackfinMCAsmInfo.cpp libclamav/c++/llvm/lib/Target/Blackfin/BlackfinMCAsmInfo.h libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.cpp libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.h libclamav/c++/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.td libclamav/c++/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp libclamav/c++/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h libclamav/c++/llvm/lib/Target/Blackfin/CMakeLists.txt libclamav/c++/llvm/lib/Target/CBackend/CBackend.cpp libclamav/c++/llvm/lib/Target/CBackend/CTargetMachine.h libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/CMakeLists.txt libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp libclamav/c++/llvm/lib/Target/CellSPU/CMakeLists.txt libclamav/c++/llvm/lib/Target/CellSPU/CellSDKIntrinsics.td libclamav/c++/llvm/lib/Target/CellSPU/README.txt libclamav/c++/llvm/lib/Target/CellSPU/SPU.h libclamav/c++/llvm/lib/Target/CellSPU/SPU64InstrInfo.td libclamav/c++/llvm/lib/Target/CellSPU/SPUCallingConv.td libclamav/c++/llvm/lib/Target/CellSPU/SPUFrameInfo.h libclamav/c++/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/CellSPU/SPUISelLowering.cpp libclamav/c++/llvm/lib/Target/CellSPU/SPUISelLowering.h libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.h libclamav/c++/llvm/lib/Target/CellSPU/SPUInstrInfo.td libclamav/c++/llvm/lib/Target/CellSPU/SPUMCAsmInfo.cpp libclamav/c++/llvm/lib/Target/CellSPU/SPUMCAsmInfo.h libclamav/c++/llvm/lib/Target/CellSPU/SPUMachineFunction.h libclamav/c++/llvm/lib/Target/CellSPU/SPUMathInstr.td libclamav/c++/llvm/lib/Target/CellSPU/SPUNodes.td libclamav/c++/llvm/lib/Target/CellSPU/SPUOperands.td libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.h libclamav/c++/llvm/lib/Target/CellSPU/SPURegisterInfo.td libclamav/c++/llvm/lib/Target/CellSPU/SPUSchedule.td libclamav/c++/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp libclamav/c++/llvm/lib/Target/CellSPU/SPUTargetMachine.h libclamav/c++/llvm/lib/Target/CppBackend/CPPBackend.cpp libclamav/c++/llvm/lib/Target/CppBackend/CPPTargetMachine.h libclamav/c++/llvm/lib/Target/MBlaze/AsmPrinter/CMakeLists.txt libclamav/c++/llvm/lib/Target/MBlaze/AsmPrinter/MBlazeAsmPrinter.cpp libclamav/c++/llvm/lib/Target/MBlaze/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/MBlaze/CMakeLists.txt libclamav/c++/llvm/lib/Target/MBlaze/MBlaze.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeCallingConv.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeDelaySlotFiller.cpp libclamav/c++/llvm/lib/Target/MBlaze/MBlazeISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/MBlaze/MBlazeISelLowering.cpp libclamav/c++/llvm/lib/Target/MBlaze/MBlazeISelLowering.h libclamav/c++/llvm/lib/Target/MBlaze/MBlazeInstrFPU.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeInstrFSL.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeInstrFormats.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeInstrInfo.cpp libclamav/c++/llvm/lib/Target/MBlaze/MBlazeInstrInfo.h libclamav/c++/llvm/lib/Target/MBlaze/MBlazeInstrInfo.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp libclamav/c++/llvm/lib/Target/MBlaze/MBlazeIntrinsics.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeMCAsmInfo.cpp libclamav/c++/llvm/lib/Target/MBlaze/MBlazeMCAsmInfo.h libclamav/c++/llvm/lib/Target/MBlaze/MBlazeMachineFunction.h libclamav/c++/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.cpp libclamav/c++/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.h libclamav/c++/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeSchedule.td libclamav/c++/llvm/lib/Target/MBlaze/MBlazeTargetMachine.cpp libclamav/c++/llvm/lib/Target/MBlaze/MBlazeTargetMachine.h libclamav/c++/llvm/lib/Target/MBlaze/MBlazeTargetObjectFile.cpp libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/MSP430AsmPrinter.cpp libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/MSP430InstPrinter.cpp libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/MSP430InstPrinter.h libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/MSP430MCInstLower.cpp libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/MSP430MCInstLower.h libclamav/c++/llvm/lib/Target/MSP430/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/MSP430/CMakeLists.txt libclamav/c++/llvm/lib/Target/MSP430/MSP430.td libclamav/c++/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp libclamav/c++/llvm/lib/Target/MSP430/MSP430ISelLowering.h libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrFormats.td libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.h libclamav/c++/llvm/lib/Target/MSP430/MSP430InstrInfo.td libclamav/c++/llvm/lib/Target/MSP430/MSP430MCAsmInfo.cpp libclamav/c++/llvm/lib/Target/MSP430/MSP430MCAsmInfo.h libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.h libclamav/c++/llvm/lib/Target/MSP430/MSP430RegisterInfo.td libclamav/c++/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp libclamav/c++/llvm/lib/Target/MSP430/MSP430TargetMachine.h libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/CMakeLists.txt libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp libclamav/c++/llvm/lib/Target/Mips/CMakeLists.txt libclamav/c++/llvm/lib/Target/Mips/Mips.td libclamav/c++/llvm/lib/Target/Mips/MipsCallingConv.td libclamav/c++/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp libclamav/c++/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/Mips/MipsISelLowering.cpp libclamav/c++/llvm/lib/Target/Mips/MipsISelLowering.h libclamav/c++/llvm/lib/Target/Mips/MipsInstrFPU.td libclamav/c++/llvm/lib/Target/Mips/MipsInstrFormats.td libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.cpp libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.h libclamav/c++/llvm/lib/Target/Mips/MipsInstrInfo.td libclamav/c++/llvm/lib/Target/Mips/MipsMCAsmInfo.cpp libclamav/c++/llvm/lib/Target/Mips/MipsMCAsmInfo.h libclamav/c++/llvm/lib/Target/Mips/MipsMachineFunction.h libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.cpp libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.h libclamav/c++/llvm/lib/Target/Mips/MipsRegisterInfo.td libclamav/c++/llvm/lib/Target/Mips/MipsSchedule.td libclamav/c++/llvm/lib/Target/Mips/MipsTargetMachine.cpp libclamav/c++/llvm/lib/Target/Mips/MipsTargetMachine.h libclamav/c++/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/CMakeLists.txt libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.cpp libclamav/c++/llvm/lib/Target/PIC16/AsmPrinter/PIC16AsmPrinter.h libclamav/c++/llvm/lib/Target/PIC16/CMakeLists.txt libclamav/c++/llvm/lib/Target/PIC16/PIC16.h libclamav/c++/llvm/lib/Target/PIC16/PIC16DebugInfo.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16DebugInfo.h libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelDAGToDAG.h libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelLowering.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16ISelLowering.h libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.h libclamav/c++/llvm/lib/Target/PIC16/PIC16InstrInfo.td libclamav/c++/llvm/lib/Target/PIC16/PIC16MCAsmInfo.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16MCAsmInfo.h libclamav/c++/llvm/lib/Target/PIC16/PIC16MemSelOpt.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.h libclamav/c++/llvm/lib/Target/PIC16/PIC16Passes/PIC16Overlay.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16Passes/PIC16Overlay.h libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16RegisterInfo.h libclamav/c++/llvm/lib/Target/PIC16/PIC16Section.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16Section.h libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetMachine.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetMachine.h libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetObjectFile.cpp libclamav/c++/llvm/lib/Target/PIC16/PIC16TargetObjectFile.h libclamav/c++/llvm/lib/Target/PowerPC/PPCISelLowering.cpp libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/CMakeLists.txt libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp libclamav/c++/llvm/lib/Target/Sparc/CMakeLists.txt libclamav/c++/llvm/lib/Target/Sparc/DelaySlotFiller.cpp libclamav/c++/llvm/lib/Target/Sparc/FPMover.cpp libclamav/c++/llvm/lib/Target/Sparc/Sparc.td libclamav/c++/llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/Sparc/SparcISelLowering.cpp libclamav/c++/llvm/lib/Target/Sparc/SparcISelLowering.h libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.cpp libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.h libclamav/c++/llvm/lib/Target/Sparc/SparcInstrInfo.td libclamav/c++/llvm/lib/Target/Sparc/SparcMCAsmInfo.cpp libclamav/c++/llvm/lib/Target/Sparc/SparcMCAsmInfo.h libclamav/c++/llvm/lib/Target/Sparc/SparcMachineFunctionInfo.h libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.h libclamav/c++/llvm/lib/Target/Sparc/SparcRegisterInfo.td libclamav/c++/llvm/lib/Target/Sparc/SparcTargetMachine.cpp libclamav/c++/llvm/lib/Target/Sparc/SparcTargetMachine.h libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/SystemZ/AsmPrinter/SystemZAsmPrinter.cpp libclamav/c++/llvm/lib/Target/SystemZ/CMakeLists.txt libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp libclamav/c++/llvm/lib/Target/SystemZ/SystemZISelLowering.h libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrBuilder.h libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrFP.td libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.h libclamav/c++/llvm/lib/Target/SystemZ/SystemZInstrInfo.td libclamav/c++/llvm/lib/Target/SystemZ/SystemZMCAsmInfo.cpp libclamav/c++/llvm/lib/Target/SystemZ/SystemZMCAsmInfo.h libclamav/c++/llvm/lib/Target/SystemZ/SystemZOperands.td libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h libclamav/c++/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td libclamav/c++/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp libclamav/c++/llvm/lib/Target/SystemZ/SystemZTargetMachine.h libclamav/c++/llvm/lib/Target/X86/Disassembler/Makefile libclamav/c++/llvm/lib/Target/X86/X86ISelLowering.cpp libclamav/c++/llvm/lib/Target/X86/X86ISelLowering.h libclamav/c++/llvm/lib/Target/X86/X86InstrInfo.td libclamav/c++/llvm/lib/Target/X86/X86InstrSSE.td libclamav/c++/llvm/lib/Target/X86/X86MCAsmInfo.cpp libclamav/c++/llvm/lib/Target/X86/X86MachineFunctionInfo.h libclamav/c++/llvm/lib/Target/X86/X86RegisterInfo.cpp libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/Makefile libclamav/c++/llvm/lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp libclamav/c++/llvm/lib/Target/XCore/CMakeLists.txt libclamav/c++/llvm/lib/Target/XCore/README.txt libclamav/c++/llvm/lib/Target/XCore/XCore.td libclamav/c++/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp libclamav/c++/llvm/lib/Target/XCore/XCoreISelLowering.cpp libclamav/c++/llvm/lib/Target/XCore/XCoreISelLowering.h libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.cpp libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.h libclamav/c++/llvm/lib/Target/XCore/XCoreInstrInfo.td libclamav/c++/llvm/lib/Target/XCore/XCoreMCAsmInfo.cpp libclamav/c++/llvm/lib/Target/XCore/XCoreMCAsmInfo.h libclamav/c++/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp libclamav/c++/llvm/lib/Target/XCore/XCoreRegisterInfo.h libclamav/c++/llvm/lib/Target/XCore/XCoreTargetMachine.cpp libclamav/c++/llvm/lib/Target/XCore/XCoreTargetMachine.h libclamav/c++/llvm/lib/Target/XCore/XCoreTargetObjectFile.cpp libclamav/c++/llvm/lib/VMCore/LLVMContextImpl.cpp libclamav/c++/llvm/lib/VMCore/LLVMContextImpl.h libclamav/c++/llvm/lib/VMCore/Verifier.cpp libclamav/c++/llvm/runtime/Makefile libclamav/c++/llvm/runtime/libprofile/Makefile libclamav/c++/llvm/runtime/libprofile/libprofile.exports libclamav/c++/llvm/test/Analysis/BasicAA/cas.ll libclamav/c++/llvm/test/Analysis/BasicAA/constant-over-index.ll libclamav/c++/llvm/test/Analysis/BasicAA/featuretest.ll libclamav/c++/llvm/test/Analysis/BasicAA/gep-alias.ll libclamav/c++/llvm/test/Analysis/BasicAA/modref.ll libclamav/c++/llvm/test/Analysis/CallGraph/2008-09-09-DirectCall.ll libclamav/c++/llvm/test/Analysis/CallGraph/2008-09-09-UsedByGlobal.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/2008-07-29-SMinExpr.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/2008-11-18-LessThanOrEqual.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/2008-11-18-Stride2.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/2008-12-08-FiniteSGE.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/2008-12-11-SMaxOverflow.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/avoid-smax-1.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/max-trip-count.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/scev-aa.ll libclamav/c++/llvm/test/Analysis/ScalarEvolution/trip-count10.ll libclamav/c++/llvm/test/Archive/README.txt libclamav/c++/llvm/test/Assembler/getelementptr.ll libclamav/c++/llvm/test/Assembler/metadata.ll libclamav/c++/llvm/test/Bindings/Ocaml/analysis.ml libclamav/c++/llvm/test/Bindings/Ocaml/bitreader.ml libclamav/c++/llvm/test/Bindings/Ocaml/bitwriter.ml libclamav/c++/llvm/test/Bindings/Ocaml/executionengine.ml libclamav/c++/llvm/test/Bindings/Ocaml/scalar_opts.ml libclamav/c++/llvm/test/Bindings/Ocaml/target.ml libclamav/c++/llvm/test/Bindings/Ocaml/vmcore.ml libclamav/c++/llvm/test/Bitcode/memcpy.ll libclamav/c++/llvm/test/BugPoint/crash-narrowfunctiontest.ll libclamav/c++/llvm/test/BugPoint/remove_arguments_test.ll libclamav/c++/llvm/test/CodeGen/ARM/armv4.ll libclamav/c++/llvm/test/CodeGen/Blackfin/cmp64.ll libclamav/c++/llvm/test/CodeGen/Blackfin/jumptable.ll libclamav/c++/llvm/test/CodeGen/CellSPU/bss.ll libclamav/c++/llvm/test/CodeGen/CellSPU/call.ll libclamav/c++/llvm/test/CodeGen/CellSPU/call_indirect.ll libclamav/c++/llvm/test/CodeGen/CellSPU/loads.ll libclamav/c++/llvm/test/CodeGen/CellSPU/vecinsert.ll libclamav/c++/llvm/test/CodeGen/MBlaze/cc.ll libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-17-Rot.ll libclamav/c++/llvm/test/CodeGen/MSP430/2009-05-17-Shift.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-06-05-Carry.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-03-SRet.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-05-ByVal.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-06-fadd64.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-FPExtend.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-Float2Int.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-07-IntDoubleConvertions.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-15-InternalConstant.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-15-SmallSection.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-16-SignExtInReg.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-22-Cstpool.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-23-fpcmp.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-29-icmp.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-07-31-fcopysign.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-08-01-AsmInline.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-08-03-fabs64.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-08-04-Bitconvert.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-08-06-Alloca.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-08-07-CC.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-08-07-FPRound.ll libclamav/c++/llvm/test/CodeGen/Mips/2008-08-08-ctlz.ll libclamav/c++/llvm/test/CodeGen/Mips/2009-11-16-CstPoolLoad.ll libclamav/c++/llvm/test/CodeGen/PIC16/2009-07-17-PR4566-pic16.ll libclamav/c++/llvm/test/CodeGen/PIC16/C16-15.ll libclamav/c++/llvm/test/CodeGen/PIC16/global-in-user-section.ll libclamav/c++/llvm/test/CodeGen/PIC16/globals.ll libclamav/c++/llvm/test/CodeGen/PIC16/sext.ll libclamav/c++/llvm/test/CodeGen/SystemZ/00-RetVoid.ll libclamav/c++/llvm/test/CodeGen/SystemZ/01-RetArg.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAdd.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAddImm.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetAnd.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetNeg.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetOr.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetSub.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetSubImm.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetXor.ll libclamav/c++/llvm/test/CodeGen/SystemZ/02-RetXorImm.ll libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemLoadsStores.ll libclamav/c++/llvm/test/CodeGen/SystemZ/05-MemLoadsStores16.ll libclamav/c++/llvm/test/CodeGen/SystemZ/07-BrUnCond.ll libclamav/c++/llvm/test/CodeGen/SystemZ/09-DynamicAlloca.ll libclamav/c++/llvm/test/CodeGen/SystemZ/09-Globals.ll libclamav/c++/llvm/test/CodeGen/SystemZ/10-FuncsPic.ll libclamav/c++/llvm/test/CodeGen/SystemZ/10-GlobalsPic.ll libclamav/c++/llvm/test/CodeGen/SystemZ/11-BSwap.ll libclamav/c++/llvm/test/CodeGen/SystemZ/2009-06-02-Rotate.ll libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-04-Shl32.ll libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-05-Shifts.ll libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-10-BadIncomingArgOffset.ll libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-11-FloatBitConvert.ll libclamav/c++/llvm/test/CodeGen/SystemZ/2009-07-11-InvalidRIISel.ll libclamav/c++/llvm/test/CodeGen/X86/2008-08-06-CmpStride.ll libclamav/c++/llvm/test/CodeGen/X86/2009-02-09-ivs-different-sizes.ll libclamav/c++/llvm/test/CodeGen/X86/GC/dg.exp libclamav/c++/llvm/test/CodeGen/X86/byval7.ll libclamav/c++/llvm/test/CodeGen/X86/change-compare-stride-trickiness-0.ll libclamav/c++/llvm/test/CodeGen/X86/change-compare-stride-trickiness-1.ll libclamav/c++/llvm/test/CodeGen/X86/change-compare-stride-trickiness-2.ll libclamav/c++/llvm/test/CodeGen/X86/crash.ll libclamav/c++/llvm/test/CodeGen/X86/dyn-stackalloc.ll libclamav/c++/llvm/test/CodeGen/X86/sibcall.ll libclamav/c++/llvm/test/CodeGen/XCore/2010-04-07-DbgValueOtherTargets.ll libclamav/c++/llvm/test/CodeGen/XCore/addsub64.ll libclamav/c++/llvm/test/CodeGen/XCore/constants.ll libclamav/c++/llvm/test/CodeGen/XCore/indirectbr.ll libclamav/c++/llvm/test/DebugInfo/2009-10-16-Phi.ll libclamav/c++/llvm/test/DebugInfo/2009-11-03-InsertExtractValue.ll libclamav/c++/llvm/test/DebugInfo/printdbginfo2.ll libclamav/c++/llvm/test/FrontendC++/2009-07-15-LineNumbers.cpp libclamav/c++/llvm/test/FrontendC++/2009-07-16-Using.cpp libclamav/c++/llvm/test/FrontendC++/2009-10-27-crash.cpp libclamav/c++/llvm/test/FrontendC++/2010-02-17-DbgArtificialArg.cpp libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineStorageClassC89.c libclamav/c++/llvm/test/FrontendC/2007-04-11-InlineStorageClassC99.c libclamav/c++/llvm/test/FrontendC/2007-05-16-EmptyStruct.c libclamav/c++/llvm/test/FrontendC/2008-03-24-BitField-And-Alloca.c libclamav/c++/llvm/test/FrontendC/2008-11-02-WeakAlias.c libclamav/c++/llvm/test/FrontendC/2009-01-20-k8.c libclamav/c++/llvm/test/FrontendC/2009-01-21-InvalidIterator.c libclamav/c++/llvm/test/FrontendC/2009-04-22-UnknownSize.c libclamav/c++/llvm/test/FrontendC/2009-06-14-HighlyAligned.c libclamav/c++/llvm/test/FrontendC/2009-12-07-BitFieldAlignment.c libclamav/c++/llvm/test/FrontendC/cstring-align.c libclamav/c++/llvm/test/FrontendC/pr5406.c libclamav/c++/llvm/test/FrontendObjC/2009-08-17-DebugInfo.m libclamav/c++/llvm/test/LLVMC/AppendCmdHook.td libclamav/c++/llvm/test/LLVMC/C++/dash-x.cpp libclamav/c++/llvm/test/LLVMC/C++/hello.cpp libclamav/c++/llvm/test/LLVMC/C++/together.cpp libclamav/c++/llvm/test/LLVMC/C/emit-llvm.c libclamav/c++/llvm/test/LLVMC/C/hello.c libclamav/c++/llvm/test/LLVMC/C/include.c libclamav/c++/llvm/test/LLVMC/C/opt-test.c libclamav/c++/llvm/test/LLVMC/C/sink.c libclamav/c++/llvm/test/LLVMC/C/wall.c libclamav/c++/llvm/test/LLVMC/EmptyCompilationGraph.td libclamav/c++/llvm/test/LLVMC/EnvParentheses.td libclamav/c++/llvm/test/LLVMC/ForwardAs.td libclamav/c++/llvm/test/LLVMC/ForwardTransformedValue.td libclamav/c++/llvm/test/LLVMC/ForwardValue.td libclamav/c++/llvm/test/LLVMC/HookWithArguments.td libclamav/c++/llvm/test/LLVMC/HookWithInFile.td libclamav/c++/llvm/test/LLVMC/Init.td libclamav/c++/llvm/test/LLVMC/MultiValuedOption.td libclamav/c++/llvm/test/LLVMC/MultipleCompilationGraphs.td libclamav/c++/llvm/test/LLVMC/NoActions.td libclamav/c++/llvm/test/LLVMC/NoCompilationGraph.td libclamav/c++/llvm/test/LLVMC/OneOrMore.td libclamav/c++/llvm/test/LLVMC/OptionPreprocessor.td libclamav/c++/llvm/test/LLVMC/OutputSuffixHook.td libclamav/c++/llvm/test/LLVMC/TestWarnings.td libclamav/c++/llvm/test/MC/AsmParser/ELF/dg.exp libclamav/c++/llvm/test/MC/AsmParser/X86/x86_32-bit.s libclamav/c++/llvm/test/MC/AsmParser/X86/x86_32-bit_cat.s libclamav/c++/llvm/test/MC/AsmParser/X86/x86_32-encoding.s libclamav/c++/llvm/test/MC/AsmParser/X86/x86_32-new-encoder.s libclamav/c++/llvm/test/MC/AsmParser/X86/x86_64-new-encoder.s libclamav/c++/llvm/test/MC/AsmParser/X86/x86_instructions.s libclamav/c++/llvm/test/MC/AsmParser/X86/x86_operands.s libclamav/c++/llvm/test/MC/AsmParser/assignment.s libclamav/c++/llvm/test/MC/AsmParser/dg.exp libclamav/c++/llvm/test/MC/AsmParser/directive_abort.s libclamav/c++/llvm/test/MC/AsmParser/directive_desc.s libclamav/c++/llvm/test/MC/AsmParser/directive_subsections_via_symbols.s libclamav/c++/llvm/test/MC/AsmParser/directive_values.s libclamav/c++/llvm/test/MC/AsmParser/directive_zerofill.s libclamav/c++/llvm/test/MC/AsmParser/exprs.s libclamav/c++/llvm/test/MC/AsmParser/hello.s libclamav/c++/llvm/test/MC/Disassembler/dg.exp libclamav/c++/llvm/test/MC/Disassembler/simple-tests.txt libclamav/c++/llvm/test/MC/MachO/reloc.s libclamav/c++/llvm/test/MC/MachO/symbol-flags.s libclamav/c++/llvm/test/MC/MachO/symbols-1.s libclamav/c++/llvm/test/MC/MachO/x86_64-sections.s libclamav/c++/llvm/test/Other/constant-fold-gep.ll libclamav/c++/llvm/test/TableGen/2003-08-03-PassCode.td libclamav/c++/llvm/test/TableGen/2006-09-18-LargeInt.td libclamav/c++/llvm/test/TableGen/AnonDefinitionOnDemand.td libclamav/c++/llvm/test/TableGen/DagDefSubst.td libclamav/c++/llvm/test/TableGen/DagIntSubst.td libclamav/c++/llvm/test/TableGen/DefmInherit.td libclamav/c++/llvm/test/TableGen/ForwardRef.td libclamav/c++/llvm/test/TableGen/GeneralList.td libclamav/c++/llvm/test/TableGen/IntBitInit.td libclamav/c++/llvm/test/TableGen/LazyChange.td libclamav/c++/llvm/test/TableGen/ListArgs.td libclamav/c++/llvm/test/TableGen/ListArgsSimple.td libclamav/c++/llvm/test/TableGen/ListConversion.td libclamav/c++/llvm/test/TableGen/ListSlices.td libclamav/c++/llvm/test/TableGen/MultiClass.td libclamav/c++/llvm/test/TableGen/MultiClassDefName.td libclamav/c++/llvm/test/TableGen/MultiClassInherit.td libclamav/c++/llvm/test/TableGen/Slice.td libclamav/c++/llvm/test/TableGen/String.td libclamav/c++/llvm/test/TableGen/SuperSubclassSameName.td libclamav/c++/llvm/test/TableGen/TargetInstrInfo.td libclamav/c++/llvm/test/TableGen/TargetInstrSpec.td libclamav/c++/llvm/test/TableGen/TemplateArgRename.td libclamav/c++/llvm/test/TableGen/Tree.td libclamav/c++/llvm/test/TableGen/TreeNames.td libclamav/c++/llvm/test/TableGen/UnsetBitInit.td libclamav/c++/llvm/test/TableGen/cast.td libclamav/c++/llvm/test/TableGen/eq.td libclamav/c++/llvm/test/TableGen/foreach.td libclamav/c++/llvm/test/TableGen/if.td libclamav/c++/llvm/test/TableGen/lisp.td libclamav/c++/llvm/test/TableGen/nameconcat.td libclamav/c++/llvm/test/TableGen/strconcat.td libclamav/c++/llvm/test/TableGen/subst.td libclamav/c++/llvm/test/TableGen/subst2.td libclamav/c++/llvm/test/Transforms/ConstProp/constant-expr.ll libclamav/c++/llvm/test/Transforms/ConstantMerge/dont-merge.ll libclamav/c++/llvm/test/Transforms/DeadArgElim/2009-03-17-MRE-Invoke.ll libclamav/c++/llvm/test/Transforms/DeadStoreElimination/crash.ll libclamav/c++/llvm/test/Transforms/GVN/2009-07-13-MemDepSortFail.ll libclamav/c++/llvm/test/Transforms/GVN/invariant-simple.ll libclamav/c++/llvm/test/Transforms/GVN/lifetime-simple.ll libclamav/c++/llvm/test/Transforms/GVN/load-pre-align.ll libclamav/c++/llvm/test/Transforms/GVN/rle.ll libclamav/c++/llvm/test/Transforms/GlobalOpt/2008-07-17-addrspace.ll libclamav/c++/llvm/test/Transforms/GlobalOpt/crash.ll libclamav/c++/llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll libclamav/c++/llvm/test/Transforms/IPConstantProp/2009-09-24-byval-ptr.ll libclamav/c++/llvm/test/Transforms/IndVarSimplify/2009-05-24-useafterfree.ll libclamav/c++/llvm/test/Transforms/IndVarSimplify/casted-argument.ll libclamav/c++/llvm/test/Transforms/IndVarSimplify/floating-point-iv.ll libclamav/c++/llvm/test/Transforms/IndVarSimplify/indirectbr.ll libclamav/c++/llvm/test/Transforms/IndVarSimplify/loop_evaluate10.ll libclamav/c++/llvm/test/Transforms/IndVarSimplify/single-element-range.ll libclamav/c++/llvm/test/Transforms/IndVarSimplify/tripcount_compute.ll libclamav/c++/llvm/test/Transforms/Inline/crash.ll libclamav/c++/llvm/test/Transforms/Inline/externally_available.ll libclamav/c++/llvm/test/Transforms/InstCombine/2007-12-28-IcmpSub2.ll libclamav/c++/llvm/test/Transforms/InstCombine/align-addr.ll libclamav/c++/llvm/test/Transforms/InstCombine/alloca.ll libclamav/c++/llvm/test/Transforms/InstCombine/badmalloc.ll libclamav/c++/llvm/test/Transforms/InstCombine/call.ll libclamav/c++/llvm/test/Transforms/InstCombine/cast.ll libclamav/c++/llvm/test/Transforms/InstCombine/crash.ll libclamav/c++/llvm/test/Transforms/InstCombine/getelementptr.ll libclamav/c++/llvm/test/Transforms/InstCombine/icmp.ll libclamav/c++/llvm/test/Transforms/InstCombine/intrinsics.ll libclamav/c++/llvm/test/Transforms/InstCombine/invariant.ll libclamav/c++/llvm/test/Transforms/InstCombine/load.ll libclamav/c++/llvm/test/Transforms/InstCombine/load3.ll libclamav/c++/llvm/test/Transforms/InstCombine/malloc-free-delete.ll libclamav/c++/llvm/test/Transforms/InstCombine/memset_chk.ll libclamav/c++/llvm/test/Transforms/InstCombine/objsize.ll libclamav/c++/llvm/test/Transforms/InstCombine/odr-linkage.ll libclamav/c++/llvm/test/Transforms/InstCombine/phi.ll libclamav/c++/llvm/test/Transforms/InstCombine/select.ll libclamav/c++/llvm/test/Transforms/InstCombine/shift-sra.ll libclamav/c++/llvm/test/Transforms/InstCombine/shift.ll libclamav/c++/llvm/test/Transforms/InstCombine/strcpy_chk.ll libclamav/c++/llvm/test/Transforms/InstCombine/urem-simplify-bug.ll libclamav/c++/llvm/test/Transforms/InstCombine/vec_shuffle.ll libclamav/c++/llvm/test/Transforms/JumpThreading/basic.ll libclamav/c++/llvm/test/Transforms/JumpThreading/crash.ll libclamav/c++/llvm/test/Transforms/LCSSA/2006-06-03-IncorrectIDFPhis.ll libclamav/c++/llvm/test/Transforms/LICM/hoisting.ll libclamav/c++/llvm/test/Transforms/LICM/scalar_promote.ll libclamav/c++/llvm/test/Transforms/LICM/sinking.ll libclamav/c++/llvm/test/Transforms/LoopIndexSplit/2008-02-08-Crash.ll libclamav/c++/llvm/test/Transforms/LoopRotate/phi-duplicate.ll libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr2537.ll libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/pr3571.ll libclamav/c++/llvm/test/Transforms/LoopStrengthReduce/quadradic-exit-value.ll libclamav/c++/llvm/test/Transforms/LoopUnswitch/crash.ll libclamav/c++/llvm/test/Transforms/LoopUnswitch/preserve-analyses.ll libclamav/c++/llvm/test/Transforms/LowerAtomic/dg.exp libclamav/c++/llvm/test/Transforms/Mem2Reg/ConvertDebugInfo.ll libclamav/c++/llvm/test/Transforms/MemCpyOpt/align.ll libclamav/c++/llvm/test/Transforms/PartialSpecialize/dg.exp libclamav/c++/llvm/test/Transforms/PruneEH/2008-09-05-CGUpdate.ll libclamav/c++/llvm/test/Transforms/SCCP/ipsccp-basic.ll libclamav/c++/llvm/test/Transforms/ScalarRepl/2009-12-11-NeonTypes.ll libclamav/c++/llvm/test/Transforms/ScalarRepl/2010-01-18-SelfCopy.ll libclamav/c++/llvm/test/Transforms/ScalarRepl/vector_promote.ll libclamav/c++/llvm/test/Transforms/SimplifyCFG/2008-04-27-MultipleReturnCrash.ll libclamav/c++/llvm/test/Transforms/SimplifyCFG/basictest.ll libclamav/c++/llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrCpy.ll libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrNCmp.ll libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/StrStr.ll libclamav/c++/llvm/test/Transforms/SimplifyLibCalls/memcmp.ll libclamav/c++/llvm/test/Transforms/Sink/dg.exp libclamav/c++/llvm/test/Transforms/TailCallElim/accum_recursion.ll libclamav/c++/llvm/test/Transforms/TailCallElim/inf-recursion.ll libclamav/c++/llvm/test/Transforms/TailDup/2008-06-11-AvoidDupLoopHeader.ll libclamav/c++/llvm/tools/CMakeLists.txt libclamav/c++/llvm/tools/Makefile libclamav/c++/llvm/tools/bugpoint-passes/TestPasses.cpp libclamav/c++/llvm/tools/bugpoint/BugDriver.cpp libclamav/c++/llvm/tools/bugpoint/BugDriver.h libclamav/c++/llvm/tools/bugpoint/CMakeLists.txt libclamav/c++/llvm/tools/bugpoint/CrashDebugger.cpp libclamav/c++/llvm/tools/bugpoint/ExecutionDriver.cpp libclamav/c++/llvm/tools/bugpoint/ExtractFunction.cpp libclamav/c++/llvm/tools/bugpoint/FindBugs.cpp libclamav/c++/llvm/tools/bugpoint/ListReducer.h libclamav/c++/llvm/tools/bugpoint/Makefile libclamav/c++/llvm/tools/bugpoint/Miscompilation.cpp libclamav/c++/llvm/tools/bugpoint/OptimizerDriver.cpp libclamav/c++/llvm/tools/bugpoint/ToolRunner.cpp libclamav/c++/llvm/tools/bugpoint/ToolRunner.h libclamav/c++/llvm/tools/bugpoint/bugpoint.cpp libclamav/c++/llvm/tools/edis/EDMain.cpp libclamav/c++/llvm/tools/edis/EnhancedDisassembly.exports libclamav/c++/llvm/tools/edis/Makefile libclamav/c++/llvm/tools/gold/Makefile libclamav/c++/llvm/tools/gold/README.txt libclamav/c++/llvm/tools/gold/gold-plugin.cpp libclamav/c++/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp libclamav/c++/llvm/tools/llvm-extract/llvm-extract.cpp libclamav/c++/llvm/tools/llvm-ld/Optimize.cpp libclamav/c++/llvm/tools/llvm-ld/llvm-ld.cpp libclamav/c++/llvm/tools/llvm-link/llvm-link.cpp libclamav/c++/llvm/tools/llvm-mc/CMakeLists.txt libclamav/c++/llvm/tools/llvm-mc/Disassembler.cpp libclamav/c++/llvm/tools/llvm-mc/Disassembler.h libclamav/c++/llvm/tools/llvm-mc/Makefile libclamav/c++/llvm/tools/llvm-mc/llvm-mc.cpp libclamav/c++/llvm/tools/llvm-nm/llvm-nm.cpp libclamav/c++/llvm/tools/llvm-prof/llvm-prof.cpp libclamav/c++/llvm/tools/llvm-shlib/Makefile libclamav/c++/llvm/tools/lto/LTOCodeGenerator.cpp libclamav/c++/llvm/tools/lto/LTOCodeGenerator.h libclamav/c++/llvm/tools/lto/LTOModule.cpp libclamav/c++/llvm/tools/lto/LTOModule.h libclamav/c++/llvm/tools/lto/Makefile libclamav/c++/llvm/tools/lto/lto.cpp libclamav/c++/llvm/tools/lto/lto.exports libclamav/c++/llvm/tools/opt/AnalysisWrappers.cpp libclamav/c++/llvm/tools/opt/GraphPrinters.cpp libclamav/c++/llvm/tools/opt/PrintSCC.cpp libclamav/c++/llvm/tools/opt/opt.cpp libclamav/c++/llvm/unittests/Makefile.unittest libclamav/c++/llvm/utils/TableGen/DAGISelMatcherGen.cpp libclamav/c++/llvm/utils/TableGen/DAGISelMatcherOpt.cpp libclamav/c++/llvm/utils/unittest/UnitTestMain/Makefile libclamav/c++/llvm/utils/unittest/googletest/Makefile Squashed commit of the following: commit 1c111048f99b1b8a6e086a70308530d0db63d03e Author: Bill Wendling <isanbard@gmail.com> Date: Wed Oct 6 23:26:40 2010 +0000 Rename 2.8rc to 2.8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115863 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21c1db86b8625962acc7ab9bcde0ebb0fda5f1f4 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Oct 4 20:41:06 2010 +0000 Update git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115554 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32bbc5f2807446dcaedf0f706b0fea86b71f8c1e Author: Bill Wendling <isanbard@gmail.com> Date: Mon Oct 4 19:55:17 2010 +0000 Update release notes for 2.8 release. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9300f70083bc8838e18fb06a790e3883ae09c92c Author: Bill Wendling <isanbard@gmail.com> Date: Fri Oct 1 06:48:31 2010 +0000 PR8200: The MMX unpack instructions were no longer selected. Reverted the parts that caused this to happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115298 91177308-0d34-0410-b5e6-96231b3b80d8 commit 639f98588bbc8738339ca5e55bd2ae21fd080a67 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Sep 30 18:05:47 2010 +0000 Revert r102604. It was breaking 32-bit Linux. See http://llvm.org/bugs/show_bug.cgi?id=8153 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115183 91177308-0d34-0410-b5e6-96231b3b80d8 commit d212fd6a34f24e6fd6ec158ccae08e8d6db6a407 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 29 23:07:19 2010 +0000 Merge in r114506. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115101 91177308-0d34-0410-b5e6-96231b3b80d8 commit c669329983d1bf476bb7a417b2f28f3963b05570 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 29 22:23:19 2010 +0000 Disable MinGW & shared because it never worked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@115093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9381d307a291e5ffd1244b45145c103fa3ff275f Author: Edwin Török <edwintorok@gmail.com> Date: Tue Sep 28 13:47:20 2010 +0000 Document that Pass(char*) got replaced with Pass(char&). This means that code wanting to be compatible needs to use ifdefs :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@114950 91177308-0d34-0410-b5e6-96231b3b80d8 commit e04351990531bb36a64fe55bd387720ac75d38c8 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Sep 20 18:37:19 2010 +0000 Adjust comment to say that assertions are off by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@114337 91177308-0d34-0410-b5e6-96231b3b80d8 commit 428a21368baf2eafaab81e172ab7c0311224b925 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Sep 17 22:09:07 2010 +0000 Approved by Evan $ svn merge -c 114220 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r114220 into '.': U lib/CodeGen/MachineCSE.cpp $ svn merge -c 114222 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r114222 into '.': G lib/CodeGen/MachineCSE.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@114224 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b46a4415863de71f2d986301682f2270d10cb01 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 15 21:03:06 2010 +0000 Merge AutoUpgrade of EH magic variable. $ svn merge -c 113600 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113600 into '.': A test/Bitcode/AutoUpgradeGlobals.ll A test/Bitcode/AutoUpgradeGlobals.ll.bc U include/llvm/AutoUpgrade.h U lib/Bitcode/Reader/BitcodeReader.cpp U lib/VMCore/AutoUpgrade.cpp $ svn merge -c 113603 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113603 into '.': G lib/VMCore/AutoUpgrade.cpp $ svn merge -c 113615 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113615 into '.': G lib/VMCore/AutoUpgrade.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@114020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75b0d4ae8673f1ae056483f3a30b7eda326f5a21 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 15 00:32:40 2010 +0000 $ svn merge -c 113848 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113848 into '.': U lib/CodeGen/PeepholeOptimizer.cpp must not peephole away side effects git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113913 91177308-0d34-0410-b5e6-96231b3b80d8 commit d15e60ba2aeee55a15be4643e8430e26dc6097ae Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 15 00:32:05 2010 +0000 Approved by Chris: $ svn merge -c 113911 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113911 into '.': U test/Transforms/ConstantMerge/dont-merge.ll U lib/Transforms/IPO/ConstantMerge.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113912 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9db2d8e2ddc7c136cabadebaa3f0d4085fc55fed Author: Bill Wendling <isanbard@gmail.com> Date: Tue Sep 14 23:38:48 2010 +0000 Approved by Chris $ svn merge -c 113894 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113894 into '.': U test/MC/AsmParser/X86/x86_instructions.s U lib/Target/X86/AsmParser/X86AsmParser.cpp Log: add a terrible hack to allow out with dx is parens, a gas bug. This fixes PR8114 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113896 91177308-0d34-0410-b5e6-96231b3b80d8 commit f74220fbaff8d9be1ee02c906087c3b468086b53 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Sep 14 20:59:01 2010 +0000 Approved by Chris: $ svn merge -c 113557 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113557 into '.': U include/llvm/Bitcode/LLVMBitCodes.h U tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp U lib/Bitcode/Reader/BitcodeReader.cpp U lib/Bitcode/Writer/BitcodeWriter.cpp $ svn merge -c 113764 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113764 into '.': U lib/Bitcode/Reader/BitcodeReader.h G lib/Bitcode/Reader/BitcodeReader.cpp $ svn merge -c 113828 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113828 into '.': U lib/VMCore/Metadata.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113853 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ab74634309de375a467d4caea0b85da56533921 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Sep 14 20:57:16 2010 +0000 Approved by Chris: $ svn merge -c 113057 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113057 into '.': A test/Transforms/LoopSimplify/preserve-scev.ll U lib/Transforms/Utils/LoopSimplify.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113851 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc3da965ce1a055bc8afe4d6cedc10724d6ebcef Author: Bill Wendling <isanbard@gmail.com> Date: Tue Sep 14 00:43:35 2010 +0000 Approved by Chris: $ svn merge -c 113820 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113820 into '.': U test/Transforms/LICM/crash.ll U lib/Transforms/Scalar/LICM.cpp Log: fix PR8102, a case where we'd copyValue from a value that we already deleted. Fix this by doing the copyValue's before we delete stuff! git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113823 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc1bbe8b9e8f43c43163e8bd813fb8838aab816e Author: Bill Wendling <isanbard@gmail.com> Date: Fri Sep 10 21:48:08 2010 +0000 Approved by Evan: $ svn merge -c 113637 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113637 into '.': U lib/Target/ARM/ARMBaseInstrInfo.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113639 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ad32b036a87678327310fecf10de4fbd5fa0271 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Sep 10 10:21:50 2010 +0000 Approved by Evan. $ svn merge -c 113576 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113576 into '.': U test/CodeGen/ARM/2007-01-19-InfiniteLoop.ll U lib/Target/ARM/ARMLoadStoreOptimizer.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113583 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41d730a0ec380b6bcfd55922d65ccaf769b5fdde Author: Bill Wendling <isanbard@gmail.com> Date: Thu Sep 9 20:56:38 2010 +0000 Approved by Evan: $ svn merge -c 113297 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113297 into '.': U lib/Target/ARM/Thumb2SizeReduction.cpp $ svn merge -c 113322 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113322 into '.': U lib/Target/ARM/ARMInstrNEON.td U lib/Target/ARM/ARMInstrVFP.td U lib/Target/ARM/ARMInstrFormats.td $ svn merge -c 113365 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113365 into '.': U lib/Target/ARM/ARMBaseRegisterInfo.cpp $ svn merge -c 113366 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113366 into '.': G lib/Target/ARM/ARMBaseRegisterInfo.cpp $ svn merge -c 113394 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113394 into '.': G lib/Target/ARM/ARMBaseRegisterInfo.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113540 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53f9b7b7c3c00c0c09400f8620d284687999de6b Author: Bill Wendling <isanbard@gmail.com> Date: Thu Sep 9 20:13:48 2010 +0000 Approved by Evan: $ svn merge -c 113299 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113299 into '.': U lib/CodeGen/VirtRegRewriter.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113531 91177308-0d34-0410-b5e6-96231b3b80d8 commit efdf4f0c054f185e6826e5c785962353de7aef92 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Sep 9 20:10:22 2010 +0000 Approved by Duncan: $ svn merge -c 113483 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113483 into '.': U test/FrontendC/2010-05-18-asmsched.c U test/FrontendC/asm-reg-var-local.c $ svn merge -c 113484 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113484 into '.': U test/FrontendC/cstring-align.c $ svn merge -c 113485 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113485 into '.': U test/FrontendC/2010-07-14-overconservative-align.c Fix tests to pass on platforms which don't support -m64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113529 91177308-0d34-0410-b5e6-96231b3b80d8 commit c300f37169acf70ca441483060a3797cf5688533 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 8 20:45:56 2010 +0000 Rename 2.8 to 2.8rc to avoid confusion between release candidate and full release. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113404 91177308-0d34-0410-b5e6-96231b3b80d8 commit f43a0703482d623396b6efa95edcf0c26ff95e25 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 8 20:25:50 2010 +0000 Enable optimizations and disable assertions by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 141a48051ceb3689b0f336630aa5610cfaf790b8 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 8 20:16:52 2010 +0000 Change version from 2.8svn to 2.8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41a80bb700272b936a3dc742a22357798793382b Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 8 10:09:17 2010 +0000 $ svn merge -c 113255 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113255 into '.': U lib/Target/ARM/Disassembler/ARMDisassemblerCore.h $ svn merge -c 113345 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113345 into '.': U lib/Target/ARM/Disassembler/ARMDisassembler.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113353 91177308-0d34-0410-b5e6-96231b3b80d8 commit f85ab65e5786b5ceacecf3e6000bdd2e7e31fc02 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Sep 7 23:32:02 2010 +0000 $ svn merge -c 113303 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113303 into '.': A docs/CommandGuide/llvm-diff.pod U docs/CommandGuide/index.html Log: Add documentation for llvm-diff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 924f9b9fd0f8ffff74c3957f937cb663a517070e Author: Bill Wendling <isanbard@gmail.com> Date: Tue Sep 7 20:14:32 2010 +0000 Approved by Chris: $ svn merge -c 113257 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113257 into '.': A test/Transforms/InstCombine/sqrt.ll D test/Transforms/InstCombine/2010-07-19-sqrt.ll Renaming test. $ svn merge -c 113260 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113260 into '.': U test/Transforms/InstCombine/sqrt.ll U lib/Transforms/InstCombine/InstCombineCasts.cpp Log: Fix a serious performance regression introduced by r108687 on linux: turning (fptrunc (sqrt (fpext x))) -> (sqrtf x) is great, but we have to delete the original sqrt as well. Not doing so causes us to do two sqrt's when building with -fmath-errno (the default on linux). git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113265 91177308-0d34-0410-b5e6-96231b3b80d8 commit f77d70fef5e1de96070bc54a97096134f94c2215 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Sep 6 21:50:26 2010 +0000 Approved by Chris: $ svn merge -c 113158 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113158 into '.': U lib/Target/X86/X86InstrInfo.td Log: Redefine LOOP* instructions from I to Ii8PCRel as they take an i8 argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113175 91177308-0d34-0410-b5e6-96231b3b80d8 commit e699391e9390693e1437105c86add5b38a937ec8 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Sep 6 09:15:29 2010 +0000 Approved by Chris: $ svn merge -c 113146 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113146 into '.': U test/Transforms/LICM/crash.ll U lib/Transforms/Scalar/LICM.cpp Log: fix PR8067, an over-aggressive assertion in LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113152 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24ce44188d8e4e416d3f67c7ea78a90a25b77fc4 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Sep 6 09:08:13 2010 +0000 Approved by Chris: $ svn merge -c 113123 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113123 into '.': U examples/Fibonacci/fibonacci.cpp fit in 80 columns and don't crash on exit, fixes PR8080 git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18505f3af6e20bf763ddc0fcca02e6914fa572b9 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Sep 5 17:45:44 2010 +0000 Approved by Chris: $ svn merge -c 113109 https://llvm.org/svn/llvm-project/llvm/trunk --- Merging r113109 into '.': U test/Transforms/GlobalOpt/crash.ll U lib/Analysis/ValueTracking.cpp Log: fix PR8063, a crash in globalopt in the malloc analysis code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113111 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab9630da32c5f676989dd224a1c20da31b3e09dc Author: Owen Anderson <resistor@mac.com> Date: Sat Sep 4 03:02:01 2010 +0000 Remove CorrelatedValuePropagation from the default pass set for LLVM 2.8. It has not yet received enough testing prior to this release. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113060 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfb3fc18bca8edb6c2377c3924f9aa3f710b8115 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Sep 4 01:59:36 2010 +0000 Creating release_28 branch from llvm trunk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_28@113051 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99c0df306b79c9e3f76cd8926a9caa23fd195348 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Sep 4 01:36:45 2010 +0000 Emit target specific nodes for isPSHUFHWMask and isPSHUFLWMask git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113050 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60f5e918e0cbd791c19b89d821146955d905e3c0 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Sep 4 01:22:57 2010 +0000 Emit target specific nodes for isSHUFPMask git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113048 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89f3297d21f9192c5bd348b75722f95ed346af39 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Sep 4 00:50:08 2010 +0000 Previous isMOVLMask matching already emits targets nodes, remove check git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 586f8c1c682722335fbb57db60dd65913cd96dbe Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Sep 4 00:46:16 2010 +0000 One more check from the original isShuffleMaskLegal goes away git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113045 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1d7b9b89b5efe88c2083d7eb0819ae9d34d5d58 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Sep 4 00:43:12 2010 +0000 Remove a duplicated but useless check that i've inserted in the previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113044 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14ec744a5bbf3afe9d1fab04460807f27c244a0a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Sep 4 00:39:43 2010 +0000 Refactor some code and remove the extra checks for unpckl_undef and unpckh_undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113043 91177308-0d34-0410-b5e6-96231b3b80d8 commit d21a31cf4a3422082c1526e9b59cee5af175c471 Author: Chris Lattner <sabre@nondot.org> Date: Sat Sep 4 00:12:30 2010 +0000 fix a bug in my licm rewrite when a load from the promoted memory location is being re-stored to the memory location. We would get a dangling pointer from the SSAUpdate data structure and miss a use. This fixes PR8068 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e059dc1bdc9c28c7b83565fc469e82924cd0408 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 23:32:47 2010 +0000 Remove check for unpckh mask git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113035 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7197868b152988cf857cf293e440f4ade979e22e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 23:31:50 2010 +0000 Remove check for unpckl mask git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113034 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed6cd53e897ea317d8dc763631324ac75b91e1fc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 23:24:06 2010 +0000 Inline isShuffleMaskLegal into LowerVECTOR_SHUFFLE, so we can start checking each standalone condition and decide whether emit target specific nodes or remove the condition if it's already matched before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ef52ed6684afe0323a2cc007a776f0d542bf6ab Author: Owen Anderson <resistor@mac.com> Date: Fri Sep 3 22:47:08 2010 +0000 Propagate non-local comparisons. Fixes PR1757. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113025 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f24dc4db6dae410c76abdc42674f135058554f6 Author: Eric Christopher <echristo@apple.com> Date: Fri Sep 3 22:46:31 2010 +0000 Reapply this increase to the number of virtual registers. All of the various breakages appear to be dealt with. Patch by Pekka Jääskeläinen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113024 91177308-0d34-0410-b5e6-96231b3b80d8 commit b79b262390f373f94ffa3e593d99bf4f8ce67099 Author: Dan Gohman <gohman@apple.com> Date: Fri Sep 3 22:12:56 2010 +0000 Disable the asserts that check that normalization is perfectly invertible. ScalarEvolution's folding routines don't always succeed in canonicalizing equal expressions to a single canonical form, and this can cause these asserts to fail, even though there's no actual correctness problem. This fixes PR8066. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113021 91177308-0d34-0410-b5e6-96231b3b80d8 commit c95e819171bcd41581d0119f60f080eba59e98cf Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 22:09:41 2010 +0000 Reapply considered harmfull part of rr112934 and r112942. "Use target specific nodes instead of relying in unpckl and unpckh pattern fragments during isel time. Also place a depth limit in getShuffleScalarElt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42bae1b964a8907755caedaf00452489ef2d2791 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Sep 3 21:45:15 2010 +0000 previous patch was a little too tricky for its own good. Don't try to overload UserInInstr. Explicitly check Allocatable. The early exit in the condition will mean the performance impact of the extra test should be minimal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113016 91177308-0d34-0410-b5e6-96231b3b80d8 commit 297726b47bfc26aa950b82e06c5cc73cc246b585 Author: Dale Johannesen <dalej@apple.com> Date: Fri Sep 3 21:23:00 2010 +0000 Remove the rest of the nonexistent 64-bit AVX instructions. Bruno, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29a0ab98da5adfbf3ab82222f6822fdb95b7c56c Author: David Greene <greened@obbligato.org> Date: Fri Sep 3 21:00:49 2010 +0000 Generalize getFieldType to work on all TypedInits. Add a couple of testcases from Amaury Pouly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38d42a5d2f16717822b4b3eb0cca810dbf55397c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 20:44:26 2010 +0000 Reapply last harmless part of r112934, the pattern fragment to match X86Unpcklpd git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113009 91177308-0d34-0410-b5e6-96231b3b80d8 commit d988f9694780ab46bc5648cb6c0a9f081e6e7247 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 20:20:02 2010 +0000 Reintroduce a simple function refactoring done in r112934, also without any functionality changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a316afbd0fba5526db05383746b795b03cdd821 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 20:10:35 2010 +0000 Reapply piecies of r112942 and r112934 which don't do functional changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113007 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13098f731e57be0bfb47db26c787ff9fb865d276 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 19:55:05 2010 +0000 Reapply Fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113006 91177308-0d34-0410-b5e6-96231b3b80d8 commit f95187f0240b97f964c49d77dc8ebc455ab5994f Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Sep 3 19:38:11 2010 +0000 Revert r112934, "- Use specific nodes to match unpckl masks.", which introduced some infinite loop and select failures. - Apologies for eager reverting, but its branch day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113000 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb4cc19f6a32bb9bab7cb74fefad02818165b847 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Sep 3 19:38:08 2010 +0000 Revert r112938 "Fix comment", which depends on r112934, which introduced some infinite loop and select failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112999 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6f5af6f5994c7eb5b329b2b880abea8c8f2c974 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Sep 3 19:38:05 2010 +0000 Revert r112942, "Use punpckh and unpckh family of nodes instead of using unpckh mask pattern fragment", which depends on r112934, which introduced some infinite loop and select failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112998 91177308-0d34-0410-b5e6-96231b3b80d8 commit edc52db27a842626f793e464f55f0ccbf5b72151 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Sep 3 19:20:37 2010 +0000 Add a missing check when legalizing a vector extending load. This doesn't solve the root problem, but it corrects the bug in the code I added to support legalizing in the case where the non-extended type is also legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a36c48f062ad12ba90d456de97ec41631395cad Author: Bill Wendling <isanbard@gmail.com> Date: Fri Sep 3 19:09:46 2010 +0000 Get rid of "passing signed into unsigned parameter" warning on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96452d15266ce8768b548c8ccb663b9897ede7ab Author: Owen Anderson <resistor@mac.com> Date: Fri Sep 3 19:08:37 2010 +0000 Add support for simplifying a load from a computed value to a load from a global when it is provable that they're equivalent. This fixes PR4855. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112994 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9acf975fe3fe22da80c2e9e203b8d2022e2ce2b Author: Bill Wendling <isanbard@gmail.com> Date: Fri Sep 3 18:41:20 2010 +0000 Quiesce warning about non-virtual d'tor in virtual class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112991 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffa9eb7715cb1cd107eb231ac6beaf808cb70520 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Sep 3 18:37:12 2010 +0000 Re-apply r112883: "For ARM stack frames that utilize variable sized objects and have either large local stack areas or require dynamic stack realignment, allocate a base register via which to access the local frame. This allows efficient access to frame indices not accessible via the FP (either due to being out of range or due to dynamic realignment) or the SP (due to variable sized object allocation). In particular, this greatly improves efficiency of access to spill slots in Thumb functions which contain VLAs." r112986 fixed a latent bug exposed by the above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112989 91177308-0d34-0410-b5e6-96231b3b80d8 commit 539db5726e18adc00ce01bb58a0cdeda2c64b3ce Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Sep 3 18:36:56 2010 +0000 VirtRegRewriter checks for early clobbers before it reuses an available stack slot. Teach it to also check for early clobbered aliases, and early clobber operands following the current operand. This fixes the miscompilation in PR8044 where EC registers eax and ecx were being used for inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112988 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb70fa199bb228c1ee0ba44c985b2d40eab0617b Author: Owen Anderson <resistor@mac.com> Date: Fri Sep 3 18:33:08 2010 +0000 Add a test for PR4413, which was apparently fixed at some point in the past. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112987 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0443aed29846c511e5a3e703c8a720455ce2bb49 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Sep 3 18:28:19 2010 +0000 Check the local frame alignment for determining whether dynamic stack alignment should be performed. Otherwise dynamic realignment may trigger when the register allocator has already used the frame pointer as a general purpose register. That is, we need to make sure that the list of reserved registers doesn't change after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112986 91177308-0d34-0410-b5e6-96231b3b80d8 commit d74a2d34c51f8df5b53cb483b0973d4a378c5bff Author: Jim Grosbach <grosbach@apple.com> Date: Fri Sep 3 18:17:16 2010 +0000 Add 'const' to getter function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112984 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49127e1588de561f6c6db611e708434df59a3227 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Sep 3 18:16:02 2010 +0000 Finish converting the rest of the NEON VLD instructions to use pseudo- instructions prior to regalloc. Since it's getting a little close to the 2.8 branch deadline, I'll have to leave the rest of the instructions handled by the NEONPreAllocPass for now, but I didn't want to leave half of the VLD instructions converted and the other half not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112983 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d9042f319320b416a9f3a09a5b716b7ac806ebe Author: Dan Gohman <gohman@apple.com> Date: Fri Sep 3 18:06:11 2010 +0000 Remove a TODO comment; this is now filed in bugzilla (PR8005). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 077f9048044699e8bf2c70f8baeecb3dc8679ee7 Author: Dan Gohman <gohman@apple.com> Date: Fri Sep 3 17:29:33 2010 +0000 Fix Windows stuff to follow the existing source organization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112976 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d35945d13509dfb99bb8ca0b9e198c8e17dbe26 Author: Owen Anderson <resistor@mac.com> Date: Fri Sep 3 16:58:25 2010 +0000 Add PR number to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112971 91177308-0d34-0410-b5e6-96231b3b80d8 commit acf4616ee469e31eb9fbd964a753bd03ac261661 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Sep 3 15:42:45 2010 +0000 Rename 'libprofile/exported_symbols.lst' to 'libprofile/libprofile.exports'. Makefile.rules assumes that all EXPORTED_SYMBOL_FILEs have the .exports extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112964 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa13ab4b5f2bf18754ce13745f5a7a46e2f54835 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Sep 3 15:42:38 2010 +0000 Revert "Rules for win32 ld shouldn't fire when cross-compiling." This reverts commit 012b374e5b46fe93a8fdf605f5929fa8239e0960. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112963 91177308-0d34-0410-b5e6-96231b3b80d8 commit d53ec4dc8ca47ac82ee8eabd3521f963767d3d93 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Sep 3 15:26:42 2010 +0000 Revert "For ARM stack frames that utilize variable sized objects and have either", it is breaking oggenc with Clang for ARMv6. This reverts commit 8d6e29cfda270be483abf638850311670829ee65. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112962 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1d534a5f8f54c95a733e85caaac76d9b80c7e7c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Sep 3 12:13:18 2010 +0000 Zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 851f6523a3dc6d2eed5e0329093582642c3e02d0 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Sep 3 09:57:52 2010 +0000 Rules for win32 ld shouldn't fire when cross-compiling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112954 91177308-0d34-0410-b5e6-96231b3b80d8 commit a567bb3b9d1e8deb1e14ba0a15203eebb3171d80 Author: Duncan Sands <baldrick@free.fr> Date: Fri Sep 3 08:31:48 2010 +0000 Reapply commit 112702 which was speculatively reverted by echristo. Original commit message: Use the SSAUpdator to turn calls to eh.exception that are not in a landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bab3aa0e99ac290f4f99562680670e5d038953f Author: Owen Anderson <resistor@mac.com> Date: Fri Sep 3 04:16:28 2010 +0000 Re-enable CorrelatedValuePropagation. I've tested nightly tests, llvm-gcc bootstrap, and clang self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112948 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51f807a1b2fd166c70ff84ebad09da54c8d892ca Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Fri Sep 3 03:24:08 2010 +0000 test/CodeGen/X86: Add explicit -mtriple=(i686|x86_64)-linux for Win32 host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112947 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8217d7dabe03fa92e114039419d253f2dcf6d65 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Fri Sep 3 02:22:23 2010 +0000 Fix cmake build without native target selected. The cmake (+ MSVC) build is broken if you don't select your native target. e.g. 'cmake -D LLVM_TARGETS_TO_BUILD="MyNonNativeTarget" .' This is because cmake currently sets the LLVM_NATIVE_* definitions regardless of whether the native target is selected (causing build errors). Patch by Mike Gist! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ec7a3997c7bab39f77ae4877ec08b6bc9d51115 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 02:08:45 2010 +0000 AVX doesn't support mm operations neither its instrinsics. The AVX versions of PALIGN and PABS* should only exist for 128-bit. Remove the unnecessary stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112944 91177308-0d34-0410-b5e6-96231b3b80d8 commit de9edf7af4abfbc13e706b2f35fd0fad18de21f3 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 01:39:08 2010 +0000 Use punpckh and unpckh family of nodes instead of using unpckh mask pattern fragment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112942 91177308-0d34-0410-b5e6-96231b3b80d8 commit 475b4e15476775f438542ff2318c4f109e5e7733 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Sep 3 01:35:08 2010 +0000 Replace NEON vabdl, vaba, and vabal intrinsics with combinations of the vabd intrinsic and add and/or zext operations. In the case of vaba, this also avoids the need for a DAG combine pattern to combine vabd with add. Update tests. Auto-upgrade the old intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112941 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae8584d2430cf57a397e10b8b0a191d860666ebf Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 01:28:51 2010 +0000 Fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112938 91177308-0d34-0410-b5e6-96231b3b80d8 commit f34dbc63330659df5acb39f89562b1322b8cf35c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Sep 3 01:24:00 2010 +0000 - Use specific nodes to match unpckl masks. - Teach getShuffleScalarElt how to handle more target specific nodes, so the DAGCombine can make use of it. - Add another hack to avoid the node update problem during legalization. More description on the comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 654d2eb1a3b44bd8b538694a646f01639f48d6a9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Sep 3 00:39:50 2010 +0000 Stop emitting predicate functions. They are no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112924 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bd654ef352c9718f9dffb44b0fd2f1dbb9a820a Author: Eric Christopher <echristo@apple.com> Date: Fri Sep 3 00:35:47 2010 +0000 Simple branch instruction support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d6b2770fdf139e271df9191a6b0644a569d5163 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Sep 3 00:35:18 2010 +0000 Don't call Predicate_* from X86 target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112921 91177308-0d34-0410-b5e6-96231b3b80d8 commit d21c39d05fa02ab8858e89c199bad15ca9092046 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Sep 3 00:35:16 2010 +0000 Remove Predicate_* calls from MBlaze and XCore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112920 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71adb48f48bb4af1ac6f9e3cbb68b90d9ac1b6b7 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Sep 3 00:35:13 2010 +0000 Remove Predicate_* calls from Mips git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c0b5f6ef468f04129f3ab72be31113941fe2dfe Author: Eric Christopher <echristo@apple.com> Date: Thu Sep 2 23:43:26 2010 +0000 Add basic support for materializing constants (including fp) and stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112912 91177308-0d34-0410-b5e6-96231b3b80d8 commit b050d90cf59d281a0e7da4411bd51487a7ba9be5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 23:32:55 2010 +0000 update one more test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 191106ded46fcb11ef8d7331f34633ff65334d01 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 23:22:50 2010 +0000 this is a release note worthy change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112907 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f4c630a4db3baadc949bdfc6bc13d90edf11916 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 23:21:44 2010 +0000 add a new "llvm-dis -show-annotations" option, which causes it to print #uses comments, with a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112906 91177308-0d34-0410-b5e6-96231b3b80d8 commit f63b14f0e817a6ddffaa2e3a044831aea90d7a38 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 23:09:42 2010 +0000 lets get crazy and name the header file the exact class name, not a scrunched version of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112904 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c6faf9437d39e8ed08f3b2a62ee050db8816f62 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 23:07:12 2010 +0000 AsmPrinter has a formatted stream, pass it down through AsmAnnotationWriter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112903 91177308-0d34-0410-b5e6-96231b3b80d8 commit eadfde94a84cf1e38d2766bfd2470a428d3019f9 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Sep 2 23:03:46 2010 +0000 Properly emit __chkstk call instead of __alloca on non-mingw windows targets. Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112902 91177308-0d34-0410-b5e6-96231b3b80d8 commit 555e07469283314664828400fd2f811e53c9affd Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 23:03:10 2010 +0000 stop forcing a noop AssemblyAnnotationWriter to silence #uses comments, these don't happen anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112901 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4036c4800b081a54845b9f7ad6cb866e32c44f46 Author: Devang Patel <dpatel@apple.com> Date: Thu Sep 2 23:01:10 2010 +0000 There is no need to use .set here. Thanks Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112900 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a39a7be89fec977cf77d58ca2cf44c94fa2fc37 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 22:52:10 2010 +0000 reapply 112894: Remove #uses comments from functions: they we're padded out to column 50 and were potentially confusing for externally visible functions. going further, remove the "<i8**> [#uses=3]" comments entirely. They add a lot of noise, confuse people about what the IR is, and don't add any particular value. When the types are long it makes it really really hard to read IR. If someone is interested in this sort of thing, the right way to do this is to implement an AsmAnnotationWriter that produces the same output, and add a flag to llvm-dis (only) to produce this output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112899 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9fafbea166c2cb66ef98b46db0d4de5a694aecc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Sep 2 22:43:39 2010 +0000 Move insertps mask decoding to header file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112896 91177308-0d34-0410-b5e6-96231b3b80d8 commit add838d15e5ce561be217fc2bc5afba2f860c0f8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 22:42:07 2010 +0000 revert patch, need to update clang tests too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112895 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07d7942713a0ebffca43981a348300f648b95f9c Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 22:41:24 2010 +0000 Remove #uses comments from functions: they we're padded out to column 50 and were potentially confusing for externally visible functions. going further, remove the "<i8**> [#uses=3]" comments entirely. They add a lot of noise, confuse people about what the IR is, and don't add any particular value. When the types are long it makes it really really hard to read IR. If someone is interested in this sort of thing, the right way to do this is to implement an AsmAnnotationWriter that produces the same output, and add a flag to llvm-dis (only) to produce this output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112894 91177308-0d34-0410-b5e6-96231b3b80d8 commit 006bbebfc183bf03946f8e9741aa85b351cb4f7e Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 22:38:56 2010 +0000 more test cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112892 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90532fd8252a4ccff0a1a60a1d22f27bfafbb5c2 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 22:35:33 2010 +0000 remove some noise from tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112889 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c5a0372623c79fde1aa872b4007f921931be3c2 Author: Dan Gohman <gohman@apple.com> Date: Thu Sep 2 22:32:38 2010 +0000 Use the FindProgramByName fallback only with known absolute paths. I wasn't able to convince myself that all GetMainExecutable implementations always return absolute paths; this prevents unexpected behavior in case they ever don't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112888 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99b82b7cddf63f3b807817b35ffd223bad8ad354 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 22:32:02 2010 +0000 we are past the point where these tests are useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112887 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c8a537d7ccfc896ffa726a502fd5188b9876829 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Sep 2 22:31:53 2010 +0000 Revert int_x86_mmx_palignr_b intrinsic to match llvm-gcc's version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112886 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78d850e3b83128d71944b411eb93bb873d6c6099 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Sep 2 22:31:32 2010 +0000 Revert win64 changes. They seem to be incomplete git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112885 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5f0c8285fc9d01e6956d01a5b0e8d646da2fd03 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 22:29:01 2010 +0000 For ARM stack frames that utilize variable sized objects and have either large local stack areas or require dynamic stack realignment, allocate a base register via which to access the local frame. This allows efficient access to frame indices not accessible via the FP (either due to being out of range or due to dynamic realignment) or the SP (due to variable sized object allocation). In particular, this greatly improves efficiency of access to spill slots in Thumb functions which contain VLAs. rdar://7352504 rdar://8374540 rdar://8355680 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112883 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20a3b26c8cf8bb51aaa05704973aedf30e4da6c9 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Sep 2 22:26:35 2010 +0000 - Change __builtin_ia32_palignr intrinsic type to match the pattern in clang. - Add patterns to match the following MMX builtins: * __builtin_ia32_vec_init_v8qi * __builtin_ia32_vec_init_v4hi * __builtin_ia32_vec_init_v2si * __builtin_ia32_vec_ext_v2si These builtins do not correspond to a single MMX instruction. They will have to be lowered -- most likely in the back-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112881 91177308-0d34-0410-b5e6-96231b3b80d8 commit 767a5dbf6e7a1406b5b3a744a8ff82e0652c6978 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 22:19:10 2010 +0000 fix more AST updating bugs, correcting miscompilation in PR8041 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112878 91177308-0d34-0410-b5e6-96231b3b80d8 commit e14eb7f9f89c0b1f8e3278eeed49040f08c9d175 Author: Owen Anderson <resistor@mac.com> Date: Thu Sep 2 22:16:52 2010 +0000 Remove incorrect and poorly tested code for trying to reason about values on default edges of switches. Just return the conservatively correct answer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 553337e61d5585974975960ec8e919de297ba282 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Sep 2 22:16:28 2010 +0000 Properly allocate win64 shadow reg area. Patch by Jan Sjodin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112875 91177308-0d34-0410-b5e6-96231b3b80d8 commit 259d113e680573de715b72b0a95bcb070f26d628 Author: Dan Gohman <gohman@apple.com> Date: Thu Sep 2 22:14:51 2010 +0000 Remove obsolete comments about throwing exceptions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112874 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8bb2260e0ae28751d1fbce0c012683b8e269696 Author: John McCall <rjmccall@apple.com> Date: Thu Sep 2 21:55:03 2010 +0000 After some discussion with djg, teach SmallVector to grow from a zero capacity and remove the workaround in SmallVector<T,0>. There are some theoretical benefits to a N->2N+1 growth policy anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112870 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02adbc7c4eeaf0a571912b29d8edb21732f9e3b0 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Sep 2 21:51:11 2010 +0000 Move decoding of insertps back to avoid unused warnings in x86 isel lowering, and fix movlhps/movhlps to decode 4 elements shuffles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07813d4852eb69128d15d203eb8672bca6766bf1 Author: Devang Patel <dpatel@apple.com> Date: Thu Sep 2 21:29:42 2010 +0000 Detect undef value early and save unnecessary NodeMap query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112864 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c22436080416141061f5456adcb934012aeb18a Author: Dan Gohman <gohman@apple.com> Date: Thu Sep 2 21:18:42 2010 +0000 Don't narrow the load and store in a load+twiddle+store sequence unless there are clearly no stores between the load and the store. This fixes this miscompile reported as PR7833. This breaks the test/CodeGen/X86/narrow_op-2.ll optimization, which is safe, but awkward to prove safe. Move it to X86's README.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112861 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45992b2cea1ab2b0624bcb46110a934752489843 Author: Devang Patel <dpatel@apple.com> Date: Thu Sep 2 21:02:27 2010 +0000 Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112858 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3325c02069b15c3d2b73ac51f2d61b9fdcde164 Author: Sandeep Patel <deeppatel1987@gmail.com> Date: Thu Sep 2 20:19:24 2010 +0000 Fix an unnecessary XFAIL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112853 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8aa775a5e2e7a0915e030ac469ed50b6db63e82 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 19:52:39 2010 +0000 trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a84d03a65a29bec19308d09e10eb92a177deebe Author: Owen Anderson <resistor@mac.com> Date: Thu Sep 2 19:52:06 2010 +0000 Fix typo. I accidentally edited the wrong file before my last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 345d1b9c7be3afdb3ddf299602675004d8d42be7 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Sep 2 18:53:37 2010 +0000 Add AsmParser support for the ELF .previous directive. Patch by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112849 91177308-0d34-0410-b5e6-96231b3b80d8 commit 455da10570f422440fc2ccc961f6a5037c193b78 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 18:44:51 2010 +0000 remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112847 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfb1eb43af3385cc17af5d7f8b767ed6e7b36ac4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Sep 2 18:40:13 2010 +0000 Move x86 specific shuffle mask decoding to its own header, it's also going to be used elsewhere. Also trim trailing whitespaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fcac63698e18f320f8a4ec0f2ffd97b91cd2ba2 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 18:29:04 2010 +0000 The scavenger should just use getAllocatableSet() rather than reinventing it locally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f70a8a3887eea1248b64dfad12da651cddeaa63 Author: Dan Gohman <gohman@apple.com> Date: Thu Sep 2 18:24:46 2010 +0000 Apply a patch from Kees van Reeuwijk to add support for Minix. Minix apparently doesn't like double-slash separators, and there's no apparent need for them here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112844 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48c6a580f9b30fe7de0fdb4728706b6841cc7f91 Author: Owen Anderson <resistor@mac.com> Date: Thu Sep 2 18:23:58 2010 +0000 Fix a bug in LazyValueInfo that CorrelatedValuePropagation exposed: In the LVI lattice, undef and the full set ConstantRange should not be treated as equivalent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112843 91177308-0d34-0410-b5e6-96231b3b80d8 commit aad4016a3ab39723f9f7c2047a18a4970d7a1620 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 18:18:52 2010 +0000 handle case where a register class is specified git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112842 91177308-0d34-0410-b5e6-96231b3b80d8 commit 527b649d5fef51c071b512fc6c8629348fc7282d Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 18:14:29 2010 +0000 Now that register allocation properly considers reserved regs, simplify the ARM register class allocation order functions to take advantage of that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bf628323da4fe3c176d6a52272bcf868a8ed5b7 Author: Dan Gohman <gohman@apple.com> Date: Thu Sep 2 17:35:10 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112836 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2537d16be0ff827519bb31fa1a7568afc73b3ab5 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Sep 2 17:18:32 2010 +0000 Allow MCSA_WeakRef in ELF. Patch by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112834 91177308-0d34-0410-b5e6-96231b3b80d8 commit d122366ab53c96eb82dc32df0543cc441f8d793e Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 17:12:55 2010 +0000 Anti-dependency breaking needs to be careful not to use reserved regs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112832 91177308-0d34-0410-b5e6-96231b3b80d8 commit c356b0b54c85f371937113e518d3548ccde184e3 Author: Devang Patel <dpatel@apple.com> Date: Thu Sep 2 16:43:44 2010 +0000 Fix .debug_range for linux. Patch by Krister Wombell. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 210bba73debe1e295e8e37acfe6fc966965a463e Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 16:31:21 2010 +0000 Mask out reserved registers when constructing the set of allocatable regs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112828 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ba4799f7f51cc28b0bfaefcefc5ac1c02de50ee Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Sep 2 16:17:29 2010 +0000 Fill in a missing comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112826 91177308-0d34-0410-b5e6-96231b3b80d8 commit d89d6cb9a34f9225a7508a5d3975f3eecfafa264 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Sep 2 16:00:54 2010 +0000 Convert VLD1 and VLD2 instructions to use pseudo-instructions until after regalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112825 91177308-0d34-0410-b5e6-96231b3b80d8 commit 172a1a7f8189e1b838fc6f131c16b72874d4556d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Sep 2 14:06:21 2010 +0000 llvmc: .dylib support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112818 91177308-0d34-0410-b5e6-96231b3b80d8 commit c87b5b814776ef0925e42b6f957ec81b8253c1b2 Author: Duncan Sands <baldrick@free.fr> Date: Thu Sep 2 08:52:23 2010 +0000 Print the number of uses of a function in the .ll since it can be informative and there seems to be no reason not to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0868da22b7d67b9e9ec0cea971e1acc0739d1a09 Author: Lang Hames <lhames@gmail.com> Date: Thu Sep 2 08:27:00 2010 +0000 Added support for register allocators to record which intervals are spill intervals, and where the uses and defs of the original intervals were in the original code. Spill intervals can be hidden using the "-rmf-intervals=virt-nospills*" option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112811 91177308-0d34-0410-b5e6-96231b3b80d8 commit 887cc7c2e7badbe31b9de32959e4dff53ff2bb92 Author: Duncan Sands <baldrick@free.fr> Date: Thu Sep 2 08:14:03 2010 +0000 Reapply commit 112699, speculatively reverted by echristo, since I'm sure it is harmless. Original commit message: If PrototypeValue is erased in the middle of using the SSAUpdator then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b63f72aa8f5c4d5510fca36a792c75ddbaed140 Author: Chandler Carruth <chandlerc@gmail.com> Date: Thu Sep 2 07:08:05 2010 +0000 Silence an ambiguous else warning from GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112809 91177308-0d34-0410-b5e6-96231b3b80d8 commit 370b17e0836021f3e0c5f8f2a6d35b008df67797 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Sep 2 05:44:31 2010 +0000 Fix compile errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112808 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97b6db1f9443bb52f1627878f8f115e65a4df63f Author: Lang Hames <lhames@gmail.com> Date: Thu Sep 2 05:37:52 2010 +0000 Added counters for PBQP reduction rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112807 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb61057360ee19ad9e29371049184c025279a00f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Sep 2 05:23:12 2010 +0000 Replace unpckl_undef and unpckh_undef matching with target specific opcodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 121ad229c62207b7c7c5622e2fb26f6d3a269e01 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Sep 2 04:20:26 2010 +0000 Move condition out to prepare for more matching git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112805 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa583a1e80a234fe69d3cc42227e5b1a17b9d562 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Sep 2 03:57:58 2010 +0000 Remove checking for isUNPCKL_v_undef_Mask, the specific node is already emitted for it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112804 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38981896a6c7bb85a378556ec31e91ae38ff1888 Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Thu Sep 2 03:46:04 2010 +0000 llvm::FindExecutable(): Retrieve the name with suffix.exe, if available. bugpoint uses it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112803 91177308-0d34-0410-b5e6-96231b3b80d8 commit a382985c38a72a5d48ff3fdfd77e0d071db14a04 Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Thu Sep 2 03:45:58 2010 +0000 test/loop-strength-reduce4: Add explicit triplet for Win32 host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112802 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bcf15118ba7ddee89eeb7bbbf41d00eb865b9a9 Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Thu Sep 2 03:45:51 2010 +0000 test/twoaddr-coalesce: Do not use @main. Win32 codegen emits implicit invoking __main into, to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112801 91177308-0d34-0410-b5e6-96231b3b80d8 commit d47658f1796891be0fe0fb03964e40e9ebefa81b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Sep 2 02:35:51 2010 +0000 become more strict about when it's safe to use X86ISD::MOVLPS git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112799 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92495063be94e99961fe477cc6ba189b687be006 Author: Eric Christopher <echristo@apple.com> Date: Thu Sep 2 02:30:46 2010 +0000 Clang's -ccc-host-triple was ignoring the arch specifier on my triple, I don't need to implement this quite yet - and not for ConstantInt anyhow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4efc9fc44eb4db42199756e0007ae35b6fda51f2 Author: Eric Christopher <echristo@apple.com> Date: Thu Sep 2 01:48:11 2010 +0000 This should be TargetMaterializeConstant instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e0185c3127635fd92455e2951306af52da2124d Author: Eric Christopher <echristo@apple.com> Date: Thu Sep 2 01:39:14 2010 +0000 One definition of isThumb is plenty, thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112793 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c203fcc2e44e305bd07121553b30923ce8e931c Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 01:02:06 2010 +0000 Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112790 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc32ea69aea02594aaa049c95a9e89220f1e6682 Author: Eric Christopher <echristo@apple.com> Date: Thu Sep 2 00:53:56 2010 +0000 Rework arm fast-isel load and store handling. Move offset computation into the "address selection" routine and handle constant materialization for stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ecc75342d92081a5c836081dae7ba34c255b361 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 00:51:37 2010 +0000 Add a bit of debug output for register scavenging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112787 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9024d0231f19959f463b361e372ce9df3397f55 Author: Chris Lattner <sabre@nondot.org> Date: Thu Sep 2 00:09:17 2010 +0000 updates to make it clear that this applies to clang and other llvm subprojects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112781 91177308-0d34-0410-b5e6-96231b3b80d8 commit e01c7a89cfbac75b81bad91470228ed76256ddb0 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Sep 2 00:02:26 2010 +0000 trivial cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112779 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6c8dc0eb19283e7a929c9d1515bff219b6abc2e Author: Jim Grosbach <grosbach@apple.com> Date: Wed Sep 1 23:50:23 2010 +0000 Simplify the tGPR register class now that the register allocators know not to try to allocate reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f3cc6a4cc6cdcdb04ad2bc245d26c969b5dd066 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Sep 1 23:50:19 2010 +0000 Remove NEON vmull, vmlal, and vmlsl intrinsics, replacing them with multiply, add, and subtract operations with zero-extended or sign-extended vectors. Update tests. Add auto-upgrade support for the old intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112773 91177308-0d34-0410-b5e6-96231b3b80d8 commit 163d4c765bab382bbbceac43f3fb4c761a24a6a2 Author: Dan Gohman <gohman@apple.com> Date: Wed Sep 1 23:33:02 2010 +0000 Reword this comment. Don't mention outs(), as that's not what this code is actually testing for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112767 91177308-0d34-0410-b5e6-96231b3b80d8 commit 768113717892f5e581b505e37e2ff952f34ed706 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 23:09:27 2010 +0000 deepen my MMX/SRoA hack to avoid hurting non-x86 codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112763 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff73af4ce86fe04fa697a14a9ee7c261624d265a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Sep 1 22:59:03 2010 +0000 Revert r112689, avoid those kind of checks cause they mess up with mmx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112760 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec8cd0f267284fd533c56d5a70268c593f44cd54 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Sep 1 22:48:34 2010 +0000 Tweak to ignoring reserved regs. The allocator was occasionally still looking at them since they'd end up in the register weights list. Tell it to stop doing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112756 91177308-0d34-0410-b5e6-96231b3b80d8 commit 759049d75da634d74b8a11f1c6fd87d324ca1c61 Author: Dale Johannesen <dalej@apple.com> Date: Wed Sep 1 22:43:48 2010 +0000 Recommit with changes. Comment out palignr for the moment, as there's a testcase that uses it and expects it to be subject to optimizations; we won't be doing that. Some adjustments based on feedback from Bill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112754 91177308-0d34-0410-b5e6-96231b3b80d8 commit f597c9d881605d0c66b400f08b68a5c1e2a24bcf Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Sep 1 22:33:20 2010 +0000 Using target specific nodes for shuffle nodes makes the mask check more strict, breaking some cases not checked in the testsuite, but also exposes some foldings not done before, as this example: movaps (%rdi), %xmm0 movaps (%rax), %xmm1 movaps %xmm0, %xmm2 movss %xmm1, %xmm2 shufps $36, %xmm2, %xmm0 now is generated as: movaps (%rdi), %xmm0 movaps %xmm0, %xmm1 movlps (%rax), %xmm1 shufps $36, %xmm1, %xmm0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112753 91177308-0d34-0410-b5e6-96231b3b80d8 commit be01b597dd0d66bd64714c1bba90b13d6226dc40 Author: Eric Christopher <echristo@apple.com> Date: Wed Sep 1 22:16:27 2010 +0000 Some basic store support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49fd526284ad796438452de4832fefd2e23b51d9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Sep 1 22:15:35 2010 +0000 Teach RemoveCopyByCommutingDef to check all aliases, not just subregisters. This caused a miscompilation in WebKit where %RAX had conflicting defs when RemoveCopyByCommutingDef was commuting a %EAX use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59f8e5c1c68544f0cb3a46c24db337c0468ebbe7 Author: Dale Johannesen <dalej@apple.com> Date: Wed Sep 1 21:57:20 2010 +0000 Apparently only Darwin passes long double misaligned. Compensate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 678f546ffc66aeb46e2022a082846e5622f37916 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Sep 1 21:48:06 2010 +0000 tidy up trailing whitespace and an 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20caad13e2bf009db8d29b7bfa76618c3e55b59c Author: Dan Gohman <gohman@apple.com> Date: Wed Sep 1 21:46:45 2010 +0000 Fix loop unswitching's assumption that a code path which either infinite loops or exits will eventually exit. This fixes PR5373. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112745 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1e27fbfe381cd437919f17132edfed0cba66e86 Author: Dale Johannesen <dalej@apple.com> Date: Wed Sep 1 21:36:44 2010 +0000 Revert 112740, it broke some clang tests somehow... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a67676a5dd7a67afd389892165e8fc74e574a3b Author: Jim Grosbach <grosbach@apple.com> Date: Wed Sep 1 21:34:41 2010 +0000 cleanup per feedback. use a helper function for getting the first non-reserved physical register in a register class. Make sure to assert if the register class is empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82ccca626ef6e352d7fdad60f3d0dab05db010d0 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Sep 1 21:23:03 2010 +0000 The register allocator shouldn't consider allocating reserved registers. PBQP version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f38b63a81531cfee6282d72bb31a494af999632 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Sep 1 21:04:27 2010 +0000 The register allocator shouldn't consider allocating reserved registers. r112728 did this for fast regalloc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97ba2153d678af5d69acc8aedb2d8091747d7d65 Author: Dale Johannesen <dalej@apple.com> Date: Wed Sep 1 21:03:03 2010 +0000 Add a few more missing MMX operations. This should be it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112740 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8e0d56019ca043d2160f273a3ff8c45696de014 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 20:09:20 2010 +0000 update the tutorial to use CreateFAdd to create fp operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112733 91177308-0d34-0410-b5e6-96231b3b80d8 commit f230d79f0c83b2a489d2e99bc06f3f856e1af62d Author: Jim Grosbach <grosbach@apple.com> Date: Wed Sep 1 19:28:41 2010 +0000 The register allocator shouldn't consider allocating reserved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112728 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddf983cfb6b2f51f38b99cd73d586a9abea59d36 Author: Owen Anderson <resistor@mac.com> Date: Wed Sep 1 19:20:46 2010 +0000 Disable CorrelatedValuePropagation while I track down selfhost failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ba0363375cb958a3444e9f3f99bd159287fead6 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Sep 1 19:16:29 2010 +0000 tidy up a few 80-column and trailing whitespace bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112726 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37d4107c825ad1545b7f4b43db90dd5425eacc91 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Sep 1 18:32:56 2010 +0000 The output of opt -stats must be sent to stderr. Patch by NAKAMURA Takumi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112724 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce7236f17df3a2e573b8016d2e8b7549ac51a2d3 Author: Owen Anderson <resistor@mac.com> Date: Wed Sep 1 18:30:15 2010 +0000 Tentatively add correlated value propagation to the set of standard passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112723 91177308-0d34-0410-b5e6-96231b3b80d8 commit aad7831bd6fd4e4cb1347af3fb5c454e05a65cf6 Author: Owen Anderson <resistor@mac.com> Date: Wed Sep 1 18:27:22 2010 +0000 JumpThreading keeps LazyValueInfo up to date, so we don't need to rerun it if we schedule another LVI-using pass afterwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112722 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01923ea282215142a864fca6ca61bcb261b36c82 Author: Eric Christopher <echristo@apple.com> Date: Wed Sep 1 18:01:32 2010 +0000 Add some more load types in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112721 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce69b05b924a1085778618373e3c1fd0159a0870 Author: Eric Christopher <echristo@apple.com> Date: Wed Sep 1 17:29:10 2010 +0000 Speculatively revert 112699 and 112702, they seem to be causing self host errors on clang-x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112719 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8a062a7303799b989865d16000c435b235ba441 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 16:11:17 2010 +0000 have the makefiles check the llvm-config error code instead of charging on an producing weird link errors. Patch by Yuri Gribov! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112714 91177308-0d34-0410-b5e6-96231b3b80d8 commit 197f2006181eb7067921ec771c99c2b9c0c2a197 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 16:06:39 2010 +0000 dead code patrol git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112713 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcf0195999781c011f84b1972a0a3d5f0fb26274 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 16:04:34 2010 +0000 zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112712 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f366d695f1b43f8afce1e9cc0d178f68b2dc96f Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 16:00:50 2010 +0000 temporarily revert r112664, it is causing a decoding conflict, and the testcases should be merged. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112711 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0843d45336f0c58b52510812f4bb70f73abe1188 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 15:44:05 2010 +0000 zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112708 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39410f4cd78df49728f1377e4c75e5c641d43ae5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 15:39:31 2010 +0000 remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2002fb50f87272e7a3d0efe0db91ed9fa5c8835d Author: Dan Gohman <gohman@apple.com> Date: Wed Sep 1 14:20:41 2010 +0000 Make tool_output_file's raw_ostream instance a member variable instead of a base class. This makes it possible to unregister the file from FilesToRemove when the file is done. Also, this eliminates the need for formatted_tool_output_file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 559ff298db0da609195536d30de02647e2a91826 Author: Dan Gohman <gohman@apple.com> Date: Wed Sep 1 14:17:34 2010 +0000 Add an interface for unregistering a file from the FilesToRemove list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37380767da63ebb8e3550b7d7ed5673d4b035d8a Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Wed Sep 1 14:15:31 2010 +0000 COFF: Update tests to reflect changes in last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 144c93d796ae38c47468c267c3b2dbbe97305dbb Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Wed Sep 1 14:09:36 2010 +0000 COFF: Fix incorrect SCT_COMPLEX_TYPE_SHIFT. Add a few constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112703 91177308-0d34-0410-b5e6-96231b3b80d8 commit 892afc75e43ea8a84a5a31508486fa6003bda6f7 Author: Duncan Sands <baldrick@free.fr> Date: Wed Sep 1 14:07:47 2010 +0000 Use the SSAUpdator to turn calls to eh.exception that are not in a landing pad into uses of registers rather than loads from a stack slot. Doesn't touch the 'orrible hack code - Bill needs to persuade me harder :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112702 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce2319fad3b9b4caa5f5af231725eb6ef67f838c Author: Dan Gohman <gohman@apple.com> Date: Wed Sep 1 14:00:35 2010 +0000 Make the iterator form of erase return void, since it always succeeds, and since this is what std::map and std::set do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112701 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9c4aa88d4bd9924e9861d1ec0ba9e6be1b63f67 Author: Duncan Sands <baldrick@free.fr> Date: Wed Sep 1 13:07:11 2010 +0000 Define LLVM_GLOBAL_VISIBILITY to be __declspec(dllexport) on windows systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112700 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7257e19e6ed5aca9f867943552aecfa5c816cd3 Author: Duncan Sands <baldrick@free.fr> Date: Wed Sep 1 10:29:33 2010 +0000 If PrototypeValue is erased in the middle of using the SSAUpdator then the SSAUpdator may access freed memory. Instead, simply pass in the type and name explicitly, which is all that was used anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112699 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfed6d9dd17ad8a81fae14de79f53f6c0512784e Author: Duncan Sands <baldrick@free.fr> Date: Wed Sep 1 09:26:00 2010 +0000 Add convenience class for working with eh.exception calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112698 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04a096c15eb4011b5afd627f865eb7a91494cf30 Author: Dale Johannesen <dalej@apple.com> Date: Wed Sep 1 05:19:06 2010 +0000 Attempt to fix buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112697 91177308-0d34-0410-b5e6-96231b3b80d8 commit 270d2693724818b1da8737beb44787511ed2c248 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 05:14:33 2010 +0000 add a gross hack to work around a problem that Argiris reported on llvmdev: SRoA is introducing MMX datatypes like <1 x i64>, which then cause random problems because the X86 backend is producing mmx stuff without inserting proper emms calls. In the short term, force off MMX datatypes. In the long term, the X86 backend should not select generic vector types to MMX registers. This is being worked on, but won't be done in time for 2.8. rdar://8380055 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112696 91177308-0d34-0410-b5e6-96231b3b80d8 commit f14809e6e3cbd326de64013ea882253eca7096e9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Sep 1 05:10:14 2010 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112695 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1526fbd1015bdafc8ce529bf77b15a543d1ef2e2 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Sep 1 05:08:25 2010 +0000 Use movlps, movlpd, movss and movsd specific nodes instead of pattern matching with movlp pattern fragment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18c60afbf659f7dc42da0e7ce56257a79a975bb8 Author: Dan Gohman <gohman@apple.com> Date: Wed Sep 1 01:45:53 2010 +0000 Revert 112442 and 112440 until the compile time problems introduced by 112440 are resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3466b23bfeb8f952a7cd04304c5085637620f5a4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Sep 1 00:57:08 2010 +0000 minor change, simplify some logic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112689 91177308-0d34-0410-b5e6-96231b3b80d8 commit e822415f27069f66393bbf25dd9a068fd0e60128 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Sep 1 00:51:36 2010 +0000 Move some functions around so they can be used for some other to come function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c33439307887d23fe5b172245e1ac251bdc9e7a Author: Dale Johannesen <dalej@apple.com> Date: Wed Sep 1 00:40:09 2010 +0000 Add some MMX intrinsics that duplicate functionality available in normal llvm operators. We aren't going to use those for MMX any more because it's unsafe for the optimizers to synthesize new MMX instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112685 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f6491734d65262df770e8e76c256f9daa89e9bf Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 31 23:50:19 2010 +0000 Use absolute label for DW_AT_stmt_list if a target does not prefer offset here. This patch was developed on top of original patch by Artur Pietrek. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112678 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e80089e1521b5c168deaf8c65a6b23393754f53 Author: Dale Johannesen <dalej@apple.com> Date: Tue Aug 31 23:43:55 2010 +0000 Testcase for llvm checkin 112674. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50712d70ea7878dd2bc422e4b759db388d554f5f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 31 23:38:13 2010 +0000 Remove noisy semicolon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112673 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d55113764bcb9962c649f181a423f76c4fe337d Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 31 23:00:16 2010 +0000 licm is wasting time hoisting constant foldable operations, instead of hoisting them, just fold them away. This occurs in the testcase for PR8041, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112669 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39197f3b97a079627a1802d4d93fffde07cb2ef2 Author: Kevin Enderby <enderby@apple.com> Date: Tue Aug 31 22:55:11 2010 +0000 This is the second of three patches to implement support for the .loc directive and output the dwarf line number tables. This takes the current loc info after an instruction is assembled and saves the needed info into an object that has vector and for each section. These objects will be used for the final patch to build and emit the encoded dwarf line number tables. Again for now this is only in the Mach-O streamer but at some point will move to a more generic place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112668 91177308-0d34-0410-b5e6-96231b3b80d8 commit 237480870edc74b3b0dc424c084527adac58033b Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 31 22:53:17 2010 +0000 Reapply r112432, now that the real problem is addressed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112667 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4e240d02d24cfc0fdd87ec9ac6f6c12c530da3b Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 31 22:52:12 2010 +0000 Reapply r112433, now that the real problem is addressed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112666 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5132accd3d6fb7daebf5d23906c7a4d51ec3f8f4 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 31 22:50:31 2010 +0000 Revert r110916. This patch is buggy because the code inside the inner loop doesn't update all the variables in the outer loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112665 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1d5123d9b7907b4295b68ce194c146b1274ec0d Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 31 22:41:22 2010 +0000 We have a chance for an optimization. Consider this code: int x(int t) { if (t & 256) return -26; return 0; } We generate this: tst.w r0, #256 mvn r0, #25 it eq moveq r0, #0 while gcc generates this: ands r0, r0, #256 it ne mvnne r0, #25 bx lr Scandalous really! During ISel time, we can look for this particular pattern. One where we have a "MOVCC" that uses the flag off of a CMPZ that itself is comparing an AND instruction to 0. Something like this (greatly simplified): %r0 = ISD::AND ... ARMISD::CMPZ %r0, 0 @ sets [CPSR] %r0 = ARMISD::MOVCC 0, -26 @ reads [CPSR] All we have to do is convert the "ISD::AND" into an "ARM::ANDS" that sets [CPSR] when it's zero. The zero value will all ready be in the %r0 register and we only need to change it if the AND wasn't zero. Easy! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f6dec8f4d0b359d3cf91f03f23b1906a7833725 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Aug 31 22:38:00 2010 +0000 Some fixes for NetBSD git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65eecd5b9c0c384e219a80f28f7282e1253f1da5 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 31 22:35:05 2010 +0000 Use x86 specific MOVSLDUP node, add more patterns to match it and remove useless load nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112661 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81446e98790f7f14803aee18abdfd34c055db76f Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 31 22:22:42 2010 +0000 Reapply r112623. Included additional check for unused byval argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112659 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3176c8295805447473e6d0f1d8f14e91d87bd0ab Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 31 22:22:11 2010 +0000 Use x86 specific MOVSHDUP node and add more patterns to match it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112657 91177308-0d34-0410-b5e6-96231b3b80d8 commit f54c970b88c53d765cb6b37db3904b5b4ad02af6 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 31 22:05:37 2010 +0000 And ANDS pattern to match the t2ANDS pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72c532e8171694cc3841f67c5817650561a3f98a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 31 22:01:07 2010 +0000 Stack slot access methods are in TargetInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112653 91177308-0d34-0410-b5e6-96231b3b80d8 commit a80bb49dcb8f43ba5f89e4f1c9f3bb333bccec5b Author: Dale Johannesen <dalej@apple.com> Date: Tue Aug 31 21:53:15 2010 +0000 Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112652 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b97053ae1d147a353d34b47fa8471742d1062f0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 31 21:51:07 2010 +0000 Make %EFLAGS unallocatable. No CCR virtual registers should exist, and %EFLAGS is used in ways that can surprise RegAllocFast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112650 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c1f8ce127d9e6dd95ba4673f11f9e6417863c05 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 31 21:51:05 2010 +0000 Track liveness of unallocatable, unreserved registers in machine DCE. Reserved registers are unpredictable, and are treated as always live by machine DCE. Allocatable registers are never reserved, and can be used for virtual registers. Unreserved, unallocatable registers can not be used for virtual registers, but otherwise behave like a normal allocatable register. Most targets only have the flag register in this set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 678b28046f0755485adf6f65f15bf2f63e8b8d65 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 31 21:38:49 2010 +0000 Use MOVHLPS node instead of matching using movhlps and movhlps_undef pattern fragments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c025cd047d5d5b82d9127e58d18ab1e984d290a Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 31 21:21:25 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112643 91177308-0d34-0410-b5e6-96231b3b80d8 commit f07f556a7929ca893da8242fad93f2e0377b098f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 31 21:15:21 2010 +0000 Use MOVLHPS and MOVHLPS x86 nodes whenever possible. Also remove some useless nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112642 91177308-0d34-0410-b5e6-96231b3b80d8 commit c80edaac7f7a341147292ed20cb17526f4e98722 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 31 20:58:44 2010 +0000 Revert r112432. It appears to be exposing a problem in the emacs build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e78e48a7de9a71babcfedc896a11b90b4279e14 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 20:27:17 2010 +0000 Merge 2010-08-31-InfiniteRecursion.ll into crash.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 662c6df3fe9f0e358c17481a6062b2a4baab60f1 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 20:26:04 2010 +0000 More cleanups of my JumpThreading transforms, including extracting some duplicated code into a helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112634 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3a778e3163654505b28d65ca1315bab73e2d868 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 31 19:54:25 2010 +0000 Ignore unallocatable registers in RegAllocFast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112632 91177308-0d34-0410-b5e6-96231b3b80d8 commit 117d3b7f711724de1da3197dc3217fb1f9da8067 Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 31 19:41:03 2010 +0000 Revert r112623. It is causing self host build failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112631 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cd72576fda373af2a5e4b6a85fbbb037d9ea3e2 Author: Duncan Sands <baldrick@free.fr> Date: Tue Aug 31 19:40:21 2010 +0000 Update the Ada instructions to LLVM 2.7 (from LLVM 2.5). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112630 91177308-0d34-0410-b5e6-96231b3b80d8 commit 145a3c89779c49fbca943172cb25a0d918f94304 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 19:24:27 2010 +0000 Add an RAII helper to make cleanup of the RecursionSet more fool-proof. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67cee446e11901ff6780a7814a30f345ae716cf9 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 18:55:52 2010 +0000 Only try to clean up the current block if we changed that block already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112625 91177308-0d34-0410-b5e6-96231b3b80d8 commit 183d454807c3be0718d6a2183c6ce187bc4f38ae Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 31 18:52:31 2010 +0000 SP relative offsets need to be adjusted by the local allocation size when determining if they're likely to be in range of the SP when resolving frame references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112624 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec6b0698c169db171c1ae6ce31d9dc61c65ef858 Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 31 18:50:09 2010 +0000 Remember byval argument's frame index during argument lowering and use this info to emit debug info. Fixes Radar 8367011. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112623 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa55aa15cc118ea7d4ea482fddd33d653b6b47ea Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 31 18:49:31 2010 +0000 this assert should just be a condition, since this function is just asking if the offset is legally encodable, not actually trying to do the encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112622 91177308-0d34-0410-b5e6-96231b3b80d8 commit 991720150dbf00d93aeb66536b240b7a64a46fe9 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 18:49:12 2010 +0000 Add a test for the duplicated-conditional situation illutrated by PR5652. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112621 91177308-0d34-0410-b5e6-96231b3b80d8 commit b54f92d539f467550b074efeccbd08d7bcf48a3c Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 18:48:48 2010 +0000 Refactor my fix for PR5652 to terminate the predecessor lookups after the first failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2544118427754497ba2bc3293f6db24813fee751 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 31 18:44:03 2010 +0000 merge two tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112617 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c139039aa5a9a6093b47fed9979f0eaf780491a Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 18:16:29 2010 +0000 Manually reduce this testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112615 91177308-0d34-0410-b5e6-96231b3b80d8 commit e36821d2126a0cf85368a77f0174a9f4f881c75b Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 31 18:05:08 2010 +0000 merge two tests and convert to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04440e3aabe527421ecc0268cf8e21750b3097e3 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 17:59:07 2010 +0000 Add a micro-test for the transforms I added to JumpThreading. I have not been able to find a way to test each in isolation, for a few reasons: 1) The ability to look-through non-i1 BinaryOperator's requires the ability to look through non-constant ICmps in order for it to ever trigger. 2) The ability to do LVI-powered PHI value determination only matters in cases that ProcessBranchOnPHI can't handle. Since it already handles all the cases without other instructions in the def-use chain between the PHI and the branch, it requires the ability to look through ICmps and/or BinaryOperators as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18da2cbe4fc04e2dab17b794cbe3b06278991f83 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 31 17:58:47 2010 +0000 Update test for 112609 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98dbe5d16f4baaa6fb3f1243576385c1538ed674 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 31 17:58:19 2010 +0000 Improve virtual frame base register allocation heuristics. 1. Allocate them in the entry block of the function to enable function-wide re-use. The instructions to create them should be re-materializable, so there shouldn't be additional cost compared to creating them local to the basic blocks where they are used. 2. Collect all of the frame index references for the function and sort them by the local offset referenced. Iterate over the sorted list to allocate the virtual base registers. This enables creation of base registers optimized for positive-offset access of frame references. (Note: This may be appropriate to later be a target hook to do the sorting in a target appropriate manner. For now it's done here for simplicity.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112609 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc7d38f0348ce2f8687a75d2c00997e2bbe9e45f Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 31 17:56:47 2010 +0000 Speculatively revert r112433. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112608 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0754e677cf8637c6cfc9de61395f5f62fa880bf Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 31 17:03:33 2010 +0000 Allow creation of SHT_NULL sections, from Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112605 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f949408a56cd226480dca0c32bcc31f28542268 Author: Duncan Sands <baldrick@free.fr> Date: Tue Aug 31 09:05:06 2010 +0000 Stop using the dom frontier in DwarfEHPrepare by not promoting alloca's any more. I plan to reimplement alloca promotion using SSAUpdater later. It looks like Bill's URoR logic really always needs domtree, so the pass now always asks for domtree info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112597 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee5d8399a7aa6c0f416afd1ef3503e09373032fb Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Aug 31 08:29:37 2010 +0000 Fix an infinite loop; merging two functions will create a new function (if the two are weak, we make them thunks to a new strong function) so don't iterate through the function list as we're modifying it. Also add back the outermost loop which got removed during the cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112595 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b8f4a993a2b6bd923438f27848a844fd112ea68 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 07:55:56 2010 +0000 Don't perform an extra traversal of the function just to do cleanup. We can safely simplify instructions after each block has been processed without worrying about iterator invalidation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112594 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5af6a96ec8a6c81d1e7ec6338d55ad0d37d86d26 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 31 07:50:46 2010 +0000 - Cleanup some whitespaces. - Convert {0,1} and friends into 0b01, which is identical and more consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112593 91177308-0d34-0410-b5e6-96231b3b80d8 commit a36c27a335fb84de0dc7165db9a36f8e800c8586 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 07:50:31 2010 +0000 Rename test directory to reflect new pass name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112592 91177308-0d34-0410-b5e6-96231b3b80d8 commit e958bf5fdffa42fbc3a9c5af206686d856986cc0 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 07:48:34 2010 +0000 Rename ValuePropagation to a more descriptive CorrelatedValuePropagation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09f3ee682f62fe78359b127596974b572d40f02f Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 07:41:39 2010 +0000 Rename file to something more descriptive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112590 91177308-0d34-0410-b5e6-96231b3b80d8 commit e58fedd7f92811a1d7da877399fb061fe898a03e Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 07:36:34 2010 +0000 More Chris-inspired JumpThreading fixes: use ConstantExpr to correctly constant-fold undef, and be more careful with its return value. This actually exposed an infinite recursion bug in ComputeValueKnownInPredecessors which theoretically already existed (in JumpThreading's handling of and/or of i1's), but never manifested before. This patch adds a tracking set to prevent this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112589 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f02be1385a013f82cd2339145aeb59662ef65ee Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 31 06:36:46 2010 +0000 Cleanup Whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112587 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81e8dcea629c2cd4077533e13b2a905766fc47e7 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 31 06:36:33 2010 +0000 System: Fix getMagicNumber on windows. getMagicNumber was treating the _binary_ data it read in as a null terminated string. This resulted in the std::string calculating the length, and causing an assert in other code that assumed that the length it passed was the same as the length of the string it would get back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e8285f94be2df7c7d0a987db4f4c8abaf25589d Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 31 06:36:22 2010 +0000 Fix spelling/typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112585 91177308-0d34-0410-b5e6-96231b3b80d8 commit d76aa7b309bf33f3ad6251b20a8c1b636c644859 Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 31 06:12:08 2010 +0000 Offset is not always unsigned number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112584 91177308-0d34-0410-b5e6-96231b3b80d8 commit e841a56026bf902601d798ffd01372c9380feaca Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 31 06:11:28 2010 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112583 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02d29c1d3408a3fbb1798b5c081b7a90434df0bc Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Aug 31 05:53:05 2010 +0000 Switch to DenseSet, simplifying much more code. We now have a single iteration where we hash, compare and fold, instead of one iteration where we build up the hash buckets and a second one to fold. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112582 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8dcc3f80df8c22961e3037f41b4be2507f83a9f Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 31 04:41:06 2010 +0000 Remove r111665, which implemented store-narrowing in InstCombine. Chris discovered a miscompilation in it, and it's not easily fixable at the optimizer level. I'll investigate reimplementing it in DAGCombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112575 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd53742fef9bad1fd8e2d2aa5d02113ccf1d2fdc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 31 02:36:20 2010 +0000 zap unused method. x86 is the only user and already has a more powerfull version git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112571 91177308-0d34-0410-b5e6-96231b3b80d8 commit f84c9c080dbd95e2ff7ce1909ef306b10d924816 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 31 02:26:40 2010 +0000 Use X86ISD::MOVSS and MOVSD to represent the movl mask pattern, also fix the handling of those nodes when seeking for scalars inside vector shuffles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112570 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45dcc193710eba13f239b0eed2cb0b7fbc6dbde3 Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 31 01:28:42 2010 +0000 Rewrite slightly so we can expand for floating point types easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112568 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4a1e47e0a96036b046b3abac1dc67178be94412 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 31 01:27:49 2010 +0000 Add experimental -disable-physical-join command line option. Eventually, we want to disable physreg coalescing completely, and let the register allocator do its job using hints. This option makes it possible to measure the impact of disabling physreg coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112567 91177308-0d34-0410-b5e6-96231b3b80d8 commit de6ebdd65ed2455b9bc728f07e8b112f3c16527d Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 23:59:30 2010 +0000 Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112560 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11089a0754218cc4e126781b97bf05fe505f4d2b Author: Eric Christopher <echristo@apple.com> Date: Mon Aug 30 23:48:26 2010 +0000 If we have an unhandled type then assert, we shouldn't get here for things we can't handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112559 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56804511e33cc611a773e512329e8f92c65b4c19 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 30 23:47:24 2010 +0000 Update the descriptions of NoModRef and ModRef to be consistent with the descriptions of Mod and Ref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 349e21dbee0e8cfc768d4572c7c6f90d8497f6b6 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Aug 30 23:41:49 2010 +0000 Fix borken test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112555 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36ea1f756fce0867bc82c5878e8f29f48f639dc1 Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 23:37:41 2010 +0000 Combine these two tests, and make sure there's a newline at the end of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112554 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f10dcdcc156451ac60dbf5ea7deecd863609d4c Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 23:34:17 2010 +0000 Cleanups suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112553 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c40b4e9d2fa3b453357fa3ef7643b59fadc7cbc Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 23:22:36 2010 +0000 Re-apply r112539, being more careful to respect the return values of the constant folding methods. Additionally, use the ConstantExpr::get*() methods to simplify some constant folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112550 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd363cb40f938a9e7b6375fb5e78c21e3eb1a5b4 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Aug 30 22:50:36 2010 +0000 Expand MOVi32imm in ARM mode after regalloc. This provides scheduling opportunities (extra instruction can go in between MOVT / MOVW pair removing the stall). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112546 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63530c357ab39a8730e95b8514f091971f83756b Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 22:45:55 2010 +0000 Add statistics to evaluate this pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112545 91177308-0d34-0410-b5e6-96231b3b80d8 commit af16b922d3856661bc7729a8f84d5a2e51d4c25a Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 22:33:41 2010 +0000 Revert r112539. It accidentally introduced a miscompilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112543 91177308-0d34-0410-b5e6-96231b3b80d8 commit fab346d2b33aea49bb2e9f6e6695c0398b204287 Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 22:07:52 2010 +0000 Fixes and cleanups pointed out by Chris. In general, be careful to handle 0 results from ComputeValueKnownInPredecessors (indicating undef), and re-use existing constant folding APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d54f5253012e9b971cba9bceeabf91ca00d3613 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Aug 30 22:05:23 2010 +0000 Use the existing T2I_bin_s_irs pattern instead of creating T2I_bin_sw_irs, which is meant to do exactly the same thing. Thanks to Jim Grosbach for pointing this out! :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112538 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74ca9bc1962f84f060e19e89d9d5d755e780d3d3 Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Mon Aug 30 21:54:03 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a015893a88125b11fb426bbbbcae064cc40fd84 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Aug 30 21:52:40 2010 +0000 Remember to clear the shadow kill flag at the same time as clearing the real kill flag. This could cause duplicate kill flags when the same register was used twice in a continuous sequence of STRs. There is no small test case. <rdar://problem/8218046> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112534 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d2bbe06fae34f8e4f79c71b2bec8b804caee6d3 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 30 21:41:20 2010 +0000 Fix llc to run the verifier once, not twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56b8ad692de2e347972e5fa215c1ae3c9132dcbf Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 21:34:26 2010 +0000 Remove this from the main tree. I'll host it out of tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9378dfec2c67ac319ae4dd1679569e31310b9102 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 30 21:18:41 2010 +0000 Add comments explaining why it's not necessary to include the is-function-local flag in metadata uniquing bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66038c495304c6206c387653d69521e53a69d9b0 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 30 20:02:30 2010 +0000 Remove NEON vmovn intrinsic, replacing it with vector truncate operations. Auto-upgrade the old intrinsic and update tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112507 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5e15429d832ce54c1bce313bf845c1e7983c947 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Aug 30 19:49:58 2010 +0000 Make ARM add rN, sp, #imm instructions rematerializable. That's how the address of locals is calculated, so this should help relieve register pressure a bit. Recalculating the local address is almost always going to be better than spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1da6e24ed831138ed7fd1a07618c661c1576b3fe Author: Eric Christopher <echristo@apple.com> Date: Mon Aug 30 18:34:48 2010 +0000 Fix LLVM target initialization to deal with sociopathic outside projects that like to randomly define things like "X86", regenerate autoconf bits and update cmake. Fixes PR7852. Patch by Xerxes Rånby! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112499 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b2a743eaf8a58d4099a311c73ccc6c5be207b2e Author: Eric Christopher <echristo@apple.com> Date: Mon Aug 30 18:31:44 2010 +0000 Kill a couple of unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ab9d35d41d8baf77549513aa5a774054ad44822 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 30 18:16:27 2010 +0000 nuke dead ivar which was supposed to be committed with r112496 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112497 91177308-0d34-0410-b5e6-96231b3b80d8 commit d90895cfe89bd9fc34895d2219de61b9937fcf0b Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 30 18:12:35 2010 +0000 two changes: 1) nuke ConstDataCoalSection, which is dead. 2) revise my previous patch for rdar://8018335, which was completely wrong. Specifically, it doesn't make sense to mark __TEXT,__const_coal as PURE_INSTRUCTIONS, because it is for readonly data. templates (it turns out) go to const_coal_nt. The real fix for rdar://8018335 was to give ConstTextCoalSection a section kind of ReadOnly instead of Text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112496 91177308-0d34-0410-b5e6-96231b3b80d8 commit dcad6f9147ec88629310944c6032590a6c91c376 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 30 18:10:48 2010 +0000 When expanding NEON VST pseudo instructions, if the original super-register operand is killed, add it to the expanded instruction as an implicit kill operand instead of marking the individual subregs with kill flags. This should work better in general and also handles the case for VST3 where one of the subregs was not referenced in the expanded instruction and so was not marked killed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112494 91177308-0d34-0410-b5e6-96231b3b80d8 commit e09e3b548b75462492d301eb2f5da1eaf2c51806 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 30 17:20:17 2010 +0000 MCELF: The value of all common symbols is the offset from the start of the section. Patch by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cafb19e52f192bf51c2f2483a04e14933aec5cf Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 17:03:45 2010 +0000 It is possible to try to merge a not-constant with a constantrage, when dealing with ptrtoint ConstantExpr's. Unfortunately, the only testcase I have for this is huge and doesn't reduce well because the error is sensitive to iteration-order issues, since the problem only occurs when merging values in a particular order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 756e682f7ee8e839dbb5ed3fad9233f0a8ed56c8 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Aug 30 15:34:08 2010 +0000 Partially revert r112480. Caused test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112486 91177308-0d34-0410-b5e6-96231b3b80d8 commit 545319d9937de961a17341c4c87e7971a33ca452 Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Mon Aug 30 15:19:56 2010 +0000 coff-dump.py: Fix PR7996. Now it is compatible to Python-2.4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a156d5e389f1abedec838c4d2127afff92a2841 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Aug 30 15:08:02 2010 +0000 Fix constant-over-index.ll test on windows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112483 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba51ca51448775fff695ec4ea22aa1fe5743715d Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Aug 30 14:49:00 2010 +0000 Test: Fix LLVMC tests on CMake. The CMake build didn't define TEST_COMPILE_CXX_CMD. The tests assumed gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112480 91177308-0d34-0410-b5e6-96231b3b80d8 commit aefdf711ae92b28cf9ee2f3aecc00f23d455ef66 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 30 14:46:53 2010 +0000 Don't print two "0x" prefixes. Use a raw_ostream overload instead of llvm::format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f37167dec427421d7a40747c32e50dbf96b6405 Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Mon Aug 30 14:00:29 2010 +0000 EE/JIT: Do not invoke parent's ctors/dtors from main()! (PR3897) On Mingw and Cygwin, the symbol __main is resolved to callee's(eg. tools/lli) one, to invoke wrong duplicated ctors (and register wrong callee's dtors with atexit(3)). We expect, by callee, ExecutionEngine::runStaticConstructorsDestructors() is called before ExecutionEngine::runFunctionAsMain() is called. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112474 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02f95eab3aab830869807ff04c876646f020007a Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 30 12:00:16 2010 +0000 The value is offset from the start of the section for non-common symbols, submitted by Jordan Gordeev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112473 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ac4ce4e063728817ce66f67134cbae3e265e46e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 30 11:59:29 2010 +0000 Index external symbols by symbol table instead of parent section, by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112472 91177308-0d34-0410-b5e6-96231b3b80d8 commit 379beb1252b8a4da7c00a85afe859481dcff7bfb Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 30 11:56:55 2010 +0000 Mark all common symbols external. This is not exactly correct but it lets apps link for now and can be adjusted later. Patch by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112471 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51b66072d6cf7f2a514d7e798a6d60aeb35c87d7 Author: Duncan Sands <baldrick@free.fr> Date: Mon Aug 30 10:57:54 2010 +0000 Remove a hack that tries to understand incorrect triples from the Triple class constructor. Only valid triples should now be used inside LLVM - front-ends are now responsable for rejecting or correcting invalid target triples. The Triple::normalize method can be used to straighten out funky triples provided by users. Give this a whirl through the buildbots to see if I caught all places where triples enter LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112470 91177308-0d34-0410-b5e6-96231b3b80d8 commit 558da2c5d3eb6feb2ea59a67c374a2fdd2a4af99 Author: Duncan Sands <baldrick@free.fr> Date: Mon Aug 30 10:48:29 2010 +0000 Correct bogus module triple specifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112469 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91ed802c8d44eeef4b6abd1cf0b8fd901203589c Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 30 07:33:39 2010 +0000 Add a new example to the LLVM distribution: a trace-based Brainfuck compiler that uses LLVM as its code generator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112465 91177308-0d34-0410-b5e6-96231b3b80d8 commit 948294e4392dd9bcf78568bea395fe5432bc4b0b Author: Chandler Carruth <chandlerc@gmail.com> Date: Mon Aug 30 07:25:54 2010 +0000 Attempt to remove the MSIL backend from CMake as well based on Chris's r112375. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112464 91177308-0d34-0410-b5e6-96231b3b80d8 commit c921e297f8590885ac3d90d3974de256fdc3921b Author: Bill Wendling <isanbard@gmail.com> Date: Mon Aug 30 04:36:50 2010 +0000 Revert r112461. It was failing on PPC... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112463 91177308-0d34-0410-b5e6-96231b3b80d8 commit 526ae4353f867f242f1d077f23f0c74f1f19ae8f Author: Bill Wendling <isanbard@gmail.com> Date: Mon Aug 30 01:47:35 2010 +0000 Create Thumb2sI_cpsr and T2sI_cpsr. These new classes indicate that CPSR is the optional modified register (instead of reg0). Along with r112461 it will make sure that the optional define of CPSR is marked as "def" and will thus mark the instructions using these classes (t2ANDS*) as setting the 's' flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112462 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb4e15667452c3af77f5019e42226211aab9ec09 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Aug 30 01:36:05 2010 +0000 When adding a register, we should mark it as "def" if it can optionally define said (physical) register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112461 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61ad96ddfacb9335c9cab992f580028cf331ff45 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 22:28:18 2010 +0000 revert 112457, it looks like it broke selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112459 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f04d48c885fa553e2b42bd4442f83ab4ed50de2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 19:54:28 2010 +0000 rewrite DwarfEHPrepare to use SSAUpdater to promote its allocas instead of PromoteMemToReg. This allows it to stop using DF and DT, eliminating a computation of DT and DF from clang -O3. Clang is now down to 2 runs of DomFrontier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2700340de3991fc91ce98c548e1488bd9e9cbc2f Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 19:28:28 2010 +0000 inline function into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69e4619abc5cc3afcdef998ee58c74ae6dba31d1 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 18:42:23 2010 +0000 two changes: 1) make AliasSet hold the list of call sites with an assertingvh so we get a violent explosion if the pointer dangles. 2) Fix AliasSetTracker::deleteValue to remove call sites with by-pointer comparisons instead of by-alias queries. Using findAliasSetForCallSite can cause alias sets to get merged when they shouldn't, and can also miss alias sets when the call is readonly. #2 fixes PR6889, which only repros with a .c file :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112452 91177308-0d34-0410-b5e6-96231b3b80d8 commit e89e6aa8c2c6fd22e7431d57822bbab5706fa5f3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 18:22:25 2010 +0000 LICM does get dead instructions input to it. Instead of sinking them out of loops, just delete them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112451 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34a368473b742af8ce7a1f18bba92b9b248c93c7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 18:18:40 2010 +0000 use moveBefore instead of remove+insert, it avoids some symtab manipulation, so its faster (in addition to being more elegant) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112450 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4aa13417e64e1d6373b0e91ba71ea19a4792b5a Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 18:11:16 2010 +0000 revert 112448 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4288b7b52285a18a96d1c8b14b9f56ae6627cce1 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 18:03:33 2010 +0000 optimize LICM::hoist to use moveBefore. Correct its updating of AST to remove the hoisted instruction from the AST, since it is no longer in the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112448 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1adf10268e966b334b482c895ed6245851b675a Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 18:00:00 2010 +0000 fix some bugs (found by inspection) where LICM would not update LICM correctly. When sinking an instruction, it should not add entries for the sunk instruction to the AST, it should remove the entry for the sunk instruction. The blocks being sunk to are not in the loop, so their instructions shouldn't be in the AST (yet)! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112447 91177308-0d34-0410-b5e6-96231b3b80d8 commit b60c09a0447b50c2593e478bde2d9094264a3106 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 17:46:00 2010 +0000 rework the ownership of subloop alias information: instead of keeping them around until the pass is destroyed, keep them around a) just when useful (not for outer loops) and b) destroy them right after we use them. This should reduce memory use and fixes potential bugs where a loop is deleted and another loop gets allocated to the same address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112446 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19ebd4b19011b3193dddbcedf9f74faf6099e238 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 17:23:19 2010 +0000 apparently unswitch had the same "Feature". Stop its claims that it preserves domfrontier if it doesn't really. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a4c75360c220d30db50c8183cdfbf1a916d9be0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 17:21:35 2010 +0000 now that loop passes don't use DomFrontier, there is no reason for the unroller to pretend it supports updating it. It still has a horrible hack for DomTree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112444 91177308-0d34-0410-b5e6-96231b3b80d8 commit b200b458ba98a15244511be5017a44f50e356e6d Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 16:40:03 2010 +0000 Make IVUsers iterative instead of recursive. This has the side effect of reversing the order of most of IVUser's results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112442 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85eb172fcbcb1db541347d8c2d57939ff094b0ee Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 16:39:22 2010 +0000 Optionally rerun dedicated-register filtering after applying other filtering techniques, as those may allow it to filter out more obviously unprofitable candidates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112441 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3461853cd98cd8169c7c4b599f2181ed730ad4eb Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 16:32:54 2010 +0000 Fix several areas in LSR to do a better job keeping the main LSRInstance data structures up to date. This fixes some pessimizations caused by stale data which will be exposed in an upcoming change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112440 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a095d7e3027bd68d1ceafb887730fd815b0f371 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 16:09:42 2010 +0000 Refactor the three main groups of code out of NarrowSearchSpaceUsingHeuristics into separate functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112439 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6258ca254402c1f0d1f40c74ec46ef0fe7bc8c29 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 15:30:29 2010 +0000 Delete a bogus check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 010bb7bb8a83b35f8f8bbd5c1b5f337c3442209f Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 15:27:08 2010 +0000 Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112437 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c596b348bfcaf3a6b16cd63cb14bbcd160f02d0 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 15:21:38 2010 +0000 Move this debug output into GenerateAllReuseFormula, to declutter the high-level logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112436 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53a75bce96c1f545f4cb678ba762eba521e9e6ea Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 15:19:11 2010 +0000 Delete an unused declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c12c6b7b0c0954ca2012a481030dcae2923caad Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 15:18:49 2010 +0000 Do one lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f6323d4aeb6fc427b22b0715d5d382a8ac7aa4e Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 15:16:58 2010 +0000 Restructure the {A,+,B}<L> * {C,+,D}<L> folding so that it folds all applicable addrecs before recursing on getMulExpr, instead of recursing on getMulExpr for each one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112433 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ae2ed0ac1e8edad82f382328d40681e938e85c2 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 15:10:06 2010 +0000 Batch up subtracts along with adds, when analyzing long chains of operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112432 91177308-0d34-0410-b5e6-96231b3b80d8 commit f86ff447b42568c7b93e579184ba3a6a45b5467a Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 15:07:13 2010 +0000 Micro-optimize GroupByComplexity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112431 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a50995cabfa539050284df7d2ae211f639dc14b Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 14:55:19 2010 +0000 Hold AddRec->getLoop() in a variable, to make the Mul code more consistent with the Add code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112430 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39b5f6cd11a300e6919220ef12bd8dd554136104 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 14:53:34 2010 +0000 Rename a variable, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112429 91177308-0d34-0410-b5e6-96231b3b80d8 commit b43c08807dfb28f9f8ccb7a1a7b2d73d7eba6ace Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 14:52:02 2010 +0000 Use iterators instead of indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112428 91177308-0d34-0410-b5e6-96231b3b80d8 commit 988c6e1d17415010f14a948c5fd5f72db6600214 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 14:50:21 2010 +0000 Don't worry about union types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112427 91177308-0d34-0410-b5e6-96231b3b80d8 commit 602409ab29460320ea0f7e828b9c5e8fe9210192 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 14:49:42 2010 +0000 Make this test less dependent on register allocation choices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112426 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e5325425e542754f348f92c9d653bde8b3cd271 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 14:49:00 2010 +0000 Use exec. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112425 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1792651fea5a8bac741dc94eb25b59bf4c06dd72 Author: Dan Gohman <gohman@apple.com> Date: Sun Aug 29 14:48:15 2010 +0000 Delete an unused declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112424 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa3fd26ce2925c4f89d6a30023478675fef0daf6 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Sun Aug 29 12:41:50 2010 +0000 Fix lowering of INSERT_VECTOR_ELT in SPU. The IDX was treated as byte index, not element index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83c1116e3fe53a1e390722a9d27a30b3c94da389 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 29 11:31:07 2010 +0000 Fix whitespaces. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 813619f1307f7e559f1bbd365cf58ebf30f81dab Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 07:05:51 2010 +0000 Stop explicitly scheduling domfrontier before the loop passes, since none of them use it. With this, we now only run domfrontier (an N^2 analysis) 3 times at clang -O3: once for "early" per-function cleanup, once at the start of the per-function pipeline to support SRoA, and once late because the EHPrepare class uses it. EHPrepare needs to stop using it, this is silly and wasteful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112420 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46fb28114a688c7207855cf19121bc7afdf06ea2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 07:02:56 2010 +0000 licm preserves the cfg, it doesn't have to explicitly say it preserves domfrontier. It does preserve AA though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 130c0d0e8d6ec63a8fc8c19afa97861914b90fe0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 06:49:44 2010 +0000 now that it doesn't use the PromoteMemToReg function, LICM doesn't require DomFrontier. Dropping this doesn't actually save any runs of the pass though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112418 91177308-0d34-0410-b5e6-96231b3b80d8 commit e869cffef1750ea2ba30d1f0e7cd66b2e0948aab Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 06:43:52 2010 +0000 completely rewrite the memory promotion algorithm in LICM. Among other things, this uses SSAUpdater instead of PromoteMemToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89d703307026e7f5f1c001240d7b1a07b9a4aafb Author: Bob Wilson <bob.wilson@apple.com> Date: Sun Aug 29 05:57:34 2010 +0000 Remove NEON vaddl, vaddw, vsubl, and vsubw intrinsics. Instead, use llvm IR add/sub operations with one or both operands sign- or zero-extended. Auto-upgrade the old intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112416 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dadbc5ef0f3532e146e31b2ceda54bd809687c8 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 05:12:21 2010 +0000 use getUniqueExitBlocks instead of a manual set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112412 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dbbc25b09da09dea31836a11b243a896186371f Author: Eli Friedman <eli.friedman@gmail.com> Date: Sun Aug 29 05:07:40 2010 +0000 A couple of small missed optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112411 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0b753a2691953dcb980e5957f6bc1cb3e3afaed Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 04:55:06 2010 +0000 reimplement LICM::sink to use SSAUpdater instead of PromoteMemToReg. This leads to much simpler code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112410 91177308-0d34-0410-b5e6-96231b3b80d8 commit d21f9afb652570b6d81e4148aa4cc02e7ad7b488 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 04:54:06 2010 +0000 implement SSAUpdater::RewriteUseAfterInsertions, a helpful form of RewriteUse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59b65be34547656f34bd38961de55855cdd44958 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 04:53:24 2010 +0000 remove dead proto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 744c306426003a8eec9ae22456b88db78aaf5f37 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 04:28:20 2010 +0000 reduce indentation in LICM::sink by using early exits, use getUniqueExitBlocks instead of getExitBlocks and a manual set to eliminate dupes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112405 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0d28897381b0bbf11ca3bedfefabeb613818da4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 04:23:04 2010 +0000 modernize this pass a bit: use efficient set/map and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112404 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00b8c531373b5fb6f7eb3724fcb567cc5144cf26 Author: Duncan Sands <baldrick@free.fr> Date: Sun Aug 29 04:22:35 2010 +0000 Flesh out the list of things I've worked on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112403 91177308-0d34-0410-b5e6-96231b3b80d8 commit d790bce2281a615262bceb08a8a1b78839395ed2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 04:14:47 2010 +0000 when merging two alias sets, the result set is volatile if either of the sets is volatile. We were dropping the volatile bit of the merged in set, leading (luckily) to assertions in cases like PR7535. I cannot produce a testcase that repros with opt, but this is obviously correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20321b2e9ca3e467acc782f1f7992db3440bc9dd Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 04:13:43 2010 +0000 more cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ab2d4f63a10b486f54a25c931fbae3d80c121e3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 04:06:55 2010 +0000 clean this up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112400 91177308-0d34-0410-b5e6-96231b3b80d8 commit f82fd1f48c5e0da90417929e31706f4d6fb354e3 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 29 03:55:31 2010 +0000 - Add a parameter to T2I_bin_irs for those patterns which set the S bit. - Create T2I_bin_sw_irs to be like T2I_bin_w_irs, but that it sets the S bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112399 91177308-0d34-0410-b5e6-96231b3b80d8 commit 386510f683782d1165277f844557cc8c832086ff Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 03:19:04 2010 +0000 merge a bunch of shuffle tests into sse2.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112398 91177308-0d34-0410-b5e6-96231b3b80d8 commit b69853836ce79544edd28e23aecb4e5a8e106d58 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 03:08:08 2010 +0000 add a bunch more common shuffles to the instprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112397 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ff99a4c165c3812fdb4d4aae0303600d2a0eeb9 Author: Chris Lattner <sabre@nondot.org> Date: Sun Aug 29 03:07:47 2010 +0000 add some nounwind's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f44cf9fc30d31e118f95e915fb971cc167c4524 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 29 03:06:09 2010 +0000 Name ANDflag to ANDS, which is less stupid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112395 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50a3ef3b66a1bb79039a8ceec5b8b9e503c9b0c3 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 29 03:02:28 2010 +0000 File missing from last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112394 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fb8635590c9f613c43a3e670b9ef9d93bf747e7 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 29 03:02:11 2010 +0000 Create an ARMISD::AND node. This node is exactly like the "ARM::AND" node, but it sets the CPSR register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112393 91177308-0d34-0410-b5e6-96231b3b80d8 commit 654304500e0c484ea058214b122b283e67005a8c Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Sat Aug 28 21:12:51 2010 +0000 Minor change. This is test for git svn dcommit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112389 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91c823aee125382595d148d5df6a21b511585de0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 20:42:31 2010 +0000 I have manually decoded the imm field of an insertps one too many times. This patch causes llc and llvm-mc (which both default to verbose-asm) to print out comments after a few common shuffle instructions which indicates the shuffle mask, e.g.: insertps $113, %xmm3, %xmm0 ## xmm0 = zero,xmm0[1,2],xmm3[1] unpcklps %xmm1, %xmm0 ## xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] pshufd $1, %xmm1, %xmm1 ## xmm1 = xmm1[1,0,0,0] This is carefully factored to keep the information extraction (of the shuffle mask) separate from the printing logic. I plan to move the extraction part out somewhere else at some point for other parts of the x86 backend that want to introspect on the behavior of shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112387 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a8cc301ac4a8bc290f981da25b56e0fef95965e Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 20:40:28 2010 +0000 fixme accomplished git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112386 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c8c732b042693bd808d33f189f632f2577e4e78 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 20:34:35 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112385 91177308-0d34-0410-b5e6-96231b3b80d8 commit 525ca7966cae7425a4c149b00f9562527ea3a13d Author: NAKAMURA Takumi <geek4civic@gmail.com> Date: Sat Aug 28 20:24:43 2010 +0000 Add me to the "blame list"! And it is my 1st test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112384 91177308-0d34-0410-b5e6-96231b3b80d8 commit f94de99d9b1bc709f287551c03a3bd354a30a014 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 28 20:14:05 2010 +0000 Remove obsolete keywords which are no longer relevant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112382 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9a08e0364f3a6c46742b360c3178453ce4fee76 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 28 20:11:28 2010 +0000 Remove unions from the vim syntax highlighting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7477e23b04c16b31f1d2912b6c866334c5c6efb1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 17:59:08 2010 +0000 fix the buildvector->insertp[sd] logic to not always create a redundant insertp[sd] $0, which is a noop. Before: _f32: ## @f32 pshufd $1, %xmm1, %xmm2 pshufd $1, %xmm0, %xmm3 addss %xmm2, %xmm3 addss %xmm1, %xmm0 ## kill: XMM0<def> XMM0<kill> XMM0<def> insertps $0, %xmm0, %xmm0 insertps $16, %xmm3, %xmm0 ret after: _f32: ## @f32 movdqa %xmm0, %xmm2 addss %xmm1, %xmm2 pshufd $1, %xmm1, %xmm1 pshufd $1, %xmm0, %xmm3 addss %xmm1, %xmm3 movdqa %xmm2, %xmm0 insertps $16, %xmm3, %xmm0 ret The extra movs are due to a random (poor) scheduling decision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112379 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfb87234eed280fbda38313010ec7b0844fb31ca Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 17:28:30 2010 +0000 fix the BuildVector -> unpcklps logic to not do pointless shuffles when the top elements of a vector are undefined. This happens all the time for X86-64 ABI stuff because only the low 2 elements of a 4 element vector are defined. For example, on: _Complex float f32(_Complex float A, _Complex float B) { return A+B; } We used to produce (with SSE2, SSE4.1+ uses insertps): _f32: ## @f32 movdqa %xmm0, %xmm2 addss %xmm1, %xmm2 pshufd $16, %xmm2, %xmm2 pshufd $1, %xmm1, %xmm1 pshufd $1, %xmm0, %xmm0 addss %xmm1, %xmm0 pshufd $16, %xmm0, %xmm1 movdqa %xmm2, %xmm0 unpcklps %xmm1, %xmm0 ret We now produce: _f32: ## @f32 movdqa %xmm0, %xmm2 addss %xmm1, %xmm2 pshufd $1, %xmm1, %xmm1 pshufd $1, %xmm0, %xmm3 addss %xmm1, %xmm3 movaps %xmm2, %xmm0 unpcklps %xmm3, %xmm0 ret This implements rdar://8368414 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 644a67e233fa0e6bf949c1b7a4dd48c8011c6144 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 17:15:43 2010 +0000 improve comments in the unpcklps generating logic, introduce a new EltStride variable instead of reusing NumElems variable for a non-obvious purpose. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112377 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb7d587ae6f58a32385c5cd0e23b6daa53024091 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Sat Aug 28 16:39:32 2010 +0000 Don't cast Win32 FILETIME structs to int64. Patch by Dimitry Andric! According to the Microsoft documentation here: http://msdn.microsoft.com/en-us/library/ms724284%28VS.85%29.aspx this cast used in lib/System/Win32/Path.inc: __int64 ft = *reinterpret_cast<__int64*>(&fi.ftLastWriteTime); should not be done. The documentation says: "Do not cast a pointer to a FILETIME structure to either a ULARGE_INTEGER* or __int64* value because it can cause alignment faults on 64-bit Windows." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112376 91177308-0d34-0410-b5e6-96231b3b80d8 commit a534a8d6491e94965262e7fab195e6c766bf54e3 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 16:33:36 2010 +0000 remove the MSIL backend. It isn't maintained, is buggy, has no testcases and hasn't kept up with ToT. Approved by Anton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 055d5e741b770cada50bfcc88417e810c6113364 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 28 10:29:41 2010 +0000 Update ocaml test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2727023a5b92484fadb63a2d1251827389c15bde Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 28 09:47:42 2010 +0000 Remove unions from the ocaml bindings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112363 91177308-0d34-0410-b5e6-96231b3b80d8 commit 711e9645c78121cdec904604fcda090654c8e89f Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Aug 28 05:12:57 2010 +0000 Use pseudo instructions for VST1 and VST2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112357 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04398f88f3c8fb24e0e2fea554a0ef3358ddd1ee Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 04:09:24 2010 +0000 remove unions from LLVM IR. They are severely buggy and not being actively maintained, improved, or extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112356 91177308-0d34-0410-b5e6-96231b3b80d8 commit 526ac099f1a3844b0c78fc84530d6d73e7d1d9e5 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 03:51:24 2010 +0000 remove the ABCD and SSI passes. They don't have any clients that I'm aware of, aren't maintained, and LVI will be replacing their value. nlewycky approved this on irc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29579e78fb8c4376ee1aaa85c1ff1dff09122520 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 03:45:03 2010 +0000 remove dead proto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112354 91177308-0d34-0410-b5e6-96231b3b80d8 commit a34e648ca372dbcac37d88d4d3765bbdfc00142a Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 03:43:50 2010 +0000 more dead thing zapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112353 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0045af941abfc54ba08d11eb6e2d391fc574ccd7 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 03:42:45 2010 +0000 zap dead method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112352 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92c0e655cf9d66b5fb5e9c305259875bbd6f488c Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 03:36:51 2010 +0000 for completeness, allow undef also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26a3c1d629a0bce3704946d674308bf26f184220 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 03:21:03 2010 +0000 squish dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112350 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5bbefc3a608fdbb0d3ac3fe8e2288d99497234c Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 03:18:45 2010 +0000 zap dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83508a96c22f05683e9b2435fd19a1f0099f0b13 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Aug 28 02:46:39 2010 +0000 Clean up the logic of vector shuffles -> vector shifts. Also teach this logic how to handle target specific shuffles if needed, this is necessary while searching recursively for zeroed scalar elements in vector shuffle operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112348 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76a2df8a4a776709a5f48eea40308c79ffdd11d8 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 01:50:57 2010 +0000 handle the constant case of vector insertion. For something like this: struct S { float A, B, C, D; }; struct S g; struct S bar() { struct S A = g; ++A.B; A.A = 42; return A; } we now generate: _bar: ## @bar ## BB#0: ## %entry movq _g@GOTPCREL(%rip), %rax movss 12(%rax), %xmm0 pshufd $16, %xmm0, %xmm0 movss 4(%rax), %xmm2 movss 8(%rax), %xmm1 pshufd $16, %xmm1, %xmm1 unpcklps %xmm0, %xmm1 addss LCPI1_0(%rip), %xmm2 pshufd $16, %xmm2, %xmm2 movss LCPI1_1(%rip), %xmm0 pshufd $16, %xmm0, %xmm0 unpcklps %xmm2, %xmm0 ret instead of: _bar: ## @bar ## BB#0: ## %entry movq _g@GOTPCREL(%rip), %rax movss 12(%rax), %xmm0 pshufd $16, %xmm0, %xmm0 movss 4(%rax), %xmm2 movss 8(%rax), %xmm1 pshufd $16, %xmm1, %xmm1 unpcklps %xmm0, %xmm1 addss LCPI1_0(%rip), %xmm2 movd %xmm2, %eax shlq $32, %rax addq $1109917696, %rax ## imm = 0x42280000 movd %rax, %xmm0 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112345 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6acf8921617581b1043af191d81487f0362000f Author: Duncan Sands <baldrick@free.fr> Date: Sat Aug 28 01:30:02 2010 +0000 Straighten out any triple strings passed on the command line before they hit the rest of the system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112344 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb3be5f479687a3fb0f81d0dd9abf12d479c7174 Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 28 01:20:38 2010 +0000 optimize bitcasts from large integers to vector into vector element insertion from the pieces that feed into the vector. This handles a pattern that occurs frequently due to code generated for the x86-64 abi. We now compile something like this: struct S { float A, B, C, D; }; struct S g; struct S bar() { struct S A = g; ++A.A; ++A.C; return A; } into all nice vector operations: _bar: ## @bar ## BB#0: ## %entry movq _g@GOTPCREL(%rip), %rax movss LCPI1_0(%rip), %xmm1 movss (%rax), %xmm0 addss %xmm1, %xmm0 pshufd $16, %xmm0, %xmm0 movss 4(%rax), %xmm2 movss 12(%rax), %xmm3 pshufd $16, %xmm2, %xmm2 unpcklps %xmm2, %xmm0 addss 8(%rax), %xmm1 pshufd $16, %xmm1, %xmm1 pshufd $16, %xmm3, %xmm2 unpcklps %xmm2, %xmm1 ret instead of icky integer operations: _bar: ## @bar movq _g@GOTPCREL(%rip), %rax movss LCPI1_0(%rip), %xmm1 movss (%rax), %xmm0 addss %xmm1, %xmm0 movd %xmm0, %ecx movl 4(%rax), %edx movl 12(%rax), %esi shlq $32, %rdx addq %rcx, %rdx movd %rdx, %xmm0 addss 8(%rax), %xmm1 movd %xmm1, %eax shlq $32, %rsi addq %rax, %rsi movd %rsi, %xmm1 ret This resolves rdar://8360454 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112343 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc750d34062a71d545989145aad097e71d125f24 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 28 00:51:03 2010 +0000 Completely disable tail calls when fast-isel is enabled, as fast-isel doesn't currently support dealing with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112341 91177308-0d34-0410-b5e6-96231b3b80d8 commit 382091b0adf2ae98206719ab891b7fe4c0642106 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 28 00:49:13 2010 +0000 Trim a #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112340 91177308-0d34-0410-b5e6-96231b3b80d8 commit db209353cd509f225ca286b68cdb997eeff3ec4b Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 28 00:39:27 2010 +0000 Fix an index calculation thinko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112337 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8e25519b7a2e7d132c30903a611d0a51996ff70 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Aug 28 00:20:11 2010 +0000 We don't need to custom-select VLDMQ and VSTMQ anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9254e44d1120f1fe2c893c0203217b0f6ef4721d Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 28 00:11:12 2010 +0000 Update CMake build. Add newline at end of file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112332 91177308-0d34-0410-b5e6-96231b3b80d8 commit e19c25cff95f847e069e9516ecf1cf566ae39120 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 27 23:57:52 2010 +0000 When merging Thumb2 loads/stores, do not give up when the offset is one of the special values that for ARM would be used with IB or DA modes. Fall through and consider materializing a new base address is it would be profitable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112329 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0921008bf6bbdf537926fd7e481fe661044b2293 Author: Owen Anderson <resistor@mac.com> Date: Fri Aug 27 23:31:36 2010 +0000 Add a prototype of a new peephole optimizing pass that uses LazyValue info to simplify PHIs and select's. This pass addresses the missed optimizations from PR2581 and PR4420. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112325 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8f04319212c955a9c933342810fda53997459b7 Author: Owen Anderson <resistor@mac.com> Date: Fri Aug 27 23:29:38 2010 +0000 Improve the precision of getConstant(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112323 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5755bf79d0d88a8106c13a3426cb1aba9b6d2d2 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 27 23:18:17 2010 +0000 Change ARM VFP VLDM/VSTM instructions to use addressing mode #4, just like all the other LDM/STM instructions. This fixes asm printer crashes when compiling with -O0. I've changed one of the NEON tests (vst3.ll) to run with -O0 to check this in the future. Prior to this change VLDM/VSTM used addressing mode #5, but not really. The offset field was used to hold a count of the number of registers being loaded or stored, and the AM5 opcode field was expanded to specify the IA or DB mode, instead of the standard ADD/SUB specifier. Much of the backend was not aware of these special cases. The crashes occured when rewriting a frameindex caused the AM5 offset field to be changed so that it did not have a valid submode. I don't know exactly what changed to expose this now. Maybe we've never done much with -O0 and NEON. Regardless, there's no longer any reason to keep a count of the VLDM/VSTM registers, so we can use addressing mode #4 and clean things up in a lot of places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112322 91177308-0d34-0410-b5e6-96231b3b80d8 commit f04a75a44a3be1381ff06b4809453aee25fc7eb6 Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 23:15:21 2010 +0000 tidy up test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63874210b2ff6e723c5f7ea5eab0e84ab272e489 Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 23:05:54 2010 +0000 no really, fix the test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112317 91177308-0d34-0410-b5e6-96231b3b80d8 commit e06802cbcd71b9c187e3e965a9717f6aa0e9ec77 Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 23:05:27 2010 +0000 fix this test. It's not clear what it's really testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9559218ea3aaebb8c26e790abecf85121359a370 Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 22:53:44 2010 +0000 Enhance the shift propagator to handle the case when you have: A = shl x, 42 ... B = lshr ..., 38 which can be transformed into: A = shl x, 4 ... iff we can prove that the would-be-shifted-in bits are already zero. This eliminates two shifts in the testcase and allows eliminate of the whole i128 chain in the real example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112314 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57d78a61ad06ef540423733c20a36697e117a234 Author: Devang Patel <dpatel@apple.com> Date: Fri Aug 27 22:25:51 2010 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112305 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8cb7dd444d1c92d08512b6c9a8dbd5a516d43f8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 22:24:38 2010 +0000 Implement a pretty general logical shift propagation framework, which is good at ripping through bitfield operations. This generalize a bunch of the existing xforms that instcombine does, such as (x << c) >> c -> and to handle intermediate logical nodes. This is useful for ripping up the "promote to large integer" code produced by SRoA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112304 91177308-0d34-0410-b5e6-96231b3b80d8 commit 154f6e8f778b009239be3c365fd62e205bdd5239 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 27 21:56:59 2010 +0000 Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112302 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7659d53c9a27f73fd10cb129ef67fce38adf6782 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 27 21:44:35 2010 +0000 Unsigned value cannot be < 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c0d51a9eb31166825896a6230fdfc3b68dd4ca6 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 27 21:39:59 2010 +0000 When merging adjacent operands, scan ahead and merge all equal adjacent operands at once, instead of just two at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112299 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5aedc15863dd258b35fb81d6a86aece0b379406 Author: Eric Christopher <echristo@apple.com> Date: Fri Aug 27 21:38:11 2010 +0000 Fix a couple of typos. Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112297 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7969ead630ddd868b37ff23416ac6035e7114bc Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 21:04:34 2010 +0000 remove some special shift cases that have been subsumed into the more general simplify demanded bits logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112291 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e504d892770755a8e6c73aafe27ca4ee0d177c5 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 27 20:45:56 2010 +0000 Make the {A,+,B}<L> + {C,+,D}<L> --> Other + {A+C,+,B+D}<L> transformation collect all the addrecs with the same loop add combine them at once rather than starting everything over at the first chance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0362c12bbc7c0db3a607c99855e856f8253b9dee Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 20:44:45 2010 +0000 merge and filecheckize test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112289 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a695b72f892ea0538b4603d7d0ae66be11de999 Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 20:42:10 2010 +0000 merge two tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112288 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e048b6cbfdf56df94d6a57f9b37fe6470afb229 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Aug 27 20:39:09 2010 +0000 Remove now unneeded command line flag that enables 'optimize compares.' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112287 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70870f8985c3ba8b8d9ea1882f05afc8aff58e83 Author: Owen Anderson <resistor@mac.com> Date: Fri Aug 27 20:32:56 2010 +0000 Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112286 91177308-0d34-0410-b5e6-96231b3b80d8 commit e193ff6625fae4ed7c882eea6c1fabf083210d3e Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 20:32:06 2010 +0000 teach the truncation optimization that an entire chain of computation can be truncated if it is fed by a sext/zext that doesn't have to be exactly equal to the truncation result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b0d97e5a3bb24f54c9aaf34cf96533d63a84e7b Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 27 18:55:03 2010 +0000 Switch ScalarEvolution's main Value*->SCEV* map from std::map to DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112281 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0806ce7a8fd0806216d7b5f5cb27632307cd5fae Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 18:49:08 2010 +0000 get this test passing on linux builders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112280 91177308-0d34-0410-b5e6-96231b3b80d8 commit 859269d08551a4e6673d144d0ff1604eb2dd57dc Author: Chris Lattner <sabre@nondot.org> Date: Fri Aug 27 18:31:05 2010 +0000 Add an instcombine to clean up a common pattern produced by the SRoA "promote to large integer" code, eliminating some type conversions like this: %94 = zext i16 %93 to i32 ; <i32> [#uses=2] %96 = lshr i32 %94, 8 ; <i32> [#uses=1] %101 = trunc i32 %96 to i8 ; <i8> [#uses=1] This also unblocks other xforms from happening, now clang is able to compile: struct S { float A, B, C, D; }; float foo(struct S A) { return A.A + A.B+A.C+A.D; } into: _foo: ## @foo ## BB#0: ## %entry pshufd $1, %xmm0, %xmm2 addss %xmm0, %xmm2 movdqa %xmm1, %xmm3 addss %xmm2, %xmm3 pshufd $1, %xmm1, %xmm0 addss %xmm3, %xmm0 ret on x86-64, instead of: _foo: ## @foo ## BB#0: ## %entry movd %xmm0, %rax shrq $32, %rax movd %eax, %xmm2 addss %xmm0, %xmm2 movapd %xmm1, %xmm3 addss %xmm2, %xmm3 movd %xmm1, %rax shrq $32, %rax movd %eax, %xmm0 addss %xmm3, %xmm0 ret This seems pretty close to optimal to me, at least without using horizontal adds. This also triggers in lots of other code, including SPEC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112278 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0a557ce511c9e79551ac5320cdc68fe7a1404ad Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 27 17:13:24 2010 +0000 Add alignment arguments to all the NEON load/store intrinsics. Update all the tests using those intrinsics and add support for auto-upgrading bitcode files with the old versions of the intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112271 91177308-0d34-0410-b5e6-96231b3b80d8 commit f623181f3cc769b8f7450044a0a308f3fc8220cb Author: Owen Anderson <resistor@mac.com> Date: Fri Aug 27 17:12:29 2010 +0000 Use LVI to eliminate conditional branches where we've tested a related condition previously. Update tests for this change. This fixes PR5652. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112270 91177308-0d34-0410-b5e6-96231b3b80d8 commit c38c18ef88e35e2d4986cb12b23475043465a853 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 27 15:26:01 2010 +0000 Optimize SCEVComplexityCompare. Use a 3-way return instead of a 2-way return to avoid needing two calls to test for equivalence, and sort addrecs by their degree before examining their operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112267 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fa5cff61d4408ac54c8e7f7cc21fd30d2af6b18 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 27 15:16:40 2010 +0000 Clarify a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112266 91177308-0d34-0410-b5e6-96231b3b80d8 commit f48bda2c4f0f7cd6ac0a952f076382755df0768d Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 27 15:16:09 2010 +0000 Parse " (Hidden)" and cope with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112265 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00c1a8a2988ec94acbe33d8f604a06458027cf77 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 27 15:15:31 2010 +0000 Default to looking for clang++ in the PATH, rather than trying to guess a path that will work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c413f20852607d27cc9a15371b8048235d41dfb Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Aug 27 14:43:06 2010 +0000 Properly handle passing of FP stuff to varargs function on Win64: value should be copied to the corresponding shadow reg as well. Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112262 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cc4fea240afad6d771aec421c524cf6a23685f2 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Aug 27 10:40:51 2010 +0000 MCELF: Port EmitInstruction changes from MachO streamer. Patch by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112260 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b75dc101c6bcc4fb17dd3d5a39b9ed48b0cf7a5 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Aug 27 10:38:39 2010 +0000 MCELF: Always overwrite FixedValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112259 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6d4e5fe222166789e439001ca120c11142d0ca5 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Fri Aug 27 02:49:45 2010 +0000 Fix the msvs 2010 build. The Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 implements parts of C++0x based on the draft standard. An old version of the draft had a bug that makes std::pair<T1*, T2*>(something, 0) fail to compile. This is because the template<class U, class V> pair(U&& x, V&& y) constructor is selected, even though it later fails to implicitly convert U and V to frist_type and second_type. This has been fixed in n3090, but it seems that Microsoft is not going to update msvc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 238d1b9fb45062736d0ea78dffd5e4f02caaa641 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 27 01:30:14 2010 +0000 X86: Fix an encoding issue with LOCK_ADD64mr, which could lead to very hard to find miscompiles with the integrated assembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112250 91177308-0d34-0410-b5e6-96231b3b80d8 commit 697794b96390864502e691f8d845cec331aea37d Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 26 23:35:15 2010 +0000 Revert r112213. It is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112242 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9bf183677b0d91e35c9ad0031b07a693ae8dbef Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 26 23:32:16 2010 +0000 Simplify eliminateFrameIndex() interface back down now that PEI doesn't need to try to re-use scavenged frame index reference registers. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112241 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0ce8c5b42824d116c4336679b8bab9b64b13a4e Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 26 22:53:27 2010 +0000 If node is not available then use FuncInfo.ValueMap to emit debug info for byval parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112238 91177308-0d34-0410-b5e6-96231b3b80d8 commit e50b7555dc5bb6aa91f43871fa1a64a64a11d6dd Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 26 22:42:12 2010 +0000 Remove the now obsolete frame index virtual re-use algorithm from PEI. Pre-RA virtual base registers handle this function, and more. A bit more cleanup to do on the interface to eliminateFrameIndex() after this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112237 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc6748f6ec00b5f8ce30e2876a163c7b7e092d73 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 22:23:39 2010 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d4a91a44e408884d8e68fd3497d0f0b9efdd362 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 22:20:47 2010 +0000 rename test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8486c44f33449ee119bbc7e62e4f9fac7fc8ac9c Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 22:14:59 2010 +0000 optimize "integer extraction out of the middle of a vector" as produced by SRoA. This is part of rdar://7892780, but needs another xform to expose this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57b39790ab6e4d91ecb369df2ef891c53570d36e Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 26 21:56:30 2010 +0000 tidy up a bit. no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 507b121978cde2d09deb581fa0c626321a0ad024 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 21:55:42 2010 +0000 optimize bitcast(trunc(bitcast(x))) where the result is a float and 'x' is a vector to be a vector element extraction. This allows clang to compile: struct S { float A, B, C, D; }; float foo(struct S A) { return A.A + A.B+A.C+A.D; } into: _foo: ## @foo ## BB#0: ## %entry movd %xmm0, %rax shrq $32, %rax movd %eax, %xmm2 addss %xmm0, %xmm2 movapd %xmm1, %xmm3 addss %xmm2, %xmm3 movd %xmm1, %rax shrq $32, %rax movd %eax, %xmm0 addss %xmm3, %xmm0 ret instead of: _foo: ## @foo ## BB#0: ## %entry movd %xmm0, %rax movd %eax, %xmm0 shrq $32, %rax movd %eax, %xmm2 addss %xmm0, %xmm2 movd %xmm1, %rax movd %eax, %xmm1 addss %xmm2, %xmm1 shrq $32, %rax movd %eax, %xmm0 addss %xmm1, %xmm0 ret ... eliminating half of the horribleness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d706ddb973d4e046c34f84d6ec7525229d0bb3d Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 21:51:41 2010 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ff3cca372fcbfa8b7af7de88eaced343525c007 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 21:50:56 2010 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112224 91177308-0d34-0410-b5e6-96231b3b80d8 commit e69bf1c3a1332c251a90d34a836f2f566f51c20c Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 21:35:52 2010 +0000 add m_BitCast for matching a bitcast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112222 91177308-0d34-0410-b5e6-96231b3b80d8 commit 647d91acc111f987bd142af3bfec540d3ddaa91a Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 26 21:29:54 2010 +0000 Turn off the scavenging based frame reg reuse briefly to measure whether it's still having a significant effect. It shouldn't be now that the pre-RA virtual base reg stuff is in. Assuming that's valididated by the nightly testers, we can simplify a lot of the PEI frame index code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112220 91177308-0d34-0410-b5e6-96231b3b80d8 commit feca189a5c972c11a629fc0333e925f8ea065378 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 26 20:53:12 2010 +0000 zap the now unused MVT::getIntVectorWithNumElements git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112218 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95854d84ddf2a1e441b6e4fea922d379d5c1d1d3 Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 26 20:33:42 2010 +0000 Speculatively revert r112207. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112216 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35492177974fa402cd748376b9727127d803a741 Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 26 20:32:32 2010 +0000 80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92f5061a33f7ad4dbea6ffe0bb846bc26b9130b4 Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 26 20:06:46 2010 +0000 Update DanglingDebugInfo so that it can be used to track llvm.dbg.declare also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44f49cfa3921b2a79ecd484ccb4c12ad8e66d133 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 26 18:51:29 2010 +0000 Use pseudo instructions for VST3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ef2f0f480b2f52d20530ad4bcb6f33d0aa48d1c Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 26 18:36:14 2010 +0000 Donot forget to resolve dangling debug info in a case where virtual register, used for a value, is initialized after a dbg intrinsic is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112207 91177308-0d34-0410-b5e6-96231b3b80d8 commit 563a32af10ac2bc7fe01d4d8b856d00a4e3e9629 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 26 18:33:51 2010 +0000 Reapply r112176 without removing the other CMN patterns (that was unintentional). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112206 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4ec520b17a51438a1ea7057452a734913b80c61 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 26 18:12:22 2010 +0000 Experimental clang-based code-completion support for vim. This currently depends on some clang patches which are not yet upstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112204 91177308-0d34-0410-b5e6-96231b3b80d8 commit def0ee15e4d18844981e7183ea134c97742855fb Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Aug 26 18:12:04 2010 +0000 MCELF: Fix a thinko of mine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112203 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d3773c19eb849ad6a9b3cf0f8189ec82b9bbcd0 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 26 18:08:11 2010 +0000 Fix comment typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112202 91177308-0d34-0410-b5e6-96231b3b80d8 commit be3b34819e0330d9c3d6c5cb2fd6febffbd93c1f Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 26 17:47:45 2010 +0000 Fix prototypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112200 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46089366189449829ef87b4e1f0ba4384801be27 Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 26 17:40:24 2010 +0000 Make JumpThreading smart enough to properly thread StrSwitch when it's compiled with clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112198 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6188a155c3993ed5ef5cfaf1fde227e6fba2af6 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Aug 26 17:23:02 2010 +0000 MCELF: Compensate for the addend on i386. Patch by Roman Divacky, with some cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112197 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae0bb53948c3883068987ec123e7c867aa2ef6f7 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 26 17:02:47 2010 +0000 Restrict the register to tGPR to make sure the str instruction will be encodable as a 16-bit wide instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 333601a1c4aae295fa36826bbbc42056cfb68f0f Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 26 15:50:25 2010 +0000 Revert r112176; it broke test/CodeGen/Thumb2/thumb2-cmn.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112191 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87def10306da514baf45a41c47738958f11a7df8 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 26 15:41:53 2010 +0000 Reapply r112091 and r111922, support for metadata linking, with a fix: add a flag to MapValue and friends which indicates whether any module-level mappings are being made. In the common case of inlining, no module-level mappings are needed, so MapValue doesn't need to examine non-function-local metadata, which can be very expensive in the case of a large module with really deep metadata (e.g. a large C++ program compiled with -g). This flag is a little awkward; perhaps eventually it can be moved into the ClonedCodeInfo class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112190 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1efce69379982893f64c104c91a2a6313de1a35e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Aug 26 15:25:35 2010 +0000 StringRef::compare_numeric also differed from StringRef::compare for characters > 127. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112189 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbe3d050dc3057e259f7d870e2dbf81b211f29d6 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Aug 26 14:21:08 2010 +0000 Do unsigned char comparisons in StringRef::compare_lower to be more consistent with compare in corner cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112185 91177308-0d34-0410-b5e6-96231b3b80d8 commit be815c0090189c08f618f74365954c1ceea40312 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 26 09:07:33 2010 +0000 There seems to be a (potential) hardware bug with the CMN instruction and comparison with 0. These two pieces of code should give identical results: rsbs r1, r1, 0 cmp r0, r1 mov r0, #0 it ls mov r0, #1 and: cmn r0, r1 mov r0, #0 it ls mov r0, #1 However, the CMN gives the *opposite* result when r1 is 0. This is because the carry flag is set in the CMP case but not in the CMN case. In short, the CMP instruction doesn't perform a truncate of the (logical) NOT of 0 plus the value of r0 and the carry bit (because the "carry bit" parameter to AddWithCarry is defined as 1 in this case, the carry flag will always be set when r0 >= 0). The CMN instruction doesn't perform a NOT of 0 so there is never a "carry" when this AddWithCarry is performed (because the "carry bit" parameter to AddWithCarry is defined as 0). The AddWithCarry in the CMP case seems to be relying upon the identity: ~x + 1 = -x However when x is 0 and unsigned, this doesn't hold: x = 0 ~x = 0xFFFF FFFF ~x + 1 = 0x1 0000 0000 (-x = 0) != (0x1 0000 0000 = ~x + 1) Therefore, we should disable *all* versions of CMN, especially when comparing against zero, until we can limit when the CMN instruction is used (when we know that the RHS is not 0) or when we have a hardware fix for this. (See the ARM docs for the "AddWithCarry" pseudo-code.) This is related to <rdar://problem/7569620>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112176 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef08896e8c0750e8461a31a3f9cadd183925296e Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 06:57:07 2010 +0000 Add a hackaround for PR7993 which is causing failures on x86 builders that lack sse2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 968d1fc94ddcc1991746cb18c4fabff7cac892d5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 05:52:42 2010 +0000 I think enough general codegen bugs are fixed to allow this to work on random hosts, lets see! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c9ad818686b19542170e4e5a50453c99b037b5b Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 05:51:22 2010 +0000 implement SplitVecOp_CONCAT_VECTORS, fixing the included testcase with SSE1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112171 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6b4561076eadb02f1d5733a3fb55ae6e2fe6334 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 26 05:33:30 2010 +0000 Use pseudo instructions for VST1d64Q. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 158b446d196254369eb827b9b36751699d6d19e1 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 05:25:05 2010 +0000 Make sure this forces the x86 targets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112169 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3257b2fc1c520fa61e9ac721f6d0fd619043b9e Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 05:24:29 2010 +0000 fix sse1 only codegen in x86-64 mode, which is something we apparently try to support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0335c5426d4bd5a75191f317df368d745505996e Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 26 03:48:11 2010 +0000 Revert r111922, "MapValue support for MDNodes. This is similar to r109117, except ...", it is causing *massive* performance regressions when building Clang with itself (-O3 -g). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112158 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6f8c7966940bc544e3c3ded877ece8e0c2b527f Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 26 03:48:08 2010 +0000 Revert r112091, "Remap metadata attached to instructions when remapping individual ...", which depends on r111922, which I am reverting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112157 91177308-0d34-0410-b5e6-96231b3b80d8 commit 610ea4e0e4b4e09ab1bbf2bbcf8badf5d45a4c4d Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 02:57:35 2010 +0000 zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112155 91177308-0d34-0410-b5e6-96231b3b80d8 commit 536de00aa69c10ada727daf944c6f3ace45bdf16 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Aug 26 02:29:53 2010 +0000 Updated CMake library dependencies. Removed unnecessary component name from llvm-link/CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112153 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a4668ea1f05bfd901e2fee013ab9a53736cacd3 Author: John McCall <rjmccall@apple.com> Date: Thu Aug 26 02:11:48 2010 +0000 SmallVector's growth policies don't like starting from zero capacity. I think there are good reasons to change this, but in the interests of short-term stability, make SmallVector<...,0> reserve non-zero capacity in its constructors. This means that SmallVector<...,0> uses more memory than SmallVector<...,1> and should really only be used (unless/until this workaround is removed) by clients that care about using SmallVector with an incomplete type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c8e531e71c3a3bb7824a9abb9f618a4df57adc7 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 01:14:37 2010 +0000 remove dead proto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112131 91177308-0d34-0410-b5e6-96231b3b80d8 commit df9e67455206e4fe2149ae325522bfc0fdcc3549 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 26 01:13:54 2010 +0000 zap dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a345c5fc4e4b1c3be81d21fde12d7ddaaf2ca18 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 26 01:02:53 2010 +0000 Fix PR7748 without using microsoft extensions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112128 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec068b6b742cf512b73ccd4b3a4d6e65516d964e Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 26 00:58:06 2010 +0000 Enable pre-RA virtual frame base register allocation. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112127 91177308-0d34-0410-b5e6-96231b3b80d8 commit d674fbf51c85c3d1355fa4998a2130a225b5a8c9 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 26 00:22:55 2010 +0000 Rewrite ExtractGV, removing a bunch of stuff that didn't fully work, and was over-complicated, and replacing it with a simple implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112120 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3bd9f824392c8f44ffe0cac21d1e4e29203c2dd Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 26 00:13:36 2010 +0000 Revert svn 107892 (with changes to work with trunk). It caused a crash if a VLD result was not used (Radar 8355607). It should also fix pr7988, but I haven't verified that yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112118 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd8051ca9a45c6dff206fa2122d12b548469fb0e Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 25 23:43:14 2010 +0000 temporarily disable this, which started failing on the llvm-i686-linux builder. I will investigate tonight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 784e14372e65556a1d7a251601b08e1a2ba8bd12 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 23:33:07 2010 +0000 Convert llvm-extract to use lazy loading. This makes it substantially faster on large modules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112110 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9af1e1d4200e1bb24f91636777049133aea03ee Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 25 23:31:42 2010 +0000 we should pattern match the SSE complex arithmetic ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112109 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfb07ef55609f78bde20e25fc5a65f2ec9cc9785 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Aug 25 23:27:42 2010 +0000 Start converting NEON load/stores to use pseudo instructions, beginning here with the VST4 instructions. Until after register allocation, we want to represent sets of adjacent registers by a single super-register. These VST4 pseudo instructions have a single QQ or QQQQ source register operand. They get expanded to the real VST4 instructions with 4 separate D register operands. Once this conversion is complete, we'll be able to remove the NEONPreAllocPass and avoid some fragile and hacky code elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112108 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2817c507bb12f0ab38dd5ee647bd1abde934d8cd Author: John McCall <rjmccall@apple.com> Date: Wed Aug 25 23:11:24 2010 +0000 Provide an explicit specialization of SmallVector at N=0 which does not require its type argument to be complete if no members are actually used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112106 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e9074937b95ef11c899656af2cb8271a8a54e64 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 25 23:05:45 2010 +0000 add a specialization for the MVT form of getTypeAction, since it is trivial. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112105 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2997e9d64d89744835aeb6398e0e0291bd23aa7c Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 25 23:00:45 2010 +0000 remove some llvmcontext arguments that are now dead post-refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16986ca25c2ce6d837591014b82af0e112a9dc85 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 25 22:49:25 2010 +0000 Change handling of illegal vector types to widen when possible instead of expanding: e.g. <2 x float> -> <4 x float> instead of -> 2 floats. This affects two places in the code: handling cross block values and handling function return and arguments. Since vectors are already widened by legalizetypes, this gives us much better code and unblocks x86-64 abi and SPU abi work. For example, this (which is a silly example of a cross-block value): define <4 x float> @test2(<4 x float> %A) nounwind { %B = shufflevector <4 x float> %A, <4 x float> undef, <2 x i32> <i32 0, i32 1> %C = fadd <2 x float> %B, %B br label %BB BB: %D = fadd <2 x float> %C, %C %E = shufflevector <2 x float> %D, <2 x float> undef, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef> ret <4 x float> %E } Now compiles into: _test2: ## @test2 ## BB#0: addps %xmm0, %xmm0 addps %xmm0, %xmm0 ret previously it compiled into: _test2: ## @test2 ## BB#0: addps %xmm0, %xmm0 pshufd $1, %xmm0, %xmm1 ## kill: XMM0<def> XMM0<kill> XMM0<def> insertps $0, %xmm0, %xmm0 insertps $16, %xmm1, %xmm0 addps %xmm0, %xmm0 ret This implements rdar://8230384 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5523e1b3cc818a58021babe2fb95571dc4f71346 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 25 22:45:53 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112099 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec4ab297a8af9ef0c95f336626652ceebc8bfe02 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 21:36:50 2010 +0000 Remap metadata attached to instructions when remapping individual instructions, not when remapping modules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21b7e372033b382b292b4e126961fd30d0eab46f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 25 21:26:37 2010 +0000 Revert this for now, PUNPCKLDQ dont operate on v4f32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112090 91177308-0d34-0410-b5e6-96231b3b80d8 commit f896c5635dc98dcc21ed02208fc818fa0c8f5cd2 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 25 21:11:02 2010 +0000 X86: Fix misencode of RI64mi8. This fixes OpenSSL / x86_64-apple-darwin10 / clang -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112089 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e25a99560f0a3c2ffd85f28660bd153baabccc7 Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 25 20:41:24 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112086 91177308-0d34-0410-b5e6-96231b3b80d8 commit e843348dda625b122c09112c29d8db12d4d7128f Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 25 20:39:26 2010 +0000 Remove dead argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cec653bf771b477028a7b5b9b01ff17f7f73b6f Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 25 20:34:28 2010 +0000 Add some statistics for PEI register scavenging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112084 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0efc425ca453b64aee04d0b4f667043cee5a3b1 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 20:23:38 2010 +0000 Add a FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112083 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5357514976a16b6f1134fe183b7657065a3c1b23 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 20:22:53 2010 +0000 Fix the bitcode reader to clear out function-specific state from MDValueList between each function, now that the bitcode writer is reusing the index space for function-local metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112082 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef191dd1a55169e0ce87353ed7bd26810deb2e67 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 20:20:21 2010 +0000 Fix a bug found by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f35733a80fb6b120fbc1bd21a9d8ac295257c1c Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 20:17:19 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112080 91177308-0d34-0410-b5e6-96231b3b80d8 commit 698cf196b0fb30fdee6704ce66f31d098f3d7f5d Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Aug 25 20:09:43 2010 +0000 MCELF: Use precomputed symbol indices, patch by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112079 91177308-0d34-0410-b5e6-96231b3b80d8 commit f76b3f2828ba23c225d7924008d3ae709375a9d9 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 19:28:39 2010 +0000 Fix header define to reflect the name of the file. Patch by Adam Treat! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112077 91177308-0d34-0410-b5e6-96231b3b80d8 commit df023ff56f8ad36ca6ba92edf97e2c0e5a8ee3f5 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Wed Aug 25 19:27:27 2010 +0000 MC: Fix inconsistant naming in COFF object writer. Patch by Cameron Esfahani. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112076 91177308-0d34-0410-b5e6-96231b3b80d8 commit 971fed7c58c5cc8b523eb684a13a82268a140476 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 25 19:11:34 2010 +0000 Don't override the var from the enclosing scope. When doing copy/paste/modify, it's apparently rather important to remember the 'modify' bit... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112075 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bed347febb10300c92e1a5f7e45f46cb626fa08 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 25 19:00:00 2010 +0000 zap dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112073 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bb11a1d2cfc79d408c671a7a4fd3914921c8e93 Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 25 18:52:02 2010 +0000 DIGlobalVariable can be used to encode debug info for globals that are directly folded into a constant by FE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112072 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5acbd4d25335ec078797a12a42298ae2cb105f9 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 18:37:04 2010 +0000 lto_codegen_set_gcc_path was removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112069 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6c97f16f20c5ecb75455fca91dd469d8fe40d31 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 18:22:12 2010 +0000 Fix a few missing entries in lto.exports. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112068 91177308-0d34-0410-b5e6-96231b3b80d8 commit c69f7fdd6c509d658f489d6c0308b567bbc4083d Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Aug 25 17:27:58 2010 +0000 Remove dead recursive function. Yay for clang -Wunused-function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112060 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd5252202d32e6db143c9be70d7d9bc251721a3d Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 17:11:16 2010 +0000 Clear FunctionLocalMDs in purgeFunction along with the rest of the function-specific state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f38c669d3c7eea1485c0c7a6bd05e38bc0f5a1d Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 17:09:50 2010 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112056 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0ba04f1fe6a89453eb9038b2c863d06e4a440af Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 25 17:09:03 2010 +0000 Eliminate an unnecessary cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112055 91177308-0d34-0410-b5e6-96231b3b80d8 commit e015fe3afb11be177d314fc1b8809fa8c0588faa Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 25 16:58:05 2010 +0000 ARM/Thumb2: Fix a misselect in getARMCmp, when attempting to adjust a signed comparison that would overflow. - The other under/overflow cases can't actually happen because the immediates which would trigger them are legal (so we don't enter this code), but adjusted the style to make it clear the transform is always valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112053 91177308-0d34-0410-b5e6-96231b3b80d8 commit e468d80f5af5f65ff3651d638d53fa6815b7652b Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 08:45:06 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b10960a4dee2b13016314a90d0e7d2b957014d8 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 08:44:54 2010 +0000 Remove getsect checks, the result is unused and is broken anyhow. Fixes PR7967. Owen: You added these, any reason? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112041 91177308-0d34-0410-b5e6-96231b3b80d8 commit d14fde974cf9f4a7179e3cdc175291560e3423cc Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 08:43:57 2010 +0000 Do type checks before we bother to do everything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112039 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b8a0b0ff141959b48afcc4f0318aed7a89a92d0 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 07:57:29 2010 +0000 Add another basic test cribbed from the x86 fast-isel tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112036 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22ea729a6d6290b3131e325a14e0bba6dad6a1f8 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 07:53:15 2010 +0000 Run this on thumb and arm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112035 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89ebd475fdd5a20305ae6ff902fb44a1d3d097ff Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Aug 25 07:50:11 2010 +0000 Fix nasty mingw32 bug, which e.g. prevented llvm-gcc bootstrap there. Mark _alloca call as clobberring EFLAGS, otherwise some DCE might remove other flags-clobberring stuff (e.g. cmp instructions) occuring after _alloca call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d75e4f39fb3d959b4df1755f2a50599acee4b1f Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 07:47:00 2010 +0000 Make this testcase actually executed with fast-isel on arm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112033 91177308-0d34-0410-b5e6-96231b3b80d8 commit 330e8acc6b5cba47f36c889a0c29c70eef34d1b8 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 07:23:49 2010 +0000 Reorganize load mechanisms. Handle types in a little less fixed way. Fix some todos. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d9dfa5199df6cf41674e34f4389100b4519a8c3 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 06:45:22 2010 +0000 Apparently this is needed for llvm-link to link. Untested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112029 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae89be442373412d9f6033bc11bd7e603d15d009 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 04:58:56 2010 +0000 Allow strict subclasses of register classes, this way we can handle ARM instructions with: foo GPR, rGPR which happens a lot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112025 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddfc13df52c42c9868c10f16b659f4318b8cf96a Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 25 03:40:20 2010 +0000 buildbot/valgrind: Ignore leaks in /usr/bin/as. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112022 91177308-0d34-0410-b5e6-96231b3b80d8 commit c593bb4361c093e2b95cec901bf283dd9c3539a4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 25 02:55:40 2010 +0000 PUNPCKLDQ should also be used for v4f32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112020 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4cab104063a4613d417d80cf4d9b6a7b1cb45bb Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 25 02:35:37 2010 +0000 teach lowering to get target specific nodes for pshufd, emulating the same isel behavior for now, so we can pass all vector shuffle tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112017 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ad39c244e22363895b999c372e03f35b70bafb4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 25 01:47:16 2010 +0000 Convert test to use filecheck and make it more specific git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112016 91177308-0d34-0410-b5e6-96231b3b80d8 commit 388e9131def0ca04e5b54f590eb3e9d826eed8b1 Author: Owen Anderson <resistor@mac.com> Date: Wed Aug 25 01:16:47 2010 +0000 In the default address space, any GEP off of null results in a trap value if you try to load it. Thus, any load in the default address space that completes implies that the base value that it GEP'd from was not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 529aa11d65d4ae55a5dbfd19df63973634c7ab52 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 25 00:41:18 2010 +0000 Split out register class subclassing to a separate function and clean up accordingly. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112008 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4854cc969ba139261ebcf044317d738bdd7d65f Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 24 23:21:59 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111996 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16ad35af7509cdc59b96d45ba244c6aa47561937 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 23:21:12 2010 +0000 Don't include the is-function-local bit in the FoldingSetNodeID for MDNodes, since this information is effectively implied by the operands. This allow allows the code to avoid doing a recursive is-it-really-function-local check in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2af2e9a5d7727a094cb63f63508f00dbf30cc94b Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 24 23:20:40 2010 +0000 split the vector case of getCopyFromParts out to its own function, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34ff0f793b0a96c0f35adb7f6fc3684667a33871 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 23:16:53 2010 +0000 Use Bits.data() instead of &Bits[0]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29f017245199511ba9534fc0328360bfa5a6f7be Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 24 23:10:06 2010 +0000 split the vector case out of getCopyToParts into its own function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e04b939bcd13847e8fdc7db7109e704108a122d Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 24 22:43:11 2010 +0000 tidy up, reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cc0c1cb3bded08fca6b8f480bc4672497d4a26a Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 24 22:34:11 2010 +0000 Fix predicate and add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111981 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee147d3e9e8dc4b04ecb07de77c7f764590c0fa0 Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 24 22:07:27 2010 +0000 Rework braindead conditionals I put in yesterday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111974 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f9043393d22678ed216afeb1ee767da6f96c918 Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 24 22:03:02 2010 +0000 Fix thumb2 mode loads to have the correct operand ordering. Add a todo to fix this in the port. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8df39e1d89b4eb79fed678483c185d9fdf2b9822 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 24 22:00:55 2010 +0000 NULL loads are only invalid in the default address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111972 91177308-0d34-0410-b5e6-96231b3b80d8 commit b900b304b28b9d8c336f7c176f7d560ddd2e4c5f Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 24 21:59:42 2010 +0000 Add support for inferring values for the default cases of switches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40dbb99821471525e4d0d15bd6eaa37f5827644c Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 24 21:19:33 2010 +0000 Add ARM heuristic for when to allocate a virtual base register for stack access. rdar://8277890&7352504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111968 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d41626bed1bde6a52137221f084d6f8054d1ea5 Author: Kevin Enderby <enderby@apple.com> Date: Tue Aug 24 21:14:47 2010 +0000 Change the parsing of .loc back to allow the LineNumber field to be optional as it is with other assemblers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111967 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d31f9549e0cd5b710836c8fdf1000467fad9328 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 24 21:04:52 2010 +0000 Fix COFF x86-64 relocations. PR7960. Multiple symbol reloc handling part of the patch by Cameron Esfahani. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111963 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86fd75703c3db67c8b1b359342808ae91c44a8a4 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 20:54:50 2010 +0000 XFAIL this on mingw, following remove_arguments_test.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 522b59f3691c7159ed3a63a47f4dbff79145f375 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 24 20:47:29 2010 +0000 Add support for inferring that a load from a pointer implies that it is not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111959 91177308-0d34-0410-b5e6-96231b3b80d8 commit d70a4a7c322074135ff2ad67e69b50b25150797a Author: Kevin Enderby <enderby@apple.com> Date: Tue Aug 24 20:32:42 2010 +0000 First bit of support for the dwarf .loc directive. This patch updates the needed parsing for the .loc directive and saves the current info from that into the context. The next patch will take the current loc info after an instruction is assembled and save that info into a vector for each section for use to build the line number tables. The patch after that will encode the info from those vectors into the output file as the dwarf line tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111956 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bbb054acc147724a64a912e4a82e18166ff39fd Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 20:23:51 2010 +0000 Add a testcase for basic bugpointing in the presence of metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ee03c98dc8ec0a663a189f61241ae680369fe75 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 24 20:00:52 2010 +0000 - Add the LinkerPrivateWeakDefAutoLinkage to the Ada bindings. - Support the LinkerWeak*Linkage types in llvm-nm and in LinkModules.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111952 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb4336f2ff30fdff828425a7c36165ebd7520b9b Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 24 19:37:56 2010 +0000 MC/X86: Tweak imul recognition, previous hack only applies for the imul form taking immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111950 91177308-0d34-0410-b5e6-96231b3b80d8 commit da7c20e883196bc75e84edc3d4c215acd2540028 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 19:37:11 2010 +0000 Link NamedMDNodes after linking GlobalValues, so that MDNodes which reference GlobalValues are properly remapped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111949 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14df6b9bbd15cd322f98fc496c4227cbd6bfe5c0 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 19:31:04 2010 +0000 When linking NamedMDNodes, remap their operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111948 91177308-0d34-0410-b5e6-96231b3b80d8 commit a86a6006dd971423084ddea4dd8ffdfe79f0ecea Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 24 19:24:18 2010 +0000 MC/X86: Add custom hack for recognizing "imul $12, %eax" and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f60ed72dda6acdf195d11a00637658b3e7493af Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 24 19:13:42 2010 +0000 MC/AsmParser: Change ParseExpression to use ParseIdentifier(), to support dollars in identifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1232333e2f8778d93dfcb87781f73b68d9f93398 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 24 19:13:38 2010 +0000 MC/X86: Warn on scale factors > 1 without index register, instead of erroring, for 'as' compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111945 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25d6828fa445d9f12f94699df490a1b716744c94 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 24 19:05:43 2010 +0000 Move enabling the local stack allocation pass into the target where it belongs. For now it's still a command line option, but the interface to the generic code doesn't need to know that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111942 91177308-0d34-0410-b5e6-96231b3b80d8 commit 120bac61d659732a53ec412e100df9810cfaa7a1 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 18:50:07 2010 +0000 Use MapValue in the Linker instead of having a private function which does the same thing. This eliminates redundant code and handles MDNodes better. MDNode linking still doesn't fully work yet though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111941 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ce275aa37e9c102fb98b3492e2f97744518044a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 24 18:12:12 2010 +0000 MC/Parser: Accept leading dollar signs in identifiers. - Implemented by manually splicing the tokens. If this turns out to be problematically platform specific, a more elegant solution would be to implement some context dependent lexing support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91cae8d7302527463b551ef69716b1a9be26a44d Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 18:09:44 2010 +0000 Don't cast away qualifiers with C-style casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7585541f8e2dd852c09f46edad69648afea71da0 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 24 18:04:52 2010 +0000 add ARM cmd line option to force always using virtual base regs when possible. Intended to help ease reproducing problems by increasing base register usage after heuristics for only using the when needed are in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111930 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0db59022af7538e35706d00862cefc02be0e10df Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 24 17:44:07 2010 +0000 Apply "Win32's Hybrid path separator in argv[0] should be accepted to bugpoint", patch by NAKAMURA Takumi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111929 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81ff9845e3dc51d8ff975b2b91e43c019fe3b902 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 24 17:34:39 2010 +0000 Relocate against parent if the symbol is not in section or it's a common symbol, from Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111925 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19b222f53d1eab216a3c0cbfc816ff8df24c2cd3 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 24 17:21:18 2010 +0000 Turn LVI on, previously detected failures should be fixed now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9061d8630b83e7d96a1a1e9ec3ec687514d7b8ed Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 17:10:10 2010 +0000 MapValue support for MDNodes. This is similar to r109117, except that it avoids a lot of unnecessary cloning by avoiding remapping MDNode cycles when none of the nodes in the cycle actually need to be remapped. Also it uses the new temporary MDNode mechanism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111922 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55a5beb98dc28492686e06ede4a67e1e5946cabf Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 15:55:12 2010 +0000 Fix X86's isLegalAddressingMode to recognize that static addresses need not be RIP-relative in small mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01bed7215f878ef805f6de5a13a187e93983f758 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 15:34:03 2010 +0000 MDNode, MDString, and NamedMDNode are not meant to be subclassed; make their protected members private. And remove an unnecessary explicit keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111915 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2f86de1812652b0b1448eb4f656dd9f86a2bd9b Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 14:35:45 2010 +0000 Add a comment explaining why this code doesn't just call ParseMetadataValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b191dc4d336122259d8f0b23bdb1f3cb0cae3f5 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 14:31:06 2010 +0000 Add a comment explaining why this code is more complex than it initially seems it should require. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111913 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0eb47212e094be8514c8471bc45a5a3a5ee5e1b Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Tue Aug 24 11:50:48 2010 +0000 Fix SPU BE to use all the available return registers. llc used to assert on the added testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111911 91177308-0d34-0410-b5e6-96231b3b80d8 commit d759bca004e8ccf711048d7101abb14d55451625 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Tue Aug 24 11:05:51 2010 +0000 Remove some dead code from SPU BE that remained from 64bit vector support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111910 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2f9034f156130fa678ff9bb3e45520f790a36ce Author: John McCall <rjmccall@apple.com> Date: Tue Aug 24 09:16:51 2010 +0000 Check in a couple of changes that I apparently never committed: - teach DifferenceEngine to unify successors of calls and invokes in certain circumstances - basic blocks actually don't have their own numbering; did that change? - add llvm-diff to the Makefile and CMake build systems git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111909 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90bfec8b0ba0c437b346f73d68014c2bd9cfbf4e Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 24 07:55:44 2010 +0000 Don't assume that all constants with integer types are ConstantInts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a761cc700a21548345e2496c274c772a52b0d12 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 02:40:27 2010 +0000 Add braces to fix dangling else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111896 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad05d652617f6223ba3c74df4ce8c1ad7667f5e9 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 02:24:03 2010 +0000 Extend function-local metadata to be usable as attachments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111895 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e98ca44b84e4115faf34596e3602a234d907763 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 02:10:52 2010 +0000 When we know we have an MDValue or MDString, call EnumerateMetadata directly instead of going through EnumerateValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111894 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9a500bd6a4e4eddbfe49c63d3b241b48f74a750 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 02:05:17 2010 +0000 Give ParseInstructionMetadata access to the PerFunctionState object. This is in preparation for generalizing its parsing of function-local values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111893 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d99f2b21c28ae977a8b095e5b85020334f05749 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 24 02:01:24 2010 +0000 Simplify this code. NamedMDNode operands are MDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111892 91177308-0d34-0410-b5e6-96231b3b80d8 commit 391d7b8f20776a52eabf5313262e08e905d1a611 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 24 01:16:15 2010 +0000 Use pshufhw and pshuflw in more cases and fix getTargetShuffleNode number of arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111890 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac9520af1c15a569bb86cc2b72beb98277106bd9 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 24 01:11:30 2010 +0000 Add comments for what the condition code symbols mean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111889 91177308-0d34-0410-b5e6-96231b3b80d8 commit e134b4e639b4e81fc9db34287b22d5b0f62f488a Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 24 01:10:52 2010 +0000 Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111887 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2e53a0e6250a8aeab2cc5f5f57084cce2c9cdbb Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Aug 24 01:10:22 2010 +0000 llvmc: Improve error handling in EmitEdgeClasses(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111886 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26f1e2b10b5b2fcc77f8e1c9fd019a0fb67f925f Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 24 01:10:04 2010 +0000 Fix the opcode and the operands for the load instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111885 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fbee0a09fdba1176a6adc634eb56d6e19ffaebf Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 24 00:50:47 2010 +0000 Add register class hack that needs to go away, but makes it more obvious that it needs to go away. Use loadRegFromStackSlot where possible. Also, remember to update the value map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111883 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a12e394f24a3871a1422a2d7cc03ec5ca7069dc Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 24 00:43:25 2010 +0000 fix rdar://7997827 - Accept and ignore LL and ULL suffixes on integer literals. Also fix 0b010 syntax to actually work while we're at it :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 580f9a1227baf634138e668b2c8f8424d564fc8f Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 24 00:07:24 2010 +0000 Add some more debugging code, make it more obvious that RegOffset is getting an address for an object and select some default values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111871 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6335518e9a17d6557bf6515b3953d5a129fbf659 Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 24 00:06:12 2010 +0000 Revert r107202. It is not adding any value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111870 91177308-0d34-0410-b5e6-96231b3b80d8 commit 857aec15de3034903472e7215f84f8553b48aa8f Author: Eric Christopher <echristo@apple.com> Date: Mon Aug 23 23:28:04 2010 +0000 Don't need the extra register here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111864 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba7da88ba74d77a773eb7241d0baece8821a0516 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Aug 23 23:21:23 2010 +0000 llvmc: Make syntax more consistent. CompilationGraph and LanguageMap definitions do not use special syntax anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111862 91177308-0d34-0410-b5e6-96231b3b80d8 commit 472851d4ae5ef24054873bfccd08f42568f88df4 Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 23 23:16:25 2010 +0000 Let FE use derived types for DW_TAG_friend. Patch by Alexander Herz! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111861 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8daccbcb9c457d52b8101a62466b164329f0c789 Author: Eric Christopher <echristo@apple.com> Date: Mon Aug 23 23:14:31 2010 +0000 Add some more "get address into register" code and a more TODOs/FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111860 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45e1fad21f2808de50c986f90e82b1743ed138e8 Author: Eric Christopher <echristo@apple.com> Date: Mon Aug 23 22:32:45 2010 +0000 Add an ARMFunctionInfo member and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51c24607a895517834a028a9225dcf098d592ffa Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 23 22:32:05 2010 +0000 Verify that a non-uniqued non-temporary MDNode is not deleted via MDNode::deleteTemporary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111853 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1533aa4cd5912abdc4078f0bdafb773227a85dd4 Author: Eric Christopher <echristo@apple.com> Date: Mon Aug 23 21:44:12 2010 +0000 Start getting ARM loads/address computation going. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111850 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5df513fc5458c67881bc4dc9645ed61ba9b4190 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 23 21:32:00 2010 +0000 Fix thinko. Having no tests is great ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111848 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd6267f94cdeac1f70ad5bbb4a940e28e53a3ffa Author: Jim Grosbach <grosbach@apple.com> Date: Mon Aug 23 21:29:29 2010 +0000 Remove the MFI storage of the local allocation block size. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111847 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52bf616eeca0f43484db960deef97582e79ad1b3 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 23 21:23:52 2010 +0000 Reduce code duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41d72706a2830cbec8eb6f86c3a018cbd1a599d6 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 23 21:19:37 2010 +0000 ELFObjectWriter: Run ComputeSymbolTable before recording relocations. This way we can use the information it has computed and don't have to recompute the same stuff over and over again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111844 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d571f7ada6d14b306a827b0b478ffe0fe31088a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Aug 23 20:41:02 2010 +0000 Start using target speficic nodes for shuffles: pshufhw and pshuflw git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111837 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31a2f34f9c40b8e58f3c8df491d3b128116dcad7 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Aug 23 20:40:38 2010 +0000 Better handling of local offsets for downwards growing stacks. This corrects relative offsets when there are offsets encoded in the instructions and simplifies final allocation in PEI. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111836 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e98612edbdacd3fe2b2758102cf2032174758dc Author: Gabor Greif <ggreif@gmail.com> Date: Mon Aug 23 20:30:51 2010 +0000 tyops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92d97d90fb0577c3ef37ed01c3b131c8f5670769 Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 23 19:59:27 2010 +0000 Turn LVI back off, I have a testcase now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111834 91177308-0d34-0410-b5e6-96231b3b80d8 commit e89086fc6f40eba4e1e77e7efa51b1f09986f616 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 23 19:39:25 2010 +0000 Add a new llvm.x86.int intrinsic, allowing access to the x86 int and int3 instructions. Patch by Peter Housel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111831 91177308-0d34-0410-b5e6-96231b3b80d8 commit 192db787480df57c0f5e5cc7117969d9354546b2 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Aug 23 19:24:16 2010 +0000 llvmc: Allow multiple LanguageMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111829 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39c172910f4f0ffa037bbd9f2538b808dbab422b Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Aug 23 19:24:12 2010 +0000 Add a TODO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111828 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb9bfca4d1b1575f4d26cd56e3c523cc7a0ec272 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Aug 23 19:24:08 2010 +0000 llvmc: Properly handle (error) in edge properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111827 91177308-0d34-0410-b5e6-96231b3b80d8 commit acfbb22137e02d251f4f07fb98df83786b15748e Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Aug 23 19:24:00 2010 +0000 llvmc: Do not mention plugins in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1993a69f61111220e60fa306f25663ccab7191c0 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Aug 23 19:23:54 2010 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111825 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc64ed193985fa6e2778cfff86aebecf7e5682ef Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 23 19:05:46 2010 +0000 Add the symbol offset to the relocation value when we relocate against section. By Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111824 91177308-0d34-0410-b5e6-96231b3b80d8 commit a41d7541009b073c0c365d032e3b485e28afdaca Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 23 18:43:24 2010 +0000 formatted_tool_output_file::close needs to flush its buffer before closing the underlying stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a84bb4aac6c43181e8d5d21f677e186cfb0628a Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 23 18:25:56 2010 +0000 Handle qualified constants that are directly folded by FE. PR 7920. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111820 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9be4a58d84f321f2f86f6dfa13515b681f743f9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 23 18:24:20 2010 +0000 Use the proper relocation section + cleanup, from Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111819 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c3d05378fda29cf9325ed3bfb5732ad2b0c6e5d Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 23 18:16:08 2010 +0000 Avoid O(n*m) complexity in StringRef::find_first(_not)_of(StringRef). - Cache used characters in a bitset to reduce memory overhead to just 32 bytes. - On my core2 this code is faster except when the checked string was very short (smaller than the list of delimiters). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111817 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3233da64210cc98c61c02a929bd2535e853f7fad Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 23 18:12:23 2010 +0000 Re-enable LazyValueInfo. Monitoring for failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111816 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb6a57bdaccdc4af4835c0683ed17bcde8f76141 Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 23 17:52:01 2010 +0000 Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111815 91177308-0d34-0410-b5e6-96231b3b80d8 commit b257a53cdcc5decd6b81030723d9c65e97c88356 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 23 17:44:13 2010 +0000 StringRef tweaks: - Respect find_first_of(char's From parameter instead of silently dropping it. - Prefer std::string() to std::string("") git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111814 91177308-0d34-0410-b5e6-96231b3b80d8 commit c82a0d6785eb0f8a49d0051fe2b337e8d5a3bfeb Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 23 17:30:29 2010 +0000 random improvement for variable shift codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111813 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5c383d8194fbbb762922d3d324900f63f0c3c6a Author: Chandler Carruth <chandlerc@gmail.com> Date: Mon Aug 23 08:54:19 2010 +0000 Try to escape the '$'s in these so they reach the underlying 'sh' invocation. I have no idea how lit did the right thing here, but other test runners don't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111805 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7237c8242f5f4e12fa76ef6d06418e14e4d6ad6 Author: Chandler Carruth <chandlerc@gmail.com> Date: Mon Aug 23 08:25:07 2010 +0000 Fix some GCC warnings by providing a virtual destructor in the base of a class hierarchy with virtual methods and using llvm_unreachable to properly indicate unreachable states which would otherwise leave variables uninitialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111803 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d941391af7a9dec9476a59ed8311f0b09a769bd Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Aug 23 07:38:51 2010 +0000 Revert invalid r111792. Jump tables are not broken on x86-64 / coff, it's COFF emitter which does not support differences of two symbols (and needs to be fixed). GAS is pretty fine with code produced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111801 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2acb6331c8a9c4ad042342161c5fe03503382bec Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Aug 23 05:25:23 2010 +0000 Revert part of my last commit. the mingw32 build bot doesn't seem to like it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111793 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c7d78c3513d0ab20d2e6d1d9fa52719967be3d7 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Aug 23 04:45:37 2010 +0000 Workaround broken jump tables on x86-64 COFF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111792 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4e9e9274f85db8a65076cb876e8731b781d09a9 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 23 03:12:06 2010 +0000 remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01f89ecfe9a2c2e67bc35e703474a2081e76a07d Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Aug 22 23:45:14 2010 +0000 Verify the predicates on icmp/fcmp. Suggested by Jeff Yasskin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c5d83c6005cfca3ea0ff45be89f27fd452aebc5 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Aug 21 20:19:51 2010 +0000 Delete dead comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111744 91177308-0d34-0410-b5e6-96231b3b80d8 commit faa11ca459a5504c3b79bc8f2c874761a97b1be1 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Aug 21 17:21:11 2010 +0000 Use rip-rel addressing on win64 by default. For this we just defaults to small pic code model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ce960acadd05b34086fab89200f2eac665f5612 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 21 15:07:23 2010 +0000 Use MDNode::destroy(). Fixes a delete/free mismatch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9da72a4aac3357551039ac7c758d212dffddb05b Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Sat Aug 21 05:58:13 2010 +0000 MC: Add partial x86-64 support to COFF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111728 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4795cc83541a403fdbe032d74a99805ff6ca9395 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 21 02:52:29 2010 +0000 Add an assert to MDNode::deleteTemporary check that the node being deleted is not non-temporary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111713 91177308-0d34-0410-b5e6-96231b3b80d8 commit f37449511471dc408cb6a69f4797ec0694be47de Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 21 02:32:36 2010 +0000 Fix x86 fast-isel's cmp+branch folding to avoid folding when the comparison is in a different basic block from the branch. In such cases, the comparison's operands may not have initialized virtual registers available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5eb5b1dafbb760e00bef0161fb38edee590baecb Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Aug 21 01:32:18 2010 +0000 Prepare LowerVECTOR_SHUFFLEv8i16 to use x86 target specific nodes directly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111704 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce9353ef1c6943534e29675ce182b55e0141af34 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 20 23:22:43 2010 +0000 Replace some NEON vmovl intrinsic that I missed earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111696 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4262be2e449e7f702bcffa055147c792f04e146 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 20 22:55:05 2010 +0000 This is the first step towards refactoring the x86 vector shuffle code. The general idea here is to have a group of x86 target specific nodes which are going to be selected during lowering and then directly matched in isel. The commit includes the addition of those specific nodes and a *bunch* of patterns, and incrementally we're going to switch between them and what we have right now. Both the patterns and target specific nodes can change as we move forward with this work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111691 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbd260ddf0a0a60dc7942a67f7b7566aa31f041a Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 22:39:47 2010 +0000 CreateTemporaryType doesn't needs its Context argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111687 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6295fa905117b667da5470541dfebd2e385ed92 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Aug 20 22:05:50 2010 +0000 Create the new linker type "linker_private_weak_def_auto". It's similar to "linker_private_weak", but it's known that the address of the object is not taken. For instance, functions that had an inline definition, but the compiler decided not to inline it. Note, unlike linker_private and linker_private_weak, linker_private_weak_def_auto may have only default visibility. The symbols are removed by the linker from the final linked image (executable or dynamic library). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d8d9094825f1033e740dfcbdd1940c8fd94780a Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 22:02:26 2010 +0000 Introduce a new temporary MDNode concept. Temporary MDNodes are not part of the IR, are not uniqued, and may be safely RAUW'd. This replaces a variety of alternate mechanisms for achieving the same effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111681 91177308-0d34-0410-b5e6-96231b3b80d8 commit c72661c5707dd60225b067c7b2dd177400563a9c Author: Dale Johannesen <dalej@apple.com> Date: Fri Aug 20 21:18:55 2010 +0000 Test should pass on non-Darwin x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111678 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2c0ff0eb3631be90c35c28c99abea9229877c9a Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 20 20:54:37 2010 +0000 Fix --disable-threads build, PR7949. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111676 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dd5eb9e2978e6ed742b686bbeffd448bfd789ac Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 20 20:25:31 2010 +0000 Downwards growing stack allocation order reverses relative offsets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111673 91177308-0d34-0410-b5e6-96231b3b80d8 commit dba9fb889001b9c93682d4ff653fc93864aa9302 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 20 19:04:43 2010 +0000 Add more dbg output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22866ae1c5e1717fbfc4058741d529cdc687944f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Aug 20 18:56:46 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111669 91177308-0d34-0410-b5e6-96231b3b80d8 commit fab88314acd163c522ee96a680d5607cdfa294e1 Author: Dale Johannesen <dalej@apple.com> Date: Fri Aug 20 18:29:27 2010 +0000 Don't run test on PPC darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111668 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04e8d4aadfe28862710b907f6c0450576f68862d Author: Owen Anderson <resistor@mac.com> Date: Fri Aug 20 18:24:43 2010 +0000 Re-apply r111568 with a fix for the clang self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111665 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebd23f0f30dafcda9d8e09463bea974ae85a9b1f Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Fri Aug 20 18:24:35 2010 +0000 Fix vmcore.ml test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 030452eb6a1d5ce5c62f6e4d11fd5a0105d43f77 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 18:22:57 2010 +0000 Reword NamedMDNode's comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0098ae45e206d6f88abf5489b75667d3e3ac35e1 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 20 18:16:26 2010 +0000 llvmc: Fix alias generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 203209174ac51b9d1cad2b0d64bfc05caf2fb32b Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 18:07:37 2010 +0000 Delete SlowOperationInformer, which is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111661 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0ceffa04862bad36513ad9ba1fedff15ca035e6 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 18:03:05 2010 +0000 Convert DbgInfoPrinter to use errs() instead of outs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111659 91177308-0d34-0410-b5e6-96231b3b80d8 commit 074ebdd60e0f03c87bb01a4b18dd150127f4ffa1 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 20 17:38:44 2010 +0000 Add include guards to Support/Regex.h. If the omission was intentional, please add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06d89037ba5f2436af1f6262be1934eca92a9e9d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 20 17:38:38 2010 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90bbd89365892cab0fca9bc061273c746a360a10 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 20 17:34:22 2010 +0000 Add explicit initializer for UseLocalStackAllocationBlock in MFI constructor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cdc6c483abfc7ec773d54f6bf454c24aa2192ee Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:59:15 2010 +0000 Convert tools to use tool_output_file, and introduce error checking to places which previously lacked it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111651 91177308-0d34-0410-b5e6-96231b3b80d8 commit 494df380eaae263a66e986948937b6acbc3bb4d5 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:56:11 2010 +0000 Diagnose attempts to update standard output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111649 91177308-0d34-0410-b5e6-96231b3b80d8 commit a06a3076ec79d1d749e936bc966b29b2679e5ea3 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:54:27 2010 +0000 Convert FileUpdate to use tool_output_file, and to use errs() instead of outs() for its verbose messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111648 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1797020ff21345651231550525770837d5e84562 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 20 16:48:30 2010 +0000 properly check for whether base regs were inserted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34135446c15b1b3d901c04878d4eeda4e0a7d933 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:45:58 2010 +0000 Convert tablegen to use tool_output_file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75c23dd30f14bf2de017b52dd97f559756a35e77 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:44:56 2010 +0000 Make outs() close its file when its stream is destructed, so that pending output errors are detected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111643 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbe3fb64ea431683d1e2acc7e66dc9d97221f559 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:39:41 2010 +0000 Delete raw_stdout_ostream and raw_stderr_ostream, which are unused outside of outs() and errs() themselves, and they don't really need custom classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17878b4b70b7702e22624db962645d6c65f246fc Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:36:19 2010 +0000 Add an inspirational quote. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69179aa27bb77a804c4f87c46e99e55cde04d096 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:35:30 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c384c3476c396cb92990ab2fc336ae9eabb07ad Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:34:20 2010 +0000 Move raw_ostream's Error flag into raw_fd_ostream, as that's the only class which is using it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111639 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bcb5da97a1582b1cafe0ba2abab1f29e6e5d8b3 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 16:27:38 2010 +0000 Export error-handling functions in formatted_tool_output_file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89cab2325830102fff74b04bf39adec0970c528e Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 20 14:54:37 2010 +0000 Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cf4790598ce91d410656954cf73f7518a1640b7 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Fri Aug 20 14:51:26 2010 +0000 Fix the running of ocaml tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111626 91177308-0d34-0410-b5e6-96231b3b80d8 commit df10af48a596a8f650465afbba8ac8a38ced4cfd Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Fri Aug 20 14:51:22 2010 +0000 Expose LLVMSetOperand and LLVMGetNumOperands to llvm-c and ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111625 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d557d3016242b241a50ebbc9ad6b4334a6ae2d8 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Fri Aug 20 14:51:16 2010 +0000 Fix arguments to ocaml's llvm_params. Thanks to Jianzhou Zhao for finding this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111624 91177308-0d34-0410-b5e6-96231b3b80d8 commit 878a4cd670377da20fa93c07e8a011a00ead9289 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 20 14:20:17 2010 +0000 Fix some Ocaml tests: the %t substitution now returns an absolute path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111623 91177308-0d34-0410-b5e6-96231b3b80d8 commit da724affd10c3c4964db80d7e7c5f0690d8d2181 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 20 14:19:38 2010 +0000 The %ocamlopt setting has embedded quotes. Copy the entire value instead of stopping at the first embedded quote. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111622 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8532eccec4d371b6d24979ce93fc27b2f255a5a9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Aug 20 13:03:33 2010 +0000 Update LLVMC tests for r111620. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3033678e48eeaac0c7e7a569fcf634aa5d7bad3e Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 20 11:24:51 2010 +0000 llvmc: Do not prefix option names with AutoGenerated. Since they now live in the namespace 'autogenerated'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111620 91177308-0d34-0410-b5e6-96231b3b80d8 commit e357df5038aa5a35ed78c685328c534191627613 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 20 11:24:44 2010 +0000 llvmc: Cut global namespace pollution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111619 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4247fd189dc992ac10a331c1f6d458b7a163a29c Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 20 11:24:35 2010 +0000 Disambiguate calls to WriteGraph() to disable ADL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111618 91177308-0d34-0410-b5e6-96231b3b80d8 commit 874b0d977220733ea8af67481f0e9bf805423ff6 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 20 11:24:31 2010 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111617 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25ed606757ebf3d9f4295a5be2e272f7e4e07be9 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 20 04:54:02 2010 +0000 Replace the arm.neon.vmovls and vmovlu intrinsics with vector sign-extend and zero-extend operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5600431a5dd9d379a6f17499f87c52092e1f19ce Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 01:12:13 2010 +0000 Use tool_output_file in llvm-extract and llvm-link too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111604 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe4351b4f40a53e3a9b250be7b92046ac005a74f Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 01:07:01 2010 +0000 Use the new tool_output_file in several tools. This fixes a variety of problems with output files being left behind or output streams being left unclosed. Fix llvm-mc to respect the -o option in all modes, rather than hardcoding outs() in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111603 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ffcaad77d33f44d58626b9a73579cf9d80538a0 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 01:03:44 2010 +0000 Make the SCC printing passes use errs() instead of outs(), as the other printing passes do, and update the documentation accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79723d8c15a3ed82b8f5fc5c6423b2684df99f06 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 01:02:14 2010 +0000 Print chatty verbose messages to errs() instead of outs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111599 91177308-0d34-0410-b5e6-96231b3b80d8 commit d199f8e33a850147cfdfb5d4ebd6522bbf79af47 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 01:00:03 2010 +0000 Minor cleanups to follow the common convention for pass registration variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ad3f4f10cf416311949cbda9aa042d43fc649ad Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 00:56:16 2010 +0000 Minor cleanups to follow the common convention for pass registration variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111596 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c11b7a481cdfaf0bd474df4d131babda484146a Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 20 00:48:10 2010 +0000 Introduce a new tool_output_file class, which extends raw_ostream with functionality that most command-line tools need: ensuring that the output file gets deleted if the tool is interrupted or encounters an error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111595 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2cdf1f7229d635624d23f3d8c5e4073dd2c7ca1 Author: Eric Christopher <echristo@apple.com> Date: Fri Aug 20 00:36:24 2010 +0000 Fix loop conditionals (MO.isDef() asserts that it's a reg) and move some constraints around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111594 91177308-0d34-0410-b5e6-96231b3b80d8 commit eea169df11dd29af6ffe3ca43ed465f0eec4dbc6 Author: Eric Christopher <echristo@apple.com> Date: Fri Aug 20 00:20:31 2010 +0000 Add a couple of random comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111592 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62133ed6021f91b1c208e6164c372196dbccfc05 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 19 23:52:39 2010 +0000 If the target says that an extending load is not legal, regardless of whether it involves specific floating-point types, legalize should expand an extending load to a non-extending load followed by a separate extend operation. For example, we currently expand SEXTLOAD to EXTLOAD+SIGN_EXTEND_INREG (and assert that EXTLOAD should always be supported). Now we can expand that to LOAD+SIGN_EXTEND. This is needed to allow vector SIGN_EXTEND and ZERO_EXTEND to be used for NEON. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96f8af14d954b5b89ed24816926545ec40640005 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 19 23:52:25 2010 +0000 Better handling of offsets on frame index references. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111585 91177308-0d34-0410-b5e6-96231b3b80d8 commit fed2eccae7cd184dd59eb41188ae265ebda18d15 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 19 23:45:39 2010 +0000 CrashRecovery/Darwin: On Darwin, raise sends a signal to the main thread instead of the current thread. This has the unfortunate effect that assert() and abort() will end up bypassing our crash recovery attempts. We work around this for anything in the same linkage unit by just defining our own versions of the assert handler and abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111583 91177308-0d34-0410-b5e6-96231b3b80d8 commit c26c301b474fa8aba853dd5536e51b7c99da8dd3 Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 19 23:45:15 2010 +0000 Previous revert failed to remove this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a33396923cf0e6bbee2fa59c2be717654045132 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 19 23:39:00 2010 +0000 Update comment to remove special case for vector extending loads. An extending vector load should extend each element in the same way as the corresponding scalar extending load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111577 91177308-0d34-0410-b5e6-96231b3b80d8 commit e700297e4a52fd8d7c1e803680ae1f6b43b86a72 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Aug 19 23:33:02 2010 +0000 Update debug logs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f2cfb83899812f0ee3c49dfcc82a1db08c0245e Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Aug 19 23:32:47 2010 +0000 Properly update MachineDominators when splitting critical edge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111574 91177308-0d34-0410-b5e6-96231b3b80d8 commit c38264b657e4c04d5266dd8f7b56fd088d5947e2 Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 19 23:25:16 2010 +0000 Revert r111568 to unbreak clang self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111571 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40d63c4fb736f99aa3ac182527146f06eb4caa6e Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 19 22:15:40 2010 +0000 When a set of bitmask operations, typically from a bitfield initialization, only modifies the low bytes of a value, we can narrow the store to only over-write the affected bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79fbf4f6809b334d39eb27ff337610e9bf3d297e Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Aug 19 20:04:19 2010 +0000 llvmc: Update examples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111553 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88c52108b33ac773c4e2237e29af84d57f4fd647 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Aug 19 20:03:53 2010 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111552 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cdb606c18a371a5bc82f3efb7ad7b517dbebf9c Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 19 19:47:08 2010 +0000 Disable LVI while I evaluate a failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111551 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae5135f58f81e087e301cf6939f6cabf6b7aa1c4 Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 19 19:04:40 2010 +0000 Tentatively enabled LVI by default. I'll be monitoring for any failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111543 91177308-0d34-0410-b5e6-96231b3b80d8 commit f154735001603c54f7fd6047eac0eb7e40056b23 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 19 18:52:17 2010 +0000 Correct header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111540 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5dca7d007c3a1c817e04e5f5a79fbf8e6e454086 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 19 18:52:02 2010 +0000 Silence 'unused' warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17d56e50c505a509ab76095a18b985d2f50db1e8 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Aug 19 18:33:29 2010 +0000 It's possible to sink a def if its local uses are PHI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111537 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3d67a3849cdbd5c527491f76b8379807bf3bf75 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Thu Aug 19 18:16:39 2010 +0000 Fix the msvc 2010 build. The Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 implements parts of C++0x based on the draft standard. An old version of the draft had a bug that makes std::pair<T1*, T2*>(something, 0) fail to compile. This is because the template<class U, class V> pair(U&& x, V&& y) constructor is selected, even though it later fails to implicitly convert U and V to frist_type and second_type. This has been fixed in n3090, but it seems that Microsoft is not going to update msvc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28ac368e14e767bb402cf658779870857c109163 Author: Dale Johannesen <dalej@apple.com> Date: Thu Aug 19 17:58:35 2010 +0000 Do not assert when reading an exponent out of range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111534 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81cbda13134d0e686d80b38b674b113d2e8d9f41 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 19 17:52:13 2010 +0000 Add Thumb1 support for virtual frame indices. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111533 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08ff9e3b5819897edbf845a7745c3b8bb639e007 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Aug 19 17:33:48 2010 +0000 Remove disabled assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58428d683c03bdcf9f14430421c310043e7b1275 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Aug 19 17:33:11 2010 +0000 Teach machine-sink to break critical edges when appropriate. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a74bb528b136bf44f927ae92e192adc3b2c0cf9 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 19 17:21:21 2010 +0000 buildbot/valgrind: Update RegisterPass false positive suppression for API changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ebbbdc9c5a31d92c936f6c1c3500a748abf5dcf Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 19 17:21:17 2010 +0000 buildbot/valgrind: Suppress warnings about leaks in /bin/grep. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ff6bfe0dfa2509dc1539693eeb06aa5d0e4fbd8 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 19 17:21:10 2010 +0000 Re-re-revert this patch. It seems to be causing performance and correctness regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111527 91177308-0d34-0410-b5e6-96231b3b80d8 commit e52dee713fcb9c9d17c7293fa29c1daffd15456d Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 19 16:47:54 2010 +0000 tests: Haste makes waste. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01bf352f81abed24e03ebc097fc8b37bd6383fb4 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 19 16:46:52 2010 +0000 tests: Ignore whitespace in llvm_supports_binding() and llvm_gcc_supports(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111524 91177308-0d34-0410-b5e6-96231b3b80d8 commit fed22fffa22fbf03ab34f343b52ccb82037cbb9b Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 19 15:35:27 2010 +0000 Silence warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a53d549d33a0fe8d7a828cced30ee66a34c780f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Aug 19 13:44:49 2010 +0000 MCELF: Count the section orders properly. Patch by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111517 91177308-0d34-0410-b5e6-96231b3b80d8 commit e024196ff71945ba3d385944d9f6c57333a511a5 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Thu Aug 19 12:42:38 2010 +0000 Fixed and reactivated a partial specialization test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f06f60f40e3c9679655e5a0a18ac7353b922888 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Aug 19 06:11:05 2010 +0000 Use std::string instead of StringRef in ClangAttrEmitter.cpp; per report on cfe-dev, fixes an error compiling with MSVC. Using a StringRef here doesn't look safe in any case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 231bcf4da15bbf222188e6ea64bd75e428c854c3 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 19 02:47:08 2010 +0000 Update local stack block allocation to let PEI do the allocs if no additional base registers were required. This will allow for slightly better packing of the locals when alignment padding is necessary after callee saved registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35eed7279016bdece7fe7a1f57991ab571a4fb57 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 19 01:29:07 2010 +0000 Revert r111199; it breaks -debug-pass=Structure output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4af433bd7175951199434696d796cd0184fd5a74 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 19 01:25:50 2010 +0000 Reapply the virtual register patch from 109102. The places where we were depending on the number of virtual registers appear to have all been handled now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111499 91177308-0d34-0410-b5e6-96231b3b80d8 commit 438646171640418825ed037db1cb0914701aeb31 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 19 01:18:43 2010 +0000 fix PR7465, mishandling of lcall and ljmp: intersegment long call and jumps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27f758ea0ed62a38099988b70c94579cb2e41ecb Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 19 01:02:31 2010 +0000 Process the step before the start, because it's usually the simpler of the two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a5aadfe1cfc685357ba6df2304969c95db48f91 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 19 01:00:34 2010 +0000 minor progress towards fixing PR7465 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111494 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd88bcba9ae9825e870db35cf45ae0fb3582ae27 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 19 00:37:05 2010 +0000 Add an AddOptionalDefs method and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f4ab139d00c4fb9216801d826a1306cb4598db3 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 19 00:22:45 2010 +0000 lit/GoogleTest: Add .exe to the suffix when looking for tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111487 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3feec8ea594ed7b181afc496a8a038ee3b662c8e Author: Sena Hunt <rideau3@gmail.com> Date: Thu Aug 19 00:19:03 2010 +0000 Add include missing for VC build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111484 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb663c42fa7ddd1ede5a5bba1b8ed1fde257fd82 Author: Dale Johannesen <dalej@apple.com> Date: Thu Aug 19 00:09:07 2010 +0000 Testcase for llvm-gcc checkin 111482. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59ddec1ae533dc299078d953e838a75ffce334b3 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Aug 19 00:05:48 2010 +0000 Add the "isCompare" attribute to the defm instead of each individual instr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27811edb3a9422f1f74f1adfd302ce153010f84b Author: Sena Hunt <rideau3@gmail.com> Date: Thu Aug 19 00:03:05 2010 +0000 Remove three spurious semicolons git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111480 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb5ac7460a1ffdb8a4bad0779f7ba8e6483a43d1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 18 23:56:46 2010 +0000 Don't call Predicate_* in Mips. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b8c0255cd687fcff61653878609731af9f1df66 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 18 23:38:16 2010 +0000 Remove extra header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111456 91177308-0d34-0410-b5e6-96231b3b80d8 commit b768608bd82dea4353b498f9c9337c3d27264391 Author: Sena Hunt <rideau3@gmail.com> Date: Wed Aug 18 23:23:09 2010 +0000 Finish full attribute class emission for clang. For more information, see the accompanying clang patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c58f365457732b90a074902bb2fde3742885e23 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 18 23:14:02 2010 +0000 Add a newline to debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111453 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2bb843f09b9573b16cca6001af54f3691f0e9cb Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 23:09:49 2010 +0000 refix PR1143 by making basicaa analyze zexts of indices aggresively, which I broke with a recent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111452 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03ed528fecc6685729e5e48f501e9c412c396447 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 18 23:09:25 2010 +0000 If any def of a machine-sink candidate has local uses, it's obviously not safe to sink it to a successor block. This bug has been hidden because a later check for critical-edge disable these illegal optimizations. This patch should significantly reduce the amount of time spent on checking dominator information for obviously unsafe sinking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e2c7da0d1611458a7ea45728f1ce86b4096aa73 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 22:52:09 2010 +0000 GetLinearExpression is only called when TD is non-null, pass as a reference instead of pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111445 91177308-0d34-0410-b5e6-96231b3b80d8 commit a43076100c7a36307ee6ededaeb96c84e18bd6c5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 22:47:56 2010 +0000 rework GEP decomposition to make a new VariableGEPIndex struct instead of using a pair. This tidies up the code a bit. While setting things up, add a (currently unused) field to keep track of how the value is extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111444 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65db4282654aca4a80b8a268948c7b32ca5a7c92 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 18 22:44:49 2010 +0000 Enable ARM base register reuse to local stack slot allocation. Whenever a new frame index reference to an object in the local block is seen, check if it's near enough to any previously allocaated base register to re-use. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111443 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95c34d4a70db1e2bced8fd75ba501dcbc49d46db Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 22:35:56 2010 +0000 Add a testcase to verify that commands don't crash when they hit errors on stderr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111440 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5ee9b2e7a0a2f07570a31be28706ff8a66d4607 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 22:26:19 2010 +0000 Make raw_fd_ostream consider itself the owner of STDOUT_FILENO when constructed with an output filename of "-". In particular, allow the file descriptor to be closed, and close the file descriptor in the destructor if it hasn't been explicitly closed already, to ensure that any write errors are detected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111436 91177308-0d34-0410-b5e6-96231b3b80d8 commit f989e405c475268a5e2cf86775cfa9e39553cab4 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 22:22:44 2010 +0000 When sending stats output to stdout for grepping, don't emit normal output to standard output also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111435 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3da0019578695463932428a45c53c7ef317dd21 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 22:07:29 2010 +0000 move gep decomposition out of ValueTracking into BasicAA. The form of decomposition that it is doing is very basicaa specific and is only used by basicaa. Now with less tree breakingness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111433 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08b7a663d359a8851f9c1efcdd5998a00db17619 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 22:04:43 2010 +0000 Tidy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 827207276a5b1799825dc10dd1354e056776858b Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 18 21:32:07 2010 +0000 Minor simplification. Gets rid of a needless temporary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111430 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ec32ff5c3bad4b1d4ef4a4ed19c3af6f6e2fce8 Author: Owen Anderson <resistor@mac.com> Date: Wed Aug 18 21:11:37 2010 +0000 Use ConstantRange to propagate information through value definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111425 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff7a4d331fcbdbccb34e95eacf484a208df659cf Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 20:32:46 2010 +0000 When sending stats output to stdout for grepping, don't emit normal output to standard output also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60e08f7521d39bddf7c3508d2d2b3865a57a4269 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 18 20:29:53 2010 +0000 Thinking about it, we don't need MachineDominatorTree after all. The DomValue map discovers the iterated dominance frontier for free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111400 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce8fca142aae543c53c5e3bcecb29ec686c8accb Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 20:16:39 2010 +0000 Introduce a ScopedFatalErrorHandler class to make it easy to register fatal error handlers which automatically get unregistered at the end of a scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111398 91177308-0d34-0410-b5e6-96231b3b80d8 commit de75c84fe46138e5378ce7f7cc4a594f0f1b912e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 18 20:06:05 2010 +0000 Revert r111394. It was too aggressive. We must complete the DFS, otherwise we might miss needed phi-defs, and prematurely color live ranges with a non-dominating value. This is not a big deal since we get to color more of the CFG and the next mapValue call will be faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111397 91177308-0d34-0410-b5e6-96231b3b80d8 commit 458a46830fefd8a66ec35bacbcb692259b10cae8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 18 19:00:11 2010 +0000 Aggressively prune the DFS when inserting phi-defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111394 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7bf1f135dcbb144673600cf951fbf5b04d6580b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 18 19:00:08 2010 +0000 Add the LiveIntervalMap class. Don't hook it up yet. LiveIntervalMap maps values from a parent LiveInterval to a child interval that is a strict subset. It will create phi-def values as needed to preserve the VNInfo SSA form in the child interval. This leads to an algorithm very similar to the one in SSAUpdaterImpl.h, but with enough differences that the code can't be reused: - We don't need to manipulate PHI instructions. - LiveIntervals have kills. - We have MachineDominatorTree. - We can use df_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111393 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56b1afadd46e914dbf4ea00d48bde49cc5caa662 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 18 19:00:05 2010 +0000 Add df_iterator::getPathLength and getPath as a way of getting a path from the entry node to the current node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111392 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad2b0fecb47812bc8e843414223b0199f78cafab Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 18 18:43:08 2010 +0000 Revert r111375, "move gep decomposition out of ValueTracking into BasicAA. The form of", it doesn't pass tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111385 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfdccf0dfbd9286476e3cc87498f845af86543a8 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 18 18:41:13 2010 +0000 Improve whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111384 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2792e04e60eff90967478fa1ecfef821132f482 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 18 18:40:57 2010 +0000 Marked with ATTRIBUTE_USED so that clang doesn't complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111383 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6829486ab22e050107689000c974bb2ab7d2a85 Author: Owen Anderson <resistor@mac.com> Date: Wed Aug 18 18:39:01 2010 +0000 Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111382 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb06f157d4ccc2ca81c763fb2d23b631ccf6155c Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 18 18:22:37 2010 +0000 MC/ELF: Allow null values in virtual sections, ELF doesn't use special directives for putting contents in .bss, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111376 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7c0a703ed8621a8ed1ec39ab5f9103ed8ca5907 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 18:22:17 2010 +0000 move gep decomposition out of ValueTracking into BasicAA. The form of decomposition that it is doing is very basicaa specific and is only used by basicaa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94977adb6c5e67c85d8810d72aab836778a979dc Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 18 17:57:37 2010 +0000 Add hook for re-using virtual base registers for local stack slot access. Nothing fancy, just ask the target if any currently available base reg is in range for the instruction under consideration and use the first one that is. Placeholder ARM implementation simply returns false for now. ongoing saga of rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111374 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5de51477abd8c57434691986e7ffaddb79d69fc1 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 17:55:15 2010 +0000 Eliminate some redundancy by relying on raw_fd_ostream to handle "-" properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111373 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6c64a0b953864f932dd2878d24ae5c3988dc6c0 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 17:42:59 2010 +0000 Allow the -analyze option to follow the -o option, which defaults to standard output, instead of just hardcoding outs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fa68da667a3b74a563db3485caa8088fdd8bd79 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 17:40:10 2010 +0000 Don't translate "-" to outs() manually; raw_ostream does that automatically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111371 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8c9495fa7fcf1386a866551e1e9d1db64c92ece Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 17:26:50 2010 +0000 Don't translate "-" to outs() manually; raw_ostream does that automatically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e3005406d5eb4380a062906b2e7b289e48a34ec Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 17:21:42 2010 +0000 Don't register stdout to be deleted on a signal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111368 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1f2fb410b23951741f7f20dd56d0acd48a1ef87 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 17:20:51 2010 +0000 Remove an unused command-line option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111367 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a0250d46a932b459c7617b1c65cc07070b07b3b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 18 16:09:47 2010 +0000 Preserve subregs on PHI source operands. Patch by Krister Wombell! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111366 91177308-0d34-0410-b5e6-96231b3b80d8 commit 753f72f3561f9c8aed597bca686ff0f0edf27e65 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Wed Aug 18 10:20:29 2010 +0000 Fix a bug with insertelement on SPU. The previous algorithm in LowerVECTOR_SHUFFLE didn't check all requirements for "monotonic" shuffles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111361 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4970511c8d8704fc4eb5cd98bed29fcc339c80f3 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Wed Aug 18 10:04:39 2010 +0000 Remove all traces of v2[i,f]32 on SPU. The "half vectors" are now widened to full size by the legalizer. The only exception is in parameter passing, where half vectors are expanded. This causes changes to some dejagnu tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d6598ca0264d929755cb45f31d3b553f66787a6 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Wed Aug 18 09:50:30 2010 +0000 Change SPU C calling convention to match that described in "SPU Application Binary Interface Specification, v1.9" by IBM. Specifically: use r3-r74 to pass parameters and the return value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111358 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c0a0b27c44e27dbfc82ae2e524053ece9da5428 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 04:55:12 2010 +0000 fix a buggy test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e5dcaab4a98ac75ee6c50cfbe5756b738b4e5e5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 04:28:19 2010 +0000 fix PR7589: In brief: gep P, (zext x) != gep P, (sext x) DecomposeGEPExpression was getting this wrong, confusing basicaa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111352 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07ae3ecb335cf2e7bd0d6a145061699f8a22d08d Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 04:25:43 2010 +0000 filecheckize and detrivialize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111350 91177308-0d34-0410-b5e6-96231b3b80d8 commit dca8b96169ae68ddab595f575308a44bfd6a7a01 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 03:14:36 2010 +0000 Fix PR7755: knowing something about an inval for a pred from the LHS should disable reconsidering that pred on the RHS. However, knowing something about the pred on the RHS shouldn't disable subsequent additions on the RHS from happening. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49da937d26abe0c2b47d701f7dcb126b6274f09e Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 03:13:35 2010 +0000 fit in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111348 91177308-0d34-0410-b5e6-96231b3b80d8 commit 244b72e3c7e71fd790d66969c14cf4236c509b86 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 02:42:11 2010 +0000 remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111345 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e892ad25bbe8985fa9bb1295aae06a46f9a9c59 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 02:41:56 2010 +0000 remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111344 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74ef5a80d5fbe9668388a06a0ef6355826b92494 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 02:40:44 2010 +0000 remove some code that is dead now that lea's are modeled with segment registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111343 91177308-0d34-0410-b5e6-96231b3b80d8 commit b38591c1bf32331150386c35385d3aa92561faf7 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 02:37:06 2010 +0000 remove dead prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111342 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0223c78964653bc92d7ef8abfff104bf6f5a9a0 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Aug 18 01:45:52 2010 +0000 Expand ZERO_EXTEND operations for NEON vector types. Testcase from Nick Lewycky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111341 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdebec6138e3d04c75ec86edb804ed26d2b8d36f Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 01:35:53 2010 +0000 Fix the "Finished Creating" messages for aliases to print the right name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111340 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88d021070d4a2ed0092b27cd644cce1a645bd3ad Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 18 01:34:52 2010 +0000 Revert r111321. This doesn't fix a problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111339 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55a3bf524912c5c9fdf8fe47e9deddf3d192c10b Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 00:33:47 2010 +0000 stomp some more undefined behavior, PR7775. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111337 91177308-0d34-0410-b5e6-96231b3b80d8 commit de0bcec3b5d353caae59c7a96bbeb2c68002f603 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 00:29:18 2010 +0000 don't emit zero bit fields with Emit, fixing undefined behavior, PR7778 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b231592f467e80df3a9bee594fe01030aa0c6d0 Author: Chris Lattner <sabre@nondot.org> Date: Wed Aug 18 00:11:25 2010 +0000 Don't pass in a null pointer to std::string's ctor, an empty string ref should produce an empty std::string. This fixes PR7879. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 346e966e12199365031a0fea03b66a38469c60ee Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 17 23:26:04 2010 +0000 fix a broken link git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3306a8fed1731c07bc25f01cde884d3d06f421d9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 17 23:22:10 2010 +0000 include config.h to get config params, hopefully unbreaking mingw builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 051aa62fcc8227d9811d72c88f49c1a310196b7c Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 17 23:11:56 2010 +0000 Fix the rest of rdar://8318441 which happens when a raw_fd_ostream (e.g. errs()) fails in close() due to (e.g.) a broken pipe. As previously written, the had_error() flag would get set and then the raw_ostream dtor would report a fatal error. There is nothing the client can do about this and we have no way to report the error, so just eat it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b0474d516a1d84a89b187e394bf8f4a461e8289 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 17 23:03:53 2010 +0000 report_fatal_error can't use errs(), because errs() can call into report_fatal_error. Just blast the string to stderr with write(2) and hope for the best! Part of rdar://8318441 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111320 91177308-0d34-0410-b5e6-96231b3b80d8 commit b028e819a29c5e753f3eedc8edc72830e4059fc3 Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 17 22:55:27 2010 +0000 Temporarily revert r110987 as it's causing some miscompares in vector heavy code. I'll re-enable when we've tracked down the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111318 91177308-0d34-0410-b5e6-96231b3b80d8 commit e74a32feae54e167401661ffd4f7f63aed2d6a43 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 17 22:50:37 2010 +0000 Tweak IVUsers' concept of "interesting" to exclude add recurrences where the step value is an induction variable from an outer loop, to avoid trouble trying to re-expand such expressions. This effectively hides such expressions from indvars and lsr, which prevents them from getting into trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111317 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c826dda417cb34b30d5cd7d1161bd0f3621e02f Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 17 22:41:55 2010 +0000 Add materialization of virtual base registers for frame indices allocated into the local block. Resolve references to those indices to a new base register. For simplification and testing purposes, a new virtual base register is allocated for each frame index being resolved. The result is truly horrible, but correct, code that's good for exercising the new code paths. Next up is adding thumb1 support, which should be very simple. Following that will be adding base register re-use and implementing a reasonable ARM heuristic for when a virtual base register should be generated at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111315 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd32bf5b2f7e9edc8133cbff3a578a4de1182683 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 17 22:35:20 2010 +0000 Add nounwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111312 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57abd953f61c85fcfb5fda93283412e0f31434f6 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 17 22:32:39 2010 +0000 CrashRecovery: Clear the current context on the first crash, to avoid re-entering it if the cleanup code crashes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111309 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85ee980009cdc9a06c3fd6af430d01e02c0306cf Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 17 22:32:37 2010 +0000 CrashRecovery: Add CrashRecoveryContext::GetCurrent(), so clients can find the active context from anywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111308 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb96e3dd054c0ea95c28b39b21be0123bd05da43 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 17 22:32:34 2010 +0000 CrashRecovery: Make CrashRecoveryContext static methods thread safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111307 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fe103b96035a431300d87f1c37a8c53a64fb0cb Author: Dale Johannesen <dalej@apple.com> Date: Tue Aug 17 22:17:24 2010 +0000 Make fast scheduler handle asm clobbers correctly. PR 7882. Follows suggestion by Amaury Pouly, thanks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111306 91177308-0d34-0410-b5e6-96231b3b80d8 commit 406eedc8b578a42774da02671cc18d9df1d7debb Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Aug 17 21:08:28 2010 +0000 Revert part of one of the prev. patches - tailjmp will follow later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111291 91177308-0d34-0410-b5e6-96231b3b80d8 commit e31ced0473312bec251bdf3350861aad9c590140 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Aug 17 21:06:07 2010 +0000 More fixes for win64: - Do not clobber al during variadic calls, this is AMD64 ABI-only feature - Emit wincall64, where necessary Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111289 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5c76b469497e87f558c7ddec286334fd0a9a678 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Aug 17 21:06:01 2010 +0000 Enable more win64 calls folding opportunities. Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111288 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28fcc3ab8421b6c186f9cf0d764f22c73d089e9d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Aug 17 21:05:54 2010 +0000 Add some win64 coff goodness. Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111287 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f5d561ed6f3a8d4a92f0922fc25728c7eac1003 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 17 21:00:37 2010 +0000 PHI elimination shouldn't require machineloopinfo since it's used at -O0. Move the requirement to LiveIntervalAnalysis instead. Note this does not change the number of times machineloopinfo is computed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111285 91177308-0d34-0410-b5e6-96231b3b80d8 commit aec767aaa8f0e707850c7cd79457c8271943b387 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 17 20:57:42 2010 +0000 Machine CSE preserves CFG. Pass manager was freeing machineloopinfo after machine cse before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111281 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4860506781bff56d1a70f7379aca0dca948662f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 17 20:39:04 2010 +0000 Don't call tablegen'ed Predicate_* functions in the ARM target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111277 91177308-0d34-0410-b5e6-96231b3b80d8 commit d224414cb60895333fd2c87110382358f88ae446 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 17 20:21:30 2010 +0000 silence warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111274 91177308-0d34-0410-b5e6-96231b3b80d8 commit c43f9d6b442bb4982e2b14439e6c5ee7a5ca58ab Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 19:45:05 2010 +0000 Remove dead code. Fixes a GCC warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111271 91177308-0d34-0410-b5e6-96231b3b80d8 commit a08e16df47e56b197c5344b8e58ef8f2c1e5a430 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Aug 17 19:34:40 2010 +0000 This patch enables "make unittests" on enable-shared/mingw. Patch by Takumi Nakamura! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d9d912ec020fd9c657aad715a34087aded7ab39 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Aug 17 19:03:03 2010 +0000 This patch enables ENABLE_SHARED=1 to build DLL based LLVM toolchain on MingW & Cygwin. Patch by Takumi Nakamura! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111268 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7fd48d3203472834249b8781a781c24b934c6af Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 17 18:39:16 2010 +0000 80 column cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111266 91177308-0d34-0410-b5e6-96231b3b80d8 commit a157410db8567452718033b3a059f23e9372a556 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 18:20:28 2010 +0000 Sketch i386 relocations handling, from Roman Divacky. Hello world builds & runs now on i386/ELF with -integrated-as. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 257e83a4dbb8bae49520f7a0f82cdb406d613e9e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 17 18:17:12 2010 +0000 Don't call Predicate_* methods directly from Sparc target. Modernize predicates a bit. The Predicate_* methods are not used by TableGen any longer. They are only emitted for the sake of legacy code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111263 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb488dcc614eff2ed801c3799918dc5e00ae82c8 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 17 18:13:53 2010 +0000 Add hook to examine an instruction referencing a frame index to determine whether to allocate a virtual frame base register to resolve the frame index reference in it. Implement a simple version for ARM to aid debugging. In LocalStackSlotAllocation, scan the function for frame index references to local frame indices and ask the target whether to allocate virtual frame base registers for any it encounters. Purely infrastructural for debug output. Next step is to actually allocate base registers, then add intelligent re-use of them. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111262 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4751a78d22fe74ec2a0110ec0c07ba210f486e2a Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 17 18:00:41 2010 +0000 explicitly handle no-op cases for clarity. Fixes clang warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111260 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7dd8abc9ef55bcf2c8985cdbea68c3133281af2 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 17:56:13 2010 +0000 Use the correct entry size for relocation entries, from Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111259 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ad395dc8f5811070611e019bc6aaa5324148b6b Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 17 17:43:50 2010 +0000 Move the decision logic whether it's a good idea to split a critical edge to clients. Also fixed an erroneous check. An edge is only a back edge when the from and to blocks are in the same loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b7b390811b37e494fec8ce055f7e1fb0d18a285 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 17 17:39:21 2010 +0000 When rotating loops, put the original header at the bottom of the loop, making the resulting loop significantly less ugly. Also, zap its trivial PHI nodes, since it's easy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111255 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5652989a9bd581c7dae0ca37bd4d6f16fe723841 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Aug 17 17:37:22 2010 +0000 remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111254 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb3b0864b59c16a055ac63795692c65c61cf9f3b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 17:30:07 2010 +0000 Differentiate between RELA and REL relocations, from Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111252 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1d2beb75fad856ab82ad5264ff5f9a6f33bd8bf Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Aug 17 17:23:19 2010 +0000 Change ARM PKHTB and PKHBT instructions to use a shift_imm operand to avoid printing "lsl #0". This fixes the remaining parts of pr7792. Make corresponding changes for encoding/decoding these instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 705a6dd2dbb31dc718c414527d1e0d727acda5f2 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 17 17:15:14 2010 +0000 Fix debug message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111250 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef5fdd840728d2912935a07b0e3144aa4cda8a3b Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 17 17:13:42 2010 +0000 add some 's to a pre to avoid newlines being eaten and the formatting being thrown off. I admit to not knowing what is going on here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111249 91177308-0d34-0410-b5e6-96231b3b80d8 commit e425f2218fe02459aa96463790a7bbe471622c04 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 17 17:07:02 2010 +0000 Use the getUniquePredecessor() utility function, instead of doing what it does manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111248 91177308-0d34-0410-b5e6-96231b3b80d8 commit 995be4cca864d767514af218092ddf944f706a23 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 17:02:29 2010 +0000 One baby step towards i386 ELF, from Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111247 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ef3b9c095d695ee4bfcbcc31fcf44a8b4b2421d Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 17 16:20:04 2010 +0000 fix emacs language spec's, patch by Edmund Grimley-Evans! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111241 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07dfcac53242e4078136454507b7b74c4cf94bbc Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Aug 17 16:19:18 2010 +0000 When creating a JIT, try to load the program so that we can resolve symbols against it. This affects Windows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111240 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26d92c185c026e5a686ffeffad6988b0454bea63 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 15:50:23 2010 +0000 Revert r111230, we have to find a better place for the host-specific code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ae57970105783fab151f79d6b8969d2e32b591f Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 17 15:42:43 2010 +0000 Fix failure of unittests/ExecutionEngine/JIT/MultiJITTest.cpp on cygwin when built with ENABLE_SHARED=1. Patch by NAKAMURA Takumi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 691368fcd61f9efc1eeb420654c4d9c73c6f086b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 13:55:45 2010 +0000 Micro-optimize MCObjectWriter to do a byteswap if necessary and then write the whole integer to the stream instead of doing byte-sized writes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 477530bfe43076630a27dc0af165d595bb9f54f9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 11:45:38 2010 +0000 There is this new "LLVM" compiler that supports __builtin_bswap but thinks it's gcc 4.2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111228 91177308-0d34-0410-b5e6-96231b3b80d8 commit be21892cfbd599a322c9a2524cc7d9e6112bc8a3 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Aug 17 05:54:34 2010 +0000 Allow more cases of undef shuffle indices and add tests for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111226 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2426863757be2b057e92c71f27b4112a4edd3d29 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 17 01:34:49 2010 +0000 Add an option to disable codegen prepare critical edge splitting. In theory, PHI elimination is already doing all (most?) of the splitting needed. But machine-licm and machine-sink seem to miss some important optimizations when splitting is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111224 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4964b0368f74bb43908a66e01ca13cf7d8635634 Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 17 01:30:33 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111223 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8f72fa365ceb0d3987e953b50297b5de25ccb49 Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 17 01:25:29 2010 +0000 Copy over some overridden MI wrappers for ARM fast-isel. This is where we're adding predicates and optional defs to the MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111222 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8d7766efb9c61c90f50d682d945402f68db0c1d Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 17 01:20:36 2010 +0000 PHI elimination should not break back edge. It can cause some significant code placement issues. rdar://8263994 good: LBB0_2: mov r2, r0 . . . mov r1, r2 bne LBB0_2 bad: LBB0_2: mov r2, r0 . . . @ BB#3: mov r1, r2 b LBB0_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111221 91177308-0d34-0410-b5e6-96231b3b80d8 commit db09fb5b15977a31516f293a5c50d8e88d689e83 Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 17 01:18:37 2010 +0000 Remove predicate workaround, we're going to require that predicate and optional def operands are handled in the backend support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111220 91177308-0d34-0410-b5e6-96231b3b80d8 commit 445cd611a4149098cc353a8f9dbee3a4d32dc66c Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 17 00:46:57 2010 +0000 Make arm fast-isel possible to enable via command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111219 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e07966374030a4b1dabbefc9a37e5d5b4a4310c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 00:33:24 2010 +0000 Try to silence a overeager GCC warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111214 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ed9c7506512f5d6626e32236d9ad79ff8c23ba6 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Aug 17 00:00:46 2010 +0000 A round of minor cleanups for ELFObjectWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24c939c192eb1ec0e2d03389f53b3596d787dcba Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 16 23:44:29 2010 +0000 Add a testcase for svn 111208. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 558a04b11a5a847cb830aaab5c146e201a9bcaef Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 16 23:42:33 2010 +0000 Fix another iterator invalidation that caused a *really* nasty miscompilation in 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111210 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42d06044ac53f7f281544b20f0d52abc499bf66f Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 16 23:37:17 2010 +0000 Ignore undef shuffle indices when checking for a VTRN shuffle. Radar 8290937. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 420c527140accae379de12c26b27c50bcf42509b Author: Jim Grosbach <grosbach@apple.com> Date: Mon Aug 16 23:26:09 2010 +0000 tidy up. remove unused local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111206 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb28f3ba55f5424d11238b2c1507e8d69f71c508 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Aug 16 23:00:12 2010 +0000 Silence warnings and simplify code. Eliminate a 32/64 bit portability issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46af39f44fe3a9a2328c34f82194728c9c08979e Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 22:57:28 2010 +0000 The plural of analysis is analyses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111200 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9dc447a64006c15f772c54c81c3c958315fb2b2 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 22:45:12 2010 +0000 Make dumpPassStructure be a PMDataManager abstraction, rather than a Pass abstraction, since that's the level it's actually used at. Rename Pass' dumpPassStructure to dumpPass. This eliminates an awkward use of getAsPass() to convert a PMDataManager* into a Pass* just to permit a dumpPassStructure call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d573d1b255a7e06a0d59b44c3021dcfdb940006 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Aug 16 22:30:41 2010 +0000 Better handle alignment requirements for local objects in pre-regalloc frame mapping. Have the local block track its alignment requirement, and then apply that when the block itself is allocated. Previously, offsets could get adjusted in PEI to be different, relative to one another, than the block allocation thought they would be, which defeats the point of doing the allocation this way. Continuing rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a828ea541e04f79040d7137511f06c960a17587 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 16 22:26:55 2010 +0000 Generalize a pattern for PKHTB: an SRL of 16-31 bits will guarantee that the high halfword is zero. The shift need not be exactly 16 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fc409c5f47c4e3deac9e75353a7445641ee0218 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 16 22:21:13 2010 +0000 Convert test to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e8a9b9cfaece48b2da4dae3e8c761a1ce0f294e Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 22:03:47 2010 +0000 Make some of PMTopLevelManager's members non-public. In particular, make its constructor protected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111193 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4ef72bdbfc4433d0812cdb57c60afe8090ab98a Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 21:57:30 2010 +0000 Remove redundant inline keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111192 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcdf8e4efecd07af01332f914bb55b9515aa1947 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 21:38:42 2010 +0000 Eliminate the TopLevelManagerType enum; instead, just make PMTopLevelManager's constructor take a PMDataManager *, which already provides the needed abstraction support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111189 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9ffd788e9b8c3a7139d1f28cc4d01c898da9fd8 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Aug 16 21:18:51 2010 +0000 Comment out some broken/unused/useless instructions which mess up disassembly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20fae158a4cb1fa8a95866a7ae113844267bd962 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Aug 16 21:17:09 2010 +0000 Fixes for generation of ELF relocations. Patch by Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111183 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e1c97893c9cf90fa35467dc9eabe8bf1c2773e0 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Aug 16 21:03:32 2010 +0000 Don't attempt to SimplifyShortMoveForm in 64-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111182 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7e2fe56d97eed5054d8878cba818e5f93abf780 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Aug 16 20:08:40 2010 +0000 Until uleb/sleb are MC-ized, add a hack to make them work with ELF object emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111177 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba9b2a434b38e376824522689caaa9323c14dbfb Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Aug 16 19:15:06 2010 +0000 Fix a few warnings in and detabify MCELFStreamer and ELFObjectWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111175 91177308-0d34-0410-b5e6-96231b3b80d8 commit de8febb1d5b15e72516b3415f19fd08f5418751a Author: Matt Fleming <matt@console-pimps.org> Date: Mon Aug 16 18:57:57 2010 +0000 Add ELF ObjectWriter and Streamer support. I forgot to add these files in commit 111172. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111174 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f8902d196d94c3a081e253ead1d573e11cc72ab Author: Matt Fleming <matt@console-pimps.org> Date: Mon Aug 16 18:36:14 2010 +0000 Hookup ELF support for X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111173 91177308-0d34-0410-b5e6-96231b3b80d8 commit de88526f917c533b3da409c3a9e602b8e80028ac Author: Matt Fleming <matt@console-pimps.org> Date: Mon Aug 16 18:35:43 2010 +0000 Add ELF ObjectWriter and Streamer support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111172 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3cb5b963e0e4649b6c5afb402ff89cb92ba6647 Author: Matt Fleming <matt@console-pimps.org> Date: Mon Aug 16 18:35:06 2010 +0000 Layout helper function. Introduce a helper method to add a section to the end of a layout. This will be used by the ELF ObjectWriter code to add the metadata sections (symbol table, etc) to the end of an object file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111171 91177308-0d34-0410-b5e6-96231b3b80d8 commit aed93f3009b6b3097d3a63e0cb2f0083a0379b21 Author: Matt Fleming <matt@console-pimps.org> Date: Mon Aug 16 18:34:31 2010 +0000 Record a symbol's size which is needed for ELF symbol tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5223d095f77ed8260fa8e30ecf34bd599cfd3f55 Author: Matt Fleming <matt@console-pimps.org> Date: Mon Aug 16 18:33:46 2010 +0000 ELF entry size support. Some ELF sections contain fixed-sized entries. Provide a way to record the entry size of a section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111169 91177308-0d34-0410-b5e6-96231b3b80d8 commit 158a79f632403eb29339d68c20999e202d02f7ad Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 16 18:27:34 2010 +0000 Rename sat_shift operand to shift_imm, in preparation for using it for other instructions besides saturate instructions. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99ecbe1d84f4ac60749decf6c19b70994b296105 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Aug 16 18:24:54 2010 +0000 Partially revert r111155. It looks like MSVC is calling an operator<() that clang says is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e0c0cc248a22b7633065d7952625476bd3a7b03 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Aug 16 18:06:15 2010 +0000 track local frame size in MFI, not local to the pass, since PEI needs it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84cdef4c361b0cdd61a5cf35913a90dce8c424d2 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 17:34:25 2010 +0000 Revert r111031. The way LLVM defines loop invariance, the property of an expression being loop invariant is not equivalent to the property of properly dominating the loop header. Other optimizations have also made this optimization less important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111160 91177308-0d34-0410-b5e6-96231b3b80d8 commit 165b896af4c3293e8bd375307b6450aef1e81cd2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Aug 16 17:18:20 2010 +0000 Remove unused functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111156 91177308-0d34-0410-b5e6-96231b3b80d8 commit 635d9dcf0f3337cb69789c91ad970fb4c868c6da Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Aug 16 17:18:18 2010 +0000 Remove unused functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111155 91177308-0d34-0410-b5e6-96231b3b80d8 commit c13b37b350c923df567cd6abf0ce7ca6f4ef228e Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 16 17:06:03 2010 +0000 Remove unused code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111154 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4628060b3c8a05c3892aa1b11e15d8d7ce93091f Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 16 17:05:27 2010 +0000 Convert a test to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111153 91177308-0d34-0410-b5e6-96231b3b80d8 commit f497f1603c8383431a54578729efdca845e649d4 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 17:01:55 2010 +0000 Placate overzealous compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111152 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9366ea156057ebb067c7edb059253358e7107122 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:57:24 2010 +0000 To create a copy of a SmallVector with an element removed from the middle, copy the elements in two groups, rather than copying all the elements and then doing an erase on the middle of the result. These are SmallVectors, so we shouldn't expect to hit dynamic allocation in the common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111151 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9415cc3d12107879d400add9fb3280834c3fa0b Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Aug 16 16:39:59 2010 +0000 Install Embedded builds into usr/local. Radar 8313723. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111149 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d07590997aa3d314ba696ab9c8963a9e1bd18b9 Author: Chris Lattner <sabre@nondot.org> Date: Mon Aug 16 16:35:20 2010 +0000 silence a vc2010 warning: " result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)", pointed out by 'nobled' on llvmdev git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111148 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad165bb982869c4169cd82df789ef562661c89f8 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:34:09 2010 +0000 Tidy whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9666621029d9d35f3eb0b0a47106b508e77f80ec Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:31:39 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111145 91177308-0d34-0410-b5e6-96231b3b80d8 commit eff1a8ced861ed645f01295d9930417354fbf293 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:30:01 2010 +0000 Use const_iterator in a few places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e9b45d6dc487093e4a5d8c908b42043fe4a2b89 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:27:53 2010 +0000 Use iterators instead of indices in a few more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111143 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ee59e8497829227a906934a74e8f0cea740cf9e Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:25:35 2010 +0000 Micro-optimize SCEVConstant comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111142 91177308-0d34-0410-b5e6-96231b3b80d8 commit aecac32a7a68603420503dcb0749645bc9a8fe2e Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:21:27 2010 +0000 Move SCEVNAryExpr's virtual member functions out of line, and convert them to iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111140 91177308-0d34-0410-b5e6-96231b3b80d8 commit eff122bcba388561d81824a7bd44649eba5ff683 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:16:11 2010 +0000 Use iterators instead of indices in simple cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111138 91177308-0d34-0410-b5e6-96231b3b80d8 commit e581c49d01e60786e8b36adeda2e387d5c7cc583 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:13:54 2010 +0000 Avoid gratuitous inefficiency in ifndef NDEBUG code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d54f85ad07cf5cdef8b4149ee5e0a3270e337b5 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 16:03:49 2010 +0000 Make one getAddExpr call when analyzing a+b+c+d+e+... instead of one for each add instruction. Ditto for Mul. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111136 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e82a118bb005f10a5c8681b519491fdf58d0343 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 15:57:14 2010 +0000 Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111135 91177308-0d34-0410-b5e6-96231b3b80d8 commit 062689b548bfe7ed8b1b35e3da9b9ee159e48e8a Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 15:50:00 2010 +0000 Instead of having CollectSubexpr's categorize operands as interesting or uninteresting, just put all the operands on one list and make GenerateReassociations make the decision about what's interesting. This is simpler, and it avoids an extra ScalarEvolution::getAddExpr call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111133 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0df04bbf0833383d0847f2bb3a5bf4bb7ee5b0f Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 15:39:27 2010 +0000 Put add operands in ScalarEvolution-canonical order, when convenient. This isn't necessary, because ScalarEvolution sorts them anyway, but it's tidier this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a5db46c1a5c0b539204a2192ee94bc46f2471e9 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 15:31:45 2010 +0000 Specialize FoldingSetTrait<SCEV>, providing implementations of node comparison and hash computation which don't require constructing temporary ID values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111131 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2d4a7583e8e77933d242776239bcb40da797268 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 15:30:39 2010 +0000 Add hooks to FoldingSetTrait to allow specializations to provide implementations of equality comparison and hash computation. This can be used to optimize node lookup by avoiding creating lots of temporary ID values just for hashing and comparison purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111130 91177308-0d34-0410-b5e6-96231b3b80d8 commit b500e2144933ca7556f0824292b8e233b399f4cd Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 15:04:39 2010 +0000 Tidy up whitespace in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111129 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2b04415c59831702c0f6c5d4f42380944b5e1e0 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 15:03:24 2010 +0000 Constify FoldingSetNodeIDRef's Data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111128 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89f0088837bcdcde73bdb6fc97acb732f1788e8a Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 14:53:42 2010 +0000 Reverse the order of GetNodeProfile's arguments, for consistency with FoldingSetTrait::Profile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111127 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17f266b0afcff5cb9b125889a91a33b736dff62c Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 14:45:36 2010 +0000 Fix indentation in example code in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111125 91177308-0d34-0410-b5e6-96231b3b80d8 commit 128b93bf152990dad982730f19eea10514deb2e1 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 14:44:03 2010 +0000 Avoid #include <ScalarEvolution.h> in LoopSimplify.cpp, which doesn't actually use ScalarEvolution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111124 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b00897db3b5f4769bbb337551e2a689040d4a5e Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 14:41:14 2010 +0000 Instead, teach SimplifyCFG to trim non-address-taken blocks from indirectbr destination lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111122 91177308-0d34-0410-b5e6-96231b3b80d8 commit 743d9881618aa502c129321c7d39755b3014f526 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 16 14:39:19 2010 +0000 Revert r111058, the lint check for indirectbr successors that aren't address-taken. This can occur normally, if the code which took the address got DCEd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 709cb248533e4b887eff8d3ad6fdb3c1524de3d6 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Aug 15 23:32:03 2010 +0000 Test expects SSE, give him SSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111115 91177308-0d34-0410-b5e6-96231b3b80d8 commit 358a51d3b2e3b8333c2d1951dbd6c1b9a4ce51b7 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sun Aug 15 22:14:42 2010 +0000 Updated LLVMLibDeps.cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111112 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f067a8f024320168a377b7213510f9498914bb4 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sun Aug 15 22:14:36 2010 +0000 CMake: Improved COMMENT on a custom command git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f0cc05284e9961a16d4394704276adf53e99435 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Aug 15 20:42:56 2010 +0000 Restore arch on these test, they fail on arm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111109 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64701826383bbd2a35071f3dfe6ba2caa9aa096e Author: Dale Johannesen <dalej@apple.com> Date: Sun Aug 15 19:40:29 2010 +0000 Mark as XFAIL on darwin 8. PR 7886. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111108 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6dd1211d023aa0c2c4e88a3bb60b86449ffc2f7 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sun Aug 15 15:08:27 2010 +0000 Updated the GenLibDeps -> LLVMLibDeps.cmake transformation example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33915a62326d105220bbae3fe303b4d64b7da62a Author: Argiris Kirtzidis <akyrtzi@gmail.com> Date: Sun Aug 15 10:27:23 2010 +0000 Revert r111082. No warnings for this common pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111102 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c138e06f5a40546f2db816a10254d71c286828d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Aug 15 07:07:24 2010 +0000 Update tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111096 91177308-0d34-0410-b5e6-96231b3b80d8 commit a486e1f1f9d9649039eb64c45f496c7a54581bc9 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Aug 15 07:07:17 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 401d97371b4bbe900fc82f14d17f3f3366143f18 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Aug 15 07:07:12 2010 +0000 llvmc: remove dynamic plugins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111094 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb8b4274a0e90f892ec94fb15fd8dabc6cfba835 Author: Eric Christopher <echristo@apple.com> Date: Sat Aug 14 21:51:50 2010 +0000 Rework how the non-sse2 memory barrier is lowered so that the encoding is correct for the built-in assembler. Based on a patch from Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111083 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6b717b237cd1a31b7053d5f1c25bcf049c1c0b0 Author: Argiris Kirtzidis <akyrtzi@gmail.com> Date: Sat Aug 14 21:35:10 2010 +0000 Add ATTRIBUTE_UNUSED to methods that are not supposed to be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111082 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f99495bc8af3cc2f80eca25314bcd277d8cb3ca Author: Chris Lattner <sabre@nondot.org> Date: Sat Aug 14 17:26:09 2010 +0000 improve indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111073 91177308-0d34-0410-b5e6-96231b3b80d8 commit f338a20a18e8bf2f6f5e54c3dc9cdfe84eece819 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Aug 14 03:18:29 2010 +0000 T2I_rbin_irs rr variant is for disassembly only, so don't provide a pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111068 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fd3ffe5dcb0d596c3ae1d4512e9dc5fbcb337d5 Author: Ted Kremenek <kremenek@apple.com> Date: Sat Aug 14 01:55:09 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111063 91177308-0d34-0410-b5e6-96231b3b80d8 commit f724757aab248147ed7f1db3c6aad8e736bca6f6 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 14 00:43:09 2010 +0000 LoopSimplify shouldn't split loop backedges that use indirectbr. PR7867. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111061 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22c03e248bdb2db1cf732c0a906717e6424f88e7 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 14 00:29:42 2010 +0000 Teach SimplifyCFG how to simplify indirectbr instructions. - Eliminate redundant successors. - Convert an indirectbr with one successor into a direct branch. Also, generalize SimplifyCFG to be able to be run on a function entry block. It knows quite a few simplifications which are applicable to the entry block, and it only needs a few checks to avoid trouble with the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 738fe531d4c16f18cffd3ea97ecb066c667616c2 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Aug 14 00:15:52 2010 +0000 Add a local stack object block allocation pass. This is still an experimental pass that allocates locals relative to one another before register allocation and then assigns them to actual stack slots as a block later in PEI. This will eventually allow targets with limited index offset range to allocate additional base registers (not just FP and SP) to more efficiently reference locals, as well as handle situations where locals cannot be referenced via SP or FP at all (dynamic stack realignment together with variable sized objects, for example). It's currently incomplete and almost certainly buggy. Work in progress. Disabled by default and gated via the -enable-local-stack-alloc command line option. rdar://8277890 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111059 91177308-0d34-0410-b5e6-96231b3b80d8 commit b80aff15bf3dbd16d769a9797979a7cc7f082587 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 13 23:56:28 2010 +0000 Add a lint check for an indirectbr destination which has not had its address taken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111058 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc353cc79f6740609a467e72200957a39bce74eb Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 13 23:24:25 2010 +0000 Add a Thumb2 t2RSBrr instruction for disassembly only. This fixes another part of PR7792. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 520994f4c709aef475f38219b7611bb94cb2e91b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 13 22:56:53 2010 +0000 Clean up the Spiller.h interface. The earliestStart argument is entirely specific to linear scan allocation, and can be easily calculated by RegAllocLinearScan. Replace std::vector with SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111055 91177308-0d34-0410-b5e6-96231b3b80d8 commit b924b99c3245b8be06033d1e07cc793b7b9d8210 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 13 22:43:33 2010 +0000 Temporarily disable tail calls on ARM to work around some linker problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111050 91177308-0d34-0410-b5e6-96231b3b80d8 commit d835339fc65a308abdaf33bb984f1a110f470f3b Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 13 21:48:10 2010 +0000 Move the Thumb2 SSAT and USAT optional shift operator out of the instruction opcode. This fixes part of PR7792. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80257a487c57704a3f2009bbad1c49e71c759f11 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 13 21:24:58 2010 +0000 Various optimizations. Don't compare two loops' depths when they are the same loop. Don't compare two instructions' loop depths when they are in the same block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111045 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d4bbd2e1b8d6ab6aed4794b8901c75939033c2d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 13 21:18:48 2010 +0000 Implement splitting inside a single block. When a live range is contained a single block, we can split it around instruction clusters. The current approach is very primitive, splitting before and after the largest gap between uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 875e32821587a06c06faba5ed1a94a7b6b7d6cff Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 13 21:17:19 2010 +0000 Fix LSR's ExtractImmediate and ExtractSymbol to avoid calling ScalarEvolution::getAddExpr, which can be pretty expensive, when nothing has changed, which is pretty common. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c2f62a65c61982d8496670b138692aeb2d95c01 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 13 20:39:01 2010 +0000 Add comments to some pattern fragments in x86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111041 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9749d377165ab58286df6efb6f95992a71eb68a8 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 13 20:32:35 2010 +0000 tidy up comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111040 91177308-0d34-0410-b5e6-96231b3b80d8 commit af32f640af0d14cbe23b7df7125ec8bc31f40dc0 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 13 20:23:25 2010 +0000 When testing whether one loop contains another, test this directly rather than testing whether the loop contains the other's header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111039 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16feb1efb3c6fcc4f79ef2f86fc15a7efe62bb5d Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 13 20:17:27 2010 +0000 Add a const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111038 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0387e14b1f56b8ac73c86610fbed2e5c8aa17b2d Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 13 20:17:14 2010 +0000 When creating a symmetric SCEV with a constant operand, put the constant operand on the left, as that's where ScalarEvolution will end up canonicalizing to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25a44bc0d036b1d8bd2f8cdac53b9b8247b86caf Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 13 20:11:39 2010 +0000 An add recurrence is loop-invariant in any loop inside of its associated loop. This avoids potentially expensive traversals of the add recurrence's operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37697904abe91c6a46751a4eb977c02a5167cc14 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 13 20:08:59 2010 +0000 tidy up 80 column and whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111033 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc7df3ed32c056d6fe57fa3046eaa602805f03a1 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 13 20:08:53 2010 +0000 Revert r111007. Apparently, this is now fixed in Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111032 91177308-0d34-0410-b5e6-96231b3b80d8 commit a26588b8d82f60113d8ebb7958a2f1b9d812c0aa Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 13 20:03:15 2010 +0000 Implement hasComputableLoopEvolution for Add, Mul, and Trunc operators, since they can support trivial implementations. This avoids potentially expensive traversals of the operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111031 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae3b60df7bd6f4605036ca4dfc6e9e38510cb506 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Aug 13 19:04:21 2010 +0000 Refactor the code for disassembling Thumb2 saturate instructions along the same lines as the change I made for ARM saturate instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111029 91177308-0d34-0410-b5e6-96231b3b80d8 commit d05aa152551b4b0f2b0dc68b8083478e14a5651d Author: Dale Johannesen <dalej@apple.com> Date: Fri Aug 13 18:43:45 2010 +0000 Revert 110491. While not wrong, it was based on a misanalysis and is undesirable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111028 91177308-0d34-0410-b5e6-96231b3b80d8 commit ceb6a19b9bc8edb0788e22bab6e97f8e64cf6da4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 13 17:50:47 2010 +0000 Fix comment to reflect code, and remove an unused argument git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111022 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8544bd543066ab3d61fe5b6f0845304cda51711 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 13 17:44:10 2010 +0000 Improve comment to make explicit why not to touch this could before JIT goes MC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87817c078bebedfe773c66dd285583ae03e8bf2a Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 13 16:55:08 2010 +0000 tidy up whitespace a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79a70f9a5bff01df6ea1a7989dc92c7dd93691ad Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 13 07:03:56 2010 +0000 One more XFAIL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64b3011b58926e97394897bf88521c72cfa5e0f9 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 13 07:01:55 2010 +0000 More XFAILs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111008 91177308-0d34-0410-b5e6-96231b3b80d8 commit cff136429c694525139dc0ece030a7bd33e842dd Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 13 06:02:45 2010 +0000 Add a workaround for building with Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111007 91177308-0d34-0410-b5e6-96231b3b80d8 commit c14ab187911d7ff481d7d735be9fcf6f66ad52f0 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 13 04:15:45 2010 +0000 Add an XFAIL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111004 91177308-0d34-0410-b5e6-96231b3b80d8 commit f284d6778c76615fd0db86c9dc880fec7de1f40d Author: Eric Christopher <echristo@apple.com> Date: Fri Aug 13 02:37:50 2010 +0000 Revert last patch and r110954 as I meant to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111001 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9e247bf75cebf44293122487fc7fd673cab3196 Author: Eric Christopher <echristo@apple.com> Date: Fri Aug 13 02:30:00 2010 +0000 Revert r110954 for now, pseudo instructions can't make it through to the JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72669d45299a531cff67440588dd4894e9d5a430 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 13 02:29:35 2010 +0000 Remove -fexceptions from llvmc tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110999 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96f77303807dc60fdc42a473324bd88605ccb6b8 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Aug 13 02:29:24 2010 +0000 llvmc: fix two tests, remove XFAILs. Tested on Linux and Darwin; please add platform-specific XFAILs/mail me a bug report if this still fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110998 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf222a4a89f87c1e5bd7ed26075bf0289982b119 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 13 01:05:26 2010 +0000 Let LiveInterval::addRange extend existing ranges, it will verify that value numbers match. The old check could accidentally leave holes in openli. Also let useIntv add all ranges for the phi-def value inserted by enterIntvAtEnd. This works as long at the value mapping is established in enterIntvAtEnd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110995 91177308-0d34-0410-b5e6-96231b3b80d8 commit e61db7b21e9121408392d1430a63484e46c3321a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 13 01:05:23 2010 +0000 Remember to actually update SplitAnalysis statistics now that we have a fancy function to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110994 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe8afde57f8bb08d4d4b23c1c9a7774eedc32e96 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Aug 13 00:29:44 2010 +0000 Use getAllOnesValue, saves a copy and looks better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110991 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64b1466c7ae048f86964c66112da5cb35149b007 Author: Nate Begeman <natebegeman@mac.com> Date: Fri Aug 13 00:17:53 2010 +0000 Reapply this transformation now that it is passing the external test which it previously failed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110987 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0a117e586648df55eb0683b94c6f4044ad62beb Author: Nate Begeman <natebegeman@mac.com> Date: Fri Aug 13 00:16:46 2010 +0000 Move some code from Verifier into SVI::isValidOperands. This allows us to catch bad shufflevector operations when they are created, rather than waiting for someone to notice later on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110986 91177308-0d34-0410-b5e6-96231b3b80d8 commit c569eb5f9f0f3b3a79474c920c641099cf84ddfe Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 12 23:56:03 2010 +0000 Trim #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110983 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3d0444c996e09d5058a74c01fa3e0ecdb24b597 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 12 23:50:08 2010 +0000 Tidy up whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110982 91177308-0d34-0410-b5e6-96231b3b80d8 commit d139662ed59c67a3a63f84a42150397a320fd027 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 12 23:46:28 2010 +0000 Use .empty() instead of .size(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98271a4d72d74c9ca9ffe3a2dbd20b76d44f29eb Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 12 23:02:57 2010 +0000 Handle an empty dupli. This can happen if the original interval has been broken into two disconnected parts. Ideally, we should be able to detect when the graph is disconnected and create separate intervals, but that code is not implemented yet. Example: Two basic blocks are both branching to a loop header. Our interval is defined in both basic blocks, and live into the loop along both edges. We decide to split the interval around the loop. The interval is split into an inside part and an outside part. The outside part now has two disconnected segments, one in each basic block. If we later decide to split the outside interval into single blocks, we get one interval per basic block and an empty dupli for the remainder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110976 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2a792c8c31a2026cdc52200dea4def4f42fe334 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 12 23:02:55 2010 +0000 Update the SplitAnalysis statistics as uses are moved from curli to the new split intervals. THis means the analysis can be used for multiple splits as long as curli doesn't shrink. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110975 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc3ff60a322ee2c5ff3a6b51383b6b51e695f651 Author: Chris Lattner <sabre@nondot.org> Date: Thu Aug 12 22:25:23 2010 +0000 fix PR7876: If ipsccp decides that a function's address is taken before it rewrites the code, we need to use that in the post-rewrite pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b4358f364b2909897ff9371626292142c517b35 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 12 20:55:18 2010 +0000 Some small clean-up: use of pseudo instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110954 91177308-0d34-0410-b5e6-96231b3b80d8 commit e89e5e3bded6d22b9fd7b4854b79d3eb784d5bcf Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Aug 12 20:46:17 2010 +0000 Cleaned up the for-disassembly-only entries in the arm instruction table so that the memory barrier variants (other than 'SY' full system domain read and write) are treated as one instruction with option operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110951 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7ee108e1b4771a5e053177f4d1e0ac2faf627da Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 12 20:38:03 2010 +0000 Also recompute HasPHIKill flags in LiveInterval::RenumberValues. If a phi-def value were removed from the interval, the phi-kill flags are no longer valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110949 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6b15171c0d3344722cc1a322845eb807694bbc0 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Aug 12 20:30:05 2010 +0000 Make sure ARM constant island pass does not break up an IT block. If the split point is in the middle of an IT block, it should move it up to just above the IT instruction. rdar://8302637 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 724e73d9e852fe7b03570895caa865a01b1ac124 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 12 20:20:53 2010 +0000 - Teach SSEDomainFix to switch between different levels of AVX instructions. Here we guess that AVX will have domain issues, so just implement them for consistency and in the future we remove if it's unnecessary. - Make foldMemoryOperandImpl aware of 256-bit zero vectors folding and support the 128-bit counterparts of AVX too. - Make sure MOV[AU]PS instructions are only selected when SSE1 is enabled, and duplicate the patterns to match AVX. - Add a testcase for a simple 128-bit zero vector creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 772b6335c6334984b660a79dd9fa0e167750598d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 12 20:01:23 2010 +0000 Remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110944 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d774da38c689e27f718e8a7a555e1a8d65c3a9f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 12 18:50:55 2010 +0000 Clean up debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110940 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5ffc7d1579300539ad338d0695d33f787f9f635 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 12 18:20:59 2010 +0000 Define AVX 128-bit pattern versions of SET0PS/PD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110937 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd583dd13c7e1dbd8003fdb89aa71a5c4f0fc500 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 12 17:31:41 2010 +0000 Add a test for llvm-gcc svn 110632. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110935 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4143aaa57b3b3796f99cbe0fcad8ed55d9d11970 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 12 17:07:14 2010 +0000 Implement single block splitting. Before spilling a live range, we split it into a separate range for each basic block where it is used. That way we only get one reload per basic block if the new smaller ranges can allocate to a register. This type of splitting is already present in the standard spiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 059867881c5409afe62b60fb8f49ce1eab7089ca Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 12 15:00:23 2010 +0000 Optimize ScalarEvolution::getAddExpr's operand factoring code by having it finish processing all of the muliply operands before starting the whole getAddExpr process over again, instead of immediately after the first simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110916 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24a4301d902b360f0159597e19884a1d9beb62ee Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 12 14:52:55 2010 +0000 Hoist some loop-invariant code out of a hot loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110915 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2464f6414ccd2a9a78df8c1ab4d0ff216ea99c5 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 12 14:46:54 2010 +0000 Optimize ScalarEvolution::getAddExpr's duplicate operand detection by having it finish processing the whole operand list before starting the whole getAddExpr process over again, instead of immediately after the first duplicate is found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110914 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce1d28785a4213fb383e6a240f3b7b379b411ffb Author: Duncan Sands <baldrick@free.fr> Date: Thu Aug 12 11:31:39 2010 +0000 Add a 'normalize' method to the Triple class, which takes a mucked up target triple and straightens it out. This does less than gcc's script config.sub, for example it turns i386-mingw32 into i386--mingw32 not i386-pc-mingw32, but it does a decent job of turning funky triples into something that the rest of the Triple class can understand. The plan is to use this to canonicalize triple's when they are first provided by users, and have the rest of LLVM only deal with canonical triples. Once this is done the special case workarounds in the Triple constructor can be removed, making the class more regular and easier to use. The comments and unittests for the Triple class are already adjusted in this patch appropriately for this brave new world of increased uniformity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110909 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5317d40334ef8e34ee62343043b554a922171b90 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 12 07:01:22 2010 +0000 Temporarily revert 110737 and 110734, they were causing failures in an external testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110905 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e9aa20b9884963186c57b51bca2f00a1f0ee912 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 12 02:08:52 2010 +0000 Fix comment order git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110898 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32eda2a47bd34881933b9d632581270191089d91 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 12 02:06:36 2010 +0000 Begin to support some vector operations for AVX 256-bit intructions. The long term goal here is to be able to match enough of vector_shuffle and build_vector so all avx intrinsics which aren't mapped to their own built-ins but to shufflevector calls can be codegen'd. This is the first (baby) step, support building zeroed vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110897 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8723eb9768c8d8b58531c2b593bd27163f35700 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Aug 12 01:40:54 2010 +0000 The autogened decoder was confusing the ARM STRBT for ARM USAT, because the .td entry for ARM STRBT is actually a super-instruction for A8.6.199 STRBT A1 & A2. Recover by looking for ARM:USAT encoding pattern before delegating to the auto- gened decoder. Added a "usat" test case to arm-tests.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110894 91177308-0d34-0410-b5e6-96231b3b80d8 commit 473d8900d05829bf38829ac472a5c1551261a82c Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 12 00:55:42 2010 +0000 MC/X86/AsmParser: Give an explicit error message when we reject an instruction because it could have an ambiguous suffix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110890 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd788dfd1b457c58296e6541ae4d0697b985ad61 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 12 00:55:38 2010 +0000 MC/AsmParser: Push the burdon of emitting diagnostics about unmatched instructions onto the target specific parser, which can do a better job. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110889 91177308-0d34-0410-b5e6-96231b3b80d8 commit a25e4b431775c14bb429057ddde4a8a6099b1f7b Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 12 00:55:32 2010 +0000 tblgen/AsmMatcher: Always emit the match function as 'MatchInstructionImpl', target specific parsers can adapt the TargetAsmParser to this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110888 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dc0f7fe8b9a12fba7dece3344a6fee1aece6814 Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 12 00:17:38 2010 +0000 This is x86 only test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110887 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7f76d71e1dbeb1b5077947be54e6aa1a2d008d9 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 23:53:59 2010 +0000 configure: Add detection of the linker version string. - Review appreciated, as long as you understand that I understand that this is a horrible hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110883 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b4daff9320bbfa64a9789124762bd04f0a3b3d1 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Aug 11 23:35:12 2010 +0000 Changed the format of DMBsy, DSBsy, and friends from Pseudo to MiscFrm. Added two test cases to arm-tests.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110880 91177308-0d34-0410-b5e6-96231b3b80d8 commit f257752330f0fec5473bce9ec9ede9484ef66f1c Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 11 23:17:54 2010 +0000 Even if a variable has constant value all the time, it is still a variable in gdb's eyes. Tested by scope.exp in gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110876 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfc39594a53c7c802a287f6526b7b92b6a189da8 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Aug 11 23:10:46 2010 +0000 Move the ARM SSAT and USAT optional shift amount operand out of the instruction opcode. This also fixes part of PR7792. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110875 91177308-0d34-0410-b5e6-96231b3b80d8 commit 867981f936b2388ca501c4691a636e75ecc213f6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 11 23:08:22 2010 +0000 Fix <rdar://problem/8282498> even if it doesn't reproduce on trunk. When a register is defined by a partial load: %reg1234:sub_32 = MOV32mr <fi#-1>; GR64:%reg1234 That load cannot be folded into an instruction using the full 64-bit register. It would become a 64-bit load. This is related to the recent change to have isLoadFromStackSlot return false on a sub-register load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110874 91177308-0d34-0410-b5e6-96231b3b80d8 commit db001568a3a6270c611d5ffe825551b0a17c6df2 Author: Owen Anderson <resistor@mac.com> Date: Wed Aug 11 22:36:04 2010 +0000 Fix a subtle use-after-free issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110863 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff5c8ca10d4ea743a19e370bc362674ae2ea7731 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Aug 11 22:04:36 2010 +0000 Clean up ConstantRange a bit: - remove ashr which never worked. - fix lshr and shl and add tests. - remove dead function "intersect1Wrapped". - add a new sub method to subtract ranges, with test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110861 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8039ff6d6f487db9c3ede479f312415cec5e1580 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 11 21:12:09 2010 +0000 Add testcases for all AVX 256-bit intrinsics added in the last couple days git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110854 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4ec000e70fd43abd755fe15d97f15d1772ee3d5 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 20:34:43 2010 +0000 Make LoopPass::getContainedPass return a LoopPass* instead of a Pass* and remove casts from all its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110848 91177308-0d34-0410-b5e6-96231b3b80d8 commit e96871c8993fc54bee6320ed69171b87962139d8 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 20:28:16 2010 +0000 Remove BasicBlockPass::runOnFunction, which was unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110847 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a856c2f566b312b87fd2f4eab902a9468b7094a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 11 19:21:05 2010 +0000 Remove rsqrt/sqrt_nr intrinsics since there are no more builtins for them on clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14eba99d2577e402603b1057d55dfae0891e415b Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 19:11:05 2010 +0000 Delete FunctionPass::run, which is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110843 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea2223c439afae968ccde75b4cbeba088189dce2 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 19:05:53 2010 +0000 Delete FunctionPass::runOnModule, which is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110842 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9290fea74cc69422127a11e9abc0a968cfd3b7a Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 18:15:01 2010 +0000 Don't use unsigned char for alignments in TargetData. There aren't that many of these things, so the memory savings isn't significant, and there are now situations where there can be alignments greater than 128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110836 91177308-0d34-0410-b5e6-96231b3b80d8 commit af0440bd31e886d0f3527bad41fba8a032f12823 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 18:14:00 2010 +0000 Use ISD::ADD instead of ISD::SUB with a negated constant. This avoids trouble if the return type of TD->getPointerSize() is changed to something which doesn't promote to a signed type, and is simpler anyway. Also, use getCopyFromReg instead of getRegister to read a physical register's value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110835 91177308-0d34-0410-b5e6-96231b3b80d8 commit dec21aa67701bade44a988624802fe39191421b2 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 11 17:39:23 2010 +0000 Reapply r109881 using a more strict command line for llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110833 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff8bb7b1f8cb6570b71c3f4a428253b8a2936dc3 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 11 17:32:46 2010 +0000 fix silly typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110831 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81d3aec24676c2e84d5eab13c4af96878e0635f9 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 11 17:31:12 2010 +0000 Add a target triple, as the runtime library invocation varies a bit by platform. It's apparently "bl __muldf3" on linux, for example. Since that's not what we're checking here, it's more robust to just force a triple. We just wwant to check that the inline FP instructions are only generated on cpus that have them." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110830 91177308-0d34-0410-b5e6-96231b3b80d8 commit db46761dba645fe31129803a2124572fc0cc6490 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 11 17:25:51 2010 +0000 Fix test and re-enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110829 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c67f2e3e3e595cc48d2de8d777f7afc314f3856 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 11 16:50:17 2010 +0000 Fix a FIXME. The SlotIndex::Slot enum should be private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44d7f79d999c8202266fc0554041e11371b5777c Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 16:36:07 2010 +0000 Temporarily disable some failing tests, until they can be properly investigated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110825 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbf615fec2218d7ea4c8f05612c683273c84527a Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 11 15:44:15 2010 +0000 cortex m4 has floating point support, but only single precision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9714bd94d753f53c976d1b01e1b39aaaae1fec4b Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 15:09:00 2010 +0000 Temporarily disable some failing tests, until they can be properly investigated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110808 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fa185e5b2b4e0010f90d742cf4742a97cada5db Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 11 08:43:16 2010 +0000 Consider this code snippet: float t1(int argc) { return (argc == 1123) ? 1.234f : 2.38213f; } We would generate truly awful code on ARM (those with a weak stomach should look away): _t1: movw r1, #1123 movs r2, #1 movs r3, #0 cmp r0, r1 mov.w r0, #0 it eq moveq r0, r2 movs r1, #4 cmp r0, #0 it ne movne r3, r1 adr r0, #LCPI1_0 ldr r0, [r0, r3] bx lr The problem was that legalization was creating a cascade of SELECT_CC nodes, for for the comparison of "argc == 1123" which was fed into a SELECT node for the ?: statement which was itself converted to a SELECT_CC node. This is because the ARM back-end doesn't have custom lowering for SELECT nodes, so it used the default "Expand". I added a fairly simple "LowerSELECT" to the ARM back-end. It takes care of this testcase, but can obviously be expanded to include more cases. Now we generate this, which looks optimal to me: _t1: movw r1, #1123 movs r2, #0 cmp r0, r1 adr r0, #LCPI0_0 it eq moveq r2, #4 ldr r0, [r0, r2] bx lr .align 2 LCPI0_0: .long 1075344593 @ float 2.382130e+00 .long 1067316150 @ float 1.234000e+00 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110799 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd143a6bb481bdc4253bbf64032415b17bccb23b Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 11 07:17:46 2010 +0000 Report error if codegen tries to instantiate a ARM target when the cpu does support it. e.g. cortex-m* processors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48c2386ab8ff853590353515a905d2cdc8dcbdf8 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 11 07:00:16 2010 +0000 ArchV7M implies HW division instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110797 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26985b01bc0063c98166421bf2f94ec99a15a4b1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 11 06:57:53 2010 +0000 ArchV6T2, V7A, and V7M implies Thumb2; Archv7A implies NEON. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bfeffb5b113e72bf51376988d871b0fac0957f1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 11 06:51:54 2010 +0000 Add ARM Archv6M and let it implies FeatureDB (having dmb, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110795 91177308-0d34-0410-b5e6-96231b3b80d8 commit c153186a1c0a44b0f04180c0c88312bfe79568ed Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 06:37:20 2010 +0000 MC/ARM: Add basic support for handling predication by parsing it out of the mnemonic into a separate operand form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110794 91177308-0d34-0410-b5e6-96231b3b80d8 commit da6482b8d235b9a62a5ebcb89d31be541f1ddf4a Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 06:37:16 2010 +0000 MC/ARM: Split mnemonic on '.' characters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110793 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad0290013c6e5562a5cdb281fdb8b63ea03e75b1 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 06:37:12 2010 +0000 MC/ARM: Fill in ARMOperand::dump a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c0ac926a2bdf0aea292a533f3257b0fb718abb7 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 06:37:09 2010 +0000 llvm-mc: Add -show-inst-operands, for dumping the parsed instruction representation before matching. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110791 91177308-0d34-0410-b5e6-96231b3b80d8 commit cabedf9823f1a27525d81a4004ff07516f8d8e46 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 06:37:04 2010 +0000 MCAsmParser: Add dump() hook to MCParsedAsmOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65c1e3b5a2a9e80156c8535c507cb77f4d241f4c Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 06:36:59 2010 +0000 tblgen/AsmMatcher: Treat '.' in assembly strings as a token separator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110789 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84940a55f107d0295daafded3c41056896b2983e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 06:36:53 2010 +0000 MC/ARM: Add an ARMOperand class for condition codes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48a1d6f4aa3a8f40e575d13543640a8f35f3a0a0 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 11 06:36:31 2010 +0000 Really control isel of barrier instructions with cpu feature. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22ae72889dbbd495769f89339a45d74960045aea Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 11 06:30:38 2010 +0000 Add Cortex-M0 support. It's a ARMv6m device (no ARM mode) with some 32-bit instructions: dmb, dsb, isb, msr, and mrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110786 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23443eb00b12b7b0c555ad81c9fb00f0fc197822 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Aug 11 06:22:01 2010 +0000 - Add subtarget feature -mattr=+db which determine whether an ARM cpu has the memory and synchronization barrier dmb and dsb instructions. - Change instruction names to something more sensible (matching name of actual instructions). - Added tests for memory barrier codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 847c425c0de2600c74be2f4cee01b3f5395ade11 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 05:24:50 2010 +0000 MC/ARM: Switch to using the generated match functions instead of stub implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110783 91177308-0d34-0410-b5e6-96231b3b80d8 commit f99930e5fd6515dbca4418d1d0c00e38ef2bdfc6 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 05:09:20 2010 +0000 MC/ARM: Enable generation of the ARM asm matcher, not that it can do much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110782 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e36e102e7c640d71657a2e2a58200d30bcb2295 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 04:46:13 2010 +0000 ARM: Mark some disassembler only instructions as not available for matching -- for some reason they have a very odd MCInst form where the operands overlap, but I haven't dug in to find out why yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110781 91177308-0d34-0410-b5e6-96231b3b80d8 commit e506505a9b3ecc4b49c6ade9e3f41e83abd88d52 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 04:46:10 2010 +0000 ARM: Quote $p in an asm string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11d45c8fa3723fc7461f62ad17c18e365b36257b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 04:46:08 2010 +0000 tblgen/AsmMatcher: Downgrade instructions with tied operands to a debug-only warning, for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110779 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b03f2b5fe9ad86a52b16e822d509f9d3339c71b Author: Owen Anderson <resistor@mac.com> Date: Wed Aug 11 04:24:25 2010 +0000 Improve indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110778 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc179eafeeb9ad79f02768d90fd0a574a3bc0232 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 11 02:15:33 2010 +0000 Remove AVX 256-bit cast intrinsics now that clang is using __builtin_shufflevector for those git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110772 91177308-0d34-0410-b5e6-96231b3b80d8 commit f557e865ad750d2437253b001ac64429dbfe92ee Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 11 01:44:11 2010 +0000 Remove AVX 256-bit unpack and interleave intrinsics now that clang is using __builtin_shufflevector for those git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110769 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a7978bfb3e9aa65a3b15d5d38b30c2161afae19 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 11 01:18:26 2010 +0000 Remove AVX 256-bit shuffle intrinsics now that clang is using __builtin_shufflevector for those git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110767 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80ef2e2b4883fc54f4099ff2d817a03bd3453edb Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 11 01:05:02 2010 +0000 Update test to match output of optimize compares for ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91c7ed5e8d6b3addab708209dfe9ce0a56d48acd Author: Oscar Fuentes <ofv@wanadoo.es> Date: Wed Aug 11 00:51:32 2010 +0000 CMake: corrections on LLVM.cmake external services. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110763 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88ed2f994d0fc0ae5ca494eda5ab67bd31ca728c Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 11 00:23:00 2010 +0000 Handle ARM compares as well as converting for ARM adds, subs, and thumb2's adds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110762 91177308-0d34-0410-b5e6-96231b3b80d8 commit de0134026bcaeeeb49e866b6c9d6b6c4b8b35cf7 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 11 00:22:27 2010 +0000 Mark ARM compare instructions as isCompare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110761 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f3192285e1f94786f1e07c5fc66a4c40037022d Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Aug 11 00:15:13 2010 +0000 Make it possible to set the cpu used for codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110759 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f279d1a14e36102fd2635b2e412f5501f335759 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 11 00:12:36 2010 +0000 When analyzing loop exit conditions combined with and and or, don't make any assumptions about when the two conditions will agree on when to permit the loop to exit. This fixes PR7845. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110758 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66a893fd1beb9f744c3fbd2aa38bb62b1e63e1cd Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 00:11:19 2010 +0000 lto: Fix an inverted conditional which prevented the addition of symbols scraped from inline assembly, except in cases where they had already been seen (in which case they would get added twice). - I can't see how this ever worked... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a4b3301115241eb3e1bfc19748b81c95b9dc860 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Aug 11 00:11:17 2010 +0000 lto: Fix gratuitous memory leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110756 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80758ec52f0b907ef57ef05ada10519e26b01acf Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Aug 11 00:01:18 2010 +0000 Add a separate ARM instruction format for Saturate instructions. (I discovered 2 more copies of the ARM instruction format list, bringing the total to 4!! Two of them were already out of sync. I haven't yet gotten into the disassembler enough to know the best way to fix this, but something needs to be done.) Add support for encoding these instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110754 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d8450e28e43f7a5f188e2701db94220e7c8d06e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Aug 10 23:48:22 2010 +0000 Avoid multiple definition warnings when both config.h and llvm-config.h are included. This is the cmake counterpart of r110547. See bug #7809. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110753 91177308-0d34-0410-b5e6-96231b3b80d8 commit eff07a736fe332e6013d617b1787f4fe313c9845 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 10 23:46:46 2010 +0000 lto: Reduce nesting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c849f939ffe5808e96ebe2ba165f5617d14ad05 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 10 23:46:39 2010 +0000 LTOModule.cpp: Fix numerous style issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17a259e47cc6620f29eba276e8206449bbf22275 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 10 23:46:30 2010 +0000 Rename and reorder the arguments to isImpliedCond, for consistency and clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110750 91177308-0d34-0410-b5e6-96231b3b80d8 commit 477a3708ecc8070c90e7fc425d18bd142bfbb861 Author: Eric Christopher <echristo@apple.com> Date: Tue Aug 10 23:46:20 2010 +0000 We already have this as OperandNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4735c5160e3768151f8c5cf5b9f8a07abed3fbd9 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 10 23:27:11 2010 +0000 CBZ and CBNZ are implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110745 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43acc9b30626213c9fc2e59681b67be654370887 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 23:25:42 2010 +0000 Add AVX matching patterns to Packed Bit Test intrinsics. Apply the same approach of SSE4.1 ptest intrinsics but create a new x86 node "testp" since AVX introduces vtest{ps}{pd} instructions which set ZF and CF depending on sign bit AND and ANDN of packed floating-point sources. This is slightly different from what the "ptest" does. Tests comming with the other 256 intrinsics tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110744 91177308-0d34-0410-b5e6-96231b3b80d8 commit e00dcf8c7a56a942b30d50e6a06d806fdfa4ee27 Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 10 23:20:01 2010 +0000 Now that we're using ConstantRange to represent potential values, make use of that represenation to create constraints from comparisons other than eq/neq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85f6907ff7616f716d0e2c31efb8e4e599d87725 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 10 22:16:05 2010 +0000 The optimize comparisons pass removes the "cmp" instruction this is checking for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 083ca9b41434f337c42bd785ac1a799ffcf11131 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Aug 10 21:58:00 2010 +0000 Add test for recent instcombine vector shuffle enhancement git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110737 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdd2440703a970c2ae82c14562560cb489865c64 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 10 21:45:38 2010 +0000 upgrade to use new intrinsics, patch by Dan Hipschman! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110735 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef84c2cc25322f7f185014640f860fc7375f2cd9 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Aug 10 21:38:12 2010 +0000 Add the minimal amount of smarts necessary to instcombine of shufflevectors to recognize patterns generated by clang for transpose of a matrix in generic vectors. This is made of two parts: 1) Propagating vector extracts of hi/lo half into their users 2) Recognizing an insertion of even elements followed by the odd elements as an unpack. Testcase to come, but this shrinks the # of shuffle instructions generated on x86 from ~40 to the minimal 8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110734 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5aa77997e4057974a9e49f183ed67465a7199831 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 10 21:38:11 2010 +0000 Turn optimize compares back on with fix. We needed to test that a machine op was a register before checking if it was defined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110733 91177308-0d34-0410-b5e6-96231b3b80d8 commit f058bbf1ade2d88887dc8466e57a40a2d0c90171 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 10 21:16:16 2010 +0000 Give up on register class recalculation when the register is used with subreg operands. We don't currently have a hook to provide "the largest super class of A where all registers' getSubReg(subidx) is valid and in B". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110730 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddd278157e8e0e3b93c6a25d5b0373095851642a Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 10 20:49:33 2010 +0000 Revert r110718; it broke clang-i386-darwin9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110726 91177308-0d34-0410-b5e6-96231b3b80d8 commit f10da148fc89948da3a59c728bc24b72d1c19a77 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 10 20:45:07 2010 +0000 Avoid editing the current live interval during remat. The live interval may be used for a spill slot as well, and that spill slot could be shared by split registers. We cannot shrink it, even if we know the current register won't need the spill slot in that range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110721 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f9f7318ad9939b82a66854210a1065c7aa77d68 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 10 20:45:01 2010 +0000 More debug spew git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110720 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5c2ee0ef5a96025ea2aba04e4e1ad328cb68132 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 10 20:23:02 2010 +0000 Turn optimize cmps on by default so that we can get some testing by the nightly ARM testers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110718 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40f1a96bca6148acf6f71650b5a250945cc18b92 Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 10 20:22:49 2010 +0000 Add missing argument. CreateCompositeTypeEx() users, please verify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110717 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2240a8e8e399b225624c24812ea0e6bf66484f6e Author: Owen Anderson <resistor@mac.com> Date: Tue Aug 10 20:03:09 2010 +0000 Switch over to using ConstantRange to track integral values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110714 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebbcab20acada10f557a17eae86d352a9354eb7a Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 10 20:01:20 2010 +0000 Do not forget debug info for enums. Use named mdnode to keep track of these types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110712 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd5b909fe67cac940aba1bdc222c5b07c208d5dc Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 10 19:36:25 2010 +0000 tests: Don't error out if HOME isn't present in t the environment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110711 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f1f4fe2990016caa4f6e3ffcd66630f7aea997f Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 10 19:36:22 2010 +0000 Delete some unused instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110710 91177308-0d34-0410-b5e6-96231b3b80d8 commit b005a58306271c74b886b1d0b443ac6c37f28fff Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 10 19:30:19 2010 +0000 Re-apply r110655 with fixes. Epilogue must restore sp from fp if the function stack frame has a var-sized object. Also added a test case to check for the added benefit of this patch: it's optimizing away the unnecessary restore of sp from fp for some non-leaf functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0362878d65b2996815fcc63a1e5eaaf871deeb69 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Aug 10 18:55:09 2010 +0000 Make it possible to set the flags passed to the assembler. Nick, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110705 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdabab86e3b97db1a0cc0fd1736a6cc60e2ec1c3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 10 18:37:40 2010 +0000 Implement register class inflation. When splitting a live range, the new registers have fewer uses and the permissible register class may be less constrained. Recompute the register class constraint from the uses of new registers created for a split. This may let them be allocated from a larger set, possibly avoiding a spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110703 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f0557ef9ab90d54605df0eac34ce60f876cc10c Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 10 18:32:02 2010 +0000 Revert r110655, "Fix ARM hasFP() semantics. It should return true whenever FP register is", it breaks a couple test-suite tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24d967da3f174ed2fc476efbd091759ac4dbdd22 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 10 17:38:52 2010 +0000 MC/AsmParser: Fix a bug in macro argument parsing, which was dropping parentheses from argument lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110692 91177308-0d34-0410-b5e6-96231b3b80d8 commit efe5200aeb971aba32ac7dd7c6d818b8acb32b0e Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Aug 10 17:13:58 2010 +0000 Install llvmCore_Sim to the simulator SDK directory. Radar 8282845. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110687 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5c39372f4e61ee6944022b34c67464298b8d39f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 10 17:07:22 2010 +0000 Recalculate the spill weight and allocation hint for virtual registers created during live range splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50b8bd34794b2330936cd392b4c49bf3279135a7 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 10 16:48:24 2010 +0000 Fix test for more architectures. Patch by Tobias Grosser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110685 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72fa429b724b9636c1e3be9a087dad071b7b142a Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Aug 10 16:32:15 2010 +0000 Fix silly bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3403845ce0a52c37d2b4d8043f6afb86a9071222 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 10 16:00:49 2010 +0000 Revert "MC/MachO: Fix possible null pointer dereference." This reverts commit 110575. Target.isAbsolute() is true if SD would be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b399e1e4eaa27d70e0553a22364e3fc1ccd98c2 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Aug 10 15:46:11 2010 +0000 Use RunPassesOn as in the rest of bugpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110682 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb4ad2f573d634e28d2e20fa8af5813a48eca1cf Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Aug 10 14:49:29 2010 +0000 Simplify generating LLVMC_BUILTIN_PLUGIN. Patch by NAKAMURA Takumi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110680 91177308-0d34-0410-b5e6-96231b3b80d8 commit c995da12a2c74b662747fa1231ce0867a9ad1bbf Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Aug 10 14:49:24 2010 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110679 91177308-0d34-0410-b5e6-96231b3b80d8 commit d501a9d1cc1e30f03365531b6983023ab0648dab Author: Chandler Carruth <chandlerc@gmail.com> Date: Tue Aug 10 10:39:25 2010 +0000 Mark this variable as used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110667 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4732c055c884e7ac5ff5930680784f9d87867d2 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Tue Aug 10 09:54:35 2010 +0000 RegionInfo: Do not assert if a BB is not part of the dominance tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110665 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88cbb4945416dafe197631b18cbe3f46e26c50ad Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Tue Aug 10 09:54:29 2010 +0000 Fix failing testcase. Those look like typos to me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cb5b803f1b96c3c6a8969864f3eff6b550afba9 Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 10 07:11:13 2010 +0000 Handle TAG_constant for integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46e64ccc16af9116cd2e98cc7537e11692a6f6bf Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 10 06:26:49 2010 +0000 Fix ARM hasFP() semantics. It should return true whenever FP register is reserved, not available for general allocation. This eliminates all the extra checks for Darwin. This change also fixes the use of FP to access frame indices in leaf functions and cleaned up some confusing code in epilogue emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a9b0cea6e5f39ef2515be11eeee66501dd68fd4 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Aug 10 05:16:06 2010 +0000 Update CMake...sorry for the breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110654 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd6931eb9dfb37a21529ee3412ceaaf95b11635f Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 10 04:12:17 2010 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37dcebdf291b8580b05f0dbc86faefb74d06cdbe Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 10 04:09:06 2010 +0000 Drop "const". It does not add value here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110652 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2a07b838c360335ee4c7ecacaa5da09b5bc6de9 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 02:49:24 2010 +0000 Add AVX movnt{pd,ps,dq} 256-bit intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110650 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4dbe5a1cae5e996c097923d85f2eb7158ecdeb9 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Aug 10 02:39:45 2010 +0000 Add missing null check reported by Amaury Pouly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a453e6c957c5112ca2e81bf36b5f12c6b00570f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 02:34:56 2010 +0000 Add AVX movmsk 256-bit intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110648 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3288d5be9ea04252d12aaab930b6e05739c96d5 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 02:25:35 2010 +0000 Remove replicate intrinsics, clang will generate shufflevector for those. The shuffles can't be matched by x86 codegen yet, but will soon git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110647 91177308-0d34-0410-b5e6-96231b3b80d8 commit ead14e6d656cbf9f9e059d6f5b4861c6f84049fc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 01:43:16 2010 +0000 Support AVX 256-bit load and store intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110645 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6bd1693632fa6589d2b2ee9ccc6a4f9913ad71b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 01:40:05 2010 +0000 Use i32 instead of i8 for dot product intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110643 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffe08fb8623460815f8337aaace9f395555fa2ae Author: Devang Patel <dpatel@apple.com> Date: Tue Aug 10 01:37:23 2010 +0000 Do not include file static variable in pubnames list. Refactor and simplify code to avoid redundant checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cc3ed6a06cda916a66d6ec0d96c5e1dae0ddb3b Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 10 01:03:34 2010 +0000 Expand uses of python 2.6's "A if B else C" syntax into regular if-else statements, to hopefully support older pythons (PR7850). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2baadcd7a2844e8772bb6d742d7a43d1fb1fb746 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 10 00:34:06 2010 +0000 remove code setting rw locks to PTHREAD_PROCESS_PRIVATE, which is the default. Patch by NAKAMURA Takumi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110636 91177308-0d34-0410-b5e6-96231b3b80d8 commit acfcf43b2b6679cdc267eec6e2ef374fbc725a01 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 00:13:20 2010 +0000 Patterns to match AVX cmp instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110633 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98fb4a1513e6db64c50aca4b24ffb2e9a6e74908 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 10 00:02:26 2010 +0000 Transpose the calculation of spill weights such that we are calculating one register at a time. This turns out to be slightly faster than iterating over instructions, but more importantly, it allows us to compute spill weights for new registers created after the spill weight pass has run. Also compute the allocation hint at the same time as the spill weight. This allows us to use the spill weight as a cost metric for copies, and choose the most profitable hint if there is more than one possibility. The new hints provide a very small (< 0.1%) but universal code size improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110631 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17a58770dd628d37b612988f40aded611b442206 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 00:02:05 2010 +0000 Add matching patterns for vblend AVX intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110630 91177308-0d34-0410-b5e6-96231b3b80d8 commit a38318f2afc96865f48b8abe8ca1dfd633308372 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 10 00:00:22 2010 +0000 Fix the last argument type of AVX vblend intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54be80920ce27b76e0ede3834f17673229a72caa Author: Bill Wendling <isanbard@gmail.com> Date: Mon Aug 9 23:59:04 2010 +0000 Merge the OptimizeExts and OptimizeCmps passes into one PeepholeOptimizer pass. This pass should expand with all of the small, fine-grained optimization passes to reduce compile time and increase happiment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 658d20ac4e6139912a8bd6bf8074ff2aab4cb950 Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 9 23:28:52 2010 +0000 Undo accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110623 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e2f2ea2f273b1ae624bf237c667164d24841f26 Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 9 23:26:06 2010 +0000 Simplify. Avoid redundant checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a39b420d74c7b52ac668262285fc1e1d27f2036 Author: Eric Christopher <echristo@apple.com> Date: Mon Aug 9 22:52:47 2010 +0000 Wording. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110618 91177308-0d34-0410-b5e6-96231b3b80d8 commit 796963670b1a4740be25c185568d3a140f504375 Author: Kevin Enderby <enderby@apple.com> Date: Mon Aug 9 22:52:14 2010 +0000 Next bit of support for the dwarf .file directive. This patch takes the previously collected info from the .file directives and outputs the encoded bytes for it. For now this is only in the Mach-O streamer but at some point will move to a more generic place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110617 91177308-0d34-0410-b5e6-96231b3b80d8 commit 156d34e73ee45477a69c02b67b0e5d9152cd87a1 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Aug 9 22:32:45 2010 +0000 ARMBaseRegisterInfo::hasFP() has been broken for a while now. :-( This will always be false before PEI: (DisableFramePointerElim(MF) && MFI->adjustsStack()) Which means it's going to make r11 available as a general purpose register even if -disable-fp-elim is specified. It's working on Darwin only because r7 is always reserved. But it's obviously broken for other targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 161b19000c8df67274b93dce50a37ab5f4c8e0e8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Aug 9 21:51:56 2010 +0000 Add VCVTPD2PS, VCVTPS2DQ, VCVTPS2PDY, VCVTTPD2DQY, VCVTTPS2DQ and VCVTPD2DQ 256-bit conversion intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110608 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fd6283f018578435afc63592c975cb0817f55ae Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 9 21:39:24 2010 +0000 Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110607 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e08c5e9e254e313bfa052dd3dfc3083185765a8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Aug 9 21:24:59 2010 +0000 Add patterns to AVX conversions instructions. Do that instead of declaring more intructions whenever is possible, more coming git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110605 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee788c53a475d19f9c0928010b0eb9fc23bba249 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Aug 9 21:09:46 2010 +0000 Make it possible to set the target triple and expose that with an option in the gold plugin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110604 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6820700a5d6486c3488653b5f34cc1dba44b8c88 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Aug 9 21:03:28 2010 +0000 Fix a use after free error caught by the valgrind builders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e3735559a5c5751c9f69bfd9f702b1846764b18 Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 9 21:01:39 2010 +0000 Refactoring. Update DbgVarible to handle queries itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110600 91177308-0d34-0410-b5e6-96231b3b80d8 commit 147a61c75105e73d7b2885664c1b8fb186697436 Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 9 20:50:46 2010 +0000 Add ConstantRange information to the debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 967e4968f670d3effc907f0e6d77d1756f7d53a2 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Aug 9 20:49:43 2010 +0000 PR7853: fix a silly mistake introduced in r101899, and add a test to make sure it doesn't regress again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110597 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57b2724051c31613039b70fb62ab20afac65629e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 9 20:33:20 2010 +0000 Update cmake library dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110594 91177308-0d34-0410-b5e6-96231b3b80d8 commit f874b2e225194d744bb9987071782a232de4d27b Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 9 20:33:08 2010 +0000 CMake: eliminated unnecessary target_link_libraries. Next time the build is broken due to wrong library dependencies, just try building again (if you are on some Unix and are building all LLVM targets) or ask someone to commit the regenerated LLVMLibDeps.cmake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110593 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a6f46d948b4a9c31cb7b9c4f83cba7b9b125c5b Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 9 20:20:05 2010 +0000 It is ok, and convenient, to pass descriptors by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110590 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43cd70bcbd2e15044cb29d697087c2a59b6bd1e5 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Aug 9 20:19:16 2010 +0000 A REG_SEQUENCE instruction may use the same register twice. If we are emitting COPY instructions for the REG_SEQUENCE, make sure the kill flag goes on the last COPY. Otherwise we may be using a killed register. <rdar://problem/8287792> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110589 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcf68b6b08c1e5b238ea796a3baa682946333f46 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Aug 9 19:19:36 2010 +0000 Explicitly initialize SlowFPBrcc and Pref32BitThumb to false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110587 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e328f33b27775193c80702a1c4f28f16693bde1 Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 9 18:51:29 2010 +0000 Rename a method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110586 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb071c19430b9f414829b396d87c5dd28cf156cf Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Aug 9 18:35:19 2010 +0000 Change -prefer-32bit-thumb to attribute -mattr=+32bit instead to disable more 32-bit to 16-bit optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110584 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68ead2168dae31483dc353964a5c437ecceb5142 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Aug 9 18:20:14 2010 +0000 Memory version of vcvtdq2pd intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b30f8f7e500f76210b2686efe7a93c2c632521c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Aug 9 18:03:43 2010 +0000 Patterns to match vinsert, vbroadcast, vmovmask and vcvtdq2pd AVX intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110580 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab7c7ddb143d3d0cea2e59e3485eca19fa4061e0 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Aug 9 17:16:10 2010 +0000 Add an option to disable 32 -> 16-bit Thumb2 size reduction pass for experimentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110579 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ba6e21392f093467fbcf4272106a91c2af2f9d7 Author: Duncan Sands <baldrick@free.fr> Date: Mon Aug 9 16:44:56 2010 +0000 Remove the ValueMap operator=, which was wrong (it did't correct the Map pointers of any contained ValueMapCallbackVH's) and unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110577 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6b471b281780e8c745342ffb8c1ea436b9e553c Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Aug 9 16:33:00 2010 +0000 Have SPU handle halfvec stores aligned by 8 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110576 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50289c7127f8c885565917b2de93a18c454cd23d Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Aug 9 15:28:05 2010 +0000 MC/MachO: Fix possible null pointer dereference. Discovered by Microsoft Visual Studio 2010 Code Analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fd7f20779d64c7f27ebe5d2aca06ba1bdc188b6 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Aug 9 15:14:06 2010 +0000 XFAIL for mingw that has no plugins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110574 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6d5deed3e362c010be6d958970bb056551caea3 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Aug 9 14:05:42 2010 +0000 Don't try to build a plugin on windows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110573 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca4cda0d230c2f1a6717580eb3714d88dfc659f4 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Aug 9 07:20:20 2010 +0000 Stop the JIT from refusing to work just because the program it was compiled into was built with -static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dda26bf1d0d1433ee63531e2976627ee8a8274e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 9 03:47:11 2010 +0000 CMake: llvm_map_components_to_libraries now returns system libs too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ea02e590283e8ad65d46346a0f1b8f09a4d0e08 Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Mon Aug 9 03:43:39 2010 +0000 Change the Interval type to signed in ImmutableIntervalMap.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74e9f3d0c006fb0ff165c1d7cb8c5b1836dee9d6 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 9 03:26:48 2010 +0000 CMake: document how to incorporate LLVM into the cmake project of an external project. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110561 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3217a687ee3f9c8ac26a977442077f3b0aec09fe Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 9 03:26:43 2010 +0000 CMake: system for providing llvm-config-like features to the user. The user can use a cmake function for obtaining the LLVM libraries corresponding to a list of LLVM components. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110560 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2a6ebec9e5d9561d94a70c2241a4ae462fa0b67 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 9 02:49:39 2010 +0000 CMake: documented testing procedure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110559 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cbaf2e1289360aa994aba66113426f748654f93 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Sun Aug 8 23:26:49 2010 +0000 llc: Fix help typo as pointed out by Nick Lewycky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bf853215ee82e71d167086c9ff2e1dec45f92ce Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Aug 8 22:14:20 2010 +0000 Add a opt-args option that can be used to pass arguments to every opt invocation. Fixes PR7793: bugpoint -debug test.ll --opt-args -unroll-count=4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110555 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58ed2bc92bda9089807f1fc1cde2cbf1e77eaef5 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Aug 8 21:14:26 2010 +0000 s/libLLVMgold/LLVMgold/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110552 91177308-0d34-0410-b5e6-96231b3b80d8 commit f10d570166b78d1a0c64e02ad72106cdf45d0809 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Aug 8 19:54:10 2010 +0000 Remove unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110551 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce13d4628e1569753f6fa5ae5ac8fa0cee20ed71 Author: Duncan Sands <baldrick@free.fr> Date: Sun Aug 8 12:57:48 2010 +0000 Remove the ValueMap copy constructor. It's not used anywhere, and removing it catches the mistake of passing a ValueMap by copy rather than by reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2139f7205e2a34521be12db440b7502d85ad7761 Author: Eric Christopher <echristo@apple.com> Date: Sun Aug 8 09:20:39 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110548 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9a0a9a42e21290d085921b372b23419469d1e05 Author: Eric Christopher <echristo@apple.com> Date: Sun Aug 8 09:18:29 2010 +0000 Add a bit of a hack to avoid multiple defines of variables in config.h and llvm-config.h. This could probably be improved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110547 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f61e3dcb26d93a0df5eebd64e06bebd67dc61ea Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Aug 8 07:04:25 2010 +0000 Add optimization to Target/README.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110543 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a024d05debca296a96dc2b88e9202936e8fcb2a Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Aug 8 06:12:09 2010 +0000 Reject unrepresentable pointer types in intrinsics. Fixes PR7316. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110541 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0755af66a6b3e815a01d348d451da8816947f2cf Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 8 05:04:59 2010 +0000 Use the "isCompare" machine instruction attribute instead of calling the relatively expensive comparison analyzer on each instruction. Also rename the comparison analyzer method to something more in line with what it actually does. This pass is will eventually be folded into the Machine CSE pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110539 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfc1977e6446dab8273227e5168a7e972238ce48 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Aug 8 05:04:23 2010 +0000 Do more to modernize MergeFunctions. Refactor in response to Chris' code review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110538 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc390e14266059e90052197c56dbe45affd157b0 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sun Aug 8 04:32:21 2010 +0000 CMake: set configure macro LLVM_PREFIX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110536 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ce316e7e04b8ad7f43bc229efeaa7909b7e3930 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sun Aug 8 04:17:18 2010 +0000 CMake: configure header llvm-config.h This is the cmake equivalent of r110532, which fixed bug #7809. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53c658223a2232116fed58e1893e9941a30cff17 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Aug 8 03:55:08 2010 +0000 Most of bugpoint now only needs to know the pass names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110534 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95af5035f8ac1d7728e89c77cbe08a8bbabed788 Author: Eric Christopher <echristo@apple.com> Date: Sun Aug 8 02:44:25 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110533 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1fd148215ab5b99b387bbc8754c7b8ec9f71205 Author: Eric Christopher <echristo@apple.com> Date: Sun Aug 8 02:44:17 2010 +0000 Fix PR7809 by creating a header for just llvm variables that can be included in exported interfaces. Update a couple of exported interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110532 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcc479b6d8d26b0674eb88e4e5a55298857a3155 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 8 01:49:35 2010 +0000 Add back in r109901, which adds a Compare flag to the target instructions. It's useful after all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60947a56e81589453890f9553d35f4f454ea9269 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Aug 8 00:55:59 2010 +0000 Use %shlibext instead of .so git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92f4e442825ec7e9f0f82318c4e582677b21bcb3 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Aug 8 00:50:57 2010 +0000 Try to fix cmake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110528 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7d8a3f45f001f272a8c636ba519f45204125acd Author: Eric Christopher <echristo@apple.com> Date: Sun Aug 8 00:00:34 2010 +0000 Fix a couple of warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110527 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0bf5213ed15455af6663cba5555afc9096fbc21 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Aug 7 23:03:21 2010 +0000 Run opt instead of bugpoint itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110524 91177308-0d34-0410-b5e6-96231b3b80d8 commit b34de7997f1a22de484342d8e93b517855c1daa4 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Aug 7 21:58:44 2010 +0000 Another missing file :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110522 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9bbb5a724ef53ceb7cd2822c83d7c32d0e2fea4d Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Aug 7 21:53:04 2010 +0000 Add missing file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dbce405df7701465c5471ae11cad50220741e60 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Aug 7 21:48:09 2010 +0000 Move the bugpoint test passes to a plugin in preparation for having bugpoint use opt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110520 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3badf0b115701442b961302aa1d7b6063354251 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 7 13:27:41 2010 +0000 Roll back my last two commits, valgrind complains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a587d576cb4d43d2db4c9006fb81f016576e865 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 7 13:07:57 2010 +0000 A reference to the Timer's name is safe, it outlives the contents of the vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110517 91177308-0d34-0410-b5e6-96231b3b80d8 commit a257697a5de148e34822c7cc7b74da8900b178b4 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 7 12:37:00 2010 +0000 Kill rarely used std::sort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84a3698e4000b9ad5768f0895b1033cb946c1a0a Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Aug 7 11:45:42 2010 +0000 Shrink PassNameParser's binary size with array_pod_sort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47c1c0c25d7e3d83825e5525dcedc3925dc8ae08 Author: Owen Anderson <resistor@mac.com> Date: Sat Aug 7 06:01:13 2010 +0000 Remove layering violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110505 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebe9cf09ca60e564ca0e725915ff9b4b0e893f25 Author: Owen Anderson <resistor@mac.com> Date: Sat Aug 7 05:47:46 2010 +0000 Add an inverse() method to ConstantRange. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110504 91177308-0d34-0410-b5e6-96231b3b80d8 commit d88c0b7895e8cfe3dd5029286ffc7138fb612c52 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Aug 7 05:25:29 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110502 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98e370a66909611f63d62c4ba3bb6a867bd30510 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 7 01:25:32 2010 +0000 Remove assignPassManager's default arguments. It's really confusing to have different arguments for the same virtual function at different levels of the class hierarchy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110500 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7f0f8e1cb0bf69f4c88ff92cb942b88d7ca00f1 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 7 01:18:18 2010 +0000 More #include cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110499 91177308-0d34-0410-b5e6-96231b3b80d8 commit 376599f85900e7ed6a101a4d688c37a25283f18c Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 7 01:17:47 2010 +0000 Delete this explicit assignment operator; it's equivalent to the implicit one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75040699377ae79bdbb8a3173aefe2f0d04879a1 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 7 01:04:15 2010 +0000 Oops, check in this file too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110496 91177308-0d34-0410-b5e6-96231b3b80d8 commit b352372079630688429d413820e98d810e4794c4 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 7 00:53:01 2010 +0000 Tidy up PMStack. Add a bunch of consts, use std::vector instead of std::deque, since this is a stack and only supports push/pop on one end, and remove an unimplemented declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ba952ee11a6ae20a26065cd7a9f81bfb4e1b798 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 7 00:43:20 2010 +0000 Tidy some #includes and forward-declarations, and move the C binding code out of PassManager.cpp and into Core.cpp with the rest of the C binding code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110494 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4f9e7c656de390b230a7e1d657e7fecd8ec457b Author: Owen Anderson <resistor@mac.com> Date: Sat Aug 7 00:42:06 2010 +0000 Add a convenience constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110493 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf391c4d25769a0b56b0e36e0601be0b68fffe56 Author: Dan Gohman <gohman@apple.com> Date: Sat Aug 7 00:34:52 2010 +0000 Make AnalysisImpls private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110492 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9a0b446af6c310df4ad41b202644536d3c54b4f Author: Dale Johannesen <dalej@apple.com> Date: Sat Aug 7 00:33:42 2010 +0000 Use sdmem and sse_load_f64 (etc.) for the vector form of CMPSD (etc.) Matching a 128-bit memory operand is wrong, the instruction uses only 64 bits (same as ADDSD etc.) 8193553. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110491 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c8154f593c86df207641015a314d4b87d9212a7 Author: Owen Anderson <resistor@mac.com> Date: Sat Aug 7 00:20:35 2010 +0000 Don't attempt the PRE inline asm calls, since we don't value number them yet. Fixes PR7835. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ab7a343a0738db99aa2047f4c378141ed742133 Author: Owen Anderson <resistor@mac.com> Date: Sat Aug 7 00:19:59 2010 +0000 Add a predicate to determine if a call is an inline asm statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110488 91177308-0d34-0410-b5e6-96231b3b80d8 commit c612e3607bb66c918699d2dd48003653ad1578bf Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Aug 6 23:03:52 2010 +0000 Some cleanup. Use a class (OptionInfo) instead of a pair of a pair and remove some default values that are not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110485 91177308-0d34-0410-b5e6-96231b3b80d8 commit c50274dd36872a95a6018d02744ad9cb0f96c78a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 6 22:17:33 2010 +0000 Lazily defer duplicating the live interval we are splitting until we know it is necessary. Sometimes, live range splitting doesn't shrink the current interval, but simply changes some instructions to use a new interval. That makes the original more suitable for spilling. In this case, we don't need to duplicate the original. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110481 91177308-0d34-0410-b5e6-96231b3b80d8 commit a102ef18b0fed96b1e3a5dd2ba280fda2592e0fc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 6 22:10:01 2010 +0000 Patterns to match AVX 256-bit vzero intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110480 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6e8266a500591fab24db3ff748e06ecd7ea7d05 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 6 21:48:06 2010 +0000 Eliminate PromoteMemoryToRegisterID; just use addPreserved("mem2reg") instead, as an example of what this looks like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110478 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79485d531217608b084700d2682bef6ec5530858 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Fri Aug 6 21:37:45 2010 +0000 llc: Clarify -mc-relax-all description. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 224202a93f90790656298ed386b2770b7f0ce2ce Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 6 21:31:35 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110476 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee0508507a5f2edba7d1b84ade33f49349877f62 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Aug 6 21:24:05 2010 +0000 MC: Add default value for AddrSpace argument to EmitValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110475 91177308-0d34-0410-b5e6-96231b3b80d8 commit 247ed21d629c2b9c2da086f06935d332740fa319 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 6 20:03:27 2010 +0000 Patterns to match AVX 256-bit permutation intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110468 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1632627c1693223ec86f16fb1f32b3ab398740e Author: Stuart Hastings <stuart@apple.com> Date: Fri Aug 6 19:02:24 2010 +0000 Test case for r110459. Radar 8264751. Test case by Fariborz Jahanian! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110467 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a16fc8494fc26a6132ff50f4411b1a4de6a1229 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 6 18:59:07 2010 +0000 Cleanup comment wording git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110466 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d856432a47c0be8cba67d7529ece53e1f148742 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 6 18:57:24 2010 +0000 Remove empty processFunctionBeforeFrameFinalized(). The default implementation of the function is equivalent, so no need to provide the target-specific version until/unless it needs to do something. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110465 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9fb6304bc6799431a97391b42fa9e04b95c856f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 6 18:47:06 2010 +0000 Keep the MachiuneFunctionPass pointer around. It is useful for verification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110464 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44da88dd39aee275be1154f4d45110b2fc3e5103 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 6 18:46:59 2010 +0000 Add LiveInterval::RenumberValues - Garbage collection for VNInfos. After heavy editing of a live interval, it is much easier to simply renumber the live values instead of trying to keep track of the unused ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110463 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2aaff8114d58e8bc97359a3b269a2872e4aa19e5 Author: Owen Anderson <resistor@mac.com> Date: Fri Aug 6 18:33:48 2010 +0000 Reapply r110396, with fixes to appease the Linux buildbot gods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110460 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bd9495ed01b768269d8c833716c0e5781e67496 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 6 18:24:38 2010 +0000 Implement a proper getModRefInfo for va_arg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110458 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57fb84dd3b241bfbb05c0af48a23bdb7f74efc5d Author: Jim Grosbach <grosbach@apple.com> Date: Fri Aug 6 18:24:36 2010 +0000 spelling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110457 91177308-0d34-0410-b5e6-96231b3b80d8 commit b11c028c3808651c5c37fa98dc9bb6f84374ee4e Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 6 18:11:28 2010 +0000 Be more conservative in the face of volatile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a3f350e8ccd7ed2d223cd0720f8284f0f42ccff Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 6 18:10:45 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ab8ffb3304469747c91f878318f4c988f537ed4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 6 18:04:19 2010 +0000 Add more verification of LiveIntervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15c5c360586ebf1110256b17889c8d12c5b8fc5c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 6 18:04:17 2010 +0000 Fix swapped COPY operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c5c272e264003a400dd55db93796f6bb608d43a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Aug 6 18:04:14 2010 +0000 Don't try to verify LiveIntervals for physical registers. When a physical register is in use, some alias of that register has a live interval with a relevant live range. That is the sad state of intervals after physreg coalescing of subregs, and it is good enough for correct register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110452 91177308-0d34-0410-b5e6-96231b3b80d8 commit 320072271e94c63559004e27957e8d7ee24e8d95 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Aug 6 15:35:32 2010 +0000 Fix eabi calling convention when a 64 bit value shadows r3. Without this what was happening was: * R3 is not marked as "used" * ARM backend thinks it has to save it to the stack because of vaarg * Offset computation correctly ignores it * Offsets are wrong git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110446 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7436862d5f862574e160c151c5c651f519a13db6 Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri Aug 6 07:43:46 2010 +0000 Fix uninitialized variable warning. Also move 'default' case next to a real case to help compiler optimize in non-Debug builds. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110435 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab49e5bf64be58f73d1e79b166859dea2d5d5ba7 Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri Aug 6 07:21:30 2010 +0000 Work in progress, cleaning up MergeFuncs. Further clean up the comparison function by removing overly generalized "domains". Remove all understanding of ELF aliases and simplify folding code and comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110434 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec9f185eb20b51ebc51fa8d1e5cc4521c9951bda Author: Ted Kremenek <kremenek@apple.com> Date: Fri Aug 6 04:05:21 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110429 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec90755b3bc983ebba6a49337417b45b1d150d7a Author: Peter Collingbourne <peter@pcc.me.uk> Date: Fri Aug 6 02:13:25 2010 +0000 Fix missing </a> tag error introduced by addition of LowerAtomic pass. While at it, fix all other HTML validation errors in docs/Passes.html. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110428 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34470317f3025f8a42d3e64cb8226320ae86f4f5 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 6 02:10:30 2010 +0000 Patterns to match AVX 256-bit horizontal arithmetic intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110427 91177308-0d34-0410-b5e6-96231b3b80d8 commit eaabe5df1fdf74a425f397293502c562b4d726e2 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 6 02:04:07 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110426 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3147a59627a14bd8d8a53f4e66b4ffbbb984512e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 6 01:52:29 2010 +0000 Patterns to match AVX 256-bit arithmetic intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110425 91177308-0d34-0410-b5e6-96231b3b80d8 commit 494c625895fd05364a778b6e6e01c5a12db5e25b Author: Bill Wendling <isanbard@gmail.com> Date: Fri Aug 6 01:36:09 2010 +0000 Revert r109901. The implementation of <rdar://problem/7405933> (r110423) doesn't need the Compare flag after all. --- Reverse-merging r109901 into '.': U include/llvm/Target/TargetInstrDesc.h U include/llvm/Target/Target.td U utils/TableGen/InstrInfoEmitter.cpp U utils/TableGen/CodeGenInstruction.cpp U utils/TableGen/CodeGenInstruction.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110424 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b72490e5f3cac744f0f074657d3f91f951f218f Author: Bill Wendling <isanbard@gmail.com> Date: Fri Aug 6 01:32:48 2010 +0000 Add the Optimize Compares pass (disabled by default). This pass tries to remove comparison instructions when possible. For instance, if you have this code: sub r1, 1 cmp r1, 0 bz L1 and "sub" either sets the same flag as the "cmp" instruction or could be converted to set the same flag, then we can eliminate the "cmp" instruction all together. This is a important for ARM where the ALU instructions could set the CPSR flag, but need a special suffix ('s') to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110423 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f458528be8f21e3ea2f0c0323e8eeaf48e3d61f Author: Eric Christopher <echristo@apple.com> Date: Fri Aug 6 01:30:54 2010 +0000 Moar words! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110422 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7eeceabe464e3d2c255d116617d1f207401be39 Author: Dan Gohman <gohman@apple.com> Date: Fri Aug 6 01:25:49 2010 +0000 Move all the logic for function attributes and call attributes out of the AliasAnalysis base class and into BasicAliasAnalyais. This avoids confusion about where such logic is happening when there are other AliasAnalysis implementations present. Move the logic for translating two-callsite getModRefInfo queries into other AliasAnalysis queries out of BasicAliasAnalysis and into the AliasAnalysis base class, as it is useful for other AliasAnalysis implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73eae8586547ae6eaaf1f16eb9780925fa1d9430 Author: Nate Begeman <natebegeman@mac.com> Date: Fri Aug 6 01:24:11 2010 +0000 Add tablegen support for vdup_lane git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110419 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd2c40bd314f5b1bc8829734a4ee90cd37390a6e Author: Owen Anderson <resistor@mac.com> Date: Fri Aug 6 00:36:20 2010 +0000 Fix botched revert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110416 91177308-0d34-0410-b5e6-96231b3b80d8 commit ced5885a447fac44f36d8a4ac5f09a7078e005de Author: Devang Patel <dpatel@apple.com> Date: Fri Aug 6 00:26:18 2010 +0000 While emitting DBG_VALUE for registers spilled at the end of a block do not use location of MBB->end(). If a block does not have terminator then incoming iterator points to end(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110411 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6c3ffd7ad496a4645ceb61f81172636ccbcc3ee Author: Owen Anderson <resistor@mac.com> Date: Fri Aug 6 00:23:35 2010 +0000 Revert r110396 to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f17a058051b168d99c45bae4a6eaf17661e1b4c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Aug 6 00:04:07 2010 +0000 Remove unused AVX intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110407 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ec41fb642d519f9429b163ce585a9d88341ffd3 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 5 23:57:43 2010 +0000 Add an option to always emit realignment code for a particular module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110404 91177308-0d34-0410-b5e6-96231b3b80d8 commit 614b4c1f760611f7d12c1554d3d1a4028a114b17 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 5 23:51:28 2010 +0000 Be more aggressive about removing joined physreg copies. When a joined COPY changes subreg liveness, we keep it around as a KILL, otherwise it is safe to delete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110403 91177308-0d34-0410-b5e6-96231b3b80d8 commit c94089462e9c78c25a78bc1fb12a79a290654730 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 5 23:51:26 2010 +0000 Don't verify LiveVariables if LiveIntervals is available. LiveVariables becomes horribly wrong while the coalescer is running, but the analysis is not zapped until after the coalescer pass has run. This causes tons of false reports when calling verify form the coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110402 91177308-0d34-0410-b5e6-96231b3b80d8 commit bad4d3c1ae60604dc82b88ad2a808c273cde4bbe Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 5 23:48:14 2010 +0000 Fix 80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9242b16a197c35a96500e84e980b027e9256ef15 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 5 23:44:45 2010 +0000 Make AA private, since subclasses shouldn't (aren't don't) access it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110398 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ebb44d565b0494738e76b2d0ab8ca664b7ba1db Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 5 23:42:04 2010 +0000 Don't use PassInfo* as a type identifier for passes. Instead, use the address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75f94042439985f286d1f1ee4c32891af1c2a6eb Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 5 23:36:21 2010 +0000 Remove IntrWriteMem, as it's the default. Rename IntrWriteArgMem to IntrReadWriteArgMem, as it's for reading as well as writing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110395 91177308-0d34-0410-b5e6-96231b3b80d8 commit 246553028156e05072d6b963c2cc265f997b7f0d Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Aug 5 23:35:51 2010 +0000 Support very basic (doesn't include ABI support in the front-end, varags, ...) 256-bit argument passing and return for AVX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110394 91177308-0d34-0410-b5e6-96231b3b80d8 commit 593fe1854faef0a12dedf7e3886b6773ddcc6b68 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 5 23:34:50 2010 +0000 Implement AccessesArguments checking in the two-callsite form of BasicAA::getModRefInfo. This allows BasicAA to say that two memset calls to non-aliasing memory locations don't interfere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110393 91177308-0d34-0410-b5e6-96231b3b80d8 commit e05289c8377745148eb099103663175a4f1a08b0 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 5 23:23:32 2010 +0000 Yes, we can do better, but this is not the place for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110391 91177308-0d34-0410-b5e6-96231b3b80d8 commit 090558874a3b3f4cabdafe57c69318aef77accba Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 5 22:59:19 2010 +0000 Add the beginnings of infrastructure for range tracking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110388 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f4066b86a29630fe570eb6ec1a3ebb885ce023f Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 5 22:48:32 2010 +0000 Revert my last commit, apparently it's a runtime issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110387 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52b69705406d05384e9fdbd6c5c5c33faf270600 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 5 22:32:21 2010 +0000 Add basic verification of LiveIntervals. We verify that the LiveInterval is live at uses and defs, and that all instructions have a SlotIndex. Stuff we don't check yet: - Is the LiveInterval minimal? - Do all defs correspond to instructions or phis? - Do all defs dominate all their live ranges? - Are all live ranges continually reachable from their def? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110386 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00970a51e5955f23ff07c0d66a5b0411e31ec645 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 5 22:28:22 2010 +0000 Remove unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110385 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3322ed6057de719ca5f0927a0782a633acc542f0 Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 5 22:11:31 2010 +0000 Give JumpThreading+LVI a long-form cl::opt so that it's easier to toggle the default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110384 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17d939b5fa4bcca99c555d7a86e8e74ad53d4f9e Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 5 22:10:46 2010 +0000 Split the tag and value members of LVILatticeVal in preparation for expanding the lattice to something that won't fit in two bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110383 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32b906a4b31142d54c6e9665332214003fb86a40 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 5 22:09:15 2010 +0000 Fix memdep's code for reasoning about dependences between two calls. A Ref response from getModRefInfo is not useful here. Instead, check for identical calls only in the NoModRef case. Reapply r110270, and strengthen it to compensate for the memdep changes. When both calls are readonly, there is no dependence between them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110382 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc2f1a5554c1a21a6997395e556834a17a5fd0aa Author: Gabor Greif <ggreif@gmail.com> Date: Thu Aug 5 21:25:49 2010 +0000 remove the private hack from CallInst, it was not supposed to hit the branch anyway as a positive consequence the CallSite::getCallee() methods now can be rewritten to be a bit more efficient git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 047df3302c5cdf47b40e4cb0a859ecabd5f2825e Author: Owen Anderson <resistor@mac.com> Date: Thu Aug 5 20:51:10 2010 +0000 Give ConstantRange an operator= git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d160ff1ff81b0676a7ab5f83bececa9cbb5315d Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 5 20:38:39 2010 +0000 Document results of PR7762. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110373 91177308-0d34-0410-b5e6-96231b3b80d8 commit 369ea2c6748f62aa6b320e7993bf602a96659fef Author: Devang Patel <dpatel@apple.com> Date: Thu Aug 5 20:25:37 2010 +0000 Move x86 specific tests into test/CodeGen/X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3720923b7a69c9851143c8c98fda33c4f4e62ca1 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 5 20:04:36 2010 +0000 Handle the memory barrier pseudo that goes to nothing for the JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110371 91177308-0d34-0410-b5e6-96231b3b80d8 commit b18608f0343fbcc23a1aa02e7bdede54a67b3343 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 5 19:54:59 2010 +0000 Set hasSideEffects on the 64-bit no-sse memory barrier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 926440f0817a3010d3066f272614a76e3cb49118 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Aug 5 19:27:37 2010 +0000 For local variables in functions with a frame pointer, use FP as a base register for local access when it's closer to the stack slot being refererenced than the stack pointer. Make sure to take into account any argument frame SP adjustments that are in affect at the time. rdar://8256090 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110366 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff2f019f741ca5dcb4d1ab6153cd59f19db0c6fa Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 5 19:00:21 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110363 91177308-0d34-0410-b5e6-96231b3b80d8 commit b390c8c8a9c7d6dcb0ea6e160012f449c0e96e76 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 5 18:59:59 2010 +0000 Remove double-def checking from MachineVerifier, so a register does not have to be killed before being redefined. These checks are usually disabled, and usually fail when enabled. We de facto allow live registers to be redefined without a kill, the corresponding assertions in RegScavenger were removed long ago. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110362 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb184c0ac1dd4996f97d224fd36a0b00c9f6c611 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 5 18:59:36 2010 +0000 Add an ARM RSCrr instruction for disassembly only. Partial fix for PR7792. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110361 91177308-0d34-0410-b5e6-96231b3b80d8 commit f164cac3d196d67ba81d8a626edcfba00df4a203 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 5 18:36:20 2010 +0000 Be a little bit more specific about target for the memory barrier instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110360 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc2bca346ab614e2b12dcbfe7df52eff361599c7 Author: Eric Christopher <echristo@apple.com> Date: Thu Aug 5 18:34:30 2010 +0000 Handle the pseudo in MCInstLower. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110359 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87495fd28338372f1011e3033f0bdd70517c367f Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 5 18:23:43 2010 +0000 Add an ARM RSBrr instruction for disassembly only. Partial fix for PR7792. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110358 91177308-0d34-0410-b5e6-96231b3b80d8 commit 320d081af4da46956060ea505c711033c155361f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Aug 5 18:12:19 2010 +0000 Avoid using a live std::multimap iterator while editing the map. It looks like we sometimes compare singular iterators, reported by ENABLE_EXPENSIVE_CHECKS. This fixes PR7825. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d918ab1449e0f07bc0bd8937a19b535adf93c1d Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 5 17:04:15 2010 +0000 Move x86-specific tests out of test/Transforms/LoopStrengthReduce and into test/CodeGen/X86, so that they aren't run when the x86 target is not enabled. Fix uglygep.ll to not be x86-specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110343 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1ca7f8c8c8d47cca9d30dfccd54c32fd985ff51 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 5 16:26:32 2010 +0000 Revert bugpoint change due to buildbot breakage. --- Reverse-merging r110333 into '.': U tools/bugpoint/BugDriver.h U tools/bugpoint/OptimizerDriver.cpp U tools/bugpoint/bugpoint.cpp U tools/bugpoint/BugDriver.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110341 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48d91a90aa4d7793bc3c06b3245e4d45b3a19fc8 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 5 15:45:33 2010 +0000 tests: CodeGen/X86/GC tests require X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110338 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed813b04bce97d5711a0cc2c2746c199464d18e1 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Aug 5 15:44:15 2010 +0000 tests: Mark MC/AsmParser tests as requiring x86 for now -- almost all of them rely on using a specific x86 triple to test what they want to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110337 91177308-0d34-0410-b5e6-96231b3b80d8 commit b80d20f0a81e5a2faae6cf5897b51a9207aeae73 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Aug 5 15:25:38 2010 +0000 Run opt instead of bugpoint itself. Fixes PR753. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110333 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5f4170838099246269b480aa8676757b6937cd3 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Aug 5 03:35:01 2010 +0000 check-lit was failing again on F13 64 bits :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110311 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8843d1fd71ee427b309215ddbda798357f60580a Author: Chandler Carruth <chandlerc@gmail.com> Date: Thu Aug 5 03:04:21 2010 +0000 Silence a GCC warning about && and || without explicit parentheses. This preserves the existing behavior, as it seems a concious choice to allow RS to be null and BigStack marked true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110307 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2f66b2c9f049bae99e885eb71af94eece24a853 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Aug 5 03:00:22 2010 +0000 Add const to compileProgram and to the various test functions in CrashDebugger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110306 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5510462c0811fb0e703d4944115ed0b0fa27313e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Aug 5 02:22:51 2010 +0000 When building from git, add ref-id to PACKAGE_VERSION git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110301 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb55ab7e396760255ee8190b90ee26a7043ce37c Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Aug 5 02:16:32 2010 +0000 Add a Module argument to the remaining runPasses methods and mark getContext const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110300 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1f759454d0d32729ad350883bcccd0c97060189 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Aug 5 01:25:48 2010 +0000 New system for choosing CRT type on MSVC. Is setted on a per build type basis. This is useful for generators that comprise several build types, i.e. VC++ solutions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b335625d438101720f12cc060628511043045f6 Author: Dan Gohman <gohman@apple.com> Date: Thu Aug 5 00:43:10 2010 +0000 Revert r110270 for now. It appears to uncover a memdep bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110293 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62f07f0ae684859783a0889fb9467a64125ee820 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Aug 5 00:34:42 2010 +0000 ARM "rrx" shift operands do not have an immediate. PR7790. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110292 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98406c29a3eea430330f54d4cf0e666e2a898aeb Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Aug 5 00:29:04 2010 +0000 Make EmitProgressBitcode const and add a Module argument to runPasses. Use that argument to simplify runPassesOn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110291 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe758452f66f99f48f41fc3951b74f583713177c Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 23:44:23 2010 +0000 svn:ignore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110284 91177308-0d34-0410-b5e6-96231b3b80d8 commit 166c7e1fb052381eacb66e9dea0e803e87920bbf Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 23:43:55 2010 +0000 svn:ignore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110283 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10a57c02be6200d1ea2cd4e6b69a2b60226d8ba4 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 23:37:55 2010 +0000 The trouble with testing for "ModRef" and "NoModRef" is that one is a suffix of the other, and FileCheck accepts superstrings. Adjust the output to avoid this problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110280 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf19827f49090147bc904ae593c3bb02e7828933 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 4 23:36:02 2010 +0000 The lower invoke pass needs to have unreachable code elimination run after it because it could create such things. This fixes a MingW buildbot test failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110279 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff96528ba28336a5efec68935b60eed55dd72f19 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 23:08:15 2010 +0000 Delete obsolete comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110277 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8d1f99e61fc4eebc8994af205b5d0e97362e964 Author: Eric Christopher <echristo@apple.com> Date: Wed Aug 4 23:03:04 2010 +0000 Make x86-64 membarriers work without sse and clean up some of the uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110274 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c118fca776d11339ed5bdba11d13d10ccd8a6f0 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 22:56:29 2010 +0000 The two-callsite form of AliasAnalysis::getModRefInfo is documented to return Ref if the left callsite only reads memory read or written by the right callsite; fix BasicAliasAnalysis to implement this. Add AliasAnalysisEvaluator support for testing the two-callsite form of getModRefInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 090a59c26ed055646e8dfe433b77a20fb0d5c86e Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 4 22:46:09 2010 +0000 and back in. false alarm on the tests from another unrelated local change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83730c99189a88dbf0dcc2093ab48e962501237f Author: Eli Friedman <eli.friedman@gmail.com> Date: Wed Aug 4 22:40:58 2010 +0000 PR7814: Truncates cannot be ignored for signed comparisons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110268 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1dab5b1105757d148edc642aeb7b5f39dcddf87d Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 4 22:39:39 2010 +0000 Implement target specific getDebugValueLocation(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110267 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cc4f9fc26025ab95d7eabd672357edb49a4a22a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 4 22:35:11 2010 +0000 Coalesce stack slot accesses that arise when spilling both sides of a COPY. This helps avoid silly code: %R0<def = LOAD <fi#5> STORE <fi#5>, %R0<kill> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110266 91177308-0d34-0410-b5e6-96231b3b80d8 commit be82093a28aff30674485e671021378ee3e704e4 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 4 22:12:43 2010 +0000 oops. revert for a moment to clean up tests first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110259 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1006b090f4cb49504348230c520cbaa41879b351 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Aug 4 22:10:15 2010 +0000 Reserve a stack slot if the function adjusts the stack but doesn't simplify the call frame pseudo instructions. In that situation, the calculations for estimating the stack size will be way off, leading to not having an emergency spill slot when we need one. It should be possible to be more precise about tracking the adjustment values, but not really necessary for correctness. Upcoming cleanups for PEI in general will render that moot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110258 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4408202a3436fd3d523522cb160a1923e6a0a608 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Aug 4 22:08:39 2010 +0000 Checkpoint SplitKit progress. We are now at a point where we can split around simple single-entry, single-exit loops, although still with some bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110257 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6ca2fe686af1031a982bb1cfdd331f7b96d0c03 Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 4 22:07:50 2010 +0000 Implement target specific getDebugValueLocation(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110256 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2d65d5a01c7cb650ddfcba16c82966e7a555621 Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 4 22:07:27 2010 +0000 Use location entry only of the location described by DBG_VALUE is valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110255 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5a3ae223d207a0f1d8488959207f1a2e0bdfe24 Author: Stuart Hastings <stuart@apple.com> Date: Wed Aug 4 22:05:38 2010 +0000 Test case for r110250. Radar 8264670. Test case by Fariborz Jahanian! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9203451dee9f1580bb23765666ce4e52da11b9a2 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 4 21:56:30 2010 +0000 Testcase for r110248. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110249 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31585afdeef583bffd038263859d8bcf2fc88d3b Author: Bill Wendling <isanbard@gmail.com> Date: Wed Aug 4 21:44:13 2010 +0000 The EH prepare passes really want to be the last passes run before code-gen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110248 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b71caeb0d8ba6cdf5b01e7024bd54dcce3452b2 Author: Edwin Török <edwintorok@gmail.com> Date: Wed Aug 4 20:47:44 2010 +0000 Use indirect calls in PowerPC JIT. See PR5201. There is no way to know if direct calls will be within the allowed range for BL. Hence emit all calls as indirect when in JIT mode. Without this long-running applications will fail to JIT on PowerPC with a relocation failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110246 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1602a675814b2b23ce7eee1374765ef45bc5b157 Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 4 20:32:36 2010 +0000 Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110244 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cb79d1927cdf498526743498d12c230f078cea4 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 19:52:50 2010 +0000 Fix a minor bug which resulted in intermediate calculations using wider types than are necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110241 91177308-0d34-0410-b5e6-96231b3b80d8 commit de7e866e035fdef30bc88e38913824443be11565 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 18:51:09 2010 +0000 Change this llvm_unreachable to report_fatal_error, since it can be triggered by valid, if dubious, IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110240 91177308-0d34-0410-b5e6-96231b3b80d8 commit a357ef11aec67e7bbe1fe321e30678fbca9c43ad Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 4 18:42:46 2010 +0000 Test case for combination of r110234 & r110235. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110238 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ddb0668b9ab444d1d4febb8e4c1db432905e44c Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 4 18:42:02 2010 +0000 While spilling live registers at the end of block check whether they are used by DBG_VALUE machine instructions or not. If a spilled register is used by DBG_VALUE machine instruction then insert a new DBG_VALUE machine instruction to encode variable's new location on stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90ad2c1caf352e0451a1f088997ef13bc4f5ec2d Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 4 18:40:52 2010 +0000 If a variable is spilled by code generator then use DW_OP_fbreg to describe its location on stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110234 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd04886c60c9902a8662ca66ee0db9509d40fb43 Author: Owen Anderson <resistor@mac.com> Date: Wed Aug 4 18:32:46 2010 +0000 Experiments show that we can safely increase our unrolling threshold without unduly impacting code size, particularly since unrolling is not enabled at -Os. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91e92703e811d8ca8a17f5c6274b366e621d3a3b Author: Owen Anderson <resistor@mac.com> Date: Wed Aug 4 18:27:08 2010 +0000 Add a note about the changing pass registration interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2813bb414ff7bb8988754b542cfac5e658497026 Author: Dale Johannesen <dalej@apple.com> Date: Wed Aug 4 18:07:17 2010 +0000 Remove switch for disabling ARM tail calls. They seem to be working correctly. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110226 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2f5a392536ad9e1182bcd4247fbe11f12263b50 Author: Devang Patel <dpatel@apple.com> Date: Wed Aug 4 18:06:05 2010 +0000 Add DEBUG message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110224 91177308-0d34-0410-b5e6-96231b3b80d8 commit f048cd259e4d19cd7fd5628460281ecd5b1739e4 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 17:43:57 2010 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110223 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37d20155aae8726d0610480761229f040f223b5d Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 17:01:59 2010 +0000 Update the polygen grammar for linker_private and linker_private_weak, and add comments about major implemented features. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25ca710f0509f5082141d927570a5b3113653984 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 16:48:36 2010 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110211 91177308-0d34-0410-b5e6-96231b3b80d8 commit abe526667a0af3f31c8554121f50ea0cba4add5b Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 16:42:38 2010 +0000 Print a message when a test failure is due to stderr output alone, rather than just an exit code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 644db1e7c682199ed54bec3af0b42a098bc043e8 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 16:25:01 2010 +0000 Remove CVS artifacts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110207 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfbed0d59c0e8c97273df957bae596fdd726d8d7 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 16:11:24 2010 +0000 Remove CVS artifacts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8584ddc5db729b4cb1a29516a118888f47af28b1 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 16:10:42 2010 +0000 Delete scripts which haven't noticed that CVS has gone away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110205 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41d9d833226c83086a5d6f69427309913c322121 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 16:09:01 2010 +0000 cvsupdate is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 556fd1274f56b5d1b7cf633d9b125d72ed68a480 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 16:07:22 2010 +0000 Delete mkpatch. Everything it does is already done by svn diff by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110203 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f8864a3ea7dcca15ea3c71f170f08a31bb34664 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 15:59:16 2010 +0000 Remove a link which is no longer relevant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110202 91177308-0d34-0410-b5e6-96231b3b80d8 commit a89029160def30b477a462730a48acc7b93f4d82 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 15:58:01 2010 +0000 These tests are no longer stored in *CVS*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26c0af63c41946d00307d295f40c5793bead1865 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Aug 4 15:32:40 2010 +0000 Enable COFF writer on mingw32 and cygwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110200 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ba595c2e59b60223bef0c9d5b3340ebf1b6acca Author: Stuart Hastings <stuart@apple.com> Date: Wed Aug 4 15:31:35 2010 +0000 call-imm.ll test case regex fix. Patch by Dimitry Andric! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110199 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff8d7333e59b8940c8f406bcf6743ed7cd231734 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Wed Aug 4 13:59:48 2010 +0000 Make SPU backend handle insertelement and store for "half vectors" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 353fadd17659536b3cd93318c93609609bad1539 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Aug 4 13:16:30 2010 +0000 Print an error message when someone tries -integrated-as on an unsupported target. - The COFF backend doesn't support MingW/Cygwin at the moment, it'll report an error, but it's still much better than random assertions from the MachO backend. - We want to make ELF the default eventually, it's what the majority of targets use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ea21fa07dd8ba750c6d45b61e3e89784340f098 Author: Edwin Török <edwintorok@gmail.com> Date: Wed Aug 4 12:43:22 2010 +0000 Note some LLVM 2.7 -> 2.8 APIs that changed / got renamed. I encountered these while upgrading libclamav. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 799d46890bb30a6890d6d9a6f277d2785b1ff41d Author: Edwin Török <edwintorok@gmail.com> Date: Wed Aug 4 11:42:45 2010 +0000 Add a missing function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10ed8c27ba8d0d038762903be41cc58d27783c79 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Aug 4 10:00:52 2010 +0000 by Alexander Herz: "The CWriter::GetValueName() method does not check if a value as an alias and emits the alias name which will never be defined in the output .c file (so the output file fails to compile). This can happen if you have multiple inheritance with several destructors defined by clang (...D0Ev, ...D1Ev, ...D2Ev)." -- applied with minor tweaks. Thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110194 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84d4ff708319b83fcb848135338faaa2396c97f4 Author: Edwin Török <edwintorok@gmail.com> Date: Wed Aug 4 09:30:20 2010 +0000 Fix build of DataFlow.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110193 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6ac93f264d074ee10977e0fd9460ac6671ae261 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 01:39:08 2010 +0000 Eliminate unnecessary empty string literals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110183 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71bcca9d309592188a20b7f07ab44753d8649f49 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 01:16:35 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110181 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36a3a3ff4c6eb31fd3d1af05d41ae6d5530c51a8 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 01:14:33 2010 +0000 Don't construct a std::string with a literal "". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6544a7f1b7737ad3d916cc18a8abd5f7e1fdfe98 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 01:13:48 2010 +0000 Don't print the filename twice in file-not-found errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110179 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e7f4b3d4f34fdf02716761d130d6213e888f6ea Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Aug 4 01:09:40 2010 +0000 Fix a comment typo and add more 256-bit intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110177 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b71ba4f02f0df2a67eb7fc0c8bab47021fadc7e Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 00:12:31 2010 +0000 Change the logic which interprets output on stderr as an error so that it doesn't modify the exit code or the stdout contents, and so that it doesn't clutter the output with "Command has output on stderr!". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110171 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2c86d5489c2e89986205ee08e789cbd578ec58d Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Aug 4 00:12:08 2010 +0000 Combine NEON VABD (absolute difference) intrinsics with ADDs to make VABA (absolute difference with accumulate) intrinsics. Radar 8228576. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76cb0a595645bf0a1d3ab8ea8af2229888b6f689 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 00:05:16 2010 +0000 Don't print "Command output (stdout):" when the command has no output, and same for stderr, to avoid clutter in the output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110169 91177308-0d34-0410-b5e6-96231b3b80d8 commit f34972333f5b849f71fa4e83798e0fabd7784a57 Author: Dan Gohman <gohman@apple.com> Date: Wed Aug 4 00:00:13 2010 +0000 Use the regular conditional operator syntax instead of a clever hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94800d1bf5f162e9d24a3191c89ef3a8fc8cbb5e Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 23:08:10 2010 +0000 Remove PointerAccessInfo, which nothing was using. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110167 91177308-0d34-0410-b5e6-96231b3b80d8 commit f768e15e9afc64ff6ca00cd6340457b9704f1770 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 3 22:53:22 2010 +0000 Make the makefiles go much faster by using the realpath builtin instead of shell. On my 8 core mac pro, this speeds up a 'make -j8' null build of the lib directory from 1.11s to 0.77s wall time. Patch by NAKAMURA Takumi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110166 91177308-0d34-0410-b5e6-96231b3b80d8 commit aef04c4566264f7b3afc36034a41f582952d2de6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 3 22:49:22 2010 +0000 fix a win64 encoding problem, patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 172d22b8a4da6ded6027f1a3df666f3711bf7873 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 21:48:53 2010 +0000 Thread const correctness through a bunch of AliasAnalysis interfaces and eliminate several const_casts. Make CallSite implicitly convertible to ImmutableCallSite. Rename the getModRefBehavior for intrinsic IDs to getIntrinsicModRefBehavior to avoid overload ambiguity with CallSite, which happens to be implicitly convertible to bool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110155 91177308-0d34-0410-b5e6-96231b3b80d8 commit bcb14b729b4467caac32987e3941008c67c57ca8 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Aug 3 21:31:55 2010 +0000 Add support for getting & setting the FPSCR application register on ARM when VFP is enabled. Add support for using the FPSCR in conjunction with the vcvtr instruction, for controlling fp to int rounding. Add support for the FLT_ROUNDS_ node now that the FPSCR is exposed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110152 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5daf3d7b43d8b32b8ae720cbf37453ff0e24355 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 20:23:52 2010 +0000 The singular of "indices" is "index". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110135 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5a77ff428e9bf88b93adb69de0ff6c3350c7d80 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 20:20:56 2010 +0000 Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110134 91177308-0d34-0410-b5e6-96231b3b80d8 commit a45e967da042fee06c33acdcab6a856c0f5f5ffe Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 18:20:32 2010 +0000 Make instcombine set explicit alignments on load or store instructions with alignment 0, so that subsequent passes don't need to bother checking the TargetData ABI size manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110128 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26480a2e7d5c9b3ee00e9d93c963afab1a26f7fe Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Aug 3 17:40:31 2010 +0000 CMake: Change somme target library names: XCore->XCoreGen PIC16->PIC16CodeGen After updating your working copy, the first build will fail because it is using the old library dependencies. Start the build again and it will work fine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110127 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2242c0e18268d659739099b87c69b7261e1a437 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Aug 3 17:28:09 2010 +0000 CMake: add version control info to PACKAGE_VERSION, if available. Adds "svn" or "git", depending on the VCS used. If svn, adds the revision number as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110121 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcf624c69e61d967f843d4829ed999956bb568fa Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 17:27:43 2010 +0000 Make AliasAnalysis::getModRefInfo conservative in the face of volatility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110120 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e48c090a0cae140e80074e730a46a66a05964b9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 3 17:21:16 2010 +0000 Oops. Don't normalize spill weights twice. When the normalizeSpillWeights function was introduced, I forgot to remove this normalization. This change could affect register allocation. Hopefully for the better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110119 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a0edb853fc6ba95b929add043b1039254ea188a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Aug 3 17:21:14 2010 +0000 OK, that's it. This test is going away now. But don't worry, I am taking it to a nice farm in the country where it can play with other tests. And bunnies. It is not clear what is being tested, and the revision history shows a bunch of random changes to the expected instruction count. Clearly, we are just fudging it to pass whenever it fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110118 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6d5a947b2d6f1f6b011c9a07f03da26dedf6c8c Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 3 16:57:03 2010 +0000 avoid undefined behavior negating minint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110117 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4d3db1e0672430c76babcdec2711e8ba4cf973d Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 16:48:31 2010 +0000 Fix a typo Devang noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110115 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0d22d1f261381ffb8d5f21a736bf59eaaaf74af Author: Chris Lattner <sabre@nondot.org> Date: Tue Aug 3 16:41:24 2010 +0000 avoid undef behavior on minint, fixing PR7783. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110114 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25278c155a5ffb8557d33d8f8cf44a9ed33b2f5d Author: Peter Collingbourne <peter@pcc.me.uk> Date: Tue Aug 3 16:19:16 2010 +0000 Add an atomic lowering pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b34865bbb575462045442fde01e776118e34193 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 16:15:50 2010 +0000 Use unary + instead of a separate local variable for working around std::min vs static const friction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110112 91177308-0d34-0410-b5e6-96231b3b80d8 commit d07ff7b52471652798c955190d79c9792de18d55 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Aug 3 15:07:17 2010 +0000 Bump cmake_minimum_required to version 2.8 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110110 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85e3621332305c58466ab3601a475db709690ccf Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Aug 3 14:26:17 2010 +0000 build: Add LLVM_NATIVE_ARCHNAME, which has the sensible value, without "Target" appended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110109 91177308-0d34-0410-b5e6-96231b3b80d8 commit 107452b0e0d3f830dfff2cb55c088e7d6d2573b7 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 3 05:30:49 2010 +0000 Remove the test/mc directory that I accidently added. This directory conflicts with test/MC on Windows machines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110105 91177308-0d34-0410-b5e6-96231b3b80d8 commit abe4af66b9a25da6a5f5803dbb223146d6cb2ff1 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 3 05:02:46 2010 +0000 MC: Fix symbol fragment offsets in COFF. Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110104 91177308-0d34-0410-b5e6-96231b3b80d8 commit a32bc9cf18eef960324975871733596a086592d0 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 3 04:53:28 2010 +0000 Revert "MC: Fix symbol fragment offsets in COFF." This reverts commit r110100 Wrong path caps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110103 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bf6c6042ffa9a86d2054bcce2a18f57aba4382a Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 3 04:43:33 2010 +0000 MC: Add time travel support to COFF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e85f0852c87ea4bcb7b0f8d37446f02fb13f3ec Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 3 04:43:24 2010 +0000 MC: Fix symbol fragment offsets in COFF. Patch by Cameron Esfahani! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d9954ac784f52b4b5ef6ec07579c69e09a41705 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Aug 3 02:38:20 2010 +0000 Fix CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110097 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee3f5f8ef3b48822469dfeebe1f197f8840ea170 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Aug 3 01:53:41 2010 +0000 Support x86 AVX 256-bit instruction intrinsics. Right now support all of them, but as soon as we properly codegen the simple vector operations in clang, remove the unnecessary builti-ins/intrinsics from clang and llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110094 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe5c783bacba075654d2c12edb375e38d96a0089 Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 01:07:32 2010 +0000 Update some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110092 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84c9e6c630c3d1592ff16c4c94404941232c933e Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 01:03:11 2010 +0000 Introduce a symbolic constant for ~0u for use with AliasAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b4a2c3d0100d9614226eedae5f3f1eaaa5d666a Author: Dan Gohman <gohman@apple.com> Date: Tue Aug 3 00:56:30 2010 +0000 Add a convenient form of AliasAnalysis::alias for the case where the sizes are unknown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110090 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e1ffa6dcf52f2765a19b6f7b3fa169ec695c0fa Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 2 23:49:30 2010 +0000 Make SCEVUnknown a CallbackVH, so that it can be notified directly of Value deletions and RAUWs, instead of relying on ScalarEvolution's Scalars map being notified, as that's complicated at best, and insufficient in general. This means SCEVUnknown needs a non-trivial destructor, so introduce a mechanism to allow ScalarEvolution to locate all the SCEVUnknowns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110086 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06c2d47caa2cc6da27753da95f918962136de496 Author: Stuart Hastings <stuart@apple.com> Date: Mon Aug 2 23:29:03 2010 +0000 Diabolical hack to make a test compatible with clang. (Thanks to Dale!) Radar 8246180. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110081 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa1ca46f4a0b55d01ee8a9483c274c35c6e9a0b6 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 2 23:11:01 2010 +0000 Sketch up a preliminary Type-Based Alias Analysis implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110077 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7d15849f6d8944f3b4b2b57796be8254496a8d7 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 2 23:09:14 2010 +0000 Fix visitInvokeInst to call visitTerminatorInst, and remove a redundant check from checkInstruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110076 91177308-0d34-0410-b5e6-96231b3b80d8 commit da603233823c0fd4de1e3d704c9e53b701e0e84a Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 2 23:08:33 2010 +0000 Add Verifier logic for indirectbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110075 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c34e21e009cf83ed6a9e498925bc7478c993d24 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 2 23:06:43 2010 +0000 Add a lint check for indirectbr with no successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b6c1e1df7d65d0d54cec4ca255c4f8570736a84 Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 2 22:51:46 2010 +0000 Add explicit constructors. Patch by Renato Golin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 180169cc1b8e5f1d1f599623da64983111da62e7 Author: Stuart Hastings <stuart@apple.com> Date: Mon Aug 2 22:09:53 2010 +0000 Testcase for r110043. Radar 8246180. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110070 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc43e3c3654362732812e1c38f4a1afa2e4b247e Author: Bill Wendling <isanbard@gmail.com> Date: Mon Aug 2 22:06:08 2010 +0000 Early exit and reduce indentation. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110069 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42849f610eb12a22e3c5ee55123ce99bc1d16d06 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 2 21:24:12 2010 +0000 Improve discrimination of unknown libraries from ignored targets on LLVMConfig. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32aa0571b649ad9d064449d309806e54653d3a9e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 2 20:48:01 2010 +0000 explicit_map_components_to_libraries now does not complain when there is a dependence on an LLVM target that is not included on the build. When LLVM_TARGETS_TO_BUILD didn't include all the targets, the function emitted an error like "Library LLVMArmParser not found in list of llvm libraries." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70093a86bbc1534aeec399e26444cbd73f16d839 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 2 19:00:34 2010 +0000 Lets the CMake GUI show a list of possible values for LLVM_USE_CRT Patch by nobled! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 198e3e22c9cc9a0e370432e8b8e1174896ee98d8 Author: Dan Gohman <gohman@apple.com> Date: Mon Aug 2 18:50:06 2010 +0000 Fix namespace polution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 594948ad49d6510900b832c1e5706e289775806d Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 2 18:36:53 2010 +0000 Updated LLVMLibDeps.cmake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110055 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1c37a5631af8ac378db56ff249599134395cd7f Author: Devang Patel <dpatel@apple.com> Date: Mon Aug 2 17:32:15 2010 +0000 Free DbgScope created for dead functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110045 91177308-0d34-0410-b5e6-96231b3b80d8 commit e39aeade52d435c4322c1016d93ccdbf847cec2c Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Aug 2 11:22:10 2010 +0000 More SPU v2f32 stuff added: insertelement and shuffle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110038 91177308-0d34-0410-b5e6-96231b3b80d8 commit 771076ddf90db8abfdea9a97f5654b69973e96f0 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Aug 2 10:25:47 2010 +0000 Add preliminary v2f32 support for SPU. Like with v2i32, we just duplicate the instructions and operate on half vectors. Also reorder code in SPUInstrInfo.td for better coherency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b900b6c563eb3e10553965e9649a8e74dfd097c Author: Owen Anderson <resistor@mac.com> Date: Mon Aug 2 09:32:13 2010 +0000 Re-apply the infamous r108614, with a fix pointed out by Dirk Steinke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110036 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2578eb93eb5926b6d24adcf32a9fc3a8d407215 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Aug 2 08:54:39 2010 +0000 Add preliminary v2i32 support for SPU backend. As there are no such registers in SPU, this support boils down to "emulating" them by duplicating instructions on the general purpose registers. This adds the most basic operations on v2i32: passing parameters, addition, subtraction, multiplication and a few others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110035 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc4aa9257ad92ce8f4c9ffa73faf552c3a7fc20e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Aug 2 06:00:15 2010 +0000 Prefix `next' iterator operation with `llvm::'. Fixes potential ambiguity problems on VS 2010. Patch by nobled! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110029 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21c8a61d5d4cdef873a7b651b9d65af0f5904d1c Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 05:43:46 2010 +0000 Fix a -Wreorder warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110022 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9092c6fcf016c1808205bae870cb24e4439c5cab Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Aug 2 05:23:03 2010 +0000 Work in progress. Start cleaning up MergeFunctions to look more like the rest of LLVM. The primary change here is to move the methods responsible for comparison into the new FunctionComparator object. Some comments added. There's more to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110021 91177308-0d34-0410-b5e6-96231b3b80d8 commit c12986396937c682a545c78c2a52978edfb1bc2c Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Aug 2 04:42:25 2010 +0000 PR7586: Make sure we don't claim that unknown bits are actually known in the ISD::AND case of TargetLowering::SimplifyDemandedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110019 91177308-0d34-0410-b5e6-96231b3b80d8 commit b67e53b35a8afa89abffded41bfbc30b65483477 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Aug 2 03:16:19 2010 +0000 Fix this condition; it has an else clause attached for Darwin only. Patch by Takumi Nakamura. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110016 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1355a42cc8370c7240a82762faaaa251768f674 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 01:25:20 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110006 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4aaa9d66aab89962c4bdfc935fbfcce0f530a37 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 01:20:23 2010 +0000 docs/TestingGuide: Minimal update to describe 'lit' based regression testing instead of DejaGNU. Still a bit kooky, since the current test format still has some strong Tcl roots. Oh well! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110005 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd54b2ae0fd0f042734f62c97b55b8ab8c59c450 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 01:20:20 2010 +0000 docs/TestingGuide: Rip out description of old nightly tester infrastructure. The official recommendation is to use LNT instead. I will write docs on setting up an LNT installation for submission to llvm.org, one day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110004 91177308-0d34-0410-b5e6-96231b3b80d8 commit a675a56df9e1f4a734445b1eddf7a4b24b03cd0c Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 00:52:44 2010 +0000 tests: Kill off custom targets which were just there for TestRunner.sh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110003 91177308-0d34-0410-b5e6-96231b3b80d8 commit 726ed0d22a63d2e7dcfb958ad2c93579e5298be4 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 00:52:41 2010 +0000 tests: Deprecate TestRunner.sh, and have it just invoke 'llvm-lit' (which will need to be in your path). Please move to using 'llvm-lit' if you are still using TestRunner.sh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110002 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8581ad799a0fad67ab37c634f2df6619069b2b0 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 00:45:41 2010 +0000 build: Fix a dependency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110001 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7039ef92bffca7903ec5808a3df40ae0af99d9cb Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 00:39:42 2010 +0000 tests: Add an 'llvm-lit' tool (script), which gets generated as part of the build and has the object build directory baked into it. This allows 'llvm-lit' to properly find the information needed to run the test suite in all cases, without requiring the user to have LLVM or 'lit' available in their PATH, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13db436b9f3a14255e238d86f73a7165ed240051 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 00:39:38 2010 +0000 lit: Allow clients to define predefined parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109999 91177308-0d34-0410-b5e6-96231b3b80d8 commit c748e28ea5f90c912ce24be0498747a589b68211 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Aug 2 00:18:19 2010 +0000 PR7781: Fix incorrect shifting in PPCTargetLowering::LowerBUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109998 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0437bdb4a1cefdff326d0258529e99ddbda184bc Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Aug 2 00:05:18 2010 +0000 tests: Make 'lit' the default test tool. You can still use 'make check-dg' to run the tests using DejaGNU, but not for much longer. This is a last call for DejaGNU supporters, if no one complains soon the DejaGNU support is going to die. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 290bd5e3a3dcd594257b524099518721a6c0d6da Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Aug 1 23:36:18 2010 +0000 Targets: Add InitializeNativeTargetAsmPrinter(), patch by Jan Sjodin, although rewritten by me to not require updating all the target initialization routine names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109996 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a3a5a2fa093a7ccc673211bad1665da6a1ee851 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Aug 1 23:18:45 2010 +0000 Fix word choice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109995 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2aaff83938fc9b5a37c89d39507af872d566763 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sun Aug 1 21:13:28 2010 +0000 PR7774: Fix undefined shifts in Alpha backend. As a bonus, this actually improves the generated code in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c96850dbf5169f765fa50c38cb477345dcb042c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Aug 1 11:43:26 2010 +0000 Preallocate vector, avoid unnecessary vector growth. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5dbd749a366ff493a6a7e78c7b5ce768376be409 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Aug 1 01:34:21 2010 +0000 Reference the personalities. Don't copy them into a new vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109966 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad4bffddceb3cc9886fd3309d701b9ee7761fbdc Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jul 31 22:36:03 2010 +0000 Revert new AVX intrinsic tests. They are breaking buildbots and Bruno is away from a computer now. --- Reverse-merging r109881 into '.': D test/CodeGen/X86/avx-intrinsics-x86.ll D test/CodeGen/X86/avx-intrinsics-x86_64.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07876117f3f04c3e03f84dcba26be6eac5b17f44 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jul 31 21:32:56 2010 +0000 build: Don't pass -avoid-version or -no-undefined on Darwin, they don't do anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109957 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22521eb9e4dfca3eb2b92f870c3aaf30d384e050 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jul 31 21:08:54 2010 +0000 Silence some -Asserts uninitialized variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109956 91177308-0d34-0410-b5e6-96231b3b80d8 commit d209f20c2cb3629571b230f308e7b0a87a215d22 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Sat Jul 31 19:57:02 2010 +0000 llc: Add -mc-relax-all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109954 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f420b9c6f5a5c24f49962ce03fd53b22c282dfd Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jul 31 19:51:11 2010 +0000 Speculatively revert r108614, "Another attempt at getting the clang self-host to like my instcombine patch.", in an attempt to fix Clang i386 bootstrap. - Also PR7719. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109953 91177308-0d34-0410-b5e6-96231b3b80d8 commit d860c3fd04fd4571ee1173aedd95a7c2e9590efe Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Jul 31 14:34:49 2010 +0000 Add const to some methods and change TestMergedProgram to return the merged module and take a const BugDriver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109951 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2500878278a4cbb2a3f31ad7eebd85be31f2ec50 Author: Gabor Greif <ggreif@gmail.com> Date: Sat Jul 31 08:35:21 2010 +0000 doxygenize argument accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109950 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a33a58f61fd34dd969b8758824239c3a9e8f19d Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Sat Jul 31 07:21:44 2010 +0000 MC: Remove HasAbsolutizedSet from WindowsX86AsmBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109949 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5269613f6bfffb4bc488b554a54221401eaa108 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jul 31 06:28:10 2010 +0000 Move newlines before inline jumptables from the asm strings in .td files to the jtblock_operand print methods. This avoids extra newlines in the disassembler's output. PR7757. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109948 91177308-0d34-0410-b5e6-96231b3b80d8 commit a588d552c49d9a1b9d7451408d096f8411c134bc Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Sat Jul 31 06:22:29 2010 +0000 Add relax all support to the COFF object streamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 353769038464dad7753af3983eeb8277440dd5d7 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jul 31 05:57:44 2010 +0000 Add support for disassembling VMVN (immediate) instructions. PR7747. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fb7d60a380ffb4ce6be80e5b75ee89bb3e29100 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Jul 31 00:32:17 2010 +0000 The BlockExtractorPass() constructor was not reading the BlockFile and that was exactly what bugpoint expected it to do. There was also only one user of BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and make BlockExtractorPass read BlockFile. This fixes bugpoint's block extraction. Nick, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109936 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82e6fad7a9a4f4529df23251395efd47f95c015a Author: Owen Anderson <resistor@mac.com> Date: Fri Jul 30 23:59:40 2010 +0000 Add an initial implementation of PHI translation for LazyValueInfo. This involves rolling back some of my earlier data structure improvements until I can ensure that there are no iterator invalidation problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109935 91177308-0d34-0410-b5e6-96231b3b80d8 commit e305f9fbaa54483b4f997661246a55d6ad311af3 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jul 30 23:33:54 2010 +0000 Add -disable-shifter-op to disable isel of shifter ops. On Cortex-a9 the shifts cost extra instructions so it might be better to emit them separately to take advantage of dual-issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109934 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc7563e9be394a3df2fd4c6c4fdabdcc55b04f01 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jul 30 23:27:59 2010 +0000 Add a check in the ARM disassembler for NEON instructions that would reference registers past the end of the NEON register file, and report them as invalid instead of asserting when trying to print them. PR7746. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64147bac244a47650d03f71353456b12f1674dd0 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jul 30 22:48:39 2010 +0000 Add a "Compare" flag to the target instruction descriptor. This will be used later to identify and possibly remove superfluous compare instructions -- those that are testing for and setting a status flag that should already be set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109901 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f9fd4b18841e25815efb7e1390b1696e32f519d Author: Dale Johannesen <dalej@apple.com> Date: Fri Jul 30 21:09:48 2010 +0000 PPC doesn't supported VLA with large alignment. This was formerly rejected by the FE, so asserted in the BE; now the FE only warns, so we treat it as a legitimate fatal error in PPC BE. This means the test for the feature won't pass, so it's xfail'd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109892 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb3f6b3c235541d99d181eba4871bbb56790ca96 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 30 21:07:05 2010 +0000 Move MaximumAlignment to be a member of the Value class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109891 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6030f3b6b7dbec101eb29e1ea8fecdf94e33d33c Author: Owen Anderson <resistor@mac.com> Date: Fri Jul 30 20:56:07 2010 +0000 Revert my last two patches to LVI, which recent changes have exposed a miscompilation in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109889 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17131a4dd9466275894fcedaaddef413021e6049 Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri Jul 30 20:27:01 2010 +0000 Add missing newline to debug statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109886 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9e5b77044ee6806e82507ca142b9a7c88aaeb13 Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri Jul 30 20:19:09 2010 +0000 LibCallAliasAnalysis uses multiple inheritance, so it needs to implement getAdjustedAnalysisPointer. Part of a fix to PR7760. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109883 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36d3392d58826c71198f945a0146d6952f617e39 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 30 19:57:56 2010 +0000 A *bunch* of tests for AVX intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109881 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd7ffe6d49cd63b1acf00e811a173e009ad9196b Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jul 30 19:55:47 2010 +0000 Add the __TEXT,__StaticInit section to the list of sections emitted at the beginning on ARM Darwin assembly files so that it won't be placed after debug sections. Radar 8252813. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109879 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48fab9a3192df4e248548fb1efcb0da918364be8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 30 19:54:33 2010 +0000 Support all 128-bit AVX vector intrinsics. Most part of them I already declared during the addition of the assembler support, the additional changes are: - Add missing intrinsics - Move all SSE conversion instructions in X86InstInfo64.td to the SSE.td file. - Duplicate some patterns to AVX mode. - Step into PCMPEST/PCMPIST custom inserter and add AVX versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109878 91177308-0d34-0410-b5e6-96231b3b80d8 commit 603949aa97456f7cda5cdad551a900881ed08481 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 30 19:41:24 2010 +0000 Fix typo! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109877 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f46694ddd334ecf3ae30bb42f168fe7f874e02b Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jul 30 18:52:47 2010 +0000 Attempt to fix the llvm-gcc-powerpc-darwin9 buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1eb73ea441621fe79f16536385dbe1a63a3535ad Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jul 30 18:32:09 2010 +0000 MC: Initialize MCFragment::Offset, noticed by Cameron Esfahani. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109875 91177308-0d34-0410-b5e6-96231b3b80d8 commit eaa0695ad92918df8816df63eb0a9d6e1e19d7ff Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jul 30 17:49:04 2010 +0000 Fix -Wmissing-field-initializers warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109872 91177308-0d34-0410-b5e6-96231b3b80d8 commit aba0ff0d870b4c7321f073c470e7ec17e0f6f198 Author: John Criswell <criswell@uiuc.edu> Date: Fri Jul 30 16:30:28 2010 +0000 Grammar cop pullover: Corrected and improved some grammar in the description of the llvm.memset() intrinsic family. No content changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109863 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0fbcf7881847708723360d7810947d1cebf8c87 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Jul 30 14:19:00 2010 +0000 Add a Program argument to diffProgram to avoid a use of swapProgramIn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ace129db8ff6b02540bce65393d316cb04ef9f9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jul 30 12:18:36 2010 +0000 Tweak suppressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109858 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8480aacbd557d07e7ea268d99ab75b3599d02ce Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri Jul 30 06:44:31 2010 +0000 Fix for bug reported by Evzen Muller on llvm-commits: make sure to correctly check the range of the constant when optimizing a comparison between a constant and a sign_extend_inreg node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b6575eb6e67f1f6d8a6c6c59077c64db8428c69 Author: Duncan Sands <baldrick@free.fr> Date: Fri Jul 30 05:50:45 2010 +0000 Do not pass a copy of the value map, pass a reference to it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43b3a055458971c37c453884817d98cecbff3fd3 Author: Duncan Sands <baldrick@free.fr> Date: Fri Jul 30 05:49:32 2010 +0000 Fix the ValueMap copy constructor. The issue is that the map keys are value handles with a pointer to the containing map. When a map is copied, these pointers need to be corrected to point to the new map. If not, then consider the case of a map M1 which maps a value V to something. Create a copy M2 of M1. At this point there are two value handles on V, one representing V as a key in M1, the other representing V as a key in M2. But both value handles point to M1 as the containing map. Now delete V. The value handles remove themselves from their containing map (which destroys them), but only the first value handle is successful: the second one cannot remove itself from M1 as (once the first one has removed itself) there is nothing there to remove; it is therefore not destroyed. This causes an assertion failure "All references to V were not removed?". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109851 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad94e9b576e5c94f507ecdf8f6d597fe2eebba86 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jul 30 02:41:01 2010 +0000 Many Thumb2 instructions can reference the full ARM register set (i.e., have 4 bits per register in the operand encoding), but have undefined behavior when the operand value is 13 or 15 (SP and PC, respectively). The trivial coalescer in linear scan sometimes will merge a copy from SP into a subsequent instruction which uses the copy, and if that instruction cannot legally reference SP, we get bad code such as: mls r0,r9,r0,sp instead of: mov r2, sp mls r0, r9, r0, r2 This patch adds a new register class for use by Thumb2 that excludes the problematic registers (SP and PC) and is used instead of GPR for those operands which cannot legally reference PC or SP. The trivial coalescer explicitly requires that the register class of the destination for the COPY instruction contain the source register for the COPY to be considered for coalescing. This prevents errant instructions like that above. PR7499 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109842 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bb43b78f014c77176dbfb4a9b79590b3068a01c Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 29 23:35:00 2010 +0000 remove a layer of cruft git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109821 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94851060284e27be4d682356ed22279de2669dec Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 29 23:20:29 2010 +0000 Fix this up per llvm-gcc r109819. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109820 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfa64a73b5b2c211f32446edcc85ed994cc36f0f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jul 29 23:15:04 2010 +0000 Supress valgrind errors from python. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 994dd8b80b2104379a1144f2e8b00eb1204b0343 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 29 22:55:29 2010 +0000 Remove the temporary hack, now that the llvm-i686-linux buildbot has completed a successful build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109815 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00696dcfa067f654527ed3c7ed418e5be9807a5d Author: Nate Begeman <natebegeman@mac.com> Date: Thu Jul 29 22:48:09 2010 +0000 Add builtins for ssat/usat, similar to RealView's __ssat and __usat intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109813 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1f2ce959699b7430164273d13c2d1eb3ba3375a Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 29 22:33:35 2010 +0000 Fix the temporary hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109810 91177308-0d34-0410-b5e6-96231b3b80d8 commit dec9881c5ef57f605ee4def01cc2069f1eaf2ab8 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 29 22:18:50 2010 +0000 Temporary hack to ensure stale Analysis dir is cleaned up on llvm-i686-linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109809 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d3bc2c3559b17639274c0e872080b021d66084e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jul 29 20:36:36 2010 +0000 Remove XFAIL, test doesn't leak anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109801 91177308-0d34-0410-b5e6-96231b3b80d8 commit a92ff2ca1935c4e1f5449248c43e8127e45b2cb8 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 29 20:34:14 2010 +0000 Refactor ARM-specific DAG combining in preparation for adding some more transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109800 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fbeb00e26154a29c48fdea37a740cf9000c1c0d Author: Dale Johannesen <dalej@apple.com> Date: Thu Jul 29 20:10:08 2010 +0000 Implement vector constants which are splat of integers with mov + vdup. 8003375. This is currently disabled by default because LICM will not hoist a VDUP, so it pessimizes the code if the construct occurs inside a loop (8248029). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109799 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3be91cb19598899d6edc83956b72f54471df7d3 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 29 18:29:28 2010 +0000 Don't assert on an unrecognized BrMiscFrm instruction. PR7745. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 444d549d40627f54a3533f43469d61e05cea5b61 Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 18:20:13 2010 +0000 Transcribe IRC to svn. Also don't print basic block names twice if they match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109787 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8a97c54fee320d1923d1a059ea4d69444e33d9f Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 29 18:11:28 2010 +0000 Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109775 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d7cf6865737b96f1b8959fcfb61fd83cfa0ba14 Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 18:08:23 2010 +0000 Make the header self-contained and follow #include guidelines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e551018d78aa32c4333ce60ab9b6d01572db2ba Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jul 29 18:03:33 2010 +0000 PR7750: !CExpr->isNullValue() only properly computes whether CExpr is nonnull if CExpr is a ConstantInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109773 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf25e15d54ab3dcd392976dff689d0d129f148ee Author: Owen Anderson <resistor@mac.com> Date: Thu Jul 29 17:57:57 2010 +0000 Make un-named values legible in certain vim configurations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109772 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3b1d89db22ab2daf3f4d13bbce2a29273964b53 Author: Nate Begeman <natebegeman@mac.com> Date: Thu Jul 29 17:56:55 2010 +0000 Add intrinsics __builtin_arm_qadd & __builtin_arm_qsub to allow access to the QADD & QSUB instructions. Behave identically to __qadd & __qsub RealView instruction intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 224779dcea16a34f76abaf318312449aab4c52fb Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 17:55:00 2010 +0000 Switch to using the LLVM CommandLine library so that our help message is properly contaminated with nonsense about timing passes that doesn't apply at all to this utility. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109769 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ceeaaa598f4334de7eca1d8f2edf0db65d2cc6e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jul 29 17:48:06 2010 +0000 Plug the remaining MC leaks by giving MCObjectStreamer/MCAsmStreamer ownership of the TargetAsmBackend and the MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109767 91177308-0d34-0410-b5e6-96231b3b80d8 commit e67dbbad17a19f6cebfb61d68ca0ab0e3a06eb78 Author: Dale Johannesen <dalej@apple.com> Date: Thu Jul 29 17:45:24 2010 +0000 Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34ae1647fa46564ad3206ed242ac190a0322e11f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 29 17:42:27 2010 +0000 Revert r109652, and remove the offending assert in loadRegFromStackSlot instead. We do sometimes load from a too small stack slot when dealing with x86 arguments (varargs and smaller-than-32-bit args). It looks like we know what we are doing in those cases, so I am going to remove the assert instead of artifically enlarging stack slot sizes. The assert in storeRegToStackSlot stays in. We don't want to write beyond the bounds of a stack slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4abb415302091c08c6e0e89b62ed21f2869d5309 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 29 15:24:21 2010 +0000 CrashRecovery: Use ThreadLocal::erase() instead of set(0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89395e87ebed3060753702b7e3673aa93a5e5c6f Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Jul 29 14:20:59 2010 +0000 Make the test while reducing blocks functional. This avoids accessing freed memory when one of the original BB is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b5205d31d5977da594ec66b757469ef91d5b142 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jul 29 13:53:19 2010 +0000 Stop leaking std::strings in GetDwarfFile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5af4e968e3c281a6cba0854f17e11d23af5f25f0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jul 29 11:57:59 2010 +0000 COFFObjectWriter: Don't leak COFFSymbols and COFFSections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109745 91177308-0d34-0410-b5e6-96231b3b80d8 commit e795f2e192d285defa193ffefd22e1fa84d8a453 Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 09:20:34 2010 +0000 Centralize the logic to permanently unify two instructions and make sure it establishes a context and does a complaining diff. Also make sure we unify the prelude and postlude of a diff after a block-diff call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57a8dcfebc5e23300c01d603a23a7546da8a222c Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 09:04:45 2010 +0000 Diagnose non-structural differences in the case where blocks were structurally identical. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b319434d5854608de18ddd8adfe741d7727dff8 Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 08:59:27 2010 +0000 When unifying instructions during a block diff, actually complain about any differences we see. This should only happen if there are "non-structural" differences between the instructions, i.e. differences which wouldn't cause diff to return true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c18d684eb176cce9f9120808c9d03f31e261196 Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 08:53:59 2010 +0000 Somehow I was getting reasonable results for the test cases I was interested in despite not ever incrementing any path costs, so that the only nonzero costs arose from the all-left path in the first column. Anyway. Perform the diff starting from the beginning of the block to avoid capturing (say) loads of allocas. Vastly improves diff results on code that hasn't been mem2reg'ed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c4660d3415fcf2576e2ffd06948513c2b9beb3c Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 08:14:41 2010 +0000 Cache the result of errs() and implement formatted logging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3455d18438d50d1df477a93c0a3e9a99bfa24c33 Author: John McCall <rjmccall@apple.com> Date: Thu Jul 29 07:53:27 2010 +0000 Add the llvm-diff tool, which performs a relatively naive structural diff of a function. There's a lot of cruft in the current version, and it's pretty far from perfect, but it's usable. Currently only capable of comparing functions. Currently ignores metadata. Currently ignores most attributes of functions and instructions. Patches welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109739 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4fe7bb0578458b26e3aca27646db2185625b964 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 29 01:52:04 2010 +0000 Make sure to include config.h, to pickup LLVM_ON_WIN32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109721 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65eaec70b11907b668fa34616310618d46f1d0e4 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 29 01:51:55 2010 +0000 MC: Destroy Macro instances. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109720 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4344274288c0b11cbff472aba3a6d0f02b49ab5 Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 29 01:25:38 2010 +0000 Speculatively revert r109705 since it seems to be causing some build bot angst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109718 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98ce49ae35c4ed8d32f9e6696408ed35e9f5887a Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 29 01:21:47 2010 +0000 CrashRecoveryContext: Add a simple POSIX implementation. - This works, but won't handle crashes on stack overflow, or signals delivered to a thread other than the one that crashed. The latter is particular annoying on Darwin, because SIGABRT tends to go to the main thread. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109717 91177308-0d34-0410-b5e6-96231b3b80d8 commit f10582dacfe1b0560bdf60fe5352f3095b5d28f0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 29 00:52:19 2010 +0000 Fix a bug in the -regalloc=fast handling of exotic two-address instruction with multiple defs, like t2LDRSB_POST. The first def could accidentally steal the physreg that the second, tied def was required to be allocated to. Now, the tied use-def is treated more like an early clobber, and the physreg is reserved before allocating the other defs. This would never be a problem when the tied def was the only def which is the usual case. This fixes MallocBench/gs for thumb2 -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109715 91177308-0d34-0410-b5e6-96231b3b80d8 commit f905069309e141cea9242e33384399375e8df512 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 29 00:52:16 2010 +0000 Use the right gcc tool args for IsARMArchitecture. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109714 91177308-0d34-0410-b5e6-96231b3b80d8 commit f775a082a2783b6632e49638fccd7c8934b93137 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 29 00:17:55 2010 +0000 Factor out some of the code for updating old SCEVUnknown values, and extend it to handle the case where multiple RAUWs affect a single SCEVUnknown. Add a ScalarEvolution unittest to test for this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1077db6c99a3324ec2c9f73e891a9a6a8a35e93b Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 28 23:50:08 2010 +0000 Pass the queried value by argument rather than in a member, in preparation for supporting PHI translation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4207bfb17caacc9c1d762338b8779292ab1fdfa2 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 28 23:25:44 2010 +0000 ARM mode version of r109693. Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109696 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cc86cc25f3e58e0c21f70415313a391e59c2012 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 28 23:17:45 2010 +0000 Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 391e1d9be61d6a30985650bcec968f9deae183ab Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 28 23:16:12 2010 +0000 Remove dead prototype git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109691 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae4bae8706089948d7763c8e868d311f1e6f7392 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 22:50:26 2010 +0000 simplify by using CallSite constructors; virtually eliminates CallSite::get from the tree git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79983b3f57bc101742945b28499048bb52e9486b Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 28 22:49:43 2010 +0000 Add an erase() method to llvm::ThreadLocal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0955be36406b562ca7dd3feb3240a8923dee3087 Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 28 22:30:53 2010 +0000 Add more doxygen comments for llvm::ThreadLocal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74153cbc8b592f66fc04349a65daffb0cc6327cb Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 28 22:07:25 2010 +0000 Get rid of LVIQuery as a distinct data structure, so that we don't have to initialize a new set of maps on every query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109679 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d571e239cee6d3cd8a32acda546dacb357c7930 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 21:02:38 2010 +0000 Move MaximumAlignment to Value.h, now that GlobalValue.h needs it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 251bb79f5cd3ff039efa3882fd3ece9788adf0e4 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 20:56:48 2010 +0000 Make GlobalValue alignment consistent with load, store, and alloca alignment, fixing silent truncation of alignment values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109653 91177308-0d34-0410-b5e6-96231b3b80d8 commit e37481ad71a8fab54b1b03a4e551d7353e3735e1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jul 28 20:55:38 2010 +0000 Create a fixed stack object for varargs that is as large as any register. The size of this object isn't used for anything - technically it is of variable size. This avoids a false positive from the assert in X86InstrInfo::loadRegFromStackSlot, and fixes PR7735. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109652 91177308-0d34-0410-b5e6-96231b3b80d8 commit be1edb836db03955aeb7538815796c82db9d8a76 Author: Kevin Enderby <enderby@apple.com> Date: Wed Jul 28 20:55:35 2010 +0000 Added first bit of support for the dwarf .file directive. This patch collects the info from the .file directive and makes file and directory tables that will eventually be put out as part of the dwarf info in the output file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109651 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7ee8613118925e4b8119d8a22f1b4669b85bf51 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jul 28 20:28:50 2010 +0000 RegionInfo: Make sure to free cached nodes; Tobias, please check! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109650 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a32aba4d834ae297a5b3d25530ac0d987f33a4b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jul 28 20:28:45 2010 +0000 MC: Put back the MCFragment vtable, so subclasses are destroyed properly (duh). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 972a40995e68b8a2915ac2ccecd5004af2a167f8 Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 28 20:26:43 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109647 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7aff91b9d55ad639c33a606ab050ab5db8ae582 Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 28 20:26:34 2010 +0000 Use a C++ compiler for the atomic builtin check since we'll be using a C++ compiler to build. Patch by Török Edwin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109646 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa6f837cc1ae2082019fb73546bd5a04fed959d5 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 20:12:04 2010 +0000 Define a maximum supported alignment value for load, store, and alloca instructions (constrained by their internal encoding), and add error checking for it. Fix an instcombine bug which generated huge alignment values (null is infinitely aligned). This fixes undefined behavior noticed by John Regehr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109643 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6948d330f6f3ede1875031c30f1edac0641a15ef Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jul 28 18:35:46 2010 +0000 Print out the regclass of any virtual registers used by a machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109608 91177308-0d34-0410-b5e6-96231b3b80d8 commit 632ba3e445fb4b9d1e40eb48b9a2901a7e783039 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 28 18:21:10 2010 +0000 Fix a warning from gcc-4.0 (from the ppc buildbot). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109605 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a645182efdde411b1426c0ae9f84c4ddff6f7f4 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jul 28 18:12:30 2010 +0000 Instead of abusing swapProgramIn, just add a Module argument to EmitProgressBitcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109602 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6239d9528ef046de1e977e0638fa7e8f457b4ab5 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Jul 28 17:17:46 2010 +0000 Unbreak my CMake build, say you'll compile for me again... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109598 91177308-0d34-0410-b5e6-96231b3b80d8 commit e91d3c8385df3df998f86beebbbcc3736ecca879 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 17:15:36 2010 +0000 Fix this code to avoid decrementing an iterator past the beginning of a std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109597 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c0de2c450202b1015a50d9bda94df871c8bd026 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 17:14:23 2010 +0000 When user code intentionally dereferences null, the alignment of the dereference is theoretically infinite. Put a cap on the computed alignment to avoid overflow, noticed by John Regehr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109596 91177308-0d34-0410-b5e6-96231b3b80d8 commit 326c1dbbc5a06fcb057d9a400f4c39b53bcada2b Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 17:11:36 2010 +0000 Do GEP offset calculations with unsigned math rather than signed math to avoid undefined behavior on overflow, noticed by John Regehr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109594 91177308-0d34-0410-b5e6-96231b3b80d8 commit c891215a89995f8f4fe552542214218e814bcdd1 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 17:09:24 2010 +0000 Add some extra friend declarations to fix a gcc-4.0 compile error. This is a temporary fix, until more elaborate changes are ready. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109593 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc3747ab7e6599213a6c3d89c57108277c5cfe64 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 15:52:43 2010 +0000 simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109589 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4b8b33da60de98b1ea3c44a17e72d6069e8390a Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jul 28 15:40:20 2010 +0000 Support: Add CrashRecoveryContext helper object. - Designed as a simple wrapper to allow clients to attempt to catch crashes (memory errors, assertion violations, etc.) and do some kind of recovery. - Currently doesn't actually attempt to catch crashes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31bdeccf503e07caab847c8626b7dc51f02688cd Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 15:31:37 2010 +0000 simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109585 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf233773955e93ece2494479e3c7f87424f9c934 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 15:17:26 2010 +0000 Update svn:ignore properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109584 91177308-0d34-0410-b5e6-96231b3b80d8 commit 525265f5dd1565b2a6ee95340c8e64fa70ce583c Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 14:28:18 2010 +0000 use Value* constructor of CallSite to create potentially improper site, and test that git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109581 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4d37fc7a7abc513e387ca594333b71f293054a4 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 12:35:54 2010 +0000 use Value* constructor of CallSite to create potentially improper site, and test that git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109580 91177308-0d34-0410-b5e6-96231b3b80d8 commit e95c78586e90abbeec3a6faafd0955ca9b3c3aa2 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 12:19:46 2010 +0000 use Value* constructor of CallSite to create potentially improper site git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109579 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd697163d42a55b8a2607d75f4c8566322c21b61 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 10:57:28 2010 +0000 simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109578 91177308-0d34-0410-b5e6-96231b3b80d8 commit d808effe12dd968283bd2f69d05740afdffe3136 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 10:46:09 2010 +0000 simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109577 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4798bb61b17e10dad7ecd2a0d3cccb3767b878ab Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 28 10:44:59 2010 +0000 we are supposed to only create proper CallSites from an instruction (esp. CallInst and InvokeInst) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109576 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a4c59f700f1877ed8e9789034361de85d26f827 Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 28 01:52:23 2010 +0000 Filter out patterns that have PredicateOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109572 91177308-0d34-0410-b5e6-96231b3b80d8 commit a721dc1918de797429d02bb802b67fbdd327258e Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 01:09:07 2010 +0000 Make SCEVCallbackVH::allUsesReplacedWith update the old SCEVUnknown object, as it may still be referenced by SCEVs not cleaned up by the use list traversal. Also, in ScalarEvolution::forgetValue, only check for a SCEVUnknown object for the original value, not for any value in the use list, because other SCEVUnknown values aren't necessary obsolete at that point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109570 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd84973114e470a9dc3085eaa2a45378fd33dfc6 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 00:28:25 2010 +0000 Make SCEVCallbackVH::allUsesReplacedWith unconditionally delete the old value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109567 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1f7167d38f737dae693c3792c0f070bfb489b2d Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jul 28 00:21:48 2010 +0000 Implement a vectorized algorithm for <16 x i8> << <16 x i8> This is about 4x faster and smaller than the existing scalarization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109566 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3637f9699ef21c1032ad43c637a8ab4af51e9ffa Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 28 00:21:18 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 405c6a6da0c152de887709a0438d3da9c269d6fd Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 27 23:58:11 2010 +0000 Rearrange several datastructures in LazyValueInfo to improve compile time. This is still not perfect, but better than it was before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46d6d6e5ad737cd175bd5d534b4a1757ec2f244e Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 27 23:55:47 2010 +0000 Fill out the interface of DenseSet a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6063e98b1386c091b31ab3c6a42185e0dd1abdc3 Author: Stuart Hastings <stuart@apple.com> Date: Tue Jul 27 23:15:25 2010 +0000 Testcase for r109556. Radar 8198362. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109557 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8a63dbaac811e03de98be246643ae370da6443e Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 22:53:28 2010 +0000 reintroduce original (asserting) semantics of CallSite(Instruction *II) add instead a CallSite(Value* V) constructor that is consistent with ImmutableCallSize and use that one in client code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109553 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23c9b3e6c5f23b000b33960a2fc7547f5bd4c39f Author: Nate Begeman <natebegeman@mac.com> Date: Tue Jul 27 22:37:06 2010 +0000 ~40% faster vector shl <4 x i32> on SSE 4.1 Larger improvements for smaller types coming in future patches. For: define <2 x i64> @shl(<4 x i32> %r, <4 x i32> %a) nounwind readnone ssp { entry: %shl = shl <4 x i32> %r, %a ; <<4 x i32>> [#uses=1] %tmp2 = bitcast <4 x i32> %shl to <2 x i64> ; <<2 x i64>> [#uses=1] ret <2 x i64> %tmp2 } We get: _shl: ## @shl pslld $23, %xmm1 paddd LCPI0_0, %xmm1 cvttps2dq %xmm1, %xmm1 pmulld %xmm1, %xmm0 ret Instead of: _shl: ## @shl pshufd $3, %xmm0, %xmm2 movd %xmm2, %eax pshufd $3, %xmm1, %xmm2 movd %xmm2, %ecx shll %cl, %eax movd %eax, %xmm2 pshufd $1, %xmm0, %xmm3 movd %xmm3, %eax pshufd $1, %xmm1, %xmm3 movd %xmm3, %ecx shll %cl, %eax movd %eax, %xmm3 punpckldq %xmm2, %xmm3 movd %xmm0, %eax movd %xmm1, %ecx shll %cl, %eax movd %eax, %xmm2 movhlps %xmm0, %xmm0 movd %xmm0, %eax movhlps %xmm1, %xmm1 movd %xmm1, %ecx shll %cl, %eax movd %eax, %xmm0 punpckldq %xmm0, %xmm2 movdqa %xmm2, %xmm0 punpckldq %xmm3, %xmm0 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109549 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9e8f3256470fc4af9c93023e8b1da2d6f10ddb1 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 22:02:00 2010 +0000 recommit simplification (originally r109504, backed out in r109508) now that problem in CallSiteBase is fixed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109547 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65b57526b65614dbf3dc5cc9d1577d095b1f01e1 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 21:46:11 2010 +0000 remove bogus assert, use static_cast for additional checking left two new asserts commented out, because they would fire in clang, have to hunt those down first git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109544 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a1292adf6f4502e096ee6946b2425378cd7af6f Author: Devang Patel <dpatel@apple.com> Date: Tue Jul 27 20:51:15 2010 +0000 It is FE's responsibility to emit proper directory name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109538 91177308-0d34-0410-b5e6-96231b3b80d8 commit b18c940748bb3437aaedb64e051b9656e18c5843 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 27 18:59:50 2010 +0000 make lookup failures not fatal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109530 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb1fb421a0197a1edee662b30d8865de463a6518 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jul 27 18:36:27 2010 +0000 Grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13787c6a2bfde831da130cba8ad1bd1759919ac8 Author: Devang Patel <dpatel@apple.com> Date: Tue Jul 27 18:13:53 2010 +0000 Update tests to not rely on input file's absolute path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ad727335889bf5b87e45832ae6f0ec00e307f49 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Jul 27 18:02:18 2010 +0000 Fix a crash in the dag combiner caused by ConstantFoldBIT_CONVERTofBUILD_VECTOR calling itself recursively and returning a SCALAR_TO_VECTOR node, but assuming the input was always a BUILD_VECTOR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109519 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ae62dd3de00a17edb72007990179a78523ee6dd Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jul 27 17:38:47 2010 +0000 80 column git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109513 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfa554cdc9aaf33450f4ca2eed6e7726abe374ab Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jul 27 17:14:29 2010 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109511 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4535f47d9a65073c2da31c5656e10926d48b2769 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 16:44:23 2010 +0000 recommit simplification (r109502, backed out r109509); seems to innocent git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109510 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2605844d218b8d7eba195e05c762e8629c397e4 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 15:56:07 2010 +0000 back out this too to restore the bots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 193f29c77b1b780a061b36a7e52b1eafbbe290ee Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 15:18:11 2010 +0000 back out r109504, breaks the bots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05da80e4ad150fa2a0f534b5831a8f6a91d213d7 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 15:02:37 2010 +0000 simplify: CallSite::get --> CallSite constructor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109506 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7287e186b93f85e1411338e30d7bf5e640283617 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 14:38:38 2010 +0000 simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109504 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5d78bbcbbd71d96afcb2eec05d54aa6ddeaf438 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 14:15:29 2010 +0000 use ImmutableCallSite for const-corrgoodness git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69cbf060d2c93c8479fca750dc32a6279a6ffe62 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 27 13:31:22 2010 +0000 simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109502 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a45a38a3788446f13960b8b61a9098d3bcfffa5 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Jul 27 11:19:40 2010 +0000 Fix silent failure with no input files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 544ec73f9f5afc97e1d4d3c1a3acabb4f42621d2 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Jul 27 11:19:36 2010 +0000 Return -1 only on failure to execute a program. Also fix some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109499 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95738b1bfb8084f335c3e78015b4737f12abdd32 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jul 27 09:09:05 2010 +0000 In commit 91421, isPod was changed from false to true for these value handles. Change it back again: destructors and constructors need to be run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d7406f22db22982fbc896582b569b1d31531f29 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Tue Jul 27 09:01:26 2010 +0000 Make coff-dump.py executable and add python as executable for this script. This fixes the MC/COFF/basic-coff.ll test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109497 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21a4f0558fb6cc3826db0a042c41d4da817e2224 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Tue Jul 27 08:39:43 2010 +0000 RegionInfo: Add getMaxRegionExit() getMaxRegionExit returns the exit of the maximal refined region starting at a specific basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 589c4d2b7831db74202f2e3c771e54c0f6dd7dcd Author: Duncan Sands <baldrick@free.fr> Date: Tue Jul 27 06:53:14 2010 +0000 After updating value handles for RAUW, check that no weak or tracking handles are still on the list. This might happen if a CallbackVH created some new value handles for the old value when doing RAUW. Barf if it occurs, since it is almost certainly a mistake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27c8eb2153252f0aa2e8c433915da58e04431fe4 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Tue Jul 27 06:46:15 2010 +0000 Make MC use Windows COFF on Windows and add tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109494 91177308-0d34-0410-b5e6-96231b3b80d8 commit 744da1076d8b57f38416e28812701567edf0cf09 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Tue Jul 27 04:17:13 2010 +0000 Add function to query RegionInfo about loops. * contains(Loop), * getOutermostLoop() * Improve getNameStr() to return a sensible name, if basic blocks are not named. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109490 91177308-0d34-0410-b5e6-96231b3b80d8 commit c83955d95698927cd60f032c14330e135aeadd62 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 27 04:17:01 2010 +0000 The isLoadFromStackSlot and isStoreToStackSlot have no way of reporting subregister operands like this: %reg1040:sub_32bit<def> = MOV32rm <fi#-2>, 1, %reg0, 0, %reg0, %reg1040<imp-def>; mem:LD4[FixedStack-2](align=8) Make them return false when subreg operands are present. VirtRegRewriter is making bad assumptions otherwise. This fixes PR7713. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68480da7b2f958532d392cf77217a264d7336e07 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 27 04:16:58 2010 +0000 Add assertions that expose the PR7713 miscompilation: Accessing a stack slot with a too-big register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109488 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2348b09b47150e5d50e58644679da722bde4d31f Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jul 27 01:55:19 2010 +0000 It's better to have the arrays, which would trigger the creation of stack protectors, to be near the stack protectors on the stack. Accomplish this by tagging the stack object with a predicate that indicates that it would trigger this. In the prolog-epilog inserter, assign these objects to the stack after the stack protector but before the other objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109481 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa6c4b2554ce1de0882677ae22e79b383e67ffec Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 27 01:19:06 2010 +0000 Use AssertingVH for InsertedValues and InsertedPostIncValues, to verify that the values they refer to aren't being deleted underneath them. Make sure these containters get cleared by clear(), which IndVarSimplify and LSR both use before deleting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109478 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1046cff821897dea25aed569bf9b435f47eb8d30 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 27 00:04:55 2010 +0000 (Hopefully) One last test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109473 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2ee29e6c4b116baccda09b614fe2046320c1ed2 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 27 00:00:47 2010 +0000 Another test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109472 91177308-0d34-0410-b5e6-96231b3b80d8 commit 552ecf9fc7ff38a683eb85dfdc1e3180cad3f75a Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 23:58:46 2010 +0000 Another test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109471 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27824879177e6a9b05fd281f84c68278667af7f2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jul 26 23:44:11 2010 +0000 Add SplitEditor to SplitKit. This class will be used to edit live intervals and rewrite instructions for live range splitting. Still work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109469 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec8bd55c828f5c110e2dcfc872d90ac93c90a4b0 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 23:40:24 2010 +0000 Fix a use-after-free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69191b012809325d570d534d356f2760677857ba Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jul 26 22:36:52 2010 +0000 Using llvm.eh.catch.all.value instead of .llvm.eh.catch.all.value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109462 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72acac7ff22513345f59866fe368995918b1f2df Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Jul 26 22:28:18 2010 +0000 And a bit more non-ASCII stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109458 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fc96648031649a3e97df6cb7fecfe1bd280723d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Jul 26 22:23:07 2010 +0000 Drop some non-ascii stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22012471ea873c9f97a58417f3aa3ef7831ef56f Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jul 26 21:58:00 2010 +0000 Don't call __register_frame from the JIT on systems that use setjmp/longjmp exception handling. Also fix an extra underscore typo in one instance of "__ARM_EABI__". Radar 8236264. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109451 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9374a8501eca4bc68f201345485120a22b566954 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jul 26 21:50:05 2010 +0000 On x86, f32 / f64 nodes share the same registers as 128-bit vector values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66d10135a147d53559d68f66d3e021295f7209ea Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jul 26 21:49:07 2010 +0000 The "excess register pressure" returned by HighRegPressure() is not accurate enough to factor into scheduling priority. Eliminate it and add early exits to speed up scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f76db4cec1d51d6104f4082b3d8c6a94c7aa05b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Jul 26 21:48:35 2010 +0000 Add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109448 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2624466abb24114080364ae8825d7136e292a867 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 21:05:37 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a2f10e31173d8bca1f371b20efc750b08723f64 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jul 26 21:01:18 2010 +0000 Temporary hack to let codegen assert or generate poor code in case we are using AVX and no AVX version of the desired intruction is present, this is better for incremental dev (without fallbacks it's easier to spot what's missing). Not sure this is the best hack thought (we can also disable all HasSSE* predicates by dinamically marking them 'false' if AVX is present) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109434 91177308-0d34-0410-b5e6-96231b3b80d8 commit aac047b831ad8d99c00229a354e429bcff288d72 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 20:51:45 2010 +0000 Testing some more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109433 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bb32121d26196cbd9e8311dcc633e9b3b8176b3 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 20:19:04 2010 +0000 Test some more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109431 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c0d3d7447af6c2aceb4058802a02605b64c4c86 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 20:15:47 2010 +0000 Fix library build messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109430 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8644c763bf5c2b2e08612e32ba58b6ad4ecce7f Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 20:11:39 2010 +0000 Add svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109429 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36c83579bacf0b9b5ab3317fdaf46f3fc74c3e8e Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 26 18:48:07 2010 +0000 re-commit r109220, the compile error has already been fixed Simplifying use_iterators by dereferencing is not a good idea. The codebase does not depend in this any more, and it may introduce hidden runtime cost. If you get compile errors, please dereference your iterator before passing to cast<> (and friends). Also: please consider caching the result of operator* and reusing that instead of dereferencing many times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109425 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6eeef08071e736945b55b20f4a5ad2d39d276b9c Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 18:48:03 2010 +0000 Add an initial implementation of LazyValueInfo updating for JumpThreading. Disabled for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109424 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffa352407b4e46f99f2fca22a1e4895ec2c718d8 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Jul 26 18:45:39 2010 +0000 Currently EH lowering code expects typeinfo to be global only. This assumption is not satisfied due to global mergeing. Workaround the issue by temporary disablinge mergeing of const globals. Also, ignore LLVM "special" globals. This fixes PR7716 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109423 91177308-0d34-0410-b5e6-96231b3b80d8 commit 981ee3aba47616d031192d0c214843ba6169758e Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 18:44:56 2010 +0000 Fix a test with malformed IR. Not sure why this didn't fail before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32b553e7680586d8e7dba714068cb2274748c3fe Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jul 26 18:32:55 2010 +0000 ARM fastisel isn't ready. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7867267cc7dcb74d30db70e6fe0f238968d4c8bb Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 18:31:17 2010 +0000 One more test commit... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109420 91177308-0d34-0410-b5e6-96231b3b80d8 commit d008c9226de9c4f3745ce5b35817e255e3cd3ed4 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 18:28:14 2010 +0000 Fix SCEVExpander::visitAddRecExpr so that it remembers the induction variable it inserted rather than using LoopInfo::getCanonicalInductionVariable to rediscover it, since that doesn't work on non-canonical loops. This fixes infinite recurrsion on such loops; PR7562. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80c0cd49cae6f26f87c7da1fb9536f6b85268350 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 18:15:41 2010 +0000 Handle Values with no value in getCopyFromRegs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46b976d76bfc4711e26dcc760ab562ae0c787a25 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 18:13:21 2010 +0000 Hopefully the last test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109414 91177308-0d34-0410-b5e6-96231b3b80d8 commit c48fd5408d8eaa766b218ad2070713e72597d8ed Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 18:11:16 2010 +0000 Remove LCSSA's bogus dependence on LoopSimplify and LoopSimplify's bogus dependence on DominanceFrontier. Instead, add an explicit DominanceFrontier pass in StandardPasses.h to ensure that it gets scheduled at the right time. Declare that loop unrolling preserves ScalarEvolution, and shuffle some getAnalysisUsages. This eliminates one LoopSimplify and one LCCSA run in the standard compile opts sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109413 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba693920298991812a636fa4bb8b99d0aafa30ab Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 18:02:06 2010 +0000 Preserve ScalarEvolution in the loop unroller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109412 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecb985b9bd78e00522da587aac0852a5bcf8ccfc Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 18:00:59 2010 +0000 Another test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72ec601264bc8ad8cf7c8e72e552c16577b2b6a0 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 18:00:43 2010 +0000 Avoid depending on LCSSA implicitly pulling in LoopSimplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109410 91177308-0d34-0410-b5e6-96231b3b80d8 commit f20312c639dff91f1a5030c56aa423d97c7a1e13 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 26 17:56:42 2010 +0000 Test commit for new post-commit hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f38f41f182899b4483597a5b4840214361934fa Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 17:55:15 2010 +0000 Fix (at least) quadratic worst-case complexity in DominanceFrontier::splitBlock: don't visit all blocks in the function, and don't iterate over the split blocks' predecessor lists for each block visited. Also, remove the special-case test for the entry block. Splitting the entry block isn't common enough to make this worthwhile. This fixes a major compile-time bottleneck which is exposed now that LoopSimplify isn't being redundantly run both before and after DominanceFrontier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cc629172956ad95bd0ff7bc588f7f79b5159128 Author: Eric Christopher <echristo@apple.com> Date: Mon Jul 26 17:53:07 2010 +0000 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109407 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84b7a1894dd866eeaf61695c77463a485cfdee46 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 17:45:33 2010 +0000 Avoid copying and recopying a std::set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109405 91177308-0d34-0410-b5e6-96231b3b80d8 commit 366eaeaa99573e3a1ac1507250be409ca1acb5ab Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 17:41:45 2010 +0000 Exit a search loop when the search goal is found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109404 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21e1cb1b22ab1ee77d17fb2acf9ad65dfc5cb495 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 17:39:33 2010 +0000 Fix formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109403 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49891df074fabcfdbcb488e0a3103ac1c6cbacfc Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 17:38:15 2010 +0000 A block dominates itself, by definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d9da9f2c6f39de1cce794009e893cd78cc8da51 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 17:37:36 2010 +0000 Use DominatorTree::properlyDominates instead of dominates with an explicit inequality check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bbc3b6c824352397b7f20e83fb5ba07ca8a0ecc Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 17:35:32 2010 +0000 A block dominates itself, by definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6dc7c00688bc8f9bb67713f741a40163619bcb28 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 17:34:05 2010 +0000 Use DominatorTree::properlyDominates instead of dominates with an explicit inequality check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109398 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8c1ecf3997ea433ee7ac1c08b8ab4f00a7adfdb Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 26 16:01:15 2010 +0000 Add an svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109394 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4e537053edc6b06780155b405f7c10929978968 Author: Duncan Sands <baldrick@free.fr> Date: Mon Jul 26 07:54:17 2010 +0000 Pacify gcc-4.5 which wrongly thinks that RExcess (passed as the Excess parameter) may be used uninitialized in the callers of HighRegPressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109393 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1ad921fb13c5309a1c5aac247d3316abfad86a0 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Mon Jul 26 03:55:44 2010 +0000 Fix format-specifier warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109391 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8da1d0dbd379c534245df7b2c4d0b4e12396d9bd Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Jul 26 03:01:28 2010 +0000 MC: Fix whitespace error from last commit. A Visual C++ extension that removes trailing new lines? Seriously? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109390 91177308-0d34-0410-b5e6-96231b3b80d8 commit 788c35f12aa076fd7f336cfb725b7363c8535d4f Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Jul 26 02:17:32 2010 +0000 MC: Add WinCOFFObjectWriter implementation. Origonal Windows COFF implementation by Nathan Jedffords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109389 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa8f6048f49ccbbb733724b8f94d260fe5e75096 Author: Lang Hames <lhames@gmail.com> Date: Mon Jul 26 01:49:41 2010 +0000 Factored out a bit of common code to mark VNInfos for deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109388 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99d42271a81f083151971ed8348b46a0cd71f23f Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jul 26 00:07:51 2010 +0000 Clone and restore the module being reduced in ReduceMiscompilingFunctions::TestFuncs. This makes the test functional (i.e., no side effects). Before we would end up using dead functions if a pass decided to remove them (inline for example) and we would also keep broken functions and conclude that that a single function was enough to reproduce the bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109387 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b0c38f0a15524a406f65db7e2cc83ddf4767d10 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Jul 25 23:18:32 2010 +0000 Reduce string trashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109386 91177308-0d34-0410-b5e6-96231b3b80d8 commit e68ea64cc37890a7f370ae3496d6d389114e7c65 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Jul 25 22:33:04 2010 +0000 Don't pass -export-dynamic to the linker on Cygwin and MinGW. These platforms accept the flag and do nothing but warn about it, cleverly bypassing our configure-based detection system. Patch by Takumi Nakamura! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109385 91177308-0d34-0410-b5e6-96231b3b80d8 commit be1a5ecc9e7cc435a4049bd21740a283712107cf Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Jul 25 18:59:43 2010 +0000 Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109383 91177308-0d34-0410-b5e6-96231b3b80d8 commit bae2a9f9be621147fe1b40fa049713ba4740c4fe Author: Douglas Gregor <doug.gregor@gmail.com> Date: Sun Jul 25 17:34:42 2010 +0000 Remove extraneous semicolon git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109373 91177308-0d34-0410-b5e6-96231b3b80d8 commit c43cc36dd6e9ffeaa717010c5894b220ffd377e9 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Sun Jul 25 17:10:14 2010 +0000 Unbreak CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109372 91177308-0d34-0410-b5e6-96231b3b80d8 commit db868abb6f002833f8d36bbf56f82bc65a91151d Author: Bob Wilson <bob.wilson@apple.com> Date: Sun Jul 25 05:34:27 2010 +0000 Fix crashes when scheduling a CopyToReg node -- getMachineOpcode asserts on those. Radar 8231572. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109367 91177308-0d34-0410-b5e6-96231b3b80d8 commit aae3b74a7c30ecd7b6dcf8fcc0f59ecc288835a3 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 24 23:06:59 2010 +0000 Revert r109361; it's impossible to write a call with an argument with an invalid type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109365 91177308-0d34-0410-b5e6-96231b3b80d8 commit b63d97f51e2b3f8081fb78eb2962d4a69a1984e7 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Jul 24 23:05:45 2010 +0000 Revert unintended white space change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87a4f92d4f223fae0ebe43d976e9e374481458f0 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Jul 24 23:02:11 2010 +0000 Fix a trivial use after free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109363 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cc186477a648e8ec5b61d0148aa290a4e2fa899 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 24 23:00:59 2010 +0000 Minor simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109362 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbbf4bf7f44b45cfba39e2d4887244f8abab6588 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 24 23:00:26 2010 +0000 Make the ll parser check that arguments have valid types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109361 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e905c147559d51809e18db01cfd4246cebf1c01 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 24 22:58:04 2010 +0000 PR7704: A function is not allowed to return a function; make sure to enforce this consistently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c515d52a64c64529d85145fda898d338ac8cec5 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Jul 24 21:52:08 2010 +0000 Hook in GlobalMerge pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109359 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ca07fea88baae3333a19f35c11586f17e90db0c Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Jul 24 20:54:02 2010 +0000 Revert this because we can't clone cyclic MDNodes which are creating during a build of llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 218f0154abcb390ab2876a4710232207e7852211 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Jul 24 20:48:54 2010 +0000 Add hook to insert late LLVM=>LLVM passes just before isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109354 91177308-0d34-0410-b5e6-96231b3b80d8 commit d34abf251accf94e968c45ba61c0fb400b3b57c1 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Jul 24 19:43:25 2010 +0000 Whether function-local or not, a MDNode may reference a Function in which case it needs to be mapped to refer to the function in the new module, not the old one. Fixes PR7700. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109353 91177308-0d34-0410-b5e6-96231b3b80d8 commit 977d77cf6a38cddd80b325ab7ffe491b06a7e344 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jul 24 18:47:46 2010 +0000 add a new NullablePtr class which makes it more obvious in API that a pointer can be null, forcing clients to think about it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109348 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b60eeecd7b06a524ba1a44b8df9da9a6a60d252 Author: Peter Collingbourne <peter@pcc.me.uk> Date: Sat Jul 24 17:54:00 2010 +0000 Document BUILD_EXAMPLES makefile variable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109346 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9c18461d8bc514cbdf995e74c2d7b1f023d3fc5 Author: Duncan Sands <baldrick@free.fr> Date: Sat Jul 24 12:09:22 2010 +0000 Clarify that if a new value handle is added while dropping value handles hanging off a value, then the dropping code will intentionally not drop it too (since this is almost certainly a bug). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109337 91177308-0d34-0410-b5e6-96231b3b80d8 commit 069519d488a58554df7fa7eb2da7e22ee70f83e0 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jul 24 06:01:53 2010 +0000 Change ScheduleDAGInstrs::Defs and ::Uses to be variable-size vectors instead of fixed size arrays, so that increasing FirstVirtualRegister to 16K won't cause a compile time performance regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109330 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05eca7d5dd8bf07fa2ef1668935cc866a993c406 Author: Devang Patel <dpatel@apple.com> Date: Sat Jul 24 00:53:22 2010 +0000 Use current working directory when Dirname is empty. This only happens when absolute source file path is used on compiler command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109302 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ecfdf9eae15978fa9f5230a38f55e4347425c28 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jul 24 00:39:05 2010 +0000 Add an ILP scheduler. This is a register pressure aware scheduler that's appropriate for targets without detailed instruction iterineries. The scheduler schedules for increased instruction level parallelism in low register pressure situation; it schedules to reduce register pressure when the register pressure becomes high. On x86_64, this is a win for all tests in CFP2000. It also sped up 256.bzip2 by 16%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109300 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc6265756af81af68a669998009faab49c27150f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jul 24 00:06:39 2010 +0000 Support x86 "eiz" and "riz" pseudo index registers in the assembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b987a2e19f77f0d93910421b67477019f2f7dc2 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jul 23 23:50:35 2010 +0000 Use the appropriate register class for an i32 when adding ARM::LR to the function live in set. This will give us tGPR for Thumb1 and GPR otherwise, so the copy will be spillable. rdar://8224931 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109293 91177308-0d34-0410-b5e6-96231b3b80d8 commit de770d035a01c3ba54a8dbca32e93a7912e7ed72 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jul 23 23:48:02 2010 +0000 Remove too-strict assertion. We may want the vreg copy of the physical register to be of a different register class. For example, in Thumb1 if the live-in is a high register, we want the vreg to be a low register. rdar://8224931 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109291 91177308-0d34-0410-b5e6-96231b3b80d8 commit f56281dd619b16cb1bcd4b6948cd6480f6414b07 Author: Matt Fleming <matt@console-pimps.org> Date: Fri Jul 23 23:40:41 2010 +0000 Consolidate the ELF section directive tests into a single file as suggested by Chris Lattner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d3a5954f7765d73180bda7bc6240de2062b6209 Author: Owen Anderson <resistor@mac.com> Date: Fri Jul 23 23:27:43 2010 +0000 Fix use-after-free error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109288 91177308-0d34-0410-b5e6-96231b3b80d8 commit f542c4014b680d825fb56963e220b75fadf4cd71 Author: Devang Patel <dpatel@apple.com> Date: Fri Jul 23 23:04:41 2010 +0000 Revert r109262. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ce1cdd15e8d53fab9e6fffe0e454a9f11eff144 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jul 23 22:50:23 2010 +0000 Revert 109076. It is wrong and was causing regressions. Add some comments explaining why it was wrong. 8225024. Fix the real problem in 8213383: the code that splits very large blocks when no other place to put constants can be found was not considering the case that the block contained a Thumb tablejump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109282 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbaa5583fe20984bff7c76cdbd7a562f2b81c3fd Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jul 23 22:39:59 2010 +0000 - Allow target to specify when is register pressure "too high". In most cases, it's too late to start backing off aggressive latency scheduling when most of the registers are in use so the threshold should be a bit tighter. - Correctly handle live out's and extract_subreg etc. - Enable register pressure aware scheduling by default for hybrid scheduler. For ARM, this is almost always a win on # of instructions. It's runtime neutral for most of the tests. But for some kernels with high register pressure it can be a huge win. e.g. 464.h264ref reduced number of spills by 54 and sped up by 20%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109279 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5e5a00564714f3cfdffcf1a4a6f82ec5e9fb768 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 23 22:15:26 2010 +0000 Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109276 91177308-0d34-0410-b5e6-96231b3b80d8 commit afbdfd657e8bcdaf40f2f68401034425c99d96ea Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 23 21:34:51 2010 +0000 Eliminate getCanonicalInductionVariableIncrement's last user and eliminate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109270 91177308-0d34-0410-b5e6-96231b3b80d8 commit f57f0bce9dee4be9ab08b37270caf81731fa2694 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 23 21:25:26 2010 +0000 Move AVX encoding tests to different files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109269 91177308-0d34-0410-b5e6-96231b3b80d8 commit a69a89b6bdb5f04a6297cb6aad5143decce22d05 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 23 21:25:16 2010 +0000 Simplify this code; it can use the regular CFG utlities rather than the BlockTraits abstractions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109268 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e4d1d441f0f5667025bccf560a9d0de73d2da4d Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 23 21:20:52 2010 +0000 Micro-optimize SCEVComplexityCompare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109267 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6da150414db2da30c8ff480e0b0857d285139194 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 23 21:18:55 2010 +0000 Add a const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109266 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9724f609fd5780efdbb4ab83a15c3a9ca122602 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 23 21:08:12 2010 +0000 Use the proper type for shift counts. This fixes a bootstrap error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109265 91177308-0d34-0410-b5e6-96231b3b80d8 commit d876192a4680c3899893f529f37cd40ce6ef967c Author: Devang Patel <dpatel@apple.com> Date: Fri Jul 23 20:36:13 2010 +0000 IF directory name is empty then try to extract one using absolute file name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109262 91177308-0d34-0410-b5e6-96231b3b80d8 commit e85c97969277da1a62035743b285db49a3662d43 Author: Stuart Hastings <stuart@apple.com> Date: Fri Jul 23 20:15:49 2010 +0000 Test case to insure template function declaration refers to correct filename. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109258 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45f55a997f7ecce99248a7fc48b47850b968fa45 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 23 18:41:12 2010 +0000 Add AVX version of CLMUL instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109248 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca2eb16642973eb7f2a526dc7165bae3faa298b5 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 23 18:03:30 2010 +0000 DAGCombine (shl (anyext x, c)) to (anyext (shl x, c)) if the high bits are not demanded. This often allows the anyext to be folded away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109242 91177308-0d34-0410-b5e6-96231b3b80d8 commit fafc45524a8ce5c9781e7ec95f3aca6b5aa764b8 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 23 16:37:47 2010 +0000 Make SDNode::dump() print a newline at the end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 838707cefbbe8d05142d93ee76d2bd938b1ddc07 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 23 13:28:47 2010 +0000 fix constness warnings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109224 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0d19465382f63fc4750105b98aa2e6671c4c9a4 Author: Eric Christopher <echristo@apple.com> Date: Fri Jul 23 12:16:56 2010 +0000 Revert r109102 for now as it's causing JIT miscompilations. I'll try to track down why a bit later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109223 91177308-0d34-0410-b5e6-96231b3b80d8 commit 592d804d5284ac4b87ddf993e97453da4d4a4898 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 23 10:23:01 2010 +0000 do not (implicitly) dereference iterator many times, cache it instead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109222 91177308-0d34-0410-b5e6-96231b3b80d8 commit 527d7572a39a570bdeb02444d8ef0809fa722376 Author: Eric Christopher <echristo@apple.com> Date: Fri Jul 23 08:53:17 2010 +0000 Revert 109220. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109221 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7f9877ecdd35b71cf49982286db10a7cf02ed39 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 23 08:36:07 2010 +0000 Simplifying use_iterators by dereferencing is not a good idea. The codebase does not depend in this any more, and it may introduce hidden runtime cost. If you get compile errors, please dereference your iterator before passing to cast<> (and friends). Also: please consider caching the result of operator* and reusing that instead of dereferencing many times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109220 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f95dbfcb43e14e44723f27018d444193e693924 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jul 23 04:19:39 2010 +0000 StringRef'icate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109217 91177308-0d34-0410-b5e6-96231b3b80d8 commit f876bdc539b99e555dede55709563b68d4637115 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jul 23 04:19:34 2010 +0000 Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109216 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb6529ad5950cb1230f54a23aa6b90b1ddfbc188 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jul 23 03:42:55 2010 +0000 Get rid of exceptions in llvmc. llvmc can be now compiled with llvm-gcc on Windows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2309b4e80ab6d1b769c9c4182e33dd5e41d2fbb6 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jul 23 03:29:59 2010 +0000 give StringMap a new ctor which allows you to initialize it with an existing allocator. The interesting use case of this is that it allows "StringMap<whatever, BumpPtrAllocator&>" for when you want to allocate out of a preexisting bump pointer allocator owned by someone else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109213 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4d68a25dd823af25278ddf98b940930ed0f6b83 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jul 23 03:21:53 2010 +0000 modernize stringset interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b101836cfd0300beef29fb040d8b9cac14d56b6 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 23 01:22:45 2010 +0000 Declare CLMUL as a subtarget feature git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109207 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02df4fd1bd11667c274c2334e7418d31759df84b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 23 01:17:51 2010 +0000 Add x86 CLMUL (Carry-less multiplication) cpu feature git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ef67079abb1c3dcbac43cb95c8993d8965ac791 Author: Eric Christopher <echristo@apple.com> Date: Fri Jul 23 01:05:59 2010 +0000 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109205 91177308-0d34-0410-b5e6-96231b3b80d8 commit 746e22b4a579491452c563f0c8d11ee3cdd45b83 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 23 00:54:35 2010 +0000 Add complete assembler support for FMA3 instructions, with descriptions and encodings taken from the AVX manual git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38063be2ac7af8be3b60ba3e8ce936fac2fe952c Author: Dale Johannesen <dalej@apple.com> Date: Fri Jul 23 00:30:35 2010 +0000 The only supported calling convention for X86-64 uses SSE, so we can't return floating point values if this is disabled. Detect this error for clang. With SSE1 only, f64 is a problem; it can be done, but neither llvm-gcc nor clang has ever generated correct code for it. Since nobody noticed this I think it's OK to treat it as an error for now. This also handles SSE-sized vectors of floating point. 8207686, 8204109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109201 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb9897d2fbb7e11cde047a243570db94c7f35e33 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 23 00:14:54 2010 +0000 Fix some AVX instructions which didnt had HasAVX prefix. And also a problem with PINSRW, which was totally wrong because of a typo I introduced previously git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bde28344fcfb74a92ed2c4c97d88abdc8082105 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 22 23:33:00 2010 +0000 Add an explicit -sdk option to xcrun command. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109196 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc75acb80df9f50f47c665ffc59f38a56e3612af Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 22 21:51:30 2010 +0000 Warnings patrol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109174 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf9ee55fe341d6d947fefa62fa8a2f2ce81cc254 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 22 21:34:55 2010 +0000 missed a use of SizeRequired. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 911da5455f9d7710a4a69f34a0ce88da0470a9ec Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 22 21:27:00 2010 +0000 eliminate the TargetInstrInfo::GetInstSizeInBytes hook. ARM/PPC/MSP430-specific code (which are the only targets that implement the hook) can directly reference their target-specific instrinfo classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109171 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bc23b01eb653ee0904f5d8fc33a58af95bd2e80 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 22 21:20:39 2010 +0000 remove the dwarf sizing stuff which is now dead, it was "yet another" copy of the dwarf EH emission code that was copied, pasted and slightly hacked up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109169 91177308-0d34-0410-b5e6-96231b3b80d8 commit e92d2e2ebac3608b4d5d84764c778c2aeea6e2a5 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jul 22 21:18:49 2010 +0000 Add remaining AVX instructions (most of them dealing with GR64 destinations. This complete the assembler support for the general AVX ISA. But we still miss instructions from FMA3 and CLMUL specific feature flags, which are now the next step git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109168 91177308-0d34-0410-b5e6-96231b3b80d8 commit abb8b60e7fd522424d0d3119fc94d6ae5f05e6e0 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 22 21:17:55 2010 +0000 remove the JIT "NeedsExactSize" feature and supporting logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109167 91177308-0d34-0410-b5e6-96231b3b80d8 commit af2a5dfe3f0a1aaa97fc7b07f0243fb751919d75 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 22 21:14:33 2010 +0000 switch a private implementation of GetFunctionSizeInBytes. This is probably not the best way to implement "Force LR to be spilled if the Thumb function size is > 2048." do this, it should use the branch shortening infrastructure, but I'm just preserving functionality here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109165 91177308-0d34-0410-b5e6-96231b3b80d8 commit f82d35c50cb114748988a0ce56605c472bb1f1d9 Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 22 21:13:48 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1dd169a36a7991714482c3ed8be8d982ec3afb1e Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 22 21:13:40 2010 +0000 Try to work around the relative install-sh path problem. Patch from Eli. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109163 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4f3194698ee61d4b786c28bb43d009f396a06ca Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 22 21:10:04 2010 +0000 X86MCInstLower now depends on AsmPrinter being around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109154 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7487297f033738ba988c405acd2f6e42a946cbf3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 22 21:05:13 2010 +0000 instead of migrating it to the MC instruction encoder, just rip out the implementation of X86InstrInfo::GetInstSizeInBytes. The code being ripped out just implemented a copy and hacked up version of the (old) instruction encoder, and is buggy and terrible in other ways. Since "GetInstSizeInBytes" is really only there to support the JIT's "NeedsExactSize" hook (which noone is using), just rip out the code. I will rip out the NeedsExactSize hook next. This resolves rdar://7617809 - switch X86InstrInfo::GetInstSizeInBytes to use X86MCCodeEmitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109149 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06be569903fe6e8d85782cf77130d40aabf2df60 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 22 18:44:00 2010 +0000 Speculatively revert 109117 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 524d3d98adc267730adf518256c8b7a2bf99ef26 Author: Xerxes Ranby <xerxes@zafena.se> Date: Thu Jul 22 17:28:34 2010 +0000 ARMv4 JIT forgets to set the lr register when making a indirect function call. Fixes PR7608 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109125 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67322b3ba0cfa21975121a003acc09e855e5e62a Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 17:18:03 2010 +0000 keep in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109122 91177308-0d34-0410-b5e6-96231b3b80d8 commit 614d52b73c25f3edc2c9600a2aa1d4696d1957c5 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 22 16:35:00 2010 +0000 Map MDNode correctly. A non function local MDNode can have an operand which is cloned by MapValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109117 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68f92f3017c3a55c2532878750f8df7cdf856aaa Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 15:37:20 2010 +0000 add dyn_cast_or_null tests, exclude invalid dyn_cast test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 479fc4542ba003eb587d6912baaea4673888bdc7 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 15:28:30 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109110 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4357a9ef920f792fda798fa86fdbf62cbfba8e9b Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 15:24:48 2010 +0000 add dyn_cast tests and beef up others a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109109 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0b703be3d94e7d7a10fd18aaf244bf091db1ef7 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 14:13:14 2010 +0000 fit in 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109108 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26f063130ebc63f206e4498f49d9d69415d46cbf Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 13:49:27 2010 +0000 use cascading operator-> feature git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81180d9ff11e6eafd1be6d339722f6cd2d15d1d6 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 13:36:47 2010 +0000 mass elimination of reliance on automatic iterator dereferencing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109103 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5ece09ec5f3291b36fe62f3ee98bbb361cb9695 Author: Duncan Sands <baldrick@free.fr> Date: Thu Jul 22 13:10:14 2010 +0000 Increase the max physreg size. Patch by Pekka Jääskeläinen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109102 91177308-0d34-0410-b5e6-96231b3b80d8 commit d146f91ddbb5d26c1f35ef29a07fffd7da352ffd Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 13:07:39 2010 +0000 simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109101 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2a3192eb7ba96d4bd50f9fdc7129a0e5f628ad0 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 13:04:32 2010 +0000 do not access arguments via low-level interface, do not multiply dereference use_iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 637ef7ca92082980f088126c7bc1ddd06089434b Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 11:48:35 2010 +0000 pass dereferenced iterator to dyn_cast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109099 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dac279538af222455e8c51e0d4942619c67cba1 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 11:43:44 2010 +0000 pass dereferenced iterator to dyn_cast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109098 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fa3689414dc88e984fc81337fb388508bbd7eba Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 11:12:32 2010 +0000 use -> instead of (*). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109094 91177308-0d34-0410-b5e6-96231b3b80d8 commit adbe1c8300219796ecfb6ad656c9f44ec61ddae6 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 11:07:46 2010 +0000 cache dereferenced iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70c54e7bdc1293b412cd34bb7acf7c59edc04a6c Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 22 10:37:47 2010 +0000 undo 80 column trespassing I caused git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109092 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbbe6aee42abe1c4fef1af8c1bbc425ff4fe1736 Author: Chandler Carruth <chandlerc@gmail.com> Date: Thu Jul 22 08:02:25 2010 +0000 Mark an assert-only variable as used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109091 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa1e5bb2cb4dc07cb1be10a0c6e15baf5f92a94d Author: Chandler Carruth <chandlerc@gmail.com> Date: Thu Jul 22 08:00:52 2010 +0000 Fix the generated file name for CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109090 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3261030111fc8a9c865965d7627826801f3dcaef Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Thu Jul 22 07:46:31 2010 +0000 Add new RegionInfo pass. The RegionInfo pass detects single entry single exit regions in a function, where a region is defined as any subgraph that is connected to the remaining graph at only two spots. Furthermore an hierarchical region tree is built. Use it by calling "opt -regions analyze" or "opt -view-regions". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109089 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69e5e88609013e2801392d4ed0e8284742b56b5a Author: Chandler Carruth <chandlerc@gmail.com> Date: Thu Jul 22 06:27:45 2010 +0000 Attempt to fix linking issues with CMake. Please review other CMake users, especially on other platforms. Is there a better way to fix this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109084 91177308-0d34-0410-b5e6-96231b3b80d8 commit c651e8bcfc8c66f047a877c182c40262bd19d9b7 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jul 22 06:24:48 2010 +0000 Re-apply r109079 with fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109083 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3e41ed030fd9d73e23a7b5aa0e66d24042f15ca Author: Owen Anderson <resistor@mac.com> Date: Thu Jul 22 06:01:28 2010 +0000 Revert r109079, which broke a lot of CodeGen tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109082 91177308-0d34-0410-b5e6-96231b3b80d8 commit a095edc4c5fe0b92f2e2123ced0a695aaebacef9 Author: Owen Anderson <resistor@mac.com> Date: Thu Jul 22 06:00:01 2010 +0000 Update CMake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85cd83965245acee112693d9d6fe4d5d518887fa Author: Reid Kleckner <reid@kleckner.net> Date: Thu Jul 22 05:58:53 2010 +0000 Initial modifications to MCAssembler and TargetMachine for the MCJIT. Patch by Olivier Meurant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109080 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22ad501af39b782911f4438bc328175d80cc8aa0 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jul 22 05:18:41 2010 +0000 Initialize RegLimit only when register pressure is being tracked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109079 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1af42baf5450222ea63743036f07c4f762feaf9 Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 22 02:48:34 2010 +0000 Custom lower the memory barrier instructions and add support for lowering without sse2. Add a couple of new testcases. Fixes a few libgomp tests and latent bugs. Remove a few todos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109078 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07350158e6dbd7c1476d8a3c65f8c6de252ba80e Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jul 22 02:09:47 2010 +0000 Fix constant island pass's handling of tBR_JTr. The offset of the instruction does not have to be 4-byte aligned. Rather, it's the offset + 2 that must be aligned since the instruction expands into: mov pc, r1 .align 2 LJTI0_0_0: .long LBB0_14 This fixes rdar://8213383. No test case since it's not possible to come up with a suitable small one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109076 91177308-0d34-0410-b5e6-96231b3b80d8 commit 588f7560b2a69fd16831b16ba866c222d637058d Author: Lang Hames <lhames@gmail.com> Date: Thu Jul 22 02:05:10 2010 +0000 If 'other' was empty 'overlapsFrom(other, other.begin());' will segfault. This avoids that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109075 91177308-0d34-0410-b5e6-96231b3b80d8 commit 213947c11516bb17757e330dd473787d6b5be419 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 22 00:40:19 2010 +0000 lit: Add some example tests for previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109071 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b8c35df8d1fefeff945dc39ea670e83874af226 Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 22 00:26:08 2010 +0000 80-columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109070 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0284ad1a00b58b9dfbfc7cb5a455ac9faa6baae Author: Nate Begeman <natebegeman@mac.com> Date: Thu Jul 22 00:09:39 2010 +0000 Make fast isel win64-aware w.r.t. call-clobbered regs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109069 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8d3c3777a3fd98d2cb6ac5f8354eeb0109229dd Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jul 21 23:53:58 2010 +0000 More register pressure aware scheduling work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109064 91177308-0d34-0410-b5e6-96231b3b80d8 commit 047d189e1279ae330a70b95656ea11652c835b41 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 21 23:53:50 2010 +0000 Add more 256-bit forms for a bunch of regular AVX instructions Add 64-bit (GR64) versions of some instructions (which are not described in their SSE forms, but are described in AVX) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109063 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50cc719f42cba9f0e2e7f7da1fb315bdcc5a3c84 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jul 21 23:39:57 2010 +0000 lit: Add support for 'REQUIRES: feature-one, feature-two, ...' in the integrated-test formats (sh and tcl style). The particular features which get recognized are up to the test suite itself to define. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109062 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca03e44272be7934c811096ea70c8decb0e16e59 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 21 23:38:33 2010 +0000 Make NamedMDNode not be a subclass of Value, and simplify the interface for creating and populating NamedMDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109061 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd14ceb8ee66705bf3e33dc24fc4678d3a2f1d34 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jul 21 23:19:57 2010 +0000 Fixes win64. It was broken by a previous patch where I missed the !isWin64 and then forced every register to be a vr128 on win64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 523338ee20d5ad58eef5d695d23d34cc7881b905 Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 21 23:07:00 2010 +0000 Add INSTANTIATE_AG_PASS, which combines RegisterPass<> with RegisterAnalysisGroup<> for pass registration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39e0bf89358586a4529a844e704115b8d37c2eb8 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 21 23:03:52 2010 +0000 For ARM/Darwin, add a dwarf entry indicating whether a function is arm or thumb rdar://8202967 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 103cbe6e3cbda70e0c9a8efa81b48d015d6f49f0 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 21 23:03:35 2010 +0000 add some rough support for making mcinst lowering work without an asmprinter or mangler around. This is option #B for killing off X86InstrInfo::GetInstSizeInBytes. Option #A (killing "needsexactsize") was sent for consideration to llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109056 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4dde30b4b989561af01fac9dca3f08ee9be187c Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 21 22:58:07 2010 +0000 First stab at updating the documentation for INITIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109055 91177308-0d34-0410-b5e6-96231b3b80d8 commit 782e3c046ec1235228606741c331f26082418fcd Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 21 22:26:11 2010 +0000 Baby steps towards ARM fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109047 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5702c14b23baf469fdd6a5b33318f836169d864 Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 21 22:09:45 2010 +0000 Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4b99c62f7a2107c4953edbe0c5fe0e1b9eabf21 Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 21 22:07:19 2010 +0000 Hack around extracts that aren't easy to process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f7f59223f3bc3bde13e622547ac19a0afa45cbb Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 21 22:04:53 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109042 91177308-0d34-0410-b5e6-96231b3b80d8 commit b59980ecf8dd810e14588f00b69bb8db976ff132 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 21 21:37:59 2010 +0000 Add missing AVX convert instructions. Those instructions are not described in their SSE forms (although they exist), but add the AVX forms anyway, so the assembler can benefit from it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109039 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd04380c141bdb356867e8d02e4abf29619e57d9 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 21 21:36:25 2010 +0000 tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109038 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcb39e6998f299716dc68d8ce4b50e5b1ec47d6c Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 21 21:21:52 2010 +0000 80 column and trailing whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c58d83090795df60dd7eadd49fbe03208b99d4b Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 21 21:18:37 2010 +0000 Add some debug output to help diagnose PR7689. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109036 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6d43581ae92f667ff5db7e4fad7107f9928efa2 Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jul 21 20:49:52 2010 +0000 Fix a couple issues with Win64 ABI 1) all registers were spilled as xmm, regardless of actual size 2) win64 abi doesn't do the varargs-size-in-%al thing Still to look into: xmm6-15 are marked as clobbered by call instructions on win64 even though they aren't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109035 91177308-0d34-0410-b5e6-96231b3b80d8 commit db3bacd17f0cb2cedc2d2e2e699402bec3f1d0b8 Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 21 20:46:41 2010 +0000 Add the INITIALIZE_PASS macro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109034 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc07109716afa4fbf6be60506d2e50c72ef16a60 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 21 20:38:42 2010 +0000 Avoid AVX instructions to be selected instead of its SSE form git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 662c51f9ea95417ab84e9442580b255eace94d78 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 21 20:25:43 2010 +0000 NamedMDNode is never an operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c0d8416bd6d4f0d43f050bb05dfd2f8d3470690 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 21 18:54:18 2010 +0000 Disallow null as a named metadata operand. Make MDNode::destroy private. Fix the one thing that used MDNode::destroy, outside of MDNode itself. One should never delete or destroy an MDNode explicitly. MDNodes implicitly go away when there are no references to them (implementation details aside). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109028 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0303dcbabcec20e8a16c434df066debf465f54d0 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jul 21 18:48:59 2010 +0000 Use System/DataTypes.h instead of stdint.h, which isn't portable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109026 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7aed40343ff7c4cc812608f12feb10bd8be03ca9 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 21 18:01:42 2010 +0000 Use TrackingVH instead of WeakVH for NamedMDNode's operands, since nodes referenced by NamedMDNodes shouldn't be deleted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ce2f8f925251de6a4c8426b064998d6cef24c83 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 21 17:53:53 2010 +0000 Tidy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27ca4ca83b539bacbe6e49eae787b91c41daba5d Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 21 17:52:45 2010 +0000 Move the smarts of AnalysisGroup registration into PassRegistry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109019 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8896f2b55f287ab40f0938d141c9332b41409e9 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 21 17:21:27 2010 +0000 Delete an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109017 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84d88fdbeab42e8ff2c7bccff1f7ee90c9e4c9bd Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 21 15:57:40 2010 +0000 strip out the 2.7 release notes, this really is the 2.8 release notes now. Add a few items like the fpstackifier improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109013 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9bfd529548720bf9e3f392419c7e7a809e1a84be Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jul 21 11:38:30 2010 +0000 Fix calling convention on ARM if vfp2+ is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109009 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffeb1bcb20fd63b83d395750c64c1d084b7e59ff Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 21 10:22:41 2010 +0000 appease Validator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109007 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42e138a605087ef7bcb9344e48a4d43dff7bd468 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 21 10:20:08 2010 +0000 add info on operand rotation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109006 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4e0c592949e73ab3b94763549a683593b6688d7 Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 21 09:23:56 2010 +0000 Pulling out previous patch, must've run the tests in the wrong directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109005 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4588c02c57980a11843ce19dd8937f928a5a7adc Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 21 09:05:23 2010 +0000 Lower MEMBARRIER on x86 and support processors without SSE2. Fixes a pile of libgomp failures in the llvm-gcc testsuite due to the libcall not existing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109004 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3b2a5024c3e1d4068bd3337685bccca2bdc91c1 Author: Lang Hames <lhames@gmail.com> Date: Wed Jul 21 09:02:06 2010 +0000 Changed OStream templates to functions on raw_ostream, removed the unused "renderWarnings" function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109003 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ba27a123f9fa97e7081ff19616c041298450a0a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 21 08:56:24 2010 +0000 Add AVX only vzeroall and vzeroupper instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109002 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f90adede558200138c52ec742d1ad446974fbfb Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 21 08:25:55 2010 +0000 restore aesthetics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109001 91177308-0d34-0410-b5e6-96231b3b80d8 commit e83801b80bdf6c77bdf60ab5e76fbf7f213ec5ee Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jul 21 06:09:07 2010 +0000 Teach bottom up pre-ra scheduler to track register pressure. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108991 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5affdc70cb8d25d5da5628d5d7906f5a0b9b7e6b Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 21 04:54:06 2010 +0000 Turn this test on again after the llvm-gcc change in r108986. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108987 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5887c7fb05c6ab0e90c586948d95e0bca9cd1040 Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 21 04:51:24 2010 +0000 Update this to use a "valid" alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98eaef37680b05d418615084c32ede3ac379e1af Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 21 03:07:42 2010 +0000 Add new AVX vpermilps, vpermilpd and vperm2f128 instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108984 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bd9de476d2a3a2affa3e766d6ce3158ecc3294a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 21 02:46:58 2010 +0000 Add new AVX vmaskmov instructions, and also fix the VEX encoding bits to support it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108983 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d0fca21d54816d74f07686493760dc8d00da228 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 23:55:01 2010 +0000 Give MDNode printing has access to the current Module in more cases. This will be needed when function-local metadata can appear in places that aren't intrinsic function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6897d2429845740b4dea04990b42f7d6c42872c8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 20 23:50:15 2010 +0000 Change the createSpiller interface to take a MachineFunctionPass argument. The spillers can pluck the analyses they need from the pass reference. Switch some never-null pointers to references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108969 91177308-0d34-0410-b5e6-96231b3b80d8 commit 644992ce1caee2377ce9e66186ee4013aeb8ea66 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 23:49:44 2010 +0000 Make this code a little more readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108968 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4df6a30c0f2594250f1d92b6bdd6182a873cb27f Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 23:49:05 2010 +0000 Use DebugLocs instead of MDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108967 91177308-0d34-0410-b5e6-96231b3b80d8 commit cde006888e76de7b8e2f6c9589e9792b4247f1f4 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 23:41:56 2010 +0000 Move the handling of PassRegistrationListener's to PassRegistry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108966 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64395bad1da0bd45239022ad1a221708e0b1a678 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 20 23:19:02 2010 +0000 Add new AVX vextractf128 instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108964 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cff3e511b0891302cba6f3970649a2986fd6c4c Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 23:10:36 2010 +0000 Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d2d3c23977f29e30ac20674ca32bbb7c21cfbae Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 23:09:34 2010 +0000 Don't look up the "dbg" metadata kind by name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108961 91177308-0d34-0410-b5e6-96231b3b80d8 commit c63481335b4a29ab3ceede8a84b0e6e58421eac6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 22:45:33 2010 +0000 make asmprinter optional, even though passing in null will cause things to explode right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108955 91177308-0d34-0410-b5e6-96231b3b80d8 commit a082460926afdda469a593f354de647a1eb0f823 Author: Grey Clayton <gclayton@apple.com> Date: Tue Jul 20 22:36:00 2010 +0000 Added support to MachO.h for many defines and structures that are needed to Parse mach-o files. All defines have been renamed to not conflict with #defines in mach header files, all structures were left named the same but are in the llvm::MachO namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108953 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdaedc6a3ce9c163c3d754ac74c3481e5320559c Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 22:35:40 2010 +0000 continue pushing dependencies around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ebb32b7063630e6fd129e12afa99da8ac543c64 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 22:30:53 2010 +0000 reduce X86MCInstLower dependencies on asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108950 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63c4f28ffde28a7c5e00d6e11ddcc8f8b27f7620 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 22:26:07 2010 +0000 pass around MF, not MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108949 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bd59a97a012c309f9a43727dbbdd4a144f2a4bb Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 22:25:04 2010 +0000 Rename removeAllMetadata to clearMetadataHashEntries and simplify it to just do the things that need to be done when an instruction is deleted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108948 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24ac9f352a4d73428d760cebc7e5d8009da2595e Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 22:23:57 2010 +0000 cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108947 91177308-0d34-0410-b5e6-96231b3b80d8 commit d151d6803bfccbe3404cd58dab45f7212f48ba67 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 22:18:19 2010 +0000 move two asmprinter methods into the asmprinter .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108945 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ebe87cfe59a106644f5654dc6af6ba34436568f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 20 21:46:58 2010 +0000 Implement loop splitting analysis. Determine which loop exit blocks need a 'pre-exit' block inserted. Recognize when this would be impossible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108941 91177308-0d34-0410-b5e6-96231b3b80d8 commit 525d0c9b2b8a570915fdc570ad8507084d4000c9 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 21:45:17 2010 +0000 Remove an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108940 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39a87e257e75b37c951f20602b3b8233b8d24578 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 21:42:28 2010 +0000 Add support for remapping metadata kind IDs when reading in a bitcode file, so that two bitcode files where the same metadata kind name happens to have been assigned a different ID can still be linked together. Eliminate the restriction that metadata kind IDs can't be 0. Change MD_dbg from 1 to 0, because we can now, and because it's less mysterious that way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108939 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2cc0d166f899e1fc868ea7510ee60bc9ffddc38 Author: Matt Fleming <matt@console-pimps.org> Date: Tue Jul 20 21:37:30 2010 +0000 Include some tests for the recently committed ELF section directive handlers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108938 91177308-0d34-0410-b5e6-96231b3b80d8 commit 522890cec4c5db79de56948617a515b55dd27927 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jul 20 21:29:12 2010 +0000 Fix test for switch statements and increase threshold a bit per experimentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108935 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbce67cd5e1787abde25f1a20b321d66ca8afec0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 21:26:27 2010 +0000 there is now no reason to link in TARGETS_TO_BUILD since we list arm explicitly. X86 and ARM are the only two targets that support disassembly, so our explicit list is enough. These other targets weren't getting pulled in anyway though, since there were no references to their symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f32468026abc1254294ad029f9ec1d35454857b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 21:23:57 2010 +0000 fix edis to only try to link in the x86 parts if the x86 backend is enabled. Add direct ARM support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3273dff1c2f407758192800556938a094a61ba5d Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 21:22:24 2010 +0000 Move more functionality from Pass.cpp to PassRegistry.cpp. This global will go away eventually, but for now we still need it around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108932 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f87c10dc081eb36060ea6439748d6710c0cbe91 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Tue Jul 20 21:21:27 2010 +0000 Fix edis makefile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108931 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13d6cbcf676f00533016011c5500e977757cdad1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 21:17:29 2010 +0000 prune #includes a little. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108929 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3f6c99865b9a204733d79c38ba2e34f9b5e0d75 Author: Matt Fleming <matt@console-pimps.org> Date: Tue Jul 20 21:12:46 2010 +0000 Add some more handlers for ELF section directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108928 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9858d8123f3209431f9578ba598420d2202dde70 Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 20 21:05:58 2010 +0000 Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108926 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc2e23056c94599bf679239947142f256bbe8a02 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 20:55:57 2010 +0000 fix DISABLE_EDIS git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108925 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04c445093d2a7201a657b6fed2c752bef8c976d3 Author: Matt Fleming <matt@console-pimps.org> Date: Tue Jul 20 20:52:18 2010 +0000 Add the rest of the SHT_* values as defined in the System V ABI ELF specification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108924 91177308-0d34-0410-b5e6-96231b3b80d8 commit a82fdd4577088147c240d9b0a8a956b0cc0a0306 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jul 20 20:44:02 2010 +0000 Add support for a new Apple-style build target, EmbeddedSim, that builds llvmCore for the iOS Simulator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108922 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca16f1305993cd49db0ec3083ff134fdca4e0077 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 20:33:59 2010 +0000 this logic is handled by tools/makefile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3124157d486053cbc312bf8a10767e31f872085a Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 20 20:32:47 2010 +0000 Testcase for llvm-gcc commit r108910. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108918 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fd023d14136fe63f689b613355f652200146c32 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 20:18:21 2010 +0000 Remove setDbgMetadata and getDbgMetadata; their users have been replaced with setDebugLoc and getDebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108914 91177308-0d34-0410-b5e6-96231b3b80d8 commit b986b8fd1caffe3e723bc5fa60c0be5347899599 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 20:16:11 2010 +0000 Let's get those buildbots green: #include is needed in the header, not just the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108912 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b55c5f7cded19f14fb701f8191e788b620583e2 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 20:09:07 2010 +0000 Use getDebugLoc and setDebugLoc instead of getDbgMetadata and setDbgMetadata, avoiding MDNode overhead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108909 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6894173022251273f9e5a81d4f4426320a2dd6b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 20:06:19 2010 +0000 apparently also missing an include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4efdb80a06372bd53103d465bfd40b402d9b19a9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 19:54:01 2010 +0000 this is in System git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108895 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae32bf595b0d91d56b78d36c9686647d4ee3b5e1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 19:45:21 2010 +0000 remove option from tablegen for building static header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108893 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d1012d619aed7547f4465098c2b1e67263aba3e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 20 19:44:51 2010 +0000 Add new AVX instruction vinsertf128 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108892 91177308-0d34-0410-b5e6-96231b3b80d8 commit c068c186829ef658e72527706576246fe00efcc0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 19:43:19 2010 +0000 turn this into a normal header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108891 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24b4303dea8c932207f52d1d5aad267e1ebae8cf Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 19:40:51 2010 +0000 hopefully heal the linux builders git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108890 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdc05fada2705cabcea39ffecc0685c6953820e7 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 20 19:35:55 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108889 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee3957daa044243b85f0e6c162921a5545ee24ae Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 19:23:55 2010 +0000 I just fail with SVN today. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108888 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0ec0adf8ec1dd9f9e1588cbafe44256d7622c64 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:59:58 2010 +0000 there is no reason to dynamically generate a static header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108887 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3910c1fb1860a9300a1e3a64f96552bf4320acb7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:53:27 2010 +0000 drop edinfo.inc into the objdir for src!=objdir builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108886 91177308-0d34-0410-b5e6-96231b3b80d8 commit c021c0c2d79257cbc7423cd978efac854fb22356 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 18:53:25 2010 +0000 Oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108885 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67711ed9315c0ec4efe8e000d2ac94b3d34b64a3 Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 20 18:46:43 2010 +0000 Update header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108883 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18b68b564e3acdb28a7fcfe96e556a4ed2653ff4 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 18:39:06 2010 +0000 Convert the internal PassRegistrar class into a new, external PassRegistry class. No intended functionality change at this point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108877 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b0f6576de3b4e8269b5abd8381e79583535c3dd Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:35:23 2010 +0000 edis needs to link in mcdisassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108876 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8451f628e9cdb7e5047a20e9196714d069d728b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:33:29 2010 +0000 update cmake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108875 91177308-0d34-0410-b5e6-96231b3b80d8 commit 457d2b900f3b83bce50249dca29e5c3dbfcc9887 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:33:21 2010 +0000 hopefully teach cmake to build the .inc file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d6f01b45dc9048d842825f925ea5f26b64fd3a5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:31:54 2010 +0000 edinfo doesn't need to be built here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108873 91177308-0d34-0410-b5e6-96231b3b80d8 commit 073aecc008893f9841a560b20411da13d136b352 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:30:37 2010 +0000 cmake too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108872 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc61e86a395392e5e837f340ac466d61ef90cc86 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:29:50 2010 +0000 forgot to add a file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108870 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bc3ea0d7cfe0954da552f6414c9d70668dbf10b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 20 18:25:19 2010 +0000 start straightening out libedis's dependencies and make it fit better in the llvm world. Among other things, this changes: 1. The guts of libedis are now moved into lib/MC/MCDisassembler 2. llvm-mc now depends on lib/MC/MCDisassembler, not tools/edis, so edis and mc don't have to be built in series. 3. lib/MC/MCDisassembler no longer depends on the C api, the C API depends on it. 4. Various code cleanup changes. There is still a lot to be done to make edis fit with the llvm design, but this is an incremental step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41b652162763a07e482d7613fd75b164ce97cc3d Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 20 17:20:25 2010 +0000 remove testing cruft, this can be found in unittests/Support/Casting.cpp now git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108868 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a3f2892387c4b2ce9043949a83eb9d4a7983784 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 17:18:52 2010 +0000 Remember that the induction variable is always a PHINode and use getIncomingValueForBlock instead of LoopInfo::getCanonicalInductionVariableIncrement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108865 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72bc6e2e76a3d89d60cdbe2041ff5786b323bfca Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 20 17:06:28 2010 +0000 migrate essentially everything from under #ifdef DEBUG_CAST_OPERATORS into this file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108864 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a63ffa163bd304814143a16c5beeffead6817a5 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 17:06:20 2010 +0000 Fix SCEV denormalization of expressions where the exit value from one loop is involved in the increment of an addrec for another loop. This fixes rdar://8168938. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108863 91177308-0d34-0410-b5e6-96231b3b80d8 commit 002aa027f72fbf727c92fafe1514089ee53c9c56 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 16:55:05 2010 +0000 Pull out r108755. After offline discussion with Chris, we're going to go a different direction with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108856 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9cc8f116b6fc367f39fd20ecf1ed2f137db064a Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 16:53:00 2010 +0000 Add a fast path for x - x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108855 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c9dae543e24d2f07c62cd92afce4c7e860a689d Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 20 16:51:18 2010 +0000 extend to cast<> and cast_or_null<> tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48651d0d7f1c28c455d074be0acf37a0a619b37f Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 16:46:58 2010 +0000 Simplify this code; LoopInfo::getCanonicalInductionVariable will only find integer induction variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108853 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6068fa26add42bb2455960d94e065f5a3897cde6 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 16:44:52 2010 +0000 Make getOrInsertCanonicalInductionVariable guarantee that its result is a PHINode*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e516821d4161dd18ba43f7af8664a1295d4cff6 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 20 16:38:12 2010 +0000 isa<> tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 962b9e58db84937d99d20c6347c361f30d1add5c Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 16:34:50 2010 +0000 Change an argument from an Instruction* to a Value*, which is all that is needed here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56d2591ac21c1316b24fa4627053ed6a2064a021 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 20 16:32:20 2010 +0000 initial checkin for unittest to exercise Support/Casting.h this is still minimal on purpose, but I plan to migrate the ugly hack under #ifdef DEBUG_CAST_OPERATORS into this file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108849 91177308-0d34-0410-b5e6-96231b3b80d8 commit a577ca113f677d7993314b2ec9f40692fce159df Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 16:32:11 2010 +0000 Minor code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108848 91177308-0d34-0410-b5e6-96231b3b80d8 commit a104d55f55a5cdfd87d973e575ee574fb5f1e803 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jul 20 16:16:48 2010 +0000 update tests for smarter BIC usage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c21e3f3759ef2ab1a8ca6c4c8be0ecc0c2f8c93 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 20 16:12:37 2010 +0000 Appease the colonials. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108845 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea77516c5303b3d792335bae07f7bb5e1b017c08 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jul 20 16:07:04 2010 +0000 Using BIC for immediates needs an extra bump for its complexity to get instruction selection to prefer it when possible. rdar://7903972 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108844 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebabb8c652ab3d911e0ce5dc7e49cf5919565782 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jul 20 15:52:32 2010 +0000 The same problem was being tracked in PR7652. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108843 91177308-0d34-0410-b5e6-96231b3b80d8 commit 089e746f9d27ba22bace1bb3061f0505eb7cfb89 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 20 15:41:07 2010 +0000 Beginning SplitKit - utility classes for live range splitting. This is a work in progress. So far we have some basic loop analysis to help determine where it is useful to split a live range around a loop. The actual loop splitting code from Splitter.cpp is also going to move in here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108842 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46d9aa2db1b0c950a1d8b30ac87faedfd7dc31b8 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jul 20 14:51:32 2010 +0000 Removed un-used code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c65cda8b3d74104254081ee1e8d2b7a3143e1d1 Author: Lang Hames <lhames@gmail.com> Date: Tue Jul 20 14:35:55 2010 +0000 Updated css classes for the pressure table legend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108839 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ce02092dbe5b0946be96eb3f92be36ae44ca255 Author: Lang Hames <lhames@gmail.com> Date: Tue Jul 20 10:29:46 2010 +0000 Oops - I tables render poorly in Chrome without this explicit height specification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 339bf7ed2f380aa1772a0c98bca42b8da06c09cc Author: Lang Hames <lhames@gmail.com> Date: Tue Jul 20 10:18:54 2010 +0000 Use run-length encoding to represent identical adjacent cells in the pressure and interval table. Reduces output HTML file sizes by ~80% in my test cases. Also fix access of private member type by << operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108823 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ac3e13bf11a9f5d366448abf29bbc969300ce2e Author: Lang Hames <lhames@gmail.com> Date: Tue Jul 20 09:13:29 2010 +0000 Added support for turning HTML indentation on and off (indentation off by default). Reduces output file size ~20% on my test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1da935a91329616136655e34b5cfccbfb1d9bbd3 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 20 08:44:20 2010 +0000 Enable LLVM to compile on Mips. Fix PR5828 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108821 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d0a1ebb6f6b2538ed69640e4028e656b83b412b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 20 08:37:04 2010 +0000 Fix PR7174, a couple o Mips fixes: - Fix a typo for PIC check during jmp table lowering - Also fix the "first jump table basic block is not considered only reachable by fall through" problem, use this ad-hoc solution until I come up with something better. Patch by stetorvs@gmail.com git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108820 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a596fc633f3c0c1671d1583189e4ba6b935c180 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 08:26:15 2010 +0000 Speculatively revert r108813, in an attempt to get the self-host buildbots working again. I don't see why this patch would cause them to fail the way they are, but none of the other intervening patches seem likely either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108818 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1283aaae2c7b1441013366680b1e4927c8ca06e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 20 07:58:51 2010 +0000 Fix Mips PR7473. Patch by stetorvs@gmail.com git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108816 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c6906f57d812ddce5c02999f1ea5092cb5afd8e Author: Lang Hames <lhames@gmail.com> Date: Tue Jul 20 07:41:44 2010 +0000 Switched to rendering after allocation (but before rewriting) in PBQP. Updated renderer to use allocation information from VirtRegMap (if available) to render spilled intervals differently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108815 91177308-0d34-0410-b5e6-96231b3b80d8 commit cca02114eb9f5429a15a26635b7f192859056c52 Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 20 06:56:13 2010 +0000 Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108814 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d44999d3ff511312f45ef9281de9d8fcade1724 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 06:52:42 2010 +0000 Reapply r108794, a fix for the failing test from last time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108813 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d5c6b103f0e2b2ab5ae2ba2b4667f370f455b4e Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 20 06:52:21 2010 +0000 Constify some arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22e6c723147df09d53b252bab01cea504565e142 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jul 20 03:06:07 2010 +0000 Revert r108794, "Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo).", it is breaking teh everything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108805 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3775dd421133e21fc3e479393ba91686e5f4cd95 Author: Owen Anderson <resistor@mac.com> Date: Tue Jul 20 01:19:58 2010 +0000 Separate PassInfo into two classes: a constructor-free superclass (StaticPassInfo) and a constructor-ful subclass (PassInfo). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108794 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a76b253e5ba6c10bb7478ff795fe99fa2b54892 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 20 00:57:18 2010 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108793 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1feef66f45e388329778eb8ba5cee61c12387e6f Author: Dale Johannesen <dalej@apple.com> Date: Tue Jul 20 00:50:13 2010 +0000 Don't hoist things out of a large switch inside a loop, for the reasons in the comments. This is a major win on 253.perlbmk on ARM Darwin. I expect it to be a good heuristic in general, but it's possible some things will regress; I'll be watching. 7940152. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1158137643fd8a1a90ffd8a0bcb3b0e83e44438a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 20 00:11:50 2010 +0000 x86_32 tests for vbroadcast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108789 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2f6b829d12f17f2cc04f379640001451536a2d5 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 20 00:11:13 2010 +0000 Add AVX vbroadcast new instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28d7d748ff38a01dda6ff90e69bee7c6f55a9d8e Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jul 20 00:08:13 2010 +0000 Update CMake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7601554f52b4adff0bc952d897954e2c9f7d3b22 Author: Stuart Hastings <stuart@apple.com> Date: Mon Jul 19 23:56:30 2010 +0000 Correct line info for declarations/definitions. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a7f054fe689e9fd6a1afa3f7423aed39738897f Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 19 23:44:46 2010 +0000 sink the arm implementations of ASmPrinter and MCInstLower out of the AsmPrinter directory into libarm. Now the ARM InstPrinters depend jsut on the MC stuff, not on vmcore or codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108783 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d349a2bc66542155e7839c10237a80c638a4ef4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 19 23:41:57 2010 +0000 fix a layering problem by moving the x86 implementation of AsmPrinter and InstLowering into libx86 and out of the asmprinter subdirectory. Now X86/AsmPrinter just depends on MC stuff, not all of codegen and LLVM IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108782 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c0fe1c766f90d484aee8f5cf9214c7f40403268 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jul 19 23:32:44 2010 +0000 Add 256-bit vaddsub, vhadd, vhsub, vblend and vdpp instructions! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108769 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c93efafa95819a9591460455fce061449f04f03 Author: Devang Patel <dpatel@apple.com> Date: Mon Jul 19 23:25:39 2010 +0000 Fix memory leak reported by valgrind. Do not visit operands of old instruction. Visit all operands of new instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108767 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ebb6c660e90c925f25bf81b3cda582d1aadfce5 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 19 22:48:56 2010 +0000 After a custom inserter, in a block which has constant instructions, update the current basic block in addition to the current insert position, so that they remain consistent. This fixes rdar://8204072. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108765 91177308-0d34-0410-b5e6-96231b3b80d8 commit c85d71e32e42376ff9683f10c92e746ba719693b Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jul 19 22:15:08 2010 +0000 ARM has to provide its own TargetLowering::findRepresentativeClass because its scalar floating point registers alias its vector registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108761 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fa385aa8126b8a1241b6e0d63e85ebd83cfeb00 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jul 19 22:04:28 2010 +0000 long past time I added myself to this, I suppose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108759 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f733c451e04e0a7af879b5d314d5c20b8fe2701 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 21:44:48 2010 +0000 Change the implemented interfaces list on PassInfo from a std::vector to a manually implemented linked list. This is a little slower and involves more malloc'ing, but these lists are typically short, and it allows PassInfo to be entirely constant initializable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108755 91177308-0d34-0410-b5e6-96231b3b80d8 commit a486d6738df15c1a2421bb98b9e8f9cd17897491 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jul 19 21:33:07 2010 +0000 Save a copy of the unstripped libLTO.dylib in $SYM_DIR. Clean up the code for dealing with libLTO.dylib to put it all in one place and to allow use of DISABLE_USR_LINKS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108753 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9e20a0ef41c4ba29e4f2571a7dac6eb5196cdb1 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 20:44:20 2010 +0000 MC/Mach-O: Silently ignore .file directives instead of error'ing out on them. They aren't important enough to abort the entire assembly, and failing early makes testing more annoying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f0ae19e0e37f36eb30cd210582b1afae8261c56 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 20:44:16 2010 +0000 X86: Mark JMP{32,64}[mr] as requires 32-bit/64-bit mode. They are the same instruction, we only want to allow the one for the current subtarget. - This also fixes suffix matching for jmp instructions, because it eliminates the ambiguity between 'jmpl' and 'jmpq'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108746 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8ac61cbf592c4af4066c35c76f4b6df1e3c59c2 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 19:42:01 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 291da1382d2f219cfe921a4da42e6497cbfef432 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 19:41:52 2010 +0000 Remove extraneous character. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4de9301f151c9dc9dfbc410e73d1b54539a35ce3 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 19:24:55 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29d9128d68009fb104adf2ab19a80f43286c9b7d Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 19:24:37 2010 +0000 Add support for detecting <mach-o/getsect.h> and the getsect() function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d503534243f0f11a1b53be095e1811bf24e47fb Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 19:23:32 2010 +0000 Tweak per Chris' comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108736 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14c9160bfe1acc03b9a4de19947bd0b33019dec6 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jul 19 18:47:01 2010 +0000 Teach computeRegisterProperties() to compute "representative" register class for legal value types. A "representative" register class is the largest legal super-reg register class for a value type. e.g. On i386, GR32 is the rep register class for i8 / i16 / i32; on x86_64 it would be GR64. This property will be used by the register pressure tracking instruction scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108735 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87e14e7a0b45b5194afef500cdf21ca757799e54 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jul 19 18:41:20 2010 +0000 Spillers may alter MachineLoopInfo when breaking critical edges, so make it non-const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108734 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad61c7cebc8100052b0c9ccf2fd02c5ad288730b Author: Dale Johannesen <dalej@apple.com> Date: Mon Jul 19 18:22:40 2010 +0000 Testcase for 108732 (8195660). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108733 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08278421a59c492819530a466bafc61c2f351da5 Author: Devang Patel <dpatel@apple.com> Date: Mon Jul 19 17:53:55 2010 +0000 Fix PR 7662. Do not try to insert local variable info to a DIE used for function declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108731 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70346e51af666ab0b3e11813379434e5bc18adc9 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jul 19 17:20:38 2010 +0000 Since ARM emits inline jump tables as part of the ConstantIsland pass, it should set the jump table encloding the EK_Inline. This prevents a second, unused, copy of the table from being emitted after the function body. PR6581. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07e3dfdad48064a79a8bf4a8225518341804c35a Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jul 19 17:19:40 2010 +0000 revert so I can get the right PR# in the log message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1756115906f8554f53da3706eac47949be7b5280 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jul 19 17:18:28 2010 +0000 Since ARM emits inline jump tables as part of the ConstantIsland pass, it should set the jump table encloding the EK_Inline. This prevents a second, unused, copy of the table from being emitted after the function body. PR7499. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108722 91177308-0d34-0410-b5e6-96231b3b80d8 commit d71ea3b157542755c7f8cf36beab8384e4fbc15d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Jul 19 17:17:22 2010 +0000 Remove code duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108718 91177308-0d34-0410-b5e6-96231b3b80d8 commit 552a1d568e3beb42f169b535d406c95ea2df2a57 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Jul 19 17:17:10 2010 +0000 Better error reporting for switch_list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108714 91177308-0d34-0410-b5e6-96231b3b80d8 commit 252ecf45bbeae3588d79d0ffd2fb23aa66bdb6ce Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jul 19 15:37:03 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108700 91177308-0d34-0410-b5e6-96231b3b80d8 commit a854d08b1789fec2d5aa8b314851c5fa1bd26367 Author: Duncan Sands <baldrick@free.fr> Date: Mon Jul 19 15:31:07 2010 +0000 Expose BasicBlock::moveBefore and moveAfter in C API, patch by Benjamin Saunders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108699 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bbd4142b029331c64500f65e5b4d3a2c031213c Author: Lang Hames <lhames@gmail.com> Date: Mon Jul 19 15:22:28 2010 +0000 Render MachineFunctions to HTML pages, with options to render register pressure estimates and liveness alongside. Still experimental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108698 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86dce3b39f2417042dd6f319f0afcdc49f7a60ea Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 19 14:48:15 2010 +0000 precompute 20 tags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108695 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac1ef94b903ea2615fd8f9549b3a7c977d54ad7b Author: Duncan Sands <baldrick@free.fr> Date: Mon Jul 19 09:36:45 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 954ad70630e6ef9b9ff0b6af6f19428b542876da Author: Duncan Sands <baldrick@free.fr> Date: Mon Jul 19 09:33:13 2010 +0000 Expose JIT::recompileAndRelinkFunction for use through the C API. Patch by Benjamin Saunders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108690 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc0bcb7de03bcff7203a7fc42a78e8592bb90365 Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 08:14:26 2010 +0000 Testcase for r108687. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108689 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a630f56d785be4087e1feac475fcfe850f166eb Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 08:10:24 2010 +0000 Remove r108639 now that it is handled by InstCombine instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108688 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9bfdc9773339431719b99f7663d782ad8fdf6d5b Author: Owen Anderson <resistor@mac.com> Date: Mon Jul 19 08:09:34 2010 +0000 Reimplement r108639 in InstCombine rather than DAGCombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88e6d8104e471ce83a7b0303e6afc26c168baf82 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 07:21:07 2010 +0000 X86-64: Mark WINCALL and more tail call instructions as code gen only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108685 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0154c1dec6c32259b229f417edd15f9ac13308a7 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 07:21:04 2010 +0000 X86: Mark some tail call pseduo instruction as code gen only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108684 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc032dfeb9e0f82adf3b28b6c3915348885adc28 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 07:21:01 2010 +0000 X86: Mark In32/64BitMode on LEAVE[64] and SYSEXIT[64]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108683 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdf4c444a103e8d3667511adb8a5ff7db56a29eb Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Jul 19 06:26:19 2010 +0000 _[A-Z] identifiers are reserved for the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108682 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78c28d4a5a5f2e6644c1fc292c72bcbd1fa9e327 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 06:14:54 2010 +0000 MC/X86: We now match instructions like "incl %eax" correctly for the arch we are assembling; remove crufty custom cleanup code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108681 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce31678dd5ef62460cf341e6b5b7aee25dd9b116 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 06:14:49 2010 +0000 X86: Mark MOV.*_{TC,NOREX} instruction as code gen only, they aren't real. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108680 91177308-0d34-0410-b5e6-96231b3b80d8 commit 119a2d6a030a9036f6e5b9bc95bced42c01f8829 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 06:14:44 2010 +0000 X86: MOV8o8a, MOV8ao8, etc. are only valid in 32-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108679 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68c6a3136e82622ac776769a78c937033715038e Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Mon Jul 19 06:13:10 2010 +0000 MC: Add WinCOFFStreamer implementation and merge common code from MachO into MCObjectStreamer. Origonal Windows COFF implementation by Nathan Jedffords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108678 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b56c47d6c014f3a1c2920617584ca18052c3782 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 05:44:09 2010 +0000 TblGen/AsmMatcher: Add support for honoring instruction Requires<[]> attributes as part of the matcher. - Currently includes a hack to limit ourselves to "In32BitMode" and "In64BitMode", because we don't have the other infrastructure to properly deal with setting SSE, etc. features on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108677 91177308-0d34-0410-b5e6-96231b3b80d8 commit 534b94399a8c279f3ee7451e8086ce91263ed3b7 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jul 19 04:52:56 2010 +0000 Alphabetize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56ad4ad9b2aaca825f31d9fc3496a54580d279c5 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Jul 19 04:17:25 2010 +0000 Make .align parse correctly on platforms where .align is measured in bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108674 91177308-0d34-0410-b5e6-96231b3b80d8 commit e805b684dcf2fcc65a322e9733d26716cf854e3f Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Jul 19 03:16:25 2010 +0000 llvmc: Add a new option type (switch_list). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108673 91177308-0d34-0410-b5e6-96231b3b80d8 commit 985628bd5e703d6e41b9468d21e986f0f12b7887 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 00:43:58 2010 +0000 tests: Force another triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108666 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec7fb72f8b6fd104a879e67174c890c7cd884d56 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 00:33:49 2010 +0000 Target: Give the TargetAsmParser access to the TargetMachine. - Unfortunate, but necessary for now to handle subtarget instruction matching. Eventually we should factor out the lower level target machine information so we don't need to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 172652ff0e23891ae712409519e2298519989366 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 19 00:33:43 2010 +0000 edis: Save the TargetMachine in the EDDisassembler object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24138f5c4a91871ebb7a648102d9da50a2849281 Author: Michael J. Spencer <bigcheesegs@gmail.com> Date: Sun Jul 18 23:46:13 2010 +0000 Test commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62a59bd57375276590e4e0e840af20f2349c55bc Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 22:22:07 2010 +0000 MC/AsmParser: Stop playing unsafe member function pointer calls, this isn't portable enough. - Downside is we now double dispatch through a stub function, but this isn't performance critical. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108661 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9242338631c530c8afcec4e75608849fcd3dd29 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 21:16:10 2010 +0000 tests: Force triples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108658 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69445e9160a118b62cb00caca8320a3ef6eefc86 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 20:15:59 2010 +0000 MC/AsmParser: Fix .abort and .secure_log_unique to accept arbitrary token sequences, not just strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c9bdceadbb08539bec3c877f6342fe680ee8293 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 19:00:10 2010 +0000 MC/AsmParser: Add macro argument substitution support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2179b30dfc104c7b5c87986d20f6ac4ca71399fd Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 18:54:11 2010 +0000 MC/AsmParser: Add basic support for macro instantiation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98972572a49cfe0076ff6daee0ad66ba6da2f02e Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 18:47:21 2010 +0000 MC/AsmParser: Add basic parsing support for .macro definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108652 91177308-0d34-0410-b5e6-96231b3b80d8 commit caec9b4d7f97f8b9fabfdffc303c6164481b852d Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 18 18:42:18 2010 +0000 daniel doesn't hate me, he hates macpython 2.5, which is a very reasonable position on life! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108650 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7aae6783435332a842677d5a7e6a9a499cd21fb9 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 18:38:02 2010 +0000 MC/AsmParser: Add .macros_{off,on} support, not that makes sense since we don't support macros. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3076cf993a2160230ba344f63c9dc2159f51d4fb Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 18:31:45 2010 +0000 MC/AsmParser: Use Error() instead of calling PrintMessage() directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108648 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fe67c2cca9adfa1e2f01d27ba435c0eebca1bf5 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 18:31:42 2010 +0000 MC/AsmParser: Fix TokError() to accept a Twine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108647 91177308-0d34-0410-b5e6-96231b3b80d8 commit 521a504232a8487e6aaab4c6bfca8f96b11b9dfb Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 18:31:38 2010 +0000 MC/AsmParser: Hide the AsmParser implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f15cd0ebe5995ab1eaa52b0432867fbdb37cd3f Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 18:31:33 2010 +0000 MC: Move several clients to using AsmParser constructor function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108645 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb4b0d2e1f4346283067c61c9117af57b82c1a3a Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Jul 18 18:31:28 2010 +0000 llvm-mc: Fix llvm-mc -as-lex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 423e0288c6e16677cb0d8de404657f1b99855380 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Sun Jul 18 11:47:56 2010 +0000 Fix struct/class mismatch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8566b1ece6fceb9b1b244d0b9dabf3ea8e478546 Author: Owen Anderson <resistor@mac.com> Date: Sun Jul 18 08:57:19 2010 +0000 Add a testcase for r108639. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9046362716c0c1961a5e31b60f35ebb7d4bb4e14 Author: Owen Anderson <resistor@mac.com> Date: Sun Jul 18 08:47:54 2010 +0000 Add a DAGCombine xform to fold away redundant float->double->float conversions around sqrt instructions. I am assured by people more knowledgeable than me that there are no rounding issues in eliminating this. This fixed <rdar://problem/8197504>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108639 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce1c2edb8e39ec4ffea3f5b872087201ad6ae88c Author: Lang Hames <lhames@gmail.com> Date: Sun Jul 18 00:57:59 2010 +0000 Added -pbqp-pre-coalescing flag to PBQP. If enabled this will cause PBQP to require LoopSplitter be run prior to register allocation. Entirely for testing purposes at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fcec3a2d73388c798040adde920dc4b958e5914 Author: Gabor Greif <ggreif@gmail.com> Date: Sat Jul 17 20:52:46 2010 +0000 fullStopTag cannot happen here, it is handled above git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108631 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5e715f2d9ce03ca6315f859ef74ce91c84a03ff Author: Duncan Sands <baldrick@free.fr> Date: Sat Jul 17 20:23:37 2010 +0000 Fix what seems like a clear buffer overflow, noticed by cppcheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108629 91177308-0d34-0410-b5e6-96231b3b80d8 commit df54c5c5a109b7ed873b0f288b5af05aae0fac68 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Jul 17 19:18:44 2010 +0000 Use isPrologLabel() instead of checking the opcode directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 048723e6c78f81877eeed5c51673b90006314dbf Author: Chris Lattner <sabre@nondot.org> Date: Sat Jul 17 17:42:04 2010 +0000 the stackifier is global! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38a51743e5e6a13d4dfcf7863d4dae95c55e0724 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jul 17 17:40:51 2010 +0000 doxygenify some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108625 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecdff398ba794f8b789cb84302de7d91b87d8b11 Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Sat Jul 17 12:12:42 2010 +0000 update CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76f93cf411ec6cb1a23e46a9f09cba43b2a04aac Author: Lang Hames <lhames@gmail.com> Date: Sat Jul 17 11:43:07 2010 +0000 Removed unused inRange variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108618 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f1833086f691bf6dcf269d730d8618e581ca725 Author: Lang Hames <lhames@gmail.com> Date: Sat Jul 17 09:21:53 2010 +0000 Switched to array_pod_sort as per Chris's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0761d96ea565aa91054a0548931c3d7f64fb4f28 Author: Lang Hames <lhames@gmail.com> Date: Sat Jul 17 07:34:01 2010 +0000 LoopSplitter - intended to split live intervals over loop boundaries. Still very much under development. Comments and fixes will be forthcoming. (This commit includes some small tweaks to LiveIntervals & LoopInfo to support the splitter) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108615 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6112a11ca61a8e891cef93f4e42b56a72295288 Author: Owen Anderson <resistor@mac.com> Date: Sat Jul 17 06:56:35 2010 +0000 Another attempt at getting the clang self-host to like my instcombine patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 539cd8853487e4d65167bd9aab4c654307670b47 Author: Lang Hames <lhames@gmail.com> Date: Sat Jul 17 06:31:41 2010 +0000 Iterating over sets of pointers in a heuristic was a bad idea. Switching any command line paramater changed the register allocation produced by PBQP. Turns out variety is not the spice of life. Fixed some comparators, added others. All good now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 790058cbab355bb28a4975c41a37ef003c0e3ec8 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 17 06:27:28 2010 +0000 Start of .sleb128/.uleb128 parsing support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ff1275642d9e0fde6088bfc545e29b5142dd58d Author: Chris Lattner <sabre@nondot.org> Date: Sat Jul 17 06:14:03 2010 +0000 unit test to go along with r108610 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b2cdcf0d60bd5a23e45a7f51d53009ad704cf27 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jul 17 06:13:52 2010 +0000 Fix PR7658, a problem where type refinement can trigger constant replacement which was botching its handling of types. Use of getType() instead of getRawType() was causing the type map in constant folding to be updated wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 683e2cc00036ccfaaaff4a95c5d3e2a3cbe2d2c9 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 17 04:29:04 2010 +0000 Work-in-progress parsing for ELF .section directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 441e4756f894fe9a5fbf005b61247e1214d999ee Author: Jim Grosbach <grosbach@apple.com> Date: Sat Jul 17 03:30:54 2010 +0000 Add combiner patterns to more effectively utilize the BFI (bitfield insert) instruction for non-constant operands. This includes the case referenced in the README.txt regarding a bitfield copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108608 91177308-0d34-0410-b5e6-96231b3b80d8 commit f88ef65d6e46eb37b61b8e705a5d0766027ce481 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 17 03:15:24 2010 +0000 Test for ELF .size directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108607 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81c453ec98d550d964e89de74e7dd71916bffae2 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 17 03:09:18 2010 +0000 Add support for parsing .size directives for ELF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108606 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e26d58f71834931ea98a1f0da80791e28a1cce2 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jul 17 02:26:10 2010 +0000 MC/AsmParser: Lift Run() and TargetParser to base class. Also, add constructor function for creating AsmParser instances. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108604 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7b42055b6ed0e4c39f3b1dceb03b2e553b776af Author: Jim Grosbach <grosbach@apple.com> Date: Sat Jul 17 01:50:57 2010 +0000 add BFI to getTargetNodeName() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108603 91177308-0d34-0410-b5e6-96231b3b80d8 commit 444c020f902fd6dcf31110e26b175bbca8115879 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Jul 17 01:22:19 2010 +0000 Fix logic think-o git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69e476281c26dbe9391a8565eb3f7ff42d2bfb51 Author: Eric Christopher <echristo@apple.com> Date: Sat Jul 17 00:33:04 2010 +0000 Remove unnecessary check that was subsumed into canRealignStack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108588 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3b86d11a7582c225fd72f0c061ab4d7a36cc6e9 Author: Eric Christopher <echristo@apple.com> Date: Sat Jul 17 00:28:22 2010 +0000 Propagate alloca alignment information via variable size object frame information. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108583 91177308-0d34-0410-b5e6-96231b3b80d8 commit baff9d4ca8e424eaac2afa552bea48498178ab52 Author: Eric Christopher <echristo@apple.com> Date: Sat Jul 17 00:27:24 2010 +0000 Make more explicit and add some currently disabled error messages for stack realignment on ARM. Also check for function attributes as we do on X86 as well as make explicit that we're checking can as well as needs in this function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108582 91177308-0d34-0410-b5e6-96231b3b80d8 commit d97d3dad17b68ff4811e96345329667fd17d1015 Author: Eric Christopher <echristo@apple.com> Date: Sat Jul 17 00:25:41 2010 +0000 Make comment a bit more clear as well as return statement since needsStackRealignment is currently checking the can conditions as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108581 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43a2533fa44d78bbcfeb98c5a0273dfc757b1821 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jul 16 23:10:00 2010 +0000 Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108571 91177308-0d34-0410-b5e6-96231b3b80d8 commit 697f0ee3ce348f9c18440bc47ee1c6dd200f199d Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jul 16 23:05:05 2010 +0000 Add basic support to code-gen the ARM/Thumb2 bit-field insert (BFI) instruction and a combine pattern to use it for setting a bit-field to a constant value. More to come for non-constant stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108570 91177308-0d34-0410-b5e6-96231b3b80d8 commit a367558d76e021cd0c6f92b500397b255c9b0830 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 16 22:58:39 2010 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108569 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef7b229f8a67f615d75d0028d72a59efb6737a27 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jul 16 22:51:10 2010 +0000 Consider this function: void foo() { __builtin_unreachable(); } It will output the following on Darwin X86: _func1: Leh_func_begin0: pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: This prolog adds a new Call Frame Information (CFI) row to the FDE with an address that is not within the address range of the code it describes -- part is equal to the end of the function -- and therefore results in an invalid EH frame. If we emit a nop in this situation, then the CFI row is now within the address range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f4bbb45b0e6652249296a68065b21f205dfe1e0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 22:35:46 2010 +0000 Remove the isMoveInstr() hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108567 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8176136926dc5deb580d8f4d302bacc7b083260d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 22:35:37 2010 +0000 Avoid isMoveInstr when printing XCore pseudo-moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108566 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f3f29d0b1bcb36d3a41264a3c83ec4e7d18018c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 22:35:34 2010 +0000 Use MI.isCopy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0324c4dc785eb135e18db25f1a69638df9ec888f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 22:35:32 2010 +0000 Use a small local function for a single remaining late isMoveInstr call in Thumb2ITBlockPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bd5e7af69662564d4e6ad6999ae19873c5570e7 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jul 16 22:20:36 2010 +0000 Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission and thus is a much more meaningful name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108563 91177308-0d34-0410-b5e6-96231b3b80d8 commit f346e632adc997212c35cf34470e1a9443373713 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 22:00:33 2010 +0000 Keep valgrind quiet. The isLive() method can read uninitialized memory, but it still gives correct results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108561 91177308-0d34-0410-b5e6-96231b3b80d8 commit e02502c76e2b1910ccc05273a767615e3c6f4dc5 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jul 16 21:20:46 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108560 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc842d1396607e5042296e9281297cba068d2736 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 21:03:55 2010 +0000 Remove remaining calls to TII::isMoveInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6096f4232e5ee64cd10759216dcb13bd3d0728cf Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 21:03:52 2010 +0000 Emit COPY instead of FMR/FMSD instructions for floating point conversion on PowerPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108555 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97432e107ee88661c97bdbed7217b41167807b7e Author: Chris Lattner <sabre@nondot.org> Date: Fri Jul 16 20:50:13 2010 +0000 eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext, so there is no locking involved in type refinement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108553 91177308-0d34-0410-b5e6-96231b3b80d8 commit 690d6515e0f93613ff0bdcbe127c70267e259ae5 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 16 20:35:19 2010 +0000 get the first few tags from a precomputed table (count can be increased if desired) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a90795d6235743ff6ee977e7d714a4bb7f4796d Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri Jul 16 18:47:20 2010 +0000 Add missing attributes to cpp backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108547 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb5ab35caf7edf7701f46c866586993777ae1fca Author: Dale Johannesen <dalej@apple.com> Date: Fri Jul 16 18:35:46 2010 +0000 Accept registers with P modifier. PR 5314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108545 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6242d46ecdebac33cdb9b6d7815ca580d9cd7779 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 16 18:28:07 2010 +0000 Make llvm-bcanalyzer print out the full enum name for all metadata code ids, not just some of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108543 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87b6b62f1ecc3bfb1d62a24d6e203af29771d7e3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 18:22:00 2010 +0000 Teach PPCInstrInfo::storeRegToStackSlot and loadRegFromStackSlot to add memory operands. Hopefully this fixes the llvm-gcc-powerpc-darwin9 buildbot. It really shouldn't since missing memoperands should not affect correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108540 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c9f7d21497c06aba7637c157586588e085fd755 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 16 17:58:45 2010 +0000 Reorder the contents of various getAnalysisUsage functions, eliminating a redundant loopsimplify run from the default -O2 sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a0adeb03914d5def6fb7d41a80c037ea553d82b Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 16 17:54:27 2010 +0000 Revert r108369, sorting llvm.dbg.declare information by source position, since it doesn't work for front-ends which don't emit column information (which includes llvm-gcc in its present configuration), and doesn't work for clang for K&R style variables where the variables are declared in a different order from the parameter list. Instead, make a separate pass through the instructions to collect the llvm.dbg.declare instructions in order. This ensures that the debug information for variables is emitted in this order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108538 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d197d77bde886f8a93d0cbfa8cbe162b40e073d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 17:41:44 2010 +0000 Remove the X86::FP_REG_KILL pseudo-instruction and the X86FloatingPointRegKill pass that inserted it. It is no longer necessary to limit the live ranges of FP registers to a single basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108536 91177308-0d34-0410-b5e6-96231b3b80d8 commit 095492340051804b33c3e03599d9248ed3700527 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 17:41:40 2010 +0000 Search for a free FP register instead of just assuming FP7 is not in use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c76f3dd80120ee9f402001e78dfd4e906e22a64 Author: Owen Anderson <resistor@mac.com> Date: Fri Jul 16 16:39:00 2010 +0000 Remove the rest of my instcombine changes. Back to the drawing board on this one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 288e4c9f95ebea03c03c3a42bba0bc21fc738a85 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 16:38:12 2010 +0000 Allow x87 FP registers to be alive globally in a function. FP_REG_KILL instructions are still inserted, but can be disabled by passing -live-x87 to llc. The X87FPRegKillInserterPass is going to be removed shortly. CFG edges are partioned into bundles where the x87 stack must be allocated identically. Code is insertad at the end of each basic block that shuffles the live FP registers to match the outgoing bundles expectations. This fix is in preparation for some upcoming register allocator improvements that may extend the live range of registers beyond a basic block, similar to LICM. It also provides a nice runtime speedup if you are building with -mfpmath=387. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a9f40f47afa89368073808f8cbb1fdf3e87b24d Author: Douglas Gregor <doug.gregor@gmail.com> Date: Fri Jul 16 15:03:23 2010 +0000 Remove extraneous semicolons after member functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3935a68bed07a443b2c948d4c77c6a067c66dfd9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jul 16 10:58:02 2010 +0000 Feed the right output into FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108523 91177308-0d34-0410-b5e6-96231b3b80d8 commit 523e1963ae0586259546b5844e9c9f993fbdcbef Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 16 09:38:02 2010 +0000 eliminate CallInst::ArgOffset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108522 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b82604c7852bb04f5b7827883993f6d54bf235f Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri Jul 16 07:53:29 2010 +0000 Get rid of a bunch of duplicated ELF enum values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108520 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6072c9985b289eef805ebaaecb8835a5815efeb1 Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri Jul 16 07:48:07 2010 +0000 A few more minor additions to ELF.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108519 91177308-0d34-0410-b5e6-96231b3b80d8 commit abe3029825dbd7dccff549ed9ca4e6c51c24327a Author: Eric Christopher <echristo@apple.com> Date: Fri Jul 16 06:33:36 2010 +0000 Remove bogus link. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8361c8e58bf6221a1c87122599be13dd92339e28 Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri Jul 16 06:31:12 2010 +0000 Arrays and vectors with different numbers of elements are not equivalent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08fc7696f646c44984cc9f7a8bc6d348730f468a Author: Eric Christopher <echristo@apple.com> Date: Fri Jul 16 06:13:24 2010 +0000 Remove unnecessary conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8035327b37b1b298310722f8ca763422a8b589d3 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Fri Jul 16 05:59:45 2010 +0000 LoopSimplify does not update domfrontier correctly. This fixes PR7649. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46ae9cc9e7a8b3a07a37fe1993d954cb0bcb1863 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Fri Jul 16 05:59:39 2010 +0000 Add dump() to DominanceFrontier git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75fa84eab6d42f71f39b0497d0e3b207afebeece Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 04:45:42 2010 +0000 Remove many calls to TII::isMoveInstr. Targets should be producing COPY anyway. TII::isMoveInstr is going tobe completely removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108507 91177308-0d34-0410-b5e6-96231b3b80d8 commit be8cad35029bc7c6aee829ae015adc317674e539 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 16 04:45:35 2010 +0000 Add forgotten test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108506 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e1fbfd12cf587027d1def7aef4b57a4d62780da Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 16 02:01:19 2010 +0000 Use the source-order scheduler instead of the "fast" scheduler at -O0, because it's more likely to keep debug line information in its original order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108496 91177308-0d34-0410-b5e6-96231b3b80d8 commit becadcdc36459e62b68bde7af97a874ec7871cf8 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jul 16 01:41:38 2010 +0000 build/Darwin: Add an LLVM_LTO_VERSION_OFFSET make variable to allow offsetting the libLTO library version from the actual build version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6da27efefd8a2145f82c26f8a1d37c7dd216a65a Author: Eric Christopher <echristo@apple.com> Date: Fri Jul 16 01:36:12 2010 +0000 Also revert 108422, it's causing some test failures. Working on testcases for Owen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108494 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5821a692bf4b89fe7c1de80d9fd627e0d45bd1e Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jul 16 01:29:50 2010 +0000 build/Clang: Build and install libLTO as part of clang-only/install-clang targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108493 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60d019fc56dcecb59b21c217a363cd9713466f32 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 16 01:28:45 2010 +0000 Fix this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108491 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bf6f0bf8470f9bd592650cdb7bf2aee555f340e Author: Dale Johannesen <dalej@apple.com> Date: Fri Jul 16 00:02:08 2010 +0000 The SelectionDAGBuilder's handling of debug info, on rare occasions, caused code to be generated in a different order. All cases I've seen involved float softening in the type legalizer, and this could be perhaps be fixed there, but it's better not to generate things differently in the first place. 7797940 (6/29/2010..7/15/2010). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108484 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99c913d682850eae86f78495b65f6a500a166e80 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 23:42:21 2010 +0000 Revert. This isn't the correct way to go. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108478 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25bb3094a518e65467100f55df15b8e29f9d64f2 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 15 23:38:13 2010 +0000 Fix the order that SCEVExpander considers add operands in so that it doesn't miss an opportunity to form a GEP, regardless of the relative loop depths of the operands. This fixes rdar://8197217. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108475 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ae97f2e0d2a577a75eabdbc0155edbeec1d0e57 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 23:32:40 2010 +0000 Handle code gen for the unreachable instruction if it's the only instruction in the function. We'll just turn it into a "trap" instruction instead. The problem with not handling this is that it might generate a prologue without the equivalent epilogue to go with it: $ cat t.ll define void @foo() { entry: unreachable } $ llc -o - t.ll -relocation-model=pic -disable-fp-elim -unwind-tables .section __TEXT,__text,regular,pure_instructions .globl _foo .align 4, 0x90 _foo: ## @foo Leh_func_begin0: ## BB#0: ## %entry pushq %rbp Ltmp0: movq %rsp, %rbp Ltmp1: Leh_func_end0: ... The unwind tables then have bad data in them causing all sorts of problems. Fixes <rdar://problem/8096481>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108473 91177308-0d34-0410-b5e6-96231b3b80d8 commit a672ce6faeda76ed4da587c353f76aa683a5192d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jul 15 22:07:12 2010 +0000 Split -enable-finite-only-fp-math to two options: -enable-no-nans-fp-math and -enable-no-infs-fp-math. All of the current codegen fp math optimizations only care whether the fp arithmetics arguments and results can never be NaN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108465 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18023c12d5984864d4618777419f392a740ad0b1 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 15 21:51:52 2010 +0000 build/Darwin: Add a missing directory dependency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108463 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5f43f281c5a5043c8ed72049ced0a093080107e Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 21:24:02 2010 +0000 remove some unneeded overloads that were causing ambiguity problems on some systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108462 91177308-0d34-0410-b5e6-96231b3b80d8 commit 339d21f973861976a0c0ff19259b7b49d65012a6 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 21:22:00 2010 +0000 fix the definitions of ConstTextCoalSection/ConstDataCoalSection to keep "Text" in sync with the "pure instructions" section attribute. Lack of this attribute was preventing the assembler from emitting multibyte noops instructions for templates (and inlines, and other coalesced stuff) and was causing the assembler to mismatch .o files. This fixes rdar://8018335 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108461 91177308-0d34-0410-b5e6-96231b3b80d8 commit e50fe0a3a3e6ce38211d4998d5ec234ebf2d4916 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 21:19:31 2010 +0000 fix indentation and 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108460 91177308-0d34-0410-b5e6-96231b3b80d8 commit c559d0a101891551ac9bbac1c011d2bf745d516f Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 15 20:57:09 2010 +0000 Revert 108456. i.e. bring back r108444. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108458 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1296486c229225a7f1b1f386887c1716b1399ab0 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 15 20:25:51 2010 +0000 Revert 108444. It breaks a build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 470b2e159b55e5f2d53eea948f52040475c7f9c4 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 15 20:24:58 2010 +0000 Don't merge uses when they are targetting fixup sites with different widths. In a use with a narrower fixup, formulae may be wider than the fixup, in which case the high bits aren't necessarily meaningful, so it isn't safe to reuse them for uses with wider fixups. This fixes PR7618, though the testcase is too large for a reasonable regression test, since it heavily dependes on hitting LSR's heuristics in a certain way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24a58c3c265c41ce3b0b65d92135b217e6ead5fb Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 20:13:34 2010 +0000 fix the encoding of MMX_MOVFR642Qrr, it starts with 0xF2 not 0xF3, this fixes rdar://8192860. Unfortunately it can only be triggered with llc because llvm-mc matches another (correctly encoded) version of this, so no testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96798c24bdeabd18de45899b07425bf9f08c477d Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 15 20:12:42 2010 +0000 Use dbgs() instead of errs() in a DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4146b0fd0387a3cf74c57a877c3985ba1e002157 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 20:04:36 2010 +0000 Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108452 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb248e0111558f38e02aee03cacc7fcb72fa4554 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 15 20:02:11 2010 +0000 Teach ScalarEvolution how to fold trunc(undef) and anyext(undef) to undef. This helps LSR behave more consistently on bugpoint-reduced testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108451 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69d5b68f0477b995e41dc2d7918b85934e095ae6 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 20:01:02 2010 +0000 Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15e64c926de75b68e9994083cb43b3aea87585f5 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 19:58:14 2010 +0000 Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. This time make sure to allocate enough space in the std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a12bfff318072df9c8aabade7863b8044c3d44e Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 19:41:20 2010 +0000 Reserve a goodly amount of room for the vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108448 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a42f7b5c1918df5adb06aa1fd092d0a207174b6 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 15 19:33:38 2010 +0000 build/Darwin: Add support for embedding version information in tool executables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108444 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cf58058217daa7207380be422f0cdfca7b66562 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 15 18:45:27 2010 +0000 Fix crash reported in PR7653. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108441 91177308-0d34-0410-b5e6-96231b3b80d8 commit 699a8dacd6e0fd2098d2d4865b41e3a109491f25 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 18:43:09 2010 +0000 Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108440 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46eaff95bed2627c456bb618de68acd1c0c9e567 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 18:40:50 2010 +0000 Use std::vector instead of TargetRegisterInfo::FirstVirtualRegister. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 231cdc02d85248790f62357adf35362258463f90 Author: Owen Anderson <resistor@mac.com> Date: Thu Jul 15 18:18:57 2010 +0000 Speculatively revert r108429 to fix the clang self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108436 91177308-0d34-0410-b5e6-96231b3b80d8 commit 582fe5d9f100d2e8a83ff1a944efd94d1c35da4e Author: Owen Anderson <resistor@mac.com> Date: Thu Jul 15 17:24:23 2010 +0000 Per Chris' suggestion, get rid of the select canonicalization and just add the corresponding or-icmp-and pattern. This has the added benefit of doing the matching earlier, and thus being less susceptible to being confused by earlier transforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108429 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12c3476ef1f4c61011e2c962c721c435f456cebd Author: Owen Anderson <resistor@mac.com> Date: Thu Jul 15 16:38:22 2010 +0000 Remove unneeded check, and correct style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108427 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4987ad76fe1d05cbcd995c04a1d0a57415c3add Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 15 15:14:45 2010 +0000 Watch out for a constant offset cancelling out a base register, forming a zero. This situation arrises in Fortran code with induction variables that start at 1 instead of 0. This fixes PR7651. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108424 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf9327298b724b37107333a9ffdb72eac31cf904 Author: Owen Anderson <resistor@mac.com> Date: Thu Jul 15 15:00:23 2010 +0000 Reapply r108378, with bugfixes, testcase, and improved comment formatting. This now passes LIT, nighty test, and llvm-gcc bootstrap on my machine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94a4e4059a7ab14cc0b689ddf205a0f392461b4e Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 15 10:19:23 2010 +0000 cache another dereferenced iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108421 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd7b420968aa2a36ae8f044194fc3936c09433e6 Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 15 07:49:30 2010 +0000 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108420 91177308-0d34-0410-b5e6-96231b3b80d8 commit f911ceaaab7142eef5057493de74a4a5e20c080d Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 06:51:46 2010 +0000 revert bill's patches in an attempt to fix the buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45cf701ec9e58ac832d09dd07d6142c8d903ff6e Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Jul 15 06:51:22 2010 +0000 This is a full sentence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b1ade0fbbf211d6fc14787102acd9465aa09f8d Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Jul 15 06:48:56 2010 +0000 Disable aliases on all platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108417 91177308-0d34-0410-b5e6-96231b3b80d8 commit eea1fa6323610c49dc53ca257d0194481d4bcbe9 Author: Ted Kremenek <kremenek@apple.com> Date: Thu Jul 15 06:36:57 2010 +0000 Correctly set rpath on Mac OS X for executable tools. Note that I am not certain this is the best fix; the code immediately above looks confused, as it first checks to see if we are NOT on Darwin and then checks the Darwin version number. This fix allows c-index-test (in Clang) to run outside of running the regression test suite. I would appreciate if someone reviewed this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108416 91177308-0d34-0410-b5e6-96231b3b80d8 commit 348c8d0cf84ba072c64fd9d754687c5127a57bb3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 06:36:08 2010 +0000 Fix PR7647, handling the case when 'To' ends up being mutated by recursive simplification. This also enhances ReplaceAndSimplifyAllUses to actually do a real RAUW at the end of it, which updates any value handles pointing to "From" to start pointing to "To". This seems useful for debug info and random other VH users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e2948dea8edb32528da6a2e5cce650d03fadb2a Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 06:06:04 2010 +0000 make various clients of ReplaceAndSimplifyAllUses tolerate it *changing* the things it replaces, not just causing them to drop to null. There is no functionality change yet, but this is required for a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108414 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd0609985339e766d59dc25aa5d92fe9c57223f7 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 06:05:18 2010 +0000 Fix headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108413 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a8def464ee40f46ab43aafb48edb06376841923 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 06:04:38 2010 +0000 Use std::vector instead of a hard-coded array. The length of that array could get *very* large, but we only need it to be the size of the number of pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108412 91177308-0d34-0410-b5e6-96231b3b80d8 commit 248aa88597348b545287a0a43ece61fab34a08f5 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 15 05:56:32 2010 +0000 Use std::vector instead of a hard-coded array. The length of that array could get *very* large, but we only need it to be the size of thenumber of pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80dbf9d807ad8c89ab9f0505640e0fe31125ede9 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 05:17:36 2010 +0000 see comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c7d669cd63e473cfd55794c6c1956d4e2e28af7 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 05:14:01 2010 +0000 add an accessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44d821bc18107f55b47c8266ca0f5534c637c846 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jul 15 05:09:31 2010 +0000 Revert r108401; it breaks bootstrap :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108407 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef3340a6817e1275e73cf2ad0a02fa7f32bb4608 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jul 15 04:46:14 2010 +0000 Add AssertingVH which makes PR7647 break consistently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37bf16d675cc09641b47c2da8b6ac102d9a47c87 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jul 15 02:20:38 2010 +0000 Random note about bswap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 748e25171cecabd3eb5c9289470a6b25ff464e31 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 15 00:37:34 2010 +0000 a more graceful fix for test/Other/inline-asm-newline-terminator.ll, follow on to r103765 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108390 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45492968bf37e0078b24eab04c2a8148aefca231 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jul 15 00:33:00 2010 +0000 Speculatively revert r108378; may be causing bootstrap failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108389 91177308-0d34-0410-b5e6-96231b3b80d8 commit 899de05d611da196dbe0d0adf359dbb824f874a2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jul 14 23:58:21 2010 +0000 Last COPY conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108387 91177308-0d34-0410-b5e6-96231b3b80d8 commit 331be8a5b07d5ef791e14e76c8faedf7b612748a Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 23:54:43 2010 +0000 Remove restriction on NEON alignment values. Some of the NEON ld/st instructions use different values (e.g., 2-byte or 4-byte alignment). Also fix ARMInstPrinter to print these alignments as bits instead of bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108386 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6a8b2c33f421f917c6204882e50a02f4f244029 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jul 14 23:50:27 2010 +0000 Use TargetOpcode::COPY instead of X86-native register copy instructions when lowering atomics. This will allow those copies to still be coalesced after TII::isMoveInstr is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108385 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e1e8ec4a61f7025fdffe899eef5d4bafae0c8ed Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 23:49:18 2010 +0000 Remove the entire docs directory from Apple-style builds. This fixes a "usr_junk" verification failure when installing into /usr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108384 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e420c7bb00d4d2ea77241deaca6b3a29de447b6 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 23:41:58 2010 +0000 Try to get embedded build of llvmCore to pass verification. Simplify some things in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108382 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8abfe29c29e5a5bb34e4dc0f473744b729722b8 Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 14 23:41:32 2010 +0000 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108381 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb85e596218ea4e8d119c4e7ae44fbb7ba62deb8 Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 14 23:33:51 2010 +0000 Add instcombine transforms to optimize tests of multiple bits of the same value into a single larger comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108378 91177308-0d34-0410-b5e6-96231b3b80d8 commit da3f1673e8a48ade5968ec8acdb6794ad6ca995a Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 14 23:12:58 2010 +0000 Temporarily disable this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108371 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31484d9a129bac90f50c9f468ae62547b02e18e2 Author: Devang Patel <dpatel@apple.com> Date: Wed Jul 14 23:12:52 2010 +0000 Make it a .ll test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f91095973206cc989c75adac0cd58b6bbba82df Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 14 23:08:16 2010 +0000 Make the order in which variables are described in debug information independent of the order that isel happens to visit the dbg_declare intrinsics. This fixes a bug in which the formal arguments were being printed in reverse order, now that fast isel is going bottom up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108369 91177308-0d34-0410-b5e6-96231b3b80d8 commit c194f0326bb74aca5e7873c179906303f4f1683a Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 14 23:04:59 2010 +0000 fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59a4a8931ee4a1c0cb6e0ed72a1705b48227bf8c Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 22:41:51 2010 +0000 Remove some broken code to check the DISABLE_EDIS flag (edis is now in the DIRS list, so it does no good to filter it from PARALLEL_DIRS), and replace it with a check to disable building the shared library version of edis when the flag is set. Disabling it entirely does not work because MC uses it now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108367 91177308-0d34-0410-b5e6-96231b3b80d8 commit c461644c221e9366929ed33700534921f0926196 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jul 14 22:38:02 2010 +0000 Don't pass StringRef by reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108366 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80035f40991521b1af1c689ca9ab9f8ab3332e58 Author: Eric Christopher <echristo@apple.com> Date: Wed Jul 14 22:26:35 2010 +0000 Add a testcase for the vla and stack realignment warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108365 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06072f429bd69fdcb4c1f0782c2768e7f647307a Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 14 22:01:31 2010 +0000 Properly restore DebugLoc after leaving the local constant area. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34ca1044b087efa41e47b4a640b38022aa6eb76c Author: Dale Johannesen <dalej@apple.com> Date: Wed Jul 14 21:22:35 2010 +0000 Tests for llvm-gcc commit 108360. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108362 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fbf037e97ca950d68d3db068f50116076dad9f4 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 14 21:12:44 2010 +0000 Just use getParent() instead of getModuleFromVal when the value is a Function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108358 91177308-0d34-0410-b5e6-96231b3b80d8 commit 588a7fbb1f010ac989bdcd5b1d27143a0cababca Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 14 20:57:55 2010 +0000 Rename WriteConstantInt to WriteConstantInternal, to avoid confusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108357 91177308-0d34-0410-b5e6-96231b3b80d8 commit e97f7bda8e400ba4b66f37993fa378a555e426e3 Author: Owen Anderson <resistor@mac.com> Date: Wed Jul 14 19:52:16 2010 +0000 Extend SimplifyCFG's common-destination folding heuristic to allow a single "bonus" instruction to be speculatively executed. Add a heuristic to ensure we're not tripping up out-of-order execution by checking that this bonus instruction only uses values that were already guaranteed to be available. This allows us to eliminate the short circuit in (x&1)&&(x&2). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47151f9ff9adaef8ccd21d38ec7bff070de25f19 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 14 18:26:50 2010 +0000 Factor out metadata parsing into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108343 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ca956fbdc5328c6799dea05e560b42ae72d4459 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 14 18:14:33 2010 +0000 Merge lib/Target/X86/X86COFF.h into include/llvm/Support/COFF.h, patch by Michael Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108342 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c030c079ab3ca27b9dee3e062547f9d7f34aea9 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 14 17:45:16 2010 +0000 Improve 64-subtraction of immediates when parts of the immediate can fit in the literal field of an instruction. E.g., long long foo(long long a) { return a - 734439407618LL; } rdar://7038284 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108339 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2decdc283840b13e529313bc579474748bfe8579 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 14 17:25:37 2010 +0000 Delete fast-isel's trivial load optimization; it breaks debugging because it can look past points where a debugger might modify user variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108336 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef4c26130d2ce6da08a2c86cff13e1606802b227 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 16:43:47 2010 +0000 Fix test to appease the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108334 91177308-0d34-0410-b5e6-96231b3b80d8 commit 005d40dc4185af8df803f1dbb006c5c3ec27d73a Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 16:02:13 2010 +0000 Add missing address register update to t2LDM_RET instruction. Patch by Brian Lucas. PR7636. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8316b9a6031f978eece03867b21c92df1829fe08 Author: Duncan Sands <baldrick@free.fr> Date: Wed Jul 14 14:32:33 2010 +0000 Rather than using an ifdef on the target to zero out fields, just use memset to zero the entire struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108330 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c029ee709b1d7b4fa402aa9018b0e41ca8a5d21 Author: Eli Friedman <eli.friedman@gmail.com> Date: Wed Jul 14 06:58:26 2010 +0000 A couple potential optimizations inspired by comment 4 in PR6773. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108328 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77a55b8955cd0cc3ab497cdc8e69dd1c96d84be1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jul 14 06:44:01 2010 +0000 Fix for PR7193 was overly conservative. The only case where sibcall callee address cannot be allocated a register is in 32-bit mode where the first three arguments are marked inreg. In that case EAX, EDX, and ECX will be used for argument passing. This fixes PR7610. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108327 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74516326ff11741b93097d9e077bc7d0df5ec3d2 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 06:31:50 2010 +0000 Add support for NEON VMVN immediate instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10a5d0a259d985d06a7a97d0de165ee7b59c94e0 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 06:30:44 2010 +0000 The bits in the cmode field of 32-bit VMOV immediate instructions all depend of the value of the immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2099e94bf268888c4383375027fde11c26d59b07 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 14 06:16:35 2010 +0000 revert r108320, I see the failures now... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108322 91177308-0d34-0410-b5e6-96231b3b80d8 commit efe1790d6cf23835da30f3b4f82327c840302263 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 14 05:59:13 2010 +0000 reapply benjamin's instcombine patch, I don't see anything wrong with it and can't repro any problems with a manual self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108320 91177308-0d34-0410-b5e6-96231b3b80d8 commit b789047d6a1db05ba668df2ca63c84fb7b947d8a Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jul 14 05:49:23 2010 +0000 Re-enable the test with fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108319 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff15cd3107a9a241a6df957203d78cd19be3ed13 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 14 02:21:59 2010 +0000 temporarily disable to test to fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 906bce18324d0c4940ca070edd4278a018d2e867 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 14 01:57:17 2010 +0000 fix a bug found by a warning I added to clang this morning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108309 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4298a85e0d69d96efd10340dcfb70d11ddf6074f Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jul 14 01:22:19 2010 +0000 Teach ProcessImplicitDefs to transform more COPY instructions into IMPLICIT_DEF (and subsequently eliminate them). This allows machine LICM to hoist IMPLICIT_DEF's. PR7620. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108304 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9f0c74febb3953bb35378123008e91e6234a317 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 14 01:22:12 2010 +0000 Add an ARM-specific DAG combining to avoid redundant VDUPLANE nodes. Radar 7373643. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97b256010c806c3a212f588ef9c9f0479f99fb63 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 14 01:07:44 2010 +0000 Don't propagate debug locations to instructions for materializing constants, since they may not be emited near the other instructions which get the same line, and this confuses debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108302 91177308-0d34-0410-b5e6-96231b3b80d8 commit c34389a361a9da4595f3b21ba5f1129f4bf2b23c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 13 22:06:38 2010 +0000 Add AVX 256-bit compare instructions and a bunch of testcases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108286 91177308-0d34-0410-b5e6-96231b3b80d8 commit c752d7c5439e65b71aafaa420dd1ffc8fa53be79 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 13 21:19:08 2010 +0000 Remove vestigial decl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1145e6b35662affaf747d64fa66db5524758df7d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 13 21:19:05 2010 +0000 Print VNInfo flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108277 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41fcfc0beca0878547f17855b09567a222291e85 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jul 13 21:16:48 2010 +0000 Use a target-specific VMOVIMM DAG node instead of BUILD_VECTOR to represent NEON VMOV-immediate instructions. This simplifies some things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108275 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8e8dfb3fc8433590ba08613398bd257a1eea02a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 13 21:07:28 2010 +0000 AVX 256-bit conversion instructions Add the x86 VEX_L form to handle special cases where VEX_L must be set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108274 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b45e81e6b266ae34d4c5b9bbccbea8244131c96 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jul 13 21:03:14 2010 +0000 Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108272 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71c81bf3af713f27acf8317e186ed130bab9899d Author: Dale Johannesen <dalej@apple.com> Date: Tue Jul 13 20:17:05 2010 +0000 In inline asm treat indirect 'X' constraint as 'm'. This may not be right in all cases, but it's better than asserting which it was doing before. PR 7528. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108268 91177308-0d34-0410-b5e6-96231b3b80d8 commit 735a4bc4f13198bca9919891f96d76c779e4d82e Author: Kevin Enderby <enderby@apple.com> Date: Tue Jul 13 20:05:41 2010 +0000 Added a check that pusha cannot be encoded in 64-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108265 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c88983e6b96fe4b078011d945f308cbef32078b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 13 19:56:28 2010 +0000 Add an assertion to make PR7542 fail consistently. LiveInterval::overlapsFrom dereferences end() if it is called on an empty interval. It would be reasonable to just return false - an empty interval doesn't overlap anything, but I want to know who is doing it first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 485aa283584aec4f46761b026c4c24d0dda6cc77 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 13 19:48:13 2010 +0000 Fix the Named Metadata example to make it clear which specific construct is the named metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108263 91177308-0d34-0410-b5e6-96231b3b80d8 commit e76e76ebbb0a220ea19b3fe265168a0f4e0fdb7f Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 13 19:42:44 2010 +0000 Add support for empty named metadata too. This isn't particularly useful, but it is nice for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108262 91177308-0d34-0410-b5e6-96231b3b80d8 commit 480f630842980ea859133c8ce5984fa09566141d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 13 19:42:20 2010 +0000 Fix LiveInterval::overlaps so it doesn't claim touching intervals overlap. Also, one binary search is enough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108261 91177308-0d34-0410-b5e6-96231b3b80d8 commit 028b57991c4e418bd4312a1050273ea6302953c9 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 13 19:33:27 2010 +0000 Add support for empty metadata nodes: !{}. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108259 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1a12656bdecb844854999ccf8cad03a09f2608e Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jul 13 19:27:42 2010 +0000 Extend the r107852 optimization which turns some fp compare to code sequence using only i32 operations. It now optimize some f64 compares when fp compare is exceptionally slow (e.g. cortex-a8). It also catches comparison against 0.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108258 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79432942e8bbbacbb381acf02d65e8a4bc47f93f Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jul 13 19:21:50 2010 +0000 Add an ARM "feature". Cortex-a8 fp comparison is very slow (> 20 cycles). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35f7c9f4c82a44168d46cc68700caf7cf9381133 Author: Grey Clayton <gclayton@apple.com> Date: Tue Jul 13 18:47:09 2010 +0000 Patched Makefile.rules to allow objective C and objective C++ compilation. This allows LLDB (llvm/tools/lldb) to build on Mac OS X. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108255 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc08cdaac3e6711f919921efb75481d7f9779906 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jul 13 18:46:14 2010 +0000 -enable-unsafe-fp-math should not imply -enable-finite-only-fp-math. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e96396981ff74aaac8e3b353b652df98af163fc Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 13 18:27:13 2010 +0000 Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e7b94d5ddb8b798c1041b03bf20baeab372f168 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jul 13 18:14:47 2010 +0000 Fix PR number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 646bf9da66be01e48e11dd851d0296544b5e8211 Author: Chandler Carruth <chandlerc@gmail.com> Date: Tue Jul 13 17:28:05 2010 +0000 Switch from EXPECT_EQ({true,false, ...) to the more canonical EXPECT_{TRUE,FALSE}(...) macros. This also prevents suprious warnings about bool-to-pointer conversion that occurs withit EXPECT_EQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108248 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e74d7941fe30f35f05d87cf0af2f98a5d383808 Author: Devang Patel <dpatel@apple.com> Date: Tue Jul 13 16:53:20 2010 +0000 Fix compile unit in example. Thanks Renato Golin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108246 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06a07fbb723f9a9cdbdae70a8d99e7e00446fb85 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jul 13 15:41:41 2010 +0000 Handle the case of a tail recursion in which the tail call is followed by a return that returns a constant, while elsewhere in the function another return instruction returns a different constant. This is a special case of accumulator recursion, so just generalize the existing logic a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108241 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33c9b635e4dbb46fadd16878ab4eca2f87ac9f6a Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 13 15:31:36 2010 +0000 rotate CallInst operands with this commit the callee moves to the end of the operand array (from the start) and the call arguments now start at index 0 (formerly 1) this ordering is now consistent with InvokeInst this commit only flips the switch, functionally it is equivalent to r101465 I intend to commit several cleanups after a few days of soak period git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108240 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a4b158b0ee2667d18d6168742970d06164f5082 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jul 13 12:26:09 2010 +0000 HTML cleanup and validation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108239 91177308-0d34-0410-b5e6-96231b3b80d8 commit a18b11c067d70474b8dc5f4d89b49a3628bfd5d0 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jul 13 12:06:14 2010 +0000 When doing sext/zext of constants, the target type must be strictly wider than the source type. Correct LangRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108238 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81d602cf8d5e8614c1322a93869844fe3c43a1b6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 13 05:52:36 2010 +0000 use a typedef instead of its expansion, patch by Michael Spencer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108229 91177308-0d34-0410-b5e6-96231b3b80d8 commit da5ed1bf059a91d0fb76e4051213794382d9e045 Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 13 05:50:08 2010 +0000 80-columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108228 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2c5df57d4d51228b7e7e468bd4c66a6d313d37a Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jul 13 04:44:34 2010 +0000 Move NEON "modified immediate" encode/decode into ARMAddressingModes.h to avoid replicated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56a528241ad96d4b3a57f944d402fd3cbf6e749b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 13 04:23:55 2010 +0000 my work on adding segment registers to LEA missed the disassembler. Remove some code from the disassembler to compensate, unbreaking disassembly of lea's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108226 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6070199da3ce7062ca9d35268e8b07136428ddf Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 13 02:38:35 2010 +0000 Add AVX 256-bit packed logical forms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108224 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26b8d5c1738fe6ff66bc10c272025d66612edd0e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 13 01:53:31 2010 +0000 Add AVX 256-bit unop arithmetic instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108223 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84caa7b73854f88182a8660255ad027c0219b725 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 13 00:38:47 2010 +0000 Since AVX is a superset of all SSE versions, only use HasAVX for AVX instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108222 91177308-0d34-0410-b5e6-96231b3b80d8 commit c773ab179075590c0ed907796fba6e232966c88e Author: Stephen Wilson <wilsons@start.ca> Date: Tue Jul 13 00:24:59 2010 +0000 Bring ELF64 on par with ELF32, add a few magic constants and support ".dynamic" section entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108221 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c3374528cffbff4e15773c3ebe087526e71432c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 13 00:23:30 2010 +0000 Don't add memory operands to storeRegToStackSlot / loadRegFromStackSlot results, they already have one. This fixes the himenobmtxpa miscompilation on ARM. The PostRA scheduler got confused by the double memoperand and hoisted a stack slot load above a store to the same slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108219 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e18393bf04b4cb7eb4847668929c2322508501f Author: David Greene <greened@obbligato.org> Date: Mon Jul 12 23:41:28 2010 +0000 Move some SIMD fragment code into X86InstrFragmentsSIMD so that the utility classes can be used from multiple files. This will aid transitioning to a new refactored x86 SIMD specification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92db1c4dc15535762814fb9476cf7116768e4342 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jul 12 23:04:15 2010 +0000 Add AVX 256 binary arithmetic instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108207 91177308-0d34-0410-b5e6-96231b3b80d8 commit dee3bce1c7a22ea9bf4764df7c53216ff5e0d7fc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jul 12 22:41:32 2010 +0000 More refactoring of basic SSE arith instructions. Open room for 256-bit instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c9b06d16512c42cfe83fef36b4007ebd5c6b1f6 Author: Stephen Wilson <wilsons@start.ca> Date: Mon Jul 12 22:36:08 2010 +0000 Simple format/style fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108203 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39bb34f2e6df7e2430151694ceb41ec2e79814e7 Author: Stephen Wilson <wilsons@start.ca> Date: Mon Jul 12 21:34:37 2010 +0000 Test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cc95cf7c17a0ab33cb1534faa309789aa0eb3b4 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 21:23:32 2010 +0000 MC/AsmParser: Move ELF specific parser to ELFAsmParser.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108196 91177308-0d34-0410-b5e6-96231b3b80d8 commit aaf0cee5f48143c5e6108e776b91cb046bb39c5d Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 20:51:51 2010 +0000 MC/AsmParser: Move Darwin specific parse to DarwinAsmParser.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108193 91177308-0d34-0410-b5e6-96231b3b80d8 commit 750a9b099703a917613cfd9ca768b68e2412c0c3 Author: Argiris Kirtzidis <akyrtzi@gmail.com> Date: Mon Jul 12 20:47:08 2010 +0000 Add convenience method FoldingSetImpl::InsertNode(Node *N) that asserts if the node is already inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108192 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b7419feee5d31aa7073da7dabaa43bba9e313eb Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 12 20:46:04 2010 +0000 Apply the SSE dependence idiom for SSE unary operations to SD instructions too, in addition to SS instructions. And add a comment about it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108191 91177308-0d34-0410-b5e6-96231b3b80d8 commit a24a16acc76386024b06bc33aff5bbd22ed072a0 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 20:42:34 2010 +0000 MC/AsmParser: Move .section parsing to Darwin specific parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108190 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e761374d19f14a856d8c889d94f4b23b4066cf8 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 20:32:33 2010 +0000 MC/AsmLexer: Raise LexUntilEndOfStatement to MCAsmLexer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108189 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45a63a2637b3dc93ca4cabe48c2605d573e18b77 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jul 12 20:27:02 2010 +0000 getOrInsertLeaderValue cannot be const because it calls insert. Patch by Xi Wang! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108188 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41566672c407a8d29c84483dc2e98ef96ae41ecd Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 20:23:36 2010 +0000 MC/AsmParser: Move special section directive parsing to Darwin specific parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108187 91177308-0d34-0410-b5e6-96231b3b80d8 commit 572cc73a3f782d9ae9067efcfb3263364bb0bcc7 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jul 12 20:22:45 2010 +0000 Remove some code that doesn't appear to do anything. All the ARM call instructions already have implicit defs of LR. The comment suggests that this is intended to fix something like pr6111, but it doesn't really do that either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108186 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b6ed6554c5ff1ff8eca3776576291408f6e98f4 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 20:08:04 2010 +0000 MC/AsmParser: Add a basic ELFAsmParser extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4251ba701df83ca419a99d46b5ee4ceca6aeecad Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jul 12 20:06:32 2010 +0000 Add AVX 256-bit MOVMSK forms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c2b6272f14001f71e65af43106a439c22cd6402 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 19:52:10 2010 +0000 MC/AsmParser: Inline AsmParser::CreateSymbol into callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108183 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0987842f19e582af85f68a2c17b70f8da90b4088 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 19:37:35 2010 +0000 MC/AsmParser: Move .tbss and .zerofill parsing to Darwin specific parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108180 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6a0ba2a72375de846c8534f68236f7b9b6d594a Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 19:22:53 2010 +0000 MC/AsmParser: Move .desc parsing to Darwin specific parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108179 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54c10f56f31426c9bb5018933eac33347302ae07 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 19:08:25 2010 +0000 MC/AsmParser: Move .lsym parsing to Darwin specific parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108176 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab2bd410292c53fbfe76cf550575b66f5f986afc Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 18:49:22 2010 +0000 MC/AsmParser: Move some misc. Darwin directive handling to DarwinAsmParser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108174 91177308-0d34-0410-b5e6-96231b3b80d8 commit 192e19f8c55c0116b11cf0a0962edaa07cff7788 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 18:35:04 2010 +0000 MCAsmParser: Add getSourceManager(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108171 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ccf53be301644d16b1520cd8c27ec90cc93aaf1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jul 12 18:17:47 2010 +0000 Silence a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108169 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91ece089213182ab36e14ab68f8301b6ce85f8f1 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 12 18:12:35 2010 +0000 Check begin!=end, rather than !begin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6448cedbebce5e2a5ac0b923c0f74b361b368803 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 18:12:02 2010 +0000 MC/AsmParser: Add a DarwinAsmParser extension. - Currently initialization is a bit of a hack, but harmless. We need to rework various parts of target initialization to clean this up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108165 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40ca3fed111ce74a1b6798289501e7d28b84a331 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jul 12 18:11:17 2010 +0000 Fix a typo and fit in 80 columns. Found by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b7d0296eff42bdca495bd04074b592b149e674e Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 18:03:11 2010 +0000 MC/AsmParser: Switch a bunch of directive parsing to use accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108163 91177308-0d34-0410-b5e6-96231b3b80d8 commit b94989145d5607356a9a8196462dc57c7327111b Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 12 18:02:04 2010 +0000 Add a lint check for mismatched return types, inspired by PR6944. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108162 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d6d5c46482bc3fa9aed06de7e20d9e31b0ab8de Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 17:54:38 2010 +0000 MCAsmParser: Pull some directive handling out into a helper class, and change DirectiveMap to be based on MCAsmParserExtension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108161 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50b0d52ea5abf562e53097853c2b63c928bd2f49 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 17:45:27 2010 +0000 MC/AsmParser: Switch some directive parsing to use accessor methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108160 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85998817c1c87cecb93a6abfa7ef3bfdd5c41217 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 17:27:45 2010 +0000 MC: Add MCAsmParserExtension, a base class for all the target/object specific classes which want to extend the basic asm parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108158 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f460ac1b176d3a4ba07a04038cf6b4a9e05dbbd Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 17:18:45 2010 +0000 MC: Move AsmParser::TokError to MCAsmParser(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108155 91177308-0d34-0410-b5e6-96231b3b80d8 commit aad9b43c15e5a257a1632dbbdb518e83724d8218 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jul 12 17:10:00 2010 +0000 MC: Move getLoc() to MCAsmLexer(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108154 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25ae207892cd7cae31af23e6883b56620b022a7e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jul 12 16:38:48 2010 +0000 Nope, still breaks the release selfhost bots :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108153 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29e8e9fbadd78f31972f78ce1690ff06d490fa44 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jul 12 16:15:48 2010 +0000 Reapply the "or" half of r108136, which seems to be less problematic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108152 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8698145b3fc77f7f204f381cc98114be4a0ee205 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 15:48:26 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72ded6f11022f50816b6cc890436b871f4dfa816 Author: Dan Gohman <gohman@apple.com> Date: Mon Jul 12 15:46:30 2010 +0000 Don't fast-isel an x87 comparison opcode, as fast-isel doesn't support branching on x87 comparisons yet. This fixes PR7624. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108149 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6efd925dc757c926cbea4c28f0fb1d0927c86d0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jul 12 14:42:04 2010 +0000 Revert r108141 again, sigh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108148 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1175efa45237f368380e072e17aa27fb7d02484 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 14:15:58 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108147 91177308-0d34-0410-b5e6-96231b3b80d8 commit d104c410722b9b57416101ce6663b6df32dd845b Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 14:15:10 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55140115e3293fdf7e2ecfdf34db3e5ca7e0eb07 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 14:14:03 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108145 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d1b8cbf7b8ad0518e279681a667b1d7988dda55 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 14:13:15 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48d42cc2b9e9bbc2d5f7e406ed20f5ee2bcabba7 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 14:12:11 2010 +0000 cache results of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108143 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ed023ac97daede3a74397b85b806eb4849d9a8c Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 14:10:24 2010 +0000 cache results of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108142 91177308-0d34-0410-b5e6-96231b3b80d8 commit 381506c3b29931f41cba107203340906e827a489 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jul 12 13:44:00 2010 +0000 Reapply 108136 with an ugly pasto fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dd59f7da3c6d86f75666155bc7999af89d09c79 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jul 12 13:34:22 2010 +0000 Move optimization to avoid redundant matching. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108140 91177308-0d34-0410-b5e6-96231b3b80d8 commit c99c06691d8366d7e06985813d76137e2b8b0bfa Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jul 12 12:35:49 2010 +0000 Revert r108136 until I figure out why it broke selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108139 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90099cc68f48bbcfb2abaf903b975337ec87a9f5 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 12:03:02 2010 +0000 cache dereferenced iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108138 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76c76cdaea3ce6ffe482896b8ee0ee24dc23c803 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 12:02:10 2010 +0000 recommit r108131 (hich has been backed out in r108135) with a fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 963fc1f671edd51357a70c41c50544a497bab4d7 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jul 12 11:54:45 2010 +0000 instcombine: fold (x & y) | (~x & z) and (x & y) ^ (~x & z) into ((y ^ z) & x) ^ z which is one instruction shorter. (PR6773) before: %and = and i32 %y, %x %neg = xor i32 %x, -1 %and4 = and i32 %z, %neg %xor = xor i32 %and4, %and after: %xor1 = xor i32 %z, %y %and2 = and i32 %xor1, %x %xor = xor i32 %and2, %z git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108136 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4faf7da3ad9864e720a02b8cdba6b670b2655a5d Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 11:32:39 2010 +0000 back out r108131 (of TailDuplication.cpp) for now, it causes a buildbot failure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108135 91177308-0d34-0410-b5e6-96231b3b80d8 commit f99577384956419e723edfa031f77b09741d6fc6 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 11:19:24 2010 +0000 cache dereferenced iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108134 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf34f5f30263ccb9aa38014c9ac97f5086b66449 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 10:59:23 2010 +0000 cache dereferenced iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108133 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09b64a8d302715ea71684c0af7aaf76e660b70d8 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 10:49:54 2010 +0000 cache dereferenced iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c1905f42e60912d1ff1062b0828ea61c194284e Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jul 12 10:36:48 2010 +0000 cache dereferenced iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26239ef2be6af60a36ce88be30fb75c1fc2caeed Author: Duncan Sands <baldrick@free.fr> Date: Mon Jul 12 08:16:59 2010 +0000 Convert some tab stops into spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108130 91177308-0d34-0410-b5e6-96231b3b80d8 commit b01b78344cc75335f7f973f7cef124afb8495a8c Author: Chandler Carruth <chandlerc@gmail.com> Date: Mon Jul 12 06:47:05 2010 +0000 Add parentheses around an || to correct the logic. Also silences a GCC warning that was actually useful here. Chris, please double check that this is the correct interpretation. I was pretty sure, and ran it by Nick as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108129 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6581048466070fbeadd75869693024d2b5158b2f Author: Eric Christopher <echristo@apple.com> Date: Mon Jul 12 05:26:37 2010 +0000 Remove tab characters and 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108127 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba15c22c601b4a64921a7dc493c67967beebd9d3 Author: Eric Christopher <echristo@apple.com> Date: Mon Jul 12 05:13:35 2010 +0000 80 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108126 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47e4a790fe3672d743ca3d5e7b73f3da1f5dc743 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 04:39:07 2010 +0000 Path::isRootDirectory is unimplemented on Unix and not used, remove it, fixing PR6909. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108125 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73b053572f88ac610801bb93759971413bf44cef Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jul 12 03:43:04 2010 +0000 Convert getLoadStoreRegOpcode to use a switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108123 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd56699bfe5a689669444cfd224f37d670a00783 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jul 12 02:55:34 2010 +0000 Convert the last use of getPhysicalRegisterRegClass and remove it. AggressiveAntiDepBreaker should not be using getPhysicalRegisterRegClass. An instruction might be using a register that can only be replaced with one from a subclass of getPhysicalRegisterRegClass. With this patch we use getMinimalPhysRegClass. This is correct, but conservative. We should check the uses of the register and select the largest register class that can be used in all of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108122 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e7c0d36b76dc5e876bb3f7bed9d157644eb8e26 Author: Eric Christopher <echristo@apple.com> Date: Mon Jul 12 02:32:44 2010 +0000 Fix up the ocaml kaleidoscope example as well. Note that the example currently doesn't appear to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 506be5bc9051298af0ec01dfe48746e5eb1aebbc Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jul 12 02:12:47 2010 +0000 A basic block that only uses RFP registers still needs the FP_REG_KILL marker. This fixes PR7375. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108120 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1af1454c8a74a6f1004a68957f5a465af77eca59 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jul 12 01:45:38 2010 +0000 Don't use getPhysicalRegisterRegClass in PBQP. The existing checks that the physical register can be allocated in the class of the virtual are sufficient. I think that the test for virtual registers is more strict than it needs to be, it should be possible to coalesce two virtual registers the class of one is a subclass of the other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108118 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccba7b3240c0388bd90048a00093fd9e74c9c1e5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 01:19:22 2010 +0000 fix PR7311 by avoiding breaking casts when a bitcast from scalar->vector is involved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108117 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc8139f28a3defa2de757d3f5a93c4cba7058016 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 00:57:28 2010 +0000 make the prototypes for CreateMalloc and CreateFree more consistent. Patch by Hans Vandierendonck from PR7605 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108116 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd7a610e337b7c07218860f942034c46f095b60d Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jul 12 00:52:33 2010 +0000 Convert the last getPhysicalRegisterRegClass in VirtRegRewriter.cpp to getMinimalPhysRegClass. It was used to produce spills, and it is better to use the most specific class if possible. Update getLoadStoreRegOpcode to handle GR32_AD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108115 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2168eabf72e8bd500dd345c42d9d2daf86f67b95 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 00:47:34 2010 +0000 if jump threading is able to infer interesting values on both the LHS and RHS of an and/or instruction, don't multiply add known predecessor values. This fixes the crash on testcase from PR7498 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108114 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18e3db23ef0c882bf59d838224b5c84cbad279ad Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 00:22:51 2010 +0000 fix PR7429, a crash turning a load from a string into a float. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4651b03a90fb6f126f19311f09a05d4b5591ab20 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 00:21:10 2010 +0000 convert to filechecconvert to filecheckk git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108112 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6175519fea88e8009bc9a010d9372e5f64cbdb15 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 00:19:47 2010 +0000 merge two tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ef72972adae523af730ee20c4aca4fc2925ec5c Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 00:09:55 2010 +0000 improve Path::makeUnique when mkstemp/mktemp are not available patch by Lasse Kärkkäinen in PR7404. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108110 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8c8e86e2e9e91f15109e610513330dd015c9a93 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 12 00:00:35 2010 +0000 change machinelicm to use MachineInstr::isSafeToMove. No intended functionality change. The avoidance of hoistiing implicitdef seems wrong though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108109 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3ee16711aec1ff31a135dd5798ec5d774f3f58c Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 11 23:07:28 2010 +0000 first part of JIT support for address of labels, part of PR7264, patch by Yuri! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108107 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdad91dc00d9c2da27dea37f2d7a43c44ef69f3e Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 11 22:07:02 2010 +0000 introduce WinCOFFObjectWriter, patch by Michael Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108103 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5061ddac23076ab2c892ed5901c9568596416f5 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 11 22:05:00 2010 +0000 introduce WinCOFFStreamer.cpp, patch by Michael Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108102 91177308-0d34-0410-b5e6-96231b3b80d8 commit c95654f37aa0a5e2ab870fd93d457da08bad3e57 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Jul 11 20:36:29 2010 +0000 If it's safe to speculatively execute load(alloca) the it's safe to execute load(gep(alloca)) where the gep is all-zeros. There's more we could do here but this is a common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6db8fcb5a4957ca2f5c5d4bf19ac8b9875463842 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 11 19:42:53 2010 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108100 91177308-0d34-0410-b5e6-96231b3b80d8 commit d15fff75fc972d27b0c5b38114370cfe13a5bf7e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 19:19:13 2010 +0000 RISC architectures get their memory operand folding for free. The only folding these load/store architectures can do is converting COPY into a load or store, and the target independent part of foldMemoryOperand already knows how to do that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108099 91177308-0d34-0410-b5e6-96231b3b80d8 commit fedcc0e8e447720ca1882b94c940669945b14568 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 18:19:39 2010 +0000 Use target independent COPY instructions for the fake fextend and fround operations in x87 code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108098 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e2cd07f32ae8055f36efe0732ec4e44e8a08981 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 17:17:35 2010 +0000 Remove redundant branch. Thanks, Anton! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108097 91177308-0d34-0410-b5e6-96231b3b80d8 commit a92d668ef7cd92a48c1275760784a5bedc35305d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 17:13:42 2010 +0000 Remove obsolete README_SSE note. We are generating movaps for all XMM register copies, including scalar floating point values. This is known to be at least as good as movss and movsd for all known architectures up to and including Nehalem because it avoids a partial register stall. The SSEDomainFix pass will switch movaps to movdqa when appropriate (i.e., when operands come from the integer unit). We don't now that switching movaps to movapd has any benefit. The same applies to andps -> pand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108096 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8960eb9e446ae5f5c030afa3d66e61f6bc79563f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 17:01:17 2010 +0000 Remove TargetInstrInfo::copyRegToReg entirely. Targets must now implement TargetInstrInfo::copyPhysReg instead. There is no longer a default implementation forwarding to copyRegToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b6a12f81e90a7e2d8b71e4af00d2aa4a4c77320 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Jul 11 16:49:10 2010 +0000 Make getPhysicalRegisterRegClass non-virtual. Should be able to remove it soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108094 91177308-0d34-0410-b5e6-96231b3b80d8 commit c99565986b9dd83520406754f73524cc9d619b7a Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Jul 11 16:45:17 2010 +0000 Convert uses of getPhysicalRegisterRegClass in VirtRegRewriter.cpp. The first one was used just to call isSafeToMoveRegClassDefs. In general, using a more specific reg class is better, in practice only x86 implements that method and the results are always the same. The second one is in FindFreeRegister and is used to check if a register is in a register class, a much more direct call to contains is better as it should cover more cases and is faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3856549bb5f35b18e207b94331e9cc6b00892e8d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 16:40:46 2010 +0000 Replace copyRegToReg with copyPhysReg for SystemZ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108092 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5db41aec3b20485c140b6523d18ffac7896cf007 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 16:22:13 2010 +0000 Avoid SSE instructions in FastIsel when it is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95c53b7ca32e13554768a4d01de3d8c2131e9aec Author: Chandler Carruth <chandlerc@gmail.com> Date: Sun Jul 11 08:18:12 2010 +0000 Remove two other uses of ATTRIBUTE_UNUSED for variables only used within assert()s, switching to void-casts. Removed an unneeded Compiler.h include as a result. There are two other uses in LLVM, but they're not due to assert()s, so I've left them alone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108088 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3b48fa8cbc7311b2f83872210299ac3402e14fe Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 07:56:13 2010 +0000 Replace copyRegToReg with copyPhysReg for XCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108087 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58fb32c59839e8c5b236b4d1a90631b4b4610c6d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 07:56:09 2010 +0000 Replace copyRegToReg with copyPhysReg for Sparc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108086 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa79c0dbac8b0f7035ccf81e6b97138b628ff6ab Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 07:31:03 2010 +0000 Replace copyRegToReg with copyPhysReg for CellSPU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108084 91177308-0d34-0410-b5e6-96231b3b80d8 commit 529791ec264b0c6996fd6e217c9f9dc4ae229cb3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 07:31:00 2010 +0000 Replace copyRegToReg with copyPhysReg for PowerPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108083 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4a06d900d2f5e1d6c9067e6ea7f9446b1a287df Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 07:30:57 2010 +0000 Fix PIC16 comments referencing copyRegToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108082 91177308-0d34-0410-b5e6-96231b3b80d8 commit d29e12e6151722c846aaf7eb5597a7c2515d6b79 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 06:53:33 2010 +0000 Replace copyRegToReg with copyPhysReg for PIC16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 689a90934f8f2c69988b92f5de0e641bcd2c7f2f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 06:53:30 2010 +0000 Replace copyRegToReg with copyPhysReg for MSP430. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108080 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa74030791ecbd8000e9ce3ba4b93535acb561d1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 06:53:27 2010 +0000 Replace copyRegToReg with copyPhysReg for MBlaze. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108079 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3464e55cd6648a43cb392f41bc06780450f608e3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 06:33:54 2010 +0000 Replace copyRegToReg with copyPhysReg for ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108078 91177308-0d34-0410-b5e6-96231b3b80d8 commit 439af085904803be4265e942d16ad25eac865cd0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 05:44:34 2010 +0000 Replace copyRegToReg with copyPhysReg for Blackfin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108077 91177308-0d34-0410-b5e6-96231b3b80d8 commit 420685a68ee6dd6c1ad3056798fb33d010e96c8a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 05:44:30 2010 +0000 X86InstrInfo::copyRegToReg is dead. Long live copyPhysReg! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108076 91177308-0d34-0410-b5e6-96231b3b80d8 commit 569bb30940259a646ec11627cef6f252bdcf2a2f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 05:17:06 2010 +0000 Remove copyRegToReg from TargetInstrInfo so it is not longer accesible. Use a COPY instruction instead for register copies, or TII::copyPhysReg() after COPY instructions are lowered. Targets should implement copyPhysReg instead of copyRegToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108075 91177308-0d34-0410-b5e6-96231b3b80d8 commit e96e38d5e6907dd4fc6a9c3a50a252498877dd1c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 05:17:02 2010 +0000 Use COPY in X86FastISel::X86SelectRet. Don't try a cross-class copy. That is very unlikely anywy since return value registers are usually register class friendly. (%EAX, %XMM0, etc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02f1a50f1d94deb3f33f855f6b41cb14cf0dfc76 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 05:16:54 2010 +0000 Use COPY for fast-isel bitconvert, but don't create cross-class copies. This doesn't change the behavior of SelectBitcast for X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108073 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6317930e558e79aa00cd9ce0a96fa8c3594eb48 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Jul 11 04:01:49 2010 +0000 Fix va_arg for doubles. With this patch VAARG nodes always contain the correct alignment information, which simplifies ExpandRes_VAARG a bit. The patch introduces a new alignment information to TargetLoweringInfo. This is needed since the two natural candidates cannot be used: * The 's' in target data: If this is set to the minimal alignment of any argument, getCallFrameTypeAlignment would return 4 for doubles on ARM for example. * The getTransientStackAlignment method. It is possible for an architecture to have argument less aligned than what we maintain the stack pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108072 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea962926fe78d59bf8bf4b9f96e59d1be9315bca Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 03:53:50 2010 +0000 Replace copyRegToReg with COPY in FastISelEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108071 91177308-0d34-0410-b5e6-96231b3b80d8 commit 021df9c13c750eccaf9ebe429c393dcf9dcca5a1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 03:31:05 2010 +0000 Use COPY for extracting ImplicitDef'ed values from fast-isel instructions. This assumes that the registers can be copied which is probably a safe assumption. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108070 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9ea89f92973cdc54503b54e3ceb7710577ff0f4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 03:31:00 2010 +0000 Use COPY in FastISel everywhere it is safe and trivial. The remaining copyRegToReg calls actually check the return value (shock!), so we cannot trivially replace them with COPY instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108069 91177308-0d34-0410-b5e6-96231b3b80d8 commit 308d202cc86ada1cd38416bd58f0225a3083e6e2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 01:08:31 2010 +0000 Replace copyRegToReg with copyPhysReg for Mips. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b081c8cc520b1a3194a6c0d51eb566efd8b58ea Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 11 01:08:23 2010 +0000 Replace copyRegToReg with copyPhysReg for Alpha. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 225f72708dc6f4b745c208a3d353c6c1cfd8b821 Author: Dan Gohman <gohman@apple.com> Date: Sun Jul 11 00:08:34 2010 +0000 sdiv overflow is outright undefined behavior, with or without the 'exact' keyword. Thanks to nlewycky for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108064 91177308-0d34-0410-b5e6-96231b3b80d8 commit 471922f2f6868f4f55e82db52fba515339a966d6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jul 10 22:43:03 2010 +0000 Use COPY in targets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108063 91177308-0d34-0410-b5e6-96231b3b80d8 commit 981574e5f487c009a6805627debf3735c7124a0b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jul 10 22:42:59 2010 +0000 Replace copyRegToReg with COPY everywhere in lib/CodeGen except for FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108062 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08266a02772e4cdb7e50ad95014af3695fc95c25 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jul 10 22:42:53 2010 +0000 Only collect subreg extracting copies for later coalescing. This also avoids fatal copies from physregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108061 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43a872371deb4b042d4a356b55f9560d7df47c38 Author: Dan Gohman <gohman@apple.com> Date: Sat Jul 10 22:42:31 2010 +0000 Fix a bug in the code which re-inserts DBG_VALUE nodes after scheduling; if a block is split (by a custom inserter), the insert point may be in a different block than it was originally. This fixes 32-bit llvm-gcc bootstrap builds, and I haven't been able to reproduce it otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1dd6b23c9c3d79893078914b0037e167c8ccee56 Author: Dan Gohman <gohman@apple.com> Date: Sat Jul 10 22:42:12 2010 +0000 Fix this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 149328491b23c702fb6da46605a0d3c2764407b7 Author: Duncan Sands <baldrick@free.fr> Date: Sat Jul 10 20:31:42 2010 +0000 The accumulator tail recursion transform claims to work for any associative operation, but the way it's implemented requires the operation to also be commutative. So add a check for commutativity (and tweak the corresponding comments). This makes no difference in practice since every associative LLVM instruction is also commutative! Here's an example to show the need for commutativity: the accum_recursion.ll testcase calculates the factorial function. Before the transformation the result of a call is ((((1*1)*2)*3)...)*x while afterwards it is (((1*x)*(x-1))...*2)*1 which clearly requires both associativity and commutativity of * to be equal to the original. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 411de265211f3d77b6f2dc0c16b67f13500efed8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jul 10 19:08:25 2010 +0000 Emit COPY instructions instead of using copyRegToReg in InstrEmitter, ScheduleDAGEmit, TwoAddressLowering, and PHIElimination. This switches the bulk of register copies to using COPY, but many less used copyRegToReg calls remain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108050 91177308-0d34-0410-b5e6-96231b3b80d8 commit e416cc19a91cfa014e21c7b69c044ed80d7b13c1 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Jul 10 18:56:35 2010 +0000 Use non-bool values for .count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108048 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe7175ece693e9be5b12d60ad4c1910fbeb3743f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jul 10 17:42:34 2010 +0000 Don't emit st(0)/st(1) copies as FpMOV instructions. Use FpSET_ST? instead. Based on a patch by Rafael Espíndola. Attempt to make the FpSET_ST1 hack more robust, but we are still relying on FpSET_ST0 preceeding it. This is only for supporting really weird x87 inline asm. We support: FpSET_ST0 INLINEASM FpSET_ST0 FpSET_ST1 INLINEASM with and without kills on the arguments. We don't support: FpSET_ST1 FpSET_ST0 INLINEASM nor FpSET_ST1 INLINEASM Just Don't Do It! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41bce9819ed584676dd69678ecedd9f54d09a409 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jul 10 16:30:25 2010 +0000 FileCheckize inline asm FP stack tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108046 91177308-0d34-0410-b5e6-96231b3b80d8 commit eebb1585e55143d2eb4a0c412eb929366671823d Author: Dan Gohman <gohman@apple.com> Date: Sat Jul 10 13:55:45 2010 +0000 Insert IMPLICIT_DEF instructions at the current insert position, not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108045 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1215bf05150a64f94c2d5c07013e57fa24a89942 Author: Chandler Carruth <chandlerc@gmail.com> Date: Sat Jul 10 12:06:22 2010 +0000 Add parentheses yet again to satisfy GCC's warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 340c542246c6d7419a0db0d5a3ee703581e0b47c Author: Dan Gohman <gohman@apple.com> Date: Sat Jul 10 09:01:35 2010 +0000 Add an explicit triple to make this test behave consistently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108041 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36f1a1b69d6891689ee9b9a3aa239a28d4dab81b Author: Dan Gohman <gohman@apple.com> Date: Sat Jul 10 09:01:03 2010 +0000 Fix this XTARGET so that this does doesn't XPASS on non-darwin hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108040 91177308-0d34-0410-b5e6-96231b3b80d8 commit 347a438dde7d7784f5df83f93b5a835130cc1ea7 Author: Dan Gohman <gohman@apple.com> Date: Sat Jul 10 09:00:22 2010 +0000 Reapply bottom-up fast-isel, with several fixes for x86-32: - Check getBytesToPopOnReturn(). - Eschew ST0 and ST1 for return values. - Fix the PIC base register initialization so that it doesn't ever fail to end up the top of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108039 91177308-0d34-0410-b5e6-96231b3b80d8 commit 006c34efbc6f59cfad6dac146f3c5900681dc777 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jul 10 04:04:25 2010 +0000 An x86 function returns a floating point value in st(0), and we must make sure it is popped, even if it is ununsed. A CopyFromReg node is too weak to represent the required sideeffect, so insert an FpGET_ST0 instruction directly instead. This will matter when CopyFromReg gets lowered to a generic COPY instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d1f91df61f280035d4117663d7b40cad7a0ba59 Author: Devang Patel <dpatel@apple.com> Date: Fri Jul 9 21:48:31 2010 +0000 Update DBG_VALUE to refer appropriate stack slot in case of a spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108023 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9e3422f445b047c7aaaa18ffedb9ad381439027 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 9 21:46:19 2010 +0000 Declare YMM subregisters in the right way! Thanks Jakob git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108022 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ffcbc1cde8c058f84a745759a9398aa80ee435b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 9 21:42:42 2010 +0000 Add AVX 256-bit packed MOVNT variants git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b651c590e7d43ff2de79a02fd242a438c6553af Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 21:27:55 2010 +0000 Remember the *_TC opcodes for load/store git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 012bc291b8634394b3aca9b25c0c202de15c3539 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 9 21:20:35 2010 +0000 Add AVX 256-bit unpack and interleave git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108017 91177308-0d34-0410-b5e6-96231b3b80d8 commit b74766e1570ad441bfc0e2599db8d4dd3ed16178 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 20:55:49 2010 +0000 Fix small bug in isMoveInstr -> COPY translation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108013 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18d738c8114189699660c47dd18d005d0009c80d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 20:43:13 2010 +0000 Automatically fold COPY instructions into stack load/store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108012 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51218da5e3b5fbbab4d3b1eb792a11a00f56d3b1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 20:43:09 2010 +0000 Fix a few tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65bcc45af42af77410872af00d19a7294c8989e4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 20:43:05 2010 +0000 Remat uncoalescable COPY instrs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1004e0fd04662cefac5a35b502e32816eaba339e Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jul 9 20:27:06 2010 +0000 In the presence of variable sized objects, allocate an emergency spill slot. rdar://8131327 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a840af1f87ace59cd1426af9da0a5ffa79be2d0 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jul 9 19:44:12 2010 +0000 Clarify what mysterious check means. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108005 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6542db807786cef36b8eeca5a9c5768d02c83143 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 9 19:17:36 2010 +0000 Add a target triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108003 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0c06a59a87ae14c94304e4ef0b3ee2a8c24f646 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 9 18:49:45 2010 +0000 Fix MachineLICM to actually visit inner loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108001 91177308-0d34-0410-b5e6-96231b3b80d8 commit b96be1e4fe3e3a1f42ab05f3ec89db1f8ee6bf3a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 9 18:27:43 2010 +0000 Start the support for AVX instructions with 256-bit %ymm registers. A couple of notes: - The instructions are being added with dummy placeholder patterns using some 256 specifiers, this is not meant to work now, but since there are some multiclasses generic enough to accept them, when we go for codegen, the stuff will be already there. - Add VEX encoding bits to support YMM - Add MOVUPS and MOVAPS in the first round - Use "Y" as suffix for those Instructions: MOVUPSYrr, ... - All AVX instructions in X86InstrSSE.td will move soon to a new X86InstrAVX file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107996 91177308-0d34-0410-b5e6-96231b3b80d8 commit 481fef569d58b0cc03a67192969d20b69a79dd79 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 17:29:08 2010 +0000 Change TII::foldMemoryOperand API to require the machine instruction to be inserted in a MBB, and return an already inserted MI. This target API change is necessary to allow foldMemoryOperand to call storeToStackSlot and loadFromStackSlot when folding a COPY to a stack slot reference in a target independent way. The foldMemoryOperandImpl hook is going to change in the same way, but I'll wait until COPY folding is actually implemented. Most targets only fold copies and won't need to specialize this hook at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107991 91177308-0d34-0410-b5e6-96231b3b80d8 commit 619d52fffeeb3b44b27b509bd2fd07ddb123370b Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:51:20 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107990 91177308-0d34-0410-b5e6-96231b3b80d8 commit db005ef4f16902db1846c3236b58845db7d5e203 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:42:04 2010 +0000 remove useless cast and fix typos in comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107989 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56df43721b461e4cac389aa064f5949451301f4b Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:39:02 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107988 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36ab66619c0321d22ef851fde5fce02b757a81da Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jul 9 16:37:18 2010 +0000 --- Reverse-merging r107947 into '.': U utils/TableGen/FastISelEmitter.cpp --- Reverse-merging r107943 into '.': U test/CodeGen/X86/fast-isel.ll U test/CodeGen/X86/fast-isel-loads.ll U include/llvm/Target/TargetLowering.h U include/llvm/Support/PassNameParser.h U include/llvm/CodeGen/FunctionLoweringInfo.h U include/llvm/CodeGen/CallingConvLower.h U include/llvm/CodeGen/FastISel.h U include/llvm/CodeGen/SelectionDAGISel.h U lib/CodeGen/LLVMTargetMachine.cpp U lib/CodeGen/CallingConvLower.cpp U lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp U lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp U lib/CodeGen/SelectionDAG/FastISel.cpp U lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp U lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp U lib/CodeGen/SelectionDAG/InstrEmitter.cpp U lib/CodeGen/SelectionDAG/TargetLowering.cpp U lib/Target/XCore/XCoreISelLowering.cpp U lib/Target/XCore/XCoreISelLowering.h U lib/Target/X86/X86ISelLowering.cpp U lib/Target/X86/X86FastISel.cpp U lib/Target/X86/X86ISelLowering.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107987 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcf256e43faf749c943a91367bcca69190ad6982 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:31:08 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107984 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86d6b6614d28a7f8790ec8113bd43fae3f2d23b2 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:26:41 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107983 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cec898fb968e5f82cbfba67479143dbba7eb45f Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:22:36 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c257878c2f077dfa92bcd296c5045193edaf78d Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:17:52 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fc80fa0325a570d9da3bcd9813d27bfa311730c Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:08:33 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107980 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a05dcaabca525df5109666a8078e50d8258f865 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 16:01:21 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2249ce27517c89a70f7f1d770b1b88fd5c8bbc44 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 15:53:42 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107978 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1762b599e73adfeecea22c3a6a0b80538548003 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 15:52:36 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 538ec53e9c588fef0fc2a184c9be37bb78a2db65 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 15:40:10 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107976 91177308-0d34-0410-b5e6-96231b3b80d8 commit de4935d0ca9cf097978ac8a4104aab3c5db54432 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 15:25:42 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107975 91177308-0d34-0410-b5e6-96231b3b80d8 commit d814ec658f1f253324cbcaa007e5bb83be94547c Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 15:25:09 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107974 91177308-0d34-0410-b5e6-96231b3b80d8 commit 171e137c51ff8cde1d96c9ce7596fbbac15b7037 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 15:01:36 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107972 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e8fcc1766aa589f0772e7a1a87737665e99414c Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 14:48:08 2010 +0000 cache result of operator* (found by inspection) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107971 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd21951847a4fe84fe9665166ada7523c642abdb Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 14:46:49 2010 +0000 fix clang selfhost issue (shadowing) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107970 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9855ab5df5d851d8aff11a8057a91cb05f4292c7 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 14:36:49 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107969 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef83866dbcf6f25799e6cf5cb1bb1274c216d0e1 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 14:29:14 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107968 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72950af7ed51fb7a921bf61dfc1097b37e63645e Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 14:28:41 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107967 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95cdabb434c5ff8a5a7a69b7979b299228f44dfd Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 14:18:23 2010 +0000 cache result of operator* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107966 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5014069441939e9337da51e5d5151914a5ee53f Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 14:02:13 2010 +0000 cache operator*'s result (in multiple functions) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107965 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e0e066369a57f9b8e593cf219274d9402fc19df Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 14:00:56 2010 +0000 refactor type expressions and cache operator*'s result git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107964 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4568f068c02e17228e788ba57c3a570c01446b01 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 13:17:13 2010 +0000 do not repeatedly dereference use_iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107963 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3319d4c645def82e03f5dda47fe0ab7bfdf63260 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 12:23:50 2010 +0000 do not repeatedly dereference use_iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cf178de264dad4f6f63c70c471a933e6dc89014 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 10:42:13 2010 +0000 two more cases of reuse result of operator*, found by inspection git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107961 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46b6f8400b5a275ab0d33a68f078e30f6132c6cc Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 10:32:31 2010 +0000 another case of reuse result of operator*, it is expensive to recompute git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107960 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06557ca829b8381ba87e132ad0a5a58c0521adef Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 9 09:50:51 2010 +0000 reuse result of operator*, it is expensive to recompute git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67b61274fb324f9e2da6ef01d6943c00688d0041 Author: Lang Hames <lhames@gmail.com> Date: Fri Jul 9 09:19:23 2010 +0000 Added a support for inserting new MBBs into the numbering. Unlike insertMachineInstrInMaps this does not guarantee live intervals will remain correct. The caller will need to manually update intervals to account for the changes made to the CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107958 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a5cbe78eed39f2911d3058297e362dea5377352 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 05:56:21 2010 +0000 Avoid creating %physreg:subidx operands in SimpleRegisterCoalescing::RemoveCopyByCommutingDef. This fixes PR7602. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107957 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34f5586c9f3f54a239b5f875a5900d5b14d920f6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 04:35:38 2010 +0000 Deal with a few remaining spots that assume physical registers have live intervals. This fixes PR7601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81af1a660bdd0e225e86d8780dd2ed91aa7c1c4c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 9 01:56:45 2010 +0000 Merge VEX enums with other x86 enum forms. Also fix all checks of which VEX fields to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107952 91177308-0d34-0410-b5e6-96231b3b80d8 commit afaef64dbd564b6dffe622291c2299832c44c437 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 01:32:11 2010 +0000 Fix test to be less sensitive of regalloc accidents git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107951 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e4466ab77e346b4fc23f493f7ae0fb6d664903f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 01:27:21 2010 +0000 Fix broken isCopy handling in TrimLiveIntervalToLastUse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107950 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61dd50bd011a208b0d48dd4589d6263365a076cb Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 9 01:27:19 2010 +0000 Handle COPY in VirtRegRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107949 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9912fddd5a0083f23f1c0357b0ebef46117a68d9 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 9 01:06:48 2010 +0000 Fix the memoperand offsets in code generated for va_start. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107948 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e9cc6e2daa5b59dc1a02f4e0bfc9baef80a4aa4 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 9 00:59:16 2010 +0000 These changes should have accompanied r107943. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d80cd6461a8174e3091f24fb50a9481a9fc2f34 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jul 9 00:49:41 2010 +0000 have the mc lowering process handle a few tail call forms, lowering them to jumps where possible and turning the TAILCALL marker in the instruction asm string into a proper comment. This eliminates a FIXME and is on the path to finishing: rdar://7639610 - eliminate encoding and asm info for TAILJMPd TAILJMPr TAILJMPn, etc. However, I can't eliminate the encodings for these instructions because the JIT still exists and has its own copy of the encoder, sigh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107946 91177308-0d34-0410-b5e6-96231b3b80d8 commit e48e5c0ec8cbe3cf07c96a3e1f8ab2ed7ce7f643 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jul 9 00:47:20 2010 +0000 Print "dregpair" NEON operands with a space between them, for readability and consistency with other instructions that have lists of register operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107944 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bd73f82e19d02efce65300dd8188dea4b975756 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 9 00:39:23 2010 +0000 Re-apply bottom-up fast-isel, with fixes. Be very careful to avoid emitting a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107943 91177308-0d34-0410-b5e6-96231b3b80d8 commit 125080fc62e3bee3f4379710a621bd55a1799f84 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 9 00:38:14 2010 +0000 Factor out x86 segment override prefix encoding, and also use it for VEX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107942 91177308-0d34-0410-b5e6-96231b3b80d8 commit 402f7bda87d80206738fc80382074e5f9fe44b98 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jul 9 00:38:12 2010 +0000 Reenable DAG combining for vector shuffles. It looks like it was temporarily disabled and then never turned back on again. Adjust some tests, one because this change avoids an unnecessary instruction, and the other to make it continue testing what it was intended to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107941 91177308-0d34-0410-b5e6-96231b3b80d8 commit 603a709fa9e0e3406868ed154fe6cc1e77d2704f Author: Chris Lattner <sabre@nondot.org> Date: Fri Jul 9 00:17:50 2010 +0000 reject pseudo instructions early in the encoder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107939 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d6726b9ce1817ed270c282923a7faab96e4464e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 9 00:07:19 2010 +0000 Remove trailing whitespaces from file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107937 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebbd405e3ed0399f7471574c44d3721296484bdb Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 8 23:46:44 2010 +0000 Change LEA to have 5 operands for its memory operand, just like all other instructions, even though a segment is not allowed. This resolves a bunch of gross hacks in the encoder and makes LEA more consistent with the rest of the instruction set. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107934 91177308-0d34-0410-b5e6-96231b3b80d8 commit de63da6979ee343007de5075f24abe8cda2d0756 Author: Stuart Hastings <stuart@apple.com> Date: Thu Jul 8 23:25:39 2010 +0000 Reverting r107918 and r107919. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107930 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95b9967cd3518d023d1cff89ac8d9c109775d7f0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 8 22:52:47 2010 +0000 Revert "Fix broken isCopy handling in TrimLiveIntervalToLastUse" This reverts commit 107921. It broke the clang self host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107926 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0056a2a2a55d271b3ff870151485810490a08f5f Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 8 22:41:28 2010 +0000 add some long-overdue enums to refer to the parts of the 5-operand X86 memory operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107925 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca6c967fa51d436b30ae41bca57404d28063ff59 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 8 22:39:20 2010 +0000 Relax assertion. In optimized code, it is possible that first instruction is coming from a inlined function. This fixes PR7596 . git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d849d8d105b02e2b689621b3673233c7f4ff995 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 8 22:38:02 2010 +0000 Extension of r107506. Make sure that we don't mark a function as having a call if the inline ASM doesn't need a stack frame. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107922 91177308-0d34-0410-b5e6-96231b3b80d8 commit df7e4cef7128345530a66c3a8e6c770a05fa5d65 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 8 22:30:38 2010 +0000 Fix broken isCopy handling in TrimLiveIntervalToLastUse git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107921 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96a275bc359cab71b0bc87d6bd6eb952b4cf2bba Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 8 22:30:35 2010 +0000 Remember the VR64 register class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107920 91177308-0d34-0410-b5e6-96231b3b80d8 commit 024dda2339d3c2d1bf85435fa534f77adb4189eb Author: Stuart Hastings <stuart@apple.com> Date: Thu Jul 8 22:28:59 2010 +0000 Fix decl/def debug info for template functions. Radar 8063111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 120f23deebf78218c6ec78e4e1e1bb9151e341e4 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 8 22:28:12 2010 +0000 Rework segment prefix emission code to handle segments in memory operands at the same type as hard coded segments. This fixes problems where we'd emit the segment override after the REX prefix on instructions like: mov %gs:(%rdi), %rax This fixes rdar://8127102. I have several cleanup patches coming next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 006b57b3c103ace3e2598d161888833b11b269b1 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 8 22:27:06 2010 +0000 introduce a new X86II::getMemoryOperandNo method, which returns the start of the memory operand for an instruction. Introduce a new "X86AddrSegment" enum to reduce # magic numbers referring to X86 memory operand layout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107916 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a12cb8509fd092271a3e8c899edc1e80aa9d801 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Thu Jul 8 21:15:22 2010 +0000 Switch SPU calling convention (function arguments) to a Tablegen implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107913 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12982bccc41ef14d55886b8e0516a624a1e20f2e Author: Stuart Hastings <stuart@apple.com> Date: Thu Jul 8 20:31:05 2010 +0000 Test case for r107843. Radar 8152866. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107907 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd8cc5c3325283e43e33d08d17521f964a9824ad Author: Kevin Enderby <enderby@apple.com> Date: Thu Jul 8 20:30:44 2010 +0000 Revert some unneeded parts of the change in r107886 for the .weak_def_can_be_hidden directive. Chris pointed out that the MCAsmInfo.h/.cpp chunks aren't needed for this until the compiler starts generating these. And when that happens it will be more convenient for it to be a bool than a const char*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107906 91177308-0d34-0410-b5e6-96231b3b80d8 commit b38cb7da418601768446b8892eef47f9936ca24f Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jul 8 20:12:24 2010 +0000 Check for FiniteOnlyFPMath as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107904 91177308-0d34-0410-b5e6-96231b3b80d8 commit 457e3d86405b1492726b99fefd890f218619584b Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 8 20:10:35 2010 +0000 Reuse DIEInteger for 1. This is frequently used while emitting an attribute using dwarf::DW_FORM_flag form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107903 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03d59d370c90955f712c980224826280272b4fb0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 8 19:46:30 2010 +0000 Teach the x86 floating point stackifier to handle COPY instructions. This pass runs before COPY instructions are passed to copyPhysReg, so we simply translate COPY to the proper pseudo instruction. Note that copyPhysReg does not handle floating point stack copies. Once COPY is used everywhere, this can be cleaned up a bit, and most of the pseudo instructions can be removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107899 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7462804d1236737dc17b25af0d9fb1fea38fd0c6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 8 19:46:25 2010 +0000 Implement X86InstrInfo::copyPhysReg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107898 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34f1e90b50d0842073cdadd5105eb7f54aea5e3c Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 8 17:45:26 2010 +0000 The NEONPreAllocPass should never have to assign fixed registers anymore. This pass can go away entirely soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107892 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8e465e702267336822b9a77ddecf465e728bff4 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 8 17:44:00 2010 +0000 For big-endian systems, VLD2/VST2 with 32-bit vector elements will swap the words within the 64-bit D registers. Use VLD1/VST1 with 64-bit elements instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107890 91177308-0d34-0410-b5e6-96231b3b80d8 commit db4d50bfce09128439674ac7b29a2c01fd8073c3 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jul 8 17:27:23 2010 +0000 After r107880, findSurvivorReg() no longer needs to be public. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107887 91177308-0d34-0410-b5e6-96231b3b80d8 commit 251f2280aceb2a6622ac6046543943982bd3d38e Author: Kevin Enderby <enderby@apple.com> Date: Thu Jul 8 17:22:42 2010 +0000 Added the darwin .weak_def_can_be_hidden directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107886 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd0d752459d4a46dd775fe7d51347208e974a5dd Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 8 16:56:18 2010 +0000 only dereference iterator once in the loop (by caching the result we save a potentially expensive dereference) also use typedefs to shorten type declarations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107883 91177308-0d34-0410-b5e6-96231b3b80d8 commit a87adb5bd6d212b9717bdc44d3341c13a1dc97a7 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 8 16:54:45 2010 +0000 Clean up a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107882 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85a9198574d503b835cb392316cbd7d87932311d Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 8 16:52:57 2010 +0000 remove unneeded parens git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107881 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64ad755e090bcf664ea107f1724a53429fc829b3 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jul 8 16:49:26 2010 +0000 Clean up scavengeRegister() a bit to prefer available regs, which allows the simplification of frame index register scavenging to not have to check for available registers directly and instead just let scavengeRegister() handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107880 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e7d8c747ad185b96a70eb6376fbc021c6eb4aaa Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 8 16:40:22 2010 +0000 Convert EXTRACT_SUBREG to COPY when emitting machine instrs. EXTRACT_SUBREG no longer appears as a machine instruction. Use COPY instead. Add isCopy() checks in many places using isMoveInstr() and isExtractSubreg(). The isMoveInstr hook will be removed later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107879 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bbd475ba1309012f0f5e42742d2fb2677f2417a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 8 16:40:15 2010 +0000 Remove references to INSERT_SUBREG after de-SSA. Fix X86InstrInfo::convertToThreeAddressWithLEA to generate COPY instead of INSERT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107878 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f52ffb14f5276c2a183def2e5916e2e3d48ab4c Author: Duncan Sands <baldrick@free.fr> Date: Thu Jul 8 13:06:08 2010 +0000 Use std::vector rather than SmallVector here because SmallVector causes some versions of gcc to crash when building LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107869 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad250152c49260ffe4c4bb426f641c5c2e8f5e3b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jul 8 12:09:56 2010 +0000 Merge the duplicated iabs optimization in DAGCombiner and let it detected a few more idioms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107868 91177308-0d34-0410-b5e6-96231b3b80d8 commit c29a5160e2b5f3c48d7b2759474507d3a01e4c22 Author: Duncan Sands <baldrick@free.fr> Date: Thu Jul 8 11:54:27 2010 +0000 Do not use std::stack because it causes obscure failures when compiled with MSVC 2010 (PR7367). Instead use a SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107867 91177308-0d34-0410-b5e6-96231b3b80d8 commit b73d96202f865dd3315057a842da77c53368f613 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jul 8 11:39:10 2010 +0000 Teach instcombine to transform (X >s -1) ? C1 : C2 and (X <s 0) ? C2 : C1 into ((X >>s 31) & (C2 - C1)) + C1, avoiding the conditional. This optimization could be extended to take non-const C1 and C2 but we better stay conservative to avoid code size bloat for now. for int sel(int n) { return n >= 0 ? 60 : 100; } we now generate sarl $31, %edi andl $40, %edi leal 60(%rdi), %eax instead of testl %edi, %edi movl $60, %ecx movl $100, %eax cmovnsl %ecx, %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107866 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49f5d2ca55db026b3a264b7dc06929dc0ae7eb12 Author: Duncan Sands <baldrick@free.fr> Date: Thu Jul 8 08:27:18 2010 +0000 Tweak some docs now that the default build is called Debug+Asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107862 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ebf1bd2ca48e5ef5c7d785999e4f60a3fb7bdd8 Author: Eric Christopher <echristo@apple.com> Date: Thu Jul 8 07:36:46 2010 +0000 A slight reworking of the custom patterns for x86-64 tpoff codegen and correct the testcase for valid assembly. Needs more tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107860 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff461b3d47189c11a51046ff460cf76458d3a6f2 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jul 8 06:01:49 2010 +0000 r107852 is only safe with -enable-unsafe-fp-math to account for +0.0 == -0.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107856 91177308-0d34-0410-b5e6-96231b3b80d8 commit cae027607cf2cf28834ce618f0f9c4b9ef8ba1b5 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 8 05:01:41 2010 +0000 Add TargetInstrInfo::copyPhysReg hook and use it from LowerSubregs. This target hook is intended to replace copyRegToReg entirely, but for now it calls copyRegToReg. Any remaining calls to copyRegToReg wil be replaced by COPY instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a6b86ca10e27f6b89a6e65295ac4849313eb764 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jul 8 02:08:50 2010 +0000 Optimize some vfp comparisons to integer ones. This patch implements the simplest case when the following conditions are met: 1. The arguments are f32. 2. The arguments are loads and they have no uses other than the comparison. 3. The comparison code is EQ or NE. e.g. vldr.32 s0, [r1] vldr.32 s1, [r0] vcmpe.f32 s1, s0 vmrs apsr_nzcv, fpscr beq LBB0_2 => ldr r1, [r1] ldr r0, [r0] cmp r0, r1 beq LBB0_2 More complicated cases will be implemented in subsequent patches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107852 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3d1654dd796b34f9b74d685f2964854960e8b2a Author: Dale Johannesen <dalej@apple.com> Date: Thu Jul 8 01:18:23 2010 +0000 Changes to ARM tail calls, mostly cosmetic. Add explicit testcases for tail calls within the same module. Duplicate some code to humor those who think .w doesn't apply on ARM. Leave this disabled on Thumb1, and add some comments explaining why it's hard and won't gain much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98c34fb78519ccd1bcade873c256b08582990e33 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 8 01:00:56 2010 +0000 Revert 107840 107839 107813 107804 107800 107797 107791. Debug info intrinsics win for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107850 91177308-0d34-0410-b5e6-96231b3b80d8 commit d576565988255a84bee4fdf7bc9d2c7cf04d4b06 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jul 8 00:38:54 2010 +0000 When processing frame index virtual registers, consider all available registers (if there are any) and use the one which remains available for the longest rather than just using the first one. This should help enable better re-use of the loaded frame index values. rdar://7318760 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107847 91177308-0d34-0410-b5e6-96231b3b80d8 commit 109779aa37581a4bb44cf26d9c315fc179573176 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jul 8 00:27:05 2010 +0000 Fix the second half of PR7437: scalarrepl wasn't preserving address spaces when SRoA'ing memcpy's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107846 91177308-0d34-0410-b5e6-96231b3b80d8 commit d88a0c761e53c66a462dbbe64014b28d8528745e Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 23:52:58 2010 +0000 Don't forward-declare registers for static allocas, which we'll prefer to materialize as local constants. This fixes the clang bootstrap abort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107840 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71db4115cc01b394b33791efc1c6699f33fe4971 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 23:47:25 2010 +0000 Fix -fast-isel-abort to check the right instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107839 91177308-0d34-0410-b5e6-96231b3b80d8 commit f88eda16cdfc46b7611ae8c8e7cf0b51c74f808c Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 7 23:16:37 2010 +0000 use PrintEscapedString to handle attribute section with escapes in it, PR7399. The asm parser already handles this. This is of dubious utility (see the PR) but the asmprinter was clearly broken here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107834 91177308-0d34-0410-b5e6-96231b3b80d8 commit aaef33770359d9741553bde52d83f99ccb20b613 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jul 7 23:04:56 2010 +0000 fix copies to/from GR8_ABCD_H even more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107832 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86aee5d05f456653f19e78dfa3f1e2240062b18b Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 7 22:53:35 2010 +0000 grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107831 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80c6b0e67645d4d47a66ee45506b5d85f5438621 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 7 22:51:22 2010 +0000 Handle cases where the post-RA scheduler may move instructions between the address calculation instructions leading up to a jump table when we're trying to convert them into a TB[H] instruction in Thumb2. This realistically shouldn't happen much, if at all, for well formed inputs, but it's more correct to handle it. rdar://7387682 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87dfcd77079fd97627fb741551a18f10ae1df1b4 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 7 22:35:13 2010 +0000 finish up support for callw: PR7195 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107826 91177308-0d34-0410-b5e6-96231b3b80d8 commit de45e0583cf9843e1caa0a86d8e2545ad687a44e Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 7 22:27:31 2010 +0000 Implement the major chunk of PR7195: support for 'callw' in the integrated assembler. Still some discussion to be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107825 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5254673d3c180c4e840823ede60006cf81ab29cc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 7 22:24:03 2010 +0000 Add more assembly opcodes for SSE compare instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107823 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45f9d5677d549bfb0f6d7f16517851dba16dee01 Author: Devang Patel <dpatel@apple.com> Date: Wed Jul 7 22:20:57 2010 +0000 One MDNode may be used to create regular DIE as well as abstract DIE. Keep track of abstract subprogram DIEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 554313f1f2cd93312992d625b53c59203e42e5e3 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jul 7 22:15:37 2010 +0000 Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument for consistency sake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107820 91177308-0d34-0410-b5e6-96231b3b80d8 commit c59d4c50615572f3d7581640d02246a5a5f7eba5 Author: Devang Patel <dpatel@apple.com> Date: Wed Jul 7 21:52:21 2010 +0000 Print undefined/unknown debug value as "undef". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9091b36a98aec077e4fc70b519a81164c9712e76 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 21:18:22 2010 +0000 Not all custom inserters create new basic blocks. If the inserter didn't create a new block, don't reset the insert position. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107813 91177308-0d34-0410-b5e6-96231b3b80d8 commit 030211c778a0283a074c7426793ce6ba5a353d70 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 7 21:06:51 2010 +0000 grammar and trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107811 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13a1e23bb8a5f5c058065e28457789a0cc358734 Author: Devang Patel <dpatel@apple.com> Date: Wed Jul 7 20:49:57 2010 +0000 Rename couple of maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64581a329a411a822da3d0c50a8bf13134751257 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jul 7 20:33:27 2010 +0000 Allow copies between GR8_ABCD_L and GR8_ABCD_H. This fixes PR7540. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107809 91177308-0d34-0410-b5e6-96231b3b80d8 commit 492bf0502161f49fceb5d370b52c2a06159e56d1 Author: Reid Kleckner <reid@kleckner.net> Date: Wed Jul 7 20:16:45 2010 +0000 Update the docs for debugging JITed code with GDB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107808 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0c636ef4fda7095ae4379a7b6e6a6be09b6071c Author: Devang Patel <dpatel@apple.com> Date: Wed Jul 7 20:12:52 2010 +0000 80 cols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f7546fad7f46bda0c5d043e08c491cc85958a2c Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 19:20:32 2010 +0000 Implement bottom-up fast-isel. This has the advantage of not requiring a separate DCE pass over MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107804 91177308-0d34-0410-b5e6-96231b3b80d8 commit d61f27b2623dc5f4445468c21665eb9d46f52d4d Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 18:32:53 2010 +0000 Add X86FastISel support for return statements. This entails refactoring a bunch of stuff, to allow the target-independent calling convention logic to be employed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107800 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4071c8e0a1c198acb13637bb1b9a2eadddb845d Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 7 18:24:20 2010 +0000 Add AVX AES instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107798 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa86edeadebf1104b817e97cb52024384be6bd08 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 18:22:13 2010 +0000 Update the insert position after scheduling, which may change the position when emitting multiple blocks when executing a custom inserter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107797 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfdb94b0b75c12fd7a4f5edf2a7a8203a9a90975 Author: Devang Patel <dpatel@apple.com> Date: Wed Jul 7 18:18:18 2010 +0000 Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107796 91177308-0d34-0410-b5e6-96231b3b80d8 commit f048e4c15b8777b6a955c1896d9f74409ab90400 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 17:28:45 2010 +0000 Fix debugging strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107795 91177308-0d34-0410-b5e6-96231b3b80d8 commit d736e61c4fe18f6a04320c81147eafedac30b296 Author: Duncan Sands <baldrick@free.fr> Date: Wed Jul 7 16:48:16 2010 +0000 Issue the warning about being slow whenever optimization is disabled, and not just for Debug+Asserts builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 200ce60f5f2416385dd87a9593b56a17cb0df849 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 16:47:08 2010 +0000 Give FunctionLoweringInfo an MBB member, avoiding the need to pass it around everywhere, and also give it an InsertPt member, to enable isel to operate at an arbitrary position within a block, rather than just appending to a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f7c569d4ebf6b06c14e127804271df1585a83ba Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 16:29:44 2010 +0000 Simplify FastISel's constructor by giving it a FunctionLoweringInfo instance, rather than pointers to all of FunctionLoweringInfo's members. This eliminates an NDEBUG ABI sensitivity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107789 91177308-0d34-0410-b5e6-96231b3b80d8 commit f342d3f42adc8c30822262d92571412549627078 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 16:01:37 2010 +0000 Move FunctionLoweringInfo.h out into include/llvm/CodeGen. This will allow target-specific fast-isel code to make use of it directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65dba79d91f1882ed5c2c5ad020a60fd81ac5941 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 15:54:55 2010 +0000 Split the SDValue out of OutputArg so that SelectionDAG-independent code can do calling-convention queries. This obviates OutputArgReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107786 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd36b99d572469c2f0357aaf9e0fa5e25990025a Author: Chris Lattner <sabre@nondot.org> Date: Wed Jul 7 15:52:27 2010 +0000 add some triple for minix, patch by Kees van Reeuwijk from PR7582 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107785 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb662e00cb97aed38161d8af8dcd55bff2094239 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 15:28:42 2010 +0000 Move ArgFlagsTy, OutputArg, and InputArg out of SelectionDAGNodes.h and into a new header, TargetCallingConv.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107782 91177308-0d34-0410-b5e6-96231b3b80d8 commit a35c4d2a154c53eb5a2d33770eb27aca3ef27a87 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 15:15:27 2010 +0000 Move CallingConvLower.cpp out of the SelectionDAG directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107781 91177308-0d34-0410-b5e6-96231b3b80d8 commit e55b24609de3ff8889bab8b7065a860ccd789505 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jul 7 14:41:22 2010 +0000 Fix more places assuming subregisters have live intervals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107780 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc5f02329fe538994647ae09f0dbcbae1dc821c0 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 7 14:37:04 2010 +0000 adapt condition for changed default build mode who knows how to cover Asserts or Debug separately please do not hesitate to extend this git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107779 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4452da781f96f8ff6026c24982f614b0dc12c73 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 14:33:51 2010 +0000 Add a getFirstNonPHI utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107778 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ecf75e31c29212b613dc55f32bbe700ab1b3309 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 14:30:04 2010 +0000 Minore code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107777 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc88982ee6eb43e70ad3f7bce9a6f00df0cc0937 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 14:27:09 2010 +0000 Remove interprocedural-basic-aa and associated code. The AliasAnalysis interface needs implementations to be consistent, so any code which wants to support different semantics must use a different interface. It's not currently worthwhile to add a new interface for this new concept. Document that AliasAnalysis doesn't support cross-function queries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107776 91177308-0d34-0410-b5e6-96231b3b80d8 commit da5cc5ea0d684c3acf323b026f7d41777b8d3048 Author: Dan Gohman <gohman@apple.com> Date: Wed Jul 7 14:12:28 2010 +0000 Add Debug+Asserts and Release+Asserts to svn:ignore properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107775 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f0f4f704e194e541aaf302186a2c41ae43289b3 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 7 13:58:46 2010 +0000 typo in comment, regeneration not necessary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107774 91177308-0d34-0410-b5e6-96231b3b80d8 commit f98d53cb86f6197f59bd61b3dc87f1e16e148014 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 7 10:34:03 2010 +0000 conditionalize by CallInst::ArgOffset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107767 91177308-0d34-0410-b5e6-96231b3b80d8 commit f07345f50df1edced0a6755ad419da609bffde45 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 7 09:43:45 2010 +0000 conditionalize on CallInst::ArgOffset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107766 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2e332a360c9eb7960fa9e4167d37b40dcbbe461 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jul 7 09:29:07 2010 +0000 minor cosmetic changes that happened to sit in my tree git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a506fc3877d2d37eb79a62e9de2146e5f716a67 Author: Duncan Sands <baldrick@free.fr> Date: Wed Jul 7 07:48:00 2010 +0000 Rename "Release" builds as "Release+Asserts"; rename "Release-Asserts" builds to "Release". The default build is unchanged (optimization on, assertions on), however it is now called Release+Asserts. The intent is that future LLVM releases released via llvm.org will be Release builds in the new sense, i.e. will have assertions disabled (currently they have assertions enabled, for a more than 20% slowdown). This will bring them in line with MacOS releases, which ship with assertions disabled. It also means that "Release" now means the same things in make and cmake builds: cmake already disables assertions for "Release" builds AFAICS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107758 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41e36dc71046adf386d444a20a3fba6f1d56ec5b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 7 03:39:29 2010 +0000 Add AVX SSE4.2 instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 216d7eca5de2c86a1b055ecb618541202d5c4aa6 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 7 01:43:01 2010 +0000 Use only one multiclass to pinsrq instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107750 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3499f778b0add0eec4b3299eede67f789ac32a8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 7 01:33:38 2010 +0000 Now that almost all SSE4.1 AVX instructions are added, move code around to more appropriate sections. No functionality changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107749 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6aedb9d0d42688114949ac58c9847036a439a120 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 7 01:14:56 2010 +0000 Add AVX SSE4.1 insertps, ptest and movntdqa instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26a41f6cbc9ddaded68b79c4c466f9ecb624e1cc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 7 01:01:13 2010 +0000 Add AVX SSE4.1 extractps and pinsr instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ab3ede06b93f4a0d1043663f0e9c9dd9ee60ff1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jul 7 00:32:25 2010 +0000 Revert "Remove references to INSERT_SUBREG after de-SSA" r107725. Buildbot breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10ca99394ad0dd048a3855bc7872b6a1045a9cbe Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jul 7 00:08:54 2010 +0000 Also use REG_SEQUENCE for VTBX instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44648041683fb46d2cc0561c79d82d43434c46d5 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jul 7 00:07:57 2010 +0000 Mark eh.sjlj.set/longjmp custom lowerings as Darwin-only since that's where they've been tested to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107742 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7880fb4cacdd75d70f901e7eb713a4a5adb36a0 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jul 7 00:07:24 2010 +0000 Add AVX SSE4.1 Extract Integer instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 292782e8905f29c84da6b6fc3b787a895ab28b4b Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jul 6 23:44:52 2010 +0000 By default, the eh.sjlj.setjmp/longjmp intrinsics should just do nothing rather than assuming a target will custom lower them. Targets which do so should exlicitly mark them as having custom lowerings. PR7454. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107734 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1f3f08246ae18079603ecf7a2561ceaf2341784 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 6 23:40:35 2010 +0000 Remove references to INSERT_SUBREG after de-SSA git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107732 91177308-0d34-0410-b5e6-96231b3b80d8 commit a791354c250e2b282521b58f7dcbed283905eee8 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jul 6 23:36:25 2010 +0000 Use REG_SEQUENCE nodes to make the table registers for VTBL instructions be allocated to consecutive registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54b72b6e696c1e81a9b4560ca95f469057c59903 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jul 6 23:27:00 2010 +0000 Accept RIP-relative symbols with 'i' constraint, and print the (%rip) only if the 'a' modifier is present. PR 7528. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45b71d61a0ebe197bb4652f2a3be54d174e3af40 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 6 23:26:25 2010 +0000 Convert INSERT_SUBREG to COPY in TwoAddressInstructionPass. INSERT_SUBREG will now only appear in SSA machine instructions. Fix the handling of partial redefs in ProcessImplicitDefs. This is now relevant since partial redef COPY instructions appear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107726 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2009c77a56b542852ffe205cafe245a27f0b97dc Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 6 23:26:23 2010 +0000 Track defs for all aliases in NEONMoveFix. This means that an instruction defining an S register will affect the domain of the parent D register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107725 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0763fba24899517848db159ad1bbe240ee73d9d4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 6 23:15:17 2010 +0000 Add the rest of AVX SSE4.1 packed move with sign/zero extend instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96172b262dd45331754d9e26473a764b9f7174b4 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jul 6 23:06:58 2010 +0000 Make test not hang waiting for input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107721 91177308-0d34-0410-b5e6-96231b3b80d8 commit a18a08a42822b77716ca8424ce6ba6748ec22d14 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 6 23:01:41 2010 +0000 Add part of AVX SSE4.1 packed move with sign/zero extend instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107720 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81c13b6487c768984b8e5fb5b2ab1925b7acdc2d Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 6 22:38:32 2010 +0000 Fix comment from previous patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107717 91177308-0d34-0410-b5e6-96231b3b80d8 commit 310897ba5239e106a5f2eec0e3b539457684fa58 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jul 6 22:36:24 2010 +0000 Add AVX vblendvpd, vblendvps and vpblendvb instructions Update VEX encoding to support those new instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107715 91177308-0d34-0410-b5e6-96231b3b80d8 commit d412eba82dc90ef3f3d812dacf620b66703b9f7a Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 22:19:37 2010 +0000 CanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext. SelectBasicBlock doesn't needs its BasicBlock argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107712 91177308-0d34-0410-b5e6-96231b3b80d8 commit 199a706d1c551fc9010c29c78c4c7ba8a7d9f9ae Author: Devang Patel <dpatel@apple.com> Date: Tue Jul 6 22:08:15 2010 +0000 Propagate debug loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107710 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7033af71deed3e06f3f79ed29f86af972f8022d Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jul 6 21:26:18 2010 +0000 Represent NEON load/store alignments in bytes, not bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63eaf2b735ff415f88edbf0308b1d9bee22edc3b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 6 21:13:03 2010 +0000 One more case assuming that subregs have live ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107700 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1914dfb3ba973a3eecd915852af39fff1902fb22 Author: John McCall <rjmccall@apple.com> Date: Tue Jul 6 21:07:14 2010 +0000 Closing tags start with slashes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107699 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30845b59d94382971770b165469bbac9d6027748 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 6 21:06:39 2010 +0000 Fix buildbot breakage where a def is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107698 91177308-0d34-0410-b5e6-96231b3b80d8 commit 655a40d6891648dcb4de9feb5483acd77dc6d026 Author: Devang Patel <dpatel@apple.com> Date: Tue Jul 6 21:05:17 2010 +0000 Add fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107697 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c0167321c7339e14fc072c573a817df64f12255 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 6 20:51:35 2010 +0000 minor typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107696 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32e46fb4153d5351680dcd9bcbbeb157e7081723 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jul 6 20:31:51 2010 +0000 Be more forgiving when calculating alias interference for physreg coalescing. It is OK for an alias live range to overlap if there is a copy to or from the physical register. CoalescerPair can work out if the copy is coalescable independently of the alias. This means that we can join with the actual destination interval instead of using the getOrigDstReg() hack. It is no longer necessary to merge clobber ranges into subregisters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107695 91177308-0d34-0410-b5e6-96231b3b80d8 commit 220d713a45a7893348743224a0adbd8ca8b8b657 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 20:24:04 2010 +0000 Reapply r107655 with fixes; insert the pseudo instruction into the block before calling the expansion hook. And don't put EFLAGS in a mbb's live-in list twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6022abc70e53cc893969fe206d4bf03fbb974196 Author: Matt Fleming <matt@console-pimps.org> Date: Tue Jul 6 18:44:02 2010 +0000 Add X86_64 ELF relocation values and ELF64 relocation classes. Patch from Roman Divacky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107688 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b9682335f86f4ca2877509531500c26f5b690a9 Author: Matt Fleming <matt@console-pimps.org> Date: Tue Jul 6 18:36:57 2010 +0000 Add some more ELF OSABI values as found in the System V Application Binary Interface specification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107685 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cd4929b2c2d7a6dc7b8a43c42209a8a164658d7 Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 6 18:35:20 2010 +0000 Fix to 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9797e190ed0cca8726d3bddbfc74ef199ab09c53 Author: John McCall <rjmccall@apple.com> Date: Tue Jul 6 18:34:49 2010 +0000 Provide IRBuilder conveniences for creating integer constants at common widths, and give a more precise return type for some of the type-creation methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48e873de934e9f0c241c6f5bb5b37be555090daf Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Jul 6 18:24:09 2010 +0000 Alphabetize the list of function parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107680 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37ec180e047f369e8c4979f9b4073c5c749dec30 Author: Devang Patel <dpatel@apple.com> Date: Tue Jul 6 18:18:32 2010 +0000 Fix PR7545 crash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107678 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b2d3228b5c83b60c94b6aa208bcf20f6602ce51 Author: John McCall <rjmccall@apple.com> Date: Tue Jul 6 18:07:52 2010 +0000 Provide an abstraction to save and restore the current insertion point of an IRBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107677 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93b879cde96438d78eb51bea0652896ff71ff7d3 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Jul 6 16:24:34 2010 +0000 Don't create neon moves in CopyRegToReg. NEONMoveFixPass will do the conversion if profitable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107673 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca7a3a8d536fb6551e2a3cc9e0c100981fc15d0f Author: Chris Lattner <sabre@nondot.org> Date: Tue Jul 6 15:59:27 2010 +0000 tighten up this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107670 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca46ee84349cb83588d6b37da050d5b595384990 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jul 6 15:52:15 2010 +0000 Bring the list of passes and their descriptions up to date. Patch by Kenneth Hoste. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107669 91177308-0d34-0410-b5e6-96231b3b80d8 commit 015d56d7518c65d91e0d1cf61a54546189983738 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 15:49:48 2010 +0000 Revert r107655. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107668 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5aa4bd3a3b7b8c7d0477ffa889bd64cfebc9f868 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jul 6 15:44:11 2010 +0000 second round of low-level interface squeeze-out: making all of CallInst's low-level operand accessors private If you get compile errors I strongly urge you to update your code. I tried to write the necessary clues into the header where the compiler may point to, but no guarantees. It works for my GCC. You have several options to update your code: - you can use the v2.8 ArgOperand accessors - you can go via a temporary CallSite - you can upcast to, say, User and call its low-level accessors if your code is definitely operand-order agnostic. If you run into serious problems, please comment in below thread (and back out this revision only if absolutely necessary): <http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107667 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89b5c0cff34008dd9c429a0a393ce009998b5a62 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 15:39:54 2010 +0000 Add versions of OutputArgReg, AnalyzeReturn, and AnalyzeCallOperands which do not depend on SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107666 91177308-0d34-0410-b5e6-96231b3b80d8 commit d169f03a087c29caddf0f896b2b1d0cbf2094354 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 15:35:06 2010 +0000 Add a new CCValAssign LocInfo value, and a comment explaining what it should be used for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107661 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae2d3e4081f8131ebcac56a2b682fdb70fbc353e Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 15:31:55 2010 +0000 Make getMinimalPhysRegClass' comment mention what makes it different from getPhysicalRegisterRegClass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107660 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6377532373f579c2139f84a64a5743a29bd9a31 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 15:26:33 2010 +0000 Note the relationship between C99 restrict and LLVM noalias, and clarify a few other things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107659 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1355bf09d4b027c6b81b43214d2d4beaba2b8ba6 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Jul 6 15:24:56 2010 +0000 Fix a major regression on COFF targets introduced by r103267: 'discardable' section means that it is used only during the program load and can be discarded afterwards. This way *only* debug sections can be discarded, but not the opposite. Seems like the copy-and-pasto from ELF code, since there it contains the reverse flag ('alloc'). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107658 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ed5a76f900eab7e35e7dce03c72ea99b31239c9 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 15:23:00 2010 +0000 Add some more TODO comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107657 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8999bdb29e9bbcdb7ecd36c0916233915690b18 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 15:21:57 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 612adc55c779a503dc91ef18d7db61e71e98c502 Author: Dan Gohman <gohman@apple.com> Date: Tue Jul 6 15:18:19 2010 +0000 Fix a bunch of custom-inserter functions to handle the case where the pseudo instruction is not at the end of the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54de32b3a620617f59ed836e691532bec4cb525f Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 6 05:20:13 2010 +0000 Remove mistakenly added test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24210d85b88df69ba08e6f5be5940be9d7da181f Author: Eric Christopher <echristo@apple.com> Date: Tue Jul 6 05:18:56 2010 +0000 Fix up -fstack-protector on linux to use the segment registers. Split out testcases per architecture and os now. Patch from Nelson Elhage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00350122867622b8ed04d944c14b1448e0e73e0b Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Jul 6 03:53:43 2010 +0000 Detabify this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107637 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc708b224c9432b4365c64e69c9c54b2453ba3b9 Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Jul 6 03:53:22 2010 +0000 Add default value to setIsNoInline for parity with the other methods of its kind. Also fold some functions that fit on a line to a single line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107636 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01d77516271a512cc7ad132003565336bd5b7130 Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Jul 6 03:52:37 2010 +0000 Fix typo 'getter' where 'setter' was intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107635 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6b46d25a5a5dd73556b901ba12bd3c78690bad3 Author: Eric Christopher <echristo@apple.com> Date: Mon Jul 5 19:26:33 2010 +0000 Have the X86 backend use Triple instead of a string and some enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107625 91177308-0d34-0410-b5e6-96231b3b80d8 commit 569c346b4471c5897cb999d792b26446bd8ebb8d Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Jul 5 18:40:09 2010 +0000 Remove some unused/redundant code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107622 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4205b046e58b5d28a547c68b55266abdf257d4da Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 5 05:53:14 2010 +0000 more tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107615 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6e090899dbae7f6a6c81cf4c7783296f95b8f72 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 5 05:52:56 2010 +0000 another v2f32 case, in this case showing poor codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27665f880998e053da7ab62970f25b3c16742566 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 5 05:48:41 2010 +0000 some notes about suboptimal insertps's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47762355815e7c820eb2d3454877daf69cedfad0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 5 05:36:21 2010 +0000 random tidying git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6922cb3d6ff1d5d414f58a71623839faa96fde6f Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 5 04:38:33 2010 +0000 rip out even more sporadic v2f32 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107610 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca969d30e03baccf694e4f83a0def85de4e9dbef Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 5 04:36:27 2010 +0000 rip out the various v2f32 "mmx" handling logic, now that v2f32 is illegal on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1829a36d0613b6d9f264ad51af6591452a5bed8e Author: Chris Lattner <sabre@nondot.org> Date: Mon Jul 5 03:56:55 2010 +0000 fix test on non-x86 hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107608 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2557d8f4183a60ec9121eaf657216910f2ca8709 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Jul 4 23:24:23 2010 +0000 Print symbolic subreg indices on REG_SEQUENCE and INSERT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107602 91177308-0d34-0410-b5e6-96231b3b80d8 commit a38ba9f936afaf0d6b5b253e1e2aa759dfc2919c Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 4 23:07:25 2010 +0000 Just rip v2f32 support completely out of the X86 backend. In the example in the testcase, we now generate: _test1: ## @test1 movss 4(%esp), %xmm0 addss 8(%esp), %xmm0 movl 12(%esp), %eax movss %xmm0, (%eax) ret instead of: _test1: ## @test1 subl $20, %esp movl 24(%esp), %eax movq %mm0, (%esp) movq %mm0, 8(%esp) movss (%esp), %xmm0 addss 12(%esp), %xmm0 movss %xmm0, (%eax) addl $20, %esp ret v2f32 support did not work reliably because most of the X86 backend didn't know it was legal. It was apparently only added to support returning source-level v2f32 values in MMX registers in x86-32 mode. If ABI compatibility is important on this GCC-extended-vector type for some reason, then the frontend should generate IR that returns v2i32 instead of v2f32. However, we generally don't try very hard to be abi compatible on gcc extended vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0360fdf9b1829810f5477696f5663432751391af Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 4 22:57:10 2010 +0000 fix PR7518 - terrible codegen of <2 x float>, by only marking v2f32 as legal in 32-bit mode. It is just as terrible there, but I just care about x86-64 and noone claims it is valuable in 64-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107600 91177308-0d34-0410-b5e6-96231b3b80d8 commit b905a692e7e9f736d764e1aebe506322b4da1871 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 4 22:56:10 2010 +0000 indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107599 91177308-0d34-0410-b5e6-96231b3b80d8 commit 854918d5b282926cabe605d9b695042add7640ae Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Jul 4 18:52:05 2010 +0000 Infer alignments of fixed frame objects when they are constructed. This ensures remat'ed loads from fixed slots have the right alignments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 828db679e25e9e15746c9067fa8d19445502700a Author: Chris Lattner <sabre@nondot.org> Date: Sun Jul 4 17:36:43 2010 +0000 indmemrem and lowerallocs are gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107587 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd95c59f3c1436df95f339e6e618a5e3c871355e Author: Bill Wendling <isanbard@gmail.com> Date: Sun Jul 4 09:16:57 2010 +0000 Revert r107583. I no longer think that this is the way to solve the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107585 91177308-0d34-0410-b5e6-96231b3b80d8 commit c349244d166e23c9aed03e1eddfeb2562e7338fa Author: Bill Wendling <isanbard@gmail.com> Date: Sun Jul 4 08:59:55 2010 +0000 Mark sse_load_f32 and sse_load_f64 as having memory operands (SDNPMemOperand). This way when they're morphed the memory operands will be copied as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107583 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7157c873f1e9cac08eff22f0cac5055c675a50c Author: Gabor Greif <ggreif@gmail.com> Date: Sun Jul 4 08:59:25 2010 +0000 back out r107580, I have seen what I wanted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107582 91177308-0d34-0410-b5e6-96231b3b80d8 commit d48b237ebaf77b752bc5589a8116e96659f27402 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Jul 4 08:58:43 2010 +0000 Proper indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107581 91177308-0d34-0410-b5e6-96231b3b80d8 commit 578a2985209a4fc03da0fa1c56b90ecaf2828149 Author: Gabor Greif <ggreif@gmail.com> Date: Sun Jul 4 07:42:31 2010 +0000 [another test commit, just to tickle the selfhost buildbots; I'll back out in a few minutes] second round of low-level interface squeeze-out: making all of CallInst's low-level operand accessors private If you get compile errors I strongly urge you to update your code. I tried to write the necessary clues into the header where the compiler may point to, but no guarantees. It works for my GCC. You have several options to update your code: - you can use the v2.8 ArgOperand accessors - you can go via a temporary CallSite - you can upcast to, say, User and call its low-level accessors if your code is definitely operand-order agnostic. If you run into serious problems, please comment in below thread (and back out this revision only if absolutely necessary): <http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107580 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed884bca791e0108d1c2f0e76af30953035e184c Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 3 08:43:32 2010 +0000 Minor amendment to switch-lowering improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107569 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3af44f666215e638e01b53d8da401e0a4922b7e Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jul 3 07:38:12 2010 +0000 Note switch-lowering inefficiency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bad9ad54951d7c2d62bb3599e8a13a0269a246e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jul 3 01:37:03 2010 +0000 Add AVX SSE4.1 blend, mpsadbw and vdp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107560 91177308-0d34-0410-b5e6-96231b3b80d8 commit 285e7f0cf4f05a4c2fe441519722b35d9380240c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jul 3 01:15:47 2010 +0000 Add AVX SSE4.1 binop (some forms of packed max,min,mul,pack,cmp) instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107558 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ce3c76fd45ed19ed8796e9f41833efd3a861124 Author: Eric Christopher <echristo@apple.com> Date: Sat Jul 3 01:09:18 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01e2c18ab63ef4b51138a9cc349e807c4ab51b83 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jul 3 00:49:21 2010 +0000 Add AVX SSE4.1 Horizontal Minimum and Position instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107552 91177308-0d34-0410-b5e6-96231b3b80d8 commit aca758c082e7b4d778f6e97f73de306153484f98 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jul 3 00:40:23 2010 +0000 Remove isSS argument from CreateFixedObject. Fixed objects cannot be spill slots so it's always false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107550 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d657ab35d8e078a0b199a88e7f50e09aea2835a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jul 3 00:37:44 2010 +0000 Add AVX SSE4.1 round instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0978d1d0ab6241dfe0ecba14f92361faa5e63801 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jul 3 00:04:37 2010 +0000 Detect and handle COPY in many places. This code is transitional, it will soon be possible to eliminate isExtractSubreg, isInsertSubreg, and isMoveInstr in most places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107547 91177308-0d34-0410-b5e6-96231b3b80d8 commit 911ae8536ec55d93ff8ba4d3a3db3614951d24f7 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 23:52:36 2010 +0000 Document that BasicAA respects noalias, while InterproceduralBasicAA does not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107546 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f095deda552225a9fc10ed2ac17423fc4082189 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 23:46:54 2010 +0000 Describe which dependencies are relevant to noalias, and document how AliasAnalyses have the choice to respect noalias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107544 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd14281454addf6f6b616a13fc6d74e2378ba5d4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 2 23:27:59 2010 +0000 Simple refactoring of SSE4.1 instructions, making room for the AVX forms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107540 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e87fb6808f9c808f2ca78550b29ae16a81269f3 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 23:18:08 2010 +0000 Add some html anchors, to allow attributes to be linked to directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107538 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3354d2cbcbf2efe268e1ee4900c9a6892c6eedb3 Author: Eric Christopher <echristo@apple.com> Date: Fri Jul 2 23:17:38 2010 +0000 80-col fixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107537 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad28bc223c3ce6dee7f3e23782222cbff0647460 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 2 22:29:50 2010 +0000 Add a new target independent COPY instruction and code to lower it. The COPY instruction is intended to replace the target specific copy instructions for virtual registers as well as the EXTRACT_SUBREG and INSERT_SUBREG instructions in MachineFunctions. It won't we used in a selection DAG. COPY is lowered to native register copies by LowerSubregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36c43ca59483447fc2641fb102e1093457b25ec7 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jul 2 22:06:54 2010 +0000 - Add support for the rest of AVX SSE3 instructions - Fix VEX prefix to be emitted with 3 bytes whenever VEX_5M represents a REX equivalent two byte leading opcode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107523 91177308-0d34-0410-b5e6-96231b3b80d8 commit 222611571d91f5cebd212a9982096b18c95bb0b8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 2 21:44:22 2010 +0000 Clean up TargetOpcodes.h a bit, and limit the number of places where the full list of predefined instructions appear. Add some consistency checks. Ideally, TargetOpcodes.h should be produced by TableGen from Target.td, but it is hardly worth the effort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107520 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e625f49d140e234c432e1f277b25b777a0f40ee Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jul 2 21:23:37 2010 +0000 Custom inserters (e.g., conditional moves in Thumb1 can introduce new basic blocks, and if used as a function argument, that can cause call frame setup / destroy pairs to be split across a basic block boundary. That prevents us from doing a simple assertion to check that the pairs match and alloc/ dealloc the same amount of space. Modify the assertion to only check the amount allocated when there are matching pairs in the same basic block. rdar://8022442 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c593555b9541b9f82ed3b827313eeb8d3a2d49e Author: Devang Patel <dpatel@apple.com> Date: Fri Jul 2 21:13:23 2010 +0000 MDString is already checked earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 891cd036ddf45f10be9726e2883c48246eb8097c Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jul 2 21:07:09 2010 +0000 Remove early IT block formation. It's not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107513 91177308-0d34-0410-b5e6-96231b3b80d8 commit db550f17205603939a89cd7cf41e852715f0acff Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jul 2 20:36:18 2010 +0000 - Two-address pass should not assume unfolding is always successful. - X86 unfolding should check if the instructions being unfolded has memoperands. If there is no memoperands, then it must assume conservative alignment. If this would introduce an expensive sse unaligned load / store, then unfoldMemoryOperand etc. should not unfold the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b3158cc53afb744b365f0e46b06b253fa9f5c54 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 20:20:50 2010 +0000 Remove an unused enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f0ad7571f02e015ff1e448b8077b9f2baf0662e Author: Dale Johannesen <dalej@apple.com> Date: Fri Jul 2 20:16:09 2010 +0000 Propagate the AlignStack bit in InlineAsm's to the PrologEpilog code, and use it to determine whether the asm forces stack alignment or not. gcc consistently does not do this for GCC-style asms; Apple gcc inconsistently sometimes does it for asm blocks. There is no convenient place to put a bit in either the SDNode or the MachineInstr form, so I've added an extra operand to each; unlovely, but it does allow for expansion for more bits, should we need it. PR 5125. Some existing testcases are affected. The operand lists of the SDNode and MachineInstr forms are indexed with awesome mnemonics, like "2"; I may fix this someday, but not now. I'm not making it any worse. If anyone is inspired I think you can find all the right places from this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107506 91177308-0d34-0410-b5e6-96231b3b80d8 commit c076a602a0c2a8cb261480ae704823e19cda7b4d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 2 19:54:47 2010 +0000 Remove invalid assert git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107505 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5008bd46300e4f9813bd6095796c223e95c46bc7 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 2 19:54:45 2010 +0000 Handle unindexed instructions in SlotIndices. SlotIndexes::insertMachineInstrInMaps would crash when trying to insert an instruction imediately after an unmapped debug value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107504 91177308-0d34-0410-b5e6-96231b3b80d8 commit 553e08526a1c09a1de8eafbc139ad12385e65d1f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 2 19:54:40 2010 +0000 Properly handle debug values during inline spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c94ab6ca536bf0ca23be2f9a9ab6a235b995a38 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 2 19:26:28 2010 +0000 beautify output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fca04665e7988098efad92f897f9b92d17da487 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 2 19:08:46 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55476dd8e6ad0a2012213586462fafb4d50105d0 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 18:43:05 2010 +0000 Don't claim to preserve AliasAnalysis. First, this is doesn't actually have any effect, and second, deleting stores can potentially invalidate an AliasAnalysis, and there's currently no notification for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fa6cbb15a7878b5c70d7ab15913b8501b63bbe1 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 18:41:32 2010 +0000 Reword the definition of the noalias attribute. The intention is for the noalias argument on function attributes be usable to model the C99 restrict keyword on arguments, and to allow AliasAnalysis to consider a noalias-attributed argument to be an "identified object". To support this, refactor a new "based on" concept out of the current pointer aliasing "associated" concept. This "based on" concept is very similar to (though it is not identical with) the "based on" concept in C99. Also, reword the definition of NoAlias to more closely describe the concept that the optimizer uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85a98abe15861f1510314ea7d56e1f2b2307081e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jul 2 17:44:57 2010 +0000 Rematerialize as much as possible before inserting spills and reloads. This allows us to recognize the common case where all uses could be rematerialized, and no stack slot allocation is necessary. If some values could be fully rematerialized, remove them from the live range before allocating a stack slot for the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ef567c118830b593ff5962608d2d5707f569dab Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jul 2 17:41:59 2010 +0000 80-column and trailing whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5956487d41a6d778c03f0a383e7f2d91253a73e8 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jul 2 17:38:34 2010 +0000 grammar tweaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107489 91177308-0d34-0410-b5e6-96231b3b80d8 commit f62e6e6234ce8ad5671f28a71bd295e07f3f8e63 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jul 2 17:23:44 2010 +0000 Fix incorrect asm-printing of some NEON immediates. Fix weak testcase so that it checks the immediate values, not just the instructions opcodes. Radar 8110263. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107487 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ef9e9e69bbac9c0ab2718b4dce4c5f4ec704bf8 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 2 13:37:16 2010 +0000 use ArgOperand API (found by my previous commit) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107482 91177308-0d34-0410-b5e6-96231b3b80d8 commit 661c461428bb3111461fb0d4aaade8d2bedea360 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 2 13:27:50 2010 +0000 back out r107480, it was just testing the waters anyway... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5720314ac20f6e308952b267e068b4ebe4a3cada Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jul 2 13:21:55 2010 +0000 [test commit, just to tickle the selfhost buildbots; I'll back out in a few minutes] second round of low-level interface squeeze-out: making all of CallInst's low-level operand accessors private If you get compile errors I strongly urge you to update your code. I tried to write the necessary clues into the header where the compiler may point to, but no guarantees. It works for my GCC. You have several options to update your code: - you can use the v2.8 ArgOperand accessors - you can go via a temporary CallSite - you can upcast to, say, User and call its low-level accessors if your code is definitely operand-order agnostic. If you run into serious problems, please comment in below thread (and back out this revision only if absolutely necessary): <http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20f45e8fe3f1fe647b34c5105981df1556efa64e Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 01:20:16 2010 +0000 Comment a non-obvious member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107458 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06ec84a132d85d9c0397c99ef769759963bcfbf6 Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 00:35:34 2010 +0000 IndirectBr is not safe to speculatively execute (!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b3357baf845cdf87321cdac9aa4e048e61ce15b Author: Dan Gohman <gohman@apple.com> Date: Fri Jul 2 00:10:16 2010 +0000 Rename CreateReg to CreateRegs, and MakeReg to CreateReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107451 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe2c4cb9725c48c0d864083c051f5007c43bf0cc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jul 1 23:10:49 2010 +0000 Shrink down SSE3 code by more multiclass refactoring git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107448 91177308-0d34-0410-b5e6-96231b3b80d8 commit e15cc977c452aa527cbd88238773f4d03eb8087f Author: Dale Johannesen <dalej@apple.com> Date: Thu Jul 1 22:57:11 2010 +0000 Prevent test from hanging waiting for input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107446 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7aa9c93178f35e834b3fb75c16677d0ce65f736 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 1 22:38:24 2010 +0000 Make the "linker_private" linkage type emit a non-weak symbol to the file. It will still be stripped by the linker when it generates the final image. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107440 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb0022d3b19cef1750e259060e5f9665f0e92867 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jul 1 22:33:18 2010 +0000 Shrink down SSE3 code by some multiclass refactoring - 1st part git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a5caf17fba5e5a95f6be811ddf55a21964243d2 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jul 1 22:26:26 2010 +0000 ARM function alignments were off by a power of two. svn 83242 changed getFunctionAlignment and the corresponding use of that value in the ARM asm printer, but now we're using the standard asm printer. The result of this was that function alignments were dropped completely for Thumb functions. Radar 8143571. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70d8fcc0e3aa3e0664de362b22198fd61b2fe11a Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jul 1 21:55:59 2010 +0000 Implement the "linker_private_weak" linkage type. This will be used for Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. However, this linkage isn't specific to Objective-C. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". Currently only supported on Darwin platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107433 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c9ff2ee21f400392799cbe4ae87130b1954b710 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 1 21:46:41 2010 +0000 evil hack to coerce external users (projects) to update their code to high-level interfaces If you get compile errors in your project please update your code according to the comments. This is a re-commit of r107396 which causes compile errors for the indicated usage patterns instead of link errors (which are less easy to fix because of missing source location). If you get compile errors please perform following functionally equivalent transformations: - getOperand(0) ---> getCalledValue() - setOperand(0, V) ---> setCalledFunction(V) This will make your code more future-proof and avoid potentially hard-to-debug bugs. please refer to this thread on llvm-dev: <http://groups.google.com/group/llvm-dev/browse_thread/thread/64650cf343b28271> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 517b22fc43cd7975c6a2babe970d38fbe44beaa0 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 1 21:38:08 2010 +0000 Do not require line number entry for undefined local variable. This is a regression caused by r106792 and caught by gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107430 91177308-0d34-0410-b5e6-96231b3b80d8 commit 538299892010107def71d3ec03d2c442f79723d9 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 1 20:48:51 2010 +0000 MC: Fix some stray hunks I didn't intend to commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107428 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d87675b0e980505d794f873a5e29fd050861bb6 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 1 20:41:56 2010 +0000 MC: Pass the target instance to the AsmParser constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107426 91177308-0d34-0410-b5e6-96231b3b80d8 commit 257f52417f47d55d4fc2831dd53d6d3a0106d8b7 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 1 20:20:05 2010 +0000 Remove stray comma. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107425 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7fd1b9064b24e1ef916f423b78c9d11f267297d Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 1 20:20:01 2010 +0000 MC: Fix an error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107424 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33b1abb7f959672997c2754f19b5211cf73129dc Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 20:08:40 2010 +0000 Remove context sensitivity concerns from interprocedural-basic-aa, and make it more aggressive in cases where both pointers are known to live in the same function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107420 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8851cf6fadff99338b3be53391aa034c3710b5b2 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jul 1 20:07:24 2010 +0000 MC: Move COFF enumeration constants to llvm/Support/COFF.h, patch by Michael Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 290c535084f898c05d8a3af0898a7daea8bf6a01 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 1 19:58:05 2010 +0000 Preserve debug info for only extracted symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107417 91177308-0d34-0410-b5e6-96231b3b80d8 commit a948092e6c977dc4e7fdc3b1c893bb34fa6024b4 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 1 19:49:20 2010 +0000 Debugging infomration is encoded in llvm IR using metadata. This is designed such a way that debug info for symbols preserved even if symbols are optimized away by the optimizer. Add new special pass to remove debug info for such symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107416 91177308-0d34-0410-b5e6-96231b3b80d8 commit b58f955918f76661190fe01fb07267824c244a92 Author: Devang Patel <dpatel@apple.com> Date: Thu Jul 1 18:27:46 2010 +0000 If a named mdnode is removed then mark module as changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107412 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26a790cc838094b72003071babbbf74b1339c7cc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jul 1 17:35:02 2010 +0000 Move SSE3 Move patterns to a more appropriate section Add AVX SSE3 packed horizontal and & sub instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107405 91177308-0d34-0410-b5e6-96231b3b80d8 commit d007dfe4ab20e8a44a84efbd2c034888522ee8d8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jul 1 17:08:18 2010 +0000 Add AVX SSE3 packed addsub instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107404 91177308-0d34-0410-b5e6-96231b3b80d8 commit e85d6754eaedfc493b1e6890040212c6371fc5c8 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 1 15:42:00 2010 +0000 back out r107396 for now, it needs another minor change to function as advertised git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107399 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c8534c518464e6946acf909b9a80e20c6f874a9 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 1 15:16:35 2010 +0000 evil hack to coerce external users (projects) to update their code to high-level interfaces If you get compile errors in your project please update your code according to the comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 814e2cfe9b61ed10e5dc14644d00f322867383b1 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 12:15:30 2010 +0000 Temporarily disable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107393 91177308-0d34-0410-b5e6-96231b3b80d8 commit 553509286867c5d25e605bc86fff47b0c53e4fa0 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 1 11:26:05 2010 +0000 reformulate CallSiteBase::getCallee to adapt to CallInst::ArgOffset, and make it work even if CallInst::op_* are private git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107392 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1dc993c9ac8c57aec940dab95444e1c3bb50bb3 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jul 1 10:41:37 2010 +0000 reformulate CallSite::getCallee to adapt to CallInst::ArgOffset, and make it work even if CallInst::op_* are private git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107390 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4d6757ee3bfe3d77e5f9414b4ee40d43509c852 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 03:57:05 2010 +0000 Use FuncInfo's isExportedInst accessor method instead of doing the work manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107384 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68a508ab2fc80ad962563a60a090360d7ecd7ea9 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 03:55:39 2010 +0000 Rename CreateRegForValue to CreateReg, and change its argument from a Value to a Type, because it doesn't actually care about the Value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107383 91177308-0d34-0410-b5e6-96231b3b80d8 commit c66a288851d3b226744f8c3972d56f06c365d01b Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 03:49:59 2010 +0000 Fast isel no longer needs DeadMachineInstrElim to clean up after it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7498adf0d34b643fdf5d27d747b06d6582110fd4 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 03:49:38 2010 +0000 Teach fast-isel to avoid loading a value from memory when it's already available in a register. This is pretty primitive, but it reduces the number of instructions in common testcases by 4%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107380 91177308-0d34-0410-b5e6-96231b3b80d8 commit def159ed85fd4593f1d9a8e94aa9a75c7e3dd707 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 02:58:57 2010 +0000 Enable on-demand fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107377 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b60fa88440608720abf62b81e20870fc62f1ab9 Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 02:58:21 2010 +0000 Fix X86FastISel's add folding to actually work, and not fall back to SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6613eacb4bf71bfedecd33ab67000017b5e863bc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jul 1 02:33:39 2010 +0000 Add AVX SSE3 replicate and convert instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4738b45d4b9a0d844bbf793b4c4dca88cf46cb1a Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 02:27:15 2010 +0000 Teach X86FastISel to fold constant offsets and scaled indices in the same address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107373 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1c730cf491cd613781c788602b0476fead0213d Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 01:59:43 2010 +0000 Reapply r106422, splitting the code for materializing a value out of SelectionDAGBuilder::getValue into a helper function, with fixes to use DenseMaps safely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107371 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc0c09ec053bfc9f1817f56bebe97fdeb1c4774f Author: Dan Gohman <gohman@apple.com> Date: Thu Jul 1 01:33:21 2010 +0000 Don't use operator[] here, because it's not desirable to insert a default value if the search fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 602e05168b6b9559ed2e6aeaf59a25be087b6ffb Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jul 1 01:20:06 2010 +0000 - Add AVX SSE2 Move doubleword and quadword instructions. - Add encode bits for VEX_W - All 128-bit SSE 1 & SSE2 instructions that are described in the .td file now have a AVX encoded form already working. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107365 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fca7a648c570f350caa18e7191713dc6976009a Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Jul 1 01:00:37 2010 +0000 Test for the -filelist fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107363 91177308-0d34-0410-b5e6-96231b3b80d8 commit d94d174cc0aa6f823589eb77095404afc65f14dd Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Jul 1 01:00:32 2010 +0000 Make -filelist work with -linker=c++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107362 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08c555a1fd38a4e2e27f88d340e3c5daaba689df Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Jul 1 01:00:27 2010 +0000 80-col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107361 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d0b6395f49e53e021f14aea9aa3deb42a91cb4b Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Jul 1 01:00:22 2010 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e2fe49db5bb853a6bac8208a8be67bab6e0ecda Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jul 1 00:13:04 2010 +0000 Add memory operand folding support to InlineSpiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3682fbf0ea5c48a40b5e7f227efbf149ca51e0c7 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 30 23:03:52 2010 +0000 Add support for rematerialization to InlineSpiller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 879ad2eada76e315b8b2aa6f04cbf3a35fdd6ab4 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jun 30 22:49:53 2010 +0000 Use the catch-all selectors we already found when converting them to use the correct catch-all value. This saves having to iterate through all of the selectors in the program again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107345 91177308-0d34-0410-b5e6-96231b3b80d8 commit 635b935d9df378d9896d330b906319e23e34055b Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 30 22:22:59 2010 +0000 lowerinvoke needs to handle aggregate function args like sjlj eh does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107335 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05c8b1f32de4868baac3ab58495742d377f1d96f Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 30 22:22:46 2010 +0000 build: Update install-clang target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107334 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02b4f098b75db665bfd7c0b28093bf7acc03620d Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 30 22:20:38 2010 +0000 Handle array and vector typed parameters in sjljehprepare like we do structs. rdar://8145832 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 106a86fa42e61afa5fd09a687619fca449064694 Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 30 21:29:00 2010 +0000 Remove all debug info related named mdnodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87a5236d2f7d7f8537dde4e62694310efac6b7f0 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 30 21:27:56 2010 +0000 grammar tweak in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107321 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad7ca6ea1f16fa8f5e01ea8c5ca55f8f9b39e2e2 Author: Dan Gohman <gohman@apple.com> Date: Wed Jun 30 20:21:12 2010 +0000 In ScalarEvolution::forgetValue, eliminate any SCEVUnknown entries associated with the value being erased in the folding set map. These entries used to be harmless, because a SCEVUnknown doesn't store any information about its Value*, so having a new Value allocated at the old Value's address wasn't a problem. But now that ScalarEvolution is storing more information about values, this is no longer safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16acb36d1507b212bbc535ab32ccc255dd84de3c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 18:49:10 2010 +0000 Move MOVD/MODQ code around, creating sections for each of them git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107308 91177308-0d34-0410-b5e6-96231b3b80d8 commit b293e833092d02425d0c3356fc850b9ed7f7ca24 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 30 18:41:20 2010 +0000 Some fool committed without testing (or even building) first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107307 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23e35c6105a846d4719b8edaf6f0a295f56ccd4a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 18:38:10 2010 +0000 Add AVX SSE2 mask creation and conditional store instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107306 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30ad188bb60c24a5cd9512449d40b8573b8876e0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 30 18:19:08 2010 +0000 Remember to track spill slot uses in VirtRegMap when inserting loads and stores. LocalRewriter::runOnMachineFunction uses this information to mark dead spill slots. This means that InlineSpiller now also works for functions that spill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107302 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68c25b5d4e1416d24cf13a783ca4ba9a316d2eca Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 18:06:01 2010 +0000 Fix a bug introduced in r107211 where instructions with memory operands are declared as commutable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b1b8b554f02ba961496019cec09c88f9a38eba0 Author: Dan Gohman <gohman@apple.com> Date: Wed Jun 30 17:27:11 2010 +0000 Revert the part of r107257 which introduced new logic for using nsw and nuw flags from IR Instructions. On further consideration, this isn't valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107298 91177308-0d34-0410-b5e6-96231b3b80d8 commit d59db4e1128e0e6edb69dcd35a1147bc1ee035a6 Author: Duncan Sands <baldrick@free.fr> Date: Wed Jun 30 17:24:28 2010 +0000 Rename NextPowerOfTwo to RoundUpToPowerOfTwo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107297 91177308-0d34-0410-b5e6-96231b3b80d8 commit 817e9410c1615f1446c4321ad6513814d3d8bf67 Author: Duncan Sands <baldrick@free.fr> Date: Wed Jun 30 17:22:28 2010 +0000 Remove an unused variable. The call to getRoot has side-effects, so this could break something (but doesn't seem to). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107295 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0a8c145ee8c891a2b75f8d2710b4c4471ca3dae Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 17:03:03 2010 +0000 Add AVX SSE2 packed integer extract/insert instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107293 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02ff0007739f09dcdf7162e016763c116ddc4cbb Author: Duncan Sands <baldrick@free.fr> Date: Wed Jun 30 15:29:46 2010 +0000 Clarify that the NextPowerOfTwo template is idempotent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107286 91177308-0d34-0410-b5e6-96231b3b80d8 commit db286cc075d33e9b95579cb87eb4e6f0aa6277dc Author: Duncan Sands <baldrick@free.fr> Date: Wed Jun 30 15:02:37 2010 +0000 Rather than giving SmallPtrSetImpl a member field SmallArray which is magically replaced by a bigger array in SmallPtrSet (by overridding it), instead just use a pointer to the start of the storage, and have SmallPtrSet pass in the value to use. This has the disadvantage that SmallPtrSet becomes bigger by one pointer. It has the advantage that it no longer uses tricky C++ rules, and is clearly correct while I'm not sure the previous version was. This was inspired by g++-4.6 pointing out that SmallPtrSetImpl was writing off the end of SmallArray, which it was. Since SmallArray is replaced with a bigger array in SmallPtrSet, the write was still to valid memory. But it was writing off the end of the declared array type - sounds kind of dubious to me, like it sounded dubious to g++-4.6. Maybe g++-4.6 is wrong and this construct is perfectly valid and correctly compiled by all compilers, but I think it is better to avoid the whole can of worms by avoiding this construct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107285 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6c94b790a1cb1a08a5760d9f7d159a9f5574b57 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 13:45:50 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107282 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb432dacdc858060e194076adca5374b7fcef5c4 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 13:03:37 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107280 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69f85438d79cf323d2f519fab5fd60602b783226 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 12:55:46 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107279 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28f7ff25f597bbf1d02cf158dda195d443e75f67 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 12:42:43 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107278 91177308-0d34-0410-b5e6-96231b3b80d8 commit fddb35e1c17a8d2c46d9e6b72cc7d69ef970ca46 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 12:40:35 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107277 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68317d9221fb4e17420e143436236e5f772f7243 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 12:39:23 2010 +0000 use CallSite::arg_end instead of CallInst::op_end git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107276 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf7087d6368cedb20558481b80c51ec924e7e800 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 12:38:26 2010 +0000 use getArgOperand (corrected by CallInst::ArgOffset) instead of getOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107275 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f9554a9b7a33be7ccdfba302b65ee4b16ceab34 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 09:19:23 2010 +0000 use getArgOperand (corrected by CallInst::ArgOffset) instead of getOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107273 91177308-0d34-0410-b5e6-96231b3b80d8 commit c54a1aaa759ac204374287db4c658d8f62af6940 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 09:17:53 2010 +0000 use getNumArgOperands instead of getNumOperands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107272 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbfac2fe485b5518a09f9a779f83dbce8d9ca0bc Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 09:16:16 2010 +0000 use getArgOperand instead of getOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77f7a0f0b051e9b84ab6ff2aee2dda5123db0cc6 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 09:15:28 2010 +0000 use getArgOperand instead of getOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70369cead126c310451a238e79e5482d7306771d Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 30 09:14:26 2010 +0000 use getArgOperand instead of getOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107269 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff589ac6c4436850240e9652ead8a0eba44fc71a Author: Dan Gohman <gohman@apple.com> Date: Wed Jun 30 07:17:47 2010 +0000 Add a testcase for scev-aa's new capability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107258 91177308-0d34-0410-b5e6-96231b3b80d8 commit db91404411da1eebae29bdb6676880541d88a7a5 Author: Dan Gohman <gohman@apple.com> Date: Wed Jun 30 07:16:37 2010 +0000 Improve ScalarEvolution's nsw and nuw preservation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f5e811ffcd926b6425c67b67d76975c582ff739 Author: Dan Gohman <gohman@apple.com> Date: Wed Jun 30 06:58:35 2010 +0000 When computing a new ConservativeResult, intersect it with the old one instead of replacing it, to be more precise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8cb08c6b8506c53e0f91389c3ba99b9119be8183 Author: Dan Gohman <gohman@apple.com> Date: Wed Jun 30 06:12:16 2010 +0000 Rework scev-aa's basic computation so that it doesn't depend on ScalarEvolution successfully folding and preserving range information for both A-B and B-A. Now, if it gets either one, it's sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107249 91177308-0d34-0410-b5e6-96231b3b80d8 commit a01a5cb0b3f2beffe9ce8429375bc6747da44b3e Author: Dan Gohman <gohman@apple.com> Date: Wed Jun 30 06:09:46 2010 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107248 91177308-0d34-0410-b5e6-96231b3b80d8 commit f240e4809fdecddfca9c4c0d51d1d386b8687a1a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 04:06:39 2010 +0000 Add AVX SSE2 integer unpack instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107246 91177308-0d34-0410-b5e6-96231b3b80d8 commit e269ece20d34ff0d4d406d2f2b46e6db08700057 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 03:47:56 2010 +0000 Add AVX SSE2 packed integer shuffle instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107245 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3eabe37a575b7ab62f5a51e55961fe7fa5351511 Author: John Mosby <ojomojo@gmail.com> Date: Wed Jun 30 03:40:54 2010 +0000 Remove trailing whitespace, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107244 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbca443c17fbe3b8cf5dc0b1a466a30672352bf8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 03:29:36 2010 +0000 Small refactoring of SSE2 packed integer shuffle instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107243 91177308-0d34-0410-b5e6-96231b3b80d8 commit be762977020b7193e2f7211648b8fc16b7d18aa6 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 02:30:25 2010 +0000 Add AVX SSE2 pack with saturation integer instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107241 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38b7ea31aec510542d4158dfb8d219f7f50a570c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 02:21:09 2010 +0000 Add AVX SSE2 integer packed compare instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107240 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b35775a9662d31025a59ffdfb68d1bded0dfd72 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 30 01:58:37 2010 +0000 - Add AVX form of all SSE2 logical instructions - Add VEX encoding bits to x86 MRM0r-MRM7r git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107238 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffbdac1703565a390d42a018418771c4ca0056ab Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 30 01:40:11 2010 +0000 Do not construct DIE for already processed MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107237 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3df7c3146b3c9eb9ea064e3aa63c8870f2592b23 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 30 00:30:36 2010 +0000 Use skipInstruction() as a simpler way of iterating over instructions using SrcReg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107234 91177308-0d34-0410-b5e6-96231b3b80d8 commit b47ebb3b08c4d9daf8d381b87033f9c5d8983d72 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 30 00:24:51 2010 +0000 Use clEnumValN macro to work around keyword clash git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97324af76ae10c23e5ce61c112c4071484e46e8c Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 30 00:11:08 2010 +0000 Add variables into a scope before constructing scope DIE otherwise variables won't be included DIE tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d679bc5429b8bddc78724a4fc2f3fd78236d668 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 29 23:58:39 2010 +0000 Begin implementation of an inline spiller. InlineSpiller inserts loads and spills immediately instead of deferring to VirtRegMap. This is possible now because SlotIndexes allows instructions to be inserted and renumbered. This is work in progress, and is mostly a copy of TrivialSpiller so far. It works very well for functions that don't require spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 236246407bbac5ad659d5eb2c4f28854bb6581d7 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 23:47:49 2010 +0000 Add *several* AVX integer packed binop instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b340fa3c9936e4185caabdf3fd7a71eac17f6e0 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 29 23:43:06 2010 +0000 Fix ScalarEvolution's tripcount computation for chains of loops where each loop's induction variable's start value is the exit value of a preceding loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107224 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95d531ffbc82733fd7fc34a71505762a3208ca54 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 29 22:34:52 2010 +0000 Revert r107205 and r107207. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67129046f14970ffe9855b7b923c33e98399d9b4 Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 29 22:29:15 2010 +0000 Print InlinedAt location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107214 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea99da23f58a62176097305dd948d9bdb9182c1e Author: Eric Christopher <echristo@apple.com> Date: Tue Jun 29 22:22:22 2010 +0000 Add another bswap idiom that isn't matched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a335a2c261bec893c819caa44391cfa712c6cf6 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 29 22:17:37 2010 +0000 Use -l option to remove symbols from i386. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8245d42c1004b148240f895bbf5d265d60155097 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 22:12:16 2010 +0000 Move SSE2 Packed Integer instructions around, and create specific sections for each of them git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107211 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce1a4f5a86b81a4b7ac8e046ae9927c3d391bffa Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 29 21:51:32 2010 +0000 Print InlinedAt location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5897fa1948c9ecb72b333135be978454a02b3411 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 29 21:41:58 2010 +0000 Improve explanation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107207 91177308-0d34-0410-b5e6-96231b3b80d8 commit 791be14ab4817d41455610177450ca7c4c08433e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 21:25:12 2010 +0000 Add AVX Move Aligned/Unaligned packed integers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107206 91177308-0d34-0410-b5e6-96231b3b80d8 commit c99d1ee7669ed99d9d9fbdae83a00c10f16348f0 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 29 21:24:00 2010 +0000 Introducing the "linker_weak" linkage type. This will be used for Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107205 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a416e7fc389dc86a4292d7f74add389bdfb180f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 20:35:48 2010 +0000 Add AVX ld/st XCSR register. Add VEX encoding bits for MRMXm x86 form git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bd242edbab95509f7b896c2a37e3f4badb7e33d Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 29 20:17:53 2010 +0000 Do not hardcode DW_AT_stmt_list value. Inspired by Artur Pietrek. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107202 91177308-0d34-0410-b5e6-96231b3b80d8 commit 249c34e9cecae73aa113d31360bdc94ae509582f Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 29 20:13:29 2010 +0000 Add support for encoding VDUP (ARM core register) instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e9dd3c65aa2e3d76922897f30d66f73398bd200 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 20:12:02 2010 +0000 Fix a buffer overflow noticed by gcc-4.6: zero is written into SmallArray[SmallSize] in the SmallPtrSetIteratorImpl, and this is one off the end of the array. For those who care, right now gcc warns about writing off the end because it is confused about the declaration of SmallArray as having length 1 in the parent class SmallPtrSetIteratorImpl. However if you tweak code to unconfuse it, then it still warns about writing off the end of the array, because of this buffer overflow. In short, even with this fix gcc-4.6 will warn about writing off the end of the array, but now that is only because it is confused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107200 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff44abf0abbd00326e8f87412f69598a337a6a04 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 20:05:34 2010 +0000 NextPowerOfTwo was already used to ensure that SmallSizePowTwo is a power of two, no need to do it a second time (NextPowerOfTwo is idempotent). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1774daa5bfe46a19198227b26f9af07926332656 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jun 29 19:20:38 2010 +0000 give PATypeHolder an explicit copy ctor which initializes the type pointer, and make PATypeHolder work with null pointers. The implicitly generated one didn't work on numerous levels, but was still accepted, allowing all sorts of bugs with default constructed pa type holders. Previously, they "sort of" worked if they were default constructed and then destructed. Now they really work, and you can even default construct one, then assign to it, amazing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7802bc242c88c26b7cd02ca2d3df2982e6b21960 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 29 19:15:30 2010 +0000 Fix the handling of partial redefines in the fast register allocator. A partial redefine needs to be treated like a tied operand, and the register must be reloaded while processing use operands. This fixes a bug where partially redefined registers were processed as normal defs with a reload added. The reload could clobber another use operand if it was a kill that allowed register reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107193 91177308-0d34-0410-b5e6-96231b3b80d8 commit 028a5b615baf63e4924a2f88d28a2a86e6e8e5b6 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 29 18:42:49 2010 +0000 Fix a register scavenger crash when dealing with undefined subregs. The LowerSubregs pass needs to preserve implicit def operands attached to EXTRACT_SUBREG instructions when it replaces those instructions with copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107189 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1570a14969ee40f9cde77dd3815f604133a3fbe Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 18:22:01 2010 +0000 Add AVX non-temporal stores git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107178 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d64fee15c43a9f57ac061b7ff30214fcab8386a Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 29 18:17:11 2010 +0000 Add a few more interesting testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107177 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e2035ae8134b8e42c906d0b36898b384b11c7ea Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 29 18:12:34 2010 +0000 Fix whitespace style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1921fc0472583d2bc584769a063802afa679cd7c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 17:42:37 2010 +0000 Move non-temporal movs to their own section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99d8300183d3207aaf263d06aa7f0fae8519f290 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 29 17:34:07 2010 +0000 Add support for encoding NEON VMOV (from core register to scalar) instructions. The encoding is the same as VMOV (from scalar to core register) except that the operands are in different places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107167 91177308-0d34-0410-b5e6-96231b3b80d8 commit d49d484954f817fbf5041ffc1a14fcfb8fe047bc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 17:26:30 2010 +0000 Add sqrt, rsqrt and rcp AVX instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107166 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7f23fb3b1736ff942e8ef851586e69a567002c2 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 29 16:55:24 2010 +0000 skip dbg_value instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107154 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1445432d68266ba519f53238777237b8f430071 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jun 29 16:27:38 2010 +0000 minor cosmetics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107148 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cbc8a0e326d2be98bfe74240a772c5c228fb8c8 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 29 16:25:11 2010 +0000 The t2MOVi16 and t2MOVTi16 instructions do not set CPSR. Trying to add a CPSR operand to them causes an assertion failure, so apparently these instructions haven't been getting a lot of use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6aa17908de04be0dbca459ad4b0ef461956675f9 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jun 29 16:21:20 2010 +0000 use ArgOffset constant to prepare for operand rotation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d62db042fc8a23c158edfa88d788ffef08b91a6 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jun 29 16:17:26 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107145 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8f76b64e4167ffa50b4e1a6df03946d9b16caa2 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jun 29 16:01:30 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36bbfa1097a3e2ae4fbaae449fb130710672fcf4 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 14:52:10 2010 +0000 Return Changed. This required setting Changed if dbg metadata is stripped off. Currently set unconditionally, since the API does not provide a way of working out if anything was actually stripped off. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107142 91177308-0d34-0410-b5e6-96231b3b80d8 commit d41514b2160c99eacbef9a1c05ae0c7c6b96fb3f Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 14:49:35 2010 +0000 It seems clear that this should return Changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107141 91177308-0d34-0410-b5e6-96231b3b80d8 commit f16aab02ee9602d7589b82b6f5913fa9db57e717 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Jun 29 14:02:34 2010 +0000 Add a VT argument to getMinimalPhysRegClass and replace the copy related uses of getPhysicalRegisterRegClass with it. If we want to make a copy (or estimate its cost), it is better to use the smallest class as more efficient operations might be possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107140 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf85d806608d2ee30a417af11e4c0b71da9c7770 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 13:34:20 2010 +0000 getMachineBasicBlockAddress returns a uintptr_t - don't truncate to unsigned only to extend back to a pointer sized value on the next line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107139 91177308-0d34-0410-b5e6-96231b3b80d8 commit efe1cfcab3d30f1177ed80844997bc3c6057d9cd Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 13:30:08 2010 +0000 The variable ValueSize is set to 1 on both code paths, and then ignored! Remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107138 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b0202d1e3febc8afb9948ee39cd77ebae1743ba Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 13:26:33 2010 +0000 The variable "Value" is carefully set to Layout.getSymbolAddress, but then not actually used - maybe a bug? Remove the variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7332c4f57f5592d79e20d4f2eac95bd2b51ac5ee Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 13:24:40 2010 +0000 Remove unused calls to Lexer.getLoc and the pointless variable HasFillExpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107136 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8406361f729ebb3cdb61275b39514c627d56b4e2 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 13:23:22 2010 +0000 Remove pointless variable LastDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107135 91177308-0d34-0410-b5e6-96231b3b80d8 commit 329978d97b051fd6f4efa7419ffbd9e18ed11ad6 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 13:18:50 2010 +0000 Looks like this test is missing an XFAIL line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107134 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd7fa90b69f2a29f5b899353d69eeffd728c9f47 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 13:04:35 2010 +0000 Remove unused variable Loc and pointless variables unified_syntax and thumb_mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107133 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b5a50d8d4541d5caabad71fb281e74bb2929f45 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jun 29 13:03:46 2010 +0000 use ArgOperand APIs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107132 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe8400ab06969f0b5ec2568f93783b1e1602fd8c Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 13:00:29 2010 +0000 Remove an unused and a pointless variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0588364fb268934affab78b0af7394ab67152099 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 12:48:49 2010 +0000 Remove pointless and unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20520bde989c310b4e7a9769905c36bcdfa8a751 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jun 29 11:41:38 2010 +0000 encode operand initializations (at fixed index) in terms of Op<> and ArgOffset. This works for values of {0, 1} for ArgOffset. Please note that ArgOffset will become 0 soon and will go away eventually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107129 91177308-0d34-0410-b5e6-96231b3b80d8 commit e92d5e7371946363b9d261349f8f25e4089a4eb8 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 11:39:45 2010 +0000 Remove a pointless variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107128 91177308-0d34-0410-b5e6-96231b3b80d8 commit e379fbcbe97b8d8ca5ffb0f1b404ef18833d6b67 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 11:22:26 2010 +0000 Remove initialized but otherwise unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107127 91177308-0d34-0410-b5e6-96231b3b80d8 commit f27157ef5c3da4fa8d057b969b85c4150ad321f6 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jun 29 11:07:47 2010 +0000 Remove variables that are written by not read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107126 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e0d3c0fb850f12ae556f5c515b7b1f9388e26f7 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jun 29 10:03:11 2010 +0000 Use a more obvious way to avoid compiling functions which are only used when XDEBUG is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107125 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46388b7aa600cf5b6cc814f353351e12f0aad03e Author: Chandler Carruth <chandlerc@gmail.com> Date: Tue Jun 29 06:46:00 2010 +0000 Jump through some silly hoops to make GCC accept that a function may not always be called. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107124 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f65260e6abe7862e13fd6395a1008c12c7ae3a2 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jun 29 05:38:36 2010 +0000 PR7503: uxtb16 is not available for ARMv7-M. Patch by Brian G. Lucas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107122 91177308-0d34-0410-b5e6-96231b3b80d8 commit a043bb8ecf240160febc30fbb25747b89e850915 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jun 29 05:37:59 2010 +0000 Change if-cvt options to something that actually as useable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 723159a2d5ef1cb37bc40c365edcf5cf0fc2b319 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 29 04:48:13 2010 +0000 When processing loops for scheduling latencies (used for live outs on loop back-edges), make sure not to include dbg_value instructions in the count. Closing in on the end of rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107119 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9479ec200bac4ad5153d6d3d90cd3a0151bd525 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 29 01:41:41 2010 +0000 Just as its not safe to blindly transfer the nsw bit from an add instruction to an add scev, it's not safe to blindly transfer the inbounds flag from a gep instruction to an nsw on the scev for the gep. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107117 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74ed4c28297b3eedd3add10cb8109fc6ed435545 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 01:33:09 2010 +0000 Refactoring of arithmetic instruction classes with unary operator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107116 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2db3a34ded2680b05be7790f351733e32195584a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 29 01:13:07 2010 +0000 When no memoperands are present, assume unaligned, volatile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107114 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec171ae0d52894aed2d66c23e5993577ae17aede Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 29 01:08:57 2010 +0000 Strip resulting binaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107112 91177308-0d34-0410-b5e6-96231b3b80d8 commit d090f9692efed3bbaec4740853d95e7d62b22642 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 29 00:55:23 2010 +0000 Reapply my if-conversion cleanup from svn r106939 with fixes. There are 2 changes relative to the previous version of the patch: 1) For the "simple" if-conversion case, there's no need to worry about RemoveExtraEdges not handling an unanalyzable branch. Predicated terminators are ignored in this context, so RemoveExtraEdges does the right thing. This might break someday if we ever treat indirect branches (BRIND) as predicable, but for now, I just removed this part of the patch, because in the case where we do not add an unconditional branch, we rely on keeping the fall-through edge to CvtBBI (which is empty after this transformation). The change relative to the previous patch is: @@ -1036,10 +1036,6 @@ IterIfcvt = false; } - // RemoveExtraEdges won't work if the block has an unanalyzable branch, - // which is typically the case for IfConvertSimple, so explicitly remove - // CvtBBI as a successor. - BBI.BB->removeSuccessor(CvtBBI->BB); RemoveExtraEdges(BBI); // Update block info. BB can be iteratively if-converted. 2) My patch exposed a bug in the code for merging the tail of a "diamond", which had previously never been exercised. The code was simply checking that the tail had a single predecessor, but there was a case in MultiSource/Benchmarks/VersaBench/dbms where that single predecessor was neither edge of the diamond. I added the following change to check for that: @@ -1276,7 +1276,18 @@ // tail, add a unconditional branch to it. if (TailBB) { BBInfo TailBBI = BBAnalysis[TailBB->getNumber()]; - if (TailBB->pred_size() == 1 && !TailBBI.HasFallThrough) { + bool CanMergeTail = !TailBBI.HasFallThrough; + // There may still be a fall-through edge from BBI1 or BBI2 to TailBB; + // check if there are any other predecessors besides those. + unsigned NumPreds = TailBB->pred_size(); + if (NumPreds > 1) + CanMergeTail = false; + else if (NumPreds == 1 && CanMergeTail) { + MachineBasicBlock::pred_iterator PI = TailBB->pred_begin(); + if (*PI != BBI1->BB && *PI != BBI2->BB) + CanMergeTail = false; + } + if (CanMergeTail) { MergeBlocks(BBI, TailBBI); TailBBI.IsDone = true; } else { With these fixes, I was able to run all the SingleSource and MultiSource tests successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107110 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dcbf688459ac4bb5dad52d7fd2561cb0523a2aa Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 29 00:50:39 2010 +0000 Add an Intraprocedural form of BasicAliasAnalysis, which aims to properly handles instructions and arguments defined in different functions, or across recursive function iterations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107109 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2267c0ebd1cb6e12d2b8171e29d896aecc57053 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 29 00:36:02 2010 +0000 Described the missing AVX forms of SSE2 convert instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107108 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc5eb8f02c841e75ca31a1b341766a3e8ecdcabe Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 29 00:26:13 2010 +0000 Fix Thumb encoding of VMOV (scalar to ARM core register). The encoding is the same as ARM except that the condition code field is always set to ARMCC::AL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107107 91177308-0d34-0410-b5e6-96231b3b80d8 commit df48232234e94421caab33c02458a1a298584c2e Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 29 00:04:40 2010 +0000 The comment string does not match for all targets. PowerPC uses ;. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107103 91177308-0d34-0410-b5e6-96231b3b80d8 commit f77dd4f24e0371a42e046ab5e8671d4177f2ce90 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 28 23:40:25 2010 +0000 Unlike other targets, ARM now uses BUILD_VECTORs post-legalization so they can't be changed arbitrarily by the DAGCombiner without checking if it is running after legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fbcf095fe23f391e2e23713a4db5556580d13ab Author: Dale Johannesen <dalej@apple.com> Date: Mon Jun 28 22:45:33 2010 +0000 Refix XTARGET. Previous attempt matches on powerpc-apple-darwin, although I don't see why. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107090 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ea0c37d628ecc74e6c889a5dfd6cbc3edb33238 Author: Dale Johannesen <dalej@apple.com> Date: Mon Jun 28 22:31:52 2010 +0000 Attempt to fix XTARGET. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107088 91177308-0d34-0410-b5e6-96231b3b80d8 commit c354426f5cda00564ac805635003f27241039975 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 28 22:23:17 2010 +0000 Make the ARMCodeEmitter identify Thumb functions via ARMFunctionInfo instead of the Subtarget. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107086 91177308-0d34-0410-b5e6-96231b3b80d8 commit 006283cdd7e6b69e784d65722ee0fe68e70faec1 Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 28 22:22:47 2010 +0000 Use DW_FORM_addr for DW_AT_entry_pc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39d8dabefd1bc1d0ecc566b8493b5141c60e2e3f Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 28 22:09:52 2010 +0000 Add a blurb about -scev-aa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107080 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58aa8ae584bd935095007fec309b11cd952a0a65 Author: Dale Johannesen <dalej@apple.com> Date: Mon Jun 28 22:09:45 2010 +0000 In asm's, output operands with matching input constraints have to be registers, per gcc documentation. This affects the logic for determining what "g" should lower to. PR 7393. A couple of existing testcases are affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107079 91177308-0d34-0410-b5e6-96231b3b80d8 commit d339a118be280ede24100a71a13850f74a0b559f Author: Kevin Enderby <enderby@apple.com> Date: Mon Jun 28 21:45:58 2010 +0000 Added the darwin .secure_log_unique and .secure_log_reset directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107077 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2baa248dab8660231dcdc472ce0d8b9ec7537cbf Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 28 21:30:07 2010 +0000 Constant fold x == undef to undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98cc2e3a04012f32fcaf10ba21c90c5960bce1f4 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 28 21:29:17 2010 +0000 tidy up style. no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107073 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18ed6c0bad18a3cec538e00d283d5f0bd6f78d39 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 28 21:16:52 2010 +0000 Fix Value::stripPointerCasts and BasicAA to avoid trouble on code in unreachable blocks, which have have use-def cycles. This fixes PR7514. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107071 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d3a1987083337e644ebf61c4fc72e7cff4c29a9 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 28 21:16:30 2010 +0000 Refactor encoding function for NEON 1-register with modified immediate format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107070 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4778c757e4d1b9a0db4865689128ec3f75b39d51 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 28 21:12:19 2010 +0000 Support Thumb mode encoding of NEON instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107068 91177308-0d34-0410-b5e6-96231b3b80d8 commit c700b75bef4f95e345e0b7c24f225a3f9914ed13 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jun 28 21:08:32 2010 +0000 Reduce indentation via early exit. NFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107067 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c77d6490a3535d2da8b25d0e95055d4b3236684 Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 28 20:53:04 2010 +0000 Include inlined function in list of processed subprograms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107065 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9b1b38da03336f5197002d0d7a75fe29df305a5 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 28 20:26:00 2010 +0000 new, no longer brain-dead, r106907 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d78af3bfcd3692de20d899da8b67df46f94d82d Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 28 20:24:35 2010 +0000 Remove this weak test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42121b4357c296b345a304e4e3d2016261c73bee Author: Dale Johannesen <dalej@apple.com> Date: Mon Jun 28 20:07:30 2010 +0000 Testcase for llvm-gcc fix 107051. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107052 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b99c3f47c72344dd930c27b655eed90a281f11e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jun 28 20:01:15 2010 +0000 Don't write temporary files in test directory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89d6ef70b56b3f05702369186b80c31901d07e6f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jun 28 19:39:57 2010 +0000 After physreg coalescing, physical registers might not have live ranges where you would expect. Don't assert on that case, just give up. This fixes PR7513. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107046 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4843790f97cd66cedf8e5dbf0c5749aa596c50c8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jun 28 19:31:15 2010 +0000 Add a triple so test runs on Linux as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107045 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfa91f14e54c3a8e7a9eafe8998373e47d8f7a25 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jun 28 18:34:34 2010 +0000 Add more special treatment for inline asm in RegAllocFast. When an instruction has tied operands and physreg defines, we must take extra care that the tied operands conflict with neither physreg defs nor uses. The special treatment is given to inline asm and instructions with tied operands / early clobbers and physreg defines. This fixes PR7509. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107043 91177308-0d34-0410-b5e6-96231b3b80d8 commit bad94479cdc0bf6dcdfea8cf482bd434ffa40b3f Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 28 18:33:48 2010 +0000 Fix thinko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07e9d9e8dfba4de77d72bbc3bc4ae48fc8c375cf Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 28 18:25:51 2010 +0000 Pull in the libCrashReporterClient.a information with a warning comment. Remove library check and regenerate configure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107028 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb035b88f508bc4022923963b01c19e03950d95b Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 28 18:25:03 2010 +0000 Preserve deleted function's local variables' debug info. Radar 8122864. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107027 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7a59856b53c85d63d556b28046652f6986fa16f Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 28 18:04:03 2010 +0000 Make this test darwin specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107025 91177308-0d34-0410-b5e6-96231b3b80d8 commit fec5c4e03a61106e9f33252d5a90c66dfeffac09 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 16:50:57 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107017 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6e47c9b66a4538b4b85f7277a23380efce16594 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 16:45:00 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107016 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2fd464d422d4d05355dabccee7130b3c30f2f05 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 16:43:57 2010 +0000 employ CallInst::ArgOffset (for now) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a7361415230829fc130463af3a7866310f5268d Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 16:40:52 2010 +0000 simplify: we have solid argument iterator range git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107014 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe59504396195f61c5f3aaf2e3587beee8474c02 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 28 16:01:37 2010 +0000 Generalize AAEval so that it can be used both per-function and interprocedurally. Note that as of this writing, existing alias analysis passes are not prepared to be used interprocedurally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107013 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc958363e7acbb5df8fae7395f6ff3d5841b9b9b Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 28 15:55:15 2010 +0000 Fix this build message so that it displays the correct library name, specifically the "lib" prefix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d4dbef8db8b25538cc8f9c78e40be6ec1fa1aff Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jun 28 15:47:17 2010 +0000 Revert r106907, "make sure to handle dbg_value instructions in the middle of the block, not...", it caused a bunch of nightly test regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 601bfe434a0bfc60daff17735076cece0b4d3fbe Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 12:31:35 2010 +0000 use setArgOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107004 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8633cfd96a7ba23663163c61d93f871e0b14f4c7 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 12:30:07 2010 +0000 use CallInst::ArgOffset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107003 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2baf0d0d71a99d63412931ec6bd263b0849a94ac Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 12:29:20 2010 +0000 use ArgOperand API and CallInst::ArgOffset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107002 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99b1cd621f00535979650a0c0ccf2b5deb887337 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 12:23:36 2010 +0000 extend ArgOperand interface: setArgOperand (in both CallInst and InvokeInst) also add a (short-lived) constant to CallInst, that names the operand index of the first call argument. This is strictly transitional and should not be used for new code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107001 91177308-0d34-0410-b5e6-96231b3b80d8 commit e11b140f00372345948a34e475cf0e6c0ec5696d Author: Gabor Greif <ggreif@gmail.com> Date: Mon Jun 28 11:20:42 2010 +0000 use cached value git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23de80c00fea1ed576a9d50c641f13ac2b3a7afe Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 28 05:59:13 2010 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 142bea7597cd6ba788e6adb2905a10fb5f48977f Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 28 05:53:08 2010 +0000 Use named MDNode, llvm.dbg.sp, to collect subprogram info. This will be used to emit local variable's debug info of deleted functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106989 91177308-0d34-0410-b5e6-96231b3b80d8 commit 720c317302101aca01c89217b02cd3098814de2a Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 28 04:27:01 2010 +0000 minor housekeeping cleanup: 80-column, trailing whitespace, spelling, etc.. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106988 91177308-0d34-0410-b5e6-96231b3b80d8 commit be1cde8c165c8eae486a4258b13e722fe24629fe Author: Devang Patel <dpatel@apple.com> Date: Sun Jun 27 21:04:31 2010 +0000 Do not forget last element, function, while creating Subprogram definition MDNode from subprogram declare MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45c5749cbbb4273476eb7dc620560548fc370469 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jun 27 07:58:26 2010 +0000 minor cleanup to SROA: when lowering type unsafe accesses to large integers, the first inserted value would always create an 'or X, 0'. Even though this is trivially zapped by instcombine, don't bother creating this pointless instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c7154f3206756a3d3aaf39b9b1b7431d4fe9d4e Author: Chris Lattner <sabre@nondot.org> Date: Sat Jun 26 23:26:37 2010 +0000 add some named accessors for StoreInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106969 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39d8d7baef03a00619516e054ce0b4896771c106 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jun 26 23:26:22 2010 +0000 fit in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106968 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c7f21d01c8bb8067969750f2b8055c509aef0f6 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jun 26 22:08:30 2010 +0000 this test is failing nondeterministically and blaming me, just disable it for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106960 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef49a8135bb4a308b26529337b96e189d5af0bbd Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Jun 26 22:06:50 2010 +0000 Fix test weirdness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 301cbd884fb9379114ad8033a9c5be995eb00c49 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Jun 26 20:05:06 2010 +0000 Fix some tests that didn't test anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106954 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64756b7a2575a7b6ebf8c7f4f46e5c9545115347 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Sat Jun 26 18:47:40 2010 +0000 Partial specialization test should not depend on the order of specialization operations or the names assigned to the specialized functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81b6368b65cd5ca9b1836d4c11f5e7b8dda37d1a Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Jun 26 18:22:20 2010 +0000 When splitting a VAARG, remember its alignment. This produces terrible but correct code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bf596d47d4716fcbb6baa754a08cf9b53c11016 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jun 26 17:47:06 2010 +0000 Revert my if-conversion cleanup since it caused a bunch of nightly test regressions. --- Reverse-merging r106939 into '.': U test/CodeGen/Thumb2/thumb2-ifcvt3.ll U lib/CodeGen/IfConversion.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106951 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a60b88a6bb405d592cd4e3d89fa34194a58bbe1 Author: Duncan Sands <baldrick@free.fr> Date: Sat Jun 26 12:53:31 2010 +0000 Fix PR7328: when turning a tail recursion into a loop, need to preserve the returned value after the tail call if it differs from other return values. The optimal thing to do would be to introduce a phi node for the return value, but for the moment just fix the miscompile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106947 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7af63b28b5bab813dda7307b6fe2150e09fbfda Author: Gabor Greif <ggreif@gmail.com> Date: Sat Jun 26 12:17:21 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106946 91177308-0d34-0410-b5e6-96231b3b80d8 commit db4a3b9b1f78e8b93b51df5def522866e4634877 Author: Gabor Greif <ggreif@gmail.com> Date: Sat Jun 26 12:09:10 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106945 91177308-0d34-0410-b5e6-96231b3b80d8 commit b863fff112e2c8cfafc895513db9fa2beb56aa81 Author: Gabor Greif <ggreif@gmail.com> Date: Sat Jun 26 11:51:52 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106944 91177308-0d34-0410-b5e6-96231b3b80d8 commit a232b1ea9f81ea748109709966473a263a5436aa Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Jun 26 11:30:59 2010 +0000 VNInfos don't need to be destructed anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106943 91177308-0d34-0410-b5e6-96231b3b80d8 commit 009d847c8032d0b4eac0fe5dc7909699d28b53ee Author: Gabor Greif <ggreif@gmail.com> Date: Sat Jun 26 09:35:09 2010 +0000 resort to ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106942 91177308-0d34-0410-b5e6-96231b3b80d8 commit d54f95301471df435508f20cdc475cdadcdcb5e7 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jun 26 04:59:56 2010 +0000 Remove bogus test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106941 91177308-0d34-0410-b5e6-96231b3b80d8 commit 448a8f3b7bc42776e5c51e72d6b6ec023fd50942 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jun 26 04:36:50 2010 +0000 Followup to r106770: actually generate SXTB and SXTH for sign-extensions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106940 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1f8550b6051723eab3314d913aa0d5dbf4f520c Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jun 26 04:27:33 2010 +0000 Clean up some problems with extra CFG edges being introduced during if-conversion. The RemoveExtraEdges function doesn't work for blocks that end with unanalyzable branches, so in those cases, the "extra" edges must be explicitly removed. The CopyAndPredicateBlock and MergeBlocks methods can also avoid copying successor edges due to branches that have already been removed. The latter case is especially helpful when MergeBlocks is called for handling "diamond" if-conversions, where otherwise you can end up with some weird intermediate states in the CFG. Unfortunately I've been unable to find cases where this cleanup actually makes a significant difference in the code. There is one test where we manage to remove an empty block at the end of a function. Radar 6911268. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106939 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fb26256fcd34c5ca0311be9bdad1bc5a00485ec Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jun 26 04:07:15 2010 +0000 Add support for encoding NEON VMOV (from scalar to core register) instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106938 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c923ce1bc5bae00306fc565dfd07e7c082105b8 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jun 26 01:52:05 2010 +0000 It's now possible to run code placement pass for ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106935 91177308-0d34-0410-b5e6-96231b3b80d8 commit d55bb2f551bf3cab18154c357afbbc50719a7e30 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Jun 26 00:39:23 2010 +0000 When creating X86 MUL8 and DIV8 instructions, make sure we don't produce CopyFromReg nodes for aliasing registers (AX and AL). This confuses the fast register allocator. Instead of CopyFromReg(AL), use ExtractSubReg(CopyFromReg(AX), sub_8bit). This fixes PR7312. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106934 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef58a1b2f748eacbcca46b60ddfe87bf222fbc82 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jun 26 00:05:09 2010 +0000 Renumber NEON instruction formats to be consecutive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106927 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5474ce368c488e8479125e7a292464fb59ef6450 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 25 23:56:05 2010 +0000 Rename ARM instruction formats NEONGetLnFrm, NEONSetLnFrm and NEONDupFrm to "N..." instead of "NEON..." for consistency with the other NEON format names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106921 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a8eb773d51b664a4f6dbb24754a5a74dfc77707 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 25 23:47:23 2010 +0000 Add AVX convert CVTSS2SI{rr,rm} and CVTDQ2PS{rr,rm} instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e35fce4996012fe2f7cb72054c22ed16984867c Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 25 23:45:37 2010 +0000 Remove unused NEONFrm and ThumbMiscFrm ARM instruction formats. Renumber MiscFrm to 25. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106916 91177308-0d34-0410-b5e6-96231b3b80d8 commit 064047b0ce3650290d36ad81db233dffc2439a45 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 25 23:33:42 2010 +0000 Reapply r106896: Add several AVX MOV flavors Support VEX encoding for MRMDestReg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106912 91177308-0d34-0410-b5e6-96231b3b80d8 commit acf930aeb082839d63148fee254d61fb049d421e Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jun 25 23:14:54 2010 +0000 Thumb2ITBlockPass: Fix a possible dereference of an invalid iterator. This was introduced in r106343, but only showed up recently (with a particular compiler & linker combination) because of the particular check, and because we have no builtin checking for dereferencing the end of an array, which is truly unfortunate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 560aa82b31641d53b458510679b90953199427a4 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 25 23:05:46 2010 +0000 make sure to handle dbg_value instructions in the middle of the block, not just at the head, when doing diamond if-conversion. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106907 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3de199f7069e2e1be30aa8790ccd085a293080ed Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 25 23:04:29 2010 +0000 revert this now, it's using avx instead of sse :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4db360fa20f7418db3262310ec7a42890b651bbe Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jun 25 22:53:05 2010 +0000 Don't track kills in VNInfo. Use interval ends instead. The VNInfo.kills vector was almost unused except for all the code keeping it updated. The few places using it were easily rewritten to check for interval ends instead. The two new methods LiveInterval::killedAt and killedInRange are replacements. This brings us down to 3 independent data structures tracking kills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106905 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2d4491471dbb0490b3513361acfe850cfb34a4f Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 25 22:42:03 2010 +0000 Change if-conversion block size limit checks to add some flexibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106901 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2c740cdf2bf18dbad75ea73bc9763f5c80408b7 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 25 22:40:46 2010 +0000 Add support for encoding 3-register NEON instructions, and fix emitNEON2RegInstruction's handling of 2-address operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106900 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d57d982f8af04131b7f1c3b7aaed33dec4d4138 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 25 22:32:18 2010 +0000 In GenerateReassociations, don't bother thinking about individual SCEVUnknown values which are loop-variant, as LSR can't do anything interesting with these values in any case. This fixes very slow compile times on loops which have large numbers of such values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106897 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2b4a7208ffa0f369ad7ef07267dbc4ef9debdc6 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 25 22:27:51 2010 +0000 Add several AVX MOV flavors Support VEX encoding for MRMDestReg git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106896 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b6933cf11094827cd2700a023d9923403765065 Author: Devang Patel <dpatel@apple.com> Date: Fri Jun 25 22:07:34 2010 +0000 Collect debug info for optimized variables of inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106895 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f158871206fa01d23098515cb651d103fb01fbf Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 25 22:02:28 2010 +0000 80 column and typo fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106894 91177308-0d34-0410-b5e6-96231b3b80d8 commit fed79a37b3d1a5acc15abb741e15e30133311657 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 25 21:55:36 2010 +0000 The hasMemory argument is irrelevant to how the argument for an "i" constraint should get lowered; PR 6309. While this argument was passed around a lot, this is the only place it was used, so it goes away from a lot of other places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106893 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d97192e686ce39ef83fc6b479eb05b461d0ad8c Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 25 21:17:19 2010 +0000 Add support for encoding 2-register NEON instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106891 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe522521839de5b315300bcd8846190c34b22ff3 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 25 21:05:35 2010 +0000 pcmpeqd and friends are Commutable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106886 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c489745251fc3f7d0a4bf3543f3fbfe82bbd6ea Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 25 21:02:24 2010 +0000 80-column and trailing whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106885 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61efe4ea6171f4f59072c043aa11b86816c4e8a4 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 25 20:54:44 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106881 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ecb812c08e7cab13b88bd7f4fd44835e694d9ee Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jun 25 20:48:10 2010 +0000 - Reapply r106066 now that the bzip2 build regression has been fixed. - 2010-06-25-CoalescerSubRegDefDead.ll is the testcase for r106878. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106880 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8fc7a971fe1b056512b788346c6ec68c0a01e32 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jun 25 20:42:55 2010 +0000 We should remove the live range from the destination register only if *all* defs are dead, not just the def of this register. I.e., a register could be dead, but it's subreg isn't. Testcase to follow with a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106878 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f9d3ca81614f5bd4eeb1dcf9abae0827a359604 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 25 20:29:27 2010 +0000 Move the last piece of SSE2 convert instructions to the Convert Instructions section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106877 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f297e9018109755f446fe2b90a1b4e847e154bc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 25 20:22:12 2010 +0000 More SSE refactoring, this time with different types of MOVs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84d68184e6b14fbe79a1188e595085100930a570 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 25 18:47:08 2010 +0000 Eliminate a redundant FoldingSet lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106872 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8706e0f42fce56b1d9e2a67039ef9a416acf884f Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 25 18:43:14 2010 +0000 IT instructions are considered to be scheduling hazards, but are scheduled with the following instructions. This is done via trickery by considering the instruction preceding the IT to be the hazard. Care must be taken to ensure it's the first non-debug instruction, or the presence of debug info will affect codegen. Part of the continuing work for rdar://7797940, making ARM code-gen unaffected by the presence of debug information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106871 91177308-0d34-0410-b5e6-96231b3b80d8 commit a972a806ec06578253f095a11041f277d624e5e7 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 25 18:06:22 2010 +0000 Refactoring of more SSE conversion instructions. Also add some AVX instrinsics Int_V... placeholders git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106867 91177308-0d34-0410-b5e6-96231b3b80d8 commit d39d4a9ecb3ef80e7082b4224b66c44c059e29f6 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 25 17:41:07 2010 +0000 Cosmetic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106865 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6668680fcb6e8a024b1c827bc3e2a7b387f939e Author: Devang Patel <dpatel@apple.com> Date: Fri Jun 25 17:32:23 2010 +0000 XFAIL this test on powerpc for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106862 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89daf61dac234ec529606f002a51fe3aa2f65f58 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jun 25 16:29:14 2010 +0000 Fix LLVM CMake PACKAGE_VERSION variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106861 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7614bcc0e2cf69faf5f6b4dffe0d1f57003150d1 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jun 25 16:07:18 2010 +0000 Rewrite MemoryBuffer::getSTDIN to use read(2) and a SmallVector buffer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106856 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69c2c5b074eb42b45325357a6880dfa593e185b6 Author: Duncan Sands <baldrick@free.fr> Date: Fri Jun 25 14:48:39 2010 +0000 Remove variables which are assigned to but for which the value is not used. Spotted by gcc-4.6. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 952cf0e2373cd994e2e2404a3f88a5999da5d1ce Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jun 25 12:51:01 2010 +0000 Bring back the empty vector workaround I removed in r106839. Looks like MSVC needs it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bba86778df68eb7641eef0cc2e54241bca40c48 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jun 25 11:50:40 2010 +0000 Tweak MemoryBuffer to allocate the class itself, the name and possibly the buffer in the same chunk of memory. 2 less mallocs for every uninitialized MemoryBuffer and 1 less malloc for every MemoryBuffer pointing to a memory range translate into 20% less mallocs on clang -cc1 -Eonly Cocoa_h.m. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106839 91177308-0d34-0410-b5e6-96231b3b80d8 commit f597960b1fe3452bf09ce18e24cf41b39f53897f Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 11:25:30 2010 +0000 use ArgOperand accessors and CallInst for getting hold of the intrinsic's arguments simplify along the way (at least for me this is much more legible now) Bill, Baldrick or Anton, please review\! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106838 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdf6028824f4bc830aee6a504f03c9d2b72fbd0d Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 09:44:37 2010 +0000 use ArgOperand API (the simple part) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106837 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0347a3dd93f76e5c6c5073548b59d6ed2f47c96 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 09:38:13 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106836 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10a9f7f74ff4a37ccbfa8209998e07c58f4d5ef4 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 09:36:23 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 002c8492df4229a90908fba95ae641f213884837 Author: Duncan Sands <baldrick@free.fr> Date: Fri Jun 25 09:35:33 2010 +0000 Remove unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106834 91177308-0d34-0410-b5e6-96231b3b80d8 commit e533725bfbffa5cf208f4906d770f9b8c3f814ae Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 09:03:52 2010 +0000 use ArgOperand API and CallSite to access arguments of CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106833 91177308-0d34-0410-b5e6-96231b3b80d8 commit a88edbeb17f067bc3e6aaf24641d3666e03ddaed Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 08:48:19 2010 +0000 use ArgOperand API and CallSite to access arguments of CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106829 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96aa6236341dd72ad07d77df502859f48c7068ec Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 08:24:59 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106828 91177308-0d34-0410-b5e6-96231b3b80d8 commit e292158017220487770899e8b771ce5cf1fa61db Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 08:16:50 2010 +0000 prune an include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106827 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4df0d12fbd5d0005d2aaa7bc3a73fa839d17b93 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 07:58:41 2010 +0000 use ArgOperand API (one more hunk I could split) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106825 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92d79f244e7d4d20bc44ef19d3d9088aba30b559 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 07:57:14 2010 +0000 use ArgOperand API (some hunks I could split) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0793f79df3824f570d0ab9cc321a23f0bff47512 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Jun 25 07:40:32 2010 +0000 use ArgOperand API; tighten type of handleFreeWithNonTrivialDependency to be able to use isFreeCall whithout a cast or new overload git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106823 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62e33d1dba6fb901d625694408d791f0db8e550e Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 25 04:41:08 2010 +0000 Add missing ARM and Thumb data layout info for vector types. Radar 8128745. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106820 91177308-0d34-0410-b5e6-96231b3b80d8 commit e51bec4bd0ea0f0afe1241cd5a230abbb4bc4f6f Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 25 04:12:31 2010 +0000 Reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106819 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf2805567653f9edffdc1d02f9861b550b43e9c8 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 25 00:49:43 2010 +0000 Fix a case where an earlyclobber operand of an asm is reused as an input. PR 4118. Testcase is too big, as usual with bugs in this area, but there's one in the PR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106816 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86b5db7a5dd9c1d519c6e73f6a62ca18e794615a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 25 00:39:30 2010 +0000 Add some AVX convert instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106815 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbc0a18b78677f1e9642cc05a0737f060130675b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 23:57:35 2010 +0000 Make sure all eliminated kills are removed from VNInfo lists. This fixes PR7479 and PR7485. The test cases from those PRs are big, so not included. However, PR7485 comes from self hosting on FreeBSD, so we will surely hear about any regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106811 91177308-0d34-0410-b5e6-96231b3b80d8 commit eeba7b7e8851d5bced1aad9818e16e9468784475 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 23:45:15 2010 +0000 Don't write an output file to cwd, and put an rdar prefix on an rdar number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106810 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9cb087959bac1ea4d9c5c3118c1788d1b60075f Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 23:41:59 2010 +0000 Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106809 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70a7dcdaa83331319d5dbfcbbf15491e5f831cf8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 24 23:37:07 2010 +0000 Refactoring of SSE convert intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106808 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc395493ba76c1cf60a82042213997f32a0e2b04 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 22:23:02 2010 +0000 Teach EmitLiveInCopies to omit copies for unused virtual registers, and to clean up unused incoming physregs from the live-in list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106805 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86691160eb871748967213f4e9686205c561aa9b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 24 22:22:21 2010 +0000 Refactoring of SSE conversion instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106804 91177308-0d34-0410-b5e6-96231b3b80d8 commit 566f86d38584bffe949d165045528dae185ce473 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jun 24 22:21:19 2010 +0000 Change array references to match my previous change to use the public type names for the array fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106803 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c713b41c9e6a34bbf3f32b9a94e6e728b07354a Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Jun 24 22:05:52 2010 +0000 DataTypes.h.cmake (MSVC): Protect some #define's and use specific suffixes for integer types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106797 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4676a7c73a0c297e52ee9c60b02de2b43c7042f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 24 22:04:40 2010 +0000 Refactor SSE cmp intrinsics and declare the same for AVX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f3c4a58c99b39ab672e54ded50580a04d2aa09c Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jun 24 22:04:30 2010 +0000 Fix up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 182b4367fcfcfffebc9ffecdc741af7586d3ec94 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jun 24 22:03:41 2010 +0000 Use the struct tags mandated by ARM's ABI. Also use the public type names for the array fields in these structs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106794 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2eb787a17b29138fe6196cc1529a77fd49827b23 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jun 24 22:00:37 2010 +0000 It's possible that a flag is added to the SDNode that points back to the original SDNode. This is badness. Also, this function allows one SDNode to point multiple flags to another SDNode. Badness as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106793 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf471c736f2ffbf95c270ba5d7fc6bf873b0420b Author: Devang Patel <dpatel@apple.com> Date: Thu Jun 24 21:51:19 2010 +0000 DBG_VALUE machine instruction pointing to undefined register for a variable justify a separate scope if the variable is inlined function's argument. Radar 8122864. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12b9e5dc89b3f1cab78a58efb2e74f6a2c20f32a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 20:54:29 2010 +0000 Don't return a std::vector in the Spiller interface, but take a reference to a vector instead. This avoids needless copying and allocation. Add documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69ac171185dded1a4dd9a52b4ce23d0fd45fbf5b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 24 20:48:23 2010 +0000 - Add AVX COMI{SS,SD}{rr,rm} and UCOMI{SS,SD}{rr,rm}. - Fix a small VEX encoding issue. - Move compare instructions to their appropriate place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f0208560d1fbb50b5cc17e2b787bb663ed8ad18 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 20:18:15 2010 +0000 Remove the now unused LiveIntervals::getVNInfoSourceReg(). This method was always a bit too simplistic for the real world. It didn't really deal with subregisters and such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 500252fa32fd45e6f021b5f3925fad2b50197a09 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 20:16:00 2010 +0000 Teach AdjustCopiesBackFrom to also use CoalescerPair to identify compatible copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106780 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7e14efbbf65cfdb1b7b1d81299aad0c7bf5e552 Author: Dale Johannesen <dalej@apple.com> Date: Thu Jun 24 20:14:51 2010 +0000 Disallow matching "i" constraint to symbol addresses when address requires a register or secondary load to compute (most PIC modes). This improves "g" constraint handling. 8015842. The test from 2007 is attempting to test the fix for PR1761, but since -relocation-model=static doesn't work on Darwin x86-64, it was not testing what it was supposed to be testing and was passing erroneously. Fixed to use Linux x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106779 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ca228a78dc5ad5ea89d893474279adf228588ad Author: Eric Christopher <echristo@apple.com> Date: Thu Jun 24 20:14:34 2010 +0000 Silence some unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106778 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4161d37840c4a92880d4eff5cb6e6804ae20c24 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 19:56:08 2010 +0000 Remove the -fast-spill option. This code path has never really been used, and we are going to be handling spilling through the Spiller interface in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106777 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7418745b706370b08c9fef8bfdee3d0671d4c77 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 19:34:03 2010 +0000 Document problems that I encountered when working on -scev-aa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106776 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7df503c2d8ff15b393f7ce79728beef0f1002e49 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jun 24 19:10:14 2010 +0000 Oops. IT block formation pass needs to be run at any optimization level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106775 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac581200001471ce4f44528436285ace72deacee Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jun 24 18:49:10 2010 +0000 Loosen up the requirements in the Horrible Hack(tm) to include all selectors which don't have a catch-all associated with them not just clean-ups. This fixes the SingleSource/Benchmarks/Shootout-C++/except.cpp testcase that broke because of my change r105902. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106772 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97c40940363789cb4dd7215414d629a8adf6a4a0 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jun 24 18:20:04 2010 +0000 Always allow Thumb-2 SXTB, SXTH, UXTB, and UXTH. Fixes PR7324. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88a3265b79c3fcb34b757b33236ca8bb42f61afe Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 18:15:01 2010 +0000 Replace a big gob of old coalescer logic with the new CoalescerPair class. CoalescerPair can determine if a copy can be coalesced, and which register gets merged away. The old logic in SimpleRegisterCoalescing had evolved into something a bit too convoluted. This second attempt fixes some crashes that only occurred Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106769 91177308-0d34-0410-b5e6-96231b3b80d8 commit a63b9e97b4f83c1e188344ba75eceff05182784f Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 17:36:51 2010 +0000 Add an exports file for the Hello example plugin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 068808efddb9fed284c5a4da63be29ac312e54ab Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 17:31:07 2010 +0000 Print the LSBs of a SlotIndex symbolically using letters referring to the [L]oad, [u]se, [d]ef, or [S]tore slots. This makes it easier to see if two indices refer to the same instruction, avoiding mental mod 4 calculations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106766 91177308-0d34-0410-b5e6-96231b3b80d8 commit d205e26267ec859241b82eb674a8d3c5de41f06a Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 17:08:31 2010 +0000 Simplify this code; switch lowering shouldn't produce cases which trivially fold away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106765 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9060f4e0dcb817b6b0e22a1a4bd96b918df0043 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 16:57:52 2010 +0000 A few minor micro-optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fc92eeff3b7e6e332bfc3ea47682347a0ab34a2 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 16:51:25 2010 +0000 Teach getExactSDiv to evaluate x/1 to x up front, as it's a common enough special case, and it theoretically allows more folding because it works even when x is unanalyzable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106763 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec5d7833c8f3fcd48423c45e4b6fcfd211819a7d Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jun 24 16:50:20 2010 +0000 PR7458: Try commuting Thumb2 instruction operands to put them into 2-address form so they can be narrowed to 16-bit instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106762 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61615b94ef7d598068fd2dcb241259d518dc2b79 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jun 24 16:48:26 2010 +0000 Edit and clarify comments for TargetInstrInfo methods: None of the existing implementations of commuteInstruction create new instructions unless the NewMI parameter is true, but the comment had implied otherwise. findCommutedOpIndices returns false, not true, when it doesn't know how to commute the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106761 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7f59550a446d5bbaf56948063d975c3f430f77e Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 16:47:03 2010 +0000 Don't try to preserve pointer types in SCEVConstants; the old code was over-complicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106760 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3d216f5be759efe9bfb792d78e588f30b77822f Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 16:45:11 2010 +0000 Fix copy+pasto issues in isMulSExtable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106759 91177308-0d34-0410-b5e6-96231b3b80d8 commit c46e263c68f1d060a6111d172b85f3b6d6af6c51 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 16:33:38 2010 +0000 Make the trunc code consistent with the zext and sext code in its handling of pointer types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fdbc66210b04d0f259e3fd341aa0171c0715c40 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 16:31:32 2010 +0000 Add a comment about a thread safety issue in Statistic.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106756 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68b6d418ae4bd43633851743477220dc646a35b2 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 16:25:50 2010 +0000 Add overloads for getFile and getFileOrSTDIN which take a const char * instead of a StringRef, avoiding the need to copy the string in the common case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106754 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd27965a3fd860a877321c6b287c410e97ba3ebe Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 16:19:28 2010 +0000 Be more strict about subreg-to-subreg copies in CoalescerPair. Also keep track of the original DstREg before subregister adjustments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106753 91177308-0d34-0410-b5e6-96231b3b80d8 commit b658ebaa5f066688e2404514a1e2ceed90aa04d3 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 16:11:44 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 958704f15927d1f473f4ffb5f7223b85148f74a7 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 15:56:59 2010 +0000 Verify that VNI kills are pointing to existing instructions. In this case it is essential that the kill is real because the spiller will decide to omit a spill if it thinks there is a later kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 253a656b26f831857894350b14ee9aac33062b5a Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 15:51:11 2010 +0000 use (even more, still) ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106750 91177308-0d34-0410-b5e6-96231b3b80d8 commit b74890b8f2e2944f047efa085ee32542de671fad Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 15:24:03 2010 +0000 Eliminate the other half of the BRCOND optimization, and update as many tests as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106749 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5966ad14c6676ce764027ee7fa107003ea1dd9b6 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 15:04:11 2010 +0000 Eliminate the first have of the optimization which eliminates BRCOND when the condition is constant. This optimization shouldn't be necessary, because codegen shouldn't be able to find dead control paths that the IR-level optimizer can't find. And it's undesirable, because it encourages bugpoint to leave "br i1 false" branches in its output. And it wasn't updating the CFG. I updated all the tests I could, but some tests are too reduced and I wasn't able to meaningfully preserve them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bc4becc28b9b256c2ec3147f265b95cdbcadb90 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 14:42:01 2010 +0000 use ArgOperand API and CallSite for arg range; add necessary casts and perform some cosmetics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106747 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0e3de4a264060f7610fb4bcbc50d58dd990fd5c Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 14:30:44 2010 +0000 Reapply r106634, now that the bug it exposed is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ebfcc01d76aaa7f7005a2691610eb00edb2ff8a Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 14:13:36 2010 +0000 use ArgOperand API and CallSite for arg range git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106745 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61302b0a840f615fe414db78f5304eee5214c0d5 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 13:54:33 2010 +0000 use (even more) ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106744 91177308-0d34-0410-b5e6-96231b3b80d8 commit f89ab6ee1385124f2851b1b8ca866924f84e758a Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 13:42:49 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106743 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3f0c31a35def721c4e4b93c67cfec7f26e5a0fd Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 12:58:35 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106740 91177308-0d34-0410-b5e6-96231b3b80d8 commit de67bfbee8c74e07325c109077a1fe21e5bbb147 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 12:35:13 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 375c211a7758733f9df150ff3baa87fff8c01bc0 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 12:21:15 2010 +0000 use ArgOperand API, also tighten the type of visitFree to make this work out smoothly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106736 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6333e54a988da34481ca0ceb3e8a93d3278de61 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 12:03:56 2010 +0000 use ArgOperand API; introduce downcasted pointers into scope to facilitate this git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106734 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd3ce6f450b1c91657f36ab739b63b42c14e357c Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 10:42:46 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106731 91177308-0d34-0410-b5e6-96231b3b80d8 commit 988f2693e0ce402375f669c5acd920d724ca753c Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 10:17:17 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55771a55676eadcb1cf14d591be0e759b6dfb2bc Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 10:04:07 2010 +0000 use callsite to obtain all arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106729 91177308-0d34-0410-b5e6-96231b3b80d8 commit 808eb88e1b95630e5774f1b31e71e2b09e0e6ca9 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 09:56:43 2010 +0000 use callsite to obtain all arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106728 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f09d34a826fbf3157367c48228e4499b2902c61 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jun 24 07:29:18 2010 +0000 Teach the x86 mc assembler that %dr6 = %db6, this implements rdar://8013734 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106725 91177308-0d34-0410-b5e6-96231b3b80d8 commit 847a663a4653fa4c8d3a819bfcd5967466752cd7 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jun 24 07:18:14 2010 +0000 more cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106724 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95c6ec961bf542e7ea605e64269139b0461c1d50 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jun 24 07:16:25 2010 +0000 reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66374179d3caa5082835358380695484852797a4 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jun 24 06:46:50 2010 +0000 fix breakage from r98938 by correctly marking msp430 calls as variadic. Patch by Ben Ransford! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106722 91177308-0d34-0410-b5e6-96231b3b80d8 commit d71541301a02505cca7bb7a081b91d5023339342 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 02:07:59 2010 +0000 Fix a bug in the code which determines when it's safe to use the bt instruction, which was exposed by r106263. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106718 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9c0818883dffedb64a42a884fdcfc305e6d52ed Author: Eric Christopher <echristo@apple.com> Date: Thu Jun 24 02:07:57 2010 +0000 Add a couple more quick comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106717 91177308-0d34-0410-b5e6-96231b3b80d8 commit b317670a6b66d0451a598b6825a6c3595c61f545 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 24 02:06:24 2010 +0000 Optimize the "bit test" code path for switch lowering in the case where the bit mask has exactly one bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106716 91177308-0d34-0410-b5e6-96231b3b80d8 commit d98a4460c0f59be7f87d4425063dfa7aa2757251 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 00:52:22 2010 +0000 Revert "Replace a big gob of old coalescer logic with the new CoalescerPair class." Whiny buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106710 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87fa9031edab1abca88e2f00dc58cf772069ca57 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 00:48:48 2010 +0000 use getNumArgOperands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36f5f3d32e48c99cbeea4b85021f0d4b06b8587c Author: Gabor Greif <ggreif@gmail.com> Date: Thu Jun 24 00:44:01 2010 +0000 use ArgOperand API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106707 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd3f7ffc2ec7ef619b9026c35da43bf1a7941db4 Author: Devang Patel <dpatel@apple.com> Date: Thu Jun 24 00:33:28 2010 +0000 Use ValueMap instead of DenseMap. The ValueMapper used by various cloning utility maps MDNodes also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106706 91177308-0d34-0410-b5e6-96231b3b80d8 commit a36ea17aab79295df18ea32630b8708ef941034b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 24 00:32:06 2010 +0000 Add AVX CMP{SS,SD}{rr,rm} instructions and encoding testcases git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78bbd7fed252d453eed8f89df26319db77963dd1 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 24 00:15:50 2010 +0000 Move SSE and AVX shuffle, unpack and compare code to more appropriate places git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106702 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7696441e073dc64c033dd754913fcf4955315b70 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 24 00:12:39 2010 +0000 Replace a big gob of old coalescer logic with the new CoalescerPair class. CoalescerPair can determine if a copy can be coalesced, and which register gets merged away. The old logic in SimpleRegisterCoalescing had evolved into something a bit too convoluted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a2f5cf4c25d4a389768bbf3114f422b57b6c68d Author: Devang Patel <dpatel@apple.com> Date: Thu Jun 24 00:00:42 2010 +0000 Use available typedef for " DenseMap<const Value*, Value*>". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106699 91177308-0d34-0410-b5e6-96231b3b80d8 commit e673bb282583261d6cd4bc0eddd3938992e48413 Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 23 23:55:51 2010 +0000 Cosmetic change. Do not use "ValueMap" as a name for a local variable or an argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106698 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4a1abf3e15793f85cb83ba85ce62bc9d942038b Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 23 23:38:07 2010 +0000 use ArgOperand accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106697 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d8d2853ba332eb350060a3064a2f07a8bf89465 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jun 23 23:00:16 2010 +0000 We are missing opportunites to use ldm. Take code like this: void t(int *cp0, int *cp1, int *dp, int fmd) { int c0, c1, d0, d1, d2, d3; c0 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000); c1 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000); /* ... */ } It code gens into something pretty bad. But with this change (analogous to the X86 back-end), it will use ldm and generate few instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106693 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7212c44b8ec591ce5be04ebef4b952310976cc4 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 23 22:48:06 2010 +0000 use the new isFreeCall API and ArgOperand accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18c3cc8406c60e7e6504ca03526115a2f00b3552 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 23 21:51:12 2010 +0000 minor enhancement to llvm::isFreeCall API: return CallInst; no functional change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ec904d431ed9c7b8823d17cba007f277496de09 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 23 21:41:47 2010 +0000 use ArgOperand getters git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106685 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4983f2c3e0843aa07149fbb031abb40bdaedf4a6 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 23 21:30:27 2010 +0000 Add AVX MOVMSK{PS,PD}rr instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106683 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef381229ef9189b664d3d179b2fbcff31d136c49 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 23 21:10:57 2010 +0000 Add tests for different AVX cmp opcodes, also teach the x86 asm parser to understand the vcmp instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106678 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90c587b42acec8e0cb4a18e788ead90a1ae1a94f Author: Eric Christopher <echristo@apple.com> Date: Wed Jun 23 20:49:35 2010 +0000 Update according to feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106677 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ab7898e0dbfd2039b87d76a78d19a68f6725056 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 23 20:20:59 2010 +0000 Add an extra-library-path option to the plugin. This is used to support having a library both as bitcode and native code. We want to use the bitcode first, but if codegen produces new undefined references we have to use the native code to satisfy those references. Gold has no notion of bitcode and native search directories, so instead it has an API where the plugin can instruct it to look for the libraries it is passing to it. This patch uses that API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106674 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf70e11d2a750f288f6b1e39fd06ed284718eb7d Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 23 20:07:15 2010 +0000 Add AVX SHUF{PS,PD}{rr,rm} instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106672 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59e1f68f761c765c2120d00e55dceaa6ec358463 Author: Nico Weber <nicolasweber@gmx.de> Date: Wed Jun 23 20:00:58 2010 +0000 Add support for the x86 instructions "pusha" and "popa". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106671 91177308-0d34-0410-b5e6-96231b3b80d8 commit f177063c459f373a238139268c8e4da78baf9323 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 23 19:50:39 2010 +0000 Fix a tblgen bug. Given the pattern below as an example: list<dag> Pattern = [(set RC:$dst, (v4f32 (shufp:src3 RC:$src1, (mem_frag addr:$src2))))]; The right reference resolving should lead to: list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp:src3 VR128:$src1, (mem_frag addr:$src2))))]; But was yielding: list<dag> Pattern = [(set VR128:$dst, (v4f32 (shufp VR128:$src1, (mem_frag addr:$src2))))]; Fix this by passing the right name when creating a new DagInit node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e005be95f8b74c904d87df78ca4b6f30e6b7873 Author: Dale Johannesen <dalej@apple.com> Date: Wed Jun 23 18:56:06 2010 +0000 Reinstate correct test, remove the real invalidated test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7db15643a52b33c3a50b8d3fd6513dcb027f984b Author: Dale Johannesen <dalej@apple.com> Date: Wed Jun 23 18:53:12 2010 +0000 Remove tests invalidated by previous checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96d47b0b24ba96e6090ee8f8ae75741964f9a788 Author: Dale Johannesen <dalej@apple.com> Date: Wed Jun 23 18:52:34 2010 +0000 Do not do tail calls to external symbols. If the branch turns out to be ARM-to-Thumb or vice versa the linker cannot resolve this. 8120438. If this optimization is going to be useful we probably need a compiler flag "assume callees are same architecture" or something like that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106662 91177308-0d34-0410-b5e6-96231b3b80d8 commit a40cd3706821e13d661458bdc926df6dc58d19af Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jun 23 18:16:24 2010 +0000 MorphNodeTo doesn't preserve the memory operands. Because we're morphing a node into the same node, but with different non-memory operands, we need to replace the memory operands after it's finished morphing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106643 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2531a2af4033db77d72d2c0c5d1c0e889f1b7a05 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 23 18:06:16 2010 +0000 tests: Tweak lit.cfg to fix breakage with out-of-dir lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106638 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5775be5e6fe5016b68bea35d2c9644ecae6fca2 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 23 17:09:26 2010 +0000 Revert r106263, "Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass,"... it was causing both 'file' (with clang) and 176.gcc (with llvm-gcc) to be miscompiled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75a2f1ac0dba9359e4bcc44008b88e5100723e77 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 23 16:25:07 2010 +0000 The generic DAG combiner can now fold atomic fences when needed, so switch to using that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106633 91177308-0d34-0410-b5e6-96231b3b80d8 commit 293bb597ef521796e72263a9caf2b6a925e10dbc Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 23 16:08:49 2010 +0000 When using libcall expansions for the atomic intrinsics, the explicit MEMBARRIER fences aren't necessary for ARM. Tell the combiner to fold them away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106631 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c82577b695de620071e41713f1d7e67eafb388d Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 23 16:07:42 2010 +0000 Some targets don't require the fencing MEMBARRIER instructions surrounding atomic intrinsics, either because the use locking instructions for the atomics, or because they perform the locking directly. Add support in the DAG combiner to fold away the fences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106630 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a46afe54f00acd705ed694fb3ba10b5fb4fd3a6 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 23 15:49:18 2010 +0000 remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106628 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc19af59676c6bd7b560ed42958fc5b0afd6c867 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 23 15:34:36 2010 +0000 Add a few VNInfo data structure checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 879e75fa9be2b02ecd1b0ebdf74862811d0ddbfc Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 23 13:56:57 2010 +0000 use ArgOperand accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b1115576797c4680c009665b19e1fcd447da650 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 23 13:09:06 2010 +0000 use ArgOperand accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106623 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7ecf7dbad455f38a354d67ffeedf981a5ba6ae5 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Jun 23 08:45:32 2010 +0000 use helper to neatly access arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106622 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63b1702c5a2ff795ef213ed365daff8ea939c3c2 Author: Eric Christopher <echristo@apple.com> Date: Wed Jun 23 08:01:49 2010 +0000 Update uses, defs, and comments for darwin tls patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10b41e403bd7388533791cdf08c326c7ec95e00d Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Jun 23 06:48:34 2010 +0000 Don't link against libm and libpthread which don't exist in BeOS/Haiku. Also, Haiku like Linux provides <regex.h>, so use it. Patch by Paul Davey! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106620 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3ba4f2bc44f4fb7b6fe8df5fbd8ae66b2c3fe8c Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 23 00:48:25 2010 +0000 Revert r106066, "Create a more targeted fix for not sinking instructions into a range where it"... it causes bzip2 to be miscompiled by Clang. Conflicts: lib/CodeGen/MachineSink.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f13d9adf4345da04a4129afd72a1a4fe3323dc5 Author: Stuart Hastings <stuart@apple.com> Date: Wed Jun 23 00:31:14 2010 +0000 Less incorrect handling of zero-length bitfields. Radars 7992077 and 8093043. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52875c2c36f4ed7be756cb3df54f0551e0e6609c Author: Eric Christopher <echristo@apple.com> Date: Tue Jun 22 23:51:47 2010 +0000 Get the addend correct for i386 pic. Thanks Daniel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106608 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2040b75a0d467e2f9af241ad651b352e2905090 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 22 23:44:15 2010 +0000 Generate DWARF information during Apple-style build. They'll be stripped out later on. But we need them saved in the symbols directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106604 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5eaff125a4f2c533c0a8900205ce74be461200d6 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 23:43:28 2010 +0000 Replace ScalarEvolution's private copy of getLoopPredecessor with LoopInfo's public copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106603 91177308-0d34-0410-b5e6-96231b3b80d8 commit 957131d163bacea529ab0c94e8f29220f42581c4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 22 23:37:59 2010 +0000 Add AVX compare packed instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106600 91177308-0d34-0410-b5e6-96231b3b80d8 commit befa9d754e316766339c52575712666b9260c108 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 23:32:47 2010 +0000 Loosen up this test so that it doesn't depend as much on register allocation details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106599 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1825c56e1207f37ab3ad65e75874e3928ab4ed01 Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 23:29:55 2010 +0000 Revert 106592 for now. It causes clang-selfhost build failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b4d78bf24b2f87e4fb1a286397e0abb761a0bf1 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 23:07:13 2010 +0000 Fix OptimizeMax to handle an odd case where one of the max operands is another max which folds. This fixes PR7454. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106594 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea3b8d5c0adca63bf7dfa3d48af2137bf2d7703a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 22 23:02:38 2010 +0000 Reapply support for AVX unpack and interleave instructions, with testcases this time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106593 91177308-0d34-0410-b5e6-96231b3b80d8 commit dcf9af4106bcb5e0d41d392f44ae4a57c038eb87 Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 22:53:21 2010 +0000 If a metadata operand is seeded in value map and the metadata should also be seeded in value map. This is not limited to function local metadata. Failure to seed metdata in such cases causes troubles when in a cloned module, metadata from a new module refers to values in old module. Usually this results in mysterious bugpoint crashes. For example, Checking to see if we can delete global inits: Unknown constant! UNREACHABLE executed at /d/g/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp:904! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106592 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3fc083a68d683edbc99ebb3d4ca3606b6e6c57a Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 22:50:42 2010 +0000 While cloning a module, clone metadata attached with instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106591 91177308-0d34-0410-b5e6-96231b3b80d8 commit a130c9ec385c92882133def4cd3827fd12e05f3f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 22 22:38:56 2010 +0000 Add AVX MOV{SS,SD}{rr,rm} instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106588 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6e439870f3ccd9776e33a2cdf782f14b57a8888 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 22 22:16:17 2010 +0000 Fix the formatting of the switch statement and add a missing break. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f6f8e355a92b75d6566a01563500ecd420352ec Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 22 22:11:07 2010 +0000 Also convert SUBREG_TO_REG to a KILL when relevant, like the other subreg instructions. This does not affect codegen much because SUBREG_TO_REG is only used by X86 and X86 does not use the register scavenger, but it prevents verifier errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106583 91177308-0d34-0410-b5e6-96231b3b80d8 commit e159469c6404f770b5e4a2335270083860647ddf Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 22 22:04:24 2010 +0000 Thumb1 functions using @llvm.returnaddress were not saving the incoming LR. Radar 8031193. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106582 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca744980124261537a6bb61a4277c797ae87a541 Author: Eric Christopher <echristo@apple.com> Date: Tue Jun 22 21:11:51 2010 +0000 Move a 64-bit test to the 64-bit file. Fixes an llvm-mc assertion during test runs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106577 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49a5eaace7024dbaf92fffc843c2b98c0f0f005d Author: Eric Christopher <echristo@apple.com> Date: Tue Jun 22 21:01:04 2010 +0000 Look for and use a different darwin crash reporter library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106576 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3110ac8a43801969cd54e5700b2a923088e616e Author: Dale Johannesen <dalej@apple.com> Date: Tue Jun 22 20:54:03 2010 +0000 Add SSE so these actually pass on non-X86 hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106575 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab883a92ec79e90ddd1c431a9b7323389f9346d0 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 22 20:52:02 2010 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106574 91177308-0d34-0410-b5e6-96231b3b80d8 commit f65852c49c974dcfff4a6a3d84045e10ada4f8bd Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jun 22 20:40:38 2010 +0000 use high-level accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106573 91177308-0d34-0410-b5e6-96231b3b80d8 commit edfef8fcd4836d188fb28c3751c9f1b610c9884e Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 22 20:30:50 2010 +0000 Fix a subtle multiclass bug: when using class inheritance on a toplevel 'defm', make sure to properly resolve references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106570 91177308-0d34-0410-b5e6-96231b3b80d8 commit 162fb55e6540131633bee5355cf85b4099a51dea Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 22 20:30:14 2010 +0000 Corresponding test changes for r106564. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106569 91177308-0d34-0410-b5e6-96231b3b80d8 commit 318814a145e360120ba506b77fd358d7005b7580 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Jun 22 19:46:37 2010 +0000 warmup ritual: use high-level argument accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b1f39f9077afcc57e0fb302efc08dc385bbad68 Author: Mon P Wang <wangmp@apple.com> Date: Tue Jun 22 19:40:50 2010 +0000 Move v-binop-widen tests to X86 since they don't work on all platforms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d84c9387d101182764a1bc1b34356ebbf1559ac Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 18:52:38 2010 +0000 Clone named metadata while cloning a module. Reapply Bob's patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106560 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cb09869eeccd4487dfce73af0852d9054b8ef8b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 22 18:17:40 2010 +0000 Reorganize logical and arithmetic SSE 1 & 2 instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 117a2256f2bc699ab2b7a8e4893806f885aeed47 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 22 18:09:32 2010 +0000 Reorganize SSE instructions, making easier to see oportunities for refactoring git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ab25f293e3852a5e9c89fa7c86ab8cf40213dca Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 17:25:57 2010 +0000 Move PHIElimination's SplitCriticalEdge for MachineBasicBlocks out into a utility routine, teach it how to update MachineLoopInfo, and make use of it in MachineLICM to split critical edges on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106555 91177308-0d34-0410-b5e6-96231b3b80d8 commit 310adb433e4f51cfe133af5e78573c63d39f1fe4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 22 16:13:57 2010 +0000 Remove the SimpleJoin optimization from SimpleRegisterCoalescing. Measurements show that it does not speed up coalescing, so there is no reason the keep the added complexity around. Also clean out some unused methods and static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106548 91177308-0d34-0410-b5e6-96231b3b80d8 commit c01e9ddc47cd765823582db1393a809f0e44e3ae Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 15:25:42 2010 +0000 Split out the code for finding a unique loop predecessor from getLoopPreheader into a separate function, for clients which don't require a proper preheader. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106543 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1040ca4ada6f587de7dd3f95a8759007c84f6b9 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 15:08:57 2010 +0000 Use pre-increment instead of post-increment when the result is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106542 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a7845c4cca49775c72ab816afccd47a622e7961 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 13:57:08 2010 +0000 Add a comment explaining a non-obvious API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106539 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec09296c05877572b09e038c56a586f7e972a345 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 13:53:29 2010 +0000 Add an explicit keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106538 91177308-0d34-0410-b5e6-96231b3b80d8 commit b80abd5b7f6d7bbfb9c0a8832c851de50700fa20 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 13:15:46 2010 +0000 Allow "exhaustive" trip count evaluation on phi nodes with all constant operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106537 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88e62f2fb5c164f3b5be1c563b8427269ce5f554 Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 06:14:09 2010 +0000 Revert 106528. It is causing self host failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 960babe735176ab134ea32987b7503ec1b2d447d Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 05:16:56 2010 +0000 Do not rely on DenseMap slot which can be easily invalidated when DenseMap grows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 938f7331585408e28b8862cce037618506dc933a Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 22 02:08:51 2010 +0000 Revert my change to clone named metadata. Buildbots are complaining. --- Reverse-merging r106508 into '.': U lib/Transforms/Utils/CloneModule.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 257692b38de1d3d6bfb1c471e78f33763287cd62 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 02:07:21 2010 +0000 When unfolding a load, avoid assuming which instruction that kill and dead flags will end up on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106520 91177308-0d34-0410-b5e6-96231b3b80d8 commit c02003eb0817c17e497935bb689772a2d92f1dfe Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 01:19:38 2010 +0000 Use single interface, using twine, to get named metadata. getNamedMetadata(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b68654d95a058d5a258943cef0dcaa5cc3a937d Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jun 22 01:18:16 2010 +0000 Tail merging pass shall not break up IT blocks. rdar://8115404 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b89339565d94323fd0da1493aa1de57ae8c5dd7 Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 01:06:05 2010 +0000 Discard special LLVM prefix from linkage name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106516 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd6bbd0f2c677414e914ea629b861860e8f92823 Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 22 01:01:58 2010 +0000 Do not rely on Twine temporaries to survive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2987e573ece39e478af5902347d62719ca6053ae Author: Chris Lattner <sabre@nondot.org> Date: Tue Jun 22 00:40:26 2010 +0000 make sure to initialize indent_level git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94b35cddef76dae50640ab3503e718aa3bb3d3fe Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 22 00:32:04 2010 +0000 Fix the new load-unfolding code to update LiveVariable's dead flags, in addition to the kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106512 91177308-0d34-0410-b5e6-96231b3b80d8 commit c235ba5d3f0815d3ee45291fd7040a48a5ca1ced Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 22 00:11:03 2010 +0000 Include named metadata when cloning a module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80114b2b472d03c93bfb17b07608033a7cfee495 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 23:49:08 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106505 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12bb914f608e8cc831644d09e3ff3eed7843de11 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 23:19:36 2010 +0000 add some support for blockaddress. This isn't really enough to be useful, but it will cover uses of blockaddress that are actually in a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106502 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48156a81ef8e2ff3e631e9371134d1833f25d901 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 23:14:47 2010 +0000 eliminate a mutable global variable, use raw_ostream::indent instead of rolling our own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106501 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d631558cc96904853905d4297fa7a129fff0a4a Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 23:12:56 2010 +0000 un-indent a huge amount of code out of an anonymous namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106500 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc1eb2bc253598f900a31088c234d1c290a7bfb9 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jun 21 22:59:03 2010 +0000 revert r106482 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106499 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35fb66b259979d771eb4b6e623b9575882210c8e Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 22:51:14 2010 +0000 fix several bugs in the tutorial, patch by Kevin Kelley! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 866711e285cf5a9c8078c15615ee338d99c92d66 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 21 22:17:20 2010 +0000 Teach two-address lowering how to unfold a load to open up commuting opportunities. For example, this lets it emit this: movq (%rax), %rcx addq %rdx, %rcx instead of this: movq %rdx, %rcx addq (%rax), %rcx in the case where %rdx has subsequent uses. It's the same number of instructions, and usually the same encoding size on x86, but it appears faster, and in general, it may allow better scheduling for the load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106493 91177308-0d34-0410-b5e6-96231b3b80d8 commit beb1ce3200b63ca91a2928766a1e4cdb86b73eb7 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jun 21 21:28:07 2010 +0000 change parameter name to avoid confusion with global definition git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106486 91177308-0d34-0410-b5e6-96231b3b80d8 commit da3e915c16d4408c9bf4b40de69e1e6b66ed58ee Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 21 21:27:34 2010 +0000 sign_extend_inreg needs to be expanded for pre-v6 Thumb as well as ARM. Radar 8104310. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106484 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2eb202f41bd11caa6f0b1a2e5f9f7b0ec0faf11 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 21 21:27:27 2010 +0000 LEApcrelJT shouldn't be marked as neverHasSideEffects, as we don't want it being moved around away from the jump table it references. rdar://8104340 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c749c2c067d6353a3f0594497ce0218e4505dcc Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jun 21 21:21:48 2010 +0000 Add unpack and interleave AVX instructions, encoding tests cooming soon git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106482 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8ac36396ee033bbc8aa5c2a650727c626b1e73a Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jun 21 21:21:14 2010 +0000 Fix PR7421: bug in kill transferring logic. It was ignoring loads / stores which have already been processed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4747c3270a31694edbeb7feef94da72808f07988 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 20:36:09 2010 +0000 This makes example Makefile a lot more like actual lib/Transforms/Hello/Makefile, and prevents a lot of errors like "Assertion `Inserted && "Pass registered multiple times!"' failed" Patch by Gregory Petrosyan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106471 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78ee8d2115f12a57bb2d695c10dd88a213852e2d Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 20:35:09 2010 +0000 Remove isTwoAddress from llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106470 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92a3062252883b9c7eeef25e49ca4be091cf20cb Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 20:35:01 2010 +0000 "This is just a cosmetic change in MCAsmStreamer.cpp/EmitSymbolAttribute: all attributes have now a \t before and after, as done for '.type'. This makes the output look consistent, as well as help some third party assemblers expecting the attributes to be in the second column." Patch by Arnaud de Grandmaison! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106469 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52beb1f19e27153b9420a3beaac76a3cf46b0f03 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 20:31:30 2010 +0000 fix typos reported by Adam Warner! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25ad7e46bd270034314fa15ab4ad28d591120ede Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 20:25:57 2010 +0000 Remove isTwoAddress from SystemZ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106467 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc24d9fe4aad7a15730b3af4ee0d2bfade47dd4c Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 20:22:35 2010 +0000 Remove isTwoAddress from Sparc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106466 91177308-0d34-0410-b5e6-96231b3b80d8 commit aaadd648e2c7ca604eccb083a7910fbb8161f98e Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 20:19:21 2010 +0000 Remove isTwoAddress from Mips. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106465 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba8eefed6af2db84eb7cfd1ad6ee3cc917ab4155 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 20:13:37 2010 +0000 Remove isTwoAddress from Blackfin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04777c45791f7a14309513e38188df306d73fc8f Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 20:07:30 2010 +0000 Remove isTwoAddress from MSP430. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 927869a00c5572441d8e084c7ec14d8224ec99e5 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 21 19:56:27 2010 +0000 Make this test more robust in case LLVM ever decides to align the global variable differently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 309c64e06222d3a20a87c64e6a37c4901eb6a61b Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 21 19:47:52 2010 +0000 Use A.append(...) instead of A.insert(A.end(), ...) when A is a SmallVector, and other SmallVector simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106452 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fb39a6f7fd9647fe5d435e4dd1feb9f3780add9 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 18:56:55 2010 +0000 Make 80-column. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106448 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd9d194fb99d714e449273d280eb628641880a50 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 18:55:01 2010 +0000 Remove isTwoAddress from PIC16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106447 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9fd28b206655322b6f6a16b2c7f0df426a73cf6 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 18:51:38 2010 +0000 Remove isTwoAddress from XCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106446 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8be9a848c4c08b0b9e426e4f10def4ae288bf8e8 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 18:48:55 2010 +0000 Remove isTwoAddress from Alpha. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106445 91177308-0d34-0410-b5e6-96231b3b80d8 commit a066746157411995a3612e35e0def2819cc5430c Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 21 18:46:45 2010 +0000 Move several non-performance-critical member functinos out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106444 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d888592793caf6a3d7f17ebd618a2250a1b301a Author: Dale Johannesen <dalej@apple.com> Date: Mon Jun 21 18:46:08 2010 +0000 Add missing FileCheck call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106443 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e4ab8379c765f06b102e20dc46c0d0f6dd4b6ee Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 21 18:37:23 2010 +0000 test case for r106438. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106439 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5155b69f19088645611757f473f44d93f6933c50 Author: Devang Patel <dpatel@apple.com> Date: Mon Jun 21 18:36:58 2010 +0000 Do not directly use function names to construct new name for named metadata. "llvm.dbg.lv.~A" is not a valid name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106438 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe2af3d29d9563b92fda9d60f5b43d830d0c3498 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jun 21 18:36:04 2010 +0000 Move part of SSE 1 & 2 compare, shuffle and unpack instructions closely. Preparing them for refactoring and to the addition of their AVX forms git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106437 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44bc5eb6232205b7a784fdcb37bbc92f3855ee09 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Jun 21 18:22:54 2010 +0000 Add AVX regular (non-aliased ones) and,or,xor,andn packed instructions. They are already tested in the MC framework, no test needed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106436 91177308-0d34-0410-b5e6-96231b3b80d8 commit debc1e4d7a84378b4d1adbf5499088620303364e Author: Dale Johannesen <dalej@apple.com> Date: Mon Jun 21 18:21:49 2010 +0000 Fix PR 7433. Silly typo in non-Darwin ARM tail call handling, plus correct R9 handling in that mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 790c94c560bfd220bb82f6e6af8e72111a440c58 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 21 18:21:27 2010 +0000 Add some codegen patterns for x86_64-linux-gnu tls codegen matching. Based on a patch by Patrick Marlier! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106433 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7a4b3a3cb0cbc75f057192bc61dd3496e2cd121 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 21 17:49:23 2010 +0000 early exit for dbg_value instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106430 91177308-0d34-0410-b5e6-96231b3b80d8 commit 436af500acd45737178ed072ee53e009786e6023 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 17:20:18 2010 +0000 remove some dead variables reported by clang++ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106428 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad315db856f723476dd85be0aa0d09707cb0f20d Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 21 16:46:37 2010 +0000 make the Value constructor protected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106427 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbdef2b9d4ddea718bd1ad5406a21a0ee291e910 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 21 16:02:28 2010 +0000 Revert r106422, which is breaking the non-fast-isel path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106423 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97ac595b3da45793f37627c62b4d22b6d256ff1b Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 21 15:13:54 2010 +0000 More changes for non-top-down fast-isel. Split the code for materializing a value out of SelectionDAGBuilder::getValue into a helper function, so that it can be used in other ways. Add a new getNonRegisterValue function which uses it, for use in code which doesn't want a CopyFromReg even when FuncMap.ValueMap already has an entry for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78df8e6fc85acd647999dc5d2852b61322a053ae Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Jun 21 15:11:51 2010 +0000 Add the check to the testcase of r106419. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7941b13da6c0a2cab0034ed0b0bc0c997bed8790 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Jun 21 15:08:16 2010 +0000 Mark the SPU 'lr' instruction to never have side effects. This allows the fast regiser allocator to remove redundant register moves. Update a set of tests that depend on the register allocator to be linear scan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106420 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9eb26d1c05c0f4e24234b2af370de6453258ccc Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Jun 21 14:42:19 2010 +0000 Fix the lowering of VECTOR_SHUFFLE on SPU to handle splats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4226b003f18f3c1727da7170b56a39ad90c73c98 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 21 14:21:47 2010 +0000 Do one lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 411099f20b5a959ac2d85aa52863ebcca1c2d908 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 21 14:17:46 2010 +0000 Generalize this to look in the regular ValueMap in addition to the LocalValueMap, to make it more flexible when fast-isel isn't proceding straight top-down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 620272bfe33275d026e3789b7c4b67b2d66e9d53 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jun 21 13:31:32 2010 +0000 Fix an unintentional commit. I think I typed "git svn dcommit" in the wrong branch. I was trying to do some refactoring on the copyRegToReg, but this is realyl a work in progress and not generally useful yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106413 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28e113ac3ff6f0f9b18c3b61804fe94634441682 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon Jun 21 10:17:36 2010 +0000 Fix lowering of VECTOR_SHUFFLE on SPU. Old algorithm used to choke llc with the attached test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106411 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0f2092ac1d81e670fb652f74be695f9d7af5dbe Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jun 21 02:23:12 2010 +0000 add_input_file and add_input_library now take const arguments, remove the const_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ab8f0b3b3df4debcd801be145f4dd3c3c09a0d5 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jun 21 02:17:36 2010 +0000 Save more temps with -save-temps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b97543a3294599829491347ea22e34b2d3dc56e Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jun 21 02:17:34 2010 +0000 wip git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106408 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6ccd1a445261a6b45eac28e402c943087f2d24f Author: Nate Begeman <natebegeman@mac.com> Date: Sun Jun 20 21:09:52 2010 +0000 Add support for returning multiple vectors via sret, which is how the ARM target expects the intrinsics to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106406 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95034e9d7a886982174eed6e26858aa992279955 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Jun 20 20:27:42 2010 +0000 Fix warning in no-asserts build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106405 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03bf7454204384760f41e19d0f7a006adf22de1a Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Jun 20 00:54:38 2010 +0000 Fix a crash caused by dereference of MBB.end(). rdar://8110842 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106399 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc1f2062ffb0dfeb83e18fd82d5d8add4e25123a Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 19 22:50:35 2010 +0000 Restore a call to rememberInstruction which was accidentally dropped in refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106398 91177308-0d34-0410-b5e6-96231b3b80d8 commit d82d336d2173618265beebed0fa45b3262919e85 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 19 21:30:18 2010 +0000 Add a TODO comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106397 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2d9ab48c561b0f4167469b76899ab566f475440 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 19 21:29:59 2010 +0000 Include the use kind along with the expression in the key of the use sharing map. The reconcileNewOffset logic already forces a separate use if the kinds differ, so incorporating the kind in the key means we can track more sharing opportunities. More sharing means fewer total uses to track, which means smaller problem sizes, which means the conservative throttles don't kick in as often. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a9d8801a9081768d3032c6f9aae4221303e47b2 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 19 21:21:39 2010 +0000 Don't include things in anonymous namespaces that don't need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106395 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac2728375a40c5003e8a6f4c1cb41365501327e1 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Jun 19 17:00:31 2010 +0000 Use calloc instead of new/memset, it is more efficient when the set is very large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106390 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5644f747fbc2e338c6654c7df52e1a1ea096b8b3 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 19 14:17:24 2010 +0000 Fix ScalarEvolution's "exhaustive" trip count evaluation code to avoid assuming that loops are in canonical form, as ScalarEvolution doesn't depend on LoopSimplify itself. Also, with indirectbr not all loops can be simplified. This fixes PR7416. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106389 91177308-0d34-0410-b5e6-96231b3b80d8 commit 677bde3936dafe91eca9e9b71315bff8089e2851 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 19 13:25:23 2010 +0000 Factor out duplicated code for reusing and inserting casts into a helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106388 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8e69054960bea87a4ec9fd04b99dd3b8513b63c Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jun 19 05:33:57 2010 +0000 Tidy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106383 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0684406f1335af8e741eee0607436c5bf640356 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jun 19 05:32:41 2010 +0000 Remove a fixme comment that is no longer relevant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106382 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bbe9fc0dc335c0ef43fc7b73bbbce6bed8bede4 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jun 19 05:32:09 2010 +0000 Fix error message to match function name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7def6ecbecedea7a383512428eda97cc5d1d2009 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 19 04:09:22 2010 +0000 Refactoring of regular logical packed instructions to prepare for AVX ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106375 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0bf2cf2843c72076eacf09ce52f71dcaff05369 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 19 02:44:01 2010 +0000 Refactor aliased packed logical instructions, also add AVX AND,OR,XOR,NAND{P}{S,D}{rr,rm} instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106374 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ef0b3d5a3e8d083b1d7c630f85a2624c103af9d Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jun 19 02:36:21 2010 +0000 Ignore dbg_value's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106373 91177308-0d34-0410-b5e6-96231b3b80d8 commit c02c0f56587082dc1f903b0a60a0002e9d095ec9 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 19 01:32:46 2010 +0000 Move new sse 1 & 2 generic classes to a more appropriate place git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106372 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb9b0f7a4f26efda8a6e6c676ea6a10d1b7de8e8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 19 01:22:34 2010 +0000 Remove unnecessary arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106371 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cd52b8e8f2e21ab43aac72f95fea45420628741 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 19 01:17:05 2010 +0000 Add AVX packed intrinsics for MIN, MAX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106370 91177308-0d34-0410-b5e6-96231b3b80d8 commit e433819be575e98fda7e6dd14af005b1a23f7cab Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jun 19 01:01:32 2010 +0000 Disable sibcall optimization for Thumb1 for now since Thumb1RegisterInfo::emitEpilogue is not expecting them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ba5fad6948a75dcd90df5e6b483aeedcd2fe883 Author: Eric Christopher <echristo@apple.com> Date: Sat Jun 19 00:37:40 2010 +0000 Finish ripping isTwoAddress out of X86. Some mindless formatting and operand renaming to help. The giant turn the constraints on and selectively turn it off should probably be inverted at some point since it's just largely 50/50. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106367 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c49b8e0523cbd7e528652a4a9f2856b01f56601 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 19 00:37:31 2010 +0000 Shrink down code and add for free AVX {MIN,MAX}P{S,D}{rm,rr} instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106366 91177308-0d34-0410-b5e6-96231b3b80d8 commit e283101a54f8abfd69ce1510f447ce67b9282d18 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jun 19 00:34:14 2010 +0000 rip out dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106365 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8947bbea5167320260b1bb21f784453e21417ec6 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jun 19 00:34:00 2010 +0000 fix rdar://7873482 by teaching the instruction encoder to emit segment prefixes. Daniel wrote most of this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 574cba75bc0855a26f516d96af5cdb47230c08a0 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jun 19 00:11:54 2010 +0000 Indentation and remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106362 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17151bc731e6c0a333bd482c403a650466a71585 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 19 00:09:27 2010 +0000 Clean up: remove now unnecessary Constraints git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106361 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e078976a81f10e9b245451028d6f204ab195e72 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 19 00:02:06 2010 +0000 Silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106360 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf46f27dbb266ad0cad95c09f7678b9c6247ff36 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 19 00:00:22 2010 +0000 more refactoring! yay! big win over the intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106359 91177308-0d34-0410-b5e6-96231b3b80d8 commit f892eb7cb2fe7ed6a41dea8df8c0cac8196855d0 Author: Eric Christopher <echristo@apple.com> Date: Fri Jun 18 23:56:07 2010 +0000 Remove isTwoAddress from here too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106358 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a35bfe8dd354248b153f476c926a77380254693 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 18 23:53:27 2010 +0000 Fix typo, SSE1 should be used by XS, not SSE2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106357 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4b205817d42b4969c323caa1b27d73068c39b50 Author: Eric Christopher <echristo@apple.com> Date: Fri Jun 18 23:51:21 2010 +0000 Remove isTwoAddress from 64-bit files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106356 91177308-0d34-0410-b5e6-96231b3b80d8 commit e751da6ba67cdf81eb6723ea3b583a26d5ab75d8 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 18 23:32:07 2010 +0000 Move ARM if-conversion before post-ra scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5af4f257a59c37bd00b4194ff99ff87726fbf04a Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 23:28:01 2010 +0000 Teach regular and fast isel to set dead flags on unused implicit defs on calls and similar instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106353 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99ac09220ef13518a8967f6f93e86b596d7a35c4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 18 23:13:35 2010 +0000 Apply some refactor to packed instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106349 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac5bc19b9f537dcf24ec9345567dbf1d010d63d9 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 18 23:12:10 2010 +0000 Update cmake list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106348 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5dde0faa5b5861040c2d6cc5a044dd1e845d483 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 18 23:11:35 2010 +0000 Thumb2 hazard recognizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106347 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99ec0e1e4dd08555dc8abb6cd73d204be62ed9f8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jun 18 23:10:20 2010 +0000 Only run CoalesceExtSubRegs when we can expect LiveIntervalAnalysis to clean up the inserted INSERT_SUBREGs after us. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106345 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33166791b3baa8fcbc8b4193590849b833e0c1b0 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 18 23:09:54 2010 +0000 Allow ARM if-converter to be run after post allocation scheduling. - This fixed a number of bugs in if-converter, tail merging, and post-allocation scheduler. If-converter now runs branch folding / tail merging first to maximize if-conversion opportunities. - Also changed the t2IT instruction slightly. It now defines the ITSTATE register which is read by instructions in the IT block. - Added Thumb2 specific hazard recognizer to ensure the scheduler doesn't change the instruction ordering in the IT block (since IT mask has been finalized). It also ensures no other instructions can be scheduled between instructions in the IT block. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106344 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd6086f4b6a78b76a577f1fe1c98ca6f693f6741 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 18 23:03:10 2010 +0000 back-end libcall handling for ATOMIC_SWAP (__sync_lock_test_and_set) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106342 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06933559e3b203cf8ffd7bbee8f19650d0bfd8e0 Author: Eric Christopher <echristo@apple.com> Date: Fri Jun 18 22:51:25 2010 +0000 Another typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106340 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b7ec44074b9771d1194e3d51ac69a4268aaa138 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 18 22:35:32 2010 +0000 Enable Expand handling of atomics for subtargets that can't do them inline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30a5582f6a56b716a9b39cc8c2564c46cf0bba3b Author: Eric Christopher <echristo@apple.com> Date: Fri Jun 18 22:33:17 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106335 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f60bf23fccd057857f1b6ed83eb96ef3a7a9d75 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jun 18 22:29:44 2010 +0000 TwoAddressInstructionPass::CoalesceExtSubRegs can insert INSERT_SUBREG instructions, but it doesn't really understand live ranges, so the first INSERT_SUBREG uses an implicitly defined register. Fix it in LiveVariableAnalysis by adding the <undef> flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106333 91177308-0d34-0410-b5e6-96231b3b80d8 commit c158028a69b0555588dd66a35dc67a4dc72c64ec Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 18 22:17:13 2010 +0000 Fix an inverted condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106330 91177308-0d34-0410-b5e6-96231b3b80d8 commit a29b19d4a13f58ec9afa51564b3d84248ce09186 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 18 22:10:11 2010 +0000 Use the new 'defm' class inheritance in SSE git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106327 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebd33bdfebaa4f250ea53a26b9b1c129e2581434 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 18 22:01:37 2010 +0000 Fix cross initialization compilation error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fc661738450584343e976194a3ffa9129f6effa Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 18 21:52:57 2010 +0000 Teach iff-converter to properly count # of dups. It was not skipping over dbg_value's which resulted in non-duplicated instructions being deleted. rdar://8104384. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106323 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee9f7c4cd12142a3dc75b1721e2099ba125f3201 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 18 21:43:38 2010 +0000 Add Expand-to-libcall support for additional atomics. This covers the usual entries used by llvm-gcc. *_[U]MIN and such can be added later if needed. This enables the front ends to simplify handling of the atomic intrinsics by removing the target-specific decision about which targets can handle the intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106321 91177308-0d34-0410-b5e6-96231b3b80d8 commit b332be82e0620446328dbb8b07032e8185ddf254 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 18 21:32:42 2010 +0000 Rewrite chained if's as switches and replace assertions with llvm_unreachable (as suggested in radar 8104405). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106318 91177308-0d34-0410-b5e6-96231b3b80d8 commit 138c06655b6fc91ed7f5cbdae3e2fad38eb3e728 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 18 21:07:47 2010 +0000 Fix ARM/Thumb reversal in previous attempt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106314 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0362f3968fb4e61a0e80901cff2b5249bacf2393 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jun 18 20:59:25 2010 +0000 When using ADDri to get the address of a stack object, 255 is a conservative limit on the offset that can be materialized without using the register scavenger. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106312 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca73bb2b92069b1adbb5733f044a8026000e14ef Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 20:45:41 2010 +0000 Make this comment less specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106311 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41615347946ac4b8eec342bdd6a5d70cbf3825b1 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 20:44:47 2010 +0000 Fix X86FastISel's address-mode folding to stay within the original basic block. This avoids trouble with examining instructions in other basic blocks which haven't been assigned registers yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00547de48b857dc249cc72a1665e36336d00b2d2 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 18 20:44:28 2010 +0000 An attempt to fix the problem Anton reported with ARM tail calls. Don't know if it works, but it doesn't break Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106309 91177308-0d34-0410-b5e6-96231b3b80d8 commit bcadded6eabfbf210dbbc39dc646a4a9373b33e4 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 19:54:20 2010 +0000 Revert r106304 (105548 and friends), which are the SCEVComplexityCompare optimizations. There is still some nondeterminism remaining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106306 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01ff09e195d9c2339eea0d598168e9b3753df4f1 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 18 19:53:41 2010 +0000 Teach tablegen how to inherit from classes in 'defm' definitions. The rule is simple: only inherit from a class list if they come in the end, after the last multiclass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106305 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97b6950560dfd49099de28e427d773f517d5e138 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 19:26:04 2010 +0000 Reapply 105540, 105542, and 105548, and revert r105732. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106304 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6a1ccd02025d32bb67cfb506f45365fb5c102c2 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Jun 18 19:18:58 2010 +0000 Add a pass-through option to the plugin. The use case for this option is to ask the linker to take another look into some library or object. The case when one might want to do this is when codegen introduces a new undefined reference. The canonical example is libgcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e4b0c2de0d26959af2ec2cfcb4db8553498b393 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 19:12:32 2010 +0000 Reapply 105546. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106302 91177308-0d34-0410-b5e6-96231b3b80d8 commit b08a5e90f1a263209bf40bf7f516488a40ff6b08 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 19:09:27 2010 +0000 Reapply 105544. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106301 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0acde72b96a2a49fa8ec4f5bd34d952fcbade45e Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 19:04:37 2010 +0000 Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106300 91177308-0d34-0410-b5e6-96231b3b80d8 commit a04f67c26fa9e1e6f609d4b0f6f9d0c0621a7060 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 18 19:00:18 2010 +0000 Enable tail calls on ARM by default, with some basic tests. This has been well tested on Darwin but not elsewhere. It should work provided the linker correctly resolves B.W <label in other function> which it has not seen before, at least from llvm-based compilers. I'm leaving the arm-tail-calls switch in until I see if there's any problems because of that; it might need to be disabled for some environments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106299 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44dbfdf35e8e83a9a8accff3da46b71e0d91fabe Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 18:54:05 2010 +0000 Don't leak RegClass2VRegMap, which is now a new[] array instead of a std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106298 91177308-0d34-0410-b5e6-96231b3b80d8 commit 003a837c5c7f8f3c8f3c7e621a76dcadbc476045 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 18:13:55 2010 +0000 Start TargetRegisterClass indices at 0 instead of 1, so that MachineRegisterInfo doesn't have to confusingly allocate an extra entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ab84b3417506fca7b0b065f9dc176ec977351f4 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 18 18:13:11 2010 +0000 Last round of changes for ARM tail calls. Not turning them on yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34ecd4369f57a29508e1518132869d68d8a57146 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 18 17:40:42 2010 +0000 Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106292 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7fe0d559ecf031a8b426d23ec1f967931d63b3a Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 18 17:07:23 2010 +0000 Fix PR7372: Conditional branches (at least on ARM) are treated as predicated, so when IfConverter::CopyAndPredicateBlock checks to see if it should ignore an instruction because it is a branch, it should not check if the branch is predicated. This case (when IgnoreBr is true) is only relevant from IfConvertTriangle, where new branches are inserted after the block has been copied and predicated. If the original branch is not removed, we end up with multiple conditional branches (possibly conflicting) at the end of the block. Aside from any immediate errors resulting from that, this confuses the AnalyzeBranch functions so that the branches are not analyzable. That in turn causes the IfConverter to think that the "Simple" pattern can be applied, and things go downhill fast because the "Simple" pattern does _not_ apply if the block can fall through. This is pretty fragile. If there are other degenerate cases where AnalyzeBranch fails, but where the block may still fall through, the IfConverter should not perform its "Simple" if-conversion. But, I don't know how to do that with the current AnalyzeBranch interface, so for now, the best thing seems to be to avoid creating branches that AnalyzeBranch cannot handle. Evan, please review! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106291 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25296a451d0207f8fefb8e4080d74216ff3c5078 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jun 18 16:49:33 2010 +0000 Treat the ARM inline asm {cc} constraint as a physreg (%CPSR), just like X86 does for {flags}. If we create virtual registers of the CCR class, RegAllocFast may try to spill them, and we can't do that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106289 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13fc9e634c499b68addd728c456840e11cb97607 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 16:09:11 2010 +0000 Don't bother calling releaseMemory before destroying the DominatorTreeBase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106287 91177308-0d34-0410-b5e6-96231b3b80d8 commit b47da0e5b3f77270fafb2d2f1a99b6d7a1f45b09 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 16:00:29 2010 +0000 Minor code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106286 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e5a6fea11d17d2f1a73d79e2e1a3f3367563287 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 15:56:31 2010 +0000 Give NamedRegionTimer an Enabled flag, allowing all its clients to switch from this: if (TimePassesIsEnabled) { NamedRegionTimer T(Name, GroupName); do_something(); } else { do_something(); // duplicate the code, this time without a timer! } to this: { NamedRegionTimer T(Name, GroupName, TimePassesIsEnabled); do_something(); } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106285 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf71542908b9fd47b9b90d03fec0714eb8de4faa Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 15:40:58 2010 +0000 Don't replace the old Ordering object with a new one; just clear() the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106284 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac48e4f05929e073e51ad24c8f9d00c7fda43acb Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 15:36:18 2010 +0000 Don't call clear() on DbgInfo when it's going to be deleted anyway. Don't replace the old DbgInfo with a new one when clear() on the old one is sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106283 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8dcbb0c5b59d5ce0e5e4e65bc558f3c33886d0dd Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 15:30:29 2010 +0000 Change UpdateNodeOperands' operand and return value from SDValue to SDNode *, since it doesn't care about the ResNo value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106282 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbe15bf969485c70c06e3d9bdf1af3b00a81c471 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 14:33:50 2010 +0000 Remove getIntegerSCEV; it's redundant with getConstant, and getConstant is more consistent with the ConstantInt API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106281 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67a2b6f1a5383fffd8a4888c037fec83ca1fba3f Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 14:32:32 2010 +0000 Delete unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106280 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04421e5e6c9c330525fb354225478a2d21e2db00 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 14:22:04 2010 +0000 Eliminate unnecessary uses of getZExtValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106279 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c2d501861f49f30665e0fcf4bf8cdd5a986c2de Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 14:01:07 2010 +0000 isValueValidForType can be a static member function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 859f74c70c6c0a86c4a799d0d93d75890778373b Author: Eric Christopher <echristo@apple.com> Date: Fri Jun 18 02:41:19 2010 +0000 Some assorted isTwoAddress -> Constraints cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106273 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7be75f73aa42989727752a85567858b022e00b4 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 02:01:10 2010 +0000 Handle execution entrypoints with non-integer return types. Fix from Russel Power in PR7284. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54cf4eca15c7c399bf41b7e4badaec252d9dd3e1 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 01:49:17 2010 +0000 Don't write a file named "&1". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b72a0d77804eeded1ad497f6358563a117f4812 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 01:35:11 2010 +0000 Disable indvars on loops when LoopSimplify form is not available. This fixes PR7333. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106267 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8ce1b4c202fdab376eba8ee8abe11266de013ca Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 01:24:29 2010 +0000 Don't maintain a set of deleted nodes; instead, use a HandleSDNode to track a node over CSE events. This fixes PR7368. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106266 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ff720079f069bdbcab369954dd8b60cff1135d8 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 18 01:12:56 2010 +0000 Add {mix,max}{ss,sd}{rr,rm} AVX forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 781cab0ce2e08d08c3dd55570aa1cfae888a5399 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 01:05:21 2010 +0000 Fold the ShrinkDemandedOps pass into the regular DAGCombiner pass, which is faster, simpler, and less surprising. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106263 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec882073441ab9259f8c44757319f8e956c31609 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 00:53:08 2010 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106260 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb3d1bc71beb5651300d75d6aa8eaee87fe0e85d Author: Chris Lattner <sabre@nondot.org> Date: Fri Jun 18 00:35:32 2010 +0000 improve portability to solaris 10, PR7380, patch by Simon Billingsley! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106259 91177308-0d34-0410-b5e6-96231b3b80d8 commit 886cf79ca1d511b0ac671cd27652d0e35f5f7b5c Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 00:08:30 2010 +0000 Handle ext(ext(x)) -> ext(x) immediately, since it's simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106256 91177308-0d34-0410-b5e6-96231b3b80d8 commit b39ac5713d85e77822070ec37e4056aadb2c59bf Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 18 00:06:03 2010 +0000 Make this test less fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106255 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58022465045fe5e7473fb095d791a36e62f653c2 Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 17 23:34:09 2010 +0000 Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 504bb29a4b8373f73b0d153c415f446bf6a42432 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 17 23:05:30 2010 +0000 Use new tablegen resources in SSE tablegen code. This will be done incrementally and intermixed with the adding of more AVX instructions. This is a first step in that direction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9091e524aa586789282303c9d2f18eb35d96bdbd Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 17 23:00:16 2010 +0000 In case Rec is a definition and not a class, do the proper comparison! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106246 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a5767b59311f01ab97f99bc86df8370d8c5178f Author: Stuart Hastings <stuart@apple.com> Date: Thu Jun 17 22:43:56 2010 +0000 Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This addresses a longstanding deficiency noted in many FIXMEs scattered across all the targets. This effectively moves the problem up one level, replacing eleven FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path through FastISel where we actually supply a DebugLoc, fixing Radar 7421831. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106243 91177308-0d34-0410-b5e6-96231b3b80d8 commit c37f35479f2b03abb2285d0f8260acb3519338bc Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 17 19:23:50 2010 +0000 Minor clarification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 229e14ef537cc634e75769c09203aa7ffd816379 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jun 17 17:58:54 2010 +0000 add missing break. inconsequential as the code shouldn't be reached, but for correctness' sake, it should be there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7998d6ee0258f83baecde85dcf58825c8c803673 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jun 17 17:50:54 2010 +0000 Add entries for Expanding atomic intrinsics to libcalls. Just a placeholder for the moment. The implementation of the libcall will follow. Currently, the llvm-gcc knows when the intrinsics can be correctly handled by the back end and only generates them in those cases, issuing libcalls directly otherwise. That's too much coupling. The intrinsics should always be generated and the back end decide how to handle them, be it with a libcall, inline code, or whatever. This patch is a step in that direction. rdar://8097623 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f680cb97e20480ff57d21743bdce7a86260dca6 Author: Dale Johannesen <dalej@apple.com> Date: Thu Jun 17 17:43:14 2010 +0000 Testcase for llvm-gcc 106225. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106226 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99b97f0663857f18fa871d7131d1ccbbbff499fb Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Jun 17 15:18:27 2010 +0000 Remove arm_apcscc from the test files. It is the default and doing this matches what llvm-gcc and clang now produce. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106221 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5a22b04553f1c8c5d113c38f2575ea398cbb1d6 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Jun 17 15:17:07 2010 +0000 Allow absolute paths in LLVM_TARGET_DEFINITIONS for CMake's TableGen rule git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106219 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37a66aa6cf1dbfd0633cf54f4aca28623c2363f9 Author: Nate Begeman <natebegeman@mac.com> Date: Thu Jun 17 04:15:13 2010 +0000 Modify tablegen to support generating all NEON code used by clang at once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106207 91177308-0d34-0410-b5e6-96231b3b80d8 commit f66a95615fc2cc570eb6a4629fdd468a58fa75bf Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jun 17 02:02:03 2010 +0000 Thumb1 and any pre-v6 ARM target should use the libcall expansion of ISD::MEMBARRIER. v7 and v7 ARM mode continue to use the custom lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106204 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5d5251d6f70f1b68d19173360511bf780aa5c66 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jun 17 02:00:53 2010 +0000 ISD::MEMBARRIER should lower to a libcall (__sync_synchronize) if the target sets the legalize action to Expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106203 91177308-0d34-0410-b5e6-96231b3b80d8 commit d810c293d45522377d4bea1c18b9d644adb5a430 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 17 01:50:39 2010 +0000 Fix the handling of !if result, avoiding null results for non 'int'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19541456ef1c1944117d30ac32d3042d51d3786a Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jun 17 01:37:00 2010 +0000 simplify code a bit and add a more explanatory assert for cases that previously would result in 'cannot yet select' errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c2479176e09e0ccd56b785542fe5a2ad7a943e3 Author: Jason Molenda <jmolenda@apple.com> Date: Thu Jun 17 01:23:24 2010 +0000 Add the entire range of DW_OP_lit[0..31], DW_OP_reg[0..31], and DW_OP_breg[0..31] to Dwarf.h. Add "DW_" prefix to the llvm::dwarf::*String methods which did not already have them in Dwarf.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f49977ad21345606d3751deb084760e3ff4f851 Author: Eric Christopher <echristo@apple.com> Date: Thu Jun 17 00:51:48 2010 +0000 Hack to let the move lowering handle dynamic-no-pic absolute moves of TLVP: movl _a@TLVP, %eax Daniel: Please review if you get a chance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106194 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78ff6da3724d831777fd4dddc7f0b2c6000931df Author: Eric Christopher <echristo@apple.com> Date: Thu Jun 17 00:49:46 2010 +0000 Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106191 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce18d6070c63573e74cdd840c0003b107b75d85c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 17 00:31:36 2010 +0000 For a tablegen expression such as !if(a,b,c), let 'a' be evaluated for 'bit' operators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106185 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfa6ac832f382d00f932b525d0245f6405696450 Author: Sena Hunt <rideau3@gmail.com> Date: Thu Jun 17 00:10:16 2010 +0000 Fix the typo in my previous one-line commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106179 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2006346a833adc5e702045d0647ced8ff674e8a8 Author: Sena Hunt <rideau3@gmail.com> Date: Wed Jun 16 23:52:37 2010 +0000 Make sure CMake can build the files added by my previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106178 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbc522e2668a547e16edf5c327dc976eea197e51 Author: Sena Hunt <rideau3@gmail.com> Date: Wed Jun 16 23:45:50 2010 +0000 Add preliminary clang attribute generation support. The attribute class generation support is still somewhat limited. See the accompanying clang commit for more details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106174 91177308-0d34-0410-b5e6-96231b3b80d8 commit e407aa315086ea90385ec0531e377be95319a314 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 16 23:45:49 2010 +0000 format and 80-column cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106173 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbb790dfce3fb010e84bbe2b9eb302ecee4ab697 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Jun 16 23:24:12 2010 +0000 let the '!eq' expression support 'int' and 'bit' types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106171 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bd9d2a9b8f0ec6431e53a46a44f308bef7415d8 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 16 22:41:09 2010 +0000 remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4597d3772ade5263d2c624305faeaede49efc121 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Jun 16 22:32:18 2010 +0000 Revert r106117, which was the result of me misreading the C++98/03 specification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106162 91177308-0d34-0410-b5e6-96231b3b80d8 commit 375ab2255a4d024de813bd26122765b4659da644 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 16 22:11:08 2010 +0000 Don't attempt preserving conservative kill flags. We were doing it wrong. This is before LiveVariables anyway, where these kill flags are recalculated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106157 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc4a27ee28a8fc45f49bbf45168cd1ae840d4708 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jun 16 21:34:01 2010 +0000 Remove the hidden "neon-reg-sequence" option. The reg sequences are working now, so there's no need to disable them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106155 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed6c4731b2c730db773751217b41cc6ac4f5ad48 Author: Eric Christopher <echristo@apple.com> Date: Wed Jun 16 21:32:38 2010 +0000 In progress on 32-bit addends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106154 91177308-0d34-0410-b5e6-96231b3b80d8 commit 628d52719a9c1589aa9a45b111d99422869c730b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 16 21:29:40 2010 +0000 Allow a register to be redefined multiple times in a basic block. LiveVariableAnalysis was a bit picky about a register only being redefined once, but that really isn't necessary. Here is an example of chained INSERT_SUBREGs that we can handle now: 68 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1028<kill>, 14 register: %reg1040 +[70,134:0) 76 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1029<kill>, 13 register: %reg1040 replace range with [70,78:1) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,134:0) 0@78-(134) 1@70-(78) 84 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1030<kill>, 12 register: %reg1040 replace range with [78,86:2) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,86:2)[86,134:0) 0@86-(134) 1@70-(78) 2@78-(86) 92 %reg1040<def> = INSERT_SUBREG %reg1040, %reg1031<kill>, 11 register: %reg1040 replace range with [86,94:3) RESULT: %reg1040,0.000000e+00 = [70,78:1)[78,86:2)[86,94:3)[94,134:0) 0@94-(134) 1@70-(78) 2@78-(86) 3@86-(94) rdar://problem/8096390 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106152 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6640d1f2f5758ad50328380004bc4ad7f6ac2be2 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 16 21:13:38 2010 +0000 A few more places where SCEVExpander bits need to skip over debug intrinsics when iterating through instructions. Yet more work for rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106149 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5308d56f9cb5f62802ffb2d11f54b52b8f62d633 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 16 21:07:06 2010 +0000 modify so the test doesn't drop an output file in the test source directory. The test should also likely have some FileCheck bits to validate the output(?). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bcbe6c3c9812b39332d21c9b63b6c29d0e189c2 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 16 20:04:32 2010 +0000 MC/Mach-O: Rewrite atom association to be a final pass we do in Finish(), instead of tracking as part of emission. - This allows sharing more code with the MCObjectStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106143 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa928d5ba85d446407348bb51ee33d6ffe343fef Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 16 20:04:29 2010 +0000 MC: Simplify MCAssembler::isSymbolLinkerVisible to only take an MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106142 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bdb05f4cb993b361a23c00a1eb0800a198742f2 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 16 20:04:25 2010 +0000 MC: Lift SwitchSection() and Finish() into MCObjectStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c540e729abfe7c8fbf572485d9ff61999edd420 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 16 20:04:22 2010 +0000 MC: Factor out an MCObjectStreamer class, which will be shared by the concrete object file format writers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106140 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ea8f77b62c0f8a0fa332cf703d3602b4a723804 Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 16 19:39:45 2010 +0000 Be specific. Use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106135 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74b86ecdac06cf0c8fb5618df56b8a8d50f6a2c6 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 16 19:34:01 2010 +0000 Make sure that simplify libcalls does not replace a call with one calling convention with a new call with a different calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106134 91177308-0d34-0410-b5e6-96231b3b80d8 commit 392b84ee6e5c40cd51bb9933ade2dc63df4f7be1 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 16 18:45:08 2010 +0000 add FIXME git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106126 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2229f7f821899826ad814a03643b7a2e891afd0b Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 16 18:19:49 2010 +0000 This requires more investigation. Unblock buildbots for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106122 91177308-0d34-0410-b5e6-96231b3b80d8 commit c61906ecb3cc4f43646501c348a71ae2d2c209e9 Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 16 18:04:12 2010 +0000 Update test to explicitly capture llc output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a0355e4a146b6ebb0cb87460fed66f9b66ff642 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jun 16 18:01:31 2010 +0000 Improve comment to include that the use of a preg is also verboten in this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106119 91177308-0d34-0410-b5e6-96231b3b80d8 commit edeceda3b9eb1eab7892e591126bf6ff5e24014b Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Jun 16 17:42:01 2010 +0000 Eliminate a redundant "typename" keyword git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106117 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa12a267995a95c677ca0c3c0dd79b56b46c539b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jun 16 15:47:00 2010 +0000 TODO-- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106102 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee0d10b299d8edb0e68986c7d88744406314b0b8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jun 16 10:30:29 2010 +0000 simplify-libcalls: fold strncmp(x, y, 1) -> memcmp(x, y, 1) The memcmp will be optimized further and even the pathological case 'strstr(x, "x") == x' generates optimal code now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b19d4b6a52c14d3c487835e4269befeb0bccd45 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jun 16 07:35:02 2010 +0000 Make post-ra scheduling, anti-dep breaking, and register scavenger (conservatively) aware of predicated instructions. This enables ARM to move if-conversion before post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d25dcf3354e99f6ba727ca0a5e784087af43286 Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 16 06:42:02 2010 +0000 Check function pointer first, before comparing function names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106088 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8a4849e4a18e1a0c1bfd9579af02e12200474ec Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 16 00:53:55 2010 +0000 Use separate named MDNode to hold each function's local variable info. This speeds up local variable handling in DwarfDebug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106075 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f298159ab1921498e5a3b24ea792139f540f448 Author: Eric Christopher <echristo@apple.com> Date: Wed Jun 16 00:27:30 2010 +0000 Don't emit the linkage for initializer label for mach-o tls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106073 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7abd5775cb851e5aab6aca8af47da5270f1c53b1 Author: Eric Christopher <echristo@apple.com> Date: Wed Jun 16 00:26:36 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 200499ec42758cb1e52b2b4f115c69c73948cdcf Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jun 15 23:46:31 2010 +0000 Create a more targeted fix for not sinking instructions into a range where it will conflict with another live range. The place which creates this scenerio is the code in X86 that lowers a select instruction by splitting the MBBs. This eliminates the need to check from the bottom up in an MBB for live pregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dba52de5894bfc3c42c466d703ba366a0aefee7 Author: Eric Christopher <echristo@apple.com> Date: Tue Jun 15 23:08:42 2010 +0000 For 32-bit non-pic tlv mach-o addressing we don't need a pic base or a relative address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106064 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08f285f09091485e36c1d55b163c1d7314349f0d Author: Stuart Hastings <stuart@apple.com> Date: Tue Jun 15 23:06:30 2010 +0000 Added a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106063 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13b86085ed5e91d42db05278fe4462965d24f4a5 Author: Eric Christopher <echristo@apple.com> Date: Tue Jun 15 22:59:05 2010 +0000 Some more work on mach-o TLV relocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106062 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1cce64d391a0c237cf2adb732f9cad0f1bac8e1 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jun 15 22:24:08 2010 +0000 Add file missing from previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f871e66e1ba49cc64d3f2407cc1bd9e8dc3325f Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 15 22:18:54 2010 +0000 Fix 80col violations, remove trailing whitespace, and clarify a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2beb2493d049ac6fbb32ed780dc535ebeb721066 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Jun 15 22:16:40 2010 +0000 Update test to match recent llvm-gcc change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f433f6ad5a6232882370c1bbb812607551b7af2 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Jun 15 22:10:31 2010 +0000 Make VC++ happy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106054 91177308-0d34-0410-b5e6-96231b3b80d8 commit 706a7749028d13af28c8ddc1672d4f31ac96db46 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jun 15 22:08:33 2010 +0000 Next round of tail call changes. Register used in a tail call must not be callee-saved; following x86, add a new regclass to represent this. Also fixes a couple of bugs. Still disabled by default; Thumb doesn't work yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106053 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2e34b9598e4dc0401be9b3ceb077f7baaaf7d5c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 15 21:58:33 2010 +0000 Remove the local register allocator. Please use the fast allocator instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106051 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9a0e705d6caf69a08340885d398c1e6b71ff410 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jun 15 21:36:43 2010 +0000 Reapply 105986 with fix for bug pointed out by Jakob: flag argument to addReg is not the same format as flags attached to MachineOperand, although both have the same info. I don't think this actually mattered; the bootstrap failure did not reproduce on the next run anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56c93a3c1a730ed28bdcc29a3079cfd067d8eb23 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jun 15 21:35:22 2010 +0000 fix PR7380: use 'test' instead of shell builtins. This improves portability to Solaris 10, which apparently doesn't support [ foo -ot bar ] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106048 91177308-0d34-0410-b5e6-96231b3b80d8 commit a07f025fd1ccc86e7d17e73a9bd5c66a9af26ada Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jun 15 21:34:25 2010 +0000 simplify-libcalls: fold strstr(a, b) == a -> strncmp(a, b, strlen(b)) == 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106047 91177308-0d34-0410-b5e6-96231b3b80d8 commit a971737eae4b57b70679ce9c9e3be10c27cee4dc Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Jun 15 20:42:00 2010 +0000 Set the mtriple in some tests so that they use AAPCS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106041 91177308-0d34-0410-b5e6-96231b3b80d8 commit 665d74131be3da708bd3f186033b81940f6e2e20 Author: Mon P Wang <wangmp@apple.com> Date: Tue Jun 15 20:29:05 2010 +0000 Fixed vector widening of binary instructions that can trap. Patch by Visa Putkinen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106038 91177308-0d34-0410-b5e6-96231b3b80d8 commit da04c15fbba19fc51425e34b77253ed68177d18c Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jun 15 19:20:30 2010 +0000 fpcmp: Fix bug where fpcmp wouldn't early exit when files obviously differ and no tolerance is set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106033 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29e089b06c5a2874ea1246e5e9709dc87454c981 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jun 15 19:20:28 2010 +0000 fpcmp: Fix a possible infinite loop when comparing something like: 1..19 ok to 1..20 o k (yes, the odd space is necessary). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106032 91177308-0d34-0410-b5e6-96231b3b80d8 commit a19f1b3f7acbf60334477d3584e2e60640a17809 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jun 15 19:08:40 2010 +0000 fix fastisel to handle GS and FS relative pointers. Patch by Nelson Elhage! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75a6691f95a9229a0c14402bcd99a5ea0f88d951 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 15 19:05:35 2010 +0000 Add basic support for NEON modified immediates besides VMOV. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106030 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ba0343ea636c86a1e572875df0c18e594f7dea4 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Jun 15 19:04:29 2010 +0000 Remove the arm_aapcscc marker from the tests. It is the default for the linux targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106029 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45db289df77400a220a351ef727c9fba575bb805 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jun 15 18:59:43 2010 +0000 disable SmallVectorImpl's copy constructor. This prevents a class of base class slicing bugs reported on irc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106028 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bbfff808b9a462aec1da627c6a58bd7dc485505 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 15 18:57:15 2010 +0000 IfConversion's AnalyzeBlocks method always returns false; clean it up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106027 91177308-0d34-0410-b5e6-96231b3b80d8 commit a51bb28e513b32ba0fa763eaf3a27622408396af Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 15 18:53:34 2010 +0000 fix naming git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106024 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd4c19ab5559ed3b7e2f47cda18aa1add0c55023 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 15 18:49:14 2010 +0000 Fix an exotic bug that only showed up in an internal test case. SimpleRegisterCoalescing::JoinIntervals() uses CoalescerPair to determine if a copy is coalescable, and in very rare cases it can return true where LHS is not live - the coalescable copy can come from an alias of the physreg in LHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106021 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf37c3e1ba25b8bac8d3aa195bd7cb7224798bc6 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 15 18:19:27 2010 +0000 Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106015 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3af8dbf06fef393cd6251507747047177a6852b Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jun 15 17:47:24 2010 +0000 Remove stray semi-colon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80c6f2bc8344c90e618e203330f9d6f4c8621872 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 15 17:27:54 2010 +0000 Add some missing checks for the case where the extract_subregs are combined to an insert_subreg, i.e., where the destination register is larger than the source. We need to check that the subregs can be composed for that case in a symmetrical way to the case when the destination is smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106004 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc6be0bd305ddf20d5f2e3493e7265aa9381af92 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 15 16:20:57 2010 +0000 Avoid processing early clobbers twice in RegAllocFast. Early clobbers defining a virtual register were first alocated to a physreg and then processed as a physreg EC, spilling the virtreg. This fixes PR7382. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105998 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7b0a46e4c42c64fde074db6207e7e122ff54d52 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 15 16:04:21 2010 +0000 Add CoalescerPair helper class. Given a copy instruction, CoalescerPair can determine which registers to coalesce in order to eliminate the copy. It deals with all the subreg fun to determine a tuple (DstReg, SrcReg, SubIdx) such that: - SrcReg is a virtual register that will disappear after coalescing. - DstReg is a virtual or physical register whose live range will be extended. - SubIdx is 0 when DstReg is a physical register. - SrcReg can be joined with DstReg:SubIdx. CoalescerPair::isCoalescable() determines if another copy instruction is compatible with the same tuple. This fixes some NEON miscompilations where shuffles are getting coalesced as if they were copies. The CoalescerPair class will replace a lot of the spaghetti logic in JoinCopy later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09f63fb7ae440fbb68e18a572b98dac495e47f96 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jun 15 14:50:42 2010 +0000 Add <cstddef> include to get ptrdiff_t, for gcc-4.6; patch by Dimitry Andric. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23a744c8ad8a2fab3705c17d9851f805deab0cc5 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 15 05:56:31 2010 +0000 Generalize the pre-coalescing of extract_subregs feeding reg_sequences, replacing the overly conservative checks that I had introduced recently to deal with correctness issues. This makes a pretty noticable difference in our testcases where reg_sequences are used. I've updated one test to check that we no longer emit the unnecessary subreg moves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105991 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ceb10653bb43e2fea865533efb68e73cbaefe61 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 15 05:51:27 2010 +0000 VMOVQQ and VMOVQQQQ are pseudo instructions and not predicable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60f038358d89c40a6a400b5956122adffcd1602c Author: Dale Johannesen <dalej@apple.com> Date: Tue Jun 15 04:55:06 2010 +0000 Revert 105986; looks like I'd better try bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105988 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe6eb1212e877e3576f39ea56e49635b8f70730a Author: Ted Kremenek <kremenek@apple.com> Date: Tue Jun 15 04:08:14 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105987 91177308-0d34-0410-b5e6-96231b3b80d8 commit a68ab60cb35edf6fa0fbc238a26851fd0f6a6d71 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jun 15 03:13:49 2010 +0000 The form of BuildMI used for TAILJMPr was changing the register containing the target address, an input, into an output. I don't think this actually broke anything on x86 (it does on ARM), but it's wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105986 91177308-0d34-0410-b5e6-96231b3b80d8 commit a21ec8384cefd745c71a66f85587b77a97353507 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 15 00:41:09 2010 +0000 Make sure to skip dbg_value instructions when finding an insertion point for the combined load/store instruction. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105982 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4edbf3ad684a14234ecd17fd25fbce9aadb428c Author: Sena Hunt <rideau3@gmail.com> Date: Mon Jun 14 22:44:26 2010 +0000 Add missing include to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 333e26499cf9d2c8bdb36b0711438d709ea649aa Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 14 22:33:34 2010 +0000 generate better code in CheckComplexPattern git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105970 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8361fcf30c21e2f06b22a8e34e7b42f19bcce2e Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 14 22:19:57 2010 +0000 Rename functions referring to VMOV immediates to refer to NEON "modified immediate" operands. These functions have so far only been used for VMOV but they also apply to other NEON instructions with modified immediate operands. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105969 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fde824dd4aac5910494fa4ac834c40e6ad5cffb Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 14 21:30:32 2010 +0000 More dbg_value cleanup so the presence of debug info doesn't affect code-gen. Make sure to skip the dbg_value instructions when moving dups out of the diamond. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105965 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d5864180606bca247c9af9d6a18e5667437ea65 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jun 14 21:20:52 2010 +0000 Don't produce output only if *all* files are unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ccaa7610f1b4ba16f4e3381b6fba046882bd2f0 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jun 14 21:06:53 2010 +0000 - Do away with SimpleHazardRecognizer.h. It's not used and offers little value. - Rename ExactHazardRecognizer to PostRAHazardRecognizer and move its header to include to allow targets to extend it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40191b37de4163ecff5d0edb22cbf0c1e3ffa835 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 14 20:19:03 2010 +0000 apparently lots of dupes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105956 91177308-0d34-0410-b5e6-96231b3b80d8 commit 015ee8d57accc82e2014c1c533dae2bc3932004b Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jun 14 20:18:40 2010 +0000 Avoid uncessary array copying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c196760f00088652042f172369b58f871fc1911 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 14 20:11:56 2010 +0000 fix a nasty bug where we were not treating available_externally symbols as declarations in the X86 backend. This would manifest on darwin x86-32 as errors like this with -fvisibility=hidden: symbol '__ZNSbIcED1Ev' can not be undefined in a subtraction expression This fixes PR7353. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105954 91177308-0d34-0410-b5e6-96231b3b80d8 commit 425825fe666a55405faaeb47da5a593a066bdd9c Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 14 20:07:43 2010 +0000 remove old test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3291f17dde6434f738f9d6210b0ac47adb6a390b Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 14 20:07:34 2010 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98523b68e521217c96cbb228dc0beeb0b7c641c4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 14 19:45:43 2010 +0000 jump threading can't split a critical edge from an indirectbr. This fixes PR7356. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105950 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0985b0b87ee40d4f638f6237e3ebcaa0b79ec20 Author: Stuart Hastings <stuart@apple.com> Date: Mon Jun 14 18:37:04 2010 +0000 Test case for Radar 8004649. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105949 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79d5b2daf64c69b784cf44abf9e1673b234dfee7 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 14 18:29:23 2010 +0000 Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105944 91177308-0d34-0410-b5e6-96231b3b80d8 commit a97db5064373264fce86ea93fc5099e49f79dd3d Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 14 18:28:57 2010 +0000 fix a -Wbool-conversions warning from clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105943 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee64a5ef0874bb6f950bd36d82431d2f1db2ba3b Author: Chris Lattner <sabre@nondot.org> Date: Mon Jun 14 18:28:34 2010 +0000 fix a -Wbool-conversions warning from clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105942 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8dafe5ddda8d33a4dfcaf4a46c76ade83a0d380c Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 14 17:56:25 2010 +0000 Honor the SDKROOT setting when building llvm. Radar 7894069. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105938 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0218dd9743080e34f77d19463acdd754cc2ee379 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Jun 14 07:03:30 2010 +0000 Add back some possible optimizations for va_arg, with wording that makes it more clear what exactly is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105934 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2d240b7c1629f04ae884d309c2e1a7cc4bc32b6 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 14 06:09:39 2010 +0000 Update html tutorial docs to match api changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 954c56fef469d4611f3372857fe79e98689020e2 Author: Eric Christopher <echristo@apple.com> Date: Mon Jun 14 06:03:16 2010 +0000 Make kaleidoscope use fp add/sub/mul. Patch by Patrick Flannery! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105932 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bc8027065e999fd234969d4ad7b1d6952bc52b3 Author: Nate Begeman <natebegeman@mac.com> Date: Mon Jun 14 05:17:23 2010 +0000 Add the last of the SemaChecking-gen code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105929 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9d3d1fbc3ae7156cf6bc36401b0749ce9e566e8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Jun 13 16:16:54 2010 +0000 Test case for r105914. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105915 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c26d7c24f0f29194ae0cd5e7b0cb480af6091be Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Jun 13 14:35:54 2010 +0000 SimplifyCFG: don't turn volatile stores to null/undef into unreachable. Fixes PR7369. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105914 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb120fc8a4f251ebf3e0cc2d7253939345988415 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Jun 13 12:52:38 2010 +0000 Let SmallVector take advantage of LiveRange's podness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105913 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd166542f997fb9e7bbe0d1a894154a6842decaf Author: Nate Begeman <natebegeman@mac.com> Date: Sun Jun 13 04:47:03 2010 +0000 Add a helping of comments Add code for generating bits of semachecking git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105907 91177308-0d34-0410-b5e6-96231b3b80d8 commit eff87597cf3df1d73f29d088c0f18f31661cc8dd Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Jun 12 20:13:29 2010 +0000 Merge getStoreRegOpcode and getLoadRegOpcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105900 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8888e62dfbac227e1584c20631a3dd46d9fdf76 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jun 12 17:05:28 2010 +0000 tests: Run macho-dump with binary unbuffered streams on Windows, I can't find a Python 2.6 way to change stdin to binary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105894 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0318bfb0c7d83a9c7e5481f271892294521c9a8f Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jun 12 16:21:54 2010 +0000 tests: Make macho-dump.bat actually work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105891 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf44b20037f06842a7a06278724a4e0276f66973 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jun 12 16:21:19 2010 +0000 tests: Propogate LLVM_SRC_ROOT and PYTHON_EXECUTABLE environment variables to tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105890 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42896ec5f05d48147fdc0732289b37ccd88122ba Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jun 12 16:00:10 2010 +0000 lit: Replace /dev/null in scripts with temporary files on Windows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105888 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1f6677ca3ded638904f9163d557cd09f343a11b Author: Chris Lattner <sabre@nondot.org> Date: Sat Jun 12 15:50:24 2010 +0000 improve verifier error about unterminated block to include function name, patch by Yuri git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105887 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18b26b8fa1e6de993183ea7776d4c042338ffcbd Author: Chris Lattner <sabre@nondot.org> Date: Sat Jun 12 15:46:56 2010 +0000 declare a class with 'class' instead of struct to avoid tag mismatch warnings, and don't shift by a bool. Patch by Rizky Herucakra! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105886 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe04fbfba6a58ddcb27ce330a7bc2ea6d5d42236 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Jun 12 05:54:27 2010 +0000 Add README entry; based on testcase from Bill Hart. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105878 91177308-0d34-0410-b5e6-96231b3b80d8 commit feb117c31c8d4f058c3dd46166240c1a2093c893 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 12 03:12:14 2010 +0000 make the avx intrinsics 3 address git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59830b6f33d21991f957f98f0c88c2e31d00880d Author: Nate Begeman <natebegeman@mac.com> Date: Sat Jun 12 03:09:49 2010 +0000 Add generic vector support for bitselect & element byteswap git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105874 91177308-0d34-0410-b5e6-96231b3b80d8 commit f732222878520e40e5cdb533b85575e8703bfc02 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 12 02:38:32 2010 +0000 Add some basic fp intrinsics for AVX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105873 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2741a392cf138148d67bfd483c51fcdb9dd3b44 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Jun 12 02:34:29 2010 +0000 When performing the Horrible Hack(tm-Duncan) on the EH code to convert a clean-up to a catch-all after inlining, take into account that there could be filter IDs as well. The presence of filters don't mean that the selector catches anything. It's just metadata information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105872 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8186c9d04251416ad0ec7c987a969f944f4fe7d9 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 12 01:53:48 2010 +0000 More AVX: {ADD,SUB,MUL,DIV}{PD,PS}rm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105870 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7768d5b712d91433d1a167d54f997fb1f378e9fa Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 12 01:23:26 2010 +0000 More AVX: {ADD,SUB,MUL,DIV}{PD,PS}rr Handle OpSize TSFlag for AVX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61bcf98f410181f61b6b1908164d9f3167ee9acd Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jun 12 00:12:18 2010 +0000 Allow target to provide its own hazard recognizer to post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105862 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d027262d27f4cea44079e9f0d4876597a09a45c Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jun 12 00:11:53 2010 +0000 Code formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105861 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfda310abfc0b35728f747b40da2c4b75b8cfa95 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 12 00:03:52 2010 +0000 Add some comments about REX fields git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105860 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32554676f09c1aca3d0c055c9b0dc33455602477 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Jun 11 23:50:47 2010 +0000 More AVX instructions ({ADD,SUB,MUL,DIV}{SS,SD}rm) Introduce the VEX_X field git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105859 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4f50e1868a5d989ed7f367980215cc6f9a16493 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jun 11 23:47:36 2010 +0000 lit: Add a forgotten default argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8535afe3dc1b0dc0bfdb8bde64b9b7fbe3e46ab5 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jun 11 23:29:48 2010 +0000 tests: Add wrapper script for calling macho-dump on Win32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105856 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e88c56ae7720fb4dd4c0496102d334964a4e0b4 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jun 11 23:27:45 2010 +0000 lit: When running Tcl style tests on Windows, substitute slashes to avoid Tcl quoting problems. Not particularly ideal, but should work ok. Based on a patch by Michael Spencer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105855 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1ad939e4f3a7c954879563c5a8f1521cb57a2cd Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 11 22:45:25 2010 +0000 Add a missing bitcast. This code used to only handle conversions between i64 and f64 types, but now it also handle Neon vector types, so the f64 result of VMOVDRR may need to be converted to a Neon type. Radar 8084742. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21fb37eb9ade437c9bd8e058185e9e24ad1965f4 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jun 11 22:00:08 2010 +0000 llvm-mc: Don't set NO_INSTALL on llvm-mc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105837 91177308-0d34-0410-b5e6-96231b3b80d8 commit 665944a8e51ed67cb0fada230ee56853cd5fd5b4 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 11 21:34:50 2010 +0000 Add instruction encoding for the Neon VMOV immediate instruction. This changes the machine instruction representation of the immediate value to be encoded into an integer with similar fields as the actual VMOV instruction. This makes things easier for the disassembler, since it can just stuff the bits into the immediate operand, but harder for the asm printer since it has to decode the value to be printed. Testcase for the encoding will follow later when MC has more support for ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105836 91177308-0d34-0410-b5e6-96231b3b80d8 commit f29941a7e446ea8a9d836fc950cb1100e20a9474 Author: Stuart Hastings <stuart@apple.com> Date: Fri Jun 11 20:08:44 2010 +0000 Support for nested functions/classes in debug output. (Again.) Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105828 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e73e9c0144876932788e34ae8680023ac40e98e Author: Stuart Hastings <stuart@apple.com> Date: Fri Jun 11 20:05:01 2010 +0000 Delete duplicate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105827 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48a2f135a32a3c344e939a228672f04fd9b20aec Author: John McCall <rjmccall@apple.com> Date: Fri Jun 11 11:06:44 2010 +0000 Define ContextualFoldingSet, which stores a context parameter to pass down to the Profile method. Currently this only works with the default FoldingSetTraits implementation. The point of this is to allow nodes to not store context values which are only used during profiling. A better solution would thread this value through the folding algorithms, but then those would need to be (1) templated and (2) non-opaque. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105819 91177308-0d34-0410-b5e6-96231b3b80d8 commit e25f4687cd2bc5b3f80fe283479f82b527a216b6 Author: Nate Begeman <natebegeman@mac.com> Date: Thu Jun 10 18:06:07 2010 +0000 Add support for polynomial type, for polynomial multiply git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3eea16dd63a2a9d9519d1647b33837612d16dc33 Author: Duncan Sands <baldrick@free.fr> Date: Thu Jun 10 16:23:15 2010 +0000 Avoid "variable 'bits' set but not used [-Wunused-but-set-variable]" warnings with gcc-4.6, by not setting bits when the result is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105790 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4ef3f25250e8e55792c70f28b50d44532e44765 Author: Duncan Sands <baldrick@free.fr> Date: Thu Jun 10 15:06:05 2010 +0000 Avoid many "variable 'Sub' set but not used [-Wunused-but-set-variable]" warnings with gcc-4.6. The warning is wrong, since Sub *is* used (perhaps gcc is confused because the use of Sub is constant folded away?), but since it is trivial to avoid, and massively reduces the amount of warning spew, just workaround the wrong warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a8000e8590909b169c92a2f72a4ec960e4f988c Author: Duncan Sands <baldrick@free.fr> Date: Thu Jun 10 10:13:58 2010 +0000 Add includes to get ptrdiff_t. This is needed by gcc-4.6 which has done some more header trimming, resulting in cstdef being included by less header files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105786 91177308-0d34-0410-b5e6-96231b3b80d8 commit c017c9a9d591ef58435811d016b54069e9f70f26 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Jun 10 02:42:59 2010 +0000 Teach tablegen to allow "let" expressions inside multiclasses, providing more ways to factor out commonality from the records. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105776 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6db78b0eabcad48cbb53acacd68be273393f66f4 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jun 10 02:09:31 2010 +0000 Code refactoring, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105775 91177308-0d34-0410-b5e6-96231b3b80d8 commit 891284252433b07e9e2b028de792bde02e233415 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jun 10 02:08:20 2010 +0000 Delete code that's not safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a0b5ba8ba824e5df4780be754636c3a77a67af9 Author: Nate Begeman <natebegeman@mac.com> Date: Thu Jun 10 00:16:56 2010 +0000 NEON support for _lane ops, and multiplies by scalar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105769 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1a3d7ca4dccb80f631bd601ce8fa6497ca12958 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 9 22:21:24 2010 +0000 be slightly more subtle about skipping dbg_value instructions; otherwise, if a dbg_value immediately follows a sequence of ldr/str instructions that should be combined into an ldm/stm and is the last instruction in the block, then combine may end up being skipped. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105758 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e263b0605e12fa73adc945600822609af2e7eff Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jun 9 20:30:22 2010 +0000 Testcase for r105741. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105750 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5ac25d51cb10955ba7a6d2046347afc2a5ce63f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 9 20:05:00 2010 +0000 Mark physregs defined by inline asm as implicit. This is a bit of a hack to make inline asm look more like call instructions. It would be better to produce correct dead flags during isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105749 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4abc38b7903a657a521ab807d63e66527c2bfb8 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jun 9 19:26:01 2010 +0000 Allow target to place 2-address pass inserted copies in better spots. Thumb2 will use this to try to avoid breaking up IT blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105745 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2e715e98dc9e57b2a35940c7bdbfefc7a947b2a Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jun 9 19:00:55 2010 +0000 It's an error to translate this: %reg1025 = <sext> %reg1024 ... %reg1026 = SUBREG_TO_REG 0, %reg1024, 4 into this: %reg1025 = <sext> %reg1024 ... %reg1027 = EXTRACT_SUBREG %reg1025, 4 %reg1026 = SUBREG_TO_REG 0, %reg1027, 4 The problem here is that SUBREG_TO_REG is there to assert that an implicit zext occurs. It doesn't insert a zext instruction. If we allow the EXTRACT_SUBREG here, it will give us the value after the <sext>, not the original value of %reg1024 before <sext>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c7288c1d05693bd3d57df51af2079aebdb15997 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jun 9 18:59:43 2010 +0000 Revert 105540, 105542, 105544, 105546, and 105548 to unbreak bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90d77e27ed0def5b6159882873670cb03eef253d Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jun 9 18:15:36 2010 +0000 - Fix description of SUBREG_TO_REG. It's not going to generate a zext. But it is used to assert that an *implicit* zext is performed. - Fix grammar-o in INSERT_SUBREG. (required reformatting) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105735 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bd73f42fe62ee4411e00f3a745f2cda3cb81a6f Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jun 9 18:02:26 2010 +0000 Further refine types for operations which take scalars. This will be used primarily by NEON shift intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105733 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5826672df55f409aa094b2cf63f7c0162a803090 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jun 9 17:54:40 2010 +0000 Workaround SCEV non-determinism on this test, for now, to get buildbots back to green. Dan, please revert this once the real problem is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105732 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b0c7814ca2992be3f5ebabd0e6341e6374d575c Author: Duncan Sands <baldrick@free.fr> Date: Wed Jun 9 17:39:05 2010 +0000 Change another reference to the "indirect callgraph node" to refer to the "external node" instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105731 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4d95fbe6aef90b1518975e16fdcea9cb79eb96b Author: Duncan Sands <baldrick@free.fr> Date: Wed Jun 9 17:35:00 2010 +0000 Output "external node" rather than "Indirect CallGraph node" when printing callgraph SCC's. This makes it match what the node itself would print. Also, "indirect callgraph node" doesn't make sense - it has nothing particularly to do with indirect calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105730 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcc6c2eea547d901edf2e2e9932787f2aa099723 Author: Eric Christopher <echristo@apple.com> Date: Wed Jun 9 16:16:48 2010 +0000 How about ULL... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105726 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5693f3573aaa1b76a2b5408bd9e19ff5c927c9c8 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Wed Jun 9 15:11:37 2010 +0000 Pulled CodeMetrics out of InlineCost.h and made it a bit more general, so it can be reused from PartialSpecializationCost git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105725 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e804bd533c63793be52d7a119857167e0942ba3 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Wed Jun 9 09:58:17 2010 +0000 Fix SPU to cope with vector insertelement to an undef position. We default to inserting to lane 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105722 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecaa8414052ece4bbf6ab45ef4295b504749ecf8 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Wed Jun 9 08:29:41 2010 +0000 Handle loading from/storing to undef pointers on SPU by inserting a random load/store, rather than crashing llc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105710 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c0a2c0df39b91a1630cc5377b584e99ed6d7602 Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jun 9 05:11:55 2010 +0000 Specialize I-Class instructions better so that we have less work to do in codegen. Parenthesize macro args git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105682 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0db9843776f6d384f04a6eb42bf0b443429be20b Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jun 9 03:49:12 2010 +0000 Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105677 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7164d6e230e080f344f153583dcb3dbe01b790c Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 9 03:00:05 2010 +0000 Fix a gcc warning: 'class llvm::DAGDeltaAlgorithm' has virtual functions and accessible non-virtual destructor Not sure if this is the best solution, but this class has state and some of the classes that inherit from it also do, so it looks appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0eaab3cb42f3e1cdbc22939b0715d84a0415ca33 Author: Eli Friedman <eli.friedman@gmail.com> Date: Wed Jun 9 02:43:17 2010 +0000 A few new x86-64 specific README entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105674 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6708885022c57b9255cd9cdaf18e8b81d0f93da Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jun 9 01:46:50 2010 +0000 Thumb2 IT blocks are fairly expensive. When there are multiple selects using the same condition, it's important to make sure they are scheduled together to avoid forming multiple IT blocks. I'm adding a pre-regalloc pass that forms IT blocks early (by re-scheduling instructions and split basic blocks) to attempt to fix this. This is not turned on by default since I am not sure this is the right fix. Another issue is llvm selects are modeled as two-address conditional moves. This can be very bad when the copies before the conditional moves are not coalesced away. Teach IT formation pass to move the copies above the IT block (when legal) to avoid breaking the IT block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105669 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6c9d7945685c8c6437a45e6b613ad78ece5b98f Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jun 9 01:09:00 2010 +0000 Handle instructions which need to be #defines for the purpose of capturing constant arguments Handle extract hi/lo with common code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105666 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f173d9cfee4ee63c40c25ab01345e68a0aa75c8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 9 00:40:31 2010 +0000 Add argument name comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105665 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8256c9077a5c6f12c1e681ca3291bf0c50da6023 Author: Kevin Enderby <enderby@apple.com> Date: Tue Jun 8 23:48:44 2010 +0000 Incremental improvement to the handling of the x86 "Jump if rCX Zero" instruction. Added the 64-bit version "jrcxz" so it is recognized and also added the checks for incorrect uses of "jcxz" in 64-bit mode and "jrcxz" in 32-bit mode. Still to do is to correctly handle the encoding of the instruction adding the Address-size override prefix byte, 0x67, when the width of the count register is not the same as the mode the machine is running in. Which for example means the encoding of "jecxz" depends if you are assembling as a 32-bit target or a 64-bit target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105661 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb28e13566d31bcc31351f566b1109be14d27525 Author: Eric Christopher <echristo@apple.com> Date: Tue Jun 8 22:57:33 2010 +0000 Split out these asserts so it's more apparent why we're not assembling that rip-relative address when executing in 32-bit mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2037d7c5f670133335ac9ae8e93de134a0542c92 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 8 22:53:32 2010 +0000 fix copy/paste/modify think-o git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 030e4df1bdb6decb37718c3f4a692d3335882938 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 8 22:51:23 2010 +0000 Reapply r105521, this time appending "LLU" to 64 bit immediates to avoid breaking the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105652 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb3f1b97fbfe720cdf5e408ce573dc227c011be2 Author: Eric Christopher <echristo@apple.com> Date: Tue Jun 8 22:04:25 2010 +0000 Ensure that mov and not lea are used to stick the address into the register. While we're at it, make sure it's in the right one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105645 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3ab09bd763bda763f5e0b6ca70be2f898555dad Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jun 8 20:10:13 2010 +0000 Makefiles: Teach LLVM's recursive makefile descent to update objdir Makefiles if they are out of date, instead of only testing if they exist. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105636 91177308-0d34-0410-b5e6-96231b3b80d8 commit f98384c17cb8f5f6d8362cfbbe8b21649de438c1 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 8 20:06:55 2010 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 478324eae65b0b1154a83c28524b8848289bb360 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jun 8 17:21:57 2010 +0000 Use const_iterator where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b34ffdac90babb60d3c1a9e39004dc8fa113956 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jun 8 16:21:26 2010 +0000 DeltaAlgorithm: Tweak split to split by first/second half instead of even/odd, since adjacent changes are more likely to be related. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105613 91177308-0d34-0410-b5e6-96231b3b80d8 commit b644965386a954156ed3091dcc8c31b3defcc208 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jun 8 16:21:22 2010 +0000 ADT: Add DAGDeltaAlgorithm, which is a DAG minimization algorithm built on top of the standard 'delta debugging' algorithm. - This can give substantial speedups in the delta process for inputs we can construct dependency information for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c1a8a3fb475e96f4c3df841a9c9026ad06bea31 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Jun 8 16:17:58 2010 +0000 Add more virtual memory to lit. The python in x86-64 fedora 13 needs it to run the llvm tests :-( It was failing with -- Testing: 5324 tests, 8 threads -- Fatal Python error: PyEval_AcquireThread: NULL new thread state git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c48ca1399f7633c68a996384e5caee48c046eae Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jun 8 11:44:30 2010 +0000 Use realloc instead of malloc+memcpy when growing a POD SmallVector. A smart realloc implementation can try to expand the allocated memory block in-place, avoiding the copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105605 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa65c9174dff1f72af68bbc65390a655d314362b Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Tue Jun 8 07:55:16 2010 +0000 Flag SPU's function call sequence together. Discussed here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-June/032107.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105601 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab568f2aa871ade914de6b7565086663c6b9b091 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Jun 8 07:11:17 2010 +0000 Fix a valgrind error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105600 91177308-0d34-0410-b5e6-96231b3b80d8 commit 211299a3c6c5b4073171d3604a6417746bfda356 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Jun 8 06:01:16 2010 +0000 Refine BuiltinsARM.def types a bit, we should do a better job of this to save some c++ code in CGBuiltins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65e59944af82dfd02f3551713e1528d2ae3f0c52 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jun 8 00:42:08 2010 +0000 Fix up a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a70fc5c6deb190fa64ede85ad10aa18b7477c36 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Jun 8 00:14:42 2010 +0000 ARM NEON: fix vcvt naming handle vdup, vcombine with generic vector code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105588 91177308-0d34-0410-b5e6-96231b3b80d8 commit 185faa2e594a778ffb897f98716d9d37a73b7e11 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 7 23:53:38 2010 +0000 Further changes for Neon vector shuffles: - change isShuffleMaskLegal to show that all shuffles with 32-bit and 64-bit elements are legal - the Neon shuffle instructions do not support 64-bit elements, but we were not checking for that before lowering shuffles to use them - remove some 64-bit element vduplane patterns that are no longer needed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7096222b9a59f7a96e05a10cf2e7aa8c3ed841f6 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jun 7 23:48:46 2010 +0000 Fix a mistake in my previous change r105437: don't access operand 2 and assume that it is an immediate before checking that the instruction is an EXTRACT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105585 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b29ebaead040f2cfdd12caa2c252348f184c11f Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 23:15:15 2010 +0000 Add an svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 594fd4dae899e952edd1391658001d17c5ef8b3d Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 22:32:10 2010 +0000 Add some basic debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105561 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbcce5100ac5e4026f8bdfaa518754d5d79fa786 Author: Stuart Hastings <stuart@apple.com> Date: Mon Jun 7 21:50:54 2010 +0000 Tweak test for debug/metadata change, update to FileCheck. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105559 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7d66069789c7d6e241bdb1aa2b3a07f7c0250da Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 7 21:48:47 2010 +0000 Handle dbg_value instructions (i.e., skip them) when generating IT blocks. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96b0304530d0e67b299e5ba44829d93ab62ebcd7 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Jun 7 21:42:19 2010 +0000 Plug a leak in the non-error case by removing one level of indirection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6176781988731813fc68e50a106e19590142b979 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 7 21:28:55 2010 +0000 Cleanup. Process the dbg_values separately git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105554 91177308-0d34-0410-b5e6-96231b3b80d8 commit af9ee1efaf417dffa5ed3e1c42744e94fffed40e Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 20:58:11 2010 +0000 Fix this test to work under lit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105553 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef468a4d98ba566e8a9886c1252d2bf1032dece9 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 20:28:37 2010 +0000 Run dead type elimination after dead argument elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105552 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04c7a392a87b97870ec046f6a908b21e2ada1c88 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 20:20:33 2010 +0000 Make bugpoint dead-argument-hacking actually work, and actually test it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105551 91177308-0d34-0410-b5e6-96231b3b80d8 commit 337d1d681b2d00bf6af1f73bd54e7e9dc5ee4abc Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 20:19:26 2010 +0000 Use ->isVoidTy(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105550 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1e8c21f5ea9dca09dc906716087962c937a9004 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 19:36:14 2010 +0000 The FoldingSet hash data includes pointer values, so it isn't determinstic. Instead, give SCEV objects an arbitrary sequence number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72fb41aadf96b7d9f487b43b8fce6efc4e11952c Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 19:20:57 2010 +0000 Optimize this code somewhat by taking advantage of the fact that the operands are sorted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105546 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67e5a0afe37fdcc8143fe31b2860a3186d98cb04 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jun 7 19:18:58 2010 +0000 Another place where the code wanted to access the argument list and not all of the operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105545 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ab92870b8147dd87644435703aa23f1efd39859 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 19:16:37 2010 +0000 Micro-optimize this, to speed up this hotspot in debug builds a little. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105544 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7bc7e11844b27f60d0d95f454bc81eed0d0b29f Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 19:12:54 2010 +0000 Micro-optimize this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105542 91177308-0d34-0410-b5e6-96231b3b80d8 commit d96271fe4e2d92aa22f0b83dbf1098d1d5722f7b Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jun 7 19:12:21 2010 +0000 Move exit check where it really belongs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105541 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f5c9c5a6f3169c005e8e9b353985cbfe4316aa2 Author: Dan Gohman <gohman@apple.com> Date: Mon Jun 7 19:06:13 2010 +0000 Optimize ScalarEvolution's SCEVComplexityCompare predicate: don't go scrounging through SCEVUnknown contents and SCEVNAryExpr operands; instead just do a simple deterministic comparison of the precomputed hash data. Also, since this is more precise, it eliminates the need for the slow N^2 duplicate detection code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105540 91177308-0d34-0410-b5e6-96231b3b80d8 commit aae98f2320802dc552292c96b3743e0d2cb057d3 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jun 7 19:05:06 2010 +0000 Create new accessors to get arguments for call/invoke instructions. It breaks encapsulation to force the users of these classes to know about the internal data structure of the Operands structure. It also can lead to errors, like in the MSIL writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105539 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe4af5bed6303126ef787cc8eeefe1c900c9aca5 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jun 7 16:45:22 2010 +0000 Misc cleanups to the gold plugin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105534 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7639103eef62891a19da041403e384204aac638 Author: Nate Begeman <natebegeman@mac.com> Date: Mon Jun 7 16:00:37 2010 +0000 clang codegen support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105531 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4c77ab92a22fab48413ec3cf642c33b170857a7 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Sat Jun 5 14:50:21 2010 +0000 Partial specialization was not checking the callsite to make sure it was using the same constants as the specialization, leading to calls to the wrong specialization. Patch by Takumi Nakamura\! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105528 91177308-0d34-0410-b5e6-96231b3b80d8 commit d699cd2cef2b2c00298d96dc33f6304ffa9d543f Author: Duncan Sands <baldrick@free.fr> Date: Sat Jun 5 12:40:43 2010 +0000 This bug is also present in MSVC10. Requested by Elrood on IRC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105527 91177308-0d34-0410-b5e6-96231b3b80d8 commit 320f224f57d628a65d50fe61f16c4bef31601171 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jun 5 04:17:30 2010 +0000 revert r105521, which is breaking the buildbots with stuff like this: In file included from X86InstrInfo.cpp:16: X86GenInstrInfo.inc:2789: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2790: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2792: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2793: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2808: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2809: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2816: error: integer constant is too large for 'long' type X86GenInstrInfo.inc:2817: error: integer constant is too large for 'long' type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105524 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e8c4483fd608aa570f3afce9d3feb7a355a17d7 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 5 03:53:24 2010 +0000 Initial AVX support for some instructions. No patterns matched yet, only assembly encoding support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 742574c3ab486939e719627d7fda6370086d606d Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jun 5 02:11:52 2010 +0000 Teach tablegen to support 'defm' inside multiclasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105519 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65464e6ce40148fde94b4972682f68ffd8406174 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 5 01:19:12 2010 +0000 Make MachineFunctionPass::createPrinterPass private, as no subclasses should be calling it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 505800e299638187a58387ee188e22f33d717db1 Author: Dale Johannesen <dalej@apple.com> Date: Sat Jun 5 00:51:39 2010 +0000 Improvements to tail call code. No functional effect unless using -arm-tail-calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fcb34a445ec0299131319f72ad692a691f218fe Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 5 00:47:34 2010 +0000 getFoldedOffsetOf no longer does anything special with vector types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105514 91177308-0d34-0410-b5e6-96231b3b80d8 commit 999c67d61169331534191073eaf3cf9d11d2f959 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 5 00:42:29 2010 +0000 No need to special-case structs here; structs are first-class now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105513 91177308-0d34-0410-b5e6-96231b3b80d8 commit e86927d56837461feed0f5701d62c7a84cfe9fd9 Author: Stuart Hastings <stuart@apple.com> Date: Sat Jun 5 00:39:29 2010 +0000 Revert 105492 & 105493 due to a testcase regression. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105511 91177308-0d34-0410-b5e6-96231b3b80d8 commit c57991dba1e0d779f4018d59a3ed01e121a03805 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 5 00:33:07 2010 +0000 LSR needs to remember inserted instructions even in postinc mode, because there could be multiple subexpressions within a single expansion which require insert point adjustment. This fixes PR7306. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105510 91177308-0d34-0410-b5e6-96231b3b80d8 commit de4fbad7eaa0114959759d9842effc3a78c411f3 Author: Dale Johannesen <dalej@apple.com> Date: Sat Jun 5 00:30:45 2010 +0000 Fix some liveout handling related to tail calls, see comments. I don't think this ever resulted in problems on x86, but it would on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105509 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9e58a670078b4e16044518e92912fdf1a765884 Author: Dan Gohman <gohman@apple.com> Date: Sat Jun 5 00:26:02 2010 +0000 Implement operator== and operator!= for SetVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1de2224183daf96c3afe1ba67e09ca0cc616d324 Author: Devang Patel <dpatel@apple.com> Date: Fri Jun 4 23:47:41 2010 +0000 test case for r105504. Radar 8055687. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105505 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6f7e9d18b116ded6b39b82d486877aecdf9826e Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jun 4 23:28:13 2010 +0000 Re-apply 105308 with fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105502 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04a072e9bdf78809755055749ec3b2db04223a86 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 4 23:16:05 2010 +0000 Don't track users of undef values; they aren't interesting for register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105501 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43c9b950e951daeb5b0f59153705b416bcb5c0cc Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 4 23:01:26 2010 +0000 Make if-conversion ignore dbg_value instructions in its analysis. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c40c270b143438e258361423901ce8889a042cb Author: Nate Begeman <natebegeman@mac.com> Date: Fri Jun 4 22:53:30 2010 +0000 Handle multi-vector returns and args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2544b76a3cadb69dd0fa1f996570a036d34aba18 Author: Devang Patel <dpatel@apple.com> Date: Fri Jun 4 22:49:55 2010 +0000 Update docs to reflect new DISubprogram elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 673a1184bed230144dfcf8209e9fe4b8674f942c Author: Stuart Hastings <stuart@apple.com> Date: Fri Jun 4 22:36:03 2010 +0000 Support for nested functions/classes in debug output. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d1568b0824e18e758e739fc2c9119044c2d24c2 Author: Devang Patel <dpatel@apple.com> Date: Fri Jun 4 22:27:30 2010 +0000 Copy location info for current function argument from dbg.declare if respective store instruction does not have any location info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ef605c4acc6cb58dcff00cc6486011f506dc82b Author: Nate Begeman <natebegeman@mac.com> Date: Fri Jun 4 21:36:00 2010 +0000 Additional fixes to BuiltinsARM.def generator, on to clang codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105488 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9376fa8c3e2ae4e4ade44c82214c0cf83e208d2 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 4 21:14:24 2010 +0000 More tail call removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24dcf4ca0c67e63492a7a16458990fcc9f3045ca Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 4 20:18:30 2010 +0000 Skip dbg_value instructions when scanning instructions in register scavenging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40624d43be600a761e5b577e98fef73ecb650b44 Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 4 19:16:34 2010 +0000 Fix normalization and de-normalization of non-affine SCEVs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96a1aa52a2cfdfffc1470c132900ab4257d9e946 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jun 4 18:08:29 2010 +0000 Keep track of the call instructions whose clobber lists were skipped during fast register allocation. Process all of the clobber lists at the end of the function, marking the registers as used in MachineRegisterInfo. This is necessary in case the calls clobber callee-saved registers (sic). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105473 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19a89b6ae35d65b31172794a2ac3db31f46087fb Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 4 18:04:24 2010 +0000 More thoroughly disable tails calls by default. 8060143, although this doesn't fix the real problem with tail call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105472 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05a3cd1e0a4b1a109ba92edb84ee5606f06b8573 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 4 17:57:34 2010 +0000 Another fix to prevent debug info from affecting codegen. rdar://7797940 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105470 91177308-0d34-0410-b5e6-96231b3b80d8 commit 100cb770df3f1414e2f57c578e51e3c8af40e495 Author: Nate Begeman <natebegeman@mac.com> Date: Fri Jun 4 07:11:25 2010 +0000 Progress on generating BuiltinsARM.def, still some duplicates to work out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105461 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f0231a3e08ec3eb6cab42d6d9a4b3d1a60bfd8d Author: Nate Begeman <natebegeman@mac.com> Date: Fri Jun 4 01:26:15 2010 +0000 BuiltinsARM.def emitter, still needs a substantial bit of tweaking to lighten the load on clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1eaa752b6e5e49a2d22c90d1b5db727e13ae69e5 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 4 01:23:30 2010 +0000 more dbg_value adjustments so debug info doesn't affect codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105454 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddd80127a5829667200f7703492ddea82ae08290 Author: Mon P Wang <wangmp@apple.com> Date: Fri Jun 4 01:20:10 2010 +0000 Fixed a bug during widening where we would avoid legalizing a node. When we replace an OpA with a widened OpB, it is possible to get new uses of OpA due to CSE when recursively updating nodes. Since OpA has been processed, the new uses are not examined again. The patch checks if this occurred and it it did, updates the new uses of OpA to use OpB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b3fb06383d35bbc52d282ec6f7c38732a441a32 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 4 01:01:24 2010 +0000 Remove more tail calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105450 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac5950430b3ca02c076ad709549437640fbdcedb Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 4 01:01:04 2010 +0000 Remove a tail call, and move some CHECKs to the functions where they belong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50058e2c75e99ef8f2c2c8e5cbd0dcec59fbeef6 Author: Nate Begeman <natebegeman@mac.com> Date: Fri Jun 4 00:21:41 2010 +0000 Mangle __builtin_neon_* names appropriately. Add skeleton of support for emitting the list of prototypes for BuiltinsARM.def git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105443 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef6ba88a13e36a20d4e4924147690c7db7fd7e3e Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 4 00:18:06 2010 +0000 No need to special-case structs here; structs are first-class now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105442 91177308-0d34-0410-b5e6-96231b3b80d8 commit d28ce6644625f9162abd1d5e105600a8867922a0 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jun 4 00:15:00 2010 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105441 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b687342aded7210737f88c29c942e66f643e14f Author: Dan Gohman <gohman@apple.com> Date: Fri Jun 4 00:14:48 2010 +0000 This test doesn't need the ssp attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105440 91177308-0d34-0410-b5e6-96231b3b80d8 commit 263de84e349bb6aa253fe11e5d2abe50d3038239 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jun 4 00:04:02 2010 +0000 For NEON vectors with 32- or 64-bit elements, select BUILD_VECTORs and VECTOR_SHUFFLEs to REG_SEQUENCE instructions. The standard ISD::BUILD_VECTOR node corresponds closely to REG_SEQUENCE but I couldn't use it here because its operands do not get legalized. That is pretty awful, but I guess it makes sense for other targets. Instead, I have added an ARM-specific version of BUILD_VECTOR that will have its operands properly legalized. This fixes the rest of Radar 7872877. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105439 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7257922326a3dbe27405233c94d573f99a361526 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jun 4 00:03:37 2010 +0000 Remove tail call. A tail call version will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45a3fb2a31810564dbeaa7608341f4ca12ab01e8 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jun 3 23:53:58 2010 +0000 Add some missing checks in TwoAddressInstructionPass::CoalesceExtSubRegs. Check that all the instructions are in the same basic block, that the EXTRACT_SUBREGs write to the same subregs that are being extracted, and that the source and destination registers are in the same regclass. Some of these constraints can be relaxed with a bit more work. Jakob suggested that the loop that checks for subregs when NewSubIdx != 0 should use the "nodbg" iterator, so I made that change here, too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105437 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e40505480e20763c01b8cf4e2a5aaf58a88d9f2 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jun 3 23:49:57 2010 +0000 Cleanup 80-column and trim trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105435 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9f3d46dade98cb8421853551e81095e106ca835 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jun 3 22:41:15 2010 +0000 Teach the ARM load-store optimizer to deal with dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105427 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10e3f2e77b06422b229b83b48aadb86c4bab8392 Author: Dale Johannesen <dalej@apple.com> Date: Thu Jun 3 21:57:48 2010 +0000 Remove tail call to preserve this test. A tail call version will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d58eb76b7c8d47b18a8b340acf87bb39dd82e8c Author: Dale Johannesen <dalej@apple.com> Date: Thu Jun 3 21:53:01 2010 +0000 Make this test not use tail calls. A tail call version will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105419 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba3560356a96e7dc8210d9f059c91f33f50bfaa5 Author: Nate Begeman <natebegeman@mac.com> Date: Thu Jun 3 21:35:22 2010 +0000 Add some additional capabilities to the neon emitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105416 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6a36c51450e01f4e832a2dbfcbb15385b031ada Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Jun 3 21:11:20 2010 +0000 Add a emit-llvm option to the plugin and make the path argument to also-emit-llvm optional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3791f0e8d33a271849c3ed16962e75ece2641556 Author: Dale Johannesen <dalej@apple.com> Date: Thu Jun 3 21:09:53 2010 +0000 Early implementation of tail call for ARM. A temporary flag -arm-tail-calls defaults to off, so there is no functional change by default. Intrepid users may try this; simple cases work but there are bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105413 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9c553e10c8f484581cff063bf3f2cb5d945bcdf Author: Dan Gohman <gohman@apple.com> Date: Thu Jun 3 20:21:33 2010 +0000 Fix SimplifyDemandedBits' AssertZext logic to demand all the bits. It needs to demand the high bits because it's asserting that they're zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105406 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67117a511341aa75d646ad9770a45f8c2ef61ff2 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Jun 3 18:28:31 2010 +0000 Revert 105308. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105399 91177308-0d34-0410-b5e6-96231b3b80d8 commit 621e7e384569860c7e8e69579c6c329c345f2ebf Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Jun 3 17:13:23 2010 +0000 Perfer !string.empty() over string != "". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105397 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa4003f05530c389b861cc536277f7250d0077c1 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jun 3 17:11:49 2010 +0000 Forgot to update the most important part of the gtest modifications readme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105396 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc5302737cd8efec9abce01619bf7f0a891f3310 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Jun 3 17:10:17 2010 +0000 Whitespace cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105395 91177308-0d34-0410-b5e6-96231b3b80d8 commit a75d797b8732d6471c9c32c09437a2ab9fb5229c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jun 3 15:17:04 2010 +0000 Disable pthread support in googletest if llvm was configured without threads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105390 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87387816b143e1ef058d0cff7728d18b1c636113 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Jun 3 14:45:44 2010 +0000 Don't preserve all symbols in a .so and instead trust gold to know what is needed. The result is that now we are able to drop unnecessary symbol from shared libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105389 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79a2c0a2f05f9c7e5c7d9e49ac465014184c198e Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jun 3 07:54:20 2010 +0000 Machine sink could potentially sink instructions into a block where the physical registers it defines then interfere with an existing preg live range. For instance, if we had something like these machine instructions: BB#0 ... = imul ... EFLAGS<imp-def,dead> test ..., EFLAGS<imp-def> jcc BB#2 EFLAGS<imp-use> BB#1 ... ; fallthrough to BB#2 BB#2 ... ; No code that defines EFLAGS jcc ... EFLAGS<imp-use> Machine sink will come along, see that imul implicitly defines EFLAGS, but because it's "dead", it assumes that it can move imul into BB#2. But when it does, imul's "dead" imp-def of EFLAGS is raised from the dead (a zombie) and messes up the condition code for the jump (and pretty much anything else which relies upon it being correct). The solution is to know which pregs are live going into a basic block. However, that information isn't calculated at this point. Nor does the LiveVariables pass take into account non-allocatable physical registers. In lieu of this, we do a *very* conservative pass through the basic block to determine if a preg is live coming out of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105387 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd126f8504cebd3da253c264408671e8d8aa2541 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jun 3 07:51:58 2010 +0000 Turns out gtest still prefers the system <tr1/tuple> over it's own implementation. Force the internal one to unbreak clang selfhost on linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105386 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab04129daf97c43423fffb3aaa71ce424b65edfc Author: Eric Christopher <echristo@apple.com> Date: Thu Jun 3 04:07:48 2010 +0000 Add first pass at darwin tls compiler support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fd6e7680dd96e18ccf9e8dee52535dbb59e207c Author: Nate Begeman <natebegeman@mac.com> Date: Thu Jun 3 04:04:09 2010 +0000 arm_neon.h now makes it through clang and generates appropriate code for those functions which can use generic vector operators rather than __builtin_neon_* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105380 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4dd544cccb428caf500442913cf623c01a0870a Author: Eric Christopher <echristo@apple.com> Date: Thu Jun 3 04:02:59 2010 +0000 One underscore, not two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105379 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a59d3580a904e61bf27617fbae05abc2aae5ac3 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jun 3 03:49:50 2010 +0000 Implement expansion in type legalization for add/sub with overflow. The expansion is the same as that used by LegalizeDAG. The resulting code sucks in terms of performance/codesize on x86-32 for a 64-bit operation; I haven't looked into whether different expansions might be better in general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 423329810cd003047abda749991441bb7832c344 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jun 3 01:47:31 2010 +0000 Remove some already-fixed README entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105377 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01bee9fbff5960f1724f8442f203a5057f83ffe3 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jun 3 01:16:51 2010 +0000 Remove README entry which no longer compiles to something sane. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92dde135870070d4281cb66bb75af47df5860e82 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Jun 3 01:01:48 2010 +0000 Remove a fixed item, update a couple partially-fixed items. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105375 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2dcda33cf42c59515a08ed94b0ad978e6ae07a6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 3 00:39:06 2010 +0000 Use the fast register allocator by default for -O0 builds. This affects both llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105372 91177308-0d34-0410-b5e6-96231b3b80d8 commit f21e3d5d6a297d175200f47e1a3a0cd71c4845ef Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jun 3 00:07:47 2010 +0000 Use readsWritesVirtualRegister instead of counting uses and defs when inserting spills and reloads. This means that a partial define of a register causes a reload so the other parts of the register are preserved. The reload can be prevented by adding an <imp-def> operand for the full register. This is already done by the coalescer and live interval analysis where relevant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 124c682fe494716c461a75417b5700880a28ee8c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 2 23:22:11 2010 +0000 Add full register <imp-def> operands when the coalescer is creating partial register updates. These operands tell the spiller that the other parts of the partially defined register are don't-care, and a reload is not necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105361 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4177f5897e0a74f5c2ff53bd9d7353f0bbb0b818 Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 2 23:05:04 2010 +0000 Speedup bitcode writer. Do not walk all values for all functions to emit function local metadata. In one testcase, probably worst case scenario, the 70x speed up is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105360 91177308-0d34-0410-b5e6-96231b3b80d8 commit b50dfd12a4a7319efdcdef554c02fd91d8e24a9f Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jun 2 23:04:26 2010 +0000 Compulsive reformating. No functionalitical changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105359 91177308-0d34-0410-b5e6-96231b3b80d8 commit 267f2c5d89a6118047980b3e6ec0683313de8de3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jun 2 22:47:25 2010 +0000 Slightly change the meaning of the reMaterialize target hook when the original instruction defines subregisters. Any existing subreg indices on the original instruction are preserved or composed with the new subreg index. Also substitute multiple operands mentioning the original register by using the new MachineInstr::substituteRegister() function. This is necessary because there will soon be <imp-def> operands added to non read-modify-write partial definitions. This instruction: %reg1234:foo = FLAP %reg1234<imp-def> will reMaterialize(%reg3333, bar) like this: %reg3333:bar-foo = FLAP %reg333:bar<imp-def> Finally, replace the TargetRegisterInfo pointer argument with a reference to indicate that it cannot be NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105358 91177308-0d34-0410-b5e6-96231b3b80d8 commit 446cd1b3223103d1c6948fe9303f5c7c0cbbab74 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jun 2 22:02:57 2010 +0000 Update Readme and Makefiles for the new gtest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 504a512ef5f6b6ca9990fb0403a87eceb385d746 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jun 2 22:02:30 2010 +0000 Merge gtest-1.5.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55e5ad760f8c3cb37c78446d36e5a97121794d04 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jun 2 22:02:11 2010 +0000 Merge gtest-1.4.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105353 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9490ffecd69ad523cdff1e5c1d96ac72a4723c9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jun 2 22:01:25 2010 +0000 Merge gtest-1.3.0. OSX users: make sure that CrashReporter is disabled when running unit tests. Death tests are enabled now so you'll get a ton of message boxes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105352 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf538f914ba496ef869179780339699562c9fa4b Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 2 21:53:11 2010 +0000 Clean up 80 column violations. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105350 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91a5acea7d67e2ede7c08411601f01da84113449 Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jun 2 21:53:00 2010 +0000 arm_neon.h emitter now mostly complete for the purposes of initial testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c7ae4e8f10343bdca1301ce1437b0223194f7e8 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 2 20:02:30 2010 +0000 Remove the TargetRegisterClass member from CalleeSavedInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105344 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a88d3ac9aa402232faf6e29bd6d556ef69a0960 Author: Eli Friedman <eli.friedman@gmail.com> Date: Wed Jun 2 19:35:46 2010 +0000 Fix comment so it doesn't include comments which are irrelevant to the x86 backend. Add a FIXME noting what can be fixed here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105342 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba73342f7f68d3b0c4e7be56db60204a331e023e Author: Dan Gohman <gohman@apple.com> Date: Wed Jun 2 19:13:40 2010 +0000 Use comments to document non-obvious code rather than mailing list archives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105341 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b5ce6c1b65a79ec4a06655e7765e12babe5dd65 Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 2 19:05:13 2010 +0000 Skip identical instruction while calculating DBG_VALUE range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105340 91177308-0d34-0410-b5e6-96231b3b80d8 commit d056b55c3a5edfdd228dae08b4e812d4ed38c763 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jun 2 18:54:47 2010 +0000 Rename canCombinedSubRegIndex method to something more grammatically correct and tidy up the comment describing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105339 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e178e2c947dfbb7146c12daea8a28a0b819db87 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 2 17:54:50 2010 +0000 Replace ARM's getCalleeSavedRegClasses with a simpler solution git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105335 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4cb9926a0efbb7a881e35f1a7171965573c4f1b Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 2 17:45:54 2010 +0000 remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105333 91177308-0d34-0410-b5e6-96231b3b80d8 commit c21872ef8afe167fe70474320e9b4955e61e4a0f Author: Devang Patel <dpatel@apple.com> Date: Wed Jun 2 16:42:51 2010 +0000 Use local small vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00bd6ea55ae152540500c93c3c19a7f695f801ab Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 2 15:44:20 2010 +0000 Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cedec81ee1aa2c4b4768afecf37de6667ccddb3 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jun 2 15:29:36 2010 +0000 Not all entries in the range will have an SUnit. Check for that when looking for debug information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68eb4ebbda4f1f05d9866366f919305508860c38 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 2 14:03:11 2010 +0000 Update the documentation, getCalleeSavedRegClasses is not required anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94a70c7e1b73e4bc51220cee11cee95e61f170a8 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 2 13:53:17 2010 +0000 cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 698bbefeddc8e79b5dc8ae0980fdd4116a4e56fc Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Jun 2 12:39:06 2010 +0000 Remove uses of getCalleeSavedRegClasses from outside the backends and removes the virtual declaration. With that out of the way I should be able to cleanup one backend at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9617b2cb95c80b6dfec68846fc04ce20912758d4 Author: Duncan Sands <baldrick@free.fr> Date: Wed Jun 2 08:37:30 2010 +0000 Pacify recent gcc: remove a pointless const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105318 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b3de2e2024453f4787cfd04d14023ccde999c00 Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jun 2 07:14:28 2010 +0000 Checkpoint; handle 'int' and 'void' correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 591bbb629737015f6b32fe7c456f88b37911cc52 Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jun 2 06:17:19 2010 +0000 Emit full function prototypes. Definitions & typedefs to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105315 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37d915d0d4904c2a3d193bc7c5b19dceedb2c3ba Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jun 2 01:08:27 2010 +0000 Enable machine cse of instructions which define physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105308 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05895eba2f2aa92e3d65831d7febf91f9b4bf62b Author: Nate Begeman <natebegeman@mac.com> Date: Wed Jun 2 00:34:55 2010 +0000 Checkpoint arm_neon.h generation with tablegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105307 91177308-0d34-0410-b5e6-96231b3b80d8 commit 328ef85b90c5553f10083a29479c00e7a52aa96f Author: Eli Friedman <eli.friedman@gmail.com> Date: Wed Jun 2 00:27:18 2010 +0000 Don't try to custom-lower 64-bit add-with-overflow and friends on x86-32; the x86 backend currently doesn't know how to handle them. This doesn't really fix anything because LegalizeTypes doesn't know how to handle them either. We do get a better error message, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105305 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccb152ab2bcc7c2395d3d190e9c31b9ea32e58d8 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jun 2 00:16:08 2010 +0000 Fix an obvious mistake: don't change the operands until all of them have been checked and it is safe to proceed with the changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105304 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd94a979035f26d474c99dcafd72e3712cfec8dd Author: Eli Friedman <eli.friedman@gmail.com> Date: Wed Jun 2 00:10:36 2010 +0000 Remove outdated README entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60ef323181020522e89b2c042c6b318e72c59a3b Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 1 23:48:44 2010 +0000 Update debug information when breaking anti-dependencies. rdar://7759363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 248977c48f041324da03b6e8c7f732fa636d8e70 Author: Sena Hunt <rideau3@gmail.com> Date: Tue Jun 1 23:29:39 2010 +0000 Fix comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105297 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29c9ae4e4388a9848a23a2863e16c2bc6628b913 Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 1 23:01:43 2010 +0000 DwarfWrite is now smart enough to drop debug value pointing to undefined register. Update this test to avoid this. iSel not properly lowring argument into a well formed DBG_VALUE in some cases is a separate issue and not related to the test in this testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1acbd14f2de309c7f4cb073f560c38a34b80cad6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jun 1 22:39:25 2010 +0000 Properly compose subregister indices when coalescing. The comment about ordering of subreg indices is no longer true. This exposed a bug in the new substVirtReg method that is also fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105294 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfad7bdc597cfb3fd9f79f194d7524ebf5c3344c Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 1 21:56:30 2010 +0000 Remove unused code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105293 91177308-0d34-0410-b5e6-96231b3b80d8 commit a993a0e4d02919e22ec49c4997a8f9db2dded87d Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 1 21:43:09 2010 +0000 Ignore line number of debug value in undefined register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105292 91177308-0d34-0410-b5e6-96231b3b80d8 commit a53a6c9c11af6cb32c0f497abb702f758ad28f89 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 1 21:35:50 2010 +0000 fix think-o git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105291 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82cf8922caf7d7fd84f76401657ee8186a1d542c Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 21:09:47 2010 +0000 Fix the allocation of shadow space for the Win64 calling convention in X86FastISel. Patch by Jan Sjodin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fe500870402e1efb3a3c4c5c17fb443be5bc832 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 1 21:06:46 2010 +0000 Simplify things a bit more. Fix prototype to use SmallVectorImpl and change a few SmallVectors to vanilla C arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105289 91177308-0d34-0410-b5e6-96231b3b80d8 commit 981cc9c323978a81035088c654ea3cef11b551f8 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 20:51:40 2010 +0000 Fix the noalias checking so that it doesn't worry about an argument aliasing itself. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105288 91177308-0d34-0410-b5e6-96231b3b80d8 commit 499f5f39d38fd36d8d4e932ffb4523d2a6290013 Author: Devang Patel <dpatel@apple.com> Date: Tue Jun 1 19:59:01 2010 +0000 Keep track of incoming debug value of unused argument. Radar 7927666. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7254c3b5a4abacd180d652bbeddc5742f2e46576 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 18:35:14 2010 +0000 Fill in missing support for ISD::FEXP, ISD::FPOWI, and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105283 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2fbd9ef291716688c217543fd0e8c8f1c0fc220 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 1 18:06:35 2010 +0000 Add a FIXME git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105282 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34c1764e0bca85927e2546eb76fb94edde53d53d Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 1 18:04:56 2010 +0000 mirror of r105280 changes for LowerInvoke, which uses the same basic logic here git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105281 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09410132434cb5f67597321ecdf4fadb6374996c Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 1 18:04:09 2010 +0000 When processing function arguments when splitting live ranges across invokes, handle structs passed by value via an extract/insert pair, as a bitcast won't work on a struct. rdar://7742824 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105280 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4535ac067e9c739d4ff788e1d262544322c8b2e3 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jun 1 17:56:41 2010 +0000 Use SmallVector instead of std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105279 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d98275e4ac2b4de5e78812e16217476406e8a96 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 17:26:14 2010 +0000 Delete unused variables (that weren't even getting expanded). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4207521345298a5bb1c35bfac2067239a20868dd Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 17:08:56 2010 +0000 Freebsd's sed doesn't support \< in regexps, and GNU sed doesn't support [[:<:]]. Use beginning-of-line and end-of-line anchors instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105277 91177308-0d34-0410-b5e6-96231b3b80d8 commit 812b1e127645119caeb8add759bba20b3e62a418 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jun 1 17:02:50 2010 +0000 Refactor some SSE 2 unpack instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105276 91177308-0d34-0410-b5e6-96231b3b80d8 commit becf61cb7b54694812eb40c10c5a1978c7730d36 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 16:31:34 2010 +0000 Don't call flush() at a library level which isn't checking for errors and doesn't know where the output is going. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105274 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18f7c5d347ce1b44a616dba06b7b9e6f7625c625 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 16:22:27 2010 +0000 Fix a spello affecting platforms where the configure check fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105273 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57c687f376aab55e4783138d3da4e359d10ba40a Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 16:10:08 2010 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105272 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9633cdd12f4652c2814b35ca9627552a5bffde4e Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 14:56:56 2010 +0000 -retain-symbols-file is not what it seems. Update the makefiles and configury to use --version-script. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105271 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3dab335ff0d8e9ddf0d25cc9f8ae9037a00b9c9 Author: Dan Gohman <gohman@apple.com> Date: Tue Jun 1 14:09:29 2010 +0000 Fix extra fread after EOF, non-wires-crossed version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30b1a2ab9dff5aebc7e3fcf0c224a37e0aa4c074 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Tue Jun 1 13:34:47 2010 +0000 Fix handling of 'load' nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e38ffe3ede67eb29fffb5bc3a52e09844a730f6 Author: Bill Wendling <isanbard@gmail.com> Date: Mon May 31 21:47:24 2010 +0000 Debreak test for non-Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d0ea477892dcf5ab0156f2f066597fe8224c071 Author: Duncan Sands <baldrick@free.fr> Date: Mon May 31 21:00:26 2010 +0000 Fix PR7272: when inlining through a callsite with byval arguments, the newly created allocas may be used by inlined calls, so these need to have their tail call flags cleared. Fixes PR7272. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105255 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79c1dbaa2b4841adb75df44642b9c12d25f5530b Author: Eric Christopher <echristo@apple.com> Date: Mon May 31 20:39:10 2010 +0000 Add a test for the llvm-gcc commit in r90200. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105253 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fdf4437a099b587533aae1614975117aad59c33 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 31 17:30:14 2010 +0000 fix PR6623: when optimizing for size, don't inline memcpy/memsets that are too large. This causes the freebsd bootloader to be too large apparently. It's unclear if this should be an -Os or -Oz thing. Thoughts welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105228 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb0ed4c104e2857443656ab08d23827061a32f26 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 31 17:27:17 2010 +0000 upgrade and filecheckize this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48d75c7a9e7acac2aa13ebb007de830b96c592b1 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 31 17:12:23 2010 +0000 the 'limit' argument to FindOptimalMemOpLowering is unsigned, not uint64_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105226 91177308-0d34-0410-b5e6-96231b3b80d8 commit db07661adcb78134c2eaaf29b6b552af03a9e562 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 31 17:10:45 2010 +0000 revert r105223 which broke all my testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09b4e9e2967776331c3bd15368734049d7b5440a Author: Dan Gohman <gohman@apple.com> Date: Mon May 31 16:13:45 2010 +0000 Fix count so that it doesn't make an extra fread call after EOF is detected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105223 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ffa4780af1b211de77b599ed5e87b7821a060a4 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon May 31 12:50:41 2010 +0000 Avoid swap when a copy suffices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105220 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42732c4c81bb9860763bb2adf6fb10231ff521c6 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon May 31 06:16:35 2010 +0000 The memcpy intrinsic only takes i8* for %src and %dst, so cast them to that first. Fixes PR7265. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 142b7f942068d4930b8f434334f1d4fca7abf445 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sun May 30 13:14:21 2010 +0000 Use `llvm::next' instead of `next' to make VC++ 2010 happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0be16759d52bb9d1b4b3e2dcaf94ffb2b44a5ede Author: Sena Hunt <rideau3@gmail.com> Date: Sun May 30 07:21:42 2010 +0000 Allow for creation of clang DeclNodes tables. The StmtNodes generator has been generalized to allow for the creation of DeclNodes tables as well, and another emitter was added for DeclContexts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b619a63024653e69ed4cd4aefb289e1369bbebe Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 29 19:25:39 2010 +0000 Some A9 load/store cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105109 91177308-0d34-0410-b5e6-96231b3b80d8 commit a04280ee30d11c7d8a5ae4bf06e0e1f701283c58 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 29 19:25:34 2010 +0000 Some rough approximations for load/stores on A9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105108 91177308-0d34-0410-b5e6-96231b3b80d8 commit f813c4bfc09863822b8ec03a0f811fb844f2eeee Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 29 19:25:29 2010 +0000 NEON/VFP stuff can be issued only via Pipe1 on A9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105107 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0a4a232966dc657f28d770a4e13c36cff034c9b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 29 19:25:17 2010 +0000 Add some integer instruction itineraries for A9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105106 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ebf31f1e70814e5a92957e104f56e1670cda276 Author: Dan Gohman <gohman@apple.com> Date: Sat May 29 17:53:24 2010 +0000 Reorder some code in SelectionDAGBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105105 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae791405da42e5efd9c833a985c7f923d78a1ae2 Author: Dan Gohman <gohman@apple.com> Date: Sat May 29 17:03:36 2010 +0000 SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValue shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set doesn't needs its EnableFastISel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ceae9e22c39f1baaa04a5adf786cefc0971e6a0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat May 29 14:03:51 2010 +0000 Remove unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8256d36366abd2c0ff543e6bf5b8acfd7b6cfbac Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat May 29 06:44:15 2010 +0000 Document aggregate operation constant expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105098 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1e92f0e41f4bf04d0c70df3d9eccac517af1fa3 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat May 29 06:11:16 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105096 91177308-0d34-0410-b5e6-96231b3b80d8 commit a68a282d0c3fb2ccaaac1422d498a255732dc30d Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 29 02:23:39 2010 +0000 Remove schedule-livein-copies. It's not being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4848f755f38761eb3d807a17c40f76d1aaf5807d Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 29 01:35:22 2010 +0000 Fix PR7193: if sibling call address can take a register, make sure there are enough registers available by counting inreg arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105092 91177308-0d34-0410-b5e6-96231b3b80d8 commit b59df925947071f7569e8eb8956f71a716810171 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat May 29 00:14:14 2010 +0000 Handle composed subreg indices when processing REQ_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a68c5ead94a34227b82df37978abd6491abffef Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 29 00:06:36 2010 +0000 Doh. Machine LICM is re-initializing the CSE map over and over. Patch by Anna Zaks. rdar://8037934. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33759f6c80ee155dbf1c51333329f4314e8f6772 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 28 23:48:31 2010 +0000 Emit TargetRegisterInfo::composeSubRegIndices(). Also verify that all subregister indices compose unambiguously. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105064 91177308-0d34-0410-b5e6-96231b3b80d8 commit c78b799a1812d589951fad556b839c6b6db00ba9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 28 23:48:29 2010 +0000 Merge the SystemZ subreg_even32 SubRegIndex into subreg_32bit. The SubRegIndices were overspecified when inheriting sub-subregisters, for instance: R0Q:subreg_even32 = R0Q:subreg_32bit = R0Q:subreg_even:subreg_32bit. This meant that composeSubRegIndices(subreg_even, subreg_32bit) was ambiguous. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105063 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2077abae009145bdb2022ae3cf211c8dc0b2d0c4 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 28 23:26:21 2010 +0000 Fix some latency computation bugs: if the use is not a machine opcode do not just return zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105061 91177308-0d34-0410-b5e6-96231b3b80d8 commit e523d1f892a839518ead6230678fa8c1f4a8c653 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 28 23:25:23 2010 +0000 Schedule high latency instructions for latency reduction even if they are not vfp / NEON instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105060 91177308-0d34-0410-b5e6-96231b3b80d8 commit e955c84cd6882abd1b6b099b03113b73196f6fcb Author: Dale Johannesen <dalej@apple.com> Date: Fri May 28 23:24:28 2010 +0000 Fix comment typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105059 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0ecbf85f919feb9cb74f6804efbd344804e4711 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri May 28 22:47:03 2010 +0000 More SSE 1 & 2 merge, this time with logical instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ab8487e0e13c1641f339ee3c6af268ee040b9d1 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 22:31:51 2010 +0000 Fix AliasDebugger to be aware of operand values too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105012 91177308-0d34-0410-b5e6-96231b3b80d8 commit fae2b7309444db1e42e46e9749523bdff1106393 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 21:43:57 2010 +0000 Add lint checks for function attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5162ec1276088f0a489692ec6802dc7e0a0da87f Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 21:41:37 2010 +0000 Split the logic behind CastInst::isNoopCast into a separate static function, as is done with most other cast opcode predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6aaeac689d3fbd42059e82a087c6a8c1f0f051f1 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 21:22:45 2010 +0000 Fix a comment; vectors are not a special case here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105006 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ad415b932cce19ea9e7a5c2dbd1cde20fcd9c68 Author: Kevin Enderby <enderby@apple.com> Date: Fri May 28 21:20:21 2010 +0000 MC/X86: Add alias for movzx. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105005 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56506785a21f9cefbaea106347875f703c95e6a2 Author: Kevin Enderby <enderby@apple.com> Date: Fri May 28 20:59:10 2010 +0000 MC/X86: Add alias for fwait. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105001 91177308-0d34-0410-b5e6-96231b3b80d8 commit b76fd35c63f9e764a6fb9bf439d0b3e5419dbe12 Author: Kevin Enderby <enderby@apple.com> Date: Fri May 28 19:01:27 2010 +0000 Fix the use of x86 control and debug registers so that the assertion failure in getX86RegNum() does not happen. Patch by Shantonu Sen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104994 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8f621139e7e15594403145fd69a7c963299f657 Author: Dale Johannesen <dalej@apple.com> Date: Fri May 28 18:54:47 2010 +0000 Fix Data Layout description of floating point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 609520feca705af2a2a89dadd21c54db9a5259c8 Author: Dale Johannesen <dalej@apple.com> Date: Fri May 28 18:45:59 2010 +0000 Add missing space; works for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104992 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f1dc05274332811076c8b25d7698999ff2bf46e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 28 18:18:53 2010 +0000 Add a TargetRegisterInfo::composeSubRegIndices hook with a default implementation that is correct for most targets. Tablegen will override where needed. Add MachineOperand::subst{Virt,Phys}Reg methods that correctly handle existing subreg indices when sustituting registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44cd9641b43b77bf8a14206e4591bd9beadf9ac9 Author: Jim Grosbach <grosbach@apple.com> Date: Fri May 28 18:03:48 2010 +0000 correct retattr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104980 91177308-0d34-0410-b5e6-96231b3b80d8 commit c52acefa9099d1b5f50dc501febdd61b431897eb Author: Jim Grosbach <grosbach@apple.com> Date: Fri May 28 17:51:20 2010 +0000 Cosmetic cleanup. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104974 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6301fce3f4bf01412673ad3e77240d22afa4a8d Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 17:44:00 2010 +0000 Fix lint's memcpy and memmove checks, and its basic block traversal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104970 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96087869c9f3de6bebbf2c9d1ddc4839816bbbe2 Author: Jim Grosbach <grosbach@apple.com> Date: Fri May 28 17:37:40 2010 +0000 make sure accesses to set up the jmpbuf don't get moved after it by the scheduler. Add a missing \n. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104967 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb179a5f31294ca19ad73200ae582d81ab173002 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 17:13:49 2010 +0000 Fix more whitespace to be consistent with AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104963 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb8d54da9226f80db30990983f3881ad5f5ac247 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 17:07:41 2010 +0000 Fix whitespace to be more consistent with AsmPrinter's style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bf988e4be2f78b3bfd0741a38bab4fcd5e6c8d6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 28 17:06:30 2010 +0000 Fix more tests that depended on the default register allocator choice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104961 91177308-0d34-0410-b5e6-96231b3b80d8 commit e40b2b376c37ace3728d6e75f65b17898cda7451 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:50:23 2010 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104959 91177308-0d34-0410-b5e6-96231b3b80d8 commit f16ea6ab4bfefed32ab8b46481bcc1dc61e204e6 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:50:01 2010 +0000 Fix a redundant-return warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104958 91177308-0d34-0410-b5e6-96231b3b80d8 commit e099c20a7ef7dd56145a7db96ec601fdb1e2358e Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:45:33 2010 +0000 Detect self-referential values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104957 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7eede2f0e936f78b2cdf8d8341c30cafb4503cc0 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:44:04 2010 +0000 Remove this va_arg test, which is no longer applicable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104956 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72df2fcb07ed1824dcba6e44158fae647c8c1b95 Author: Stuart Hastings <stuart@apple.com> Date: Fri May 28 16:41:07 2010 +0000 Revert 104841, 104842, 104876 due to buildbot failures. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c58f4157db5811dfee16c06e2fd2db09d0b9c04 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:34:49 2010 +0000 Eli pointed out that va_arg instruction result values don't reference the stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104951 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3f2082449b83bbbdfc9b272aea24816fc6debf2 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:21:24 2010 +0000 Teach lint how to look through simple store+load pairs and other effective no-op constructs, to make it more effective on unoptimized IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104950 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2d9eb701433db05ec91bef60c1329853db47c66 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:19:17 2010 +0000 Move FindAvailableLoadedValue isSafeToLoadUnconditionally out of lib/Transforms/Utils and into lib/Analysis so that Analysis passes can use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104949 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e699898cf928abb6d74b2e220ee61962f567afd Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:12:08 2010 +0000 ConstantFoldConstantExpression can theoretically return null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104948 91177308-0d34-0410-b5e6-96231b3b80d8 commit 834e197df3081aaea897b92d338b31588c319b02 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 16:06:09 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3226afacbe641444171a6da0aaf8adce9ac7c47c Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 15:09:00 2010 +0000 Teach instcombine to promote alloca array sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104945 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d42e1b12b17ac8518f63ce26b8d81c0af20ca08 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 15:07:59 2010 +0000 Add a testcase for getelementptr index promotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104944 91177308-0d34-0410-b5e6-96231b3b80d8 commit c23133424b88d00ca2948a219c296ed072381bb8 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 04:33:42 2010 +0000 Add a lint check for returning the address of stack memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104936 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e5ad99d4214d939a223f831dd48ce309674e55e Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 04:33:04 2010 +0000 Fix instcombine's handling of alloca to accept non-i32 types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104935 91177308-0d34-0410-b5e6-96231b3b80d8 commit 878408c50f304390a0f417bf844d694edb256451 Author: Nate Begeman <natebegeman@mac.com> Date: Fri May 28 02:19:08 2010 +0000 Comment out some code in prep for actual .td file checkpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104927 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbfccc229403f5eb7908220ba6d497d4a54ea963 Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 01:38:28 2010 +0000 Bitcode support for allocas with arbitrary array size types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104915 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbf0624d8e3034f2aa33fd2bcaec838600c81025 Author: Devang Patel <dpatel@apple.com> Date: Fri May 28 01:29:50 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 885a78d1bcd955c7dccfd0a0a74815ed59f47236 Author: Devang Patel <dpatel@apple.com> Date: Fri May 28 01:17:51 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104913 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ce83bdc8e1f0da70eaa20a023fd79632904da03 Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri May 28 01:15:28 2010 +0000 Fix build breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104912 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71dfcfde022008c2d765e7ab465c7354484a16ed Author: Dan Gohman <gohman@apple.com> Date: Fri May 28 01:14:11 2010 +0000 Eliminate the restriction that the array size in an alloca must be i32. This will help reduce the amount of casting required on 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104911 91177308-0d34-0410-b5e6-96231b3b80d8 commit adf6b6a497533b97116d820f6508d2a2d2781bc0 Author: Nate Begeman <natebegeman@mac.com> Date: Fri May 28 01:08:32 2010 +0000 Add support to tablegen for auto-generating arm_neon.h from a tablegen description of the intrinsics. The goal is to auto-generate both support for GCC-style (vector) and ARM-style (struct of vector) intrinsics. This is work in progress, but will be completed soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 115fbcc080b5d6dcec7f7b8db3191bb9819a0def Author: Bob Wilson <bob.wilson@apple.com> Date: Fri May 28 00:27:15 2010 +0000 Add the cc_out operand for t2RSBrs instructions. I missed this when I changed the instruction class for t2RSB to add that operand in svn r104582. Radar 8033757. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104907 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c55d770b5a8bdeaf4534bba0888b546fcb9046c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu May 27 23:57:25 2010 +0000 Add a -regalloc=default option that chooses a register allocator based on the -O optimization level. This only really affects llc for now because both the llvm-gcc and clang front ends override the default register allocator. I intend to remove that code later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104904 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3eb73783e86aecf4f522443fc2525449515aecd Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu May 27 23:57:19 2010 +0000 Remove ancient prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104903 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7125d3b383782b7c0389f57c1678e09bf5577491 Author: Jim Grosbach <grosbach@apple.com> Date: Thu May 27 23:49:24 2010 +0000 Update the saved stack pointer in the sjlj function context following either an alloca() or an llvm.stackrestore(). rdar://8031573 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104900 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1a2b61f928770df792a9e15dda6ca9e6bff27d7 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 27 23:45:31 2010 +0000 Use report_fatal_error, not llvm_unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104899 91177308-0d34-0410-b5e6-96231b3b80d8 commit b17a350633cf9e308bc7fd45ad0f374e5cdb9bbb Author: Jim Grosbach <grosbach@apple.com> Date: Thu May 27 23:11:57 2010 +0000 back out 104862/104869. Can reuse stacksave after all. Very cool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104897 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11b338d5da087355d16dc2c8e6dcfb88e324cc5f Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 23:11:55 2010 +0000 Factor out the handler work from SignalHandler into a helper function, and change llvm::sys::RunInterruptHandlers to call that function directly instead of calling SignalHandler, because the rest of SignalHandler invokes side effects which aren't appropriate, including raising the signal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104896 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9680b9f81641c6905ed92d860c52f41e4802e0b Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 27 22:08:38 2010 +0000 llvm can't correctly support 'H', 'Q' and 'R' modifiers. Just mark it an error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104891 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d79dec220192f13d20c94bd8849436b91386619 Author: Kevin Enderby <enderby@apple.com> Date: Thu May 27 21:33:19 2010 +0000 MC/X86: Add aliases for Jcc variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104890 91177308-0d34-0410-b5e6-96231b3b80d8 commit 950336e802974c2b8df2c3038b3fee9043d5d639 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 20:51:54 2010 +0000 Eliminate some unnessary Path::exists() calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104888 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93b880df4d28845314cd971d6d69f1a6a95f4e35 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 20:47:38 2010 +0000 Make ParseIRFile and getLazyIRFileModule incoporate the underlying error message string into their own error message string, so that the information isn't lost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104887 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3cf390d5d9b2a240f29b9904b196ef41a01b78a Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 20:26:51 2010 +0000 Don't flush the raw_ostream in llvm::WriteBitcodeToFile; it's at the wrong level. Clients which need to leave the stream open but which still require the bitcode bits to be on disk should call flush themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104885 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88c5a1d794037e7c96de4a1b8ec2ff1127d79c7a Author: Devang Patel <dpatel@apple.com> Date: Thu May 27 20:25:04 2010 +0000 Do not drop location info for inlined function args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104884 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bc77037d122eda1824b2782e829dade36b8dbd5 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu May 27 20:23:42 2010 +0000 Fix some bad fall-throughs in a switch statement. Both the 'Q' and 'R' cases should fall through to the 'H' case, but instead 'Q' was falling through to 'R' so that it would do the wrong thing for a big-endian ARM target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104883 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b0634c7a93a1b328a652c59d29a009b4446710b Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 20:19:47 2010 +0000 When handling raw_ostream errors manually, use clear_error() so that raw_ostream doesn't try to do its own error handling. Also, close the raw_ostream before checking for errors so that any errors that occur during closing are caught by the manual check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104882 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cfb51043342323c5c3b2d0b527dc76b8b6db076 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 20:17:28 2010 +0000 When handling raw_ostream errors manually, use clear_error() so that raw_ostream doesn't try to do its own error handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104881 91177308-0d34-0410-b5e6-96231b3b80d8 commit c107ee0db733761734db5716c40ad8970ffc4f01 Author: Dale Johannesen <dalej@apple.com> Date: Thu May 27 20:12:41 2010 +0000 Mark some math lib intrinsic nodes Legal on SSE4.1. No functional effect as these nodes are not generated yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104879 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e99e75b58a4cb1071cdacd220c4d716daa67c34 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 20:06:51 2010 +0000 Don't special-case stdout in llvm::WriteBitcodeToFile; just consider it to be the caller's responsibility to provide a stream in binary mode. This fixes a layering violation and avoids an outs() call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104878 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59186d60b7036c66e1a0da2061d0f82e1b1be453 Author: Stuart Hastings <stuart@apple.com> Date: Thu May 27 19:57:51 2010 +0000 Adjust test case for lexical block pruning. Follow-on to r104842 and Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104876 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc8c0b695fff4f9158df7d52718be9854eff5bac Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 19:52:20 2010 +0000 Don't create an output stream when output is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104875 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57f69831db15b97e572d9172de874fa9016de075 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 19:48:08 2010 +0000 Simplify raw_ostream usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 886503babdfae9ac1999b0ead4b12414b63f6a54 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 19:47:36 2010 +0000 Avoid calling outs() and fouts() when the stream isn't really needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104873 91177308-0d34-0410-b5e6-96231b3b80d8 commit d934a748108f02a71761716a5b14a7bc3b1823a0 Author: Devang Patel <dpatel@apple.com> Date: Thu May 27 19:46:38 2010 +0000 Let's try one more time to match patterns. The goal is to match following 3 lines. In otherwords, a temp. label between to DEBUG_VALUE comments. ;DEBUG_VALUE: bar:x <- undef ## 2010-01-18-Inlined-Debug.c:7 Ltmp1: ;DEBUG_VALUE: foo:__x <- undef ## 2010-01-18-Inlined-Debug.c:5 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104872 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c5c127614ca671d2acefea7292a78e467adae70 Author: Duncan Sands <baldrick@free.fr> Date: Thu May 27 19:09:06 2010 +0000 Teach instCombine to remove malloc+free if malloc's only uses are comparisons to null. Patch by Matti Niemenmaa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104871 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c250c7204b9ddfd8b96f159d8c9525b0ac8b44d Author: Jim Grosbach <grosbach@apple.com> Date: Thu May 27 18:52:11 2010 +0000 hook ISD::STACKADDR to an intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104869 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1512931a4fbc1769111c522df281445a4cd200c Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 18:43:40 2010 +0000 FastISel doesn't yet handle callee-pop functions. To support this, move IsCalleePop from X86ISelLowering to X86Subtarget. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104866 91177308-0d34-0410-b5e6-96231b3b80d8 commit b62fdb7982e392b67de6623356a6eb336d5593c4 Author: Jim Grosbach <grosbach@apple.com> Date: Thu May 27 18:23:48 2010 +0000 add ISD::STACKADDR to get the current stack pointer. Will be used by sjlj EH to update the jmpbuf in the presence of VLAs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104862 91177308-0d34-0410-b5e6-96231b3b80d8 commit 174e2a4004b07ebca7c7dbbd95284535d785151a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu May 27 18:17:40 2010 +0000 Merge basic binops SSE 1 & 2 instruction classes. This is a step towards refactoring common code between SSE versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104860 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8896eabdcb416b9c0948fa3073d8be940f18dc69 Author: Devang Patel <dpatel@apple.com> Date: Thu May 27 17:51:08 2010 +0000 Temp. labels number may not match for all configurations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104858 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf5d349774a3f8629fbcc0f9a6baefc0dedbec66 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 17:31:51 2010 +0000 Add basic error checking to MemoryBuffer::getSTDIN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104855 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2b2c5b016e0e073f9f6f3b25716cabc3bb97975 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 17:18:38 2010 +0000 Use the return value of getMagicNumber instead of using a separate canRead() call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104853 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0d166d0b65c669f041346e2ef4cffb840e53560 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 17:14:10 2010 +0000 Don't bother clearing the Magic string when the magic number can't be read, since it isn't cleared on other error paths. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cfc0fb4d14f6c26d28c5bbc3d1eda3ea5748e1b Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 17:12:23 2010 +0000 Don't bother checking canRead() before calling getMagicNumber(); getMagicNumber() does its own error checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f70b0fc29cf0f061933dc6e6a0777be00657b1c Author: Devang Patel <dpatel@apple.com> Date: Thu May 27 16:47:30 2010 +0000 inlined function's arguments need a label to mark the start point because they are not directly attached to current function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104848 91177308-0d34-0410-b5e6-96231b3b80d8 commit 544a98ff5f8f3b06e572f6d055323927013ccf46 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 16:25:05 2010 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104845 91177308-0d34-0410-b5e6-96231b3b80d8 commit e03004d28d7baafe7bd81db72a2ec709d33e4fdf Author: Stuart Hastings <stuart@apple.com> Date: Thu May 27 16:16:54 2010 +0000 Support for nested functions/classes in debug output. Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c08f539b7fcf2f7b2b673f9ba008063408d9b52 Author: Dan Gohman <gohman@apple.com> Date: Thu May 27 16:15:28 2010 +0000 Delete a spurious svn:mergeinfo property. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104840 91177308-0d34-0410-b5e6-96231b3b80d8 commit afae8357c7c5a0ce76451bdd3c3dd03d72687461 Author: Jim Grosbach <grosbach@apple.com> Date: Thu May 27 15:04:02 2010 +0000 remove incorrect GCCBuiltin<> usage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104833 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e78fe61aa4e5abda59a883c1eb45a1c259cf136 Author: Gabor Greif <ggreif@gmail.com> Date: Thu May 27 09:48:47 2010 +0000 typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104832 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d2efd69dba3ab1629cbc7942b80ce781853e4ab Author: Gabor Greif <ggreif@gmail.com> Date: Thu May 27 09:32:38 2010 +0000 rename test to represent meaningful date git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104831 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcf821a0e63a08df552c0827f7ac452f1ddce0d0 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 27 05:31:32 2010 +0000 AsmMatcher: Ensure classes are totally ordered, so we can std::sort them reliably. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 650d5757fec92dd8e04575963dccf1cefee556ca Author: Bob Wilson <bob.wilson@apple.com> Date: Thu May 27 05:30:36 2010 +0000 Add a test for llvm-gcc svn r104726. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104805 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92197c0777dd29d77c38e282f82193f956d9c091 Author: Eric Christopher <echristo@apple.com> Date: Thu May 27 00:53:40 2010 +0000 Add a quick test of relocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104794 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1134c23f232c8a59d22c33a5f1aa337d9d3db10 Author: Eric Christopher <echristo@apple.com> Date: Thu May 27 00:52:31 2010 +0000 Rearrange conditionals so we don't get caught with the correct type as wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104793 91177308-0d34-0410-b5e6-96231b3b80d8 commit da1a758d3312185c8504751e8e33507243c1bd1d Author: Devang Patel <dpatel@apple.com> Date: Wed May 26 23:55:23 2010 +0000 Simplify. Eliminate unneeded debug_loc entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4659df222ec101a4af1cbb598497c70840591a26 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 26 22:40:28 2010 +0000 Avoid counting InlineAsm as a call - it prevents loop unrolling. PR7026 Patch by Pekka Jääskeläinen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65f020211d23787be9ca3edf51e3b8ee18460d53 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 22:28:53 2010 +0000 Fix Lint printing warnings multiple times. Remove the ErrorStr option from lintModule, which was an artifact from being based on Verifier code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104765 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9b016d8d90695c1efc02eb20a14a1d6bfaf4065 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 22:21:28 2010 +0000 AsmMatcher/X86: Mark _REV instructions as "code gen only", they aren't expected to be matched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104757 91177308-0d34-0410-b5e6-96231b3b80d8 commit f45db39499c17dffd834f8899ae1e5a71c11c885 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 22:21:25 2010 +0000 Reinstate checking of stackrestore, with checking for both Read and Write, and add a comment explaining this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104756 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd5a05f4f2f3c2f087f9d55c2c5c3d1c462b6c8c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 26 22:15:07 2010 +0000 Check that inherited subregisters all have a direct SubRegIndex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104755 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c0adc1e337c8ebc69897cca1a05c65efc5f92eb Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 26 22:15:03 2010 +0000 Give SubRegIndex names to all ARM subregisters. This will be required by TableGen shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104754 91177308-0d34-0410-b5e6-96231b3b80d8 commit a393601998d011e210ece0dd6feb95d39f86d75c Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 22:00:10 2010 +0000 Stackrestore is not a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5af9887a95df987b25f28055139b75f0fee3b5c9 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 21:56:15 2010 +0000 Fix a missing quote. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104750 91177308-0d34-0410-b5e6-96231b3b80d8 commit d21e425da461d1ccdc9618bd3b899315d323ed85 Author: Bill Wendling <isanbard@gmail.com> Date: Wed May 26 21:53:50 2010 +0000 Add FIXME comment to remove this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104749 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca57dfddc45a422f72de8fd68a2cd459bb612e02 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 21:50:41 2010 +0000 Remove a TODO which isn't practical. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88c3773281e2ffae9bcf2884c1390ccbe978f27b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 21:48:55 2010 +0000 MC: Add TargetMachine support for setting the value of MCRelaxAll with -filetype=obj. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104747 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea52e10c19b43c6a33752c1a1ddf26940b04719d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 26 21:47:28 2010 +0000 Add StringRef::compare_numeric and use it to sort TableGen register records. This means that our Registers are now ordered R7, R8, R9, R10, R12, ... Not R1, R10, R11, R12, R2, R3, ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104745 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5512324e3b7e1fc3f4cf21b8a3cc32ac886aeba2 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 21:46:36 2010 +0000 Implement checking of the tail keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9eb6d4c331902dc0d8c29b6472c8db5e538f8d70 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 26 21:35:55 2010 +0000 Suppress emmission of empty subreg/superreg/alias sets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 829ae72a15e37c3a23d6eaff00f8453b0dea909f Author: Devang Patel <dpatel@apple.com> Date: Wed May 26 21:23:46 2010 +0000 There is no need to force an line number entry (using previous location) for a temp label at unknown location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c41bd561468f8f9ebf3f722fe28054f38c7876b Author: Bill Wendling <isanbard@gmail.com> Date: Wed May 26 20:39:00 2010 +0000 Add "setjmp_syscall", "savectx", "qsetjmp", "vfork", "getcontext" to the list of usual suspects that could "return twice". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85d39efd1e048905c12f8706475bc0b44bc56a1d Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 20:37:03 2010 +0000 MC: When running with -mc-relax-all, we can eagerly relax instructions and avoid creating unnecessary MCInstFragments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104736 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffad4fab9f93b59d568872c423c76dabda032559 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 20:37:00 2010 +0000 MC/Mach-O: Factor out EmitInstTo{Fragment,Data} for emitting MCInst's as MCInstFragments or appending onto an MCDataFragment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104735 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2fd040d2375d5e5f3ebbdfcd2d0347f77491169 Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 26 20:22:18 2010 +0000 Adjust eh.sjlj.setjmp to properly have a chain and to have an opcode entry in ISD::. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104734 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06d1308478c8b4eec9a1d08bcf2a25f7035410b7 Author: Devang Patel <dpatel@apple.com> Date: Wed May 26 20:18:50 2010 +0000 Update debug info when live-in reg is copied into a vreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104732 91177308-0d34-0410-b5e6-96231b3b80d8 commit c971f093887c1f049d8c0c7fe4e5fb32133f164d Author: Kevin Enderby <enderby@apple.com> Date: Wed May 26 20:10:45 2010 +0000 Fix the x86 move to/from segment register instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104731 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6c8b980e4f8f2fa9a433393491c2332a0cbfd87 Author: Bill Wendling <isanbard@gmail.com> Date: Wed May 26 19:46:12 2010 +0000 Move the check for "calls setjmp" to SelectionDAGISel so that it can be used by more than just the stack slot coloring algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104722 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50b7691b5d9ec2b9b6ee5f7e4e33e2fd3218b4c6 Author: Devang Patel <dpatel@apple.com> Date: Wed May 26 19:37:24 2010 +0000 Identify instructions, that needs a label to mark debug info entity, in advance. This simplifies beginScope(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104720 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6f7a644af0afa89faf698ba92a59260d564ad76 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 18:52:00 2010 +0000 Eliminate the use of PriorityQueue and just use a std::vector, implementing pop with a linear search for a "best" element. The priority queue was a neat idea, but in practice the comparison functions depend on dynamic information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104718 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18ab6fca10dd67ddd5692190a63f160c0ca5ae34 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 18:37:48 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104717 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee27ccb8fc5e53feab7875b20834dc979084252b Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 18:34:12 2010 +0000 Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104716 91177308-0d34-0410-b5e6-96231b3b80d8 commit 102fbf26c4e6e530f5c231d481f13e5b328d38b5 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 18:15:06 2010 +0000 MC: Change RelaxInstruction to only take the input and output instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104713 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1398d298b85825cf50348ef46a6d825ddf14db91 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 18:03:53 2010 +0000 Fix a typo in a comment that Gabor noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104711 91177308-0d34-0410-b5e6-96231b3b80d8 commit 545aea10157dadf1c3626bf256318d041288003c Author: Dale Johannesen <dalej@apple.com> Date: Wed May 26 17:55:45 2010 +0000 Testcase for 104624/104619/PR7191/8023512. Reduced from one provided by Duncan Sands, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104710 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65bdf6dbcbdecbab811ca120f24b5039f306e60d Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 17:50:16 2010 +0000 MC: Eliminate an unnecessary copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 742c4c9fb1ffe0a4c92c4c0c2c4e073c350a2f14 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 17:45:29 2010 +0000 MC: Simplify MayNeedRelaxation to not provide the fixups, so we can query it before encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89698d7ab3993c2664fcd7def20e12c2f3fdd1ff Author: Devang Patel <dpatel@apple.com> Date: Wed May 26 17:42:50 2010 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3947764f226992ea4080553be607c7d2eca019a5 Author: Devang Patel <dpatel@apple.com> Date: Wed May 26 17:29:32 2010 +0000 Do not construct location list backword! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104705 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4de5bf3f165c7cb4131b11f4fd63fdf7ebce12a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 26 17:27:12 2010 +0000 Replace the SubRegSet tablegen class with a less error-prone mechanism. A Register with subregisters must also provide SubRegIndices for adressing the subregisters. TableGen automatically inherits indices for sub-subregisters to minimize typing. CompositeIndices may be specified for the weirder cases such as the XMM sub_sd index that returns the same register, and ARM NEON Q registers where both D subregs have ssub_0 and ssub_1 sub-subregs. It is now required that all subregisters are named by an index, and a future patch will also require inherited subregisters to be named. This is necessary to allow composite subregister indices to be reduced to a single index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a54cd923c34fdbffa0c4c46e6537531b0a5f9f4 Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 26 16:21:41 2010 +0000 Add entry for llvm.eh.sjlj.longjmp. PR4999. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104703 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60a1b419b8875abcd235aeee374c713c38b083b1 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 15:18:56 2010 +0000 MC: Eliminate MCAsmFixup, replace with MCFixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104699 91177308-0d34-0410-b5e6-96231b3b80d8 commit d900fd1940a09bc70fe69e352ab94111ff3c0d58 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 15:18:40 2010 +0000 MC: Simplify MCFixup and increase the available offset size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104698 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc6d55b72ad7f9e81e231f3e512849e82a9e4dad Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 15:18:31 2010 +0000 MC: Use accessors for access to MCAsmFixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104697 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6407e48db2fcde0d59ede04326c5bd7e3c1f30a Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 15:18:13 2010 +0000 MC: Change MCInst::dump_pretty to not include a trailing newline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104696 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d2ecd08b90ace335b2d257c8826d0694d49cf92 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed May 26 09:45:04 2010 +0000 Kill unneeded SExt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c624156675216c240b6d09f522516e0f0d3bfc9 Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Wed May 26 08:10:02 2010 +0000 SRetReturnReg was set in LowerFormalArguments(). So only assert it here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5af5e88fb21c798172ac4a24245a4c56b9f7fd15 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 26 06:50:57 2010 +0000 MC: Eliminate MCFragment vtable, which was unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104689 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc6f8caddf4ff4e45e05278ab7e81f5717b01873 Author: Shih-wei Liao <sliao@google.com> Date: Wed May 26 04:46:50 2010 +0000 Coding style change (Adding 1 missing space.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 931327ce218c01dafbd7792c658a252c658afdc7 Author: Shih-wei Liao <sliao@google.com> Date: Wed May 26 03:21:39 2010 +0000 Adding the missing implementation for ARM::SBFX and ARM::UBFX. Fixing http://llvm.org/bugs/show_bug.cgi?id=7225. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104667 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d83d832fd9040b90dd859342222b2ee89478de7 Author: Eric Christopher <echristo@apple.com> Date: Wed May 26 01:59:55 2010 +0000 Temporarily revert r104655 as it's breaking the bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ad20473e66e29774fc773561b877e38ac1123ee Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 26 01:22:21 2010 +0000 fix off by 1 (insn) error in eh.sjlj.setjmp thumb code sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104661 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6f2b1322d33a27c866ebcbad842210c44251613 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 26 01:21:14 2010 +0000 Revert "Replace the SubRegSet tablegen class with a less error-prone mechanism." This reverts commit 104654. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104660 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2c0189dfb51ebf85438fed964c1e06a9c51272e Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 01:10:55 2010 +0000 Change push_all to a non-virtual function and implement it in the base class, since all the implementations are the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104659 91177308-0d34-0410-b5e6-96231b3b80d8 commit 012a263e4f35837e6665143a32490d72a6140740 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 00:56:27 2010 +0000 Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104658 91177308-0d34-0410-b5e6-96231b3b80d8 commit b12b35205ed5e3370c4150b246519a269e3f2e84 Author: Dan Gohman <gohman@apple.com> Date: Wed May 26 00:55:59 2010 +0000 Trim #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104657 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc844ba7c382e45d2666cc7a9e911da65a8f7d86 Author: Bill Wendling <isanbard@gmail.com> Date: Wed May 26 00:32:40 2010 +0000 Dale and Evan suggested putting the "check for setjmp" much earlier in the machine code generation. That's a good idea, so I made it so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89ae6cb4cd862031b3205198595687c15768978c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 26 00:28:19 2010 +0000 Replace the SubRegSet tablegen class with a less error-prone mechanism. A Register with subregisters must also provide SubRegIndices for adressing the subregisters. TableGen automatically inherits indices for sub-subregisters to minimize typing. CompositeIndices may be specified for the weirder cases such as the XMM sub_sd index that returns the same register, and ARM NEON Q registers where both D subregs have ssub_0 and ssub_1 sub-subregs. It is now required that all subregisters are named by an index, and a future patch will also require inherited subregisters to be named. This is necessary to allow composite subregister indices to be reduced to a single index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fae86ffd7aab755ffe138888295eccc223a9231 Author: Shih-wei Liao <sliao@google.com> Date: Wed May 26 00:25:05 2010 +0000 Adding the missing implementation of Bitfield's "clear" and "insert". Fixing http://llvm.org/bugs/show_bug.cgi?id=7222. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 523893def2e3b5941b5a464bf5f306d3aa199ae0 Author: Shih-wei Liao <sliao@google.com> Date: Wed May 26 00:02:28 2010 +0000 To handle s* registers in emitVFPLoadStoreMultipleInstruction(). Fixing http://llvm.org/bugs/show_bug.cgi?id=7221. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104652 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61905bef11c177d9fe74415ce340d5e325ab9e36 Author: Eric Christopher <echristo@apple.com> Date: Wed May 26 00:02:12 2010 +0000 Start adding mach-o tls reloc support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104651 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0f059e23a7df8cdf5b6cdcae9b4871ce94794b3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 23:43:18 2010 +0000 Drop the SuperregHashTable. It is essentially the same as SubregHashTable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104650 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88c7296cde7fcf928d89420972e8c998c8e90629 Author: Devang Patel <dpatel@apple.com> Date: Tue May 25 23:40:22 2010 +0000 First cut at supporting .debug_loc section. This is used to track variable information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2adf3bcb3e902055cb305068d9c0db3edc5c8a21 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue May 25 22:53:43 2010 +0000 Properly promote operands when optimizing a single-character memcmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104648 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd319269aba3af9216bbb31aa102534feb3f3846 Author: Bill Wendling <isanbard@gmail.com> Date: Tue May 25 22:02:22 2010 +0000 Constify function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37f944d667e035463db8c5ddc249dee2f4d50952 Author: Dan Gohman <gohman@apple.com> Date: Tue May 25 21:59:42 2010 +0000 Do one map lookup instead of two. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104645 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4cfd3d54b283e7cc31cd70216319e3ba89ce45d Author: Dan Gohman <gohman@apple.com> Date: Tue May 25 21:50:35 2010 +0000 Fix a missing newline in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8cf54474a4817b2de06ac5065d6b3532602e81aa Author: Eric Christopher <echristo@apple.com> Date: Tue May 25 21:49:43 2010 +0000 Move the verbose asm output up a bit so it can be used in the special cases as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104642 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3a142c6d8f356bf79545c77ac58461f5782e220 Author: Bill Wendling <isanbard@gmail.com> Date: Tue May 25 21:44:26 2010 +0000 Okay, bear with me here... If you have a setjmp/longjmp situation, it's possible for stack slot coloring to reuse a stack slot before it's really dead. For instance, if we have something like this: 1: y = g; x = sigsetjmp(env, 0); switch (x) { case 1: /* ... */ goto run; case 0: run: do_run(); /* marked as "no return" */ break; case 3: if (...) { /* ... */ goto run; } /* ... */ break; } 2: g = y; "y" may be put onto the stack, so the expression "g = y" is relying upon the fact that the stack slot containing "y" isn't modified between (1) and (2). But it can be, because of the "no return" calls in there. A longjmp might come back with 3, modify the stack slot, and then go to case 0. And it's perfectly acceptable to reuse the stack slot there because there's no CFG flow from case 3 to (2). The fix is to disable certain optimizations in these situations. Ideally, we'd disable them for all "returns twice" functions. But we don't support that attribute. Check for "setjmp" and "sigsetjmp" instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104640 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5560e8620f0db18d9334d17b647ffed273af4ca Author: Eric Christopher <echristo@apple.com> Date: Tue May 25 21:28:50 2010 +0000 Add support for initialized global data for darwin tls. Update comments and testcases accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 868642f82b65b4c6cff8e857f5485098765ab310 Author: Kevin Enderby <enderby@apple.com> Date: Tue May 25 20:52:34 2010 +0000 Changed the encoding of X86 floating point stack operations where both operands are st(0). These can be encoded using an opcode for storing in st(0) or using an opcode for storing in st(i), where i can also be 0. To allow testing with the darwin assembler and get a matching binary the opcode for storing in st(0) is now used. To do this the same logical trick is use from the darwin assembler in converting things like this: fmul %st(0), %st into this: fmul %st(0) by looking for the second operand being X86::ST0 for specific floating point mnemonics then removing the second X86::ST0 operand. This also has the add benefit to allow things like: fmul %st(1), %st that llvm-mc did not assemble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39c347f56b9245ea27d8e83ddf2c8e890e026113 Author: Dale Johannesen <dalej@apple.com> Date: Tue May 25 20:40:10 2010 +0000 Removing test; Chris thinks it's better to have the bug go untested than have a testcase this large. So be it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104632 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f8e6898e0a9b1582d82eab34ddacd627b2945e4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 19:49:40 2010 +0000 Separate unrelated cases that once shared a numeric value git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104629 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1bf2ccc0c47d07504c07cf4e69ea43554529a6b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 19:49:38 2010 +0000 Print symbolic SubRegIndex names on machine operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83e8eae203a2158fc02f0baf46adfb97058cca78 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 19:49:33 2010 +0000 Remove NumberHack entirely. SubRegIndex instances are now numbered uniquely the same way Register instances are - in lexicographical order by name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 550ba067dc3c71756569727700a098b661e48257 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 25 19:49:32 2010 +0000 MC/X86: Add a hack to allow recognizing 'cmpltps' and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104626 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2badaca3325f7fde0c04d9e4daeaceefef92514 Author: Dale Johannesen <dalej@apple.com> Date: Tue May 25 18:47:23 2010 +0000 Fix another variant of PR 7191. Also add a testcase Mon Ping provided; unfortunately bugpoint failed to reduce it, but I think it's important to have a test for this in the suite. 8023512. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104624 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8630a33549dd401c3eaa6bb28a51f7ad6b9883dc Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 25 18:40:53 2010 +0000 MC/X86: Define explicit immediate forms of cmp{ss,sd,ps,pd}. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104622 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8989b0190ef1c4b5c13c6182be31487c79f0667 Author: Kevin Enderby <enderby@apple.com> Date: Tue May 25 18:16:58 2010 +0000 The BT64ri8 record in X86Instr64bit.td was missing a REX_W which is required for the 64-bit version of the Bit Test instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 135b3d318799a77a9a6aa00e3189b18337144c70 Author: Dale Johannesen <dalej@apple.com> Date: Tue May 25 17:50:03 2010 +0000 Fix PR 7191. I have been unable to create a .ll file that fails, sorry. (oye, a word which should be better known to people writing tree traversals, means grandchild.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104619 91177308-0d34-0410-b5e6-96231b3b80d8 commit b70c67bde575385e48a14ddc029a53c0524ae758 Author: Eric Christopher <echristo@apple.com> Date: Tue May 25 17:33:22 2010 +0000 Make sure aeskeygenassist uses an unsigned immediate field. Fixes rdar://8017638 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104617 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d93a2bce650df20836b966e22ecdbca2bd67cf8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 17:21:04 2010 +0000 Ignore NumberHack and give each SubRegIndex instance a unique enum value instead. This passes lit tests, but I'll give it a go through the buildbots to smoke out any remaining places that depend on the old SubRegIndex numbering. Then I'll remove NumberHack entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104615 91177308-0d34-0410-b5e6-96231b3b80d8 commit dca37fd85b25ed9cbf1282352bcf3671137e78c8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 17:04:18 2010 +0000 Use enums instead of literals for SystemZ subregisters git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24da98847fbb3ab27da883bb38c1efd93d17b810 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 17:04:16 2010 +0000 Use enums instead of literals for X86 subregisters. The cases in getMatchingSuperRegClass cannot be broken up until the enums have unique values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24a61bd63f6a9987721883eb3f056eed14dccead Author: Zonr Chang <zonr.xchg@gmail.com> Date: Tue May 25 10:23:52 2010 +0000 Add missing implementation to the materialization of VFP misc. instructions (vmrs, vmsr and vmov (immediate)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104588 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9d5ec019227edc4ee7d44a5c870a9b7fcba50cd Author: Zonr Chang <zonr.xchg@gmail.com> Date: Tue May 25 08:42:45 2010 +0000 Add support to MOVimm32 using movt/movw for ARM JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104587 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bcfd1f41c0ba23cd751f9c81b1acd0ecffd5d49 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue May 25 04:51:47 2010 +0000 Allow t2MOVsrl_flag and t2MOVsra_flag instructions to be predicated. I don't know of any particular reason why that would be important, but neither can I see any reason to disallow it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104583 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51e46acc0df3ba77cc9a8cd7d61ffbbf29962a06 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue May 25 04:43:08 2010 +0000 Fix up instruction classes for Thumb2 RSB instructions to be consistent with Thumb2 ADD and SUB instructions: allow RSB instructions be changed to set the condition codes, and allow RSBS instructions to be predicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104582 91177308-0d34-0410-b5e6-96231b3b80d8 commit b30fef28ca298ad73907cba1ef1de351c7ef4bb4 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue May 25 03:36:52 2010 +0000 Clean up indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104580 91177308-0d34-0410-b5e6-96231b3b80d8 commit 095d1733e88ec56ab8373bc6ee48adebd026154f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 00:15:18 2010 +0000 Disable invalid coalescer assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104574 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b5c3141a5cee0cdd1385a4e36fae7fc3794eaaf Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 25 00:15:15 2010 +0000 Use enums instead of literals in the ARM backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e66bd99a40a4e4a70eed0f9cb72491c41ac50fa Author: Bill Wendling <isanbard@gmail.com> Date: Mon May 24 23:16:04 2010 +0000 Print out the name of the function during SSC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4de1f332ec447254b097318a6f9cad575f89a539 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 23:03:18 2010 +0000 Switch SubRegSet to using symbolic SubRegIndices git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104571 91177308-0d34-0410-b5e6-96231b3b80d8 commit c50f6f21bab8fb57fdd3688a4c22c09e4685ffe3 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon May 24 22:41:19 2010 +0000 Allow Thumb2 MVN instructions to set condition codes. The immediate operand version of t2MVN already allowed that, but not the register versions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104570 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f6c747da7b9dcfbdbf48d8b09a39e500ccba9f3 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 24 21:55:47 2010 +0000 diaggroup categories should take precedence over diag-specific groups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104567 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09321cb8350ea76cf6ea46d261bd5b22db264dac Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 21:47:01 2010 +0000 Lose the dummies git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0626c2e98ae438e8a7987f1da9a43c5447d6a4f3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 21:46:58 2010 +0000 Replace the tablegen RegisterClass field SubRegClassList with an alist-like data structure that represents a mapping without any dependencies on SubRegIndex numbering. This brings us closer to being able to remove the explicit SubRegIndex numbering, and it is now possible to specify any mapping without inventing *_INVALID register classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d25bcfefaa9088bdd7d86ae01c6ba7d5273bbcc Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 24 21:33:37 2010 +0000 Avoid adding duplicate function live-in's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104560 91177308-0d34-0410-b5e6-96231b3b80d8 commit d711549705150ccae29af1d3273a235516f8692a Author: Dan Gohman <gohman@apple.com> Date: Mon May 24 20:51:08 2010 +0000 Fix an mmx movd encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104552 91177308-0d34-0410-b5e6-96231b3b80d8 commit f85e43da315667a4f5da8e14caf65dc11910eb47 Author: Kevin Enderby <enderby@apple.com> Date: Mon May 24 20:32:23 2010 +0000 MC/X86: Add aliases for CMOVcc variants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79a981372e5735a3d94d42f8cc0c17d7abc1957e Author: Bob Wilson <bob.wilson@apple.com> Date: Mon May 24 20:08:34 2010 +0000 Clean up some extra whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104544 91177308-0d34-0410-b5e6-96231b3b80d8 commit afac9e144a02c64267dc8d3b4a18239e526abcfd Author: Bob Wilson <bob.wilson@apple.com> Date: Mon May 24 18:44:06 2010 +0000 Thumb2 RSBS instructions were being printed without the 'S' suffix. Fix it by changing the T2I_rbin_s_is multiclass to handle the CPSR output and 'S' suffix in the same way as T2I_bin_s_irs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89782d67a2bbac35b97ede78e87cfcaad013878c Author: Devang Patel <dpatel@apple.com> Date: Mon May 24 18:26:49 2010 +0000 Do not emit line number entries for unknown debug values. This fixes recent regression in store.exp from gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104524 91177308-0d34-0410-b5e6-96231b3b80d8 commit fad45951e39f919a0321d4e136ba267e118e21f2 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 24 18:00:18 2010 +0000 LR is in GPR, not tGPR even in Thumb1 mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104518 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2b0fd2c42fffaf0254a1f1de83428c5d79bc872 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 17:55:38 2010 +0000 Add SubRegIndex defs to PowerPC. It looks like the CR subregister indices are never used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104517 91177308-0d34-0410-b5e6-96231b3b80d8 commit e368d5d3d013a3b70d1b0cfed659c8ee7b2560c2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 17:43:01 2010 +0000 Use SubRegIndex in SystemZ. Anton, please review the change to SystemZAsmPrinter.cpp. It could be a bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6410fc2c49c0f8378aef3bf2efe004f9ae771d25 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 17:42:58 2010 +0000 SubRegIndex'ize Mips git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104514 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0687c3ecf2159ea632cfec981d205e9611aa9f9b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 17:42:55 2010 +0000 SubRegIndex'ize MSP430 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104513 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8469770d549cbaf4f7072b26f33a5e9ad5ea796 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 17:13:28 2010 +0000 Fix a few places that depended on the numeric value of subreg indices. Add assertions in places that depend on consecutive indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104510 91177308-0d34-0410-b5e6-96231b3b80d8 commit c802b0215f1f53a31d9b2fa9d7b5843782d683cc Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 16:54:32 2010 +0000 Switch ARMRegisterInfo.td to use SubRegIndex and eliminate the parallel enums from ARMRegisterInfo.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104508 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6a0f2af58fd5f4ea32fd8cb1cb5b659f5b354b8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 14:48:17 2010 +0000 Rename X86 subregister indices to something shorter. Use the tablegen-produced enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104493 91177308-0d34-0410-b5e6-96231b3b80d8 commit 697e8b39e2aea688cc41f456f81ef0b7c992efba Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 24 14:48:12 2010 +0000 Add the SubRegIndex TableGen class. This is the beginning of purely symbolic subregister indices, but we need a bit of jiggling before the explicit numeric indices can be completely removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 562ff871776e4f9de14ed2dfcc5aa3492eb07041 Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Mon May 24 12:24:11 2010 +0000 Encode the Caml frametable by following what the comment says: the number of descriptors is first emitted, and StackOffsets are emitted in 16 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104488 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9d73337976ddae28d6343ba442d6fe38a418ca9 Author: Duncan Sands <baldrick@free.fr> Date: Mon May 24 07:49:55 2010 +0000 Apply timeouts and memory limits in more places. In particular, when bugpoint does "Running the code generator to test for a crash" this gets you a crash if llc goes into an infinite loop or uses up vast amounts of memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b92980748884677c1916a39b04be4fa260e534e Author: Daniel Dunbar <daniel@zuster.org> Date: Sun May 23 18:36:38 2010 +0000 llvm-mc: Use EmitIntValue where possible, which makes the API calls from the AsmParser and CodeGen line up better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104467 91177308-0d34-0410-b5e6-96231b3b80d8 commit bac4c3a48b3014114e2a71c506e2114c450345cc Author: Daniel Dunbar <daniel@zuster.org> Date: Sun May 23 18:36:34 2010 +0000 llvm-mc: Use AddBlankLine in asm parser. This makes transliteration match the input much more closely, and also makes the API calls from the AsmParser and CodeGen line up better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104466 91177308-0d34-0410-b5e6-96231b3b80d8 commit be05e21af241f627739a9908f79f93fc9c916cb2 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun May 23 17:44:06 2010 +0000 MC: Add an MCLoggingStreamer, for use in debugging integrated-as mismatches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104463 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2323faa80eb6732357056b6a2273c5d7d27eb12 Author: Bob Wilson <bob.wilson@apple.com> Date: Sun May 23 05:42:31 2010 +0000 VDUP doesn't support vectors with 64-bit elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104455 91177308-0d34-0410-b5e6-96231b3b80d8 commit b11fe0e21c03e6f9934763a76d825bbe44961e8a Author: Daniel Dunbar <daniel@zuster.org> Date: Sat May 22 21:02:33 2010 +0000 MC/X86: Subdivide immediates a bit more, so that we properly recognize immediates based on the width of the target instruction. For example: addw $0xFFFF, %ax should match the same as addw $-1, %ax but we used to match it to the longer encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104453 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3125079238f6536097a880c00b51e61be4d8b13 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat May 22 21:02:29 2010 +0000 tblgen/AsmMatcher: Change AsmOperandClass to allow a list of superclasses instead of just one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104452 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76afbdd833816aeb041bb5eac6fd80403ae9b197 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat May 22 06:37:33 2010 +0000 MC/X86: Add alias for setz, setnz, jz, jnz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97147feff2963db21c44c0574de68c3e8b65cbd8 Author: John Mosby <ojomojo@gmail.com> Date: Sat May 22 05:13:17 2010 +0000 Trivial change to dump() function for SparseBitVector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104433 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3e8177736f20430187bbb007e1f80ec8936af9d Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 22 01:47:14 2010 +0000 Implement @llvm.returnaddress. rdar://8015977. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104421 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0443476cd5434188c39b65f04aa0af9ce031fc4 Author: Jim Grosbach <grosbach@apple.com> Date: Sat May 22 01:06:18 2010 +0000 Implement eh.sjlj.longjmp for ARM. Clean up the intrinsic a bit. Followups: docs patch for the builtin and eh.sjlj.setjmp cleanup to match longjmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104419 91177308-0d34-0410-b5e6-96231b3b80d8 commit cefe72788e52704a1909e849791d568f8df76348 Author: Eric Christopher <echristo@apple.com> Date: Sat May 22 00:55:55 2010 +0000 This test is darwin only. Make it so(tm). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c0d15deee29dae5cdff4f8905db952e30fb4d78 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat May 22 00:23:12 2010 +0000 Recognize more BUILD_VECTORs and VECTOR_SHUFFLEs that can be implemented by copying VFP subregs. This exposed a bunch of dead code in the *spill-q.ll tests, so I tweaked those tests to keep that code from being optimized away. Radar 7872877. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94e516922e71275a88fae280b475556c654b3616 Author: Eric Christopher <echristo@apple.com> Date: Sat May 22 00:10:22 2010 +0000 Add full bss data support for darwin tls variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104414 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecc53a173360c0e0e16318187b40c9de6c3c1fc0 Author: Devang Patel <dpatel@apple.com> Date: Sat May 22 00:04:14 2010 +0000 Collect variable information during endFunction() instead of beginFunction(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104412 91177308-0d34-0410-b5e6-96231b3b80d8 commit aaaf3068432a3b51d10ecc76af62e4715d57a53b Author: Eric Christopher <echristo@apple.com> Date: Sat May 22 00:00:58 2010 +0000 Add a new section and accessor for TLS data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104411 91177308-0d34-0410-b5e6-96231b3b80d8 commit d85b3fe2be6d7284de5d3b92eb8489b2a559dd07 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri May 21 23:53:55 2010 +0000 Clean up extra whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88a585dbc930adcb0cb0fce00d2efb2eaead0b4d Author: Eric Christopher <echristo@apple.com> Date: Fri May 21 23:40:03 2010 +0000 Make this LookAheadLimit, not the uninitialized LookAheadLeft. Evan please verify! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b4a28f2dbcbab1a38f0e932cfab2f21f4d82cf4 Author: Chris Lattner <sabre@nondot.org> Date: Fri May 21 23:16:21 2010 +0000 add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104404 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c33ea2f482600bf0ddebc02c9f1c3ffa369019d Author: Eric Christopher <echristo@apple.com> Date: Fri May 21 23:03:53 2010 +0000 Expand on comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104396 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc8cb7b002531112a44d54dd51aa418c53777922 Author: Kevin Enderby <enderby@apple.com> Date: Fri May 21 23:01:38 2010 +0000 Added retl for 32-bit x86 and added retq for 64-bit x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104394 91177308-0d34-0410-b5e6-96231b3b80d8 commit e006c5b4bb78cd96a1a90bbd6bc8d2584580a4a6 Author: Eric Christopher <echristo@apple.com> Date: Fri May 21 22:39:11 2010 +0000 Fix comment and whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104392 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3429fa66fead6ac14eeaeb068d8a386692d98d6 Author: Chris Lattner <sabre@nondot.org> Date: Fri May 21 22:20:54 2010 +0000 expand on the llvm ir bitcode dox. Patch by Peter Housel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104391 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee901be958008c8f2360492d5f50ebeb76d59f53 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 21 21:22:19 2010 +0000 Allow machine cse to cse instructions which define physical registers. Controlled by option -machine-cse-phys-defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104385 91177308-0d34-0410-b5e6-96231b3b80d8 commit babb7a46f9b33a9c7264c9714bf7b6514dd9f36a Author: Eric Christopher <echristo@apple.com> Date: Fri May 21 21:08:52 2010 +0000 Fix section attribute name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104381 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3a79950ee24bc2df930282e8592d5a67026d727 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri May 21 21:05:32 2010 +0000 Change CodeGen/ARM/2009-11-02-NegativeLane.ll to use 16-bit vector elements so that it will continue to test what it was meant to test when I commit a separate change for better support of BUILD_VECTOR and VECTOR_SHUFFLE for Neon. Fix a DAG combiner crash exposed by this test change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cd8cb299ed40c247fd12c1c8184641f6829e7f0 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 21 20:53:24 2010 +0000 - Change MachineInstr::findRegisterDefOperandIdx so it can also look for defs that are aliases of the specified register. - Rename modifiesRegister to definesRegister since it's looking a def of the specific register or one of its super-registers. It's not looking for def of a sub-register or alias that could change the specified register. - Added modifiesRegister to look for defs of aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104377 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7365b2757ccd0ee45423132cda59df8db712aa1b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 21 20:02:01 2010 +0000 Add MachineInstr::readsWritesVirtualRegister() to determine if an instruction reads or writes a register. This takes partial redefines and undef uses into account. Don't actually use it yet. That caused miscompiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3433361b0fa592c26283392f49a9b59b2a0e4176 Author: Devang Patel <dpatel@apple.com> Date: Fri May 21 18:49:09 2010 +0000 Simplify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104338 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e13d77165c88b68410260a006d9258f3de96548 Author: Dale Johannesen <dalej@apple.com> Date: Fri May 21 18:44:47 2010 +0000 Previous commit message should refer to 104308. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104337 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1923d07bb1583adb72a2f386df81f668086e81fb Author: Dale Johannesen <dalej@apple.com> Date: Fri May 21 18:40:15 2010 +0000 Fix two bugs in 104348: Case where MMX is disabled wasn't handled right. MMX->MMX bitconverts are Legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 342832ba40f0d161c9355ff7d796f863d42a28c9 Author: Nathan Jeffords <blunted2night@gmail.com> Date: Fri May 21 18:23:56 2010 +0000 added an assertion to MCObjectWriter::WriteBytes to catch misuse of the ZeroFillSize parameter If the size of the string is greater than the zero fill size, the function will attempt to write a very large string of zeros to the object file (~4GB on 32 bit platforms). This assertion will catch the scenario and crash the program before the write occurs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104334 91177308-0d34-0410-b5e6-96231b3b80d8 commit f58ba8df2648954a09ffd59e11c924812f82a519 Author: Chris Lattner <sabre@nondot.org> Date: Fri May 21 18:17:54 2010 +0000 now that fp reg kill insertion stuff happens as a separate pass after isel instead of being interlaced with it, we can trust that all the code for a function has been isel'd before it is run. The practical impact of this is that we can scan for machine instr phis instead of doing a fuzzy match on the LLVM BB for phi nodes. Doing the fuzzy match required knowing when isel would produce an fp reg stack phi which was gross. It was also wrong in cases where select got lowered to a branch tree because cmovs aren't available (PR6828). Just do the scan on machine phis which is simpler, faster and more correct. This fixes PR6828. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104333 91177308-0d34-0410-b5e6-96231b3b80d8 commit b451b0eb2ad0f7f373a9a3f109c26fbf871ad083 Author: Chris Lattner <sabre@nondot.org> Date: Fri May 21 18:02:42 2010 +0000 Use less evil form of switch stmt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104331 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74c09f52d10e10182e2414213564fb67f35ef9e3 Author: Chris Lattner <sabre@nondot.org> Date: Fri May 21 18:01:24 2010 +0000 use continue to reduce nesting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104330 91177308-0d34-0410-b5e6-96231b3b80d8 commit a97633d6f54601581dac07144e40694a2efc537d Author: Chris Lattner <sabre@nondot.org> Date: Fri May 21 17:57:03 2010 +0000 pull a nested loop of this pass out to its own function, eliminating the gymnastics around the ContainsFPCode var. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104328 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85e63b63d3c8fb122ddab4436387e69e6c8da0be Author: Chris Lattner <sabre@nondot.org> Date: Fri May 21 17:49:07 2010 +0000 modernize this pass a bit, fit in 80 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a3d9d682a533ca6e3aa0243f1e58cf94f9ee967 Author: Chris Lattner <sabre@nondot.org> Date: Fri May 21 17:47:50 2010 +0000 constify accessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ddf02be38d4fc6b102955efbf570d34290a780f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 21 17:36:32 2010 +0000 Revert "Use MachineInstr::readsWritesVirtualRegister to determine if a register is read." This reverts r104322. I think it was causing miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f1c1ea06680cd95a28db7a51eb7e23ab69b4b88 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 21 16:42:30 2010 +0000 Use MachineInstr::readsWritesVirtualRegister to determine if a register is read. This correctly handles partial redefines and undef uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2723487f707f2ff3a6eb5648a9be998bc6eac594 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 21 16:36:13 2010 +0000 Teach VirtRegRewriter to handle spilling in instructions that have multiple definitions of the virtual register. This happens when spilling the registers produced by REG_SEQUENCE: %reg1047:5<def>, %reg1047:6<def>, %reg1047:7<def> = VLD3d8 %reg1033, 0, pred:14, pred:%reg0 The rewriter would spill the register multiple times, dead store elimination tried to keep up, but ended up cutting the branch it was sitting on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9051580fd727482feb2769bcd86a0d09b8e715a5 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 21 16:32:16 2010 +0000 If the first definition of a virtual register is a partial redef, add an <imp-def> operand for the full register. This ensures that the full physical register is marked live after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104320 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff5578493bd4f964b4e1308bd30cfeed0aee68fa Author: Matt Fleming <matt@console-pimps.org> Date: Fri May 21 12:54:43 2010 +0000 Currently, createMachOStreamer() is invoked directly in llvm-mc which isn't ideal if we want to be able to use another object file format. Add a createObjectStreamer() factory method so that the correct object file streamer can be instantiated for a given target triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104318 91177308-0d34-0410-b5e6-96231b3b80d8 commit c194106d2bf1ea54183c31deb648abbca17f3b8c Author: Matt Fleming <matt@console-pimps.org> Date: Fri May 21 11:39:07 2010 +0000 Split out the x86_32 an x86_64 ELF backends as they handle ELF differently. This will make adding ELF support easier in the long run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104317 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86cdf97d09f98eaa6a1e991355af5bf2c070ecdd Author: Matt Fleming <matt@console-pimps.org> Date: Fri May 21 11:36:59 2010 +0000 Add support for parsing the ELF .type assembler directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ca518e81b6de1281447d699dc6143f87f90bee8 Author: Lang Hames <lhames@gmail.com> Date: Fri May 21 03:04:04 2010 +0000 Removed scaleNumbering method declaration from LiveInterval (not defined, not used). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104311 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad7c7e4710a47a0027a38b41ef20b69d6e2458db Author: Dale Johannesen <dalej@apple.com> Date: Fri May 21 00:52:33 2010 +0000 Fix i64->f64 conversion, x86-64, -no-sse. A bit tricky since there's a 3rd 64-bit type, MMX vectors. PR 7135. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104308 91177308-0d34-0410-b5e6-96231b3b80d8 commit a81dc1ff42f17c7996c763b84a1071686a5ef553 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 21 00:43:17 2010 +0000 Change ARM scheduling default to list-hybrid if the target supports floating point instructions (and is not using soft float). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104307 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78664a0815881cd3408d50a7ca9d760c9684be31 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 21 00:42:32 2010 +0000 Rename -pre-RA-sched=hybrid to -pre-RA-sched=list-hybrid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104306 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26b948ea394d25e8068b3e4dd5fa9fda4a9712b8 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 21 00:27:55 2010 +0000 Remove dead option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43e0fa7ad6c1716319d4cb7dd67e1cc346cc3ad4 Author: Devang Patel <dpatel@apple.com> Date: Fri May 21 00:10:20 2010 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104302 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c29e753abd4911d802daf8ae5cb3dc0ed429a5f Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 20 23:50:19 2010 +0000 Fix __crashreport_info__ declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97af9aeeae9f951521b7050c105f968a6dc00df8 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 20 23:26:43 2010 +0000 Allow targets more controls on what nodes are scheduled by reg pressure, what for latency in hybrid mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104293 91177308-0d34-0410-b5e6-96231b3b80d8 commit a54de5866117481853081fe301719dbb605398f4 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 22:46:54 2010 +0000 DominatorTree.getNode can return null for unreachable blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a32cd051daf7e645dd022eabb4f3e4a74014d87 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 22:25:20 2010 +0000 Minor code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104287 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a66dc67ef38adb06ac2ff3022e527841b0e53a3 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu May 20 21:11:37 2010 +0000 Print a space after the colon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104279 91177308-0d34-0410-b5e6-96231b3b80d8 commit e152e9a88ddd90f26fa1335a8c4c80d2bef86bc1 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 20:59:23 2010 +0000 Make Solve check its own post-condition, to reduce clutter in the top-level LSRInstance logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c86e2af2e39df9d7bce30b10e216ef5597f9072 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 20:52:00 2010 +0000 Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104276 91177308-0d34-0410-b5e6-96231b3b80d8 commit d23ab3530d4a34b78bafc78bd8a14fad1895cdc6 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 20 20:36:29 2010 +0000 MC/X86: Add movq alias for movabsq, to allow matching 64-bit immediates with movq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104275 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6cc7c8a6f8e8b2a148601a87eb28c832ca4416fc Author: Devang Patel <dpatel@apple.com> Date: Thu May 20 20:35:24 2010 +0000 Rename variable. add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104274 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef0823e173151c5aa899abbb10666e623e589ef7 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 20:33:18 2010 +0000 More code cleanups. Use iterators instead of indices when indices aren't needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104273 91177308-0d34-0410-b5e6-96231b3b80d8 commit e773848a740509a2123aa87b81cc436a7d953e5a Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 20 20:20:39 2010 +0000 X86: Model i64i32imm properly, as a subclass of all immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104272 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bfdcff07baf82b58d5befc2bf5d71a74b673943 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 20 20:20:35 2010 +0000 X86: Fix immediate type of FOO64i32 operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 627ca2c53cb452f545143fe60a69fc124d8475b6 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 20 20:20:32 2010 +0000 tblgen/Target: Add a isAsmParserOnly bit, and teach the disassembler to honor it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104270 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9fc0f660a20cc1b4cc5d31cca4049ecaf415ed5 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 20:05:31 2010 +0000 Fix OptimizeShadowIV to set Changed. Change OptimizeLoopTermCond to set Changed directly instead of using a return value. Rename FilterOutUndesirableDedicatedRegisters's Changed variable to distinguish it from LSRInstance's Changed member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f6fad78dbbc3bbc9dc4d1fad4765b01d232bc3c Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 20:00:41 2010 +0000 Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104268 91177308-0d34-0410-b5e6-96231b3b80d8 commit abdf17839aeeff0484ce3d3aedb23e4271c1641b Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 20:00:25 2010 +0000 Simplify this code. Don't do a DomTreeNode lookup for each visited block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104267 91177308-0d34-0410-b5e6-96231b3b80d8 commit d83f871a8e181ce11ea88e33ae6e67a94fe3a59f Author: Devang Patel <dpatel@apple.com> Date: Thu May 20 19:57:06 2010 +0000 Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104265 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1835b3811de0c59d5330debf6d0032b81b7449d5 Author: Matt Fleming <matt@console-pimps.org> Date: Thu May 20 19:45:09 2010 +0000 Grammar fix. This is a test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104264 91177308-0d34-0410-b5e6-96231b3b80d8 commit ceebcd8f8617a4527f4a367b2bd4dc9e8044a9ea Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 19:44:23 2010 +0000 Minor code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104263 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7822a1f5be392de23f8c67ca1ba2cd2f654adb5d Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 19:26:52 2010 +0000 When canonicalizing icmp operand order to put the loop invariant operand on the left, the interesting operand is on the right. This fixes a bug where LSR was failing to recognize ICmpZero uses, which led it to be unable to reverse the induction variable in the attached testcase. Delete test/CodeGen/X86/stack-color-with-reg-2.ll, because its test is extremely fragile and hard to meaningfully update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104262 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96ad0633c63e7dccd8576dffb5fde3d7b2566d90 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu May 20 19:23:47 2010 +0000 llvmc: Make segfault detection work on Win32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104261 91177308-0d34-0410-b5e6-96231b3b80d8 commit aae804f4bf450fa2c3038c88c82b0aedb5d7b52c Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 19:16:03 2010 +0000 Set Changed to true when canonicalizing ICmp operand order; even though it isn't a very interesting change, it's a change nonetheless. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104260 91177308-0d34-0410-b5e6-96231b3b80d8 commit e576298951d44ee6c02c1d5cc04d739ebbe8b81f Author: Bob Wilson <bob.wilson@apple.com> Date: Thu May 20 18:39:53 2010 +0000 Handle Neon v2f64 and v2i64 vector shuffles as register copies. This fixes the remaining issue with pr7167. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6354b28eba0e941dff7efdf0d5e3098e1b84ca53 Author: Jim Grosbach <grosbach@apple.com> Date: Thu May 20 18:34:01 2010 +0000 Remove dbg_value workaround and associated command line option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69b85c7120b7ce8db196004dba02f515b0ece746 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 18:05:01 2010 +0000 Delete MMX_MOVQ64gmr. It was the same as MMX_MOVQ64mr, but it didn't have a pattern and it had an invalid encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104244 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3fd0886e7a355aef2fa25a889b4c582472551df Author: Dale Johannesen <dalej@apple.com> Date: Thu May 20 17:48:26 2010 +0000 The PPC MFCR instruction implicitly uses all 8 of the CR registers. Currently it is not so marked, which leads to VCMPEQ instructions that feed into it getting deleted. If it is so marked, local RA complains about this sequence: vreg = MCRF CR0 MFCR <kill of whatever preg got assigned to vreg> All current uses of this instruction are only interested in one of the 8 CR registers, so redefine MFCR to be a normal unary instruction with a CR input (which is emitted only as a comment). That avoids all problems. 7739628. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104238 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02b64e2f613cf030d370983c8de05e1594017416 Author: Devang Patel <dpatel@apple.com> Date: Thu May 20 16:49:22 2010 +0000 Strip llvm.dbg.lv also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104236 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5e66ec52600b329c39cfbf4c5432345905d5fd2 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 16:41:11 2010 +0000 Rename a variable to avoid shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d7ab8acee5b191c64b16ab7979c79fe1ee015e7 Author: Devang Patel <dpatel@apple.com> Date: Thu May 20 16:36:41 2010 +0000 Split DbgVariable. Eventually, variable info will be communicated through frame index, or DBG_VALUE instruction, or collection of DBG_VALUE instructions. Plus each DbgVariable may not need a label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 014c61f31f5aed3d5d7a185b3c637a654221cd94 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 16:23:28 2010 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ecad423ca2db9ba62ef8b862fe442f8869fe713 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 16:16:00 2010 +0000 Fix assembly parsing and encoding of the pushf and popf family of instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17bfea099cde9414f3e6b6da37898ba7af8e91af Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 15:42:55 2010 +0000 Set neverHasSideEffects on 64-bit pushf and popf, for consistency with 16-bit and 32-bit pushf and popf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104228 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc63b66d1cccc161d0afc1984d64dc482cb0fd3c Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 15:17:54 2010 +0000 Move the code for deleting BaseRegs and LSRUses into helper functions, and fix a bug that valgrind noticed where the code would std::swap an element with itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ed197ff033f270b741864c99cde308f76602d45 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu May 20 14:14:22 2010 +0000 Reduce string trashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104223 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14d36c54723ca1bb6ce057a1c18c01e08c80924a Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 20 06:13:19 2010 +0000 Add a hybrid bottom up scheduler that reduce register usage while avoiding pipeline stall. It's useful for targets like ARM cortex-a8. NEON has a lot of long latency instructions so a strict register pressure reduction scheduler does not work well. Early experiments show this speeds up some NEON loops by over 30%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104216 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6edb12c29e3f0b698c8d0003ee3dedba6e62e66 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu May 20 03:30:09 2010 +0000 Fix typo in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104209 91177308-0d34-0410-b5e6-96231b3b80d8 commit 020e496f8722818009970dac24e2259b3f99fabe Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 01:35:50 2010 +0000 Define the x86 pause instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66d779d36a9cf7dda36435a98ea8a1e47e842573 Author: Dan Gohman <gohman@apple.com> Date: Thu May 20 01:23:41 2010 +0000 Fix the sfence instruction to use MRM_F8 instead of MRM7r, since it doesn't have a register operand. Also, use I instead of PSI, for consistency with mfence and lfence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104203 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28adf5a19ba28462e1b786dda32500a230c15094 Author: Eric Christopher <echristo@apple.com> Date: Thu May 20 00:59:30 2010 +0000 Fix build by actually declaring the variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4003e877dbe134c9f05e08e4f63431300068c5df Author: Eric Christopher <echristo@apple.com> Date: Thu May 20 00:49:07 2010 +0000 Partial code for emitting thread local bss data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ecad9a4ba7589a7f893a8872e9b345b6c535a1c Author: Bill Wendling <isanbard@gmail.com> Date: Thu May 20 00:27:10 2010 +0000 Match "4" or "8" depending upon if it's 32- or 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d758d010dccfa4b953e0ad227b4d104dd58a843 Author: Eric Christopher <echristo@apple.com> Date: Thu May 20 00:07:13 2010 +0000 Once more, with feeling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104190 91177308-0d34-0410-b5e6-96231b3b80d8 commit 176928366fdca3da8b16e9c83e1b367335145320 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 19 23:56:09 2010 +0000 lit: Add another place to look for bash. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104189 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4382c82d692d56c04b0d5cef482c27e26b0e4282 Author: Dan Gohman <gohman@apple.com> Date: Wed May 19 23:43:12 2010 +0000 Teach LSR how to cope better with unrolled loops on targets where the addressing modes don't make this trivially easy. This allows it to avoid falling into the less precise heuristics in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104186 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4bde2176d935142d9b1adf178c8f00eb36ecffa Author: Bob Wilson <bob.wilson@apple.com> Date: Wed May 19 23:42:58 2010 +0000 Optimize away insertelement of an undef value. This shows up in test/Codegen/ARM/reg_sequence.ll but it doesn't affect the generated code because the coalescer cleans it up. Radar 7998853. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b5dd20584fb4f0b88b965cb50a70e5c38f44a57 Author: Chris Lattner <sabre@nondot.org> Date: Wed May 19 23:34:33 2010 +0000 fix rdar://7986634 - match instruction opcodes case insensitively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104183 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9e1688e208d479f3fee03f0adf53fd38539e9d2 Author: Bill Wendling <isanbard@gmail.com> Date: Wed May 19 23:33:26 2010 +0000 Testcase for r104181. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104182 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72119b3c1f0ce55a2f2e6cc1e7ac2449a63e0d89 Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 19 22:57:47 2010 +0000 Enable preserving debug information through post-RA scheduling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a5cf411380559ec41bb774f78b909084e6ee023 Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 19 22:57:06 2010 +0000 Fix the post-RA instruction scheduler to handle instructions referenced by more than one dbg_value instruction. rdar://7759363 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104174 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b0db0e91124907b31797da05f44ef5200ae3a1e Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 19 22:42:23 2010 +0000 Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104173 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1cc0de6a7e2582d984c14834a083042f267f2bf Author: Devang Patel <dpatel@apple.com> Date: Wed May 19 21:58:28 2010 +0000 Revert r104165. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c05f183b1530be2072d2f34f7563f7f1e786993 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 19 21:36:05 2010 +0000 Add support for partial redefs to the fast register allocator. A partial redef now triggers a reload if required. Also don't add <imp-def,dead> operands for physical superregisters. Kill flags are still treated as full register kills, and <imp-use,kill> operands are added for physical superregisters as before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44bfa21f725d0031d82052d6419ffc78ae11dd13 Author: Devang Patel <dpatel@apple.com> Date: Wed May 19 21:26:53 2010 +0000 There is no need to maintain InsnsBeginScopeSet separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104165 91177308-0d34-0410-b5e6-96231b3b80d8 commit e986a419946c673e5fa74418634fd6dd48eff3cc Author: Eric Christopher <echristo@apple.com> Date: Wed May 19 21:19:42 2010 +0000 A more combo tls testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104163 91177308-0d34-0410-b5e6-96231b3b80d8 commit b51138c8d084b944d09bf53fc24a8553033f562b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 19 20:36:22 2010 +0000 Add MachineInstr::readsVirtualRegister() in preparation for proper handling of partial redefines. We are going to treat a partial redefine of a virtual register as a read-modify-write: %reg1024:6 = OP Unless the register is fully clobbered: %reg1024:6 = OP, %reg1024<imp-def> MachineInstr::readsVirtualRegister() knows the difference. The first case is a read, the second isn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104149 91177308-0d34-0410-b5e6-96231b3b80d8 commit f782728e8d09956ac328e191adfc33645310ff8b Author: Eric Christopher <echristo@apple.com> Date: Wed May 19 20:35:15 2010 +0000 Few more simple tls testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104148 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ccbc4bf84f52f9613c65af62503e888728c0553 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 19 20:19:50 2010 +0000 Code refactoring: pull SchedPreference enum from TargetLowering.h to TargetMachine.h and put it in its own namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104147 91177308-0d34-0410-b5e6-96231b3b80d8 commit d76b4e9abcc3e12050555cbe928a075d4a1ee53b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 19 20:08:00 2010 +0000 TwoAddressInstructionPass doesn't really know how to merge live intervals when lowering REG_SEQUENCE instructions. Insert copies for REG_SEQUENCE sources not killed to avoid breaking later passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104146 91177308-0d34-0410-b5e6-96231b3b80d8 commit e71f02d7b1fa3bbf1c22a455e963048b287e5d81 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed May 19 19:24:32 2010 +0000 llvmc: report an error if a child process segfaults. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104145 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f81dca6bf234a3a3366e0f07c7b35cf6c08566d Author: Eric Christopher <echristo@apple.com> Date: Wed May 19 18:59:37 2010 +0000 Attempt to run this test on x86 only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104143 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d8412f1e411f714f8288109ed50ded4e37e7596 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed May 19 18:58:37 2010 +0000 Testcase to go with 104141. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104142 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd0251ae06516dfbe23020b33c3b371e8858ecfc Author: Bob Wilson <bob.wilson@apple.com> Date: Wed May 19 18:48:32 2010 +0000 When expanding a vector_shuffle, the element type may not be legal and may need to be promoted. The BUILD_VECTOR and EXTRACT_VECTOR_ELT nodes generated here already allow the promoted type to be used without further changes, so just do the promotion. This fixes part of pr7167. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a97ba3e18f3f99288d7c32cfe673728ccb28509 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 19 17:20:58 2010 +0000 MC/X86: Add missing entry for TAILJMP_1 to getRelaxedOpcode(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104122 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff7f7842d051bf26f5c3ab6a242b3262c2b0aefb Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 19 15:26:43 2010 +0000 MC/X86: Lower TAILCALLd[64] to JMP_1, to allow relaxation and to avoid same prefix byte problem as in r104062. - As a total hack to keep the TAILCALL markers in the output, which some tests depend on, this invents a new TAILJMP_1 instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104120 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f10a43638a04de1633cea1bf08406983125f387 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 19 08:07:12 2010 +0000 MC/X86: Strip spurious operands from TAILJMPr64 as we do for CALL64r and CALL64pcrel32, for the same reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104116 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8ec53c5cfab48d010fdb62416ae5cffc5c701c3 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 19 07:28:01 2010 +0000 t2LEApcrel and tLEApcrel are re-materializable. This makes it possible to hoist more loads during machine LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104115 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31e47e39db81019481adc08766edceae744a546e Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 19 07:26:50 2010 +0000 Use 'adr' for LEApcrel and LEApcrel. Mark LEApcrel re-materializable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104114 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef845938100ddb4a7b4639cce9992567ec75e458 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Wed May 19 07:00:17 2010 +0000 Update autoconf/automake versions in the documentation to match the versions used in Autogen.sh git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4db82649ca5d4353885221489fc2d35f2632e3ec Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 19 06:20:44 2010 +0000 MC/X86: Lower MOV{8,16,32,64}{rm,mr} to fixed-register forms, as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104112 91177308-0d34-0410-b5e6-96231b3b80d8 commit e39c49a04ede78ba3662bc1e3699cb37a96c5472 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 19 06:07:03 2010 +0000 Mark pattern-less mayLoad / mayStore instructions neverHasSideEffects. These do not have other un-modeled side effects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98effb34c5166adadfe30c5850fdfc227b3736e9 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 19 06:06:09 2010 +0000 Target instruction selection should copy memoperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104110 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c05f889864963c1995aaefa69721f7d9d65de80 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 19 04:31:36 2010 +0000 MC/X86: Strip spurious operands from CALL64r as we do for CALL64pcrel32, to avoid same prefix byte problem as in r104062. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104108 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c57d8198db725d3ce0f3a3901e53d5a61fc151f Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 19 01:52:25 2010 +0000 Mark a few more pattern-less instructions with neverHasSideEffects. This is especially important on instructions like t2LEApcreal which are prime candidate for machine LICM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104102 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45d5afa0972049ff319ce750b339ffdb766fb711 Author: Dan Gohman <gohman@apple.com> Date: Wed May 19 01:21:34 2010 +0000 Add a comment explaining why this code uses Append mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 292cb14a52b4814d0712e854c7b0692d513014f1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 19 01:08:17 2010 +0000 Intrinsics which do a vector compare (results are all zero or all ones) are modeled as icmp / fcmp + sext. This is turned into a vsetcc by dag combine (yes, not a good long term solution). The targets can then isel the vsetcc to the appropriate instruction. The trouble arises when the result of a vector cmp + sext is then and'ed with all ones. Instcombine will turn it into a vector cmp + zext, dag combiner will miss turning it into a vsetcc and hell breaks loose after that. Teach dag combine to turn a vector cpm + zest into a vsetcc + and 1. This fixes rdar://7923010. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104094 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33d7a9151b6e7ad06a7790eaaad5e9f003b401fd Author: Dan Gohman <gohman@apple.com> Date: Wed May 19 00:53:19 2010 +0000 Factor out the code for picking integer arithmetic with immediate opcodes into a helper function. This fixes a few places in the code which were not properly selecting the 8-bit-immediate opcodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104091 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8da188e00e751110ed354dce7220b194e09380e Author: Eric Christopher <echristo@apple.com> Date: Wed May 19 00:22:04 2010 +0000 Add a test to make sure that we're lowering the shift amount correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104090 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5aa319660dd1ae35e0115e902dba913101867c2 Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 23:55:57 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104089 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4db189191ec4ad21973d00be767db4129ea8c103 Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 23:48:08 2010 +0000 Fix the predicate which checks for non-sensical formulae which have constants in registers which partially cancel out their immediate fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104088 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7363b48278d51fe4d3549393641bce27b068de2e Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 23:42:37 2010 +0000 Factor out the code for recomputing an LSRUse's Regs set after some of its formulae have been removed into a helper function, and also teach it how to update the RegUseTracker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104087 91177308-0d34-0410-b5e6-96231b3b80d8 commit e55cfb82886fc569114393b86d9facffc87ac0a8 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue May 18 23:19:42 2010 +0000 Fix a crash when debugging the coalescer. DebugValue instructions are not in the coalescer's instruction map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104086 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7e99ec6650ce159bb18643c3847c9ef2e8b2451 Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 22:51:59 2010 +0000 Factor out code for estimating search space complexity into a helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104082 91177308-0d34-0410-b5e6-96231b3b80d8 commit da41f2ed7518e7bf3d7d9110456ddb1e70d700c5 Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 22:41:32 2010 +0000 Add some more debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104080 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b21c0ca44ca85b5734def3a382c20e0592c15b8 Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 22:39:15 2010 +0000 Factor out the code for deleting a formula from an LSRUse into a helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104079 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9300083ef23e4bc3a9744922debfa3e131616135 Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 22:37:37 2010 +0000 Make some debug output more informative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104078 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1272f49924314a6da05a93649adef92859b3e785 Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 22:35:55 2010 +0000 Print an error message in Formula::print if the HasBaseReg flag is inconsistent with the BaseRegs field. It's not print's job to assert on an invalid condition, but it can make one more obvious. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104077 91177308-0d34-0410-b5e6-96231b3b80d8 commit efb88d626a709b35f3c6eab5477317d6830593eb Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 22:33:00 2010 +0000 Rename RegUseTracker's RegUses member to RegUsesMap to avoid confusion with LSRInstance's RegUses member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104076 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e7e95d6f1badfd671b2bf9ccce12274f8c0f0ca Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 18 22:20:09 2010 +0000 Remember to update VirtRegLastUse when spilling without killing before a call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52336fa3e92bfb5ab7c271a9fad53c7f304542e4 Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 21:54:15 2010 +0000 Teach mode load folding and unfolding code about CMP32ri8 and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104068 91177308-0d34-0410-b5e6-96231b3b80d8 commit c99d8b380e97660c3587f8cc92052fe5877300bf Author: Bill Wendling <isanbard@gmail.com> Date: Tue May 18 21:47:08 2010 +0000 Don't eliminate frame pointers from leaf functions if "--disable-fp-elim" is specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b733269772d8593a2f110133c0e9b2c995fa83e Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 21:42:03 2010 +0000 When converting a test to a cmp to fold a load, use the cmp that has an 8-bit immediate field rather than one with a wider immediate field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104064 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e4825032455195c238a2e3c5c9040511eaf33cc Author: Eric Christopher <echristo@apple.com> Date: Tue May 18 21:40:20 2010 +0000 Quick test to make sure we're emitting the tbss section correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104063 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd8b9dd8a6c4e3c5d80092ba980b29ea5f193d93 Author: Chris Lattner <sabre@nondot.org> Date: Tue May 18 21:40:18 2010 +0000 make mcinstlower remove all but the first operand to CALL64pcrel32. The register use operands (e.g. the first argument is passed in a register) is currently being modeled as a normal register use, instead of correctly being an implicit use. This causes the operand to get propagated onto the mcinst, which was causing the encoder to emit a rex prefix byte, which generates an invalid call. This fixes rdar://7998435 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104062 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85e7978187ea22c0d0578bdefffa260a9c4b0045 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 18 21:31:17 2010 +0000 Sink dag combine's post index load / store code that swap base ptr and index into the target hook. Only the target knows whether the swap is safe. In Thumb2 mode, the offset must be an immediate. rdar://7998649 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104060 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfa6e2232cef660a22f3a118f017c729cec8611e Author: Eric Christopher <echristo@apple.com> Date: Tue May 18 21:26:41 2010 +0000 Implement EmitTBSSSymbol for MachOStreamer. Fixes build failure as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 799f7cc12edd3dda58ebf47b553eb79645f5cf84 Author: mike-m <mikem.llvm@gmail.com> Date: Tue May 18 21:22:12 2010 +0000 Fix enum to address array bounds regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3307aed52df7c71950270a6c160f61a51d623f78 Author: Eric Christopher <echristo@apple.com> Date: Tue May 18 21:16:04 2010 +0000 Make EmitTBSSSymbol take a section argument so that we can find it later. Fix up callers and users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4860af13ecd01c7cbfb60b2846e2a46eb2b8281a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 18 21:10:50 2010 +0000 Properly handle multiple definitions of a virtual register in the same instruction. This can happen on ARM: >> %reg1035:5<def>, %reg1035:6<def> = VLD1q16 %reg1028, 0, pred:14, pred:%reg0 Regs: Q0=%reg1032* R0=%reg1028* R1=%reg1029* R2 R3=%reg1031* Killing last use: %reg1028 Allocating %reg1035 from QPR Assigning %reg1035 to Q1 << %D2<def>, %D3<def> = VLD1q16 %R0<kill>, 0, pred:14, pred:%reg0, %Q1<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d38494632ae7b708f8d2b2f68781079d70de66c Author: Dale Johannesen <dalej@apple.com> Date: Tue May 18 20:47:04 2010 +0000 Test passed on ppc, to my surprise; if it worked there it may work everywhere... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104053 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84ed75467bb8b274ea03baf38dcb51938897c5be Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 18 20:07:47 2010 +0000 Continuously refine the register class of REG_SEQUENCE def with all the source registers and sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104051 91177308-0d34-0410-b5e6-96231b3b80d8 commit c461cb2cfed23791600741671dd4f84d702ba5af Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 18 20:03:28 2010 +0000 Fix PR7162: Use source register classes and sub-indices to determine the correct register class of the definitions of REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104050 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08f4e18381fa1df655fbd37591f9d94263715964 Author: Dale Johannesen <dalej@apple.com> Date: Tue May 18 19:03:51 2010 +0000 Testcase for llvm-gcc checkin 104042. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104043 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa93fd32900b775564904d2e21f06b9679a8d6e8 Author: Kevin Enderby <enderby@apple.com> Date: Tue May 18 18:09:20 2010 +0000 Incorporate Daniel's suggestion and use !isdigit(CurPtr[0]) and not CurPtr[0] == '\n' when testing the character after a "0b" when looking to see if it part of a something like "jmp 0b". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104039 91177308-0d34-0410-b5e6-96231b3b80d8 commit adc6d21673e51acde72ef84b168bc86cad00ed61 Author: Kevin Enderby <enderby@apple.com> Date: Tue May 18 17:51:35 2010 +0000 Fixed the problem with a branch to "0b" that was not parsed by llvm-mc correctly. The Lexer was incorrectly eating the newline casusing it to branch to address 0. Updated the test case to use a "0:" label and a branch to "0b". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104038 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0462365341397d971647364f2e4708b6b5189dda Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 18 17:31:12 2010 +0000 Teach the machine code verifier to use getSubRegisterRegClass(). The old approach was wrong. It had an off-by-one error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78dec53094bfa4ff091c143c2d86a0cff40f21f2 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 18 17:28:24 2010 +0000 MC/Mach-O: Implement support for setting indirect symbol table offset in section header. Also, create symbol data for LHS of assignment, to match 'as' symbol ordering better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104033 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0274e36cfcf0dba4669468d760ec89830449863 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 18 17:28:20 2010 +0000 MC/Mach-O: Remove some FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 444b81206a2baf31bb7a23535662a205cbdbdc91 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 18 17:28:17 2010 +0000 MC/Mach-O: Fail faster/harder when we see .file, which isn't yet supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104031 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc03475bafeece32c66c21807f33a827a55d8a09 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 18 17:22:24 2010 +0000 MC/X86: Implement custom lowering to make sure we match things like X86::ADC32ri $0, %eax to X86::ADC32i32 $0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104030 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c2dbb3462e01b8f13be802d9d190063efb5b68b Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 18 17:22:19 2010 +0000 llc (et al): Add support for --show-encoding and --show-inst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104029 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2f75377c836911a20e5d4a901e5faf89113f3cc Author: Dan Gohman <gohman@apple.com> Date: Tue May 18 15:25:14 2010 +0000 Usage of O_NONBLOCK in bjam is now confirmed as a bug and fixed upstream. Update the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 108fdb6868b94b6bec46b118a0850b35caa5d30c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue May 18 12:15:34 2010 +0000 Simplify MCContext::(Next|Get)Instance - Allocate MCLabels in the context so they don't leak. - Avoid duplicated densemap lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5460fab81c88c089e4471e97263951a4f2785801 Author: Sena Hunt <rideau3@gmail.com> Date: Tue May 18 06:22:50 2010 +0000 Replace FIRST_* and LAST_* macros with a generic STMT_RANGE macro Also rename ABSTRACT to ABSTRACT_STMT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104018 91177308-0d34-0410-b5e6-96231b3b80d8 commit 422871fd54df67bf3e97839e4dbfea4fffd86a03 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 18 00:03:40 2010 +0000 FIX PR7158. SimplifyVBinOp was asserting when it fails to constant fold (op (build_vector), (build_vector)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104004 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfb8682a36e02a94af91b8adb868c7b3ac958b58 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 23:29:23 2010 +0000 ARMBaseRegisterInfo::estimateRSStackSizeLimit() could return prematurely with a too large limit. The function would return immediately when finding an addrmode 3/5 instruction. It needs to keep scanning in case there is an addrmode 6 instruction which drops the limit to 0. A test case is very difficult to produce because it will only fail when the scavenger is used. rdar://problem/7894847 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d3a3b4b9d0440e9ba10d08fae1b621868e6db45 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 17 23:24:12 2010 +0000 Fix PR7175. Insert copies of a REG_SEQUENCE source if it is used by other REG_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52a592ead8c2884c75f648c7df5ca9c1ffef1bf1 Author: Bill Wendling <isanbard@gmail.com> Date: Mon May 17 23:09:50 2010 +0000 - Set the "HasCalls" flag after instruction selection is finished. - Change the logic DisableFramePointerElim() to check for the -disable-non-leaf-fp-elim before -disable-fp-elim. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c25500cb57284472477081b8db426fd4e8091cb Author: Kevin Enderby <enderby@apple.com> Date: Mon May 17 23:08:19 2010 +0000 Added support in MC for Directional Local Labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103989 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68815482e2532d9e267fa854ca829aa814db2c71 Author: Eric Christopher <echristo@apple.com> Date: Mon May 17 22:53:55 2010 +0000 More data/parsing support for tls directives. Add a few more testcases and cleanup comments as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01597539fe6d7b3f0121faaf09653e1a6c8eb23f Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 17 22:09:49 2010 +0000 Fix PR7156. If the sources of a REG_SEQUENCE are all IMPLICIT_DEF's. Replace it with an IMPLICIT_DEF rather than deleting it or else it would be left without a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103984 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc7b4fb96b0cc1c48c4950f1a20c93a745e58ba8 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 17 21:54:50 2010 +0000 vmov of immediates are trivially re-materializable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103982 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd0ebeb979f48ac622246c98810beb9b04b4ed14 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 17 21:54:30 2010 +0000 MC/Mach-O/x86: Optimal nop sequences should only be used for the .text sections, not all sections in the text segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cd4b002c6b2f821b097c54efda46e446fa208b4 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 17 21:54:26 2010 +0000 MC: Add dyn_cast support to MCSection. - Of questionable utility, since in general anything which wants to do this should probably be within a target specific hook, which can rely on the sections being of the appropriate type. However, it can be useful for short term hacks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103980 91177308-0d34-0410-b5e6-96231b3b80d8 commit 950d45c2de35a37b95c2ff0ef34c12c0e9411120 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 17 21:19:59 2010 +0000 MC/Mach-O: Reverse order of SymbolData scanning when emitting instructions. - This fixes a string table mismatch with 'as' when two new symbols are defined in a single instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94eda75cfe501b00c8db97b482712aaa80ee4b0a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 21:02:08 2010 +0000 Pull the UsedInInstr.test() calls into calcSpillCost() and remember aliases. This fixes the miscompilations of MultiSource/Applications/JM/l{en,de}cod. Clang now successfully self hosts in a debug build with the fast register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103975 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7ed8c885a79bd201536506f9fdf28875cdcaf88 Author: Eric Christopher <echristo@apple.com> Date: Mon May 17 21:02:07 2010 +0000 Add some section and constant support for darwin TLS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103974 91177308-0d34-0410-b5e6-96231b3b80d8 commit a81cc0e0e8a0d0e913b7bd2ea4ad0df82f3e0620 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 17 20:57:12 2010 +0000 Careful with reg_sequence coalescing to not to overwrite sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103971 91177308-0d34-0410-b5e6-96231b3b80d8 commit c11a9c4ee2411c3e43349be7220402a146e92fd0 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon May 17 20:31:13 2010 +0000 Fix a regression in 464.h264 for thumb1 and thumb2 nightly tests. Obvious in retrospect but not fun to debug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103969 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9324d568c093cfcdf8918797e5dcc23ee05e601 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 17 20:12:31 2010 +0000 MC/Mach-O: Fix some differences in symbol flag handling. - Don't clear weak reference flag, 'as' was only "trying" to do this, it wasn't actually succeeding. - Clear the "lazy bound" bit when we mark something external. This corresponds roughly to the lazy clearing of the bit that 'as' implements in symbol_table_lookup. - The exact meaning of these flags appears pretty loose, since 'as' isn't very consistent. For now we just try to match 'as', we will clean this up one day hopefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103964 91177308-0d34-0410-b5e6-96231b3b80d8 commit 649513dc53d31d94cc22355770f12d2a5b6b8930 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 20:01:24 2010 +0000 Optimize empty DenseMap iteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103962 91177308-0d34-0410-b5e6-96231b3b80d8 commit e25a1693fd2da6f34ab35bc4ed74dc3e0c4ff5dc Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 20:01:22 2010 +0000 Remove debug option. Add comment on spill order determinism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103961 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf86d91ceb70ebe3f240b4004ed2801e945caae8 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 17 19:51:20 2010 +0000 Turn on -neon-reg-sequence by default. Using NEON load / store multiple instructions will no longer create gobs of vmov of D registers! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103960 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ab3c139f415be029e777fef1ade18455632ade7 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 17 17:46:23 2010 +0000 llvm-mc: Support reassignment of variables in one special case, when the variable has not yet been used in an expression. This allows us to support a few cases that show up in real code (mostly because gcc generates it for Objective-C on Darwin), without giving up a reasonable semantic model for assignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103950 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbdf2cea570101d8e4f525ecd939b85bf7bff173 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 17:18:59 2010 +0000 Avoid allocating the same physreg to multiple virtregs in one instruction. While that approach works wonders for register pressure, it tends to break everything. This should unbreak the arm-linux builder and fix a number of miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f5d5c8d4fa23b89d21ae64f662c15914997f86f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 15:30:37 2010 +0000 Minor optimizations. DenseMap::begin() is surprisingly slow on an empty map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103940 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f714d1f54e1dc1725ea450de0655eefb453cb88 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 15:30:32 2010 +0000 Extract spill cost calculation to a new method, and use definePhysReg() to clear out aliases when allocating. Clean up allocVirtReg(). Use calcSpillCost() to allow more aggressive hinting. Now the hint is always taken unless blocked by a reserved register. This leads to more coalescing, lower register pressure, and less spilling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103939 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0801c2026dae4eb65f2a7e0be52066a4b468527a Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Mon May 17 09:47:55 2010 +0000 Remove unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103936 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bbf8cf3e44ab65028edfd720ec7846fa64ca9b6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 04:50:57 2010 +0000 Only use clairvoyance when defining a register, and then only if it has one use. This makes allocation independent on the ordering of use-def chains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103935 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a1a7039bf85c7948e1a3d4a593981ff0d842758 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 03:26:09 2010 +0000 Eliminate a hash table probe when killing virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 370a33ade3b0e09a168a7f514f07911f56705404 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 03:26:06 2010 +0000 Execute virtreg kills immediately instead of after processing all uses. This is safe to do because the physreg has been marked UsedInInstr and the kill flag will be set on the last operand using the virtreg if there are more then one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f346806f7d0c4b1bf7c5e6841105850586a044c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 02:49:21 2010 +0000 Sprinkle superregister <imp-def> and <imp-kill> operands when dealing with subregister indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103931 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9065262b61237e98f0b8171fce35ec0c940e7154 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 02:49:18 2010 +0000 Now that we don't keep live registers across calls, there is not reason to go through the very long list of call-clobbered registers. We just assume all registers are clobbered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103930 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99b5844e9c8fe5a576089d7c822307bee57d2da8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 02:49:15 2010 +0000 Boldly attempt consistent capitalization. Functional changes unintended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103929 91177308-0d34-0410-b5e6-96231b3b80d8 commit c205960b2b5d630d843c99a400841573f1cce0aa Author: Eric Christopher <echristo@apple.com> Date: Mon May 17 02:13:02 2010 +0000 Assume that we'll handle mangling the symbols earlier and just put the symbol to the file as we have it. Simplifies out tbss handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103928 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6e50e6f4e462e3afa250fe0cea419f9de866a14 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 02:07:32 2010 +0000 Spill and kill all virtual registers across a call. Debug code doesn't use callee saved registers anyway, and the code is simpler this way. Now spillVirtReg always kills, and the isKill parameter is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103927 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4580fb40a255e854f49bd3978d249e9a08e1761b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 02:07:29 2010 +0000 Reduce hashtable probes by using DenseMap::insert() for lookup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103926 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02270849103dc19d3dbc8d79d2b0cbf9beeef172 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 17 02:07:22 2010 +0000 Make MBB a class member instead of passing it around everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103925 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56a3856c6765f5797e8cb48212994269fc0541b7 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 17 01:47:47 2010 +0000 Yes, if the redef is a copy, update the old val# with the copy. But make sure to clear the copy field if the redef is not a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103922 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d973b67aed8c9d6c88a604d969af1a071f54861 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 17 01:11:46 2010 +0000 No reason not to run the NEON domain croassing fix up pass in thumb2 mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103917 91177308-0d34-0410-b5e6-96231b3b80d8 commit c924c8f57c91e812c291acc247c4d30ff670d358 Author: Dale Johannesen <dalej@apple.com> Date: Sun May 16 20:19:40 2010 +0000 Removing as part of previous reversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103915 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bb68bc267f542eaadf64e2c7a3a5be84faa0e00 Author: Dale Johannesen <dalej@apple.com> Date: Sun May 16 20:19:04 2010 +0000 Revert 103911; it broke a test that expects bitconvert <1xi64> -> i64 to work in MMX registers on hosts where -no-sse is the default (not mine). The right thing is to accept this and make i64->f64 conversions go through memory, but I don't have time right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ba6832487fb9720b15928b44774b7892b543e5c Author: Dale Johannesen <dalej@apple.com> Date: Sun May 16 18:22:38 2010 +0000 Make x86-64 64-bit bitconvert work when SSE is not available. (This worked as of about 6 months ago and I didn't track down exactly what broke it; I think this fix is appropriate.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103911 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b2defc71329a581197335665a87e990ce4d4148 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun May 16 09:15:36 2010 +0000 Chris said that the comment char should be escaped. Fix all the occurences of "@" in *.td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103903 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82c5a76f3f6bf096077f60ac4b654dbb99f1cd3c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun May 16 09:08:45 2010 +0000 Add support for thiscall calling convention. Patch by Charles Davis and Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103902 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92b51296ef0b24f408d5238aa17ea54f861896df Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun May 16 08:54:20 2010 +0000 Generalize the ARM DAG combiner of mul with constants to all power-of-two cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103901 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40b813a737c6ac4ec7215e6aad95b8c02ffa83f3 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun May 16 03:27:48 2010 +0000 Model vst lane instructions with REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103898 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21f67a9b21cd42ac1a0e119d458e6b57dc4cd9c0 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun May 16 03:13:23 2010 +0000 Avoid renaming loadable modules at install time. Now the gold plugin is named LLVMgold.so both in both the build and install directories. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103897 91177308-0d34-0410-b5e6-96231b3b80d8 commit 972745355370bc990b1445342ea4e1b72ca680a7 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun May 16 03:05:14 2010 +0000 Use $ORIGIN in the rpath of libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103896 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62d39f3235288054c6355efba0696c6f5e0f5528 Author: Dale Johannesen <dalej@apple.com> Date: Sat May 15 18:51:12 2010 +0000 Fix uint64->{float, double} conversion to do rounding correctly in 32-bit. The implementation in LegalizeIntegerTypes to handle this as sint64->float + appropriate power of 2 is subject to double rounding, considered incorrect by numerics people. Use this implementation only when it is safe. This leads to using library calls in some cases that produced inline code before, but it's correct now. (EVTToAPFloatSemantics belongs somewhere else, any suggestions?) Add a correctly rounding (though not particularly fast) conversion that uses X87 80-bit computations for x86-32. 7885399, 5901940. This shows up in gcc.c-torture/execute/ieee/rbug.c in the gcc testsuite on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103883 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5208f769842d475c9d334cb243eeb82104db6e5 Author: Dale Johannesen <dalej@apple.com> Date: Sat May 15 18:38:02 2010 +0000 Improve assertion messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103882 91177308-0d34-0410-b5e6-96231b3b80d8 commit 024b4e6f3c0b7f8db7284637393ccdc55ebe2a93 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 15 18:16:59 2010 +0000 Some cheap DAG combine goodness for multiplication with a particular constant. This can be extended later on to handle more "complex" constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103881 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6d273a7e0fc92ea29cff88ef53f4953b5cff5b3 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 15 17:19:20 2010 +0000 "trap" pseudo-op turned out to be apple-local. Temporary emit it as raw bytes until it will be added to binutils as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103878 91177308-0d34-0410-b5e6-96231b3b80d8 commit eeefa9ba0000f0d9016eedd863f170652d9f3216 Author: Chris Lattner <sabre@nondot.org> Date: Sat May 15 17:11:55 2010 +0000 improve portability to systems that don't have round, patch by Evzen Muller! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103877 91177308-0d34-0410-b5e6-96231b3b80d8 commit b57756a6048c5ca57b3410f82f6586192643cadf Author: Chris Lattner <sabre@nondot.org> Date: Sat May 15 17:10:24 2010 +0000 improve portability to systems that don't have powf/modf (e.g. solaris 9) patch by Evzen Muller! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103876 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea59ede23fcd15e20ab647d4d9db2ce8020c6151 Author: Chandler Carruth <chandlerc@gmail.com> Date: Sat May 15 10:23:23 2010 +0000 Fix an GCC warning that seems to have actually caught a bug (!!!) in a condition's grouping. Every other use of Allocatable.test(Hint) groups it the same way as it is indented, so move the parentheses to agree with that grouping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50d2725115b27d2289ec9079069ed1d329b033bf Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 15 07:53:37 2010 +0000 Model 128-bit vld lane with REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103868 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ec8754ab4cddc20ba404695cd48dc80634ea874 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat May 15 06:09:08 2010 +0000 Calculate liveness on the fly for local registers. When working top-down in a basic block, substituting physregs for virtregs, the use-def chains are kept up to date. That means we can recognize a virtreg kill by the use-def chain becoming empty. This makes the fast allocator independent of incoming kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103866 91177308-0d34-0410-b5e6-96231b3b80d8 commit 668d3f46927bc70a49533a35babed714223d3feb Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat May 15 04:26:25 2010 +0000 Teach the always inliner to release its inline cost estimates, like the basic inliner did in r103653. Why does the always inliner even bother with cost estimates anyways? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e047c891488f9e3f08f7a7ef9ed00a731158dd4 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat May 15 03:41:58 2010 +0000 Clean up, no functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2452730585ac43116546b3265830a19d1c941289 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat May 15 02:52:58 2010 +0000 Add reg_nodbg_iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103856 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62e89ddeb30457a2a22faeb16d893fbfe8603296 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 15 02:20:21 2010 +0000 v4i64 and v8i64 are only synthesizable when NEON is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103855 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf042f548e15472420204f4cee4002b83c55e6ef Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 15 02:18:07 2010 +0000 Allow TargetLowering::getRegClassFor() to be called on illegal types. Also allow target to override it in order to map register classes to illegal but synthesizable types. e.g. v4i64, v8i64 for ARM / NEON. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103854 91177308-0d34-0410-b5e6-96231b3b80d8 commit caaee724fb364323edd5b747c9f5269c9c60cd35 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 15 01:36:29 2010 +0000 Model 64-bit lane vld with REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103851 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc74f4f7dbaba2a2f25b6b7e223cba48bdf348b4 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 15 01:35:44 2010 +0000 A partial re-def instruction may be a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92b52c62a57eff0277f64f2f593825ee8a4dc05c Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 14 23:21:14 2010 +0000 Teach two-address pass to do some coalescing while eliminating REG_SEQUENCE instructions. e.g. %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1027<def> = EXTRACT_SUBREG %reg1026, 6 %reg1028<def> = EXTRACT_SUBREG %reg1026<kill>, 5 ... %reg1029<def> = REG_SEQUENCE %reg1028<kill>, 5, %reg1027<kill>, 6, %reg1028, 7, %reg1027, 8, %reg1028, 9, %reg1027, 10, %reg1030<kill>, 11, %reg1032<kill>, 12 After REG_SEQUENCE is eliminated, we are left with: %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1029:6<def> = EXTRACT_SUBREG %reg1026, 6 %reg1029:5<def> = EXTRACT_SUBREG %reg1026<kill>, 5 The regular coalescer will not be able to coalesce reg1026 and reg1029 because it doesn't know how to combine sub-register indices 5 and 6. Now 2-address pass will consult the target whether sub-registers 5 and 6 of reg1026 can be combined to into a larger sub-register (or combined to be reg1026 itself as is the case here). If it is possible, it will be able to replace references of reg1026 with reg1029 + the larger sub-register index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36b609521448ffab7eb7cc2efa33ca84b9845374 Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 23:01:02 2010 +0000 Add some comments about undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103834 91177308-0d34-0410-b5e6-96231b3b80d8 commit babc92d1e2f62088fc28c3b4a451b86f54f14dd5 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 14 22:54:52 2010 +0000 Model VST*_UPD and VST*oddUPD pair with REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103833 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d0075e925583e359f6af3f129e12c8160e0e217 Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 22:53:18 2010 +0000 Fast ISel trivially coalesces away no-op casts, so check for this when setting kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103832 91177308-0d34-0410-b5e6-96231b3b80d8 commit 956a8e16a64a6121bf09319caf3965f404b9c4d3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 22:40:43 2010 +0000 Don't bother spilling before a return git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103831 91177308-0d34-0410-b5e6-96231b3b80d8 commit eec5b3cecb0e943db02a9a5011fe3695785c0ec9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 22:40:40 2010 +0000 RegAllocLocal can count copies too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 588a7bd00a8d8dc7fbb59310c0e663c8b2d56508 Author: Bill Wendling <isanbard@gmail.com> Date: Fri May 14 22:17:42 2010 +0000 SystemZ really does mean "has calls" and not just "adjusts stack." Go ahead and replace the check with the appropriate predicate. Modify the testcase to reflect the correct code. (It should be saving callee-saved registers on the stack allocated by the calling fuction.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103829 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80d48db62c35a0c261279e5cce212ee51e4365f4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 22:02:56 2010 +0000 Track allocatable instead of reserved regs, and never take an unallocatable hint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103828 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bf21e65e0c12e81e22f304c7e795e8c77387ccf Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 22:01:14 2010 +0000 Don't set kill flags for instructions which the scheduler has cloned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103827 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fa346cc86c76c6d607579670a7134f67a82eabc Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 22:00:27 2010 +0000 BR is a barrier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 201996d5322423c33f00eb84529d396fdba98443 Author: Bill Wendling <isanbard@gmail.com> Date: Fri May 14 21:58:35 2010 +0000 Several tail call tests apparently rely upon this being "adjusts stack" instead of "has calls". That's probably wrong, but it needs further investigation. Revert to the original behavior until this is settled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103824 91177308-0d34-0410-b5e6-96231b3b80d8 commit c43c14e1224ec9d537569250866da535e9473e29 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 21:55:52 2010 +0000 Avoid scanning the long tail of physreg operands on calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103823 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c91dc7b3b9461975009e9d6b5dee7eac2c23ade Author: Devang Patel <dpatel@apple.com> Date: Fri May 14 21:55:50 2010 +0000 Do not forget to mark prcessed arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95f765bec629d68842c00d4a9587993915ff382c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 21:55:50 2010 +0000 Count coalesced copies git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103821 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b76ee6c1a6993873ddf26beb3796d6f901bbd5f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 21:55:44 2010 +0000 Allow virtreg redefines when verifying for RegAllocFast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103820 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82e664867613f0eca85e475a2bfd33ddaa3ae244 Author: Bill Wendling <isanbard@gmail.com> Date: Fri May 14 21:38:44 2010 +0000 This should happen if there are no calls, not if it just doesn't adjust the stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103813 91177308-0d34-0410-b5e6-96231b3b80d8 commit a779e33b664299b3a491621122133883c8ccc8f9 Author: Bill Wendling <isanbard@gmail.com> Date: Fri May 14 21:28:24 2010 +0000 Revert r103804. The comment is correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103808 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd6834efe8a96e9af2b3fd4d431e9897a8d392c2 Author: Jim Grosbach <grosbach@apple.com> Date: Fri May 14 21:20:46 2010 +0000 Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f1f5e5beb5b6112b70fa9adca6f62d2c8437f58 Author: Jim Grosbach <grosbach@apple.com> Date: Fri May 14 21:19:48 2010 +0000 80 column and trailing whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103806 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe9c9ad7b2845803d383dca5ec0a25a1e2ac2a8e Author: Jim Grosbach <grosbach@apple.com> Date: Fri May 14 21:18:04 2010 +0000 add cmd line option to leave dbgvalues in during post-RA sceduling. Useful while debugging what's mishandled about them in the post-RA pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103805 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdfdf1cbb0101b70fd3354ea6ee0ef4d9e8e8b44 Author: Bill Wendling <isanbard@gmail.com> Date: Fri May 14 21:17:29 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103804 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69393d86aadfdf30a985211276b919e9e3f54fa2 Author: Bill Wendling <isanbard@gmail.com> Date: Fri May 14 21:14:32 2010 +0000 Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe what the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103802 91177308-0d34-0410-b5e6-96231b3b80d8 commit 937cab19d11ec35b16f0caea94a35c532e824205 Author: Devang Patel <dpatel@apple.com> Date: Fri May 14 21:04:45 2010 +0000 Test case for r103800. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103801 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c0a290e357084d93c46fbab8151686db1f7e6bf Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 21:01:44 2010 +0000 Lowering of atomic instructions can result in operands being used more than once. If ISel had put a kill flag on one of them, it's not valid to transfer the kill flag to each new instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103799 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87415e5bcf5804dd7eb8a1fbea77c8e0d3643c3d Author: Devang Patel <dpatel@apple.com> Date: Fri May 14 21:01:35 2010 +0000 Add support to preserve type info for the variables that are removed by the optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103798 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb2e1d08bcbfefd61303e2f7736ca477e4a344c4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 20:28:32 2010 +0000 When verifying two-address instructions, check the following: - Kill is implicit when use and def registers are identical. - Only virtual registers can differ. Add a -verify-fast-regalloc to run the verifier before the fast allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103797 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1b198771611983a3eacd1b6ad8e2d7002d4695e Author: Kevin Enderby <enderby@apple.com> Date: Fri May 14 19:16:02 2010 +0000 Fix so "int3" is correctly accepted, added "into" and fixed "int" with an argument, like "int $4", to not get an Assertion error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103791 91177308-0d34-0410-b5e6-96231b3b80d8 commit d81699da08071ebbafae3c6c6b33a147486f400f Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 14 18:54:59 2010 +0000 Model VLD*_UPD and VLD*odd_UPD pair with REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43c26bfec2f39ce5456ba5f7a98d075f6fed5538 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 14 18:53:40 2010 +0000 MC/Mach-O/x86_64: Darwin's special "signed_N" relocation types should only be used to replace a normal relocation, not a reference to a GOT entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103789 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bcc3d6f9cb749a5600db9b9cf166ccdf95d4a61 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 18:03:25 2010 +0000 Simplify the handling of physreg defs and uses in RegAllocFast. This adds extra security against using clobbered physregs, and it adds kill markers to physreg uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b80c46e8d12f2147fefc97c1a66141e51e2f789 Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 16:46:02 2010 +0000 Set isTerminator on TRAP instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103778 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01c4ace0abddbfbe9981384a113df410a7efe770 Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 16:42:16 2010 +0000 Don't use isBarrier for the PowerPC sync instruction. isBarrier is for control barriers, not memory ordering barriers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103777 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80fd60c7b44949441c8f269e1f4dc1f2ded39d58 Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 16:34:55 2010 +0000 Add mayLoad and mayStore flags to instructions which missed them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103776 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ba9e5cb1cdab17129d086d91a6701e2f672ee4a Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 15:36:54 2010 +0000 Use regular PassManager instead of FunctionPassManager in opt, since it isn't doing lazy streaming. This also fixes a missing doFinalization call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5baaf1ec19838fb9bd7454418527158a33749b64 Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 15:35:10 2010 +0000 Use PassManagerBase, to give clients the option of using either FunctionPassManager or regular PassManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103773 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5e61cce1381d6751d9350822677fc231364ad3c Author: Dan Gohman <gohman@apple.com> Date: Fri May 14 15:29:31 2010 +0000 Add an isNodeHidden to the graph traits, to support definition of subgraph views. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103772 91177308-0d34-0410-b5e6-96231b3b80d8 commit c34b4d6adbac88c3d823efe52397c1eb4aba3854 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 14 07:47:51 2010 +0000 XFAIL the test I added with vg_leak, apparently it is the first and only llc -filetype=obj test, and -filetype=obj leaks a few objects. Added a FIXME, we need to sort out the ownership model for the various MC objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103769 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26c5aab741ac731f310f853a49e368306ea811bc Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 14 07:37:40 2010 +0000 Get rid of the bit twiddling to read / set OpActions and ValueTypeActions. The small saving in memory isn't worth the increase in runtime and code complexity in my opinion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69c572314e2e082e258b4d364dde9e1f4e495f7f Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 14 04:31:50 2010 +0000 Inline Asm: Ensure buffer is newline terminated to match how the text is printed. - This is a hack, but I can't decide the best place to handle this. Chris? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89ddcde3682989a412a5145b2b78a3310d24eedc Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 04:30:51 2010 +0000 Enable opportunistic coalescing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103764 91177308-0d34-0410-b5e6-96231b3b80d8 commit adc2e282f084987c944ebc9ebeb0eed03a3b2f77 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 14 02:13:41 2010 +0000 Added a QQQQ register file to model 4-consecutive Q registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103760 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a749e4b0fd6f82109d4b461d70b5be07edda414 Author: Eric Christopher <echristo@apple.com> Date: Fri May 14 01:50:28 2010 +0000 Add AsmParser support for darwin tbss directive. Nothing uses this yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34fd6dbca4732dcaf43b757bceab0fb96bcb1652 Author: Eric Christopher <echristo@apple.com> Date: Fri May 14 01:38:54 2010 +0000 Fix a couple of typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103756 91177308-0d34-0410-b5e6-96231b3b80d8 commit 880d13ca99d4c1649abb103e0b11c1f20e54b743 Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri May 14 01:02:48 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103755 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1f986bb158d1e75ff416e4bee1773eb5f5e0a9b Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 14 00:51:14 2010 +0000 MC: Switch to completely lazy layout. - The eliminates the last major algorithmic problem with MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103754 91177308-0d34-0410-b5e6-96231b3b80d8 commit fabc024d66a75b8d856754fc3cc47e6d751cbec5 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 14 00:37:21 2010 +0000 MC: Extend MCAsmLayout to explicitly track which fragments have been layed out, and enforce several invariants to LayoutFragment to ensure we only do layout in a sensible order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103753 91177308-0d34-0410-b5e6-96231b3b80d8 commit e15654655162b957801f4493f3e05a8e9881605a Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 14 00:37:17 2010 +0000 MC: Implicitly assign section addresses when the previous fragment is layed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63d2a8d57508dacce486f853293eea410b84f8e9 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 14 00:37:14 2010 +0000 MC: Switch MCFragment to storing the layout order index, not its index in the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89093315a9aad2fa59f9439484a4546d48c8bc05 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri May 14 00:37:11 2010 +0000 MC: Change LayoutSection() to only do the section initializiation. Also, elimminate MCAsmLayout::set*, which are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103750 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71b25a0db4371a2e6c0c59e72636ff146b1f1fd3 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 14 00:21:45 2010 +0000 Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103749 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44878f4b455515d4636050419bd8c12eb46d6f46 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 00:02:23 2010 +0000 Trust kill flags from isel and later passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9096b3cbe17f125b94b00d5e30860718935b21d6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri May 14 00:02:20 2010 +0000 Fix an embarrassing runtime regression for RegAllocFast. This loop is quadratic in the capacity for a DenseMap: while(!map.empty()) map.erase(map.begin()); Instead we now do a normal begin() - end() iteration followed by map.clear(). That also has the nice sideeffect of shrinking the map capacity on demand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d9a7c230fbac7224efbe7a8e3a8d1ced1e8cd92 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 23:55:47 2010 +0000 Adding a v8i64 512-bit vector type. This will be used to model ARM NEON intrinsics which translate into a pair of vld / vst instructions that can load / store 8 consecutive 64-bit (D) registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103746 91177308-0d34-0410-b5e6-96231b3b80d8 commit e10a35d59cc97431a1f5c64eb399c634cb2d51fc Author: Dale Johannesen <dalej@apple.com> Date: Thu May 13 23:50:42 2010 +0000 Implement a correct ui64->f32 conversion. The old one was subject to double rounding in extreme cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ce41871562c06938ba369feaccc63bae0ccb3ef Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 23:25:21 2010 +0000 Eliminate use of magic numbers to access OpActions. It also has the effect of allowing more than 31 scalar value types. MAX_ALLOWED_VALUETYPE had already been updated to 64 a while back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 604c19d84cf84512e999cc22dbe9e79ccd336016 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 23:01:26 2010 +0000 Fix up LoadExtActions, TruncStoreActions, and IndexedModeActions representation and setter and getter's so they will continue to work if the number of scalar ValueType's exceeds 31. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 389dcddec60a88b4ab538fccee6e699a46441d5b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu May 13 20:43:17 2010 +0000 Clean up RegAllocFast debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103739 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce99e456467a303da0f92509790770f1a1583d15 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 20:40:12 2010 +0000 MC: Move Layout{Fragment,Section} into MCAsmLayout, and add LayoutFile(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16ef804b40147dec81e7c0764c282bd156586b89 Author: Dan Gohman <gohman@apple.com> Date: Thu May 13 20:34:42 2010 +0000 Teach MachineLICM and MachineSink how to clear kill flags conservatively when they move instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103737 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfa8fb908458c39c1c8dd2203a72f01a8fac22a6 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 20:14:58 2010 +0000 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103733 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac17a100de94bb0c67772594e4f58014481f9d54 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 20:02:08 2010 +0000 Add comment about the pseudo registers QQ, each of which is a pair of Q registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103731 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1de11f4f9211e4b292bc47a24c36acfc42f13cc Author: Bob Wilson <bob.wilson@apple.com> Date: Thu May 13 19:58:24 2010 +0000 Fix pr7110: For non-Darwin targets UnspilledCS1GPRs may include high registers. Do not use those for Thumb1 functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5106ccb43e95c581f8a18afccaf80ae305490f1a Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu May 13 19:34:06 2010 +0000 CMake: fixes 64 bit Visual Studio IDE build. Fixes bug 4936. Patch by Dimitry Andric! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ec14f36b2ccf852a6f51bce790b7af18e69869f Author: Dan Gohman <gohman@apple.com> Date: Thu May 13 19:24:00 2010 +0000 Add a utility function for conservatively clearing kill flags, and make use of it in MachineCSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103726 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3afc721d6e52c55352d9d6e3e4c0efd77197e192 Author: Dan Gohman <gohman@apple.com> Date: Thu May 13 19:19:32 2010 +0000 An Instruction has a trivial kill only if its use is in the same basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103725 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6ed4357ee8212a090cdf6d306addf641031efd5 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 18:35:06 2010 +0000 MC: Factor out MCAssembler::ComputeFragmentSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103724 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95f38802ae248d855b43ba0d4b48a2c8ec1b9b91 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 18:35:02 2010 +0000 Fix const ilist_node::get{Prev,Next}Node() to actually compile. Picky, picky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ec08168b56007d4e5ff98ca7e8fbf7ef5b9ca30 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu May 13 17:58:15 2010 +0000 Fix complete badness in bugpoint's IsARMArchitecture() function. The revision history for this function is interesting, with multiple layers of wrongness being introduced one at a time. This fixes a weird issue where bugpoint -run-llc would suddenly exit 13 half way through isolating a miscompilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103721 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5953cb5e743989296bbbc913bdd0359bcdf39d5b Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu May 13 17:41:06 2010 +0000 Actually run the test. Thanks Daniel Dunbar! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103720 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6412f75db2984a183b1f77a06ed24093c22eb6c0 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 15:17:26 2010 +0000 MC: Add section layout order indices to MCSectionData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103715 91177308-0d34-0410-b5e6-96231b3b80d8 commit 693f800286130a1e394782a0d25a4f56a233eb79 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu May 13 13:39:31 2010 +0000 Add an also-emit-llvm option to the gold plugin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103714 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2522772876718ee7d6854252e362dd9c5876d9fa Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 08:43:37 2010 +0000 MC: Move ordinal calculation, to make sure fragments synthesized for layout get assigned ordinals properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103711 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11a86ac65a9761f7e8e3be144cf3f6972f55dde7 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 08:43:34 2010 +0000 MC: Create dummy fragments to avoid ever having empty sections, which simplifies layout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103710 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6570fd41f871eebc22158e4d55a9d15d289d904a Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 08:43:31 2010 +0000 MC: Add MCAsmLayout::FragmentReplaced() helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103709 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3e612038c87611e01bd67e588e2176a7932ebe4 Author: Chandler Carruth <chandlerc@gmail.com> Date: Thu May 13 07:43:47 2010 +0000 Update tablegen to generate shorts instead of chars for subgroup arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58a1968434245b3821bd7e195fd8f25b42748702 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu May 13 07:41:57 2010 +0000 Properly set thread-local flag on globals during cpp emission git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103702 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2023b7b2f91373524a925232ff4ab66b40c96478 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu May 13 06:45:13 2010 +0000 Remove heinous tabs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103700 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5446ab0ff885810a8eb7847c4c0fa9117037b1aa Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu May 13 06:00:14 2010 +0000 Add testcase for r103653. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103699 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef385a756c3b60370b4633d55f7bbbc0e41b189e Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu May 13 05:48:45 2010 +0000 Replace the core comparison login in merge functions. We can now merge vector<>::push_back() in: int foo(vector<int> &a, vector<unsigned> &b) { a.push_back(10); b.push_back(11); } to two calls to the same push_back function, or fold away the two copies of push_back() in: struct T { int; }; struct S { char; }; vector<T*> t; vector<S*> s; void f(T *x) { t.push_back(x); } void g(S *x) { s.push_back(x); } but leave f() and g() separate, since they refer to two different global variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103698 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e72343b8ece90f6f484e6afa8aa9208668f8e31 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 03:50:50 2010 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103697 91177308-0d34-0410-b5e6-96231b3b80d8 commit db0d323fb2e8203a8e5d8c019ac4ad245509cb60 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 03:19:50 2010 +0000 MC: Eliminate MCSectionData::{,Address,File}Size, which can now be computed by utility functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103695 91177308-0d34-0410-b5e6-96231b3b80d8 commit d034b366e858f0c2af9397f3c9e058aeb99bb4bd Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 03:19:36 2010 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43586a0d3772e832e40daacceba231212564438d Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 02:34:14 2010 +0000 MC: Switch to using explicit MCAlignFragments with OnlyAlignAddress bit instead of manually doing padding/editing layout in LayoutSection(). - This probably seems like six-of-one and half-dozen of another, but there is a method to my madness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d5d1f2625d3af34746eba1ce90822bf51a03c38 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 01:12:06 2010 +0000 Bring back VLD1q and VST1q and use them for reloading / spilling Q registers. This allows folding loads and stores into VMOVQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103692 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9ab204c2292b073c757ad6e369490c614032894 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 01:10:28 2010 +0000 MC/Mach-O: Add another zerofill test to improve coverage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8cc37f38080c938f05d90484fa3c51deb9f897b3 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 01:10:26 2010 +0000 MC: Add MCAlignFragment::OnlyAlignAddress bit. This is a bit of magic that says the align fragment shouldn't contribute to the logical section size, it is will be used for cleaning up the code to handle section alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103690 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4cb2421387f42b7283022d5146711e223e9c9d6 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 13 01:10:22 2010 +0000 MC: Add MCSectionData::AddressSize, which is the size of the address space consumed by the section. This can differ from both the section logical size, and the section size on disk (although the current code handles this without making an explicit distinction). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103689 91177308-0d34-0410-b5e6-96231b3b80d8 commit f457a251fb03d760d5de5a97c094284783a20ca4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu May 13 00:19:43 2010 +0000 Take allocation hints from copy instructions to/from physregs. This causes way more identity copies to be generated, ripe for coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103686 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2e3e00bac67c7979d6c5270c774fb4b3d6c370c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu May 13 00:19:39 2010 +0000 More asserts around physreg uses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103685 91177308-0d34-0410-b5e6-96231b3b80d8 commit b57f952e73bd14a27b40b22ea154bd9209bd5b15 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 00:17:02 2010 +0000 Expand VMOVQQ into a pair of VMOVQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1392e998a0209b571980c9a92c8d2c321d8ff48e Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 00:16:46 2010 +0000 Mark some pattern-less instructions as neverHasSideEffects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ebff2da3485b9f9310b712bd3baa777a8aafc91 Author: Chris Lattner <sabre@nondot.org> Date: Thu May 13 00:10:34 2010 +0000 fix rdar://7965971 and a fixme: use ParseIdentifier in ParseDirectiveDarwinZerofill instead of hard coding the check for identifier. This allows quoted symbol names to be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103682 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f6dffc702f6bde3a8cea4e254f751e697376448 Author: Chris Lattner <sabre@nondot.org> Date: Thu May 13 00:02:47 2010 +0000 reapply r103668 with a fix. Never make "minor syntax changes" after testing before committing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103681 91177308-0d34-0410-b5e6-96231b3b80d8 commit 086ecf5011d9d60e8ea6d1701d64d861c6357ffb Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 13 00:00:35 2010 +0000 If REG_SEQUENCE source is livein, copy it first. Also, update livevariables information when a copy is introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103680 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bb2e747cad6e2345b42000fc1e7b0a566f83caa Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 12 23:59:42 2010 +0000 Do not attempt copy coalescing if the source and dest sub-register indices do not match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103679 91177308-0d34-0410-b5e6-96231b3b80d8 commit bda31dd402f13d13242cf2c6addfe08f328d456a Author: Chris Lattner <sabre@nondot.org> Date: Wed May 12 23:40:59 2010 +0000 revert r103668 for now, it is apparently breaking things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103677 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64cc58a2d1f3191bb7b9fc0d92ee65c6754a1bfa Author: Chris Lattner <sabre@nondot.org> Date: Wed May 12 23:13:36 2010 +0000 moffset forms of moves are x86-32 only, make the parser lower them to the correct x86-64 instructions since we don't have a clean way to handle this in td files yet. rdar://7947184 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103668 91177308-0d34-0410-b5e6-96231b3b80d8 commit 104d4d9482aac0501c285a528ddc846fddba151a Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 12 23:13:12 2010 +0000 Fix some potential issues in the pseudo instruction expansion phase: copy implicit operands and memoperands. Also, expand instructions even if their defs are "dead" since they may have implicit kill operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103667 91177308-0d34-0410-b5e6-96231b3b80d8 commit 251b78b73186f3f92e578f383c3312724cc76d31 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 22:56:23 2010 +0000 MC: Move MCAlignFragment::EmitNops value out of the constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103665 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb8ceee8e89e26b265ab09067bc6719a9bc3b29e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 22:51:38 2010 +0000 MC: Eliminate MCZeroFillFragment, it is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103664 91177308-0d34-0410-b5e6-96231b3b80d8 commit d48661ebf869f88df850e7803da7bca0351d1304 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 22:51:35 2010 +0000 MC: Explicitly check that only virtual fragments appear in virtual sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103663 91177308-0d34-0410-b5e6-96231b3b80d8 commit f709206193f8e489ac2ff07c150220397f4f345d Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 22:51:32 2010 +0000 MC: Switch MCFillFragment to storing total fill size instead of a count. This allows using ValueSize==0 to represent a virtual fill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4025a21d3784505539e22a785000e058d0aecc02 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 22:51:27 2010 +0000 MC: Drop support for alignment in ZeroFill fragment, we can just use MCAlignFragments for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103661 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b22cd053f3a87f2da3ea94f59dc764953f9e85f Author: Chris Lattner <sabre@nondot.org> Date: Wed May 12 22:48:24 2010 +0000 fix the encoding of the obscure "moffset" forms of moves, i386 part first. rdar://7947184 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103660 91177308-0d34-0410-b5e6-96231b3b80d8 commit af2719d457f427fd4127905411ddffeffb272a1c Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed May 12 21:48:15 2010 +0000 Clear CachedFunctionInfo upon Pass::releaseMemory. Because ValueMap will abort on RAUW of functions, this is a correctness issue instead of a mere memory usage problem. No testcase until the new MergeFunctions can land. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90e206bffd3d2c489dcd834cee7642b078be03ff Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 21:47:58 2010 +0000 lit: Fix a sh lexing bug which caused annotate-token.m to fail when run with the internal shell parser; we weren't lexing the quotes in a command like:: clang -DFOO='hello' correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103652 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e1cccee10a79be46c2c97e06ae33cb99fa8581e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 21:47:55 2010 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103651 91177308-0d34-0410-b5e6-96231b3b80d8 commit e18dff1fd0bda76e05b3985c12c5bb1ed98159f6 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 21:35:25 2010 +0000 MC: Factor out MCAssembler::LayoutFragment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58112b9c6c57d84574e14be91c96be5cc388ff96 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 21:35:22 2010 +0000 MC: Tweak section layout to not relying on accumulating address value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103648 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50af202e1ebf956ab6e966e9d9727558b4566023 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 21:35:19 2010 +0000 ADT: Add ilist_node::get{Prev,Next}Node, which return the adjacent node or null. - This provides a convenient alternative to using something llvm::prior or manual iterator access, for example:: if (T *Prev = foo->getPrevNode()) ... instead of:: iterator it(foo); if (it != begin()) { --it; ... } - Chris, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103647 91177308-0d34-0410-b5e6-96231b3b80d8 commit 077e0c2118c57edafec97b9c4932c62dbc52a110 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 12 20:20:22 2010 +0000 Remove a dead fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103642 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdf4ff01290ace9a2681daabfe5d3623ac7167c3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 12 18:46:03 2010 +0000 Make sure to add kill flags to the last use of a virtreg when it is redefined. The X86 floating point stack pass and others depend on good kill flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1922dd214c0f40f80dbd674c4cacce0893856ba6 Author: Devang Patel <dpatel@apple.com> Date: Wed May 12 18:31:04 2010 +0000 Test case for r103633. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 351638b4aa8b235bee9178e5be9f442d164382cd Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 17:56:47 2010 +0000 MC: Simplify LayoutSection to just take the index of the section to layout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75c09c5ccf3c39569546244f84f66be44367f5be Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 17:56:44 2010 +0000 lit: Fix OneCommandPerFileTest format when tests are specified directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103626 91177308-0d34-0410-b5e6-96231b3b80d8 commit af480e8b964f2dce1b546e13535f0008edc16e7e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 17:56:42 2010 +0000 lit: Add support for 'lit ... @foo', which reads a list of tests to run from foo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103625 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61077c0c2d4d52002b92c0b1fea75e55446e3b2e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 15:42:59 2010 +0000 MC: Track section layout order explicitly, and use to simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97b1e6e0f98b2b545ebe05e3722b823faf8ebcc9 Author: Nathan Jeffords <blunted2night@gmail.com> Date: Wed May 12 07:36:03 2010 +0000 stylistic change to MCSectionCOFF::PrintSwitchToSection COMDAT handling Made a stylistic changed to the code/comments related to the unsupported COMDAT selection type IMAGE_COMDAT_SELECT_LARGEST based on from Anton Korobeynikov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103590 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d7f77489d1ff8033b54d4c83c5a232caa83e43a Author: Duncan Sands <baldrick@free.fr> Date: Wed May 12 07:11:33 2010 +0000 Remove unused variable. Tweak a comment while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103586 91177308-0d34-0410-b5e6-96231b3b80d8 commit da7e18a6744b535d98952e979c92bb94e0c29ce1 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed May 12 05:16:34 2010 +0000 Add support for movi32 of global values to the new (MC) asm printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103576 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d70fc8e48f81e0598ea8a14634dd08438475693 Author: Dale Johannesen <dalej@apple.com> Date: Wed May 12 05:04:20 2010 +0000 Testcase for llvm 103572 (7898991). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103574 91177308-0d34-0410-b5e6-96231b3b80d8 commit d47e1563911d40a0bb46392eda390180289368fc Author: Nathan Jeffords <blunted2night@gmail.com> Date: Wed May 12 04:26:09 2010 +0000 updated support for the COFF .linkonce Now, the .linkonce directive is emitted as part of MCSectionCOFF::PrintSwitchToSection instead of AsmPrinter::EmitLinkage since it is an attribute of the section the symbol was placed into not the symbol itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103568 91177308-0d34-0410-b5e6-96231b3b80d8 commit de7c1ddcc6e8ad3dee6a6585535bbc312ff456e8 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 12 01:42:50 2010 +0000 vst instructions are modeled as this: v1024 = REG_SEQUENCE ... v1025 = EXTRACT_SUBREG v1024, 5 v1026 = EXTRACR_SUBREG v1024, 6 = VSTxx <addr>, v1025, v1026 The REG_SEQUENCE ensures the sources that feed into the VST instruction are getting the right register allocation so they form a large super- register. The extract_subreg will be coalesced away all would just work: v1024 = REG_SEQUENCE ... = VSTxx <addr>, v1024:5, v1024:6 The problem is if the coalescer isn't run, the extract_subreg instructions would stick around and there is no assurance v1025 and v1026 will get the right registers. As a short term workaround, teach the NEON pre-allocation pass to transfer the sub-register indices over. An alternative would be do it 2addr pass when reg_sequence's are eliminated. But that *seems* wrong and require updating liveness information. Another alternative is to do this in the scheduler when the instructions are created. But that would mean somehow the scheduler this has to be done for correctness reason. That's yucky as well. So for now, we are leaving this in the target specific pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103540 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce798bb4577689517fb79d7d0d3da465d24b21cc Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 12 01:29:36 2010 +0000 Teach local regalloc about virtual registers with sub-indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bdcc23f0648f31f85993d6cbf527abdf95418c5 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 12 01:27:49 2010 +0000 Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103538 91177308-0d34-0410-b5e6-96231b3b80d8 commit d45c3ca5763e133979ae71bc128a3e9297c11b03 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 00:54:20 2010 +0000 MC/X86: Extend suffix matching hack to match 'q' suffix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ae994b08bcd6d82f79279fc8d2f8f737882342f Author: Nathan Jeffords <blunted2night@gmail.com> Date: Wed May 12 00:52:54 2010 +0000 Added a trivial function to modify the flags field of MCSymbolData class. The function takes the value and a mask, and clears the mask bits before applying the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103534 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef53bccabc4db2604430f9caf02044e22a60d187 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 12 00:38:17 2010 +0000 MC/Mach-O/x86_64: Add a new hook for checking whether a particular section can be diced into atoms, and adjust getAtom() to take this into account. - This fixes relocations to symbols in fixed size literal sections, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c32cf7660f97f26f254786ea950bc575b4afa9f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 12 00:11:24 2010 +0000 Enable a bunch more -regalloc=fast tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103531 91177308-0d34-0410-b5e6-96231b3b80d8 commit c30c61844a876485ce2e3bad12f533e1abe7aa30 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 12 00:11:19 2010 +0000 Avoid scoping issues, fix buildbots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22a7d61aa6ab59ca9c6c4d396546a0aaa57b7dc0 Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 23:54:07 2010 +0000 Add initial kill flag support to FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d692e70557b225173e8d8f5e9bdc4f10302f2a0 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 11 23:53:13 2010 +0000 Make Clang happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 558e10120d472406139fb9d94496fe96a0d97b96 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 11 23:53:11 2010 +0000 MC/Mach-O/x86_64: Fix PCrel adjustment for x86_64, which was using the fixup offset instead of the fixup address as intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103527 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7937628214cfbde37e099904f4f1fa53894ed314 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 11 23:53:07 2010 +0000 MC/Mach-O: As Kevin pointed out, 'Address' is really an offset -- rename to clarify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103526 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fc9d349c4e1b03d1abf4154fc9fa42b7e09636a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 11 23:53:05 2010 +0000 MC/Mach-O: Fix a crash on invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b7a71b898c19168a77edf6b311a4c346b43977e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue May 11 23:25:16 2010 +0000 Fix PR6951 by fixing Module leaks in bugpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103523 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3fd7ba58a56f044e25da30cccefa79030c021ef Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 11 23:24:47 2010 +0000 Store the Dirty bit in the LiveReg structure instead of a bit vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103522 91177308-0d34-0410-b5e6-96231b3b80d8 commit c13801faabd913c8ac1a0e1438ea4f529a182e93 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 11 23:24:45 2010 +0000 Keep track of the last place a live virtreg was used. This allows us to add accurate kill markers, something the scavenger likes. Add some more tests from ARM that needed this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103521 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8ed38d2364b1b0905aed95693917634de7776a8 Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 21:59:14 2010 +0000 Don't set kill flags on uses of CopyFromReg nodes. InstrEmitter doesn't create separate virtual registers for CopyFromReg values, so uses of them don't necessarily kill the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103519 91177308-0d34-0410-b5e6-96231b3b80d8 commit baf1f804a4e25d14e531263f63093e4902c8035b Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 11 21:07:36 2010 +0000 Avoid breaking vstd when reg_sequence is not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06ef10a297e2be6b18ae86ff83b91ed1e754acf2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 11 20:51:07 2010 +0000 One more -regalloc=fast test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103509 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6f73b0633972b196c006437a5994ca2371dffcd Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 11 20:51:04 2010 +0000 Silence warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 834f6d4fa79d4c80d307ec7ba6d8c7672b4b837b Author: Bill Wendling <isanbard@gmail.com> Date: Tue May 11 20:46:04 2010 +0000 Simplify this logic of creating a default Features object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5462c852e8b8556b1109088a25c98700d88aff45 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 11 20:30:28 2010 +0000 Simplify the tracking of used physregs to a bulk bitor followed by a transitive closure after allocating all blocks. Add a few more test cases for -regalloc=fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103500 91177308-0d34-0410-b5e6-96231b3b80d8 commit b331d4e7b34d1d22cc8867508d56346f30a0f107 Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 20:30:00 2010 +0000 Revert r103493, materializing functions in the regular PassManager. It works in simple cases, but it isn't a general solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103499 91177308-0d34-0410-b5e6-96231b3b80d8 commit cee09d45e74d54ba94278c838df92e8c725d8b7a Author: Duncan Sands <baldrick@free.fr> Date: Tue May 11 20:16:09 2010 +0000 I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is the opposite, for future use by dragonegg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9685b667ed84fdf607f9afbff07bbb9a0d217301 Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 19:58:43 2010 +0000 Teach the regular pass manager how to materialize functions as needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103493 91177308-0d34-0410-b5e6-96231b3b80d8 commit b42b7c39fb5231a90aa9267d31cf0c96fca5b7e4 Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 19:57:55 2010 +0000 Remove the "WantsWholeFile" concept, as it's no longer needed. CBE and the others use the regular addPassesToEmitFile hook now, and llc no longer needs a bunch of redundant code to handle the whole-file case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 038c648ad8d396029a34743f3d6e2eab96df85c8 Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 19:11:43 2010 +0000 Trim #includes and forward declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103489 91177308-0d34-0410-b5e6-96231b3b80d8 commit d35d5df207ff64bc36f8d33ee81fcc6087b87596 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue May 11 18:54:45 2010 +0000 Mostly rewrite RegAllocFast. Sorry for the big change. The path leading up to this patch had some TableGen changes that I didn't want to commit before I knew they were useful. They weren't, and this version does not need them. The fast register allocator now does no liveness calculations. Instead it relies on kill flags provided by isel. (Currently those kill flags are also ignored due to isel bugs). The allocation algorithm is supposed to work with any subset of valid kill flags. More kill flags simply means fewer spills inserted. Registers are allocated from a working set that contains no aliases. That means most allocations can be done directly without expensive alias checks. When the working set runs out of registers we do the full alias check to find new free registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103488 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44ed5d0d30df012eed0d7512636981adcf05b22a Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 18:03:41 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cb22619069fe23d1ca98195ccd8974fde687016 Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 17:31:57 2010 +0000 Implement a bunch more TargetSelectionDAGInfo infrastructure. Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and EmitTargetCodeForMemmove out of TargetLowering and into SelectionDAGInfo to exercise this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3189e8955cb5c19dc07efb733b3a4429282e2606 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 11 17:22:50 2010 +0000 MC/Mach-O x86_64: Switch to using fragment atom symbol. - This eliminates getAtomForAddress() (which was a linear search) and simplifies getAtom(). - This also fixes some correctness problems where local labels at the same address as non-local labels could be assigned to the wrong atom. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47a3dcc7a2094405395820de09005c5e496fa05d Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 11 17:22:45 2010 +0000 Test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52bbfc1cf0d43d659920bc197a5a2b51438b487a Author: Tanya Lattner <tonic@nondot.org> Date: Tue May 11 16:47:42 2010 +0000 Test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103478 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e88a88683d222db5dd0f2dff5181dd7322bbafc Author: Tanya Lattner <tonic@nondot.org> Date: Tue May 11 16:46:45 2010 +0000 Test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85fddb911815006abf9473b2d261d28667998f69 Author: Dan Gohman <gohman@apple.com> Date: Tue May 11 16:21:03 2010 +0000 Remove the TargetLowering::getSubtarget() virtual function, which was unused. TargetMachine::getSubtarget() is used instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103474 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1b3c0e6c222696db3cb4faf864cdadd14863abf Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Tue May 11 11:00:02 2010 +0000 Make SPU backend not assert on jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103466 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9933d0f69f67574c483866458c2b5d63b50948e Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 11 07:26:32 2010 +0000 Select @llvm.trap to the special B with 1111 condition (i.e. trap) instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103459 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0913bd9db984b27f393c4c89d6c838db57c9a079 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Tue May 11 06:17:44 2010 +0000 Fixes for Microsoft Visual Studio 2010, from Steven Watanabe! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103457 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc862e263f587d04d9df3e0d6d8b675e221b15de Author: Bill Wendling <isanbard@gmail.com> Date: Tue May 11 01:33:39 2010 +0000 Don't create a StringRef with a NULL value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79de2e1422657b1436ce3fbf7e54f4b01991ae2f Author: Sean Callanan <scallanan@apple.com> Date: Tue May 11 01:27:08 2010 +0000 Extended the edis "IsBranch" property to call instructions as well. Added support for checking this to the llvm-mc tester as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103454 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9e593e16248f6435cd665ad658a7f0d6942d227 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 11 01:19:40 2010 +0000 Model some vst3 and vst4 with reg_sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f76d011f65a657f173de08f9d4e8d1c82682bd7 Author: Bill Wendling <isanbard@gmail.com> Date: Tue May 11 00:30:02 2010 +0000 The getDefaultSubtargetFeatures method of SubtargetFeature did actually return a string of features for that target. However LTO was using that string to pass into the "create target machine" stuff. That stuff needed the feature string to be in a particular form. In particular, it needed the CPU specified first and then the attributes. If there isn't a CPU specified, it required it to be blank -- e.g., ",+altivec". Yuck. Modify the getDefaultSubtargetFeatures method to be a non-static member function. For all attributes for a specific subtarget, it will add them in like normal. It will also take a CPU string so that it can satisfy this horrible syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103451 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24b3b82b6f061323c1643b815debc4a9ddb1dee6 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 11 00:20:03 2010 +0000 It's not safe eliminate copies where src and dst have different sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103450 91177308-0d34-0410-b5e6-96231b3b80d8 commit be3117b42fcc538dc31b990e392102d53af71738 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 11 00:04:31 2010 +0000 Ensure REG_SEQUENCE source operands are unique. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7100f2e76742c2187b2b1f1339e98208f56bd90b Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 10 23:15:20 2010 +0000 MC/Mach-O: Fix another mismatch with .weak_definition, we shouldn't use a scattered relocation entry with a .weak_definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103443 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4ac1225b1776e05493c59a540d2c6a39da5f9d3 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 10 23:15:13 2010 +0000 MC/Mach-O: Factor out doesSymbolRequireExternRelocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103442 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66dea43150c73cf0f6fb64c2ebaf4b2e2138c595 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 10 23:08:19 2010 +0000 Indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103441 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1307c6d36613366069b2408f8add7f09de49daa Author: Devang Patel <dpatel@apple.com> Date: Mon May 10 22:49:55 2010 +0000 Enable multiple Compile Units in one module. This means now 'llvm-ld a.bc b.bc' will preserve debug info appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103439 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9374d4442c123776ef50e33d26f91f5123c0507f Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 10 22:45:09 2010 +0000 MC/Mach-O: Explicitly track atoms, as represented by their defining symbol, for each fragment (not yet used). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13a8951b5f29aa96851f0fa2d220db5267fe4b69 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 10 21:26:24 2010 +0000 Model some vld3 instructions with REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103437 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70337eb51f167861d2c270a1a021e9cd476b8330 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 10 21:25:30 2010 +0000 It's not safe to propagate implicit_def that defines part of a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103436 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18757793387949cbdfe31543a54617757c82677b Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 10 21:24:55 2010 +0000 Clear RegSequences vector after eliminating REG_SEQUENCE instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50530519a65114a7ee6e0c507405764d263d3e26 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 10 21:23:48 2010 +0000 this really is needed. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23e0da9ff807a946755892d067e22de3060c8dc2 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 10 21:01:47 2010 +0000 just remove this, it isn't needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03f6ce012d715aa58ce7d070bcd9a074812c0065 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 10 20:59:18 2010 +0000 simplify more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103431 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfa3dfcac8b9764eeec12c48cae5fa2b48f2a4fa Author: Chris Lattner <sabre@nondot.org> Date: Mon May 10 20:58:42 2010 +0000 Simplify by using startswith instead of substr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103430 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f317209f3f8bed7e0e7e3bd722b2330475d2903 Author: Chris Lattner <sabre@nondot.org> Date: Mon May 10 20:53:17 2010 +0000 fix PR7105 by enumerating MDNodes on all @llvm.foo function calls, not just recognized intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103428 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50e68935ec32080c693292c05dc27cf0bd28287e Author: Chris Lattner <sabre@nondot.org> Date: Mon May 10 20:51:06 2010 +0000 fix a pretty obvious typo. We test things before committing them, right? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103427 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ef93fc3009ecdda2127114f030f4feb2c9e8e73 Author: David Greene <greened@obbligato.org> Date: Mon May 10 20:24:27 2010 +0000 Fix PR6875: This includes a patch by Roman Divacky to fix the initial crash. Move the actual addition of passes from *PassManager::add to *PassManager::addImpl. That way, when adding printer passes we won't recurse infinitely. Finally, check to make sure that we are actually adding a FunctionPass to a FunctionPassManager before doing a print before or after it. Immutable passes are strange in this way because they aren't FunctionPasses yet they can be and are added to the FunctionPassManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103425 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2aa7a6d8f1dfde9f649efc2aa4fa69b27e319b0 Author: Dan Gohman <gohman@apple.com> Date: Mon May 10 20:14:02 2010 +0000 Add an explicit keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103424 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef6e979d60a85ed51477d76a411eb576081d692a Author: Daniel Dunbar <daniel@zuster.org> Date: Mon May 10 20:11:56 2010 +0000 Add new configure option, --disable-timestamps, intended to turn off anything which would mess up binary/object comparisons. Currently: - Disables 'Built on ...' in 'foo --version'. - Disables timestamps from being embedded into .dir files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103423 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f307c1c3966b8bc43b0276e9a409a2a14bef0eb Author: Dan Gohman <gohman@apple.com> Date: Mon May 10 20:07:44 2010 +0000 Fix whitespace in debug output to be consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103422 91177308-0d34-0410-b5e6-96231b3b80d8 commit a90ae855fbc618e0e61aba7e767e07b0171a20de Author: Dan Gohman <gohman@apple.com> Date: Mon May 10 19:47:21 2010 +0000 Delete an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103420 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ca9bbc2b35d94d7adea682af93328b9168233fa Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 10 19:03:57 2010 +0000 Be careful with operand promotion. For a binary operation, the source operands may be the same. PR7018. rdar://7939869. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103419 91177308-0d34-0410-b5e6-96231b3b80d8 commit b595f1c398b82f8ed80abdbacfd5cbb336749f35 Author: Devang Patel <dpatel@apple.com> Date: Mon May 10 17:49:40 2010 +0000 Test case for 103414. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103415 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed7cd49a9739a2f82cf86a20bb0852dca2fcecf3 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 10 17:34:18 2010 +0000 Model vld2 / vst2 with reg_sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51db7189dd4274867a286b3b7776df200137f627 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon May 10 17:33:49 2010 +0000 Re-defined valno is always valno even for partial re-def's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b91df4cc8d577e669f181ab77f163e7a7a273c6 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon May 10 17:14:26 2010 +0000 Fix PR7096. When a block containing multiple defs is tail duplicated, the SSAUpdater for the value from the first def may see uses of undefined values, because the later defs will not have been updated yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103407 91177308-0d34-0410-b5e6-96231b3b80d8 commit 260f611c541e49ae10da8e78f2e60cbce3d008dd Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon May 10 08:13:49 2010 +0000 Fix encoding of 'sf' and 'sfh' instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103399 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffbb896b7fbea99d399f53bbcbeb77599503043d Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Mon May 10 07:38:37 2010 +0000 Add command line option --gcc to bugpoint. Remove sending duplicate of the --gcc-tool-args parameters to gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103397 91177308-0d34-0410-b5e6-96231b3b80d8 commit b95e2421dd0b5506a3297f261ffd167309b18a69 Author: Duncan Sands <baldrick@free.fr> Date: Mon May 10 04:54:28 2010 +0000 Add an assertion to catch attempts to access off the end of the array. Based on a patch by Javier Martinez. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103391 91177308-0d34-0410-b5e6-96231b3b80d8 commit c20a2cd49e9d5101caa670221838d08e128817d9 Author: Chris Lattner <sabre@nondot.org> Date: Sun May 9 17:34:13 2010 +0000 remove a dead file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103383 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59865518b181e8686bbe3f9f4a6649e926b3a39b Author: Nathan Jeffords <blunted2night@gmail.com> Date: Sun May 9 08:40:06 2010 +0000 updated handling dllexport in X86AsmPrinter changed dllexport code to use EmitBytes instead of EmitRawText, and changed the export option to use /EXPORT: instead of -export: on the windows platform git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103377 91177308-0d34-0410-b5e6-96231b3b80d8 commit e349f81c69a439b8f317df853a4b6d78ffa9b08c Author: Nathan Jeffords <blunted2night@gmail.com> Date: Sun May 9 05:52:28 2010 +0000 made COFF target dllexport logic apply to all subtargets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103373 91177308-0d34-0410-b5e6-96231b3b80d8 commit d511505df7655a974a6b5cd78b1d59d31cb67b21 Author: Nathan Jeffords <blunted2night@gmail.com> Date: Sun May 9 05:49:00 2010 +0000 test commit, added a comment to MCSectionCOFF::PrintSwitchToSection function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103372 91177308-0d34-0410-b5e6-96231b3b80d8 commit c629a8c44b8ec7798f0f8111ccef95acdb96d410 Author: Chris Lattner <sabre@nondot.org> Date: Sat May 8 22:15:59 2010 +0000 make simplifycfg insert an llvm.trap before the 'unreachable' it introduces when it detects undefined behavior. llvm.trap generally codegens into some thing really small (e.g. a 2 byte ud2 instruction on x86) and debugging this sort of thing is "nontrivial". For example, we now compile: void foo() { *(int*)0 = 42; } into: _foo: pushl %ebp movl %esp, %ebp ud2 Some may even claim that this is a security hole, though that seems dubious to me. This addresses rdar://7958343 - Optimizing away null dereference potentially allows arbitrary code execution git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103356 91177308-0d34-0410-b5e6-96231b3b80d8 commit 092afb60a2055258ee242dd439a82e34cd487843 Author: Chris Lattner <sabre@nondot.org> Date: Sat May 8 21:50:26 2010 +0000 Teach instcombine to transform a bitcast/(zext|trunc)/bitcast sequence with a vector input and output into a shuffle vector. This sort of sequence happens when the input code stores with one type and reloads with another type and then SROA promotes to i96 integers, which make everyone sad. This fixes rdar://7896024 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64f042db2b6b7552964c35f64477fca62e3ba6f3 Author: Chris Lattner <sabre@nondot.org> Date: Sat May 8 20:01:44 2010 +0000 Fix PR7052, patch by Jakub Staszak! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103347 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93e6eec2dd158b18c50add1f7f3b62572b1eae45 Author: Chris Lattner <sabre@nondot.org> Date: Sat May 8 19:54:22 2010 +0000 break coff symbol definition stuff out into proper MCStreamer callbacks, patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103346 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fe43bd6217d5819b51aae79646e2d6ae47e526d Author: Bill Wendling <isanbard@gmail.com> Date: Sat May 8 04:47:54 2010 +0000 Readd testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103335 91177308-0d34-0410-b5e6-96231b3b80d8 commit 677897e9e9a1e31485fb24fb5d0ff8ad45728eb0 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat May 8 02:10:36 2010 +0000 Run interrupt routines as part of report_fatal_error, since we are failing ungracefully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103334 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfe92bd58d79a2076c482599cc04b29bed23271a Author: Daniel Dunbar <daniel@zuster.org> Date: Sat May 8 02:10:34 2010 +0000 Add llvm::sys::RunInterruptHandlers(), which runs the registered SIGINT cleanup stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103333 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c11c476d0857bcd7fd687a6ec5bf0d957740d67 Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 23:36:59 2010 +0000 When pruning candidate formulae out of an LSRUse, update the LSRUse's Regs set after all pruning is done, rather than trying to do it on the fly, which can produce an incomplete result. This fixes a case where heuristic pruning was stripping all formulae from a use, which led the solver to enter an infinite loop. Also, add a few asserts to diagnose this kind of situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103328 91177308-0d34-0410-b5e6-96231b3b80d8 commit c802c7fc1cc6e48040d611dac18bbbd71bbe9da1 Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 23:33:41 2010 +0000 Instead of just verifying compile unit, verify entire type, variable, namespace etc.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103327 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fb888ad41cd75a3ea88b161d7d0f272b60dbca4 Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 23:19:07 2010 +0000 Remove DIGlobal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103325 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3fcb9139be65d0180231cfbf018f7de0d149b75 Author: Bill Wendling <isanbard@gmail.com> Date: Fri May 7 23:09:17 2010 +0000 Remove. Don't XFAIL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37dcb515dfafca90579c6168b395f2adee998e3f Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 23:04:32 2010 +0000 Add DINameSpace::Verify(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103318 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7a301853d2861d24b2a21b8e4fe34715263f85f Author: Bill Wendling <isanbard@gmail.com> Date: Fri May 7 22:45:36 2010 +0000 Temorarily revert r101984. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103314 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbf49b90b9e50466620b9d9b2988dd9bfd087477 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Fri May 7 22:28:25 2010 +0000 Clang is dying on this with an ambiguous conversion sequence. We're working on it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103312 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48170b0f5d0d026c1d469dbc0c1d50bc5ab1dbbd Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 22:19:08 2010 +0000 SDDbgValues are apparently not being legalized. Fix a symptom of the problem, and not the real problem itself, by dropping debug info for i128 values. rdar://7958162. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5194388aac7c898a5f19519c9f01f329c47ea356 Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 22:15:24 2010 +0000 Minimally fix this code to not abort on mdnodes with integer data wider than 64 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103309 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe37c1aef03dccab1efbef3536b9d227d4773561 Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 22:04:20 2010 +0000 Verify variable directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103305 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7e879b912873e106b3075de8b08e23a26af19de Author: Chris Lattner <sabre@nondot.org> Date: Fri May 7 21:49:09 2010 +0000 add COFF support for COMDAT sections, patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103304 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1334595c49125ae6ce9adc0bb96f540d5c7fb039 Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 21:45:47 2010 +0000 Verify entire type descriptor not just tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51a3491de9e23d6055c7fde7b0c527a9074500e8 Author: Kevin Enderby <enderby@apple.com> Date: Fri May 7 21:44:23 2010 +0000 Fix i386 relocations to Weak Definitions. The relocation entries should be external and the item to be relocated should not have the address of the symbol added in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103302 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a12dc6c1d24cf3357472617a575d99c82e8ae35 Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 21:42:24 2010 +0000 Verify compile unit also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 587eb6ad38194bff4657d93969f5dfad274fcdf0 Author: Dale Johannesen <dalej@apple.com> Date: Fri May 7 21:35:53 2010 +0000 Fix PR 7087, and probably other things, by extending getConstantFP to accept the two supported long double target types. This was not the original intent, but there are other places that assume this works and it's easy enough to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103299 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f9f7532e750555486a63ed9f859bff55b826a42 Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 20:54:48 2010 +0000 Wrap const MDNode * inside DIDescriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 552242c39a29c3933565286dd253ebfe1d04963d Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 20:34:00 2010 +0000 Update test to use valid debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103287 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2f92e277657291300fbf76a5d279b4a30b1fb51 Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 18:36:34 2010 +0000 remove DIDescriptor::getNode() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103278 91177308-0d34-0410-b5e6-96231b3b80d8 commit d62deef3017116745861a006fb13fa1868360a02 Author: Jim Grosbach <grosbach@apple.com> Date: Fri May 7 18:34:55 2010 +0000 Clean up the conditional for handling of sign_extend_inreg based on whether the extract instructions are available. rdar://7956878 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103277 91177308-0d34-0410-b5e6-96231b3b80d8 commit 493ef6154ee45a18b8556bd08477f9dddb27501b Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 18:19:32 2010 +0000 Use overloaded operators instead of DIDescriptor::getNode() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103276 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3ba2c7e656309de4edf91e480cf20ea76692139 Author: Devang Patel <dpatel@apple.com> Date: Fri May 7 18:11:54 2010 +0000 Avoid DIDescriptor::getNode(). Use overloaded operators instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103272 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d3eeee9a547a4bd3ccf691b1587f22f70112a87 Author: Kalle Raiskila <kalle.raiskila@nokia.com> Date: Fri May 7 18:06:28 2010 +0000 Testing svn access with a note added to documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103271 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0f049043690d4ad42cfc8aec6607ba1d71eb07e Author: Ted Kremenek <kremenek@apple.com> Date: Fri May 7 17:29:48 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4199dce27ad2a62ccdc579b2c17fdf47ae23bcc1 Author: Chris Lattner <sabre@nondot.org> Date: Fri May 7 17:17:41 2010 +0000 switch MCSectionCOFF from a syntactic to semantic representation, patch by Peter Housel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103267 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fa8dccfade140fdff87d15cd694d3fda4fe0373 Author: Ted Kremenek <kremenek@apple.com> Date: Fri May 7 17:13:20 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103266 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2af4a5f71ee9ff999fd9348c16534b614dad5df Author: Duncan Sands <baldrick@free.fr> Date: Fri May 7 17:03:48 2010 +0000 Correct some bogus target triples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103265 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0ee9b5444c2fa45c60608b1ac4c64a6cc3467d7 Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 16:39:27 2010 +0000 Add some words to this output to indicate what the numbers mean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 748c4c1f438c0e216236ede46acb2483eb4fea7a Author: Chris Lattner <sabre@nondot.org> Date: Fri May 7 16:27:04 2010 +0000 don't pass -f to llc, it doesn't have it anymore. Patch by Kevin Fan (PR7090) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103263 91177308-0d34-0410-b5e6-96231b3b80d8 commit 202cace8c06aee371a6c65b9a6b66bb21a956a01 Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 16:22:32 2010 +0000 Add a simple module-level debug info printer. It just sets up a DebugInfoFinder and iterates over all the contents calling print. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103262 91177308-0d34-0410-b5e6-96231b3b80d8 commit ece6efa8fe9d825b34252b60131d674ec57380df Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 16:17:22 2010 +0000 Fix the new print functions to call print instead of dump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103261 91177308-0d34-0410-b5e6-96231b3b80d8 commit 813b87783c00a28e7e7a0ff503589105224a3e7c Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 15:40:13 2010 +0000 Add an LLVM IR version of code sinking. This uses the same simple algorithm as MachineSink, but it isn't constrained by MachineInstr-level details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d043203a9786f798a23897c8eaa69c1a312a76f Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 15:36:10 2010 +0000 Const-ify some stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 763d40d9bb122f3b3e17cf685735716ee3e7ec50 Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 15:30:29 2010 +0000 Convert the DebugInfo classes dump() methods into print(raw_ostream &) methods, and add dump functions implemented in terms of the print. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103254 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9b0d3d04d83befe7d309f53491d1017f137b40f Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Fri May 7 09:33:18 2010 +0000 Document graphviz passes for the (post) dominator tree. Add documentation for: -dot-dom -dot-dom-only -dot-postdom -dot-postdom-only -view-dom -view-dom-only -view-postdom -view-postdom-only git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bee0f1a254e6e51106a5eaf584c49b86420606f Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 7 02:04:02 2010 +0000 Use VLD2q32 / VST2q32 to reload / spill QQ (pair of Q) registers when stack slot is sufficiently aligned. Use VLDMD / VSTMD otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3add52a95cd1a957b808928c5a1a53cd963fe6c6 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 7 01:54:08 2010 +0000 Use VSTMD / VLDMD for spills and reloads of Q registers instead of VSTMQ / VLDQ. The later are aliases which ought to be eliminated but we can't because they are used for storing and loading v2f64 values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11dfc80109787f347275a720abae49cc6401436f Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri May 7 01:45:38 2010 +0000 Revert r103133 and add testcase from PR7066. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f4bc5e5e47e1f54a14703053272bd0ed90058e6 Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 01:28:10 2010 +0000 When rematerializing, use the debug location of the original instruction, rather than a location near where the new instruction is being inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95dc99c2c7de046e843dd3c98495f5902d40f99b Author: Dale Johannesen <dalej@apple.com> Date: Fri May 7 01:11:31 2010 +0000 Adjust tests affected by llvm-gcc 103229. All results here match gcc-4.2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103230 91177308-0d34-0410-b5e6-96231b3b80d8 commit a028648e0935237d06d3fb1a2a7a5ccb10d95e1a Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 01:10:20 2010 +0000 Transfer debug location information from PHI nodes to resulting lowered copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0299427d947265154cdd1c25bb8c3e4d69f2a7dd Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 01:09:21 2010 +0000 Print debug information for SDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ad546938df99ff5def150b2a5804d83f58761c1 Author: Dan Gohman <gohman@apple.com> Date: Fri May 7 01:08:53 2010 +0000 Disable the new unknown-location code for now. It causes a major increase in the debug line info section, and it's causing regressions in a gdb testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103226 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1828f9f04b287168876866eaa9bf9b1d34a43bd4 Author: mike-m <mikem.llvm@gmail.com> Date: Fri May 7 00:28:04 2010 +0000 Revert r103213. It broke several sections of live website. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103219 91177308-0d34-0410-b5e6-96231b3b80d8 commit c29910339860ed2da15c10a8946f79b963b3a120 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri May 7 00:24:52 2010 +0000 Remove VLD1q and VST1q for reloading and spilling Q registers. Just use VLD1q64 / VST1q64 and reference sub-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103218 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4ea5fec0fe82285628b68fb0fe4435c6269b2c4 Author: mike-m <mikem.llvm@gmail.com> Date: Fri May 7 00:13:23 2010 +0000 Disable man->postscript and man->pdf doc generation unless explicitly configured via --enable-doxygen. It seems some systems have broken pdfroff so automatic use of it is not safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103217 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0340079c6bed67a68e36829952c990fdca0e7b37 Author: mike-m <mikem.llvm@gmail.com> Date: Thu May 6 23:48:37 2010 +0000 Cleanup unneeded dirs after docs overhaul. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3135ba512fac30abfdac237ea25a5cf19f0bd1ab Author: mike-m <mikem.llvm@gmail.com> Date: Thu May 6 23:45:43 2010 +0000 Overhauled llvm/clang docs builds. Closes PR6613. NOTE: 2nd part changeset for cfe trunk to follow. *** PRE-PATCH ISSUES ADDRESSED - clang api docs fail build from objdir - clang/llvm api docs collide in install PREFIX/ - clang/llvm main docs collide in install - clang/llvm main docs have full of hard coded destination assumptions and make use of absolute root in static html files; namely CommandGuide tools hard codes a website destination for cross references and some html cross references assume website root paths *** IMPROVEMENTS - bumped Doxygen from 1.4.x -> 1.6.3 - splits llvm/clang docs into 'main' and 'api' (doxygen) build trees - provide consistent, reliable doc builds for both main+api docs - support buid vs. install vs. website intentions - support objdir builds - document targets with 'make help' - correct clean and uninstall operations - use recursive dir delete only where absolutely necessary - added call function fn.RMRF which safeguards against botched 'rm -rf'; if any target (or any variable is evaluated) which attempts to remove any dirs which match a hard-coded 'safelist', a verbose error will be printed and make will error-stop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f3c5a0b20753b224249161cab8c64118230e290 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 6 22:39:14 2010 +0000 MC/X86: X86AbsMemAsmOperand is subclass of X86NoSegMemAsmOperand. - This fixes "leal 0, %eax", for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103205 91177308-0d34-0410-b5e6-96231b3b80d8 commit b46dda09c4b87e3c3c029dc68e6bcbefe304c4f6 Author: Chris Lattner <sabre@nondot.org> Date: Thu May 6 21:48:14 2010 +0000 fix rdar://7947167 - llvm-mc doesn't match movsq git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 049db93d0440cab8d4da59f94616d20369b97b81 Author: Sean Callanan <scallanan@apple.com> Date: Thu May 6 20:59:00 2010 +0000 Eliminated the classification of control registers into %ecr_ and %rcr_, leaving just %cr_ which is what people expect. Updated the disassembler to support this unified register set. Added a testcase to verify that the registers continue to be decoded correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 178ab868962ee4092666918be123bad4201b3a18 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 6 20:34:01 2010 +0000 MC/X86: Error out if we see a non-constant FK_Data_1 or FK_Data_2 fixup, since we don't currently support relaxing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 776d4265139d381529556249657b5985abaa3c79 Author: Dan Gohman <gohman@apple.com> Date: Thu May 6 20:33:48 2010 +0000 Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that it doesn't have to guess. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103194 91177308-0d34-0410-b5e6-96231b3b80d8 commit b789591b23d4e4d636c23af0e61933378b08ac0d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 6 19:06:44 2010 +0000 Add argument TargetRegisterInfo to loadRegFromStackSlot and storeRegToStackSlot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103193 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2327270f3c09e0c746096de5faa2e76a7201aa9f Author: Dan Gohman <gohman@apple.com> Date: Thu May 6 17:49:17 2010 +0000 Add a testcase for r103135, explicitly representing unknown locations in debug line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103189 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3d4945b16b5e60dff5b6096c44834136fb1c032 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 6 16:33:12 2010 +0000 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04953388bc10cf443857d683da40a32c155aa7f7 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu May 6 16:24:11 2010 +0000 Fix handling of unreachable blocks in the SSAUpdater. The previous code only handled cases where a block had zero predecessors, but failed to detect other cases like loops with no entries. The SSAUpdater is already doing a forward traversal through the blocks, so it is not hard to identify the blocks that were never reached on that traversal. This fixes the crash for ppc on the stepanov_vector test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103184 91177308-0d34-0410-b5e6-96231b3b80d8 commit de855527ed112a489e1bdcef165d5a4992978bdd Author: Bob Wilson <bob.wilson@apple.com> Date: Thu May 6 16:05:26 2010 +0000 Add a missing break statement to fix unintentional fall-through (replacing the previous patch for the same issue). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103183 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80a2a36b3a61a2de71a966cfe4eeddd112e9cfe1 Author: Jim Grosbach <grosbach@apple.com> Date: Thu May 6 15:32:49 2010 +0000 Fix unintentional fallthrough. Patch by Edmund Grimley-Evans <Edmund.Grimley-Evans@arm.com> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103181 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24704adbe3cad8ccef47a89d5ddde5a3089d9f1f Author: Shantonu Sen <ssen@apple.com> Date: Thu May 6 14:57:47 2010 +0000 Fix "warning: extra ';' inside a struct or union" when building llvm with clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103179 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9bdadeabc9b1e84b066ca53c3cc21014c73ec1eb Author: Daniel Dunbar <daniel@zuster.org> Date: Thu May 6 14:46:38 2010 +0000 Revert r103137, fix for $ in labels. It looks like we can't actually handle this at the token level. Consider the following horrible test case: a = 1 .globl $a movl ($a), %eax movl $a, %eax movl $$a, %eax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103178 91177308-0d34-0410-b5e6-96231b3b80d8 commit d120e4b29ec115f82d38c16057ca637752e16265 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 6 06:36:08 2010 +0000 Re-apply 103156 and 103157. 103156 didn't break anything. 10315 exposed a coalescer bug that's fixed by 103170. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63e219299d8d28645329b220823582ec5730892f Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 6 06:23:31 2010 +0000 Fixes a coalescer bug that caused llc to crash on 2009-11-30-LiveVariablesBug.ll with the fix in 103157. %reg1039:1<def> = VMOVS %S1<kill>, pred:14, pred:%reg0 is not coalescable since none of the super-registers of S1 are in reg1039's register class: DPR_VFP2. But it is still a legal copy instruction so it should not assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 610047ad786953ef4fb1c4c4ca203f5607d25fa4 Author: Sena Hunt <rideau3@gmail.com> Date: Thu May 6 05:24:38 2010 +0000 Fix some stylistic issues with my last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d3901a70db4916576468c5dfaa93fe889eb740d Author: Dan Gohman <gohman@apple.com> Date: Thu May 6 05:08:57 2010 +0000 Revert r103157, which broke test/CodeGen/ARM/2009-11-30-LiveVariablesBug.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103163 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a9e95880b93372d1004b6a47529d82a3c1c30cc Author: Eric Christopher <echristo@apple.com> Date: Thu May 6 02:29:06 2010 +0000 Revert r103156 since it was breaking the build bots. Reverse-merging r103156 into '.': U lib/Target/ARM/ARMInstrNEON.td U lib/Target/ARM/ARMRegisterInfo.h U lib/Target/ARM/ARMBaseRegisterInfo.cpp U lib/Target/ARM/ARMBaseInstrInfo.cpp U lib/Target/ARM/ARMRegisterInfo.td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103159 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5de376c3e1a4afe1a586df60c402274254110ab6 Author: Dan Gohman <gohman@apple.com> Date: Thu May 6 02:06:20 2010 +0000 Handle the case where open(2) or close(2) is interrupted by a signal when automatic syscall restarting is disabled. Also, fix the build on systems which don't define EWOULDBLOCK. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103158 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3b0e345a2a3223539f4f7a7ad59a49869fc7d67 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 6 01:54:03 2010 +0000 Fix an obvious bug in isMoveInstr. It needs to return sub-register indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103157 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38511c0e40da7e449b17563dd6ebdd405aa73f18 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 6 01:52:03 2010 +0000 Adding pseudo 256-bit registers QQ0 . . . QQ7 to represent pairs of Q registers. These will be used to model VLD2 / VST2 instructions in order to get substantially better codegen for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103156 91177308-0d34-0410-b5e6-96231b3b80d8 commit 511266b0eef4ef72fbbc658f42c155840d0bb2c8 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 6 01:34:11 2010 +0000 Cosmetic changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103155 91177308-0d34-0410-b5e6-96231b3b80d8 commit 941d3f285b797605ca9ac6a579386f47bf4e2e14 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu May 6 01:32:54 2010 +0000 storeRegToStackSlot has forgotten about QPR_8 register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103154 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e8f19eea0bf50269501510f64c1357c469e8f30 Author: Dan Gohman <gohman@apple.com> Date: Thu May 6 01:27:36 2010 +0000 Handle EWOULDBLOCK as EAGAIN. And add a comment explaining why EAGAIN and EWOULDBLOCK are used here. Also, handle the case where a write call is interrupted after some data has already been written. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103153 91177308-0d34-0410-b5e6-96231b3b80d8 commit df60e421008fa11361e043d3df41b4d65bacf58c Author: Chris Lattner <sabre@nondot.org> Date: Thu May 6 00:54:20 2010 +0000 make -filetype=obj default to emitting its output to foo.obj when on windows instead of foo.o. Patch by Nathan Jeffords! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a8ee7f27a4f59c51ca414cc45835d4976580976 Author: Dan Gohman <gohman@apple.com> Date: Thu May 6 00:29:41 2010 +0000 Update LabelsBeforeInsn also, when creating unknown-position labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103145 91177308-0d34-0410-b5e6-96231b3b80d8 commit a41643a8d4b68392975392de162c1cba88f37ec3 Author: Chris Lattner <sabre@nondot.org> Date: Thu May 6 00:05:37 2010 +0000 Fix PR7054 - Assertion `Symbol->isUndefined() && "Cannot define a symbol twice!"' failed. Users can write broken code that emits the same label twice with asm renaming, detect this and emit a fatal backend error instead of aborting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103140 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51dc54b4e37336ed1e6f08c15bbbca49515e0cf5 Author: Dan Gohman <gohman@apple.com> Date: Thu May 6 00:02:14 2010 +0000 In bottom-up mode, defer the materialization of local constant values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103139 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8efdd110fecc3dec360a19e70581248c7820fac Author: Dan Gohman <gohman@apple.com> Date: Wed May 5 23:58:35 2010 +0000 Add an "IsBottomUp" member function to FastISel, which will be used to support a new bottom-up mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103138 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8b0e27b2da134f8ea4727d2d5acc3f5c7d180e0 Author: Chris Lattner <sabre@nondot.org> Date: Wed May 5 23:51:28 2010 +0000 fix rdar://7946934 - in some limited cases, the assembler should allow $ at the start of a symbol name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60de72952892c480f6a5d41bddf0fdc99a5587b8 Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 5 23:44:43 2010 +0000 Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack instructions to subtarget features and update tests to reflect. PR5717. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103136 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0d776153a0b8494b1fbb60866850e5cefb1a0f3 Author: Dan Gohman <gohman@apple.com> Date: Wed May 5 23:41:32 2010 +0000 Emit debug info for MachineInstrs with unknown debug locations, instead of just letting them inherit the debug locations of adjacent instructions. Debug info should aim to be either accurate or absent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103135 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33fd7a41991d8f09a6828ba693d260c952fa272b Author: Chris Lattner <sabre@nondot.org> Date: Wed May 5 23:29:09 2010 +0000 Fix some ..'s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103134 91177308-0d34-0410-b5e6-96231b3b80d8 commit e490b460d0c80e807b9ba9c13558216e0180afe4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed May 5 23:07:41 2010 +0000 Fix PR6520. An earlyclobber physreg must not be allocated to anything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103133 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5aaa2a942b037721bdd6de94c037b9a8ffec3848 Author: Stuart Hastings <stuart@apple.com> Date: Wed May 5 22:49:33 2010 +0000 Test case for pr2394 and r102979. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103129 91177308-0d34-0410-b5e6-96231b3b80d8 commit a65cfc96a1408b3f63201fe09643d60f696726eb Author: Sean Callanan <scallanan@apple.com> Date: Wed May 5 22:47:27 2010 +0000 Fixed a sign-extension bug in the X86 disassembler that was causing PC-relative branch targets to be evaluated incorrectly. Also added support for checking operand values to the llvm-mc tester. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103128 91177308-0d34-0410-b5e6-96231b3b80d8 commit b42a74b2b9a37ad093c3d60f2346201ced225c6f Author: Devang Patel <dpatel@apple.com> Date: Wed May 5 22:29:00 2010 +0000 Use getValue() for PHINodes when direct NodeMap access does not work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103126 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccbbf233d6684cb7861958402f73e4ecd66be8ed Author: Bob Wilson <bob.wilson@apple.com> Date: Wed May 5 22:22:40 2010 +0000 Select an ARM-hosted cross build with a separate makefile target instead of a magic project name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103125 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f275447ac720af64d170c255cf8cdbc130d47c1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 5 22:15:40 2010 +0000 Do not pre-allocate references of D registers pairs if they are extracted from the same Q register and are in the right order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103124 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c9e850161b62eb2484daeb9ed42edd1c83b5f60 Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 5 21:07:46 2010 +0000 fix copy/paste oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103122 91177308-0d34-0410-b5e6-96231b3b80d8 commit 053f2ad13f720c321dc8e38a822df3599f09f1f0 Author: Dan Gohman <gohman@apple.com> Date: Wed May 5 20:58:01 2010 +0000 No-ops emitted for scheduling don't correspond with anything in the user's source, so don't arbitrarily assign them a debug location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103121 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff86803ab86bf9210916f033cf9e4822e9cead49 Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 5 20:47:15 2010 +0000 Add tests for ARMV7M divide instruction use git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103120 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c5e331272bd181b9dff14e178f011ed95195d0b Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 5 20:44:35 2010 +0000 Add initial support for ARMv7M subtarget and cortex-m3 cpu. Patch by Jordy <snhjordy@gmail.com>. Followup patches will add some tests and adjust to use Subtarget features for the instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103119 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60c683f254bdd04e2d4abd20a2600fdfca253b22 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed May 5 20:44:15 2010 +0000 Use the right version of "append" to combine two SmallVectors. This fixes the compile-time regressions seen in last night's tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103118 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cdeedf8a26bf41fc2d81395f5a0763dd2890807 Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 5 19:55:58 2010 +0000 remove unneeded underscores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103114 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bcd55e47936081722c868b5fcbfa869d5faa89b Author: Jim Grosbach <grosbach@apple.com> Date: Wed May 5 19:41:11 2010 +0000 Convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5882614dec8d9344637cc424f8a440d01347ee3b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 5 19:01:05 2010 +0000 MC/Mach-O: Mark absolute variable's appropriately, and add Mach-O support for writing them. - <rdar://problem/7885351> integrated assembler broken for i386 objc code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103112 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57c418336a7a74a78ace65f3c8211f55a76cd0ac Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 5 19:01:00 2010 +0000 MC: Reject attempts to define a variable symbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103111 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc506123961541cefc618dcc175a2019eeb3087b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 5 19:00:56 2010 +0000 MC: Make setVariableValue check the redefinition condition a bit more strongly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103110 91177308-0d34-0410-b5e6-96231b3b80d8 commit c927f84422da830542022bc4f58335474951ca99 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 5 18:45:40 2010 +0000 Move REG_SEQUENCE removal to 2addr pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103109 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5e821f17eecdebb1955e501806be970f4e07d6a Author: Chris Lattner <sabre@nondot.org> Date: Wed May 5 18:40:33 2010 +0000 Implement rdar://7415680 - Twine integer support lacks greatness Microoptimize Twine's with unsigned and int to not pin their value to the stack. This saves stack space in common cases and allows mem2reg in the caller. A simple example is: void foo(const Twine &); void bar(int x) { foo("xyz: " + Twine(x)); } Before: __Z3bari: subq $40, %rsp movl %edi, 36(%rsp) leaq L_.str3(%rip), %rax leaq 36(%rsp), %rcx leaq 8(%rsp), %rdi movq %rax, 8(%rsp) movq %rcx, 16(%rsp) movb $3, 24(%rsp) movb $7, 25(%rsp) callq __Z3fooRKN4llvm5TwineE addq $40, %rsp ret After: __Z3bari: subq $24, %rsp leaq L_.str3(%rip), %rax movq %rax, (%rsp) movslq %edi, %rax movq %rax, 8(%rsp) movb $3, 16(%rsp) movb $7, 17(%rsp) leaq (%rsp), %rdi callq __Z3fooRKN4llvm5TwineE addq $24, %rsp ret It saves 16 bytes of stack and one instruction in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103107 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75a862a6265b7b722cadb19f6bc098ff7a8b4af1 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed May 5 18:39:16 2010 +0000 Rearrange the suppressions files to be by-architecture instead of by-problem. ddunbar says the gcc-4.3.3 suppressions are obsolete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103106 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3882c7a0595883270faa55f791849b0bca0e6849 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 5 18:28:36 2010 +0000 Model CONCAT_VECTORS of two 64-bit values as a REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 606a3c23832b09560be667724518f2066590a0c9 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 5 18:27:57 2010 +0000 Trim include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103103 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f65d1ff91f5f403a68f075bf596ad4b5e26a2aa Author: Evan Cheng <evan.cheng@apple.com> Date: Wed May 5 18:27:40 2010 +0000 Teach liveintervalanalysis about virtual registers which are defined by reg_sequence instructions that are formed by registers defined by distinct instructions. e.g. 80 %reg1041:6<def> = VSHRNv4i16 %reg1034<kill>, 12, pred:14, pred:%reg0 . . . 120 %reg1041:5<def> = VSHRNv4i16 %reg1039<kill>, 12, pred:14, pred:%reg0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103102 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a6e2ec17f9fbcc0c241082cd99414209584a45a Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed May 5 18:15:26 2010 +0000 Add a suppressions file for an intermittent "leak" under RegisterPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ecdb98bbfe65689d60df2c7892e43f81633949c Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 5 17:41:00 2010 +0000 MC: Rename MCSymbol::{g,s}etValue -> MCSymbol::{g,s}etVariableValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93dcfc26dda9619336ca1c429b6390f30c318d04 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 5 17:22:39 2010 +0000 MC/Mach-O/x86_64: Relocations in debug sections should use local relocations when possible. - <rdar://problem/7934873> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103092 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1037e835f253ae87aaa8eaddd7622c6ee955a41e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed May 5 17:22:35 2010 +0000 lit: Allow test_format to be None. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103091 91177308-0d34-0410-b5e6-96231b3b80d8 commit bee80a4dad870d13604dd59f4149e0a9ed1d5194 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed May 5 15:17:47 2010 +0000 Try again if write(2) reports an recoverable error. This should fix mysteriously crashing boost regression tests when stderr is managed by bjam (PR7043). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103085 91177308-0d34-0410-b5e6-96231b3b80d8 commit b407491e5c0b9cd441186feafab4a386693fc160 Author: Shantonu Sen <ssen@apple.com> Date: Wed May 5 13:56:46 2010 +0000 Add newline to end of file to avoid warning when building llvm with clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103084 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3fe48b8f4885bf486cbe5cf8615882c002232de Author: Eric Christopher <echristo@apple.com> Date: Wed May 5 07:35:59 2010 +0000 Revert 102941, we're going to do this via attr and can just hack the code to turn it off when debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103083 91177308-0d34-0410-b5e6-96231b3b80d8 commit c35a492bbcfeaec95aabfb3aa0b9d96ed463f3a2 Author: Sena Hunt <rideau3@gmail.com> Date: Wed May 5 04:31:44 2010 +0000 Include the right header for toupper git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103073 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0da067fa887953d3bcca1dea75fc86adf57f28fc Author: Sena Hunt <rideau3@gmail.com> Date: Wed May 5 04:13:08 2010 +0000 Add an emitter to handle the list of clang statement nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103071 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a8494d8ce028dde9a625501c5d645d1b0430195 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue May 4 23:18:19 2010 +0000 Combine the implementations of the core part of the SSAUpdater and MachineSSAUpdater to avoid duplicating all the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8cbf73535ab7adc24ce3a810163f521ec40d40e8 Author: Eric Christopher <echristo@apple.com> Date: Tue May 4 22:13:03 2010 +0000 Update comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58bdf0bb51c3547062e8d4a14706d87c3142af8e Author: Chris Lattner <sabre@nondot.org> Date: Tue May 4 20:44:23 2010 +0000 add the ability to associate 'category' names with clang diagnostics and diagnostic groups. This allows the compiler to group diagnostics together (e.g. "Logic Warning", "Format String Warning", etc) like the static analyzer does. This is not exposed through anything in the compiler yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103050 91177308-0d34-0410-b5e6-96231b3b80d8 commit eca5434f898b07b438a2b7a0c6c57608edd632bf Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 4 20:39:49 2010 +0000 With -neon-reg-sequence, models forming a Q register from a pair of consecutive D registers as a REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14dc12d54b04592ed82d2ac9dfc4823b558700e3 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 4 20:38:12 2010 +0000 Do not pre-allocate for registers which form a REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103041 91177308-0d34-0410-b5e6-96231b3b80d8 commit b044f133ceda5fb9437331f897e4107db483014c Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 4 20:26:52 2010 +0000 Teach PHI elimination to remove REG_SEQUENCE instructions and update references of the source operands with references of the destination with subreg indices. e.g. %reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ... %reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6 => %reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ... PHI elimination now does more than phi elimination. It is really a de-SSA pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103039 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b9be5a827ac643994da2538ec9403dc87536f7f Author: Duncan Sands <baldrick@free.fr> Date: Tue May 4 20:09:25 2010 +0000 Use llvm.foo as the intrinsic, rather than llvm.dbg.value. Since the values passed to llvm.dbg.value were not valid for the intrinsic, it might have caused trouble one day if the verifier ever started checking for valid debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103038 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33751bbcc917ea4575240ccc30e044b31b37f4fe Author: Bob Wilson <bob.wilson@apple.com> Date: Tue May 4 20:03:21 2010 +0000 Defer adding critical edges to the "toSplit" list until after checking for indirect branches in all the predecessors. This avoids unnecessarily splitting edges in cases where load PRE is not possible anyway. Thanks to Jakub Staszak for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2242188437c4a376c5d16a8bef8210cb9edce695 Author: Chris Lattner <sabre@nondot.org> Date: Tue May 4 18:16:00 2010 +0000 one more thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103024 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77f6893cc86fce945808a3db7edf4d68658a453c Author: Chris Lattner <sabre@nondot.org> Date: Tue May 4 18:15:33 2010 +0000 update instructions for llvm-gcc4, the brave new world! PR7037 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103023 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18a295195bcec3bd8fe0053a442c026087300528 Author: Chris Lattner <sabre@nondot.org> Date: Tue May 4 17:58:46 2010 +0000 "on the rare occasion the SPU BE produces illegal assembly - it tries to emit an add instruction of the form 'a reg, reg, imm'." Patch by Kalle Raiskila! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4de3e21e7ab803ac4a90f74a8730264630b91766 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 4 17:31:02 2010 +0000 MC/X86: Chris pointed that 'as' isn't consistent in accepting the long form of instructions which have no direct register usage. Darwin 'as' accepts: add $0, (%rax) but rejects mov $0, (%rax) for example. Given that, only accept suffix matches which match exactly one form. We still need to emit nice diagnostics for failures... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bdbf35d1bea4b6ce046f39a6ef2d51907f2e28a Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 4 17:12:26 2010 +0000 Rename variables for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103013 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56aac4fe4246be908ba4f892eae2ff5e2c578d1f Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 4 16:12:42 2010 +0000 MC/X86: Add "support" for matching ATT style mnemonic prefixes. - The idea is that when a match fails, we just try to match each of +'b', +'w', +'l'. If exactly one matches, we assume this is a mnemonic prefix and accept it. If all match, we assume it is width generic, and take the 'l' form. - This would be a horrible hack, if it weren't so simple. Therefore it is an elegant solution! Chris gets the credit for this particular elegant solution. :) - Next step to making this more robust is to have the X86 matcher generate the mnemonic prefix information. Ideally we would also compute up-front exactly which mnemonic to attempt to match, but this may require more custom code in the matcher than is really worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103012 91177308-0d34-0410-b5e6-96231b3b80d8 commit 308604ea9ceb6e6b121f1afc41a2741f95b45fe6 Author: Duncan Sands <baldrick@free.fr> Date: Tue May 4 14:25:42 2010 +0000 Fix a problem exposed by my previous commit and noticed by a release-asserts buildbot: the debugging and non-debugging versions of getFunction were not functionally equivalent: the non-debugging version wrongly assumed that if a metadata operand was not metadata, then it had a non-null containing function. This is not true, since the operand might be a global value, constant etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13b48284aa5d5e7639acf1c3f1012a794260afef Author: Duncan Sands <baldrick@free.fr> Date: Tue May 4 12:43:36 2010 +0000 Fix a variant of PR6112 found by thinking about it: when doing RAUW of a global variable with a local variable in function F, if function local metadata M in function G was using the global then M would become function-local to both F and G, which is not allowed. See the testcase for an example. Fixed by detecting this situation and zapping the metadata operand when it occurs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103007 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee974e9e2f0937f9de0ea817281a3080866da5a9 Author: Gabor Greif <ggreif@gmail.com> Date: Tue May 4 09:23:54 2010 +0000 fix operand indexes when outputting InvokeInsts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103003 91177308-0d34-0410-b5e6-96231b3b80d8 commit 900b82f7032fcc00dbc2b64920262b67036df542 Author: Devang Patel <dpatel@apple.com> Date: Tue May 4 06:15:30 2010 +0000 Set DW_AT_APPLE_omit_frame_ptr in endFunction() where MachineFunction is available all the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103001 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbe644ea519cfa8a49e1831912978e3de92c662b Author: Dan Gohman <gohman@apple.com> Date: Tue May 4 01:12:27 2010 +0000 Use the SCEVAddRecExpr::getPostIncExpr utility function instead of doing the same thing manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 821315824c17224292ef493166ba71ead182303a Author: Dan Gohman <gohman@apple.com> Date: Tue May 4 01:11:15 2010 +0000 Fix a copy+pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102996 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6359271d0b3048a83861e0b522ea2d729965a408 Author: Devang Patel <dpatel@apple.com> Date: Tue May 4 01:05:02 2010 +0000 Do not ignore debug loc attached with llvm.dbg.declare while collecting debug info used by a module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102995 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2b5a665fd8d7c74388e13663b02a9ea332727a6 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 4 00:58:39 2010 +0000 Instruction selection optimizations may have moved the def of a function argument out of the entry block. rdar://7937489 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28eac658f6cf62d3cf80bc9dbd604a116a73716f Author: Kevin Enderby <enderby@apple.com> Date: Tue May 4 00:42:46 2010 +0000 Fix to r102952. The MOV64toSDrm record in X86Instr64bit.td needed the opcode changed to 0x7E from 0x6E as well as the previous change of RPDI to S3SI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102991 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16906afdbeb9fd33fb7dc0e3b70c18e5a7becddf Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 4 00:33:13 2010 +0000 MC/Matcher: Add support for over-riding the default MatchInstruction function name (for example, to allow targets to interpose the actual MatchInstruction function). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102987 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47bd7cbce93c36d3f5816eb41fb23733dae8011b Author: Daniel Dunbar <daniel@zuster.org> Date: Tue May 4 00:33:07 2010 +0000 llvm-mc: Fix case were we would skip a line in the .s file after an instruction match failure. Also, fixes a few memory leak FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102986 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ae1b4f9e5ac75480b55481f591868000d908bb8 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue May 4 00:22:40 2010 +0000 Teach scheduler about REG_SEQUENCE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102984 91177308-0d34-0410-b5e6-96231b3b80d8 commit a66cc0883b6f3b54b19b0453ee31ecdc5979bf20 Author: Dan Gohman <gohman@apple.com> Date: Tue May 4 00:13:24 2010 +0000 Add a polygen rule that reflects the fact that nsw and nuw can be used together in either order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102983 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5876edb3e3c731481f6238a26247b583de75296c Author: Dan Gohman <gohman@apple.com> Date: Tue May 4 00:12:15 2010 +0000 Re-enable isel kill flags, now that the local allocator is ignoring them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fc249203cde5ff904f7329537a59394fdc750cf Author: Jim Grosbach <grosbach@apple.com> Date: Tue May 4 00:11:37 2010 +0000 rdar://7937137 - dbg values not being handled in thumb1 version of eliminateFrameIndex(), leading to llvm_unreachable() assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102980 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cdf1063ace00f714b2717d27a5e554577e85f08 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 23:52:21 2010 +0000 Update one more 2.7 to 2.8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102978 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00393719cb04a473b80d8333cffd0cacb2b788b8 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 23:51:05 2010 +0000 Minimally update ReleaseNotes.html for 2.8 development; uncomment and update the big red warning at the top. Most of the old content remains and awaits revision. Clear out the API changes section, and start it up again with a mention of the add->fadd transition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102977 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4e97ac447774a70fca21fcc116c4f1a2417c2ae Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 3 23:49:20 2010 +0000 Remove preexisting kill flags in RegAllocLocal, just like LiveVariables does. This should make it possible to start producing kill flags in isel without breaking stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102976 91177308-0d34-0410-b5e6-96231b3b80d8 commit 387457c66e88d803a5e25ce97cc9addc4c44a4f1 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 23:36:34 2010 +0000 Factor out FastISel's code for materializing constants and other values in registers into a separate function to de-couple it from the top-down-specific logic in getRegForValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102975 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e1b667edf66dbe49e95ed0e6460e08a34428de0 Author: Dale Johannesen <dalej@apple.com> Date: Mon May 3 22:59:34 2010 +0000 Implement builtin_return_address(x) and builtin_frame_address(x) on PPC for x!=0. 7624113. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102972 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca369bba44810b1e3ef67458e06fc1a374672693 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 22:44:19 2010 +0000 Remove the API compatibility layer which converted add, sub, and mul to fadd, fsub, and fmul, when used with a floating-point type. LLVM has supported the new instructions since 2.6, so it's time to get on board. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 791c0b20b854d19105ec70e3bb435cd90a4fca06 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon May 3 22:40:32 2010 +0000 Check that subregisters don't have independent values in RemoveCopyByCommutingDef(). This fixes PR6941. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102970 91177308-0d34-0410-b5e6-96231b3b80d8 commit e32b3c453753fbdb3433141722310f6b7b450b06 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 22:36:46 2010 +0000 Fix tests to use fadd, fsub, and fmul, instead of add, sub, and mul, when the type is floating-point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102969 91177308-0d34-0410-b5e6-96231b3b80d8 commit f061faccb1074fa388dcb3b2e540446ad3d390be Author: Eric Christopher <echristo@apple.com> Date: Mon May 3 22:18:49 2010 +0000 Reword a comment slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102966 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d31b0a5166f617d8d6cd759a90989a1d13721c9 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 22:09:21 2010 +0000 Use getConstant instead of getIntegerSCEV. The two are basically the same, now that getConstant has overloads consistent with ConstantInt::get. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102965 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3912098443b8859c8d444003f69e05c2ddaea112 Author: Bill Wendling <isanbard@gmail.com> Date: Mon May 3 21:51:21 2010 +0000 Revert r102948. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102964 91177308-0d34-0410-b5e6-96231b3b80d8 commit b835d13b044b4ffa208e321cebfa6778907bf11b Author: Bob Wilson <bob.wilson@apple.com> Date: Mon May 3 21:41:24 2010 +0000 Remove special case for llvmCore_Embedded project. This is no longer needed since llvmCore is built as part of llvmgcc42 now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1dbe274ed93b07b486b371bc08038c4e2d3b7473 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon May 3 21:38:11 2010 +0000 Print basic block numbers in live interval debug output. Since the rest of the debug output is showing machine instructions, the IR-level basic block names aren't very meaningful, and because multiple machine basic blocks may be derived from one IR-level BB, they're also not unique. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102960 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4d3ee8eff2ae77af958e1ff3489bf4da7f50ba8 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon May 3 21:36:51 2010 +0000 Fix function prototype mismatch in LLVMUnionType(). Fixes PR7019. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 567b0682ef9a9f948c170cf69ed8844e4a236918 Author: Kevin Enderby <enderby@apple.com> Date: Mon May 3 21:31:40 2010 +0000 Changed llvm-mc to use the same suffixes with floating point compare instructions as the Mac OS X darwin assembler. Some of which like 'fcoml' assembled to different opcodes. While some of the suffixes were just different. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102958 91177308-0d34-0410-b5e6-96231b3b80d8 commit 148eb714105f00304a266ca717fe9a3ce3594bf6 Author: Kevin Enderby <enderby@apple.com> Date: Mon May 3 21:03:31 2010 +0000 Fixed the encoding of two of the X86 movq instuctions. The Move quadword from mm to mm/m64 and the Move quadword from xmm2/mem64 to xmm1 had the incorrect encodings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6dbfd526a74d1223c9ccbd8e9f66093b251e0238 Author: Kevin Enderby <enderby@apple.com> Date: Mon May 3 20:45:05 2010 +0000 Fixed the encoding of the x86 push instructions. Using a 32-bit immediate value caused the a pushl instruction to be incorrectly encoding using only two bytes of immediate, causing the following 2 instruction bytes to be part of the 32-bit immediate value. Also fixed the one byte form of push to be used when the immediate would fit in a signed extended byte. Lastly changed the names to not include the 32 of PUSH32 since they actually push the size of the stack pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102951 91177308-0d34-0410-b5e6-96231b3b80d8 commit d635b4c759489ee8e54ad1a495ab3a8eeaee20ef Author: Bill Wendling <isanbard@gmail.com> Date: Mon May 3 20:39:35 2010 +0000 Testcase for r102947. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102948 91177308-0d34-0410-b5e6-96231b3b80d8 commit a27aeaa08e09b3a9c3497ba76806d6c937cab768 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 20:23:47 2010 +0000 Silence warnings about -1 being converted to an unsigned value. Also, pass true for isSigned even when creating constants for unsigned comparisons, because the point is to create an all-ones constant, rather than UINT64_MAX, even for integers wider than 64 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34f1c9a44cbff7391bcfa5a35ec0a8dab0571b9a Author: Eric Christopher <echristo@apple.com> Date: Mon May 3 19:54:02 2010 +0000 Add an option, defaulting to off, to disable the sse domain crossing opts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102941 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9bafd698e10c2aeab80d12e5780df7799a9bd0e0 Author: Devang Patel <dpatel@apple.com> Date: Mon May 3 18:06:58 2010 +0000 Check for side effects before splitting loop. Patch by Jakub Staszak! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102928 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54b19d5b548a7452a565dc7270ecf0046c0d2f6d Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 18:00:24 2010 +0000 Use isTrueWhenEqual and isFalseWhenEqual instead of assuming that SimplifyICmpOperands will simplify such cases to EQ or NE. This makes the correcntess of the code independent on SimplifyICmpOperands doing certain simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102927 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0773eaf36a81e8257b4ab8ad95846fd69af7f9e Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 17:03:23 2010 +0000 In ScalarEvolution::print, don't bother printing out the SCEVs for comparison instructions, since they aren't interesting, despite having integer result types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102925 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b9791b2032512a5afeee52b1030adcd71ca39bb Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 17:00:11 2010 +0000 In SimplifyICmpOperands, avoid needlessly swapping the operands in the case where both are addrecs in unrelated loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102924 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ed8daab2d1d88d7a70ab10c62fb324d6369002c Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 16:35:17 2010 +0000 Factor out the new <= and >= analysis code into SimplifyICmpOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102922 91177308-0d34-0410-b5e6-96231b3b80d8 commit a57162191a0a596278a66c24006023bbd37d697c Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 14:59:34 2010 +0000 Update this comment to note its relationship with the "happens-before" concept in the proposed memory model changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102911 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20f1bb0f71dc31798074e5a3dbcaf43f96788474 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 14:58:14 2010 +0000 Delete this comment. The behavior of struct loads and stores with respect to padding bytes isn't something that the dependence text needs to spell out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102910 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5f41415032969353b1ac13dbb31c1bb9791f07b Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 14:55:22 2010 +0000 Describe invoke instruction dependencies. Generalize the text for terminator instructions so that it applies to all terminators with multiple successors, including invoke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102909 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32d41d6471040bafbee406039d9b02601d925b2a Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 14:51:43 2010 +0000 Say "operations" instead of "instructions", as nsw can be applied to constant expressions as well as instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e9e8b3b13f6c249843b60ec223a0b45f88f41fb Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 14:35:47 2010 +0000 Fix a bug which prevented tail merging of return instructions in beneficial cases. See the changes in test/CodeGen/X86/tail-opts.ll and test/CodeGen/ARM/ifcvt2.ll for details. The fix is to change HashEndOfMBB to hash at most one instruction, instead of trying to apply heuristics about when it will be profitable to consider more than one instruction. The regular tail-merging heuristics are already prepared to handle the same cases, and they're more precise. Also, make test/CodeGen/ARM/ifcvt5.ll and test/CodeGen/Thumb2/thumb2-branch.ll slightly more complex so that they continue to test what they're intended to test. And, this eliminates the problem in test/CodeGen/Thumb2/2009-10-15-ITBlockBranch.ll, the testcase from PR5204. Update it accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102907 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d2689119cfa40e3c4d55bcab9454a8bd5db0217 Author: Dan Gohman <gohman@apple.com> Date: Mon May 3 14:31:00 2010 +0000 Add a README entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98f26e7b9e7c614e76a00b918d5197d7ad66fdfd Author: Duncan Sands <baldrick@free.fr> Date: Sun May 2 15:36:26 2010 +0000 Remove the -enable-sjlj-eh option, which doesn't do anything. Remove the -enable-eh option which is only used by the JIT, and replace it with -jit-enable-eh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102865 91177308-0d34-0410-b5e6-96231b3b80d8 commit cae9696bf1ae5d1ec4d4baa2ddef209a52809213 Author: Chris Lattner <sabre@nondot.org> Date: Sat May 1 17:36:49 2010 +0000 fix some inconsistent line endings, patch by Jakub Staszak! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102852 91177308-0d34-0410-b5e6-96231b3b80d8 commit a384cc86a6e629b538f78be78201f9cf65e18d97 Author: Chris Lattner <sabre@nondot.org> Date: Sat May 1 17:19:38 2010 +0000 revert r102831. We already delete dead readonly calls in other places, killing a valid transformation is not the right answer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102850 91177308-0d34-0410-b5e6-96231b3b80d8 commit c63ff6d979edbc9c7708e309779dc3a00075c58c Author: Dale Johannesen <dalej@apple.com> Date: Sat May 1 16:41:11 2010 +0000 Don't count debug info as instructions. This was preventing the emission of the NOP on Darwin for a function with no actual code. From timberwolfmc with TEST=optllcdbg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102843 91177308-0d34-0410-b5e6-96231b3b80d8 commit e91c57ecd4cc19efac45a37b3ce60427f93dd933 Author: David Chisnall <csdavec@swan.ac.uk> Date: Sat May 1 15:47:41 2010 +0000 Added a variant of InlineCostAnalyzer::getInlineCost() that takes the called function as an explicit argument, for use when inlining function pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81c4cc86bd70ef29dbbe642af8a32973c600593c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 1 12:52:34 2010 +0000 Insert ANY_EXTEND node instead of invalid truncate during DAG Combining (X & 1), when needed. This fixes PR7001 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102838 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4135f3ccd31813812a079590110dc8e4548ebf4 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 1 12:28:21 2010 +0000 Do folding for indirect branches, where possible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102836 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3aa5d6330f9cbae2c91e1067b6b4b3917bc5ba0b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 1 12:04:32 2010 +0000 Implement indirect branches on MSP430 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fdce8375a3d57134a49914e7db69a314d863f39 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat May 1 12:04:22 2010 +0000 Long branch target oparands are not pc-rel. This should fix PR6603. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102834 91177308-0d34-0410-b5e6-96231b3b80d8 commit efb55e9273de5a7f858be66a2cfe0213bd150fd2 Author: Owen Anderson <resistor@mac.com> Date: Sat May 1 08:34:28 2010 +0000 Disable the call-deletion transformation introduced in r86975. Without halting analysis, it is illegal to delete a call to a read-only function. The correct solution is almost certainly to add a "must halt" attribute and only allow deletions in its presence. XFAIL the relevant testcase for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102831 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70941948d8c1bb3e297a660dbf75857a2c89dbad Author: Chris Lattner <sabre@nondot.org> Date: Sat May 1 06:38:43 2010 +0000 fix PR5009 by making CGSCCPM realize that a call was devirtualized if an indirect call site was removed and a direct one was added, not just if an indirect call site was modified to be direct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 912ecb5d8ac13ea535d040f96929796475fc22ec Author: Chris Lattner <sabre@nondot.org> Date: Sat May 1 06:34:13 2010 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102829 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15212b8438d5807502f1e81a5160be5c9b938c30 Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 02:44:23 2010 +0000 Remove the code for special-casing byval for fast-isel. SelectionDAG handles argument lowering anyway, so there's no need for special casing here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102828 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1844534ef1732018a5618f3a1ab856b43030c0e0 Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 02:43:10 2010 +0000 Fix an ancient FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102827 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96ea5fb0e748f972dd5ea16982b72e0021dff6c7 Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 01:57:56 2010 +0000 Re-disable kill flags, as there is more trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6eb932f7f5406e06d20d14f5f32b4ff4a9abcc9a Author: Chris Lattner <sabre@nondot.org> Date: Sat May 1 01:26:13 2010 +0000 rename InlineInfo.DevirtualizedCalls -> InlinedCalls to reflect that it includes all inlined calls now, not just devirtualized ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 877e60ff73b4aaaa858461a6e126dcac7e89b7da Author: Chris Lattner <sabre@nondot.org> Date: Sat May 1 01:15:56 2010 +0000 Implement rdar://6295824 and PR6724 with two tiny changes that can have a big effect :). The first is to enable the iterative SCC passmanager juice that kicks in when the scc passmgr detects that a function pass has devirtualized a call. In this case, it will rerun all the passes it manages on the SCC, up to the iteration count limit (4). This is useful because a function pass may devirualize a call, and we want the inliner to inline it, or pruneeh to infer stuff about it, etc. The second patch is to add *all* call sites to the DevirtualizedCalls list the inliner uses. This list is about to get renamed, but the jist of this is that the inliner now reconsiders *all* inlined call sites as candidates for further inlining. The intuition is this that in cases like this: f() { g(1); } g(int x) { h(x); } We analyze this bottom up, and may decide that it isn't profitable to inline H into G. Next step, we decide that it is profitable to inline G into F, and do so, which means that F now calls H. Even though the call from G -> H may not have been profitable to inline, the call from F -> H may be (in this case because a constant allows folding etc). In my spot checks, this doesn't have a big impact on code. For example, the LLC output for 252.eon grew from 0.02% (from 317252 to 317308) and 176.gcc actually shrunk by .3% (from 1525612 to 1520964 bytes). 252.eon never iterated in the SCC Passmgr, 176.gcc iterated at most 1 time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102823 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3287d9b0075cad272030f55fb3aaef013aa572bd Author: Chris Lattner <sabre@nondot.org> Date: Sat May 1 01:05:10 2010 +0000 The inliner has traditionally not considered call sites that appear due to inlining a callee as candidates for futher inlining, but a recent patch made it do this if those call sites were indirect and became direct. Unfortunately, in bizarre cases (see testcase) doing this can cause us to infinitely inline mutually recursive functions into callers not in the cycle. Fix this by keeping track of the inline history from which callsite inline candidates got inlined from. This shouldn't affect any "real world" code, but is required for a follow on patch that is coming up next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bda67944a6e56af8d55fff97cbb2253c2511443 Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 00:50:53 2010 +0000 Re-enable kill flags from SelectionDAGISel, with a fix: don't try to put a kill flag on a DBG_INFO instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102820 91177308-0d34-0410-b5e6-96231b3b80d8 commit b446076f1b0a4efc422501f6ea99d8cf77185ee2 Author: Dale Johannesen <dalej@apple.com> Date: Sat May 1 00:41:15 2010 +0000 Fix a bug where debug info affected stack slot coloring. Seen in SingleSrc/Benchmarks/Misc/flops with TEST=optllcdbg. 7929951. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102819 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13ceeea1b44031ab2057c6dd8fdfcbb4002596bf Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 00:33:28 2010 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102817 91177308-0d34-0410-b5e6-96231b3b80d8 commit b53f7e7018144a0a162d240a43d4abcf280c8f1d Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 00:33:16 2010 +0000 Don't pass SDValues by non-const reference unless they may be modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102816 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cf1f2e578d37d0cb0dc29749cfa2e8876a12a23 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat May 1 00:28:44 2010 +0000 Add a pseudo instruction REG_SEQUENCE that takes a list of registers and sub-register indices and outputs a single super register which is formed from a consecutive sequence of registers. This is used as register allocation / coalescing aid and it is useful to represent instructions that output register pairs / quads. For example, v1024, v1025 = vload <address> where v1024 and v1025 forms a register pair. This really should be modelled as v1024<3>, v1025<4> = vload <address> but it would violate SSA property before register allocation is done. Currently we use insert_subreg to form the super register: v1026 = implicit_def v1027 - insert_subreg v1026, v1024, 3 v1028 = insert_subreg v1027, v1025, 4 ... = use v1024 = use v1028 But this adds pseudo live interval overlap between v1024 and v1025. We can now modeled it as v1024, v1025 = vload <address> v1026 = REG_SEQUENCE v1024, 3, v1025, 4 ... = use v1024 = use v1026 After coalescing, it will be v1026<3>, v1025<4> = vload <address> ... = use v1026<3> = use v1026 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102815 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a6508e9095de55e31cacfcbddb90d94d80f8350 Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 00:25:44 2010 +0000 Reorgnaize more switch code lowering to clean up some tricky code, and to eliminate the need for the SelectionDAGBuilder state to be live during CodeGenAndEmitDAG calls. Call SDB->clear() before CodeGenAndEmitDAG calls instead of before it, and move the CurDAG->clear() out of SelectionDAGBuilder, which doesn't own the DAG, and into CodeGenAndEmitDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102814 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6105b382bfb0db2fbb1668a5ac0a4c4ec183973 Author: Bill Wendling <isanbard@gmail.com> Date: Sat May 1 00:12:33 2010 +0000 Test failing too much on too many platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22b9efa79431062adc1816b3556718f6547fc45e Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 00:02:20 2010 +0000 Delete the EdgeMapping variable itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ef88af6076cc6efb986981518f101a1c4dd9a27 Author: Dan Gohman <gohman@apple.com> Date: Sat May 1 00:01:06 2010 +0000 Get rid of the EdgeMapping map. Instead, just check for BasicBlock changes before doing phi lowering for switches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102809 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2d4ab3da0bf1bc2a78342a3036cd169a62efb55 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Apr 30 23:36:47 2010 +0000 Update for CIndex rename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102803 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b9caadb94ec66ec40a0dde3c479af4ee4c109d9 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Apr 30 23:19:29 2010 +0000 Maybe it needs sse2? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102802 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcd985e9c8377f6a5a7067e74f3829162cbb3c03 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Apr 30 22:45:20 2010 +0000 Force 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102800 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebe210cdaf61862f7d309540e0920e9f8112507e Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 22:38:11 2010 +0000 Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102799 91177308-0d34-0410-b5e6-96231b3b80d8 commit d762fc0de03fc17a848e4ddf3700776e19e0e8f3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 30 22:37:22 2010 +0000 Dan recently disabled recursive inlining within a function, but we were still inlining self-recursive functions into other functions. Inlining a recursive function into itself has the potential to reduce recursion depth by a factor of 2, inlining a recursive function into something else reduces recursion depth by exactly 1. Since inlining a recursive function into something else is a weird form of loop peeling, turn this off. The deleted testcase was added by Dale in r62107, since then we're leaning towards not inlining recursive stuff ever. In any case, if we like inlining recursive stuff, it should be done within the recursive function itself to get the algorithm recursion depth win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d4e3970dedd72394deb705be768f1b6557fdcf0 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Apr 30 22:19:17 2010 +0000 EXTRACT_VECTOR_ELT of an INSERT_VECTOR_ELT may have the same index, but the indexes could be of a different value type. Or not even using the same SDNode for the constant (weird, I know). Compare the actual values instead of the pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102791 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0e7ff8c298134b14725fa15a8035bb481eace36 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Apr 30 22:00:17 2010 +0000 Don't use 'else ifdef', I guess this is a 3.81 feature? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a3f259b3f77d214159d566bebebbdee3a48d6a0 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 21:21:21 2010 +0000 Remove this debug output. The MachineFunction will be printed once all of instruction selection is done; it's confusing to see parts of it printed, while other parts are omitted, along the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102771 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb72a1f05d44a73cad3ba476c3870c387bf3f173 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Apr 30 21:19:29 2010 +0000 The local register allocator has to spill dirty callee saved registers before a call that might throw. The landing pad assumes that all registers are in stack slots. We used to spill those dirty CSRs after the call, and the stack slots would be wrong when arriving at the landing pad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36f5d81c90ab5ad39fac0cd5e621fbff3cd6f7df Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 20:50:28 2010 +0000 Update BitVectorTest.cpp to stay in sync with SmallBitVectorTest.cpp, and fix a bug in BitVector's reference proxy class which this exposed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82f18c9ceeb2257aca6a441089ce9d99ce2a39b7 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Apr 30 20:47:09 2010 +0000 Fix TOOLALIAS to not make dependency against $(PROJ_bindir), this is unnecessary (and wrong). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102763 91177308-0d34-0410-b5e6-96231b3b80d8 commit f612144d09639887768faf95e4a320d6a5ca0831 Author: Devang Patel <dpatel@apple.com> Date: Fri Apr 30 20:23:54 2010 +0000 Preserve debug info attached with call instruction while eliminating dead argument. Radar 7927803 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102760 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51f378615ea2b5617f49f68bbb383252290daa91 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 20:14:26 2010 +0000 Make this code less confusing. Instead of reassigning BB, just operate on the original variables, so it's easier to see what is being done to which blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102759 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc70abfde88c42de5bb3db672a60739b10f3b428 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Apr 30 20:04:53 2010 +0000 Add new NO_INSTALL_ARCHIVES make variable, to suppress install of .a files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f18b192b03622caa19021d09a7718c026cf8b26 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Apr 30 20:04:45 2010 +0000 Add an install-clang-c top-level target, which does a Clang C API install. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8959f14f58c5c2053ec670bbc739e38afd555710 Author: Devang Patel <dpatel@apple.com> Date: Fri Apr 30 19:39:29 2010 +0000 New test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26c8fce123adedd59e7d1bca66661f9b565dff00 Author: Devang Patel <dpatel@apple.com> Date: Fri Apr 30 19:38:23 2010 +0000 Attach AT_APPLE_optimized attribute to optimized function's debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102743 91177308-0d34-0410-b5e6-96231b3b80d8 commit b21ecfdc9a67d3050667a268ffadba95ddc9d289 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 19:35:33 2010 +0000 EmitDbgValue doesn't need its EdgeMapping argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102742 91177308-0d34-0410-b5e6-96231b3b80d8 commit c53a70143da20f6dd97c9d97dcae72137ef94b21 Author: David Chisnall <csdavec@swan.ac.uk> Date: Fri Apr 30 19:27:35 2010 +0000 Fixed @ctor / @dtor the wrong way around in last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15700a4d66550b086db938dea37d3834430526c0 Author: David Chisnall <csdavec@swan.ac.uk> Date: Fri Apr 30 19:23:49 2010 +0000 Added a brief explanation of @llvm.global_{c,d}tors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102740 91177308-0d34-0410-b5e6-96231b3b80d8 commit b150efa3595c0e12169bd039aceaba1bd944d21f Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 19:22:39 2010 +0000 Set isSigned to true when creating an all-ones integer constant, even for unsigned purposes, so >64-bit integer values get a full all-ones value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102739 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8920ed400cd5d756cdb4e84d9fb55affc4e1628 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 19:21:13 2010 +0000 Silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102734 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07859cbbc0a69ae4b768b1a1d2778fbb2e28e021 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 19:05:00 2010 +0000 Add lint checks for invalid uses of memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102733 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8dffac8bdb1ddbabbc27e88dc61395607388443e Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 18:33:41 2010 +0000 Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102731 91177308-0d34-0410-b5e6-96231b3b80d8 commit d10497cb6137852b3f8531f7f74f0a0d27075622 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 18:30:26 2010 +0000 Remove the -disable-16bit command-line option, which is now obsolete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 744e53c4af7f42f20106907d072e5c34f2388003 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Apr 30 18:28:11 2010 +0000 Don't use floating point in SimpleRegisterCoalescing. Rounding differences causes tests to fail on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102729 91177308-0d34-0410-b5e6-96231b3b80d8 commit 396d5c54c3c4bc6c205a3b501d69be93086d31d4 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 18:27:57 2010 +0000 Properly escape edge source and destination labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102728 91177308-0d34-0410-b5e6-96231b3b80d8 commit b981e26f46894b9ba7860e1abeee6c1118e49bac Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 17:42:30 2010 +0000 Add -o /dev/null to some tests which don't care about their output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102722 91177308-0d34-0410-b5e6-96231b3b80d8 commit f63b8884f4714e83ea3a54c1830829d0ae30879c Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 17:19:19 2010 +0000 Apply a patch from Jan Sjodin to fix a compiler abort on vector comparisons sign-extended to a different bitwidth than the comparison operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102721 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19d98cbee1ca1f2f63db6b1118a2ae00cba605f9 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Apr 30 17:12:26 2010 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102720 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3637a6d1cb8c5a2c1c1eae00fcbf7401f4b6073e Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Apr 30 17:12:23 2010 +0000 Default OPTIMIZE_OPTION to -O2 on FreeBSD, at the request of the Clang/FreeBSD folks. LLVM/Clang is miscompiled by the standard GCC at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102719 91177308-0d34-0410-b5e6-96231b3b80d8 commit b38f639f21a4d19be36144cfbaa267ac85ec032a Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Apr 30 13:40:27 2010 +0000 SmallBitVector: Rework find_first/find_next and tweak test to test them (at least on 64 bit platforms). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102712 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46b459b5d5158d8b4bd688017b5baf953d953de8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Apr 30 12:29:39 2010 +0000 Implement a read/write operator[] for SmallBitVector with a proxy class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102709 91177308-0d34-0410-b5e6-96231b3b80d8 commit eefa0cd35f9226f28128b3ff27bcccc0bb73b4d0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Apr 30 11:34:01 2010 +0000 Make sure SmallBitVector actually uses the small case and fix latent bugs. - We can't use PointerIntPair here since we require the discrimination bit to be in the LSB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57e4c728fea567eb07a5c6f9562a52d35a842d94 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 30 06:00:56 2010 +0000 Fix test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88405ba022b8e822187567c0ea8eb431da1b34ce Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 30 01:12:32 2010 +0000 Another sibcall bug. If caller and callee calling conventions differ, then it's only safe to do a tail call if the results are returned in the same way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d8f56c28d929fe63815168fc4063ce91e969770 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 00:32:51 2010 +0000 Temporarily disable SelectionDAG kill flags, which are causing trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102680 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa1ff3c254afd20c5550b2dcbc33018d0f1e44df Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Apr 30 00:16:10 2010 +0000 Fix the OProfileJITEventListener build after r101844 removed MachineFunction::DefaultDebugLoc. We now use the same technique as DwarfDebug::beginFunction to find the starting line number for a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102679 91177308-0d34-0410-b5e6-96231b3b80d8 commit 136fb63646e15987773cd69d83d9d36355421051 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 30 00:08:21 2010 +0000 Set register kill flags on the SelectionDAG path, at least in the easy cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102678 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddc0b9fb73fd62ef0623f520b6e8470dc143d038 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Apr 29 23:47:46 2010 +0000 Reject really weird coalescer case when trying to merge identical subregisters of different register classes. e.g. %reg1048:3<def> = EXTRACT_SUBREG %RAX<kill>, 3 Where %reg1048 is a GR32 register. This is not impossible to handle, but it is pretty hard and very rare. This should unbreak the dragonegg builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102672 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a84985d211de7a93009d527432c4eaad98854a1 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Apr 29 23:37:44 2010 +0000 The llc -f flag was removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21004d448dd3438019c7c5876c775d0d2bcac3c9 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 29 23:30:41 2010 +0000 Don't leave Base.FrameIndex uninitialized, so that it doesn't print randomly in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102668 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48f4f14b5ca2921264fecba5e8413659b70446e9 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 29 23:27:32 2010 +0000 add some more (void)'s to prototypes for PR6961 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102667 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92ddbc92fdd99916974466353430d5e4c526adca Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 29 23:25:34 2010 +0000 Fix typos in assertion strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102666 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbf332868e1ffe5d3a3bc7d0ee1d0d3304f17422 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Apr 29 22:21:48 2010 +0000 Slightly verboser debug spew from coalescer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b61d887f1f55cd75ae29f517b3f3c5e74cb3e3b Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 29 20:48:12 2010 +0000 Missed earlier. This is part of previous check-in. (r102661 - refactor.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08492d90195d98bb697a099d31150dd5991ca14e Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 29 20:40:36 2010 +0000 Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102661 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44703d2b41e490935f6bbbb1b232a954f7664fc6 Author: Dale Johannesen <dalej@apple.com> Date: Thu Apr 29 19:32:19 2010 +0000 Make naked functions work on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102657 91177308-0d34-0410-b5e6-96231b3b80d8 commit c94aae0be45a9c73f332c385156dddf9bbd30ada Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 29 18:52:10 2010 +0000 Print variable scope name in DEBUG_VALUE comment. Useful in some cases. e.g. ##DEBUG_VALUE: runOnMachineFunction:this <- RDI+0 ##DEBUG_VALUE: runOnMachineFunction:fn <- RSI+0 ##DEBUG_VALUE: DeadDefs <- undef ## SimpleRegisterCoalescing.cpp:2706 ##DEBUG_VALUE: getRegInfo:this <- [%rsp+$56]+$0 ##DEBUG_VALUE: getTarget:this <- [%rsp+$56]+$0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b1c24fb59c4e7815fafa1d5bd74ccbedb9cc3c0 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 18:51:00 2010 +0000 Remove DBG_VALUE which reference dead stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8037a29e8a031eb24cf69493c655d20240e783f4 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 29 18:50:36 2010 +0000 DO not push DBG_VALUE machine instructions for inlined fuction arguments in entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2802dec3faca8a926636e874b86576acb08fc9af Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 18:50:35 2010 +0000 Add DenseMapInfo for int. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102652 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cd868b77749dbf9308655028d8add07251d6053 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 29 18:46:52 2010 +0000 llc no longer requires the -f option to overwrite files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102651 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34816aaef58bf1df5f0af70ca996e3f3a6f4099a Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Apr 29 18:04:29 2010 +0000 Don't remove libLTO.dylib if it's not being installed in Developer/usr/lib; just leave it in Developer/usr/local/lib. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e8ff3cad6491a9f974f1f6104f49c53a616c618 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 29 16:57:54 2010 +0000 Elaborate on a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76b02f86cbdae799f846fe8f5582cb24b252e736 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Apr 29 16:29:02 2010 +0000 Remove dead option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dd039c5410390e027105b7ed7df2c9bdcfee12f Author: Duncan Sands <baldrick@free.fr> Date: Thu Apr 29 16:10:30 2010 +0000 Verify metadata harder. In particular, check that module level metadata does not have any function local operands. This would have caught the problem found in PR6112. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1973d64943ae009ad15ff19ff5de3633ee7b2518 Author: Duncan Sands <baldrick@free.fr> Date: Thu Apr 29 12:32:45 2010 +0000 Fix comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102612 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1ef711dbb216e0d20f49a5b9eee7217af79ab9d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 06:58:53 2010 +0000 Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102606 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80650570a1815f10a34560e786c5775862cb79cd Author: Edwin Török <edwintorok@gmail.com> Date: Thu Apr 29 06:43:12 2010 +0000 Fix PR6910. Limit alignment in SmallVector 8, otherwise GCC assumes 16 byte alignment. opetaror new, and malloc only return 8-byte aligned memory on 32-bit Linux, which cause a crash if code is compiled with -O3 (or -ftree-vectorize) and some SmallVector code is vectorized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102604 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e8e93ad2fa7a7149ce57d371de5db5ca72585ac Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 06:33:38 2010 +0000 Re-enable 102565 with fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102602 91177308-0d34-0410-b5e6-96231b3b80d8 commit 855941e3dd6d68bbe8b34fbd14373fca88c8c553 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Apr 29 05:54:29 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102599 91177308-0d34-0410-b5e6-96231b3b80d8 commit abc19dec31aa14d51af739e1fe2a210b6089b6d1 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 05:08:22 2010 +0000 Load folding tail call should not use ebp / rbp after it's popped. PEI should use esp / rsp to reference frame instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102596 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3228e036cb98f8925a406dcc2ef3ae76832cdbd3 Author: Mon P Wang <wangmp@apple.com> Date: Thu Apr 29 04:00:56 2010 +0000 Add support for assemblers that don't support periods in a name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102594 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ba71d722a84651c01ef78303381e46c19a8ac04 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 03:34:19 2010 +0000 Temporarily disable my changes to unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102590 91177308-0d34-0410-b5e6-96231b3b80d8 commit 797ceacd3deb3a0b16ae3dc095bea1c7634132db Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 01:40:30 2010 +0000 Do not generate duplicate dbg_value instructions for function arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102585 91177308-0d34-0410-b5e6-96231b3b80d8 commit d52cf3ed5f4e78a1b707632c716242326ca8524e Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 29 01:39:13 2010 +0000 Fix missing #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102584 91177308-0d34-0410-b5e6-96231b3b80d8 commit d379bf651b089f46f371a4d1b13d9205c6ab5855 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 01:23:55 2010 +0000 Avoid emitting a dbg_value machineinstr that's not going to be inserted into entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102581 91177308-0d34-0410-b5e6-96231b3b80d8 commit acf2863856341d06e59d631403402013e1ddfd45 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 01:13:30 2010 +0000 Frame index can be negative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102577 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4f5197cfe398da26252136080bac0d5fa7d99d0 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 29 00:59:34 2010 +0000 Check Reg against zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 642cd627a4a252aafb3c23685de049f86535e01c Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 28 23:52:26 2010 +0000 - Really preserve dbg_value instructions when the register is spilled. - Also, update dbg_value is the value is being re-matted from a frame slot, e.g. fixed slots for arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102565 91177308-0d34-0410-b5e6-96231b3b80d8 commit a022232337cd13e6bce2a029ed38e4c2dfa3374e Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 28 23:24:13 2010 +0000 tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102558 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9844462d456da0239534a366649b6d6cd70753b8 Author: Kevin Enderby <enderby@apple.com> Date: Wed Apr 28 23:20:40 2010 +0000 Fixed the word sized Bit Scan Forward/Reverse instructions, they needed the Operand size override prefix to be part of their records. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5236e32b2a182d4983c151213971fb89cf58c71d Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 28 23:08:54 2010 +0000 Replace r102368 with code that's less fragile. This creates DBG_VALUE instructions for function arguments early and insert them after instruction selection is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102554 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c34c67047737d7c06ee5e0d7584f393c7cb11c9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 22:34:35 2010 +0000 fix this to work with objdir != srcdir git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102547 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d528146dca4d9f00205da835de96aa2e1f616e1 Author: Dale Johannesen <dalej@apple.com> Date: Wed Apr 28 22:23:46 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102545 91177308-0d34-0410-b5e6-96231b3b80d8 commit 097a651f4028fb0bd2cf4957d6698a81ac6360dc Author: Dale Johannesen <dalej@apple.com> Date: Wed Apr 28 22:17:33 2010 +0000 Test for llvm-gcc checkin 102543. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102544 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34cf2fc8e74ef3af1f1309cab7f30865ba4c4d1d Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Apr 28 21:08:01 2010 +0000 Add an option to the Apple-style build to control whether libLTO.dylib should be installed. Disable it by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18ce2409d635b25115550941da048b41ec7d985e Author: Jim Grosbach <grosbach@apple.com> Date: Wed Apr 28 20:33:09 2010 +0000 Add sizes non-floating point versions for the eh sjlj intrinsic expansions. rdar://7895451 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102526 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47034d72c1a9a4ae1d3a127b98f3b370e0633ef7 Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 28 20:27:48 2010 +0000 Update tests. Now DBG_VALUE instruction is created only if alloca corresponding to llvm.dbg.declare is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102524 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98ae27200c65a5711e7b2ecb7beb8dcf596a4007 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 20:24:45 2010 +0000 declare targets with (void) instead of () since this is a C header. Patch by Lars R in PR6961. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102523 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3ff89cf4d37047bb8a9c6064442d65be91774a5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 20:16:12 2010 +0000 fix PR6112 - When globalopt (or any other pass) does RAUW(@G, %G), metadata references in non-function-local MDNodes should drop to null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102519 91177308-0d34-0410-b5e6-96231b3b80d8 commit b119a8d76fa08e7e7cdefbe3edc75d1d4aa7fa2d Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 28 20:03:13 2010 +0000 Pretty print DBG_VALUE machine instructions. Before: DBG_VALUE %RSI, 0, !-1; dbg:SimpleRegisterCoalescing.cpp:2707 Now: DBG_VALUE %RSI, 0, !"this"; dbg:SimpleRegisterCoalescing.cpp:2707 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102518 91177308-0d34-0410-b5e6-96231b3b80d8 commit df8ff9f0bb6d56926dbdaed6bdfbdb67d0fba0e7 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 19:58:07 2010 +0000 Rework global alignment computation again. Now we do round up alignment of globals to the preferred alignment, but only when there is no section specified on the global (by far the common case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2107463de9701cac9105e91cc3b5b66bca2670ba Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 28 19:27:33 2010 +0000 While lowering dbg_declare, emit DBG_VALUE machine instruction if alloca matching llvm.dbg.declare intrinsic is missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c884d37dd195c6209edec14702764bfce85899a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Apr 28 18:28:39 2010 +0000 Recompute kill flags from live intervals after coalescing instead of trying to update them. Computing kill flags is notoriously difficult, and the coalescer would get it wrong sometimes, and it would completely skip physical registers. Now we simply remove kill flags based on the live intervals after coalescing. This is a few percent slower, but now we get correct kill flags for physical registers after coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102510 91177308-0d34-0410-b5e6-96231b3b80d8 commit 838883158cbbb9cfea91805fab08de2c277d32f9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Apr 28 18:28:37 2010 +0000 Teach X86FloatingPoint that a register can be killed multiple times by the same instruction. This instruction would crash the pass: INLINEASM <es:foo $0 $1>, 9, %FP0<kill>, 9, %FP0<kill>, 14, %EFLAGS<earlyclobber,def,dead> Now it doesn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29c8ea6764947bb69771664b6b18ad8865f5859e Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Apr 28 18:18:36 2010 +0000 Undo most of my previous whitespace fix. I think I like it better this way after all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cc70c02d8b7419e28cb19850e60c222d26569d7 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Apr 28 18:06:27 2010 +0000 Fix inconsistent use of HOSTS and TARGETS variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102505 91177308-0d34-0410-b5e6-96231b3b80d8 commit 550ec087f692a67d12b585d7be7fd21f948b8161 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Apr 28 17:50:03 2010 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102504 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1c787627cf35ab94704d51142f1f7acb792787d Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 28 08:30:49 2010 +0000 Enable i16 to i32 promotion by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102493 91177308-0d34-0410-b5e6-96231b3b80d8 commit d91719d3133b3ebea58c01a801a657ec7771a59c Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 28 07:10:39 2010 +0000 Try operation promotion only if regular dag combine and target-specific ones failed to do anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102492 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2a398db1a0d86b239340083f741c282334c700f Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 28 02:25:18 2010 +0000 Unbreak the build. Only form shld / shrd after legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102488 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cfd3a1a4caa7ff3dc4857cf2a2a523a8ccbe917 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 28 01:53:13 2010 +0000 Update tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102487 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24e3e23131ec14cbf749cb39caa9763b57d5e615 Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 28 01:39:28 2010 +0000 Emit debug info for byval parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102486 91177308-0d34-0410-b5e6-96231b3b80d8 commit c09b8aabccedcc7e9608c66a46a4620d43eb0ea6 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 28 01:18:01 2010 +0000 Rather than having a ton of patterns for double shift instructions, e.g. SHLD16rrCL, just perform custom dag combine to form x86 specific dag so they match to the same pattern. This also makes sure later dag combine do not cause isel to miss them (e.g. promoting i16 to i32). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49fc9fd15727c904b88ef2eb5d93d0089706e501 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 01:08:40 2010 +0000 further simplify EmitAlignment by eliminating the ForcedAlignBits argument, tweaking the single client of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102484 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c8b6baa7866a3f147942af83923eacf0a694e40 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 01:06:02 2010 +0000 remove a dead argument to EmitAlignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 691e91c5d0f6bd3d0d4a86189042897d6e18dc90 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 01:05:45 2010 +0000 remove some default arguments to EmitAlignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102482 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6320f666dafde99bfdbad645c504cf77011cbe99 Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 28 01:03:09 2010 +0000 Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c46b569024b9704e748065702cedbcaae692972 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 28 00:49:41 2010 +0000 Rewrite the section on trap values to contain a generic description of dependence and define trap values in terms of dependence, instead of trying to cover the concept with a flurry of ad-hoc rules. The dependence model isn't complete yet, but it's already much more rigorous than the description it replaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102479 91177308-0d34-0410-b5e6-96231b3b80d8 commit fabc03eb14c42b8037f2df0c6863ebd5a3760552 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 28 00:36:01 2010 +0000 Fix spelling errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102478 91177308-0d34-0410-b5e6-96231b3b80d8 commit da970187c2275df2f203dad0b1044b416bc29f3c Author: Stuart Hastings <stuart@apple.com> Date: Wed Apr 28 00:35:10 2010 +0000 Tweak x86 INC/DEC generation to look for CopyToReg or SETCC. Radar 7866163. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47f714bc1b395f921ab7dc60b499f1682fc247a2 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 00:31:12 2010 +0000 further clarify alignment of globals, fix instcombine to not increase the alignment of globals with an assigned alignment and section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102476 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec2f6be49baa8e01c99d0d57b056bcb8b87f195a Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 28 00:13:42 2010 +0000 improve the global variable alignment description. it is not generally valid for targets to overalign them when an alignment is specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102474 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd784bc08742f1d40e76431739ca7b7f6dc58865 Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 27 22:24:37 2010 +0000 Use MachineOperand::is* predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102472 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1200d56f37078fb37b2c6278436f7732e57d1086 Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 27 22:04:41 2010 +0000 Use isReg(), isImm() and isFPImm(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102470 91177308-0d34-0410-b5e6-96231b3b80d8 commit 989dba9cf547a980f4623a21346e1bdaa262fc71 Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 27 21:49:04 2010 +0000 Check operand type first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94112cef1c1996b25d5157a73472116673a8be5e Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 27 21:46:03 2010 +0000 Fix obvious typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102467 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3930c0be75444c94f5e88a2dd35928fb72a10159 Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 27 20:54:45 2010 +0000 Ignore DBG_VALUE instructions that points to undef values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102463 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fe2900bb4d35448ec9b873d8212e50d17c2ea10 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 27 19:48:31 2010 +0000 SRA promotion is also not free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ae5f2b42b9cb23b56bca79c77f7b256fdb2d853 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 27 19:48:13 2010 +0000 - When legal, promote a load to zextload rather than ext load. - Catch more further dag combine opportunities as result of operand promotion, e.g. (i32 anyext (i16 trunc (i32 x))) -> (i32 x) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102455 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed8329c476bfd33c355780ecfd97fd738f1bc7cf Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 27 19:46:33 2010 +0000 Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges. This patch fixes bug (PR6894) introduced by previous version of this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 103b4187d60ddec97ef53caa80174f50b71d6cc9 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 27 19:38:45 2010 +0000 Do not count kill, implicit_def instructions as printed instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60772a9752d6b12fa51ec113a2135b54cd49a136 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 27 07:41:44 2010 +0000 round zero-byte .zerofill directives up to 1 byte. This should fix some "g++.dg-struct-layout-1" failures, rdar://7886017 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102421 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa8c74eee2dfc0a6e3c1914d257b50b2f9c2613e Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 27 07:28:11 2010 +0000 fix wordo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e1df0fdb8aa8a4cea29bb3fb3077d81b38c31e9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 27 06:57:10 2010 +0000 remove some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7768f6118634598159c2871989ce7174c74c2856 Author: Dale Johannesen <dalej@apple.com> Date: Tue Apr 27 02:10:05 2010 +0000 Revert a small part of 102372; this fixes at least one of the dbg testsuite regressions. I don't think this is really the right fix; this change exposed an existing problem upstream somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 798894e0c819534a264b0382caed2a2c476b38ec Author: Bill Wendling <isanbard@gmail.com> Date: Tue Apr 27 00:55:25 2010 +0000 r98363 deleted a '!' when cleaning up whitespace. This caused globals which are *not* declarations to *not* be placed in the "preserve" list. <rdar://problem/7870735> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102405 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5be0473ea845ec7dc2b8b65355354b2a9807daae Author: Dale Johannesen <dalej@apple.com> Date: Tue Apr 27 00:01:42 2010 +0000 Un-XFAIL this on ppc. My enabling of dbg_declare handling in ISel fixed it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102404 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccc7b09630f0e0a9530fdc8a9773b6b505620d4e Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 26 23:49:32 2010 +0000 Fix a problem that lower invoke has with allocas (PR6694), and add a version of createLowerInvokePass that allows the client to specify whether it wants "expensive" or "cheap" lowering. Patch by Alex Mac! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c03c1f1156d302b13cd3bd03242ebf0c2f8c29a Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 26 23:41:43 2010 +0000 add a comment in verbose-asm mode indicating why a noop is being generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3062b07ca060919022a1f1d4f6dfb2cf55a275de Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 26 23:37:21 2010 +0000 on darwin empty functions need to codegen into something of non-zero length, otherwise labels get incorrectly merged. We handled this by emitting a ".byte 0", but this isn't correct on thumb/arm targets where the text segment needs to be a multiple of 2/4 bytes. Handle this by emitting a noop. This is more gross than it should be because arm/ppc are not fully mc'ized yet. This fixes rdar://7908505 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f2e5f6b77b756b9a3111843d33153f227b10732 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 26 23:36:52 2010 +0000 Integrate Jeffery Yasskin's suggestions with respect to traps flowing through memory references, add some text to better cover phi nodes and externally-visible side effects, add an example of instructions being control-dependent on a trap value, and reword some of the existing trap rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102399 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7103604735d9b5de0d0e15c861bd7ff613ebe81 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Apr 26 23:20:08 2010 +0000 Handle register-to-register copies within the tGPR class. Radar 7896289 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c133eb77ccac9c91a8377699710cc7017cd19ce Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Apr 26 22:56:56 2010 +0000 Avoid adding a null MD node operand, which crashes with "-debug" when trying to print the operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102395 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37a4ac9e942bfb95f1a7602b64da22eb0baf346a Author: Devang Patel <dpatel@apple.com> Date: Mon Apr 26 22:54:28 2010 +0000 Use DW_AT_entry_pc instead of DW_AT_low_pc/DW_AT_high_pc pair. This simplifies debug range entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102394 91177308-0d34-0410-b5e6-96231b3b80d8 commit d322bc74992a92bbbfaa71df681882b7f5679806 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 26 21:46:36 2010 +0000 When checking whether the special handling for an addrec increment which doesn't dominate the header is needed, don't check whether the increment expression has computable loop evolution. While the operands of an addrec are required to be loop-invariant, they're not required to dominate any part of the loop. This fixes PR6914. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102389 91177308-0d34-0410-b5e6-96231b3b80d8 commit 855fa25ea24175cf3de481b16c32c229c45cb7dc Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 26 21:37:43 2010 +0000 Add a comment to this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102387 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd66692e73faf5d91c58798a5f40bbb3d92f3801 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Apr 26 21:21:24 2010 +0000 Consolidate the description of volatile operations, now that some of the intrinsics have volatile semantics in addition to the load and store instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102384 91177308-0d34-0410-b5e6-96231b3b80d8 commit a65235c5d3de9c464cafa4eac4c523bcc096b1ce Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 26 20:54:53 2010 +0000 Branching or switching on trap transfers imminent undefined behavior onto control-dependent instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102381 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2619607601e9d3449d00576170f5fb3c3fb2ac9 Author: Dale Johannesen <dalej@apple.com> Date: Mon Apr 26 20:48:54 2010 +0000 Remove crufty comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15ea1dd64f13de0793c10e9797854e5778c54a7b Author: Gabor Greif <ggreif@gmail.com> Date: Mon Apr 26 20:46:03 2010 +0000 add some typewriter tags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102378 91177308-0d34-0410-b5e6-96231b3b80d8 commit d404a6ad6d32f7968fef099d24042569341fc3ee Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 26 20:21:21 2010 +0000 Fix HTML errors that Jeffery Yasskin noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cbde534aecf1a82f33f4124cf6ad0a41fc05327 Author: Dale Johannesen <dalej@apple.com> Date: Mon Apr 26 20:07:31 2010 +0000 Handle target-specific form of DBG_VALUE in AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102373 91177308-0d34-0410-b5e6-96231b3b80d8 commit 620e8a716f816246cee7ea678acf7b8ab7498d43 Author: Dale Johannesen <dalej@apple.com> Date: Mon Apr 26 20:06:49 2010 +0000 Add DBG_VALUE handling for byval parameters; this produces a comment on targets that support it, but the Dwarf writer is not hooked up yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58b8a80e98fd3f8bc1718f8c6768310f33e16688 Author: Dale Johannesen <dalej@apple.com> Date: Mon Apr 26 20:05:01 2010 +0000 Add PPC AsmPrinter handling for target-specific form of DBG_VALUE, and a cautionary comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102371 91177308-0d34-0410-b5e6-96231b3b80d8 commit c97fc92b8aa930c5d21bcf331558ca969e7ec0d6 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 26 19:16:00 2010 +0000 Insert dbg_value instructions for function entry block liveins (i.e. function arguments). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102368 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea9c82daad7bc2d8623bcd17387cdd6602231ce0 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 26 19:06:11 2010 +0000 Promoting 16-bit cmp / test aren't free. Don't do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102366 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90010db3f6669e4c386a00441275b07a22e827c3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 26 18:46:46 2010 +0000 fix PR6921 a different way. Intead of increasing the alignment of globals with a specified alignment, we fix common variables to obey their alignment. Add a comment explaining why this behavior is important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102365 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1d639a617b4bcf1521867993ab618f1603586eb Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 26 18:37:21 2010 +0000 Re-enable 102323 with fix: do not update dbg_value's with incorrect frame indices when the live interval are being re-materialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102361 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8c6f78f8769d8ce981cbad88c8066b273681c0e Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 26 18:30:45 2010 +0000 Revert r102300/102301, which serious broke objc apps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102359 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec7ee21c2af0c098fee4dc56c8856eead0351be6 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 26 18:21:23 2010 +0000 fix PR6940: sitofp(undef) folds to 0.0, not undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102358 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6201afafed21526ce643717b7c6725df5a5959cf Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 26 17:42:18 2010 +0000 wrap some long lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cad56281cab6d2ab377b5ce521b3872acfc439d Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Apr 26 17:40:49 2010 +0000 Update MachineSSAUpdater with the same changes I made for the IR-level SSAUpdater. I'm going to try to refactor this to share most of the code between them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102353 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2dd4e59ee21525e9b2d46a974cc43c18eb988ac Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 26 17:38:10 2010 +0000 add GHC, thanks to David Terei git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102352 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25d58f671f19003163bcdde2d8f26a84caf6e963 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 26 08:24:07 2010 +0000 Temporary disable spiller modifying dbg_value. It's breaking build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102327 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81bea9b6c5fe45bf672c250462c5a684844ffb67 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 26 08:16:57 2010 +0000 Remove a redundant comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7643895e28d9894bb7cbc8976fe21eead374d31d Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 26 07:39:36 2010 +0000 Add PPC specific emitFrameIndexDebugValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d63e00c4040bb2603ba089dfa7ac3c1fbe54bea Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 26 07:39:25 2010 +0000 Add ARM specific emitFrameIndexDebugValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 781069fec152cad983947fcb1d5e1ded7171073c Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 26 07:38:55 2010 +0000 - Move TargetLowering::EmitTargetCodeForFrameDebugValue to TargetInstrInfo and rename it to emitFrameIndexDebugValue. - Teach spiller to modify DBG_VALUE instructions to reference spill slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 138631551818466409f2e2132fc2d2fa1f6c10c2 Author: Dale Johannesen <dalej@apple.com> Date: Sun Apr 25 21:33:54 2010 +0000 Stop abusing EmitInstrWithCustomInserter for target-dependent form of DEBUG_VALUE, as it doesn't have reasonable default behavior for unsupported targets. Add a new hook instead. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102320 91177308-0d34-0410-b5e6-96231b3b80d8 commit 558a5cf0d9192e500e4b49291829a1da9cb80827 Author: Gabor Greif <ggreif@gmail.com> Date: Sun Apr 25 21:30:22 2010 +0000 another typo pointed out by sajd git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102319 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ceb6dcd3c63bf264fcd77d07720adbae126f51d Author: Gabor Greif <ggreif@gmail.com> Date: Sun Apr 25 21:27:54 2010 +0000 fix two typos pointed out by sajd git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102318 91177308-0d34-0410-b5e6-96231b3b80d8 commit 601e4417f1207a0f3023a541e1fc201a21d38f8c Author: Dale Johannesen <dalej@apple.com> Date: Sun Apr 25 21:03:54 2010 +0000 Add comment re byval args. Doesn't actually work this way yet. xs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102316 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1ccee2fb30c5b1fafa1cedbabbd798d5e9e8b87 Author: David Chisnall <csdavec@swan.ac.uk> Date: Sun Apr 25 19:13:33 2010 +0000 Added bullet about GNUstep Objective-C ABI support to the Clang section of the release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102309 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f580f02633e5625220b3519420fa41def7e4251 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 25 05:51:14 2010 +0000 testcase for PR6913 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102303 91177308-0d34-0410-b5e6-96231b3b80d8 commit f10829865c6f32adafc5ac1e7d8523894901bab3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 25 05:49:31 2010 +0000 this passes now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102301 91177308-0d34-0410-b5e6-96231b3b80d8 commit 871b69949dc39f879795886c92482d5ddfdd4d59 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 25 05:30:43 2010 +0000 Fix PR6921: globals were not getting correctly rounded up to their preferred alignment unless they were common or some other special case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102300 91177308-0d34-0410-b5e6-96231b3b80d8 commit f89360a31f04ea1a75852d39310c686de87cde0d Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 25 04:44:26 2010 +0000 silence a warning, patch by "mike". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102297 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72c179a15790b640a0bf211dd2b9734b9bae9804 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 25 04:43:02 2010 +0000 remove #if 1's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4405d3756618cd9da437cf758db4f5b73e8d8ac5 Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 25 00:12:20 2010 +0000 Fix an autoconf bug: The second argument to AC_LANG_PROGRAM is code that gets placed inside a main function, and should not itself be a main function. This is silently hidden in GCC-hosted builds because the inner main looks like a nested function declaration, which GCC supports. In builds with compilers which do not support nested functions (by default), this was causing an error, which caused these autoconf checks to fail, leaving their options disabled. This fixes test/Feature/load_module.ll on x86_64-unknown-linux-gnu llvm-gcc selfhost builds, among other things. This also includes a regenerated configure, as the diff is small and telling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102288 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5455f054b8274e45518d3e88a7a1571225cded6a Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 24 22:15:58 2010 +0000 PHI nodes also do not necessarily return trap with a trap operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cfafbd32db14cb88ae3955967989cbc5ca2bd6d Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Apr 24 22:01:40 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102276 91177308-0d34-0410-b5e6-96231b3b80d8 commit 680762c2d727062c7747334ffcfc072110714741 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Apr 24 05:07:24 2010 +0000 Use provided llvm-defined variables instead of twisting user-controlled knobs. No visible change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102240 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5b78a18ba2a4725584cd972895090f5b753b21a Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Apr 24 04:56:34 2010 +0000 Don't touch CXXFLAGS. If it's set in the environment then sub-makes will see the variable that we set as though it came from the user. Fixes PR6835. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102239 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bd0c52efd878d6823a4609a7bf7ff0fede24721 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Apr 24 04:44:57 2010 +0000 Avoid promoting a i16 node if it would eliminate a (store (op (load))) opportunity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102237 91177308-0d34-0410-b5e6-96231b3b80d8 commit d460bc4ab68f9691baef2e6c2d98c23716528dd5 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Apr 24 04:43:44 2010 +0000 When a load operand is promoted to an extload, replace other uses with uses of extload result truncated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102236 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8150622099cc24fe18f6595cae538a06cd9278ea Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 24 03:13:44 2010 +0000 Generalize LSR's OptimizeMax to handle the new kinds of max expressions that indvars may use, now that indvars is recognizing le and ge loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0393eab265325f90e610f2eacbbb57582d0fc9ed Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 24 03:09:42 2010 +0000 ScalarEvolution support for <= and >= loops. Also, generalize ScalarEvolutions's min and max recognition to handle some new forms of min and max that this change makes more common. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5639277d11d4c33a1b65b0b2ace53007c0ac6906 Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 24 01:38:36 2010 +0000 Use SimplifyICmpOperands in isKnownPredicate too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9625f05ef7779309458a2359ddf361ac28c2efda Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 24 01:34:53 2010 +0000 Update isImpliedCond to use the new SimplifyICmpOperands utility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ef7150ec816047bc9f53de065f2e9ac96c7731d Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 24 01:28:42 2010 +0000 Add a new utility function SimplifyICmpOperands. Much of this code is refactored out of ScalarEvolution::isImpliedCond, which will be updated to use this new utility routine soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5278dd29458e1fdb3ec0dfa61786a9b0a06f0915 Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 24 01:17:30 2010 +0000 Apply a fix for a vector setcc dagcombine from Jan Sjodin. No testcase yet, as the testcase now fails downstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9449a79b29cf82f1081cd7c535bbc7d0b921af25 Author: Sean Callanan <scallanan@apple.com> Date: Sat Apr 24 01:00:16 2010 +0000 Fixed edis to tokenize instructions with no operands correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102227 91177308-0d34-0410-b5e6-96231b3b80d8 commit b75ed3da487b942837a0ed5361cf00222ffe93bf Author: Jim Grosbach <grosbach@apple.com> Date: Sat Apr 24 00:46:14 2010 +0000 cross-build Makefile needs to unset CFLAGS/CXXFLAGS when building the build-side utilities since the flags will be for the cross-compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102225 91177308-0d34-0410-b5e6-96231b3b80d8 commit da622813aa1ddc071d70bfc1bbfddce0ed2a2381 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 23 22:39:33 2010 +0000 no longer xfail git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102220 91177308-0d34-0410-b5e6-96231b3b80d8 commit dad886fe59a9ba983620bc2c842274fb540001f8 Author: Sean Callanan <scallanan@apple.com> Date: Fri Apr 23 22:17:17 2010 +0000 Fixes to edis that mark x86 call targets as memory operands rather than immediate operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102217 91177308-0d34-0410-b5e6-96231b3b80d8 commit b79396b895e93d2591e6e58a553338404c239c6d Author: Stuart Hastings <stuart@apple.com> Date: Fri Apr 23 22:12:57 2010 +0000 Per Chris, fuse four trivial tests using grep (r102199) into one that uses FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102216 91177308-0d34-0410-b5e6-96231b3b80d8 commit 950511c9fc00dbbcad7d4576cec66d1ca5b6d042 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 23 21:16:07 2010 +0000 enable my inliner change: add newly devirtualized call sites to the worklist, making them inline candidates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f56623a81727654052986762b9a2b8653d3cbdd Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 23 19:41:15 2010 +0000 Change TargetData's algorithm for computing defualt vector type alignment to match what's used in clang and GCC for __alignof, rather than trying to guess what Legalize is going to be doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dd21bc2107a32d4634361f719085589845ff3a2 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 23 19:10:30 2010 +0000 Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102202 91177308-0d34-0410-b5e6-96231b3b80d8 commit abf191e0e600ad4a92fdc77366113f6c9c46f35a Author: Stuart Hastings <stuart@apple.com> Date: Fri Apr 23 19:03:32 2010 +0000 Add some missing x86 patterns for movdq2q. Fixes two (LLVM-)GCC DejaGNU testcases. Radar 6881029. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102199 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffdad5cfd76c1c9e9c6cbf5216ec554757023227 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 23 18:38:40 2010 +0000 fix some failures my callgraph dump format change broke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102197 91177308-0d34-0410-b5e6-96231b3b80d8 commit e734d37725d56faa7bd7fb4e7770b1956d279511 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 23 18:37:01 2010 +0000 switch InlineInfo.DevirtualizedCalls's list to be of WeakVH. This fixes a bug where calls inlined into an invoke would get changed into an invoke but the array would keep pointing to the (now dead) call. The improved inliner behavior is still disabled for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102196 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd347bc8f9365c6cd488ba89dc5c3e8e540f8c47 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 23 18:31:01 2010 +0000 testcase for the bug that required a patch to be reverted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102195 91177308-0d34-0410-b5e6-96231b3b80d8 commit f24620229fd6fe7bda0cda7f1eaa743255fde6a4 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 23 18:23:40 2010 +0000 fix callgraph dump to not print 0x0x1234 for nodes. Add the instruction pointer value for debuggability. We now get dump output that looks like this: Call graph node for function: 'f1'<<0x1017086b0>> #uses=1 CS<0x1017046f8> calls external node Call graph node for function: '_ZNSt6vectorIdSaIdEEC1EmRKdRKS0_'<<0x1017086f0>> #uses=1 CS<0x0> calls external node Call graph node for function: 'f4'<<0x1017087a0>> #uses=1 CS<0x101708c88> calls function 'f3' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102194 91177308-0d34-0410-b5e6-96231b3b80d8 commit b35585dcf2186cfab0a61bb37513de63a61d77ae Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 23 18:21:16 2010 +0000 Fix X86ISD::CMP i16 to i32 promotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102192 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a859971655e49ce508e53338965c77d6f2a42f6 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 23 15:29:50 2010 +0000 Move FastISel's HandlePHINodesInSuccessorBlocks call down into FastISel itself too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102176 91177308-0d34-0410-b5e6-96231b3b80d8 commit eeca0a6a8739caacbb549dc3b4980a316878e15e Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 23 15:23:32 2010 +0000 Switch getelementptr inbounds and sdiv exact from undef to trap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 414df0672b66a75b1181a34b51353b0693b7f613 Author: Sean Callanan <scallanan@apple.com> Date: Fri Apr 23 01:56:36 2010 +0000 Fixed EDOperand to use the operand type, not the flags, to determine whether or not the operand is a memory operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102158 91177308-0d34-0410-b5e6-96231b3b80d8 commit 499ccc10d9ebcf7181415078902bb3d2651c4e4a Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 23 01:55:05 2010 +0000 Fix LSR to tolerate cases where ScalarEvolution initially misses an opportunity to fold add operands, but folds them after LSR has separated them out. This fixes rdar://7886751. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102157 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc4e79ce96190de407e364976fdb04b6a8d68e6a Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 23 01:51:29 2010 +0000 When it doesn't matter whether zero or sign extension is used, use ScalarEvolutions "any" extend function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102156 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03dd6ce84d16db50ad56505c109b0e57f4c528be Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 23 01:18:53 2010 +0000 Revert 102135, 102129, 102127, 102106, 102104, 102102, 102012, 102004, because 102004 causes codegen to emit invalid assembly on at least x86_64-unknown-gnu-linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102155 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30e02974b91d14ef0d01561f6a845eabd5c3e477 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 23 00:50:50 2010 +0000 reject invalid comma stuff with a message. We reject the case in PR6888 with: $ llvm-as t.ll llvm-as: t.ll:2:29: error: expected metadata or 'align' store <3 x i32> %x, i32 1, i32 1>, <3 x i32>* %p ^ instead of: $ llvm-as t.ll llvm-as: git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102154 91177308-0d34-0410-b5e6-96231b3b80d8 commit cda418e9936bfb90b6f2b8b2fd774549bc90c845 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 23 00:41:03 2010 +0000 disable my previous inliner patch, it appears to be busting self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102153 91177308-0d34-0410-b5e6-96231b3b80d8 commit f64f0a907566e74247f2fc544a9756dca1428fd8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 23:37:35 2010 +0000 The inliner was choosing to not consider call sites that appear in the SCC as a result of inlining as candidates for inlining. Change this so that it *does* consider call sites that change from being indirect to being direct as a result of inlining. This allows it to completely "devirtualize" the testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39073aa53191d98164a05884489e243eec411c43 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Apr 22 23:24:18 2010 +0000 Update ARM DAGtoDAG for matching UBFX instruction for unsigned bitfield extraction. This fixes PR5998. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102144 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbd729588c70eac5b83d857b4675b104a275f0ac Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 23:14:21 2010 +0000 Add an initial description of a new concept: trap values, and change the definition of the nsw and nuw flags to make use of it. nsw was introduced to help optimizers answer yes to the following: // Can we change i from i32 to i64 to eliminate the cast inside the loop? for (int i = 0; i < n; ++i) A[i] *= 0.1; // Can we assume that this loop will eventually terminate? for (int i = 0; i <= n; ++i) A[i] *= 0.1; In its current form, it isn't truly sufficient for either. In the first case, if the increment overflows, it'll still have some valid i32 value; sign-extending it will produce a value which is 33 homogeneous sign bits trailed by 31 independent undef bits. If i is promoted to i64, it won't have those same values when it reaches that point. (The compiler could recover here by reasoning about how i is used by the load, but that's a lot more complicated and isn't always possible.) In the second case, there is no value for i which will be greater than n, so having the increment return undef on overflow doesn't help. Trap values are a formalization of some existing concepts that we have about LLVM IR, and give the optimizers a better basis for answering yes to both questions above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102140 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b68fdfd4191ec3cd38fa52d15eb7a8d3b5e309b Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 23:07:58 2010 +0000 refactor the interface to InlineFunction so that most of the in/out arguments are handled with a new InlineFunctionInfo class. This makes it easier to extend InlineFunction to return more info in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1927f406cd087afd02b5b08d8c0472746927a106 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 22 22:06:28 2010 +0000 Remove the test for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102135 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1427d9a77ae4261d4ca132156e699be403089196 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 21:34:16 2010 +0000 add macruby back git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d78aca2b22f744b729a220b7000cec384b087d4 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 21:31:00 2010 +0000 when inlining something like this: define void @f3(void (i8*)* %__f) ssp { entry: call void %__f(i8* undef) unreachable } define void @f4(i8* %this) ssp align 2 { entry: call void @f3(void (i8*)* @f2) ssp ret void } The inliner is turning the indirect call to %__f into a direct call to F2. Make the call graph more precise when this happens. The inliner doesn't revisit call sites introduced by inlining, so there isn't an easy way to test for this, but a more precise callgraph is a good thing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 464b41d3bdb48bd7a0663b9689b32a231e162420 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 22 20:56:35 2010 +0000 Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102129 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d93e2f0518eac5b265b6d300dd8f7ed4cfd1cab Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 20:55:53 2010 +0000 Sink SelectionDAGBuilder's HandlePHINodesInSuccessorBlocks down into SelectionDAGBuilder itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102128 91177308-0d34-0410-b5e6-96231b3b80d8 commit 587ee60921bce39654f07ee9dc60a3710b929037 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 22 20:52:00 2010 +0000 Adjust debug range offsets for isWeakForLinker() functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102127 91177308-0d34-0410-b5e6-96231b3b80d8 commit 611f30e0d366d68c2c83c18e40d2383b8a7e560d Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 20:50:43 2010 +0000 Add a blurb about the new LSR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102126 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03ae9c85e41f89dcb95751ba106ab3f23061a3ab Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Apr 22 20:48:34 2010 +0000 The -condprop pass has been deleted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102125 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61427c111bb817668917dd463fc6f8bfd738f2c6 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 20:47:28 2010 +0000 The post-RA scheduler is currently off by default on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102124 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f22b9afc62a1390c19163729dbb5d2a1220c581 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 20:46:50 2010 +0000 Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISel and into SelectionDAGBuilder and FastISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102123 91177308-0d34-0410-b5e6-96231b3b80d8 commit b499e2920fd05483f25e7ecd9421b9c32c7bee78 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Apr 22 20:42:40 2010 +0000 Add some verbiage about Clang to the 2.7 release notes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102121 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8e2c3136f97d76ec98c1bd5b5b2afd8397a30ac Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 20:42:33 2010 +0000 add a DEBUG call so that -debug lists when CGSCCPM iterates. Fix RefreshCallGraph to use CGN->replaceCallEdge instead of hand rolling its own loop. replaceCallEdge properly maintains the reference counts of the nodes, fixing a crash exposed by the iterative callgraph stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102120 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bddc685230c9e65636d25df9d25278fd458b749 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 20:41:10 2010 +0000 eliminate dead #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102119 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd1cfc0bec28a735413a0ed7f456fc591417e71a Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 22 20:19:46 2010 +0000 - It's not safe to promote rotates (at least not trivially). - Some code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91c51367bf8d3f644a6179fdeb6cdc88f2d51453 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 20:06:42 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102110 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7a54010a2670f41ba4c2d43119669e5fe3abf06 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 19:55:20 2010 +0000 Move PHINodesToUpdate out of SelectionDAGBuilder and into FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't completely natural, as PHI node state is not per-function but rather per-basic-block, however there's currently no other convenient per-basic-block state to group it with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102109 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5192c37ede13d663bc169b97c62b98e09004a8a9 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 22 18:43:35 2010 +0000 Rename InsnAfterLabelMap and InsnBeforeLabelMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102106 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12786b491053188dc71fa0b4b14f7bb13d32fa5c Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 22 18:39:21 2010 +0000 Keep track of MCSymbol used to mark beginning of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48edc28d36f74052ed27cd803096d11107924235 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Apr 22 18:33:31 2010 +0000 Add mention of ARM atomic builtin support git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102103 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59d89cb5172268139d83b33326ceabad54c5d336 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 22 18:28:58 2010 +0000 At this point Start and End are not null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102102 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fa63e60b5558871fbbfd154ed65d9b2b4f25c95 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Apr 22 18:28:43 2010 +0000 Update ARM frame index scavenging description git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102101 91177308-0d34-0410-b5e6-96231b3b80d8 commit da5a406e2fda440a1bf379c9c94ea5857664e178 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 18:26:17 2010 +0000 remove dupe git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8665b6d9f205ae56d4c28e0de823beed4f03b75b Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 17:39:38 2010 +0000 reword my incoherent babble into something that makes sense from Wesley Peck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102096 91177308-0d34-0410-b5e6-96231b3b80d8 commit bcbcf0224a7641663f0f7ab0dd16d442d9d4ca9a Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 17:28:36 2010 +0000 two more projects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102095 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9205662d149409a0dbec6f883a0874935114ba9 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 17:25:00 2010 +0000 add some notes from Matthieu Moy! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49193a65b98f7393c81251dce0eeaa21bc09f5f2 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 16:45:27 2010 +0000 improve tblgen doc, pointed out by Zhongxing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 316988f8894c64eade959e3c8f7023a3dd437c31 Author: Wesley Peck <peckw@wesleypeck.com> Date: Thu Apr 22 14:19:00 2010 +0000 Fixing a typo in the "Clang project" section of the release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102064 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea7238039be2844d8239547c745009441ec66a98 Author: Wesley Peck <peckw@wesleypeck.com> Date: Thu Apr 22 13:53:54 2010 +0000 Small fix to the "Other Improvements and New Features" section of the release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102063 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c6c4edcfec51ce3f6690a32deceda6dddf6ccdc Author: Wesley Peck <peckw@wesleypeck.com> Date: Thu Apr 22 13:50:46 2010 +0000 Fixing small typos in the "New Useful APIs" section of the release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102062 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8794390f2b11b6a414a2ec2291a4f4e67724a062 Author: Wesley Peck <peckw@wesleypeck.com> Date: Thu Apr 22 13:43:14 2010 +0000 Fixing small typos in the "ARM Target Improvements" section of the release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102061 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff20d83475626fb9be06f978e5ac18d255216ebf Author: Wesley Peck <peckw@wesleypeck.com> Date: Thu Apr 22 13:36:27 2010 +0000 Rewording the "generated debug information" paragraph in the "Interpreter and JIT Improvements" section of the release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 827209ba022a85484d7a74b9bad4a9f4f33400d9 Author: Wesley Peck <peckw@wesleypeck.com> Date: Thu Apr 22 13:28:34 2010 +0000 Reworking the wording of the "target data string" paragraph in the "Optimizer Improvments" section of the release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102059 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1c10513a1521ffdccc7ff516a3b7a42c50082c1 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 22 10:25:23 2010 +0000 <pre> seems to close <p> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97969bd28a7b72de90b478da76afbb4ed6e7068e Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 22 10:21:43 2010 +0000 the validator coughed up some problems, most of them fixed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102056 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4f40cc78bf3254d7ae366fd5df7a3f8be136338 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 22 10:11:24 2010 +0000 shorten link git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102055 91177308-0d34-0410-b5e6-96231b3b80d8 commit 287564830738d3438888d7ebc95364a71f38a45c Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 06:39:56 2010 +0000 static analyzer has its own section git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102054 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bf6777394077d62e144d23e2334dbacf678dd9f Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 06:38:11 2010 +0000 add mc and static analyzer blurbs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102053 91177308-0d34-0410-b5e6-96231b3b80d8 commit eefd45e1aaf1375f4085025ca309a1c2cff7a933 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 06:28:20 2010 +0000 another checkpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102052 91177308-0d34-0410-b5e6-96231b3b80d8 commit 819024a091058083a56fa73a50cfe1b92a132f5e Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 05:41:35 2010 +0000 various updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102051 91177308-0d34-0410-b5e6-96231b3b80d8 commit 118e691d03c7db90d57f6cb0e8a7d77c8e1290f7 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 22 05:33:15 2010 +0000 fix file header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40b7b406fbd654c55be460e22d3b1fcdbd4acdd5 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 01:35:11 2010 +0000 Don't attempt to analyze values which are obviously undef. This fixes some assertion failures in extreme cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102042 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd9b5b763e9872d37b346aa7f8898e6040b3db2a Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 22 01:30:05 2010 +0000 Tidy a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102041 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea21e0d1d0482c612b96ded5539ca5d631114e91 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Apr 21 23:18:07 2010 +0000 Run LiveVariables instead of computing liveness locally in -regalloc=fast. This actually makes everything slower, but the plan is to have isel add <kill> flags the way it is already adding <dead> flags. Then LiveVariables can be removed again. When ignoring the time spent in LiveVariables, -regalloc=fast is now twice as fast as -regalloc=local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102034 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0e181011bb26fcad0a778f0e0c58c0cff10ccc1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 21 20:57:54 2010 +0000 Do not try to optimize a copy that has already been marked for deletion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102027 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5ca2dca01e31043d844b5cc0f8fa72a5d3789db Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 21 19:08:53 2010 +0000 Add command line option to disable debug info printing in .s file. This option does not impact debug info generation and preservation through earlier compile starges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102012 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1eef611545a19a2c4b438be647934dc5dc9c16a Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Apr 21 18:39:03 2010 +0000 Fix a performance problem with the new SSAUpdater. This showed up in the GCCAS time for MultiSource/Benchmarks/ASCI_Purple/SMG2000. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 816e22b698408e9d10eaec98f79e422e5c9a65c0 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 21 18:37:48 2010 +0000 Modified some assert() msg strings; no other functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1dffe0bbeee64a1e015990bd29350b2586d437e2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Apr 21 18:02:42 2010 +0000 Add fast register allocator, enabled with -regalloc=fast. So far this is just a clone of -regalloc=local that has been lobotomized to run 25% faster. It drops the least-recently-used calculations, and is just plain stupid when it runs out of registers. The plan is to make this go even faster for -O0 by taking advantage of the short live intervals in unoptimized code. It should not be necessary to calculate liveness when most virtual registers are killed 2-3 instructions after they are born. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102006 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59cccde92cadae2b5d0389122e9d0191d2ffe4dc Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 21 16:32:19 2010 +0000 Identify when a lexical scope is split in to multiple instruction ranges. Emit such ranges using DW_AT_ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102004 91177308-0d34-0410-b5e6-96231b3b80d8 commit 309596ef5c0673a416951d2cf94a8ebcdbb26c52 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 21 16:04:04 2010 +0000 Make ScalarEvolution::getConstant support pointer types, for consistency with ScalarEvolution's overall approach to pointer types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102003 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a55945fe37f7fdaab38dad619fcbe1edfc50925 Author: Duncan Sands <baldrick@free.fr> Date: Wed Apr 21 13:51:48 2010 +0000 Dragonegg will be released along side llvm-2.7. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102001 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c37f005accd588e01e761714f888a7400bbccf3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 21 06:42:24 2010 +0000 final hacking for tonight, still more to go. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101995 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb8ab3243831c8467b95fe033f9c158cdb55ca16 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 21 06:23:40 2010 +0000 continue the process of detangling this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101992 91177308-0d34-0410-b5e6-96231b3b80d8 commit e724c478c0d5766e0aad9ddb434445c3d433e761 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 21 05:17:40 2010 +0000 rough pass moving stuff into relevant sections, still much editing to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101987 91177308-0d34-0410-b5e6-96231b3b80d8 commit fffea8a3f5f77c85c0a4e44edf2bb65a7e6f6318 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 21 04:28:21 2010 +0000 remove ldc, rubinious, macruby, icedtea, llvm-lua, which don't have updates for 2.7. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a05dc77d0013803c2a17d33f40dcf516c0c083a Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 21 03:18:23 2010 +0000 Implement -disable-non-leaf-fp-elim which disable frame pointer elimination optimization for non-leaf functions. This will be hooked up to gcc's -momit-leaf-frame-pointer option. rdar://7886181 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101984 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6e739caf4180fc0b5e5ffa501a4262ced8db82b Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 21 01:47:12 2010 +0000 isel (i32 anyext i16) as insert_subreg when 16-bit ops are being promoted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6831b77b3e4df3fd767d03cbb98fa2b45f3c0780 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 21 01:39:06 2010 +0000 Trim include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101978 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2ec7d6c74a3595e42326b3eb9abe427494cf7fd Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 21 01:34:56 2010 +0000 Add more const qualifiers on TargetMachine and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79ac4f308c8a6a76699f8a7d3b249bf94be55e71 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 21 01:32:29 2010 +0000 Update CMakeLists.txt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101976 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97fd57744aa203971bd50a4baf4d9e2fdb5a0476 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 21 01:22:34 2010 +0000 Move several SelectionDAG-independent utility functions out of the SelectionDAG directory and into a new Analysis.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101975 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e84b96ce60a07709df609ede14b806edbf5712a Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 21 01:01:19 2010 +0000 Thumb instructions which have reglist operands at the end and predicate operands before reglist were not properly handled with respect to IT Block. Fix that by creating a new method ARMBasicMCBuilder::DoPredicateOperands() used by those instructions for disassembly. Add a test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101974 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bccd20b514d75a1d47728f60f807f5bd56dc3ea Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 21 00:47:40 2010 +0000 Implement (but don't enable) PR6724 and rdar://6295824. In short, we have RefreshCallGraph detect when a function pass devirtualizes a call, and have CGSCCPassMgr iterate (up to a count) when this happens. This allows (in the example) GVN to devirtualize the call in foo, then the inliner to inline it away. This is not currently enabled because I haven't done any analysis on the (potentially substantial) code size or performance impact of doing this, and guess what, it exposes callgraph updating bugs in various passes. This is progress though, and you can play with it by passing -max-cg-scc-iterations=5 to opt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fbf105b1a078ff9827b266880474ea1d3040193 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 21 00:44:22 2010 +0000 - Clean up some crappy code which deals with coalescing of copies which look at extract_subreg / insert_subreg, etc. - Add support for more aggressive insert_subreg coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101971 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe9797ba1c071e09c5edd8e4f105488d838d65bb Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 21 00:43:30 2010 +0000 Revert r101471. For tight recursive functions which have multiple recursive callsites, inlining can reduce the number of calls by exponential factors, as it does in MultiSource/Benchmarks/Olden/treeadd. More involved heuristics will be needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101969 91177308-0d34-0410-b5e6-96231b3b80d8 commit a444f69566e2afaa5602f5a71a602651566a6ba7 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Apr 21 00:34:04 2010 +0000 Handle a displacement location in 64-bit as an RIP-relative displacement. It fixes a bug (<rdar://problem/7880900>) in the JIT. This code wouldn't work: target triple = "x86_64-apple-darwin" define double @func(double %a) { %tmp1 = fmul double %a, 5.000000e-01 ; <double> [#uses=1] ret double %tmp1 } define i32 @main() nounwind { %1 = call double @func(double 4.770000e-04) ; <i64> [#uses=0] ret i32 0 } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101965 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53dcfc9fa4f3892511fc36ac194843c27620c2a1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 21 00:21:07 2010 +0000 Rewrite machine cse to avoid recursion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101964 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f9a29fc27c122ad2226a34b20c523e2c11f9c36 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 21 00:19:28 2010 +0000 Add another variant of this test which found a place where CodeGen's ComputeMaskedBits was being over-conservative when computing bits for an ADD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101963 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbc048ebbc2529ebe260edadab015cd4abb074f8 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 23:18:40 2010 +0000 teach the x86 address matching stuff to handle (shl (or x,c), 3) the same as (shl (add x, c), 3) when x doesn't have any bits from c set. This finishes off PR1135. Before we compiled the block to: to: LBB0_3: ## %bb cmpb $4, %dl sete %dl addb %dl, %cl movb %cl, %dl shlb $2, %dl addb %r8b, %dl shlb $2, %dl movzbl %dl, %edx movl %esi, (%rdi,%rdx,4) leaq 2(%rdx), %r9 movl %esi, (%rdi,%r9,4) leaq 1(%rdx), %r9 movl %esi, (%rdi,%r9,4) addq $3, %rdx movl %esi, (%rdi,%rdx,4) incb %r8b decb %al movb %r8b, %dl jne LBB0_1 Now we produce: LBB0_3: ## %bb cmpb $4, %dl sete %dl addb %dl, %cl movb %cl, %dl shlb $2, %dl addb %r8b, %dl shlb $2, %dl movzbl %dl, %edx movl %esi, (%rdi,%rdx,4) movl %esi, 8(%rdi,%rdx,4) movl %esi, 4(%rdi,%rdx,4) movl %esi, 12(%rdi,%rdx,4) incb %r8b decb %al movb %r8b, %dl jne LBB0_1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101958 91177308-0d34-0410-b5e6-96231b3b80d8 commit de0e7f5bdf28ab404ea9ad36f39edcc7aeae0a48 Author: Dale Johannesen <dalej@apple.com> Date: Tue Apr 20 22:34:09 2010 +0000 Because of the EMMS problem, right now we have to support user-defined operations that use MMX register types, but the compiler shouldn't generate them on its own. This adds a Synthesizable abstraction to represent this, and changes the vector widening computation so it won't produce MMX types. (The motivation is to remove noise from the ABI compatibility part of the gcc test suite, which has some breakage right now.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101951 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4da8be246753aef637be1da01149083c05ffac38 Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 20 22:24:18 2010 +0000 Rename ValueMapTy as ValueToValueMapTy to clearly indicate that this has no replationship with ADT/ValueMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101950 91177308-0d34-0410-b5e6-96231b3b80d8 commit d78127ec0996dad748bd2feab461be2290e25d6e Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 20 22:18:31 2010 +0000 There is no need to install ValueMapper.h header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101949 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8f2631bf23cf3f5826da799665e76fd6b99d5da Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Apr 20 21:29:28 2010 +0000 Better error-handling of getBitFieldInvMask() where msb < lsb (encoding error), instead of just asserting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101942 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91cab49126766d8e3052ec6afa0bb2a5ea98f21d Author: Duncan Sands <baldrick@free.fr> Date: Tue Apr 20 19:40:58 2010 +0000 I plan to release a version of dragonegg based on llvm-2.7 shortly after the llvm-2.7 release. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d85a3bdb56b70cf62aa805543b6009dc3bbdbbf Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Apr 20 18:45:47 2010 +0000 When MachineLICM is hoisting a physical register after regalloc, make sure the register is not killed in the loop. This fixes 188.ammp on ARM where the post-ra scheduler would grab a register that looked available but wasn't. A testcase would be huge and fragile, sorry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101930 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8af7b879b83e74663b338ffcb89998fd156fe5b2 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Apr 20 18:45:24 2010 +0000 When doing Thumb disassembly, there's no need to consider t2ADDrSPi12/t2SUBrSPi12, as their generic counterparts t2ADDri12/t2SUBri12 should suffice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101929 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6703638507f80974cba77ce20803c59014dfae8f Author: Bill Wendling <isanbard@gmail.com> Date: Tue Apr 20 18:14:47 2010 +0000 Move CodeGen/X86/2010-04-19-DAGCombineCrash.ll into CodeGen/X86/crash.ll. Also reduce. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101925 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15824e1badceacc433e203281c1d80243076d995 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Apr 20 17:28:50 2010 +0000 For t2LDRT, t2LDRBT, t2LDRHT, t2LDRSBT, and t2LDRSHT, if Rn(Inst{19-16})=='1111', transform the Opcode to the corresponding t2LDR*pci counterpart. Ref: A8.6.86 LDRT, A8.6.65 LDRBT, A8.6.77 LDRHT, A8.6.81 LDRSBT, A8.6.85 LDRSHT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101915 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4a3441bb3a5bf168dfb8d7f8bf299ab068eb8bc Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 20 17:27:38 2010 +0000 Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ca0afcfaa4756eb53e38bc32f1501704acff79e Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 20 17:20:10 2010 +0000 Add RUN: git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101913 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8927ac9c737d221b215c015f4fb8edb2b02bbde4 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 15:03:56 2010 +0000 Sink the CopyToExportRegsIfNeeded calls out of SelectionDAGISel into SelectionDAGBuilder. This avoids a separate pass over the instructions, and has the side effect of providing debug location information to the copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101906 91177308-0d34-0410-b5e6-96231b3b80d8 commit f979c9f40a0188beb3b6e2e98aeff5b30ca3e355 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 15:00:41 2010 +0000 Don't send PHI nodes down to SelectionDAGBuilder of FastISel, since they end up doing nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101904 91177308-0d34-0410-b5e6-96231b3b80d8 commit a87d8585e2136bd42b362b294742bed3c67f9f1a Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 14:51:20 2010 +0000 Document that TargetRegisterInfo::contains does not cover virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101903 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2df1bab365346be8d5e0eab5ae85e17485bf5b87 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 14:50:13 2010 +0000 Sink this use_empty() check into isUsedOutsideOfDefiningBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101902 91177308-0d34-0410-b5e6-96231b3b80d8 commit 571cc8182b1434ffe680df9833393417b662c01f Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 14:48:02 2010 +0000 If a PHI node somehow has debug info, propogate it to the MachineInstr PHI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101901 91177308-0d34-0410-b5e6-96231b3b80d8 commit 978691e5aac085614099f19c6f1b8458b25a97e9 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 14:46:25 2010 +0000 Don't iterate through the whole block just to find the PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101900 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c35cfdd1e3a0aa546014c61ec611476cccfe2cb Author: Gabor Greif <ggreif@gmail.com> Date: Tue Apr 20 13:13:04 2010 +0000 use abstract accessors to CallInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101899 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6736625afd5a9c250af74c141d580e877868d3c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Apr 20 12:16:50 2010 +0000 PR6880: Don't dereference CallsExternalNode if it's NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101897 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb3139e82dbf7bf918cd8e80a22181c55a4b194f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Apr 20 11:50:37 2010 +0000 Fix -Wcast-qual warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101894 91177308-0d34-0410-b5e6-96231b3b80d8 commit c97c79657c9a87c3b73de30180748b3af6adc6aa Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 06:30:25 2010 +0000 stop computing InstImpInputs, it is dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101881 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04c403386c2e9f71653c675b1160f8a7af25c8c5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 06:28:43 2010 +0000 DAGInstruction::ImpOperands is dead after my recent tblgen work, zap it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101880 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb54b188c0d6d0da43fe9a3070c7633d29d71d8c Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 06:20:21 2010 +0000 Bill's change in r95336 broke empty aggregates embedded in other types. fix this by only bumping zero-byte globals up to a single byte if the *entire global* is zero size, fixing PR6340. This also fixes empty arrays etc to be handled correctly, and only does this on subsection-via-symbols targets (aka darwin) which is the only place where this matters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101879 91177308-0d34-0410-b5e6-96231b3b80d8 commit f47b1430d8aaa0691f70c3514c8b144afef6693b Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 05:36:09 2010 +0000 teach cellspu how to return i8 and i16 from calls, patch by Kalle Raiskila! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101875 91177308-0d34-0410-b5e6-96231b3b80d8 commit 437b1b7dd3e8125288f71633cbc14c1793bbbfc8 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 05:33:18 2010 +0000 remove a bunch of ad-hoc code to simplify instructions from loop unswitch, and use inst simplify instead. It is more powerful and less duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77a02a6ff451f69843160e84414fc393008041ac Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 05:32:14 2010 +0000 move some select simplifications out out instcombine into inst simplify. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101873 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bda04360ab9ada1b014522a195167a419077506 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 05:09:16 2010 +0000 RewriteLoopBodyWithConditionConstant can end up rewriting the condition we're unswitching on. In this case, don't try to simplify the second copy of the loop which may be dead or not, but is probably a constant now. This fixes PR6879 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101870 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0522c99b59e976df86866a207801c3f36d0c513 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 04:49:11 2010 +0000 reapply 'reject forward references to functions whose type don't match' now that the testsuite has been updated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101866 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a4d034bee6568f0bdfb418686faf8bc70a56c9d Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 01:58:20 2010 +0000 Delete a redundant return statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101860 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3a621684619debeced618e5e6d13f022e1a63a5 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Apr 20 01:25:01 2010 +0000 The visitXOR method can return the same SDNode. If so, we don't want to delete it as it's not dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101855 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce7b4bf99e9704b30871c338ffb56a6c31071f90 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 01:11:32 2010 +0000 disable optimizations in this directory for MSVC9. This avoids an optimizer infinite loop on the file, PR6866. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a4fb558af5d2a1b0284558545ad30fb2a91e579 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Apr 20 01:01:57 2010 +0000 Better error-handling for DisassembleThumb2DPModImm() with 2-reg operands where d==15 is considered illegal. Return false instead of assert(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101852 91177308-0d34-0410-b5e6-96231b3b80d8 commit b073b34a1c9495de5ca29c60863981f0d0bea9e1 Author: Eric Christopher <echristo@apple.com> Date: Tue Apr 20 00:59:54 2010 +0000 Remove the palignr intrinsics now that we lower them to vector shuffles, shifts and null vectors. Autoupgrade these to what we'd lower them to. Add a testcase to exercise this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101851 91177308-0d34-0410-b5e6-96231b3b80d8 commit c522e4fa46bd29bc5bda60e4c40c2ac1f7ec02ba Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 00:56:44 2010 +0000 Remove this debug output; it isn't that useful, and it's incomplete in the case where a basic block is split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101850 91177308-0d34-0410-b5e6-96231b3b80d8 commit b81d52b9923f0a6714ef1d191de238db5fae5ffa Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 00:48:35 2010 +0000 Sink DebugLoc handling out of SelectionDAGISel into FastISel and SelectionDAGBuilder, where it doesn't have to be as complicated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101848 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6beab5e95771b8f4679fa77b6622d6b89256661a Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 00:47:34 2010 +0000 make CallGraphNode dtor abort if a node is deleted when there are still references to it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101847 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20c3967524614eac3ea0259f59dc06a98ca51219 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 00:47:08 2010 +0000 make the inliner do less work for leaf functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101846 91177308-0d34-0410-b5e6-96231b3b80d8 commit c42477e448c8a2e56fe14b41a6c874a2e390b09b Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 20 00:46:50 2010 +0000 Fix rdar://7879828 - crash in CallGraph, a self host issue. Arg promotion was deleting call graph nodes that still had references from the 'indirect' CGN. Like the inliner, it should only delete the function if all references are gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d70b4c35ea6f31ae917060735a520a1e370ac56 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 00:37:27 2010 +0000 Remove MachineFunction's DefaultDebugLoc member, and make DwarfDebug.cpp responsible for figuring out what that's supposed to be on its own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101844 91177308-0d34-0410-b5e6-96231b3b80d8 commit 627778d348be239dc17f1e0372be6aded770a94d Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 20 00:29:35 2010 +0000 Reapply the removal of SelectionDAGISel's BB, with a fix for the case where multiple blocks are emitted; functions which do this need to return the new BB so that their callers can stay current. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101843 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fc5faafcc0678218a4c7a316e5bc51c0ef93828 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Apr 20 00:17:16 2010 +0000 Fix tests for Neon load/store intrinsics to match the i8* types expected by the intrinsics. The reason for those i8* types is that the intrinsics are overloaded on the vector type and we don't have a way to declare an intrinsic where one argument is an overloaded vector type and another argument is a pointer to the vector element type. The bitcasts added here will match what the frontend will typically generate when these intrinsics are used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101840 91177308-0d34-0410-b5e6-96231b3b80d8 commit f590b339ff533520fc15806ecb5720adf66d4a7b Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Apr 20 00:15:41 2010 +0000 More IT instruction error-handling improvements from fuzzing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101839 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4e1298627852f51375653d44b546eb09a0abe52 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 23:34:15 2010 +0000 Revert 101825, which is causing trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101832 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2930c8628038d8fd136f0c0870ed66f990e1af1d Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 23:11:58 2010 +0000 Make BreakAntiDependencies' SUnits argument const, and make the Begin and End arguments by-value rather than by-reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57a4f3da18108687fc07be16d99556f73acb9647 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Apr 19 23:02:58 2010 +0000 Better error handling of invalid IT mask '0000', instead of just asserting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101827 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61bd2037f98d48aab9bc75c159705c393dce66d9 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 22:51:14 2010 +0000 Eliminate SelectionDAGISel's "current block" member. Just pass it as an argument to things that need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101825 91177308-0d34-0410-b5e6-96231b3b80d8 commit 364a4ed760d7d4dd67576c7dcb5bfca7832267a6 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 22:48:45 2010 +0000 Delete an unnecessary reference to SelectionDAGISel::BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101824 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb1bb04ca822a7edcfa62e4a8b5b9f749b963557 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 22:41:47 2010 +0000 Eliminate the CurMBB member from SelectionDAGBuilder. For places that need it, just pass around the parent block of the current instruction explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0362a25a4e06e4ea45c7b1d28f573b65930bda1b Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 21:48:58 2010 +0000 Remove the Expr member from IVUsers. Instead of remembering the expression, just ask ScalarEvolution for it on demand. This helps IVUsers be more robust in the case of expressions changing underneath it. This fixes PR6862. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101819 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1309a93046118098f257ce335ad5164be90ccca7 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Apr 19 21:19:52 2010 +0000 According to A8.6.16 B (Encoding T3) and A8.3 Conditional execution -- A8.3.1 Pseudocode details of conditional, Condition bits '111x' indicate the instruction is always executed. That is, '1111' is a leagl condition field value, which is now mapped to ARMCC::AL. Also add a test case for condition field '1111'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101817 91177308-0d34-0410-b5e6-96231b3b80d8 commit f07455cbe93f28afb172cf39c9055274f4c53546 Author: Devang Patel <dpatel@apple.com> Date: Mon Apr 19 20:31:39 2010 +0000 Fix typo. add a test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9bf9655bb6d1a734e858f8bfecf941452950b55a Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 19 19:29:22 2010 +0000 More progress on promoting i16 operations to i32 for x86. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101808 91177308-0d34-0410-b5e6-96231b3b80d8 commit a24dac683d5382f6b5b16af750d60d1c2552b150 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 19:22:07 2010 +0000 Give SelectionDAG a TargetMachine too, rather than having it fetch one from the MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44bfdd3c0eef58b126ea1b3fb23fe72d6d4202b3 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 19 19:17:44 2010 +0000 More 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d1d1ef73edebed8df6a10608d00d07ec30ec740 Author: Devang Patel <dpatel@apple.com> Date: Mon Apr 19 19:14:02 2010 +0000 Add DW_AT_APPLE_omit_frame_ptr to encode -fomit-frame-pointer flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101805 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a7907a14fef6e375f872b0a8884d07f2062d27b Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 19:05:59 2010 +0000 Code that needs a TargetMachine should have access to one directly, rather than just getting one through a TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101802 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7acae3c91fdda134f15b49b500701f361b0679fc Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 18:41:46 2010 +0000 Move isInTailCallPosition out of SelectionDAGBuilder, as it isn't SelectionDAG-specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101801 91177308-0d34-0410-b5e6-96231b3b80d8 commit 841080e183d09887d7279c892affe2b07deb550b Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 18:33:28 2010 +0000 Enable -Wcast-qual for C++ files, where intentional qualifier-stripping can be done with const_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d27195f93dd70b6b8ccb21cd31f4efef9ec246f Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 18:11:02 2010 +0000 Remove -module, which appears to be a leftover from prior libtool usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101793 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d7888545adfbc70019229a7980f1391cfce8421 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 17:51:31 2010 +0000 This doesn't need SmallVector.h anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93870ce77d59dcf84b10ccc8404fe9d985a21c96 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Apr 19 17:25:38 2010 +0000 Support .a files directly (without -l). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101789 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e2bc49b72e90a99af561e70f5be3f500effaeb6 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Apr 19 17:16:40 2010 +0000 Better error-handling for DisassembleThumb2DPSoReg() where the 3-reg operand instructions should have Rd (Inst{11-8}) != 0b1111. Ref: A6.3 32-bit Thumb instruction encoding A6.3.11 Data-processing (shifted register) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 892c28f8c1c236f6cb1e6d5a3bbebf606ba4b7f0 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 16:33:28 2010 +0000 Fix this for std::vectors which don't have .data(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b224289250c34f6fc595e090d45e1fea3dad660 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Apr 19 16:20:34 2010 +0000 ARM disassembler did not react to recent changes to the NEON instruction table. VLD1q*_UPD and VST1q*_UPD have the ${dst:dregpair} operand now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cf14e52cd1e7328cc406816a9ebcb0d4a9da3ae Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Apr 19 16:15:31 2010 +0000 Don't write into MemoryBuffers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101783 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf3ca25a6cac5408a1ac4d26dd4b885a933d5334 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 15:55:10 2010 +0000 Fix -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101782 91177308-0d34-0410-b5e6-96231b3b80d8 commit c60247da6b049e572287cf32235020aaee7664cd Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 15:54:44 2010 +0000 Revert 91528 and use a std::vector instead, fixing an abuse of std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101781 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3fa5dfb9b9466d133332acd59c240f52c3cf6b4 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 15:42:05 2010 +0000 Fix -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101779 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfa942eed61395aebd9c5a39dfbb92ca2e7e535d Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 15:40:15 2010 +0000 Add a few more ELF bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101778 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13a556fb2b1d9a645bf0445cbbe3e54017dc10e4 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 15:39:27 2010 +0000 Add a const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101777 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c4732d335e1c033b343ed7bbd02646edf41a41c Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 19 15:38:38 2010 +0000 These functions don't need to access this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101776 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8ed188c6f13553fd5af1964b3277add9ce35971 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Apr 18 20:41:42 2010 +0000 Add missed part of prev. commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101755 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca520b360f0354f9440ee31a7a0667dbea2b7e18 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Apr 18 20:31:01 2010 +0000 Make processor FUs unique for given itinerary. This extends the limit of 32 FU per CPU arch to 32 per intinerary allowing precise modelling of quite complex pipelines in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101754 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9be3f8aef575d125699ae5f4e9b90a5681d0c39 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 18 17:34:10 2010 +0000 avoid temporary std::string in non posix_spawn path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101723 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1664a4dad511a2b5212c3792edaf1746877ff26 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Apr 18 09:19:41 2010 +0000 Eliminate temporary string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101711 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0e51b1fd8b9a4b6abdcaa33edad611560d64e59 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Apr 18 09:16:04 2010 +0000 Properly inherit the environment on darwin where environ is not available for shared libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101710 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc31834aa4c6d18a32928e5e2a66bf59b176dbed Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Apr 18 07:07:48 2010 +0000 This is horrible. Split the difference, and declare 'environ' on all non-Darwin platforms to unbreak the darwin and linux builds. The BSD folks should feel free to change the #if, if this breaks them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101703 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3822d9e044d35167a7110872b4de57e88c18c693 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Apr 18 06:44:21 2010 +0000 Revert r101701, Darwin doesn't have 'environ'. Go figure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101702 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8c7d07cdebabfa9a328105e728e2d582ba5fbc7 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Apr 18 06:22:26 2010 +0000 Fix linux build. posix_spawn doesn't inherit the environment by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a0ee3e4b05f3fa639558fe06b8a22adda48d0bc Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 18 04:14:37 2010 +0000 make Program::Execute use posix_spawn on systems that support it, as it is more efficient than fork/exec. Thanks to Eric for adding the autoconf check. It would be nice if a cmake guru could add a cmake check for posix_spawn as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 010b3e1d771ca7067dc2d7cef4f8f8041e206cb6 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 18 03:35:23 2010 +0000 reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 893efe32993b62a3bf54d4d4380f187df507225c Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 18 03:33:55 2010 +0000 unnest from namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101691 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6f04a977a7c0ec9c8c18212e11b4809517b1225 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 18 03:30:32 2010 +0000 silence some -Wmissing-field-initializers warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101690 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43b9f93a1169ef54d483193bffd526087cc3740f Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 18 03:28:20 2010 +0000 silence some unused-value warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101689 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cef1e214b626563cb509390184058ee3561a8be Author: Bill Wendling <isanbard@gmail.com> Date: Sun Apr 18 00:56:05 2010 +0000 Don't rely upon the MCSymbol "isDefined" method to indicate if a label has been emitted or not. The JIT doesn't set that. Look it up in the label location table instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f335ad0f5832a9451f2ad54d171ca621996efff Author: Bill Wendling <isanbard@gmail.com> Date: Sun Apr 18 00:52:08 2010 +0000 Formatting changes. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101685 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8fa09ed67e7a952d8de83b780c05fa5b44dab82 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Apr 18 00:51:49 2010 +0000 Add a "PadTo" field to the emitULEB128Bytes method. This will pad out to the indicated number of bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65f57fc43a1ab316a0d8ad1e885dba6ff16fb86f Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Apr 17 21:29:25 2010 +0000 Fix declarations in a few more tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101676 91177308-0d34-0410-b5e6-96231b3b80d8 commit f83c1ef9cc93d491aa689dc10e352fbaa9964adb Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Apr 17 21:24:55 2010 +0000 Revert "reject forward references to functions whose type don't match", because DJG told me to! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e740aa7eac451990ae8fd8e2923d01c1509d4a5 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Apr 17 21:12:55 2010 +0000 Fix intrinsic signature in this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101674 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9744eefe61ff86295f356ff15903cb252a35e111 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 20:45:56 2010 +0000 reject forward references to functions whose type don't match up with the definition (and fix a broken testcase). PR6491. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0290bd8fc659ae20421a7b72cf63605a992433bc Author: Dale Johannesen <dalej@apple.com> Date: Sat Apr 17 19:56:46 2010 +0000 Add comment (lost when reverting and reapplying 101503). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26e7be26a70f1f3e4345a6654fcec8f9b3fa46ca Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 19:04:03 2010 +0000 doh, didn't mean to check in my hackaround lit sucking. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101663 91177308-0d34-0410-b5e6-96231b3b80d8 commit af49906d60038f4212105105135f86a895080c5a Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 19:02:33 2010 +0000 fix PR6332, allowing an index of zero into a zero sized array even if the element of the array has no size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101662 91177308-0d34-0410-b5e6-96231b3b80d8 commit c13b7321f616c4e758a8ea6ec492d027bfb1ff22 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 18:56:34 2010 +0000 teach the x86 asm parser how to handle segment prefixes in memory operands. rdar://7874844 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101661 91177308-0d34-0410-b5e6-96231b3b80d8 commit 621fa6b07398fa1fa01cdfe954fce4ea51ac3a08 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 18:14:27 2010 +0000 refactor .if handling code a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101659 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54c797695ee3910c7f0e5c1731efbaf70eeddf39 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 17:57:56 2010 +0000 fix PR6858: a dangling pointer use bug which was caused by switching CachedFunctionInfo from a std::map to a ValueMap (which is implemented in terms of a DenseMap). DenseMap has different iterator invalidation semantics than std::map. This should hopefully fix the dragonegg builder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101658 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbd4d6e1c78b9b9af3dd323060b9ceba6bc6cfa0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 17:55:00 2010 +0000 a bunch of cleanups and tweaks, no functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20cd5afed6d8f6989cab3df86d862cd13256fe5a Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 17:44:03 2010 +0000 Fix more -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1574bdec6cab98d47b9bd8683fb18ed8f87682b1 Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 17:42:52 2010 +0000 Fix -Wcast-qual warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 953a275049981da5520b2a064898bfc3ae4ddfcb Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 17:28:00 2010 +0000 remove a dead variable, PR6856 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101648 91177308-0d34-0410-b5e6-96231b3b80d8 commit 697c7571a15cca1433a7e208a7ad3c7e724381d2 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 17:22:06 2010 +0000 testcase for r101538, patch by Nico Schmidt! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101642 91177308-0d34-0410-b5e6-96231b3b80d8 commit d73d8d5b4cd5802dd18bf34b34ec816c9204db85 Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 16:44:48 2010 +0000 Add const qualifiers to TargetLoweringObjectFile usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 314c74dc24dfe4d369355d6674b27c38b630002e Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 16:43:55 2010 +0000 Use const_cast instead of a C-style cast to cast away const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101639 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fe21291207fc7f76b073e04bd5092b54e23c4cb Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 16:29:15 2010 +0000 Start function numbering at 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101638 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc902ca0c8b718257ee3465c872389e364197e34 Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 15:32:28 2010 +0000 Delete now-unnecessary const_casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d1770de9172c6f58746558c9098491ce05ff6e5 Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 15:31:16 2010 +0000 Use cast instead of dyn_cast when assuming success. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101636 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3e8fa92af861dc32e6b38dfbc068064c79ebb3b Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 15:26:15 2010 +0000 Use const qualifiers with TargetLowering. This eliminates several const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101635 91177308-0d34-0410-b5e6-96231b3b80d8 commit a70afdbd13ef39cfc5cdf8169c6e8576fa371ac6 Author: Dan Gohman <gohman@apple.com> Date: Sat Apr 17 14:41:14 2010 +0000 Move per-function state out of TargetLowering subclasses and into MachineFunctionInfo subclasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101634 91177308-0d34-0410-b5e6-96231b3b80d8 commit da6718546fc4d460a1806cff620f50269ff6666b Author: Chandler Carruth <chandlerc@gmail.com> Date: Sat Apr 17 08:50:29 2010 +0000 Name these stub files consistently with the SPU and PPC targets' conventions. Also rename the classes appropriately. The CMake build already used these names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101631 91177308-0d34-0410-b5e6-96231b3b80d8 commit 780078db23f31f18f65eda4b1a5e2c15868fdbe0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 07:38:24 2010 +0000 a bunch of ssse3 instructions are misencoded to think they have an i8 field when they really do not. This fixes rdar://7840289 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101629 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c4fdfab87f616ef7e342da0130871811089a6d0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 07:17:19 2010 +0000 reenable r101565, removing a problematic assertion. CGSCC can delete nodes in regions of the callgraph that have already been visited. If new CG nodes are allocated to the same pointer, we shouldn't abort, just handle it correctly by assigning a new number. This should restore stability by removing invalidated pointers that *will* be reused from the densemap in the iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1901a754bd76cb86ed42727416be3cfcbd6b28b3 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Apr 17 07:07:11 2010 +0000 Postra machine licm must add registers defined by loop invariants to *all* of the live-in sets of BBs in the loop. Otherwise later pass may end up using the registers and override the invariant. rdar://7852937 No reasonablly sized test case possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101626 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd81bc507b4f4156e3fd8db9cfbc7efec652aa16 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Apr 17 07:00:24 2010 +0000 Refresh this documentation. Things have changed a bit in the mean time: - LLVMgold.so --> libLLVMgold.so - the GCC LTO project is no longer 'upcoming' - document the plugin support for 'ar' and 'nm' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101624 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11b07b494b26eb30f0262229241e089ae83e5c77 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Apr 17 06:47:47 2010 +0000 Fix codegen passes. -disable-ssc shouldn't disable postra machine licm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101622 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e676b2265c229b23d52cde7bf63b67b61527d56 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Apr 17 06:13:15 2010 +0000 More work to allow dag combiner to promote 16-bit ops to 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101621 91177308-0d34-0410-b5e6-96231b3b80d8 commit a07f49f6d47296497a2d73ae62bc3d9da8072cd4 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Apr 17 06:12:32 2010 +0000 Another 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101620 91177308-0d34-0410-b5e6-96231b3b80d8 commit b713c26ec5a9ab4ca5668f373596bb3994a28120 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Apr 17 05:30:19 2010 +0000 Revise my previous change to ExpandBIT_CONVERT. I hadn't realized that this may be called when either the source or destination type is i64, and my change also hadn't fixed the most obvious problem -- assuming that i64 will only be bitconverted to f64, ignoring the various vector types. Radar 7873160. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101615 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7aae32bd3357d1fa00abebd1e25be3f6a50e0b0b Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Apr 17 03:43:36 2010 +0000 Add nounwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 931c5589d16fcf40389ece5a13115ad278fc0824 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Apr 17 03:08:24 2010 +0000 Re-commit my previous SSAUpdater changes. The previous version naively tried to determine where to place PHIs by iteratively comparing reaching definitions at each block. That was just plain wrong. This version now computes the dominator tree within the subset of the CFG where PHIs may need to be placed, and then places the PHIs in the iterated dominance frontier of each definition. The rest of the patch is mostly the same, with a few more performance improvements added in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90b889afc55a38f80384ac1e56a6e877d609555e Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Apr 17 00:49:11 2010 +0000 As a temporary workaround for post-RA not handling DebugValue instructions, just remove them all. Radar 7873207 (working around the root problem of Radar 7759363). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101604 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f06b14a069f4f6570086de65506ad8fa59f6707 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Apr 17 00:38:36 2010 +0000 Revert "Use a simpler data structure to calculate the least recently used register in RegAllocLocal." This reverts commit 101392. It broke a buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101595 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30f6b474072e5d32523a5cb1ef6fd03090d24571 Author: Dale Johannesen <dalej@apple.com> Date: Sat Apr 17 00:08:21 2010 +0000 Reapply 101503+101520. These are "obviously correct" [Chris] and don't cause any problems on Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101584 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67210848e4d905e55468673c0e9b3c18acd6a71f Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 17 00:05:36 2010 +0000 disable r101565: an assert is getting triggered. More lurking badness no doubt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101583 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbbad2eefe7fbd5cc37a4b1319482dbc6712b7b4 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 23:52:30 2010 +0000 add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101581 91177308-0d34-0410-b5e6-96231b3b80d8 commit 860ba7b49808272ed6fc6ec2b799df9fccb00219 Author: Eric Christopher <echristo@apple.com> Date: Fri Apr 16 23:37:20 2010 +0000 Revert 101465, it broke internal OpenGL testing. Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101579 91177308-0d34-0410-b5e6-96231b3b80d8 commit 758fc4d8f5f3fd8a8b779b15c00cc8dcb92e21f7 Author: Devang Patel <dpatel@apple.com> Date: Fri Apr 16 23:33:45 2010 +0000 Add support to emit dwarf ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00c91c6a1ee213f41fda12865beeaa3a45681795 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Apr 16 23:32:37 2010 +0000 Use a simpler data structure to calculate the least recently used register in RegAllocLocal. This makes the local register allocator about 20% faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101574 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd52fb6a167672ae4a06d970439d518f9aca614e Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 16 23:30:28 2010 +0000 Cast to (uint64_t) instead of relying on the "ul" suffix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101573 91177308-0d34-0410-b5e6-96231b3b80d8 commit d538cebfd1fe20e37c55a1a587f74d8865c4b407 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 23:09:10 2010 +0000 Add a getSelectionDAGInfo member to TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101567 91177308-0d34-0410-b5e6-96231b3b80d8 commit a66c07d5a39137b46842df2a7fe8ea9ac69596d6 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 23:07:44 2010 +0000 update docs for api change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101566 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ba3fc412c8bd60ee21186e013cadb15b9573199 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 23:04:30 2010 +0000 building on the new CallGraphSCC abstraction, teach CallGraphSCCPassManager to keep the node entries in scc_iterator up to date instead of dangling as the SCC mutates. This is a really terrible problem which was causing -g to affect codegen because it would permute the memory image of the compiler process. Thanks to Dale for expertly hunting it down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4459f7b84e5cc4833426620d08510e99cfffe180 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 23:04:22 2010 +0000 Add skeleton target-specific SelectionDAGInfo files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101564 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9b393a97977989182ae49e0112dd7a6e7148c27 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 16 23:02:25 2010 +0000 Fixed logic error. Should check Builder for validity before calling SetSession on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fda122ef0d5830cdde46213b777e15c17007d9a Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 22:59:24 2010 +0000 move ReplaceNode out of line, rename scc_iterator::fini -> isAtEnd(). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44d0bc4f2a59ae1aa030fe556d56942bd2fd4615 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 22:59:06 2010 +0000 Regenerate configure script. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101561 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50dbc9a5b049d9a8b1e453967bc83377c1b0d97c Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 22:58:15 2010 +0000 Add an autoconf check for -retain-symbols-file and conditionalize use of that option with it. This eliminates an imprecise "Linux" test, and should help support old versions of gold. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101560 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb23b349f580795ea71e209569b279b7148528e4 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 16 22:48:31 2010 +0000 Minor change to make the test case comply with Vd<0> == '0' when Q == '1'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101559 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ee636a2288cfdc7a77968af87b0564a3255d2b8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 22:42:17 2010 +0000 introduce a new CallGraphSCC class, and pass it around to CallGraphSCCPass's instead of passing around a std::vector<CallGraphNode*>. No functionality change, but now we have a much tidier interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101558 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a4472e185dbb3962df16ad0998e9700bdd2739a Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 16 22:40:20 2010 +0000 Fixed a bug in DisassembleN1RegModImmFrm() where a break stmt was missing for a case. Also, the 0xFF hex literal involved in the shift for ESize64 should be suffixed "ul" to preserve the shift result. Implemented printHex*ImmOperand() by copying from ARMAsmPrinter.cpp and added a test case for DisassembleN1RegModImmFrm()/printHex64ImmOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e6593e39cf5c15847914e5b37033db806f1e10f Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 16 22:26:19 2010 +0000 (i32 sext_in_reg (i32 aext (i16 x)), i16) -> (i32 sext x). No known test case until -promote-16bit is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101551 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b039fe77d7c088fa64c31f4edf9bf111e623e59 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 21:57:10 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101548 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3042d50704a13772394d50692e3415c0291d870 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 21:43:55 2010 +0000 move PrintCallGraphPass out of the middle of CGPassManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101543 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97c65ca36c9fb5a0e03ec659e0027a763dab3d29 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 21:15:15 2010 +0000 add a missing break back, patch by Nico Schmidt! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101538 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9dfb0caee27099bf56ed37258fd1dc54eacec70 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 21:12:11 2010 +0000 Create a new TargetSelectionDAGInfo class. This will eventually acquire SelectionDAG-specific parts of TargetLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101537 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd895fdbaaf85d26c17f49082a9d8ff67418a143 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 20:22:43 2010 +0000 Commit this, which should have accompanied 101531. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24c476a03d4fdea94b18ce4aed213a9e7de196ee Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 20:11:05 2010 +0000 Eliminate an unnecessary SelectionDAG dependency in getOptimalMemOpType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 128a9f304bdcc3ec2bf1cf0aafe6db81f373a34c Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 20:08:45 2010 +0000 Fix this code to avoid implicit assumptions about the length of the array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0038cc798cbecf8129641946458bb8b40d301513 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 16 19:57:21 2010 +0000 In the same spirit of r101524, which removed the assert() from printAddrMode2OffsetOperand(), this patch removes the assert() from printAddrMode3OffsetOperand() and adds a test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101529 91177308-0d34-0410-b5e6-96231b3b80d8 commit a726d55f9b9fab779e5ac0cfa8412263a67acff8 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 19:36:41 2010 +0000 Revert 101520, which depended on 101503, which was reverted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101528 91177308-0d34-0410-b5e6-96231b3b80d8 commit c52f1e138604eefef954ae468b41543135ae48f8 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 16 19:33:23 2010 +0000 Multiclass LdStCop was using pre-UAL syntax LDC<c>L for the L fragment. Changed to the UAL syntax of LDCL<c>, instead. Add a test case for this change which also tests the removal of assert() from printAddrMode2OffsetOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101527 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a26d8e3b74ecbc8c6834dc6829e4d2ba52b3996 Author: Duncan Sands <baldrick@free.fr> Date: Fri Apr 16 19:28:59 2010 +0000 Revert commit 101503 (johannes), in the hope of fixing the dragonegg build, see http://google1.osuosl.org:8011/builders/dragonegg-x86_64-linux/builds/693 Original commit text: Use a ValueMap not a std::map for the reason indicated in the comment. This was causing nondeterministic changes in inlining decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101525 91177308-0d34-0410-b5e6-96231b3b80d8 commit c248d0e5a7fec2b57ff7f8d9b7cfbf11e9276ac9 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 16 19:10:52 2010 +0000 Remove the assert() from printAddrMode2OffsetOperand(). "#0 and #-0" are considered legal instructions. Refs: A8.6.51 LDC, LDC2 (immediate) -- page A8-107, A8.6.58 LDR (immediate, ARM) -- page A8-121, and A8.6.194 STR (immediate, ARM) -- page A8-395. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101524 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3602e248c9a3e9ad498b44af5ff8dd2025ab068 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 18:45:11 2010 +0000 Trim a #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101520 91177308-0d34-0410-b5e6-96231b3b80d8 commit 689e1808812917510d84aa0503e177f783b79466 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 18:37:31 2010 +0000 Revert r101455, which fails on the llvm-arm-linux buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101515 91177308-0d34-0410-b5e6-96231b3b80d8 commit be9e670edd1625679de40d616913428578f25a78 Author: Dale Johannesen <dalej@apple.com> Date: Fri Apr 16 18:16:08 2010 +0000 Use a ValueMap not a std::map for the reason indicated in the comment. This was causing nondeterministic changes in inlining decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a817ab4174055b6a5120aecbfa32142d433feeb Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 16 17:58:41 2010 +0000 80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101501 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87a08b649cd5bdc163c1dc96f866a3af64d3560a Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 16 17:57:59 2010 +0000 80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5edf29ca2d01daa3315eaabbe342796158ad58c0 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 17:15:02 2010 +0000 Avoid creating virtual registers for unused values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57fb9cbeb2f6d2cf26168fe180efb43498e7e3a0 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 16:55:18 2010 +0000 Fix an assertion string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101478 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9eeaebbbbc515af5138edaee70f837336bb7e636 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 16:52:37 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2436358b9c452817a2ef9746226a009674a27de4 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 16:01:18 2010 +0000 Disable inlining of recursive calls. It can complicate tailcallelim and dependent analyses, and increase code size, so doing it profitably would require more complex heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101471 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0e460fd5da34c51e833c8d7c807e0061c76822a Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 15:57:50 2010 +0000 Refine the detection of seemingly infinitely recursive calls where the callee is expected to be expanded to something else by codegen, so that normal infinitely recursive calls are still transformed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a9136f3c844816cd62e9f03c02aaa38c81d6175 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Apr 16 15:33:14 2010 +0000 reapply r101434 with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101465 91177308-0d34-0410-b5e6-96231b3b80d8 commit be754c2fed741cea3739f488e8504f099716324f Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 15:14:50 2010 +0000 Make callIsSmall accessible as a utility function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101463 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dc7eec6bfefb171a78ab08f98f8a22dbb8c473c Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 15:03:25 2010 +0000 Fix SCEVCommutativeExpr::print to be robust in the case of improper expression canonicalization. Its job is to print what's there, not to make judgements about it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101461 91177308-0d34-0410-b5e6-96231b3b80d8 commit 087422d31f333fdb90459c46110a680f65575255 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 13:32:55 2010 +0000 Delete a blank line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101459 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1aa8a5c741e6d474b3d696bae57e4ad28e9a4957 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 13:29:35 2010 +0000 Add Debug+Coverage to more svn:ignore properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0aa278c5115f3f46a86d1681b558868cc4c2655d Author: Bill Wendling <isanbard@gmail.com> Date: Fri Apr 16 09:04:28 2010 +0000 Add JIT exception handling test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2eb4bcf3a339727521e2b4c018ac04d1d590310c Author: Bill Wendling <isanbard@gmail.com> Date: Fri Apr 16 08:46:10 2010 +0000 The JIT calls TidyLandingPads to tidy up the landing pads. However, because the JIT doesn't use the MC back-end asm printer to emit labels that it uses, the section for the MCSymbol is never set. And thus the MCSymbol for the EH label isn't marked as "defined". Because of that, TidyLandingPads removes the needed landing pads from the JIT output. This breaks EH for every JIT program. This is a work-around for this limitation. We pass in the label locations map. If the label has a non-zero value, then it was "emitted" by the JIT and TidyLandingPads shouldn't remove that label. A nicer solution would be to mark the MCSymbol as "used" by the JIT and not rely upon the section being set to determine if it's defined or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ec8fc16a1bdc744b3e22e200d497e7c6a729947 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 06:20:22 2010 +0000 completed my pass over all 6+ months of commits, next step, format and make comprehendable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b21721e44ca2acd9ef837422a5e71db76aa6b5c Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 16 06:14:10 2010 +0000 Adding support for dag combiner to promote operations for profit. This requires target specific queries. For example, x86 should promote i16 to i32 when it does not impact load folding. x86 support is off by default. It can be enabled with -promote-16bit. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101448 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3eca403c64b587d01d67d7a982244acb4c479df7 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 16 05:46:06 2010 +0000 Use getAL() rather than a major constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101446 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5887ce439198ed57a3a88c894fdbe9bacb0aeeab Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 05:31:57 2010 +0000 Add Debug+Coverage and friends to svn:ignore properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9515b04a226ecd75ec8f92d68df3965f018d1c98 Author: Eric Christopher <echristo@apple.com> Date: Fri Apr 16 05:14:21 2010 +0000 Add a check for posix_spawn. Regenerate configure and other autoconf files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101444 91177308-0d34-0410-b5e6-96231b3b80d8 commit f42dca0626405b9ef0241282b25518c2507c885a Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 05:06:56 2010 +0000 Refine further the scope where the global DebugLoc value is active. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101443 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53b884301e2a4b6be70940b0e5da5fb21ba821f5 Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri Apr 16 04:32:20 2010 +0000 Revert r64616 which worked around http://gcc.gnu.org/PR42757 , we just didn't know it at the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101439 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7af82749798974c000184fd7b4bb02c4166def0c Author: Eric Christopher <echristo@apple.com> Date: Fri Apr 16 04:02:04 2010 +0000 Silence an unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83aa78f69992da76feb8ce31e3db4bbfbca8265a Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 02:32:17 2010 +0000 fix comment noticed by Bob git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101437 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38e526d837e200c4aae7017f4ee8ec8ddd5f93b6 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Apr 16 01:16:20 2010 +0000 back out r101423 and r101397, they break llvm-gcc self-host on darwin10 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101434 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6666d5a52b4032ebc93298a9236cd09efeeaffa Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 01:05:52 2010 +0000 move comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101433 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5bf89e64b863980071dc495886a657f27e8f0ca Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 01:05:38 2010 +0000 fix PR6832: we were using the alignment of a pointer when we wanted the alignment of the pointee. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 681846de6dfbb10b44d15341855c10933e6b7851 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 00:43:25 2010 +0000 Create an exports file, so that the plugin only exports the onload symbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101431 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0484b6d9e7168acd42a2252de19a6ad1d1c80d6 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 00:42:57 2010 +0000 Make things static that don't need to be referenced from outside the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101430 91177308-0d34-0410-b5e6-96231b3b80d8 commit f315c0974e9e8105f1e00d7b612087a193e8dfa3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 00:38:19 2010 +0000 improve comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101429 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95e6d3a376e8537a0f504abdca8c76e5d2db00ea Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 16 00:26:43 2010 +0000 Add an svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101428 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6daddc7ea3ad6b16f22da44a3a246479acc74bf Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 00:24:57 2010 +0000 pull all the ConvertToScalarInfo code together into one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101427 91177308-0d34-0410-b5e6-96231b3b80d8 commit cda2d4d9e7e32bac7f1c1d0c75337784674b6665 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 16 00:20:00 2010 +0000 more refactoring: suck some stuff out of SRoA into ConvertToScalarInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101425 91177308-0d34-0410-b5e6-96231b3b80d8 commit fce98b4ad2724fc1001de57a37161eb694625103 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Apr 16 00:06:45 2010 +0000 shift intrinsic operand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101423 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dc898ee2c87ee4bb68aa18301ad86d2c66842c9 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 23:50:26 2010 +0000 introduce a new ConvertToScalarInfo struct to simplify CanConvertToScalar/MergeInType. Eliminate a pointless LLVMContext argument to MergeInType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b7b4118689d55b46a43a27550c19360a7c7aea7 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Apr 15 23:41:02 2010 +0000 Avoid sinking machine instructions into a loop. MachineLoopInfo is already available when MachineSinking runs, so the check is free. There is no test case because it would require a critical edge into a loop, and CodeGenPrepare splits those. This check is just to be extra careful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101420 91177308-0d34-0410-b5e6-96231b3b80d8 commit 660b17487ab40505b8b1ba7f184cd75d3072ce03 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Apr 15 23:23:40 2010 +0000 Added another test case for am3offset operand, testing Rn, #+/-imm8. Previous checkin tested Rn, #+/-Rm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dd7741f6b2c41afc2d8ee6e71531bc0dd710569 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Apr 15 23:19:16 2010 +0000 Add test case for machine-sink on critical edges git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101416 91177308-0d34-0410-b5e6-96231b3b80d8 commit 029ff1eab7ec3392920a681c114e774bec087bc8 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Apr 15 23:12:47 2010 +0000 Fixed a bug in ARM disassembly where LDRSBT should have am3offset operand, not am2offset. Modified the instruction table entry and added a new test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b4f88d613799f0ad26e31f2d013cd840e228a76 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 23:08:00 2010 +0000 Make the export files absolute paths, and change Makefile.rules to expect them this way, to fix srcdir!=objdir builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101414 91177308-0d34-0410-b5e6-96231b3b80d8 commit b06998e340663e3aabe35010c75b3379ec1f2a35 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 22:46:27 2010 +0000 Add a dependency on the .dir file to make sure that the directory is created before the native exports file is built in a parallel build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101413 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a19c23f4638e15c82d4ab5b2667013fd5abfd22 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 15 22:20:34 2010 +0000 Use default lowering of DYNAMIC_STACKALLOC. As far as I can tell, ARM isle is doing the right thing and codegen looks correct for both Thumb and Thumb2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101410 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbeb47647271c1c1ed75bf15d6125508bd9f478d Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 21:59:20 2010 +0000 tidy interface to isOnlyCopiedFromConstantGlobal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101405 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9926137a588315faf630d65efa4816c6ff5d4d58 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Apr 15 21:57:43 2010 +0000 Don't use absolute path for EXPORTED_SYMBOL_FILE, this breaks under the new system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101404 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06bb2519b249be375576ca2a0080e70f40c9a04a Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 20:54:25 2010 +0000 Generalize the EXPORTED_SYMBOL_FILE concept in the Makefiles to work with native linking export files, including running sed to prepend underscores on darwin, and make use of it in libLTO and libEnhancedDisassembly. Remove the leading underscores from library export files so that they work with the new EXPORTED_SYMBOL_FILE support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101399 91177308-0d34-0410-b5e6-96231b3b80d8 commit d54ee2812304f81b513420913c569a65e8742c95 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 15 20:52:17 2010 +0000 zap mergeinfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101398 91177308-0d34-0410-b5e6-96231b3b80d8 commit df8299086470488f18f719362b9cdff18b51ba33 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 15 20:51:13 2010 +0000 reapply r101364, which has been backed out in r101368 with a fix rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101397 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd6cf18a99f97c1ec393a55ca731b8512198f4bf Author: Duncan Sands <baldrick@free.fr> Date: Thu Apr 15 20:35:54 2010 +0000 Pointed out by housel on #llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101395 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d3d5306ad4f8009847b22e8f3e0199a6f0d8414 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Apr 15 20:28:39 2010 +0000 Fix PR6847. RegScavenger should ignore DebugValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101392 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22eca091fe05e95cf6228d5e72d475a324942247 Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Thu Apr 15 19:53:35 2010 +0000 Make sure the initialization of a GC root is after its definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101388 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e2cbc6f33fbb71235f49070c6f30c22e2d9c9e7 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Apr 15 19:51:42 2010 +0000 Revert r100896 and around - this breaks the only mingw32 buildbot we have. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101387 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22850a2d2afee5e403f9da1c0f16ed65425255f9 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 15 19:44:21 2010 +0000 prune includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101385 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3edb155cee56328d9bfcec06cbbe605da4211b1 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 15 18:42:28 2010 +0000 ARM SelectDYN_ALLOC should emit a copy from SP rather than referencing SP directly. In cases where there are two dyn_alloc in the same BB it would have caused the old SP value to be reused and badness ensues. rdar://7493908 llvm is generating poor code for dynamic alloca, I'll fix that later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101383 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad9d1b20574558c5f25e792203c12ce89d34ca1d Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Apr 15 18:13:51 2010 +0000 DEBUG() print out "Unknown format" msg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101382 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ffcdf74b5198b4e70600e5a59723e936b7d23b4 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 17:34:58 2010 +0000 ReuseFrameIndexVals is used in multiple files, so it can't be static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101379 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f18dfca3d856af44b3876ee4f04f51b7da681d3 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 17:20:57 2010 +0000 EnablePPC64RS and EnablePPC32RS are used in multiple files, so they can't be static. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101377 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86ea588604f847f69ec0a260d1a661d87422de85 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 17:08:50 2010 +0000 Fix a bunch of namespace polution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97a51cf782c675ad7154721611de8fe432d85c08 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 16:23:27 2010 +0000 Fix namespace polution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 001f8ce0beed828aa1cee42aef0862e91b416c4c Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 16:19:08 2010 +0000 Make getPredecessorWithUniqueSuccessorForBB return the unique successor in addition to the predecessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101374 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6861e272c166892019f54a08fe163ec55008e0f1 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 15 15:14:46 2010 +0000 typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101371 91177308-0d34-0410-b5e6-96231b3b80d8 commit 713bf8f976133fb2e334880aab8075cd0557647f Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 15 12:46:56 2010 +0000 back out r101364, as it trips the linux nightlybot on some clang C++ tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cc5d1edf20ed633d9427177221984cf048a17e4 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 15 11:36:12 2010 +0000 zap mergeinfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101366 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38fc47ab0c543df85fb7a7d19e0c34cbb96608d9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Apr 15 11:33:14 2010 +0000 Simplify ".bc" detection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101365 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24d53f15aaf70b2f43ba585bb223c6790b43882b Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 15 10:49:53 2010 +0000 rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f9d67cdd0a5d2eae6aaabeb9dcff4a9eebe0c83 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 06:10:49 2010 +0000 enhance the load/store narrowing optimization to handle a tokenfactor in between the load/store. This allows us to optimize test7 into: _test7: ## @test7 ## BB#0: ## %entry movl (%rdx), %eax ## kill: SIL<def> ESI<kill> movb %sil, 5(%rdi) ret instead of: _test7: ## @test7 ## BB#0: ## %entry movl 4(%esp), %ecx movl $-65281, %eax ## imm = 0xFFFFFFFFFFFF00FF andl 4(%ecx), %eax movzbl 8(%esp), %edx shll $8, %edx addl %eax, %edx movl 12(%esp), %eax movl (%eax), %eax movl %edx, 4(%ecx) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29d4bd4fa11946cbf27668dc25c7c90d24b6d06e Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 05:40:59 2010 +0000 teach codegen to turn trunc(zextload) into load when possible. This doesn't occur much at all, it only seems to formed in the case when the trunc optimization kicks in due to phase ordering. In that case it is saves a few bytes on x86-32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101350 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b5d0e72f22358310a020e77a2eb3aaae399de76 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 05:28:43 2010 +0000 add a simple dag combine to replace trivial shl+lshr with and. This happens with the store->load narrowing stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101348 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0c66d2c7ba1850b4d3d7f5ab61ebdde6fa305b8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 04:48:01 2010 +0000 Implement rdar://7860110 (also in target/readme.txt) narrowing a load/or/and/store sequence into a narrower store when it is safe. Daniel tells me that clang will start producing this sort of thing with bitfields, and this does trigger a few dozen times on 176.gcc produced by llvm-gcc even now. This compiles code like CodeGen/X86/2009-05-28-DAGCombineCrash.ll into: movl %eax, 36(%rdi) instead of: movl $4294967295, %eax ## imm = 0xFFFFFFFF andq 32(%rdi), %rax shlq $32, %rcx addq %rax, %rcx movq %rcx, 32(%rdi) and each of the testcases into a single store. Each of them used to compile into craziness like this: _test4: movl $65535, %eax ## imm = 0xFFFF andl (%rdi), %eax shll $16, %esi addl %eax, %esi movl %esi, (%rdi) ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101343 91177308-0d34-0410-b5e6-96231b3b80d8 commit 561ff0eef130e45da2865e906f03d3f6aa9a0fac Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 04:33:49 2010 +0000 Add more const qualifiers for LLVM IR pointers in CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101342 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19fa53e51bbbb390a0b6b590c02615ca140d3c16 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 04:31:42 2010 +0000 further tweak this to do something useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101341 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61e826b330f5819bbecc5aefc334d59d2d5acc6c Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 04:30:19 2010 +0000 remove undef control flow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101340 91177308-0d34-0410-b5e6-96231b3b80d8 commit f43390593d8526bd24731eef5fcbed4cce7bc412 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Apr 15 03:47:24 2010 +0000 Remove unnecessary uses of <iostream>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101338 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bf282e06923461699a975a1aeb1402effabf38e Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Apr 15 03:47:20 2010 +0000 tests: MC/Disassembler tests depend on ARM support being compiler in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101337 91177308-0d34-0410-b5e6-96231b3b80d8 commit e613325087bb1d8cf4a1aed3c4c9a0a760b3ba7f Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 15 03:32:19 2010 +0000 fix a crash on "lli ex" or any other file whose name is exactly two characters long. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cefb9ae9c49b7fb152fcaba7cef1e012b618c4c Author: Anders Carlsson <andersca@mac.com> Date: Thu Apr 15 03:11:28 2010 +0000 Fix build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101335 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3337672480be3e06bbe736c2e2a796f2220bf97 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 15 01:51:59 2010 +0000 Add const qualifiers to CodeGen's use of LLVM IR constructs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101334 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef4dee4a11ab2cc82094c6477d9c6868c424a8c0 Author: Eric Christopher <echristo@apple.com> Date: Thu Apr 15 01:40:20 2010 +0000 Allow lowering for palignr instructions for mmx sized vectors. Add patterns to handle the lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101331 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3981fe0ac688539d7a6b65c14a1b5eb76995859 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 15 01:25:27 2010 +0000 More 80 violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101330 91177308-0d34-0410-b5e6-96231b3b80d8 commit 490b50521fce6e5e6dd59b10bc928ec8343713a6 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Apr 15 01:20:56 2010 +0000 Wrap the error msgs in DEBUG() macro so that they won't appear in NDEBUG build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101329 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68175469e6436a41228aa02b17ae4467945605fc Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 15 01:01:55 2010 +0000 80 col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101325 91177308-0d34-0410-b5e6-96231b3b80d8 commit db12eec3d558695d599723a9098912dea3b7e815 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 15 00:02:49 2010 +0000 Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101317 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bbd4d6178aefb6359cd11dfd7053f4d40695b95 Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 14 23:56:24 2010 +0000 There is no need to track compile unit offsets if there is only one compile unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101315 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e3cc3a1c593ef982275895dae015610b8ce372c Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 14 23:54:13 2010 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101314 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ff01e24496f92e3ff9284024b8de9816e74eee4 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Wed Apr 14 23:42:23 2010 +0000 IPO needs ScalarOpts and InstCombine in its libs The commit "Adding IPSCCP and Internalize passes to the C-bindings" introduced new dependencies for IPO. Add these to the CMAKE build as otherwise the BUILD_SHARED_LIBS=1 build fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101313 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7466aed562a244da2b6fcc598d3f5a2e97045997 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 14 22:37:17 2010 +0000 Fixed another assert exposed by fuzzing. Now, the DisassembleVFPLdStMulFrm() function checks whether we have a valid submode for VLDM/VSTM (must be either "ia" or "db") before calling ARM_AM::getAM5Opc(AMSubMode, unsigned char). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101306 91177308-0d34-0410-b5e6-96231b3b80d8 commit eae0fc1bf0b82d0fc635cc3e9e15413183e62aae Author: Jim Grosbach <grosbach@apple.com> Date: Wed Apr 14 22:28:31 2010 +0000 Add -arm-long-calls option to force calls to be indirect. This makes the kernel linker happier when dealing with kexts. Radar 7805069 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93437351632729b7af1f6c3570d8e2f8b3732770 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 22:24:25 2010 +0000 Fix TrackingVH to handle const Value subclasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ff9c5f95f4ae967d6308424c52d73e4154028b2 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 22:23:05 2010 +0000 Remove a const here. This makes this function consistent with all the other getOperand wrappers, and it makes it easier to use with DebugInfo code, which isn't currently prepared to see const MDNode *. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101299 91177308-0d34-0410-b5e6-96231b3b80d8 commit f411ad05427d8338acf27c3c0325f3622f85b235 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 22:20:45 2010 +0000 Constify GetConstantStringInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101298 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46ebe1da8a1be97583ebdf07aa75b00a982f7a86 Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Wed Apr 14 22:06:37 2010 +0000 Don't use DILocation when processing a DebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16af0b111c3a55df0b71c03938664e5680c4aea2 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 14 22:04:45 2010 +0000 For t2BFI disassembly, apply the same error checking as in r101205. Change the error msg to read "Encoding error: msb < lsb". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101293 91177308-0d34-0410-b5e6-96231b3b80d8 commit c815a5dfb5a9874d4b7788d4fb83f98fe2bc22d2 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 21:47:32 2010 +0000 Move a bunch of methods from CallSite to CallSiteBase, so that they can be used in ImmutableCallSite too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101292 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2f08920702d2b42564493f0d3ee7e1926387e3d Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 14 21:03:13 2010 +0000 Fixed another assert exposed by fuzzing. The utility function getRegisterEnum() was asserting because the (RegClass, RegNum) combination doesn't make sense from an encoding point of view. Since getRegisterEnum() is used all over the place, to change the code to check for encoding error after each call would not only bloat the code, but also make it less readable. An Err flag is added to the ARMBasicMCBuilder where a client can set a non-zero value to indicate some kind of error condition while building up the MCInst. ARMBasicMCBuilder::BuildIt() checks this flag and returns false if a non-zero value is detected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 677d7ef68efda9ab3116da51480b63f20565efa9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Apr 14 20:56:09 2010 +0000 Remove unneeded types from test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101286 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7942413455d31213f3030a881da332ef5791151b Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 14 20:52:55 2010 +0000 - Code clean up to reduce indentation. - TryToOptimizeStoreOfMallocToGlobal should check if TargetData is available and bail out if it is not. The transformations being done requires TD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6eaeffca45f31d67b36ea46c94b10ea135e82de3 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 20:49:44 2010 +0000 Use FunTy instead of hard-coding Function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101283 91177308-0d34-0410-b5e6-96231b3b80d8 commit 402ce87fe7de80ccc1a30feba1663f337182528b Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Apr 14 20:45:23 2010 +0000 Don't custom lower bit converts to ARM VMOVDRRD or VMOVDRR when the operand does not have a legal type. The legalizer does not know how to handle those nodes. Radar 7854640. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101282 91177308-0d34-0410-b5e6-96231b3b80d8 commit 712c6b4946a75b0349d7f27e38f836033af58784 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 20:31:28 2010 +0000 Oops, make these public. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101280 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb0d7986415e9c98fe36748008875f408111d8c6 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 20:28:44 2010 +0000 Move getType() and getCaller() into CallSiteBase so that ImmutableCallSite can use them too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101279 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebd8b4c30b879260bb58fbe11ad1e366af2eb637 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 14 20:22:17 2010 +0000 Trim tests and convert to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101277 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47e3a4d7a8bbd3f7b041670750d7f74fbb9d8f63 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 20:17:22 2010 +0000 Delete unneeeded arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101276 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5eeb33dbcb5a720b6eb5fa74efbb90fff70cfceb Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 20:05:00 2010 +0000 Delete unused arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101275 91177308-0d34-0410-b5e6-96231b3b80d8 commit 528966644419cdd4332abee54033d43a3218f7ab Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 19:53:31 2010 +0000 Factor out EH landing pad code into a separate function, and constify a bunch of stuff to support it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101273 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee584d974f081fc27d86ee8a18b9b65ba1899e4f Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 19:30:02 2010 +0000 Reset the debug location even if the instruction was a terminator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101272 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc9815da83afe7d7a996510d9f6eda8cc69c9ad6 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 18:57:18 2010 +0000 Fix a missing #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00ecc1d269ec5ed8935e40d0f5414c3b9dce649b Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 18:49:17 2010 +0000 Refine #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85b28869cc2779648507fec6847399d600efbeeb Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 18:44:34 2010 +0000 Split ISD::NodeType and a few related items out of SelectionDAGNodes.h into a separate header to allow clients to use them without pulling in SelectionDAG-specific declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101268 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e48e1e12ab0d3856ac4c26de078c56bd6d49664 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 18:31:02 2010 +0000 Pull utility routines with no SelectionDAG dependence out of SelectionDAGBuilder. FunctionLoweringInfo isn't an ideal place for them to live, but it's better than SelectionDAGBuilder for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101267 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61964a712c6c19a0661ac678dfeae9104f634d39 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 18:24:06 2010 +0000 Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101266 91177308-0d34-0410-b5e6-96231b3b80d8 commit d44604869bdae1e4194a47c0a28cb27c260fbd12 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Apr 14 18:13:29 2010 +0000 performance: cache the dereferenced use_iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101265 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa85f86e88a6485aedf47b37db9a792f3d313458 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 17:40:25 2010 +0000 Delete an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1da3fb3139415ce6a14c7fe6961bf5d2333cf147 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 17:22:02 2010 +0000 Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101263 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca94eaac7d0a4539bca6fb1a9fe6b75ef55e979c Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 17:13:16 2010 +0000 Clear the FunctionLoweringInfo object before doing other things that don't need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101262 91177308-0d34-0410-b5e6-96231b3b80d8 commit a201e03841d9b71b2a410be250a378807db87804 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 17:11:23 2010 +0000 Move this assert out of SelectionDAGISel into FunctionLoweringInfo, and drop the redundant #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101261 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b7f93580d630eab1ad5de638203b52d2178ddbd Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 17:09:37 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101260 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ca6360897ddf051acb536afea7c4e4a2ce30c32 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 17:05:00 2010 +0000 Move the code for initialing the entry block livein set out of SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101258 91177308-0d34-0410-b5e6-96231b3b80d8 commit dddc65afa013fa09e9ad94958c9b01cf9bd36b6b Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 17:02:07 2010 +0000 Reorgnaize this code to be more tidy and readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101256 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7d3049e876df65bddbf4d434ce4cfb74068b596 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 16:54:39 2010 +0000 Trim #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101255 91177308-0d34-0410-b5e6-96231b3b80d8 commit 816ce9fce0db8333dc46a58df0bd120496045a41 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 16:51:49 2010 +0000 Move the code for emitting livein copies out of SelectionDAGISel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18ea59a1c260d6daa1fa527221ac886b34a44799 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Apr 14 16:48:56 2010 +0000 performance: cache the dereferenced use_iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101253 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd0ad0abc2bdd52b0872dfe9823171597fce787c Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 16:32:56 2010 +0000 Sink landing-pad marking code out of SelectionDAGISel::runOnMachineFunction into FunctionLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f7d081b2c1bde424436302ea3f5f0c69e33aad8 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 16:30:40 2010 +0000 It's not necessary to recompute EB here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101251 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc1f30118ebce8e25a9ca1abea62af82a246f890 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Apr 14 16:13:56 2010 +0000 performance: cache the dereferenced use_iterator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101250 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96ae35a6134dbc6f5283f0195a7899b007af0b72 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 16:08:56 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101248 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1f39c394a9b974121e546e8ca44a86141bbd9ce Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 15:59:02 2010 +0000 Fix whitespace, comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101247 91177308-0d34-0410-b5e6-96231b3b80d8 commit c26a9ca3758f4380a746303ab100d3b7eace43c8 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 15:50:02 2010 +0000 Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101246 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3062a7ca035a7f6a54101b02b5f2b2c845570803 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 15:41:50 2010 +0000 Use C++, not C++-standard-library-internals-ese. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101245 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7ff711e7d64348cddb56f470c72ac1a9465af89 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 15:38:15 2010 +0000 Make SuccIterator's private parts private too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101244 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab60dd65f7786b221af9ceadb3c60e5e97c0a949 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 15:33:04 2010 +0000 Make helper utility members private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101243 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48d108e33f4d86452f6a20ce5612a0fb1169de13 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Apr 14 13:56:38 2010 +0000 EDis: Don't include inttypes.h. We support compilers which don't provide it. It was unused anyways. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101241 91177308-0d34-0410-b5e6-96231b3b80d8 commit c00b721a91de0339bfb72cebf99a6cdd5263f21b Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 05:51:59 2010 +0000 Enable RTTI again. While this works fine for LLVM, it creates an ABI incompatibility with some clients covered by the buildbots, such as llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101237 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8caaba2fef875941dbd8f6f98bc633872c05f0ed Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 05:35:20 2010 +0000 Don't forget cmake! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101234 91177308-0d34-0410-b5e6-96231b3b80d8 commit a37976fc29b23959dfc50decaeacc00fa8e5ef01 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 05:30:13 2010 +0000 Turn off RTTI for VMCore. Yay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101233 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4b5492fe0efb89c89aa621e2f701677dc9e59c3 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 05:03:50 2010 +0000 I don't know how, but I managed to goof the revert. Remove function that should have been removed in r101231. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101232 91177308-0d34-0410-b5e6-96231b3b80d8 commit c557cd85ec0759187521ab97bbbc3824bf58b670 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 04:51:58 2010 +0000 Revert r101213. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48bee0ac4e28647032f6b7a3e616da21ab3795d1 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 04:46:11 2010 +0000 Remove accidentally committed cruft. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99216dd5763361970990d5803c245da5e89076cb Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 04:40:35 2010 +0000 Fix 80 column ruler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101229 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3167bdeb4242c30622b1a6218f7cef3de53e0b1 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 04:40:31 2010 +0000 Bugpoint no longer uses exceptions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b6ed67b1bac684f05cc9552b764d6080ab48e2a Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 14 04:40:28 2010 +0000 implement mc asmparser support for '.', which gets the current PC. rdar://7834775 We now produce an identical .o file compared to the cctools assembler for something like this: _f0: L0: jmp L1 .long . - L0 L1: jmp A .long . - L1 .zerofill __DATA,_bss,A,0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f81c6070b755354bda127bb16f5d82fd2f2b9a6 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 04:19:05 2010 +0000 Remove tab. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101223 91177308-0d34-0410-b5e6-96231b3b80d8 commit bda0fe415f29f4930cbbdb1affe7a69e777a1fbf Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 03:46:42 2010 +0000 Commit testcase for r101213. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101214 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1f005f4920d982006bd6c37a4b26e8dde53046e Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Apr 14 03:38:11 2010 +0000 While DAE can't modify the function signature of an externally visible function, it can check whether the visible direct callers are passing in parameters to dead arguments and replace those with undef. This reinstates r94322 with bugs fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101213 91177308-0d34-0410-b5e6-96231b3b80d8 commit e93fa0444e2299a732f0b5323300aaface9000ed Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 02:33:23 2010 +0000 Generalize this code to handle Instructions in addition to ConstantExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101210 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bb7c451897ece89c6a42abf908519c6896c32c6 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 14 02:09:45 2010 +0000 Reorder the methods of this class to be a little more organized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101206 91177308-0d34-0410-b5e6-96231b3b80d8 commit e807add02775248f4728512703c05263a3e87b26 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 14 02:05:29 2010 +0000 Fixed another assert exposed by fuzzing. Now, when an encoding error occurs involing getBFCInvMask() where lsb <= msb does not hold true, the disassembler just returns false, instead of assert, to indicate disassembly error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101205 91177308-0d34-0410-b5e6-96231b3b80d8 commit 697e719429810c94b9002ed66b46b7106d989f13 Author: Devang Patel <dpatel@apple.com> Date: Wed Apr 14 01:18:28 2010 +0000 Clear MachineInstr->MCSymbol maps at the end of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101202 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c2e48a3345c235aa8ccc7e7982ea3bc9f754ed8 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 14 01:17:37 2010 +0000 Fixed an assert() exposed by fuzzing. Now, instead of assert when an invalid instruction encoding is encountered, we just return a NULL ARMBasicMCBuilder instance and the client just returns false to indicate disassembly error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03d2560d0bb645efc34c93df1a5dc9361d1b1a44 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Apr 13 23:34:11 2010 +0000 Fix -Asserts warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101191 91177308-0d34-0410-b5e6-96231b3b80d8 commit bee9522d2118216632b9180c26389cfe006b08e0 Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 13 23:23:09 2010 +0000 XFAIL this test for powerpc. This test relies on iSel lowering dbg_declare intrinsic when CodeGen::OptLevel is None. On PPC side, CodeGen::OptLevel stays to default when -O0 is used on the command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101190 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28d4a3b0250f1e640f34e4ed7ce7a8c3b75bc100 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Tue Apr 13 22:47:43 2010 +0000 Unbreak CMake build by improving the EnhancedDisassembly makefile a bit (we're not trying to build a shared library yet) and generating the X86GenEDInfo.inc and ARMGenEDInfo.inc files as necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101188 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccdbc82a6e5b40d6b2858368a4452fda7619ac36 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 13 22:13:34 2010 +0000 Fast path implicit_def check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101183 91177308-0d34-0410-b5e6-96231b3b80d8 commit d67f0d77fd8dfd1ed2039ca97412815cef8a92bb Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 13 22:10:03 2010 +0000 Add test for post-ra machine licm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101182 91177308-0d34-0410-b5e6-96231b3b80d8 commit 109c0b329bdb3d466fe7db17299ebd416be4021c Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Apr 13 22:03:22 2010 +0000 Handle a v2f64 formal parameter that is split between registers and memory such that the entire second half is in memory. Radar 7855014. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101181 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84241a85e81b456d8b654cf010d5c9380cf16939 Author: Sean Callanan <scallanan@apple.com> Date: Tue Apr 13 21:36:35 2010 +0000 Quick fix for build errors caused by undefined NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 636a1390213602bb376cc1336abb5a6d5cc797d9 Author: Sean Callanan <scallanan@apple.com> Date: Tue Apr 13 21:21:57 2010 +0000 Fixed a nasty layering violation in the edis source code. It used to #include the enhanced disassembly information for the targets it supported straight out of lib/Target/{X86,ARM,...} but now it uses a new interface provided by MCDisassembler, and (so far) implemented by X86 and ARM. Also removed hacky #define-controlled initialization of targets in edis. If clients only want edis to initialize a limited set of targets, they can set --enable-targets on the configure command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101179 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8daaaac5c4179cc9d076a7ff4753904d3cc74b3 Author: Ted Kremenek <kremenek@apple.com> Date: Tue Apr 13 20:52:50 2010 +0000 Add CMake support for 'edis'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101177 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70269cef85e9ac300131c5ac289aa176aa9969ef Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Apr 13 20:35:16 2010 +0000 Changed getSOImmValRotate()'s hunt retry logic to ignore the low order 6 bits, instead of 7, because we are only looking for even rotate amount. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5994241ca9f6b12d2cd69ec7e43d58f37c1b8ffc Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 13 20:35:04 2010 +0000 Do not include types without any definition in pubtypes list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101171 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d274a007b714c004933a1199f2e901748b656ae Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 13 20:25:29 2010 +0000 Avoid variable shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d624f77f9d3032f9efa82814bdff5f4db68a692 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 13 20:21:05 2010 +0000 Expand postra machine licm's capability a little more. If an instruction's register operands are all loop invariants, then it's safe to hoist it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 149f2caeb0419a9a723c1408fd6639f2811ac9f4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Apr 13 19:06:14 2010 +0000 Teach MachineSinking to handle easy critical edges. Sometimes it is desirable to sink instructions along a critical edge: x = ... if (a && b) ... else use(x); The 'a && b' condition creates a critical edge to the else block, but we still want to sink the computation of x into the block. The else block is dominated by the parent block, so we are not pushing instructions into new code paths. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101165 91177308-0d34-0410-b5e6-96231b3b80d8 commit cce390e07f293813e61d9a1c5442b7a60123e905 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 13 18:54:04 2010 +0000 Fix test on non-x86 hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101163 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2956e82a13536811a8c8440179a569f30f17f839 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 13 18:50:27 2010 +0000 Re-apply 101075 and fix it properly. Just reuse the debug info of the branch instruction being optimized. There is no need to --I which can deref off start of the BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101162 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4969ea67da91b820aa72cf38a12fbb19f1fd627f Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 13 18:41:17 2010 +0000 Make the disassembler respect the assembler dialect when printing instructions, patch by Marius Wachtler! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101160 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2316dcb96e8ef3dac65eb0b8333af04e1dab22b Author: Eric Christopher <echristo@apple.com> Date: Tue Apr 13 18:37:58 2010 +0000 Temporarily revert r101075, it's causing invalid iterator assertions in a nightly tester. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101158 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bf3373bbc2de2a1596515413bc4868fe00a9731 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 13 18:16:00 2010 +0000 Teach postra machine licm to hoist more obvious invariants, e.g. instructions with no source operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101154 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3dab23383d3b1793dcf2bc2777b090a9ff315fc Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 17:07:06 2010 +0000 Add a few comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101148 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6c93b67d2b66dd503c5102a43ac51173330248b Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 16:57:55 2010 +0000 Eliminate MachineBasicBlock::const_livein_iterator and make MachineBasicBlock::livein_iterator a const_iterator, because clients shouldn't ever be using the iterator interface to mutate the livein set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c5ac29bd631177741d2a7c4a6a4b7115bd94871 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 16:56:45 2010 +0000 Rename MachineFrameInfo variables to MFI, for consistency with the rest of CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0456f1bf26818801683cc492717882c7cd65ac71 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 16:55:37 2010 +0000 Move MachineRegisterInfo's isLiveIn and isLiveOut out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101145 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1c49c0337575ffa544d8d989fa020a41db2739a Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 16:53:51 2010 +0000 Use MachineBasicBlock::isLiveIn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b4bc601ae1fd33e81786964bce6c85495a3f1ce Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 16:51:39 2010 +0000 Delete an unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101143 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb6d410e42a28462a1dc9e3f57fbced8d7587ddd Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 16:51:03 2010 +0000 Teach ScalarEvolution to simplify smax and umax when it can prove that one operand is always greater than another. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101142 91177308-0d34-0410-b5e6-96231b3b80d8 commit 524cb69747dc1f61552316928fc5bfa598e72fd7 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 16:49:23 2010 +0000 Minor code micro-optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ce1b50c5e846733824999d63c7b280b9b396893 Author: Eric Christopher <echristo@apple.com> Date: Tue Apr 13 16:41:29 2010 +0000 Actually... return after the check for invalid input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101139 91177308-0d34-0410-b5e6-96231b3b80d8 commit 979dd7bc975a2be66cfe767f25d8160c5ba657c8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Apr 13 16:38:06 2010 +0000 BumpPtrAllocator::Reset() doesn't need to allocate anything. (Thanks, Jakob) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101138 91177308-0d34-0410-b5e6-96231b3b80d8 commit 297ed2c297668f2332629bc0eaffb520e3b75b47 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Apr 13 15:01:26 2010 +0000 Update unittest for allocator laziness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0738d3f048580a2079eb62128896dc4716bf6018 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Apr 13 14:41:51 2010 +0000 Let BumpPtrAllocator lazily allocate the first slab. We have some code in llvm and clang where a BumpPtrAllocator is declared in a class but never used in the common case. Stop wasting memory there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 026c6de0927024d9bc6fac1d67045474665cbb57 Author: Owen Anderson <resistor@mac.com> Date: Tue Apr 13 08:33:09 2010 +0000 Remove SCCVN from the CMake build system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101125 91177308-0d34-0410-b5e6-96231b3b80d8 commit bedf2cb24b2397339b30ae5cff87924c112cc947 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 13 06:37:00 2010 +0000 checkpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101118 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d824095acc3ced7d4debf8da3ca37ed2c2d488d Author: Owen Anderson <resistor@mac.com> Date: Tue Apr 13 05:24:08 2010 +0000 SCCVN, we hardly knew ye! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101117 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00247b0b7355a849906e4b797a4a00a53e0483dd Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 13 04:35:39 2010 +0000 Fix PR6826: GraphWriter delete the generated file before "dotty" load it, patch by 'ether'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101116 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8f6cdf7979dfd8c4d160e2362ffa2c710117582 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Apr 13 02:11:48 2010 +0000 Replace r101053 with a fix for getSOImmValRotate() so that it will correctly recognize all the valid rotated immediates. This fixes the disassembler issue and will also help codegen for some unusual constant values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101114 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3820adf9567960f6e939f000dfcfb19d77cf6b08 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 13 01:46:36 2010 +0000 Teach IndVarSimplify how to eliminate remainder operators where the numerator is an induction variable. For example, with code like this: for (i=0;i<n;++i) x[i%n] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the remainder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 254bf80c5ee562bfed65820a0bbd892a599c3001 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Apr 13 01:39:07 2010 +0000 VMCore: Add Type::getIntN[Ptr]Ty, which are the obvious generic forms of Type::getInt{1,8,...}[Ptr]Ty, so code can consistently use the methods on Type without occasionally needed to call IntegerType::get. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0135f0f7a66c43377639a8dd61b5bcc5e827bb84 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Apr 13 01:38:57 2010 +0000 IRBuilder: Add Create{Shl,LShr,And,Or,Xor} methods from uin64_t and APInt constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101110 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca8bebc7b8644d4409686fd83cf0af538b38b829 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 13 00:36:43 2010 +0000 add llvm codegen support for -ffunction-sections and -fdata-sections, patch by Sylvere Teissier! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101106 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9848aacff1a562f973c7dfdd5098f3e2f6299691 Author: Sean Callanan <scallanan@apple.com> Date: Mon Apr 12 23:55:28 2010 +0000 Build system fix to make llvm-mc properly build after edis. Really, there ought to be some mechanism to ensure that PARALLEL_DIRS get built after DIRS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 032aa0e7bf2376d9901703080a952b7d06562594 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 23:08:18 2010 +0000 Micro-optimize a few hot spots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101086 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d9983257429cf99518b9fb6bb88619f5b3e4dbb Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 12 23:07:17 2010 +0000 Use .set expression for x86 pic jump table reference to reduce assembly relocation. rdar://7738756 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65797a785d702b54d2c91171fb3f31e13def0e00 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 23:03:26 2010 +0000 Add fast paths to ScalarEvolution::getSizeOf and getOffsetOf, as they're used a lot by getNodeForGEP, which can be called a lot. This speeds up -iv-users by around 15% on several testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101083 91177308-0d34-0410-b5e6-96231b3b80d8 commit d437964a33f205b2c74fa516c72c0eb7754be204 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Apr 12 22:43:21 2010 +0000 Third time's a charm... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f3ce5b6644017fb3766c139a32d2763c14a362d Author: Bill Wendling <isanbard@gmail.com> Date: Mon Apr 12 22:40:37 2010 +0000 Genericize the label test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101079 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbe4c4bc6f7bfe4cbf004bfd435187e4d2e84503 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Apr 12 22:25:42 2010 +0000 Correct test to test what I mean it to test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101077 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a4d61727e697a9b7fd78c7da06af1019339b66a Author: Bill Wendling <isanbard@gmail.com> Date: Mon Apr 12 22:19:57 2010 +0000 Micro-optimization: If we have this situation: jCC L1 jmp L2 L1: ... L2: ... We can get a small performance boost by emitting this instead: jnCC L2 L1: ... L2: ... This testcase shows an example of this: float func(float x, float y) { double product = (double)x * y; if (product == 0.0) return product; return product - 1.0; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101075 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc848c58e4ad0be63b0b07633ba96e2e94a817e5 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 22:12:29 2010 +0000 Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ae43ef69221e33dbf7b0c16b85ea9789180d882 Author: Sean Callanan <scallanan@apple.com> Date: Mon Apr 12 21:55:49 2010 +0000 Build system fixes. llvm-mc depends on libEnhancedDisassembly, so we now build the static library in all cases (although the shared library is only built when requested/possible). Also, fixed a bug where edis wasn't properly initializing the targets it uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101072 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3fd2ae7975c8ea5790f4d3555cf038d0bc9d888 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 21:13:43 2010 +0000 Suppress LinearFunctionTestReplace when the computed backedge-taken expression is a UDiv and it doesn't appear that the UDiv came from the user's source. ScalarEvolution has recently figured out how to compute a tripcount expression for the inner loop in SingleSource/Benchmarks/Shootout/sieve.c, using a udiv. Emitting a udiv instruction dramatically slows down the enclosing loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101068 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b1156823b54c3d5aa0a65c0f952019f064c4ab9 Author: Sean Callanan <scallanan@apple.com> Date: Mon Apr 12 20:23:08 2010 +0000 Bug fix: made the enhanced disassembler's link flags work properly when EDIS_VERSION is defined git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101063 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32908d6da0d50c9c92f7da03b7d8b2e6ceab2373 Author: Sean Callanan <scallanan@apple.com> Date: Mon Apr 12 20:21:56 2010 +0000 Bug fix: included System/Types.h instead of inttypes.h to allow building on Windows. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101062 91177308-0d34-0410-b5e6-96231b3b80d8 commit d76cf5a86ef75e1df7931daf02cefa238d0a890a Author: Sean Callanan <scallanan@apple.com> Date: Mon Apr 12 19:43:00 2010 +0000 Second try at integrating the edis tester. This time I use the LIBS variable, which is not subject to a %.a -> -l% transformation, to link llvm-mc against libEnhancedDisassembly. llvm-mc -edis works the same as llvm-mc -disassemble, but outputs tokens and operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27d3ecbfe2dc3048fe5fb8abf9d4cdd95b5cefd6 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Apr 12 18:46:53 2010 +0000 Fixed a crasher in arm disassembler within ARMInstPrinter.cpp after calling ARM_AM::getSoImmVal(V) with a legitimate so_imm value: #245 rotate right by 2. Introduce ARM_AM::getSOImmValOneOrNoRotate(unsigned Arg) which is called from ARMInstPrinter.cpp's printSOImm() function, replacing ARM_AM::getSOImmVal(V). [12:44:43] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $ gdb Debug/bin/llvm-mc GNU gdb 6.3.50-20050815 (Apple version gdb-1346) (Fri Sep 18 20:40:51 UTC 2009) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ... done (gdb) set args -triple=arm-apple-darwin9 -debug-only=arm-disassembler --disassemble (gdb) r Starting program: /Volumes/data/llvm/git/trunk/Debug/bin/llvm-mc -triple=arm-apple-darwin9 -debug-only=arm-disassembler --disassemble Reading symbols for shared libraries ++. done 0xf5 0x71 0xf0 0x53 Opcode=201 Name=MVNi Format=ARM_FORMAT_DPFRM(4) 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ------------------------------------------------------------------------------------------------- | 0: 1: 0: 1| 0: 0: 1: 1| 1: 1: 1: 1| 0: 0: 0: 0| 0: 1: 1: 1| 0: 0: 0: 1| 1: 1: 1: 1| 0: 1: 0: 1| ------------------------------------------------------------------------------------------------- mvnpls r7, Assertion failed: (V != -1 && "Not a valid so_imm value!"), function printSOImm, file ARMInstPrinter.cpp, line 229. Program received signal SIGABRT, Aborted. 0x00007fff88c65886 in __kill () (gdb) bt #0 0x00007fff88c65886 in __kill () #1 0x00007fff88d05eae in abort () #2 0x00007fff88cf2ef0 in __assert_rtn () #3 0x000000010020e422 in printSOImm (O=@0x1010bdf80, V=-1, VerboseAsm=false, MAI=0x1020106d0) at ARMInstPrinter.cpp:229 #4 0x000000010020e5fe in llvm::ARMInstPrinter::printSOImmOperand (this=0x1020107e0, MI=0x7fff5fbfee70, OpNum=1, O=@0x1010bdf80) at ARMInstPrinter.cpp:254 #5 0x00000001001ffbc0 in llvm::ARMInstPrinter::printInstruction (this=0x1020107e0, MI=0x7fff5fbfee70, O=@0x1010bdf80) at ARMGenAsmWriter.inc:3236 #6 0x000000010020c27c in llvm::ARMInstPrinter::printInst (this=0x1020107e0, MI=0x7fff5fbfee70, O=@0x1010bdf80) at ARMInstPrinter.cpp:182 #7 0x000000010003cbff in PrintInsts (DisAsm=@0x10200f4e0, Printer=@0x1020107e0, Bytes=@0x7fff5fbff060, SM=@0x7fff5fbff078) at Disassembler.cpp:65 #8 0x000000010003c8b4 in llvm::Disassembler::disassemble (T=@0x1010c13c0, Triple=@0x1010b6798, Buffer=@0x102010690) at Disassembler.cpp:153 #9 0x000000010004095c in DisassembleInput (ProgName=0x7fff5fbff3f0 "/Volumes/data/llvm/git/trunk/Debug/bin/llvm-mc") at llvm-mc.cpp:347 #10 0x000000010003eefb in main (argc=4, argv=0x7fff5fbff298) at llvm-mc.cpp:374 (gdb) q The program is running. Exit anyway? (y or n) y [13:36:26] johnny:/Volumes/data/llvm/git/trunk (local-trunk) $ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101053 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4872465f8ce39a6a944f593da154c4be583a708 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 16:26:03 2010 +0000 Remove a #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04c0ab6b7c3484d52a2f374fa953b8c174a4a281 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Apr 12 15:32:55 2010 +0000 Remove unneeded debug in PostDominator runOnFunction() The information is already available with "opt -analyze". The DominatorTree does also not have this in its runOnFunction. So they behave now more consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101038 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14789f955dd54cb7d82e9de631a5349dc9a19bb3 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Apr 12 15:02:19 2010 +0000 Remove dead code in the dotty dominance tree printer. This template is not needed anymore as it was replaced by the DOTGraphTraitsViewer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101036 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb2a11f67892dedbee017045bfbf9b784e536aac Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Apr 12 12:22:19 2010 +0000 Boolify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101035 91177308-0d34-0410-b5e6-96231b3b80d8 commit be928c1dbabb75204cdea8b7ccedfffef9b37a81 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Apr 12 11:38:35 2010 +0000 Plug trivial leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4313424a2fa147a9b5614423d36adf5e41b520bb Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 08:00:22 2010 +0000 Delete this code, which is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101033 91177308-0d34-0410-b5e6-96231b3b80d8 commit d77f6efb19c01428ad7a1d51f08934718c7a34fb Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 07:56:56 2010 +0000 Move the EliminateIVUsers call back out to its original location. Now that a ScalarEvolution bug with overflow handling is fixed, the normal analysis code will automatically decline to operate on the icmp instructions which are responsible for the loop exit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c37818eefa8d94ece1b6db3d30306105c76735e Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 07:49:36 2010 +0000 Generalize ScalarEvolution's PHI analysis to handle loops that don't have preheaders or dedicated exit blocks, as clients may not otherwise need to run LoopSimplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101030 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3ae169bb85f6232fbde0e34c64a595c487be948 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 07:39:33 2010 +0000 Rewrite the overflow checking in the get{Signed,Unsigned}Range code for AddRecs so that it checks for overflow in the computation that it is performing, rather than just checking hasNo{Signed,Unsigned}Wrap, since those flags are for a different computation. This fixes a bug that impacts an upcoming change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101028 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71f7047fa3592617b500c5976c6408b24a45473a Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 07:29:15 2010 +0000 Use RecursivelyDeleteTriviallyDeadInstructions in EliminateIVComparisons, instead of deleting just the user. This makes it more consistent with other code in IndVarSimplify, and theoretically can eliminate more users earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101027 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9336a0d9e9a959faa3c40b76592c638e238656c9 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 12 06:25:28 2010 +0000 Enable post regalloc machine licm by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101023 91177308-0d34-0410-b5e6-96231b3b80d8 commit e83e7444bffb8d6f03d36d4d3157edf737b050bd Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Apr 12 05:08:25 2010 +0000 Remove use of exceptions from bugpoint. No deliberate functionality change! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101013 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7cb1ed74ae8e33d5478d7cd8ea9cb0640454b3a Author: Eric Christopher <echristo@apple.com> Date: Mon Apr 12 04:48:00 2010 +0000 Verify function prototypes before trying to optimize functions. We also need TargetData, just return false if we don't have it. Update testcases accordingly. Fixes PR6807. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7de9a16236dfb149345d0ece589326b75a94b6a8 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 02:24:01 2010 +0000 Remove unnecessary parens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101010 91177308-0d34-0410-b5e6-96231b3b80d8 commit e803446b845bdbf33979c6b0b8f50c542de1f11a Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 02:22:30 2010 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d2b9b7024a0ccb2765f5b4ec5ae22acaccfa26a Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 02:21:50 2010 +0000 Re-apply r101000, with a fix: Don't eliminate an icmp which is part of the loop exit test. This usually doesn't come up for a variety of reasons, but it isn't impossible, so make IndVarSimplify handle it conservatively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101008 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2720bd5b9654b34e30d4f59f21ad607e980c4e2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 12 02:21:38 2010 +0000 whether we enable dylibs or not depends on the host, not the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101007 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc2014e7dc74d4cf7a0876485f1bb64b1eba1663 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 12 00:17:10 2010 +0000 Revert 101000, which is breaking self-host builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101002 91177308-0d34-0410-b5e6-96231b3b80d8 commit 697908d2e5ce0ffd18441e97ed6941dbe9e5ffeb Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 23:44:58 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101001 91177308-0d34-0410-b5e6-96231b3b80d8 commit 158fd937a063a6b252073c72172218e9e7bcdf5f Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 23:10:12 2010 +0000 Teach IndVarSimplify how to eliminate comparisons involving induction variables. For example, with code like this: for (i=0;i<n;++i) if (i<n) x[i] = 0; IndVarSimplify will now recognize that i is always less than n inside the loop, and eliminate the if. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101000 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4cadedbfc579aa707f87951ed30ab52c82c7d9e Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 22:16:48 2010 +0000 Enhance ScalarEvolution::isKnownPredicate with support for loop conditions which are invariants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3975584c191a08b4c841aacb11e69915d73980b2 Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 22:13:11 2010 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85300d54c13316ab6bfa912dc4729499a91f0d13 Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 22:12:18 2010 +0000 When creating a ConstantRange for [n,UINT_MAX], special case n == 0, because ConstantRange(0, 0) creates an empty range rather than a full one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100993 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2475557e0b6eac8a0c729c7d2814a0eac0f035c Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 22:07:56 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100992 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02f82eb0a979e52213ff5c9c61a8d2657aae7ac8 Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 19:30:19 2010 +0000 Add a cast to void to show that the return value is being intentionally ignored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100984 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96a4e5adb1e11b53d55ed72e7cf14e449fa95b25 Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 19:29:41 2010 +0000 Delete a dead check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100983 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f644179949f053575f3b27531d37857653386ff Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 19:28:47 2010 +0000 Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 513ebe517974c749a439e65a86e6e50b0a74f9ab Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 19:27:52 2010 +0000 Fix a #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100980 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40bf21300d3b867522517195e22650de13b793dc Author: Dan Gohman <gohman@apple.com> Date: Sun Apr 11 19:27:13 2010 +0000 Rename isLoopGuardedByCond to isLoopEntryGuardedByCond, to emphasise that it's only testing for the entry condition, not full loop-invariant conditions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100979 91177308-0d34-0410-b5e6-96231b3b80d8 commit b740328bc5865384c1c927234fed319e5c33e414 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Apr 11 19:00:03 2010 +0000 utostr isn't going away too soon, try to make it slightly smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d2d5e553ac3d3cc0cc895084653c27208a77b86 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Apr 10 23:18:13 2010 +0000 Remove dead argument and clean whitespace. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100954 91177308-0d34-0410-b5e6-96231b3b80d8 commit ede999bf7db756f3d35f6ddccf9c29e5d5e364b0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 10 19:12:44 2010 +0000 Implement support for varargs functions without any fixed parameters in the CBE by implicitly adding a fixed argument. This allows eliminating a work-around from DAE. Patch by Sylvere Teissier! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100944 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9224066121bd949881f29012eee0cbd9c86ba8f Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Apr 10 18:56:24 2010 +0000 configure: Fix default value for optimize_option, I messed up the test condition in r86005 and unintentionally changed the default from -O3 to -O2. - It's odd the things automated perf testing turns up! :) - Also, the configure diff is messed up slightly. It looks like someone either didn't regenerate configure correctly (or I didn't), or autoconf has some funnyness in it. Eric, any ideas? This has been at -O2 for so long, that I am slightly nervous that this change will uncover miscompiles of LLVM on other systems. If that is the case, I think we should just set the default universally at -O3, and let developers/vendors use -O3 if they want it and have tested it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100941 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac7795827fe570a8ed081ad0743b13e5a8b61c04 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 10 18:26:57 2010 +0000 fix PR6743, a case where we'd delete an instruction before using it in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100937 91177308-0d34-0410-b5e6-96231b3b80d8 commit 784766a58196c65650dee39cd3c8c39a19791043 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 10 18:19:22 2010 +0000 fix PR6760, a missing check in heap SRoA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100936 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15debb0b829cb3c7c8053abc564ac4a819026a26 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 10 18:01:25 2010 +0000 turn an assert into a proper check, fixing crash on invalid here: $ llvm-as t.ll llvm-as: t.ll:1:6: error: expected 'type' after '=' %0 = = type { i32, float, float, double } ^ PR6810. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55a5f2e2a393617ae349704eb40a4d9e3b8ebd2f Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 10 17:54:51 2010 +0000 improve haiku portability, patch by Paul Davey. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 427a5edc6c92618fcd5b789232f3bebf91c8363e Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 10 17:52:58 2010 +0000 add attributes and module level asm to the ocaml bindings, patch by Patrick Walton! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100932 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b98806980933b475899e1854efa97d9c319ee58 Author: Sean Callanan <scallanan@apple.com> Date: Sat Apr 10 00:48:10 2010 +0000 Updated the edis build mechanism to allow for builds that do not build some (or all) of the targets that edis supports. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23c914a65b4b2b9d0328409d2e1557cdae8ec420 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 22:47:25 2010 +0000 Fix a typo and some indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 356b52027b6af1b140d4bfe03b7a2fe482088554 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 22:07:05 2010 +0000 When determining a canonical insert position, don't climb deeper into adjacent loops. Also, ensure that the insert position is dominated by the loop latch of any loop in the post-inc set which has a latch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0aee1dca66e06462e22c79ea528ce76161cefd3c Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 9 21:38:26 2010 +0000 Tidy whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100904 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d0b24a3394471600d13e7da0155d61440989ff1 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 9 21:01:02 2010 +0000 If all the bit positions are not specified; do not decode the instructions. We are bound to fail! For proper disassembly, the well-known encoding bits of the instruction must be fully specified. This also removes pseudo instructions from considerations of disassembly, which is a better design and less fragile than the name matchings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100899 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2710c90f432378008d0922ce24dc96c154679433 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 9 20:51:47 2010 +0000 suck the propagating "has dynamic libs" check into a single makefile variable TARGET_HAS_DYNAMIC_LIBS git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100896 91177308-0d34-0410-b5e6-96231b3b80d8 commit 862257507b344844ed60d845bff8d83013c4af26 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 9 20:45:04 2010 +0000 add minix support, patch by Kees van Reeuwijk! PR6797 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100895 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17ea1f789f4fbf06a5ee14ebf8300488f6698d6d Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 9 20:43:54 2010 +0000 clean this up, fix std::min ambiguity on some platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100894 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1d9a40df03deff059dbbf07b1af3e3ece1ce398 Author: Wesley Peck <peckw@wesleypeck.com> Date: Fri Apr 9 20:43:20 2010 +0000 Adding IPSCCP and Internalize passes to the C-bindings git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100893 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae474b95c6df9e03ccaeefd24309f3e40c8f879a Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 9 20:41:18 2010 +0000 Provide versions of the ARM eh_sjlj_setjmp instructions for non-VFP subtargets such that the non-VFP versions have no implicit defs of VFP registers. If any callee-saved VFP registers are marked as having been defined, the prologue/epilogue code will try to save and restore them. Radar 7770432. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100892 91177308-0d34-0410-b5e6-96231b3b80d8 commit a74ef0f5d7b925d87525539e3eb8d0a3f964e75f Author: Ted Kremenek <kremenek@apple.com> Date: Fri Apr 9 20:25:54 2010 +0000 Move 'Optional' class from Clang to LLVM/ADT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100889 91177308-0d34-0410-b5e6-96231b3b80d8 commit e20498388dea36ad87d8e752266c6a4c9c17b387 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 9 19:31:33 2010 +0000 ARM decoder emitter should print out useful information unconditionally when it encounters decoding conflicts, instead of wrapping it inside the DEBUG() macro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100886 91177308-0d34-0410-b5e6-96231b3b80d8 commit e84d134cf412b34bff50bbeeb68304f7309718bf Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 19:14:31 2010 +0000 When emitting code for an add, don't force a SCEVUnknown wrapper around a hoisted intermediate result if the intermediate result isn't an Instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100884 91177308-0d34-0410-b5e6-96231b3b80d8 commit c784c559b7bdf3d8f522cc18875da1a5a6ff62d5 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 19:12:34 2010 +0000 When looking for loop-invariant users, look through no-op instructions, so that an unfortunately placed bitcast doesn't pin a value in a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100883 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36119df648911a94aec2f9287cca3630f8803da8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Apr 9 19:03:31 2010 +0000 Make sure this test tests something. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100879 91177308-0d34-0410-b5e6-96231b3b80d8 commit b943a60a22cafc940f0475bd027017ed65b49be2 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 9 18:39:54 2010 +0000 Fix a grammaro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100877 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac5b284b719fad00a916df664f3a94ccfbe4ac30 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 9 18:29:29 2010 +0000 Add a testcase for svn r100568. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e6621bb9a5d8b705bc5bdf0e9b2456d739e32b9 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 9 18:27:03 2010 +0000 "On SPU, variables in the .bss section that are allocated with the .lcomm directive are not aligned on 16 byte boundaries. This causes misaligned loads, as the generated assembly assumes this "default" alignment. this patch disables .lcomm in favour of '.local .comm' Patch by Kalle Raisklia! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100875 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f01424b345782f65bdea0ebc9a97103da00acdf Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 18:20:03 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84f4bd8a2d577984a8f50b35e37805427b0177ea Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 9 16:24:49 2010 +0000 Fix up header comments to match the comment fixups I made in r100849. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fb07c495bf88d7d3ec4629cf486320abbe15666 Author: Devang Patel <dpatel@apple.com> Date: Fri Apr 9 16:04:20 2010 +0000 Clear InsnsBeginScopeSet and InsnsEndScopeSet at the end of function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100867 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ff9615cfc5c0556a815939889c2d92eea9a9b88 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Apr 9 15:18:34 2010 +0000 performance: cache result of looking up user git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100862 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fe48547190cdca4175b53afb299df34517378f0 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 15:03:55 2010 +0000 Merge a few fast-isel tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100860 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0b32d20e4887160ceae22ac53fa9d70ed5d7718 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 14:53:59 2010 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6482cd01148a1953f229aa53b83c178dd5ce6e72 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 14:12:01 2010 +0000 Delete this obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05a3217271473b3375a6d5765c7164fb90b48696 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Apr 9 10:57:00 2010 +0000 const-ize a predicate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100856 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe0b9b22c40523def28526a4bdc47a2435efd1b3 Author: Chandler Carruth <chandlerc@gmail.com> Date: Fri Apr 9 05:55:25 2010 +0000 Add a missing dependency to this library when building with CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100852 91177308-0d34-0410-b5e6-96231b3b80d8 commit e955ac351fc5b4c2deb2d585f2070956d57aebc9 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 9 04:46:43 2010 +0000 Use getNumImplicitDefs() and getNumImplicitUses(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14acbb1a698e51883187b3d54f8b87bb51c40abb Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 9 04:34:03 2010 +0000 Fix up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100849 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19a4555b7766ef7a6cfc8eb251964e5df8399d68 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 9 04:24:20 2010 +0000 revert r100842 which broke several of the build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100848 91177308-0d34-0410-b5e6-96231b3b80d8 commit d481d112b2f6de6c0c802499e135d1f7a2296673 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Apr 9 02:15:10 2010 +0000 lit: Add support to OneCommandPerFileTest format to take input directory from input path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c2d049057071d4d49df4a116d191779705729e2 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 02:00:38 2010 +0000 Refactor the code for computing the insertion point for an expression into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5eb7901d7a86d26fb9685220854c33894c98ed35 Author: Sean Callanan <scallanan@apple.com> Date: Fri Apr 9 01:43:16 2010 +0000 Added a tester for the enhanced disassembler, integrated into the llvm-mc testing tool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100842 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f6c8961b78dc1e40d05d7dfa52b2b8fb824f30b Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 01:39:53 2010 +0000 Add several more lint checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cea9adfee8c9a149ff2089486562829e50becf3 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 01:22:56 2010 +0000 Fix a bug in IVUsers which was permitting non-affine addrecs to be sent to LSR, which it isn't prepared to handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100839 91177308-0d34-0410-b5e6-96231b3b80d8 commit db502e217ab32d433915872147b2c8b4c946cd18 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 9 01:19:28 2010 +0000 Don't use reserved identifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100838 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61d2ac3bec8e496b6e56f8936d272f405864b120 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 9 01:14:31 2010 +0000 fix a SCCP miscompilation that could happen when a forced constant is changed to a constant, we would end up adding the instruction to the wrong worklist, preventing it from being properly revisited. This fixes rdar://7832370 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100837 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5bf54b6fc2660b6f0d0428acc7d2a67d13793fb Author: Sean Callanan <scallanan@apple.com> Date: Fri Apr 9 00:11:15 2010 +0000 Bugfixes for edis. Code to initialize instruction state was being executed too lazily, and the LLVM assembly syntax for the disassembler was not being written into the proper disassembler state variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b82e490af94628d55e6d776d671f5f025e716ea Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 23:36:27 2010 +0000 Avoid allocating a value of zero in a register if the initial formula inputs happen to negate each other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100828 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9c80b808766f6f519a62cf4976a0c52b45bd565 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 23:05:57 2010 +0000 Add a few more lint checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100825 91177308-0d34-0410-b5e6-96231b3b80d8 commit b49839967641e13a191600ba562b0c2cb29b0326 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 23:03:40 2010 +0000 Add variants of ult, ule, etc. which take a uint64_t RHS, for convenience. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100824 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc18ebfc60b921a6a252121b5708e19693194cfa Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 8 21:34:17 2010 +0000 delete a forwarding function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100815 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7496e0744f528194f819e26906c016539dbd192a Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 8 21:26:26 2010 +0000 move elf section uniquing to MCContext. Along the way merge XCore's section into MCSectionELF git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ad1f741263eb424a0d809731e8018d10ea0a20f Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Apr 8 21:23:54 2010 +0000 Now that Evan Cheng has fixed the coalescer bug (r100804), the workaround code to avoid memcpy() call is no longer necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100811 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8af75615d793697bdd8630bed89203d52ce5cd1 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 8 20:40:11 2010 +0000 remove the TargetLoweringObjectFileMachO::getMachoSection api and update clients to use MCContext instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100808 91177308-0d34-0410-b5e6-96231b3b80d8 commit 875efd18f591dc875886ff1948b364500546029b Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 8 20:30:37 2010 +0000 move macho section uniquing from MCParser and TLOF to MCContext where the compiler and asmparser now unique to the same sections. This fixes rdar://7835021. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69366b86a880b677527b4d5519e85bb923950c15 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 8 20:02:37 2010 +0000 Coalescer should not delete copy instructions whose defs are partially dead. e.g. %RDI<def,dead> = MOV64rr %RAX<kill>, %EDI<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100804 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27f56a37a4b1950390caa9c37c36c19378d1ceb6 Author: Ted Kremenek <kremenek@apple.com> Date: Thu Apr 8 18:52:18 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100802 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9ca1526cfd5712b6a9e9692c3dc9d46a95b88be Author: Ted Kremenek <kremenek@apple.com> Date: Thu Apr 8 18:49:30 2010 +0000 Fix -Wsign-compare warning (issued by clang++). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100799 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5a2502c72993e872be81a67c105f6c904c6f400 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 18:47:09 2010 +0000 Add a -lint pass which checks for common sources of undefined or likely unintended behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2220f81e4ec460eaa7c6f0f83b495a1e7f13357a Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 8 18:43:56 2010 +0000 Rename a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100797 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20edcfe3f57f4c31efebc6a00adf0577581e75a4 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 8 18:20:52 2010 +0000 implicit defs get added to the end of machine instrs sometimes. Scan the whole instruction for the metadata operand instead of assuming it will be at the end of the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31de7af3f1e7f05c7576a8396325330bdb403be5 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 18:11:50 2010 +0000 Pointers to zero-sized objects don't point to overlapping objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100789 91177308-0d34-0410-b5e6-96231b3b80d8 commit d879e28fcf1daaab6642d61eae600cfef7d352c5 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 18:03:05 2010 +0000 Print empty structs as {} rather than { }. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3757ba9ccff689e4f9c48d994cedfadf39e0b52c Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 17:41:04 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100783 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00d49a48fc179ead7e874ac5a983335286f088ae Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Apr 8 17:19:20 2010 +0000 Touch configure so it regenerates Disassemblers.def to include ARM so people stop seeing a broken build in EDDisassembler.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100782 91177308-0d34-0410-b5e6-96231b3b80d8 commit da48d628bd6c0d8d8e30878a50f0868b08dfcf59 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 8 16:50:29 2010 +0000 One instruction may start (or end) multiple lexical scopes. There is no need to remember labels identifying regions marked by such instructions in each scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100781 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6e5d55c03eec2ffbd816d078b2ad53f0e5af145 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 8 16:46:24 2010 +0000 clean up algorithm and remove operand order assumptions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b993cc51f56221214c62f1f0e0a4abc6f486138 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 15:57:10 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9df74d4ca17f3b9b40b3b5428061ce0f10bc6b36 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 8 15:48:02 2010 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100771 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd2311470a91c740ab48bb0d0291e606159fbdda Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 8 15:41:13 2010 +0000 Delete out of date comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100769 91177308-0d34-0410-b5e6-96231b3b80d8 commit e401127467608507d52e268e2dd1d4b9c64717de Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 8 15:37:09 2010 +0000 Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100768 91177308-0d34-0410-b5e6-96231b3b80d8 commit b320569453708cbe5de19cdd585bded115bcdb43 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Apr 8 15:25:57 2010 +0000 Various MSVC warning fixes about truncated 64 bit shifts and const pointers passed to free. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100767 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7fdef24dcdbfa52d79bf2cd85c107f366fc3348 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Apr 8 15:22:35 2010 +0000 Provide operator delete for BumpPtrAllocator and RecyclingAllocator. They will never be called but msvc complains that they're missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100766 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ca5591bb3b08a13a6c03852380c65fe6dadbce2 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 8 13:50:42 2010 +0000 use abstract interface in two more places git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100762 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95f012f9b1dd1a45bd609a63283bbf2f978580ab Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 8 13:08:11 2010 +0000 fix compile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100760 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66bd6ef37f1f2dc1e9bc8c54b0e37497cffc847e Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 8 12:52:19 2010 +0000 use abstract interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100758 91177308-0d34-0410-b5e6-96231b3b80d8 commit 367ca5a5d88665d8673ca630606d3cd1d85d38d9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Apr 8 10:44:28 2010 +0000 Use twines to simplify calls to report_fatal_error. For code size and readability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100756 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a6937c133505e4966a896826e0c189bf0284b0e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Apr 8 09:42:29 2010 +0000 Use errs instead of fprintf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100754 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0fb6e516e6e7e37b6e37b3c1d49d9c7c2750b21 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 8 07:37:57 2010 +0000 Avoid using f64 to lower memcpy from constant string. It's cheaper to use i32 store of immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c630f05965b2b4557e1a7ed01c5ebc5b7855350 Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 05:58:24 2010 +0000 Revert this change from a while ago; ScalarEvolution shouldn't analyze undef as 0, since it can't force other analyses to intepret the undef in the same way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100749 91177308-0d34-0410-b5e6-96231b3b80d8 commit c466ff5ba9755a22db8a8f017d14c1ddfc1b376f Author: Dan Gohman <gohman@apple.com> Date: Thu Apr 8 05:57:57 2010 +0000 When expanding expressions which are using post-inc mode for multiple loops, ensure that the expansion is dominated by the increments of those loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 850ad44e460b79107073db6bb781e00be815001d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 8 01:03:47 2010 +0000 Make post regalloc machine licm functional. It now passes all of MultiSource. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e1f41b551a21e600f958910ad221e6c4c8ff6ac Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 8 00:54:34 2010 +0000 typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100738 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf35e4e953d00791f1b08a2cf0a4200cc86064da Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 8 00:53:57 2010 +0000 document isvolatile etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100737 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdf012fe174da0d937d163555edae7fb2dabb036 Author: Eric Christopher <echristo@apple.com> Date: Thu Apr 8 00:52:02 2010 +0000 mpsadbw is not commutative. Fixes PR3440. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100736 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca9c635b77c0f8db957bd361cb91a851cb4981fa Author: Sean Callanan <scallanan@apple.com> Date: Thu Apr 8 00:48:21 2010 +0000 Added support for ARM disassembly to edis. I also added a rule to the ARM target's Makefile to build the ARM-specific instruction information table for the enhanced disassembler. I will add the test harness for all this stuff in a separate commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100735 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cbaef7a88205e4c7585c71098f827304033ff01 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 8 00:09:16 2010 +0000 convert a report_fatal_error that I was able to trigger into a nice error so the user at least knows what inline asm is a problem. For example: error: inline asm not supported yet: don't know how to handle tied indirect register inputs pr8788-1.c:14:10: note: generated from here asm ("\n" : "+r" (stack->regs) ^ Instead of: fatal error: error in backend: Don't know how to handle tied indirect register inputs yet! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100731 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0417d9128a0e146cccc81381df08bec2881836c Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 7 23:51:38 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100726 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f0a003c4d73a8dab0fd8758620b1c605b09e982 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 23:50:38 2010 +0000 minor tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100725 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a77274c7bf3a4180975ccc5adaf77e75a1f13be Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 23:47:51 2010 +0000 use assertions instead of unreachable for logic errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100724 91177308-0d34-0410-b5e6-96231b3b80d8 commit b99b4de6d12cdfa20442ccc9e5172f1593a08fa3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 23:40:44 2010 +0000 introduce a new recoverable error handling API to LLVMContext and use it in one place in inline asm handling stuff. Before we'd generate this for an invalid modifier letter: $ clang asm.c -c -o t.o fatal error: error in backend: Invalid operand found in inline asm: 'abc incl ${0:Z}' INLINEASM <es:abc incl ${0:Z}>, 10, %EAX<def>, 2147483657, %EAX, 14, %EFLAGS<earlyclobber,def,dead>, <!-1> Now we generate this: $ clang asm.c -c -o t.o error: invalid operand in inline asm: 'incl ${0:Z}' asm.c:3:12: note: generated from here __asm__ ("incl %Z0" : "+r" (X)); ^ 1 error generated. This is much better but still admittedly not great ("why" is the operand invalid??), codegen should try harder with its diagnostics :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100723 91177308-0d34-0410-b5e6-96231b3b80d8 commit aab27ddc36abfba92a1b46698b818e8cb2f1f4ec Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 7 23:22:42 2010 +0000 Say bitcast instead of bitconvert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100720 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cbb0e5b0c1402a5635dbe347465ed6d6c8eeb09 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 7 23:19:41 2010 +0000 Add svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100719 91177308-0d34-0410-b5e6-96231b3b80d8 commit 816aa36d0171d2548cfd1129bb966d187e6e3d8e Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 23:12:29 2010 +0000 rename llvm_install_error_handler -> install_fatal_error_handler and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100717 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca9edc105ead0461310f77f48623e3b85ede44ee Author: Ted Kremenek <kremenek@apple.com> Date: Wed Apr 7 23:05:23 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100714 91177308-0d34-0410-b5e6-96231b3b80d8 commit f14866092ec4bdb45f3b2e626ce54f1f75af05bd Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Apr 7 23:01:37 2010 +0000 Update cmake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100713 91177308-0d34-0410-b5e6-96231b3b80d8 commit e805f543f8ed9d4c70315b9cf04a3ee248fd6f4c Author: Eric Christopher <echristo@apple.com> Date: Wed Apr 7 23:00:07 2010 +0000 Add support for stpncpy_chk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100710 91177308-0d34-0410-b5e6-96231b3b80d8 commit b668eca36afff11f3d8d11c0876e6e64995025cb Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 22:58:41 2010 +0000 rename llvm::llvm_report_error -> llvm::report_fatal_error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c9243bf848d4aeb496df9ab5f3df7f6b7549070 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 22:54:55 2010 +0000 add newlines at end of files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ed0900400ace7ca7745689bdd8113a7efe918b8 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 22:53:17 2010 +0000 add newlines at the end of files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32978d6b3ebb5ba1f0b0004a46eae7e54424a34e Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 22:44:07 2010 +0000 remove some unneeded errorhandling stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100703 91177308-0d34-0410-b5e6-96231b3b80d8 commit 819f9f982a11f4c533a60b2838816a2eb07ebaa9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 22:41:29 2010 +0000 minor tidying up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100702 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffb8f3f4ddac6f16890ff9ca21f9c8a297512492 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 22:29:10 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100700 91177308-0d34-0410-b5e6-96231b3b80d8 commit becedf6330883fc05fad88ba95fca8e466742397 Author: Dan Gohman <gohman@apple.com> Date: Wed Apr 7 22:27:08 2010 +0000 Generalize IVUsers to track arbitrary expressions rather than expressions explicitly split into stride-and-offset pairs. Also, add the ability to track multiple post-increment loops on the same expression. This refines the concept of "normalizing" SCEV expressions used for to post-increment uses, and introduces a dedicated utility routine for normalizing and denormalizing expressions. This fixes the expansion of expressions which are post-increment users of more than one loop at a time. More broadly, this takes LSR another step closer to being able to reason about more than one loop at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100699 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4269a8e71ae6c722262b1748ef7d3e117ab3c95 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 7 22:21:03 2010 +0000 Missed this one line for the previous checkin to fix build warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100697 91177308-0d34-0410-b5e6-96231b3b80d8 commit 950c864b2c89c338fb0a7a896f2a022e89b67754 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 7 22:03:27 2010 +0000 Fixed warnings pointed out by clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100696 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5027828cc6d637a955988f0614dbdddcee3e3a96 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 7 21:52:48 2010 +0000 Fixed warnings pointed out by clang. Next to work on is ARMDisassemblerCore.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100695 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ab9e01b43c0e4ec7da880384e77b29996d786e5 Author: Sean Callanan <scallanan@apple.com> Date: Wed Apr 7 21:42:19 2010 +0000 Fixed a bug where the disassembler would allow an immediate argument that had to be between 0 and 7 to have any value, firing an assert later in the AsmPrinter. Now, the disassembler rejects instructions with out-of-range values for that immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 763ea5d0700fcf947c79feee24b992b368d80e01 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 7 21:23:48 2010 +0000 Fixed 3 warnings pointed out by clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fa5717ee93357da4d4b9c338cd0900456ecd692 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Apr 7 21:19:41 2010 +0000 unXFAIL, arm disassembler was reenabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fb42fcde248adab3211e2d3254ad6d64787039d Author: Eric Christopher <echristo@apple.com> Date: Wed Apr 7 20:58:16 2010 +0000 Fix typo and correct comment somewhat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4afd8b3992d261b8b9b5a1ba3d3d3033f5c42d20 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Apr 7 20:53:12 2010 +0000 Re-enable ARM/Thumb disassembler and add a workaround for a memcpy() call in ARMDecoderEmitter.cpp, with FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100690 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68a53c8f92562c5f9143a2ffa1e720d2047038e8 Author: Dale Johannesen <dalej@apple.com> Date: Wed Apr 7 20:43:35 2010 +0000 Split big test into multiple directories to cater to those who don't build all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100688 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5edf06b44c25fa2d2abf64583d0495520d924db Author: Sean Callanan <scallanan@apple.com> Date: Wed Apr 7 20:29:34 2010 +0000 Added an AsmLexer for the ARM target, which uses a simple mapping of register names to IDs to identify register tokens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100685 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ded6d93c94d399fd76197ca7c2be4502be86015 Author: Dale Johannesen <dalej@apple.com> Date: Wed Apr 7 20:01:24 2010 +0000 Test that DEBUG_VALUE comments come out on a variety of targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100682 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20c72e07d83b40c260edc7a5a0fab3be8f16215c Author: Dale Johannesen <dalej@apple.com> Date: Wed Apr 7 19:51:44 2010 +0000 Educate GetInstrSizeInBytes implementations that DBG_VALUE does not generate code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100681 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d5b91402698bdbe5c455529aa86efc5e78724d7 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Apr 7 18:59:26 2010 +0000 fix 80-col violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100677 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a04b9f8d9507029dd13149b5395b447635b25ba Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:23:27 2010 +0000 Remove late ARM codegen optimization pass committed by accident. It is not ready for public yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100673 91177308-0d34-0410-b5e6-96231b3b80d8 commit be3a8986e80c1f7cde4673c28184f7bb375493cf Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:22:11 2010 +0000 Split A8/A9 itins - they already were too big. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100672 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdfa59873bc9f19b177518f0b174471d7c5fc6a7 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:22:03 2010 +0000 Add some crude itin approximation for VFP load / stores on A9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100671 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b2322df5e6abbfd542b47cb4caeaa70085575ea Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:58 2010 +0000 Add some crude approximation for neon load/store instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100670 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6e2cafdf86b1c35c76b21174d83fdda26c895be Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:52 2010 +0000 Add some A8-based approximation for instructions with unknown cycle times git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100669 91177308-0d34-0410-b5e6-96231b3b80d8 commit b22c06637b99c8cd4dfafd2f3a9ae3a2ac865f01 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:46 2010 +0000 Move NEON-VFP domain fixer upper, so post-RA scheduler would benefit from it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100668 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7e5fbf7dd083f9567c371e1a74116958ac964f2 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:41 2010 +0000 Since tblgen bug was fixed (thanks Jakob!) we don't need InstrStage2 hack anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100667 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4ce857e16628408a0c4ccc56a3b21e66c376209 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:33 2010 +0000 Fix A8 FP NEON MAC itins git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100666 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6dbae9f18dbcc1bcc703958d25c3281a91fdb9f6 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:27 2010 +0000 A9 NEON FP itins git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100665 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58c8a54546773cf83d7906fc5e03069e7542676b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:22 2010 +0000 Some permute goodness for A9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 300e6d3d520ee8bcd4836ed70cbf641dad09d341 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:16 2010 +0000 More shift itins for A9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b1ad99e3645371a93053c308919862aad30bf74 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:10 2010 +0000 More fixes for itins git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 778852318175615a6c79dadf4915dd2018329b17 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:21:04 2010 +0000 Fix invalid itins for 32-bit varians of VMLAL and friends git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100661 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6a63cce6123e547672e5a3cdcbc2e50f46258b5 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:58 2010 +0000 Add MAC stuff for A9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100660 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69bd2ccf272eb346e546488cd30fb290b57de844 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:53 2010 +0000 Fix invalid NEON MAC itins on A8 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100659 91177308-0d34-0410-b5e6-96231b3b80d8 commit c87dfe77008881bc858371889242bbae65c868ee Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:47 2010 +0000 Fix itins for VPAL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100658 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a181c92ca7e4ff90eb9108a56950647e6b24fbf Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:42 2010 +0000 Fix itins for VABA git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cda5f1cd9dc005b38584a80b39b85110ef2a5e0 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:36 2010 +0000 Correct VMVN itinerary: operand is read in the second cycle, not in the first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24dcb7080f33062e183e2e602f4e92d2e4736966 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:29 2010 +0000 More A9 itineraries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100655 91177308-0d34-0410-b5e6-96231b3b80d8 commit b557bbcf7a5eee57a0c458b6143c801f7d902a34 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:24 2010 +0000 Correct itinerary class for VPADD git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39e69fb7ac656f4bd01f056f2911df789d8b2b4d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:18 2010 +0000 VP{MAX, MIN} are of IIC_VSUBi4D itin class as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b0ef908d3217b3951e2e434c3b9fd3d16ab5f42 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:13 2010 +0000 VHADD differs from VHSUB at least on A9 - the former reads both operands in the second cycle, while the latter reads second operand in first cycle. Introduce new itin classes to catch this behavior. Whether this is true for A8 as well is WIP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100652 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9c079cc7889e547469bcf37cf1c917fed7078af Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:07 2010 +0000 Some easy NEON scheduling goodness for A9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100651 91177308-0d34-0410-b5e6-96231b3b80d8 commit efcc37b6690148cd65a751a7792f0d6a066c7b8e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:20:02 2010 +0000 Define new itin classes for ARM <-> VFP reg moves to distinguish from NEON ops. Define proper scheduling itinerary for them on A9. A8 TRM does not specify latency for them at all :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100650 91177308-0d34-0410-b5e6-96231b3b80d8 commit eabed6aeab4ea9e00dfd9f419c0c7e7dec9a1a92 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:56 2010 +0000 FCONST{S,D} behaves the same way as FP unary instructions. This is true for both A8 and A9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02a312f16766fcdadc4cb515523b3cfc4c5f6fa0 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:51 2010 +0000 Proper cycle times for locks, since wbck latency can be larger than fwd latency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100648 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd36e6b2b79a330947e9998de4089167618ffed7 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:46 2010 +0000 Add new itin classes for FP16 <-> FP32 conversions and make uise of them for A9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100647 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b19253d92da293192d07ad653c22a55de97bc4e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:40 2010 +0000 Make use of new reserved/required scheduling stuff: introduce VFP and NEON locks to model domain cross stalls precisly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100646 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbb99a1bae2e58a0be2688d3f6c122dbc7e5fc2d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:32 2010 +0000 Initial support for different kinds of FU reservation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100645 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d0d3cb2edec6b05a30ad0f37a4b7ebb333cf4ce Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:24 2010 +0000 Factor out scoreboard into separate class. This way we might have several different score boards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100644 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecc063f6c401aa463c545eb48e9b212bfb54a37a Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:18 2010 +0000 Some bits of A9 scheduling: VFP git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100643 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f708c3e6e1b3dc324872c94c6117553496a45e9 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:13 2010 +0000 Separate const from non-const stuff during mergeing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100642 91177308-0d34-0410-b5e6-96231b3b80d8 commit b78701b37152c1f011ee372d2071d5b9eee0c391 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:19:07 2010 +0000 Some initial version of global merger git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100641 91177308-0d34-0410-b5e6-96231b3b80d8 commit caa8a6dbf000477bf0a73a8a76f474fc8cc023e4 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Apr 7 18:18:42 2010 +0000 Add hook to insert late LLVM=>LLVM passes just before isel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8623dcf2df609558b53a0af0727f23e0e466e295 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 18:13:33 2010 +0000 fix 80 col violation, patch by Alastair Lynn git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100639 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1c036aef085104852fad8d03ef81615a2cdbd47 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 18:10:38 2010 +0000 add a comment line that got dropped git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fed2b9d5485f47ce5d5b49c75dc0ec47415b8cb Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 18:04:56 2010 +0000 this has a pr! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4073130033e1be2cf4540b29cf50d4273d3b15f5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 18:03:19 2010 +0000 fix a latent bug my inline asm stuff exposed: MachineOperand::isIdenticalTo wasn't handling metadata operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100636 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51e57b6310ee0cd367dfefaf0da0c061a900806d Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Apr 7 11:23:46 2010 +0000 Remove unused method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 216d852ed4e43a3149beef3b36193ba64d364c4e Author: Edwin Török <edwintorok@gmail.com> Date: Wed Apr 7 10:44:46 2010 +0000 Workaround the breakage in r100616 by guarding all timers with TimePassesIsEnabled. This should allow make check to pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100618 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2c8f62e56b2bf1f7e58e3cbdc20a6ed8200fedc Author: Bill Wendling <isanbard@gmail.com> Date: Wed Apr 7 09:28:04 2010 +0000 Use the "NamedGroupTimer" class to categorize DWARF emission better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57c934d08ffe6aaee1d861161c1b8cfbf0b0bb4f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Apr 7 09:26:51 2010 +0000 Use raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100615 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d3579a4a20ca26cc25b5e20d65ab2cd1e54fd0a Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Apr 7 07:06:48 2010 +0000 Remove XFAIL for vg_leak as the leaks are fixed by 100601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f967e9e9dce617f7562ed39642f582b4e63718e Author: Mon P Wang <wangmp@apple.com> Date: Wed Apr 7 06:35:53 2010 +0000 Update langref for memcpy, memmove, and memset git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100611 91177308-0d34-0410-b5e6-96231b3b80d8 commit af823d5e136ec53b39f17d33738c27988bbf3dfb Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 7 06:00:33 2010 +0000 Add comments for missed opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a938d197e48ce98abea6c22d13c21540d404227 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 7 05:59:12 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d0493473299863f180672a37e0aa7cb9476594c Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 05:38:05 2010 +0000 Have the inst emitter add the !srcloc mdnode to the machine instr. Have the asmprinter use the mdnode to scavenge a source location if present. Document this nonsense in langref. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100607 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ddb919e78ca3c1dae36f9b04c4af0a1e3a382db Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 05:27:36 2010 +0000 remove another magic number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100606 91177308-0d34-0410-b5e6-96231b3b80d8 commit eeeeee03b7504311567c0e286cea3e6311a4c03c Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 05:20:54 2010 +0000 Three changes: 1. Introduce some enums and accessors in the InlineAsm class that eliminate a ton of magic numbers when handling inline asm SDNode. 2. Add a new MDNodeSDNode selection dag node type that holds a MDNode (shocking!) 3. Add a new argument to ISD::INLINEASM nodes that hold !srcloc metadata, propagating it to the instruction emitter, which drops it. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100605 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34fea60985c2fd96c3085aea12a801390b0e1089 Author: Chris Lattner <sabre@nondot.org> Date: Wed Apr 7 04:08:57 2010 +0000 fix a crash on invalid metadata, e.g.: call i32 @foo(), XXXX We would return the error without inserting the new instruction into the program, so it wouldn't get deallocated, and an abort would trigger when the module was deleted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100602 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32e1ac3f9026d94c858a1ea7bf384dd193a2ce25 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Apr 7 03:36:01 2010 +0000 Fix memory leaks for external symbol name strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100601 91177308-0d34-0410-b5e6-96231b3b80d8 commit a31f12e059d7ef313d00dac5181cca8abf119fb4 Author: John McCall <rjmccall@apple.com> Date: Wed Apr 7 01:49:15 2010 +0000 Clean up some signedness oddities in this code noticed by clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100599 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef5d69e921617b1286549326d94b1775efd06da8 Author: Dale Johannesen <dalej@apple.com> Date: Wed Apr 7 01:15:14 2010 +0000 Move printing of target-indepedent DEBUG_VALUE comments into AsmPrinter. Target-dependent form is still generated by FastISel and still handled in X86 code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100596 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1433aa2e560db7816769c0b84ab8dbc1cc12c51 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Apr 7 00:41:17 2010 +0000 Post regalloc LICM. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100592 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb9059362aec99afb7f9e24762419ae61d4cede3 Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 6 23:53:48 2010 +0000 Do not emit specification DIE with DW_AT_specification attribute for member functions of a funcation local class. This trips gdb's partial scan of DIEs at load time. Fixes Radar 7833483. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5570a3b4700fb4e35ba1d0ae973c069090931ae3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Apr 6 23:44:44 2010 +0000 Let that which does not matter truly slide. This test only cares about alignment, so don't test for other cruft. An upcoming llvm-gcc patch needs this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100584 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ca55ea5b2918bae8a33c2913112fbeb20b56713 Author: John McCall <rjmccall@apple.com> Date: Tue Apr 6 23:35:53 2010 +0000 Fix a number of clang -Wsign-compare warnings that didn't have an obvious solution. The only reason these don't fire with gcc-4.2 is that gcc turns off part of -Wsign-compare in C++ on accident. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100581 91177308-0d34-0410-b5e6-96231b3b80d8 commit a490250a0f99539c4a0a41fe4130bb711c00f944 Author: Dale Johannesen <dalej@apple.com> Date: Tue Apr 6 22:45:26 2010 +0000 Revert 100573, it's causing some testsuite problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100578 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4e4007d5945b010791b005a8beadecb697b4e2f Author: Dale Johannesen <dalej@apple.com> Date: Tue Apr 6 22:21:07 2010 +0000 Move printing of DEBUG_VALUE comments to target-independent place. There is probably a more elegant way to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c680aea9777958cd0936dff25e905ebc652ad14 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Apr 6 22:02:24 2010 +0000 Expand SELECT and SELECT_CC for NEON vector types. Radar 7770501. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 848e83c8d1ebcd3334b6f9ac063cfa8dfed36ee2 Author: Dale Johannesen <dalej@apple.com> Date: Tue Apr 6 21:59:56 2010 +0000 Allow for the possibility that a debug-value points to a SDNode that didn't have code generated for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100566 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdc47b7338a7f7ff814e14cbb62892096a8c9968 Author: Stuart Hastings <stuart@apple.com> Date: Tue Apr 6 21:38:29 2010 +0000 Reverting 100530 & 100531 due to regressions in the GDB test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b5cea544da691d6d7aa48b642510c2e62ae94f7 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Apr 6 20:26:37 2010 +0000 Fix PR6696 and PR6663 When a frame pointer is not otherwise required, and dynamic stack alignment is necessary solely due to the spilling of a register with larger alignment requirements than the default stack alignment, the frame pointer can be both used as a general purpose register and a frame pointer. That goes poorly, for obvious reasons. This patch brings back a bit of old logic for identifying the use of such registers and conservatively reserves the frame pointer during register allocation in such cases. For now, implement for X86 only since it's 32-bit linux which is hitting this, and we want a targeted fix for 2.7. As a follow-on, this will be expanded to handle other targets, as theoretically the problem could arise elsewhere as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100559 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d3c228b42fbd807870d2bea9afcab621044071f Author: Bill Wendling <isanbard@gmail.com> Date: Tue Apr 6 20:07:21 2010 +0000 Make this hack more specific to the Apple gcc 4.2 non-LLVM compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06b08b5fee5f9a4ec422e1ceebeee702f026947c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Apr 6 19:48:56 2010 +0000 Don't try to collapse DomainValues onto an incompatible SSE domain. This fixes the Bullet regression on i386/nocona. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100553 91177308-0d34-0410-b5e6-96231b3b80d8 commit 415ce44cbc61cfcb936d7d0a35f79e675f888d21 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Apr 6 19:32:30 2010 +0000 performance: get rid of repeated dereferencing of use_iterator by caching its result git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100550 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc10e729e6bdcb200700d509a80e50e075145657 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Apr 6 19:24:18 2010 +0000 make more two predicates constant git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4747ae0f26153b16285faa84dfcee3aa57ada61a Author: Gabor Greif <ggreif@gmail.com> Date: Tue Apr 6 19:14:05 2010 +0000 performance: get rid of repeated dereferencing of use_iterator by caching its result git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100547 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee7f6f8a7c017a19e7c90b318cce658b328a3b9a Author: Gabor Greif <ggreif@gmail.com> Date: Tue Apr 6 18:58:22 2010 +0000 const-ize predicate ValueIsOnlyUsedLocallyOrStoredToOneGlobal git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100546 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0648661cbb08afad6537c89eb6311fcb2665dbb Author: Gabor Greif <ggreif@gmail.com> Date: Tue Apr 6 18:45:08 2010 +0000 use CallSite to access calls vs. invokes uniformly and remove assumptions about operand order git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100544 91177308-0d34-0410-b5e6-96231b3b80d8 commit 849d3de6f51c10c5fa8f190b3cbe013d70d71c8e Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 6 18:37:22 2010 +0000 this accessor doesn't need to copy the string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100542 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46c3d31eaccb649b08d8834b5cb029b4e6499edf Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 6 18:06:18 2010 +0000 enhance SMDiagnostic to also maintain a pointer to the SourceMgr. Add a simplified constructor for clients that don't have locations like "file not found" errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100538 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0957ed25a62cf5761e596a6dd632fe28432df01f Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Apr 6 17:19:55 2010 +0000 Code clean up. Move includes from VirtRegRewriter.h to VirtRegRewriter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c3024226f6eeb9acc503127f759dc0d8f9d28c4 Author: Stuart Hastings <stuart@apple.com> Date: Tue Apr 6 17:19:32 2010 +0000 Revise debug info machinery to digest nested functions and classes. A certain GDB testsuite case (local.cc) has a function nested inside a class nested inside another function. GCC presents the innermost function to llvm-convert first. Heretofore, the debug info mistakenly placed the inner function at module scope. This patch walks the GCC context links and instantiates the outer class and function so the debug info is properly nested. Radar 7426545. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87ea79548840237839709173ebb969fe5ce4b689 Author: John Criswell <criswell@uiuc.edu> Date: Tue Apr 6 14:52:14 2010 +0000 Adding SAFECode to the list of projects that work with LLVM 2.7. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23c09148a95da700cc523af3cfe4df83227096ae Author: Mon P Wang <wangmp@apple.com> Date: Tue Apr 6 08:27:51 2010 +0000 Remove assert to treat memmove and memset like memcpy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100521 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa5667eb8d7ce6ee7ad2c5e70c6566e045c9a38e Author: Owen Anderson <resistor@mac.com> Date: Tue Apr 6 04:20:48 2010 +0000 Use a ManagedCleanup to prevent leaking the PassRegistrar map. In breaks the use case where someone wants to resurrect LLVM after calling llvm_shutdown, but I'm not aware of any clients that are affected by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100519 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bd5c14392d73d057a78fb39f5b136a7863a0c2c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Apr 6 03:12:43 2010 +0000 Avoid overflowing a signed integer which triggers undefined behaviour. Overflowing an unsigned integer is fine and behaves as you would expect. Also fix a pasto, allowing SignExtend64 to take a 64-bit argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100517 91177308-0d34-0410-b5e6-96231b3b80d8 commit a50bc48d9bd3882390dcfb3127f09bbd93e021b1 Author: Dan Gohman <gohman@apple.com> Date: Tue Apr 6 01:31:12 2010 +0000 Add a const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100515 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0317269bb0797c1767b558682d8328320e5645a Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 6 00:58:50 2010 +0000 propagate cookie management out one layer of function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100510 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a0cd596f9267329086a284b05fc7df9591c3431 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 6 00:55:39 2010 +0000 report errors through LLVMContext's inline asm handler if available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8976a56d23b900191030044bf2d604399f89b90e Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 6 00:51:52 2010 +0000 Give MachineModuleInfo an actual Module*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100508 91177308-0d34-0410-b5e6-96231b3b80d8 commit c17f295bc878a2c619977d72c9ea302f3e623699 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 6 00:44:45 2010 +0000 give LLVMContext an inline asm diagnostic hook member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100506 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce9e3b0e7feef6e3bc9623aef2535f75950d5e01 Author: Devang Patel <dpatel@apple.com> Date: Tue Apr 6 00:38:32 2010 +0000 Remove unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100505 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35153f578cd18af87c9d5ae9ba06df4f6e54ede3 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 6 00:33:43 2010 +0000 give the SourceMgr object a cookie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100504 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61574f6ad2fed39e0fa9bc6f21dae863b71c15c5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Apr 6 00:26:48 2010 +0000 Give llvm::SourceMgr the ability to have a client-specified diagnostic handler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38c0ff396ac79a57b606899ba43db238b764d02f Author: Douglas Gregor <doug.gregor@gmail.com> Date: Mon Apr 5 23:53:46 2010 +0000 Remove MaybeOwningPtr. We're going to use reference-counting instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100499 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35b9ff38932e15de36983d305e66c9d160eff839 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Apr 5 23:48:02 2010 +0000 Properly enable load clustering. Operand 2 on a load instruction does not have to be a RegisterSDNode for this to work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100497 91177308-0d34-0410-b5e6-96231b3b80d8 commit e94587ca86798cbd97f63d39fcccbee20095aa93 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 5 23:33:29 2010 +0000 Fix an obvious copy-n-paste bug. It's not known to cause any miscompilation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100494 91177308-0d34-0410-b5e6-96231b3b80d8 commit 640cc8cd4dc00f91cdbe1970f7d509ccb2ea9194 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 23:15:42 2010 +0000 Give AsmParser an option to control whether it finalizes the stream. New demo: $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o $ otool -tv t.o t.o: (__TEXT,__text) section _foo: 0000000000000000 subq $0x08,%rsp 0000000000000004 movl %edi,(%rsp) 0000000000000007 movl %edi,%eax 0000000000000009 incl %eax 000000000000000b movl %eax,(%rsp) 000000000000000e movl %eax,0x04(%rsp) 0000000000000012 addq $0x08,%rsp 0000000000000016 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100492 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9d5d1eb396ed80999a30ad5a96ed16bdde322d7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 23:11:24 2010 +0000 add .o file writing for inline asm in llc. Here's a silly demo: $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o <inline asm>:1:2: error: unrecognized instruction abc incl %eax ^ LLVM ERROR: Error parsing inline asm Only problem seems to be that the parser finalizes OutStreamer at the end of the first inline asm, which isn't what we want. For example: $ cat asm.c int foo(int X) { __asm__ ("incl %0" : "+r" (X)); return X; } $ clang asm.c -S -o - -emit-llvm | llc ... subq $8, %rsp movl %edi, (%rsp) movl %edi, %eax ## InlineAsm Start incl %eax ## InlineAsm End movl %eax, (%rsp) movl %eax, 4(%rsp) addq $8, %rsp ret $ clang asm.c -S -o - -emit-llvm | llc -filetype=obj -o t.o $ otool -tv t.o t.o: (__TEXT,__text) section _foo: 0000000000000000 subq $0x08,%rsp 0000000000000004 movl %edi,(%rsp) 0000000000000007 movl %edi,%eax 0000000000000009 incl %eax $ don't stop at inc! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100491 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1b3024cb4ef478af937f46c9565e07b74667325 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 23:07:42 2010 +0000 add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100490 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0a10ddabeb2d952094fc3ca1de9894f792577e2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 23:07:18 2010 +0000 tidy #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bcffe38e7f6e4c82ad27a751676594ce63d2063 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Apr 5 22:59:21 2010 +0000 Output floating point representations in DWARF format. This is done by outputing the FP encoding directly as a hex representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100487 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dcf825d5a0696f062fd593f744497ae45bd15e2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 22:49:48 2010 +0000 update unit test for api change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100486 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0735bb05e7b4196243112b1ee2d63053dacd48b3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 22:42:30 2010 +0000 stringref-ize the MemoryBuffer::get apis. This requires a co-committed clang patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d6d64ce31d3afff059b6ba93b5c692216255242 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 5 22:30:05 2010 +0000 Add nounwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100482 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5a4f48159a1c1d93292e2b2f23e259429a7ecc5 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 5 22:21:09 2010 +0000 Fix ADD32rr_alt instruction encoding bug. Patch by Marius Wachtler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100480 91177308-0d34-0410-b5e6-96231b3b80d8 commit be8a1cbca972aa20cf28dae0a1714a2592b99bce Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 22:14:48 2010 +0000 fix a really nasty bug that Evan was tracking in SCCP. When resolving undefs in branches/switches, we have two cases: a branch on a literal undef or a branch on a symbolic value which is undef. If we have a literal undef, the code was correct: forcing it to a constant is the right thing to do. If we have a branch on a symbolic value that is undef, we should force the symbolic value to a constant, which then makes the successor block live. Forcing the condition of the branch to being a constant isn't safe if later paths become live and the value becomes overdefined. This is the case that 'forcedconstant' is designed to handle, so just use it. This fixes rdar://7765019 but there is no good testcase for this, the one I have is too insane to be useful in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100478 91177308-0d34-0410-b5e6-96231b3b80d8 commit cedf290078d95eb54e7a6a00853eceb68d041ca2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 21:18:32 2010 +0000 some code cleanups, use SwitchInst::findCaseValue, reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06b6b8086f922ce967e1d8e510c18f18ed0de28e Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 5 21:16:25 2010 +0000 Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100467 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4c1794f249c16436b6b84d3ebba023e78909a8c Author: Eric Christopher <echristo@apple.com> Date: Mon Apr 5 21:14:32 2010 +0000 Remove FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100466 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ff01584236db6742c34b5c9bd3e1ab9856d772d Author: Douglas Gregor <doug.gregor@gmail.com> Date: Mon Apr 5 21:09:22 2010 +0000 Introduce MaybeOwningPtr, a smart pointer that may (or may not) have ownership over the pointer it contains. Useful when we want to communicate ownership while still having several clients holding on to the same pointer *without* introducing reference counting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100463 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7b4fea657554cf317c8b3f94c04c8d5c08c6d01 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Apr 5 21:09:12 2010 +0000 Fix OProfileJITEventListener build for new DebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100461 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3415e9b5639e630126229cf390b1639ba6cda1b4 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 5 20:24:08 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100459 91177308-0d34-0410-b5e6-96231b3b80d8 commit e89e17f5e8f7c08863aaf04b45b8aaae3c37eed3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 20:11:45 2010 +0000 lowering a volatile llvm.memcpy to a libc memcpy is ok. PR6779 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0da8d2cd61bc0e0c538034e1f88aa1089dfe8165 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 5 19:17:22 2010 +0000 Don't do code sinking on unreachable blocks. It's unprofitable and hazardous. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08c393288ee1dcf9e6f5e9b3e962ac1e587ed7c6 Author: Dan Gohman <gohman@apple.com> Date: Mon Apr 5 19:16:38 2010 +0000 Add an isReachableFromEntry to MachineDominators, following the one in Dominators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 224ca2219a619d76e427aeb85e1620e6c1a099f1 Author: Tanya Lattner <tonic@nondot.org> Date: Mon Apr 5 18:35:37 2010 +0000 Update to note that clang has a baseline now. Dropping x86-32 for MacOS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100447 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8678ca0e9031d9e3f2164c5e57569940ff2cac78 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 17:52:31 2010 +0000 don't use emitlabel in the arm asm printer yet, the order isn't well specified. ARM really needs to have its instprinter finished at some point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100439 91177308-0d34-0410-b5e6-96231b3b80d8 commit fde9648434b0e103952008debe896e7889553663 Author: Owen Anderson <resistor@mac.com> Date: Mon Apr 5 17:50:20 2010 +0000 Push const through the regex engine. Fixes some of the warnings in PR6616. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11f452af5358088c2aa202850df4dc5ce6458d4a Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 16:32:14 2010 +0000 fix a couple problems I introduced handling symbols with spaces in them. Sym->getName() != OS << *Sym git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a354e579dc38ec192442cee99eadd99859b4069 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Apr 5 10:17:15 2010 +0000 Disambiguate else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100423 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0c063f42e0b076999a4ff512fc800eafac1f504 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 06:21:01 2010 +0000 trim some prototypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100420 91177308-0d34-0410-b5e6-96231b3b80d8 commit 097e49c881c2bad6cf0d1aa17eabefd179e6e587 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 06:19:28 2010 +0000 remove the now-redundant MMI pointer in SelectionDAG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3acf80f9faa61476edf3453959dcab2f0a82444c Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 06:12:01 2010 +0000 hopefully sate the clang self host build, which is apparently instantiating some folding set stuff that GCC isn't, requiring some types to not be incomplete. I don't know if clang is right or wrong, but unbreaking the bot is goodness. Here's the broken build: http://google1.osuosl.org:8011/builders/clang-x86_64-darwin10-selfhost/builds/1813/steps/compile.llvm.stage2/logs/stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e851e483bdd5e57685a4c902c329c316328fb73 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 06:10:13 2010 +0000 remove some redundant MMI arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 221d154eda6e3e7e71b08a946fc0c2aeed1271cf Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 06:05:26 2010 +0000 unthread MMI from FastISel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100416 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c906748699b24fea0c3159f3a3d8fed4d212877 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:57:52 2010 +0000 remove the MMI pointer from MachineFrameInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64b7b99a18489c41aafc388ec3ba43b904b2e802 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:49:50 2010 +0000 enhance MachineFunction to have a MMI pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c59a2f67d467e422f309b2a6a68ae757800a55d Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Apr 5 05:48:47 2010 +0000 Add MC and LTO, two terms I just had to explain on IRC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100413 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1936d14bd4fd6db5859c8bcd529e65767724b493 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:48:36 2010 +0000 simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100412 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66dee7467b39d683efc888fb82006f2bee41a3a3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:43:16 2010 +0000 prune #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 577f414fe6035f9ad9ff077801dc25691f931382 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:32:45 2010 +0000 privatize more stuff, eliminate vtables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84ce8624b580107b1ce286d4aac4becfefc85ff0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:31:04 2010 +0000 reprivatize now that DwarfWriter is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1748a0b23a373284db6faec0f82e27d127aa8340 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:28:23 2010 +0000 prune #includes, MMI can never be null git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100408 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3398e65f2568369090f977d3240409fde50a5f2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:24:55 2010 +0000 prune #includes, realize the MMI can never be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100407 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b820840a50f9fe7503b5a81803354738629b0ce Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:12:59 2010 +0000 finally blast DwarfWriter away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100406 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38cdd4c93135562232c04180fb1858a01b561b25 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 05:11:15 2010 +0000 change AsmPrinter to use DwarfDebug/DwarfException directly instead of going through DwarfWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100405 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3da8c20e93d6396e33e1800eaa00b411428f2276 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Apr 5 04:51:50 2010 +0000 Get rid of traling whitespaces. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100404 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66ee0b94760de3e1351b9758937a88d4bb31f08e Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Apr 5 04:46:17 2010 +0000 The disassembler impl. of MCDisassembler::getInstruction() was using the pattern uint32_t insn; MemoryObject.readBytes(Address, 4, (uint8_t*)&insn, NULL) to read 4 bytes of memory contents into a 32-bit uint variable. This leaves the interpretation of byte order up to the host machine and causes PPC test cases of arm-tests, neon-tests, and thumb-tests to fail. Fixed to use a byte array for reading the memory contents and shift the bytes into place for the 32-bit uint variable in the ARM case and 16-bit halfword in the Thumb case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100403 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01ea7798d10c9ffb7a1ecea685ec1e64090abc3c Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 04:44:02 2010 +0000 implement EmitFunctionEntryLabel to emit the .cc_top directive, allowing xcore to use the normal runOnMachineFunction implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100402 91177308-0d34-0410-b5e6-96231b3b80d8 commit decb09af09312d9835887d31a8387da6bb38a60d Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 04:11:11 2010 +0000 don't reference DwarfWriter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04c579ed6ffee8894c1503b43da4ca7ab630087e Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 04:09:20 2010 +0000 trim some spurious references to DwarfWriter. SDIsel really doesn't need it anymore, so don't addRequire it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100400 91177308-0d34-0410-b5e6-96231b3b80d8 commit abbb77d0fff90d5dd7ef09718c336a7339109940 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 04:04:10 2010 +0000 prune some #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100399 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8ab8a7370e14d6266001dab6b07c75ac7ca0db9 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 03:52:55 2010 +0000 eliminate DwarfDebug::shouldEmit, which is the same now as MMI::hasDebugInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100386 91177308-0d34-0410-b5e6-96231b3b80d8 commit 401b9a2571b95e2a881e41fd93c26b186fde2777 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 03:49:26 2010 +0000 fix a regression on 2009-08-17-DebugInfo.m git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100385 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3c32087a4c7c888eeba9e207fbfd46351eae6e0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Apr 5 03:10:20 2010 +0000 Replace TSFlagsFields and TSFlagsShifts with a simpler TSFlags field. When a target instruction wants to set target-specific flags, it should simply set bits in the TSFlags bit vector defined in the Instruction TableGen class. This works well because TableGen resolves member references late: class I : Instruction { AddrMode AM = AddrModeNone; let TSFlags{3-0} = AM.Value; } let AM = AddrMode4 in def ADD : I; TSFlags gets the expected bits from AddrMode4 in this example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100384 91177308-0d34-0410-b5e6-96231b3b80d8 commit 658bed33a2acf5c4e757e04e974d6678ba79cf3d Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 02:23:33 2010 +0000 selection dag doesn't need DwarfWriter, remove some tendrils. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100382 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2105a87cac11adb04b72eb3e5903cd4f224643a6 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 02:19:28 2010 +0000 fastisel doesn't need DwarfWriter, remove some tendricles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100381 91177308-0d34-0410-b5e6-96231b3b80d8 commit b38ea79a48666db8162754b84fd137cc9de0084b Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 5 01:57:50 2010 +0000 Temporarily remove to disable building of ARM disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f108e70151faf070e424e6e492cdbbc8aa8b423 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 5 01:34:00 2010 +0000 Re-apply 100265 but instead disable building of ARM disassembly for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100379 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ef1d1d917eeef9c9bb6ee39563803beffeb1e25 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Apr 5 01:04:27 2010 +0000 Reverting 100265 to try to get buildbots green again. Lots of self-hosting buildbots started complaining since this commit. Also xfail ARM disassembly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100378 91177308-0d34-0410-b5e6-96231b3b80d8 commit f15332a40149b5424430cb9adc0f1d5530f17aa7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 00:42:55 2010 +0000 just have all targets create the DwarfWriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100377 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49c1d31257c72a714637450ed4ab92612f8d5f55 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 00:38:44 2010 +0000 simplify various getAnalysisUsage implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100376 91177308-0d34-0410-b5e6-96231b3b80d8 commit f47f881a039f2064e1b48cc017b92f7ff44d6367 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 00:27:29 2010 +0000 nuke DwarfPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6092d46a2952540763afff63d8e1820b170f2a19 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 00:26:50 2010 +0000 make DwarfException not inherit from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100374 91177308-0d34-0410-b5e6-96231b3b80d8 commit d455929feb9425ee253eff19cc7beabc58308883 Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 00:18:22 2010 +0000 change SizeOf to take AsmPrinter instead of TargetData, simplifying a bunch of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100373 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e003ddb79d1d508694fd28fce749fbdbae31cab Author: Chris Lattner <sabre@nondot.org> Date: Mon Apr 5 00:13:49 2010 +0000 1) make DIE take AsmPrinter instead of DwarfPrinter. 2) change DwarfDebug to not inherit from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d7a94f76b47b7f0bcc37b88f7acad53df4e00a9 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:41:46 2010 +0000 Move EmitFrameMoves into AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100371 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8539f04d42b7af29a83c01978257b6e1fa0f1bb0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:36:52 2010 +0000 missed a header :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e37aa00fd4a2d0a2b23c9a4455a058ef0b788db Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:31:58 2010 +0000 simplify code and reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 613d92ad3700cf789d9dafb05af9ffe3c2193df5 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:25:33 2010 +0000 now that the magic is dispelled, move EmitSectionOffset to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100368 91177308-0d34-0410-b5e6-96231b3b80d8 commit bec76da01cfef92f59ec675d1b6bd7fda90589ee Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:22:29 2010 +0000 eliminate the magic AbsoluteDebugSectionOffsets MAI hook, which is really a property of the section being referenced. Add a predicate to MCSection to replace it. Yay for reduction in magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100367 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e6a5dac8b0583411f01ff3f869300bea6ef8e3c Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:17:54 2010 +0000 only emit section labels if we have debug info, fixing a few regtest failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100366 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7edd715b4fbbca86b99118eb295724af506e173f Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:10:38 2010 +0000 I was wrong, ocaml isn't referencing 'Ldata_begin', so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100365 91177308-0d34-0410-b5e6-96231b3b80d8 commit 781c04c3a36f5e048f2fb9dcae403ebbf6a62873 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:06:31 2010 +0000 add some assertions to EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100364 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8ffef9abd18670f030a6d12e7780c2584e8acd3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 23:02:02 2010 +0000 stop emitting some dead L labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100363 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02bc2f6461e05a373a8264e25e4aa8f4170cddd3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 22:59:04 2010 +0000 Store an use the symbols emitted at the start of the debug sections instead of magically rematerializing them later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100362 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd0d8bc7da0d75a2062d53026ff43a784dab353e Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 22:33:59 2010 +0000 remove the didInitial ivar, rename emitInitial to be more descriptive, change EmitSectionOffset back to taking a symbol instead of a string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100361 91177308-0d34-0410-b5e6-96231b3b80d8 commit 424162cf4ad1a0f1bf00841236f979f464aab077 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 22:25:14 2010 +0000 simplify EmitSectionOffset a little bit, improve comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100360 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad5a42da4b3e19c8cfafd65ad8e6b628c191d5fc Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 21:49:31 2010 +0000 revert my patch, need to reconsider this and figure out what is really going on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100358 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4664ee5c82865b4d4bf1839b45c04c774fee11b Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 21:37:20 2010 +0000 fix pasto, this is the wrong setting for arm elf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100357 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35989e4fbd1a1594bc3e2d43df40db2b741ffb11 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 21:34:40 2010 +0000 The "IsSmall" argument to EmitSectionOffset is always true, constant fold it away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100356 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5065a48f38dc9603a2037f1f0fa2e0b05b5fbf2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 21:31:54 2010 +0000 eliminate the "isEH" argument to EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100355 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6bd3a4d9809355dfc3c60434b94aa1bce50f460 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 21:29:44 2010 +0000 isAbsoluteEHSectionOffsets always returns false, eliminate it and substitute false at the one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100354 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3bf1e4fc2a8d40844d06896ce48c8037308067f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Apr 4 21:27:26 2010 +0000 Clean up SSEDomainFix pass. Restrict bit mask operations to the DomainValue class. Rename methods for clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100353 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bed985168024320be332856dc2b4059def890c3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 21:06:50 2010 +0000 don't reset the default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100352 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6d44f33ea57469991d1e60bd63ce64959e228cb Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 20:20:50 2010 +0000 move some more stuff to asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f248b8d73a95d47e9813d4c064efe8cb7a92b95 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 20:10:41 2010 +0000 simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100350 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91a71357698c7fa0be58a3c5c9404b5e9157fbd5 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 20:04:21 2010 +0000 move EmitEncodingByte to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b1e373f5162bee7d70c5a91266512be39e34a59 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 20:01:25 2010 +0000 move EmitCFAByte to AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100348 91177308-0d34-0410-b5e6-96231b3b80d8 commit 600f97b1f98da73ce3185f262d33c5d1ff987b5b Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 19:58:12 2010 +0000 inline EmitDifference away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100347 91177308-0d34-0410-b5e6-96231b3b80d8 commit df5a4968daa3eee2e33c69696e86859258c5c91c Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 19:28:59 2010 +0000 resolve a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100346 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87b6801d37411cbb528cec3dacfe1ae90d221bd2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 19:25:43 2010 +0000 move gettemplabel and getdwlabel to AsmPrinter and rename them for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100345 91177308-0d34-0410-b5e6-96231b3b80d8 commit 181e619371d01da074367dcb8cd904d62094eaf4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 19:09:29 2010 +0000 move uleb/sleb printing into AsmPrinter from DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100344 91177308-0d34-0410-b5e6-96231b3b80d8 commit c553579de3b2a36e8f7dcf060e436d96a5ce3f5b Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 18:58:53 2010 +0000 more interface cleanup make some helpers static functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100343 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc0ffb3339d358e78d69c079baef8fde04c85ad8 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 18:52:31 2010 +0000 clean up the asmprinter header and privatize some stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100342 91177308-0d34-0410-b5e6-96231b3b80d8 commit aca7362398f335bc5e43e3d614775adb8eb5600c Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 18:42:18 2010 +0000 use stringref instead of strtol to avoid errno gymnastics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100341 91177308-0d34-0410-b5e6-96231b3b80d8 commit bab1ff91755da67d56e172dc54bb90ac3de2d8d2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 18:34:07 2010 +0000 split inline asm support out to its own .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100340 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96f70f2f80ef79cbddda774c819622661e711895 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 18:18:51 2010 +0000 inline processDebugLoc and simplify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100339 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0f32d556052021a54789ee6d417fac003ae22cf Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 18:16:38 2010 +0000 minor tidying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100338 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8564bc22ff564f9a37c2fe3df256e3d1ed22a71 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 18:14:01 2010 +0000 clean up the asmprinter interface a bit, rename a few "Print" methods to "Emit". Emit is something that goes to an mc streamer, Print is something that goes to a raw_ostream (for inline asm) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100337 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08a1f328f42f30826fd0ef813e3b7db6b78e5366 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 18:06:11 2010 +0000 remove TargetMachine.h #include, also, TRI isn't used frequently enough to warrant caching in AsmPrinter, so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100336 91177308-0d34-0410-b5e6-96231b3b80d8 commit b90b1779601c738ecffb1ed13e16e4a44b074db0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Apr 4 18:00:21 2010 +0000 Switch SSEDomainFix to SpecificBumpPtrAllocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55a6c0facaa5fe0319159ea15dae998faa155e0f Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 17:57:56 2010 +0000 lazily allocate the GCMetadataPrinters map and remove DenseMap from the AsmPrinter interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100331 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59d06a3a4dd8f19189ece1ad080fd5be220fae04 Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Sun Apr 4 10:31:49 2010 +0000 CurFn is only used for relocations. Use EmissionDetails.MF->getFunction() instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100328 91177308-0d34-0410-b5e6-96231b3b80d8 commit a96f2f80a7435a28681806810341212ebec2d53c Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 08:18:47 2010 +0000 Momentous day: remove the "O" member from AsmPrinter. Now all "asm printering" happens through MCStreamer. This also Streamerizes PIC16 debug info, which escaped my attention. This removes a leak from LLVMTargetMachine of the 'legacy' output stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100327 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd7d87165dca8e43074d399c8faebf3bb77fc919 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 07:50:12 2010 +0000 now that all operand printing happens to specified streams, we can print function level inline asm with EmitInlineAsm instead of writing it directly to "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8979fd0b0bca06a1324277ee3f57a13a9146d0cd Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 07:48:20 2010 +0000 remove the raw_ostream from various dwarf printing things. The only thing left is LEB printing, which uses EmitRawText for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100325 91177308-0d34-0410-b5e6-96231b3b80d8 commit b988a422ffec19a826b4249a7f69f8528e3c3f3a Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 07:39:04 2010 +0000 mcize the gc metadata printing stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ab905f89d55f174a4d33f3a3e20c8d0c186b351 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 07:25:52 2010 +0000 use EmitRawText instead of O in DwarfPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a7a69bd5a8528173ef72a36317732efb161e5d3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 07:23:00 2010 +0000 mc'ize the remaining uses of O. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c8564c141a5b2f76f17d9c2fa0c76ac00a04acd Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 07:17:25 2010 +0000 finish eliminating uses of O. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0262f8823cb7a739f3a2184b819579f8c9a906f7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 07:12:28 2010 +0000 mcize more of ppc stub printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100320 91177308-0d34-0410-b5e6-96231b3b80d8 commit d073ac291d26d26161738944f97be44db6d82d22 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 07:05:53 2010 +0000 mcize a bunch more stuff, using EmitRawText for things we don't have mcstreamer support for yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100319 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13df715c3542c420408b42b377e6c81a299d1016 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 06:12:20 2010 +0000 convert the non-MCInstPrinter'ized EmitInstruction implementations to use EmitRawText instead of writing directly to "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100318 91177308-0d34-0410-b5e6-96231b3b80d8 commit 349eb87d618378128799c5af697762131bcfe011 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:53:03 2010 +0000 streamerize the rest of PIC16 asm printer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100317 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61dfd0c1466186c44b7df00d0d4400d139502166 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:40:34 2010 +0000 streamerize printing of dbg_value, the x86 backend is now fully streamerized for everything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100316 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2de4c148d3902a64f939fe191f6f663caff84b0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:38:19 2010 +0000 split DEBUG_VALUE printing stuff out to its own method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100315 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ad01e95f20edbab7fe217f18159e3392b348baa Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:35:04 2010 +0000 mc'ize elf stub printing, convert cygwin stuff to EmitRawText, which will abort in .o file writing mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100314 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b5a1222e4a37efec8e05e41e79a2dc91a21d8f0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:29:35 2010 +0000 fix PrintAsmOperand and PrintAsmMemoryOperand to pass down raw_ostream to print to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100313 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c7e39a7bd195badf6631f20c02c00090862b598 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:21:31 2010 +0000 use predicates in DBG_VALUE printing code to simplify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100312 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb5a2802cbf8e4ec4833e6fb74d5059857851638 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:19:20 2010 +0000 remove more implicit uses of "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100311 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4a41036c24f38f2edcfaf41cae32cb33dde19bf Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:09:10 2010 +0000 change this back too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b053b2fa1f64f942fd743ac3c36e3f83357cfc1 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:08:10 2010 +0000 check in what I tested. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100309 91177308-0d34-0410-b5e6-96231b3b80d8 commit c05b829c427c3ea3f5fb30d56e4ff5d3bc44b73f Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:07:45 2010 +0000 MMI is always available, rename O -> OS in printInlineAsm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100308 91177308-0d34-0410-b5e6-96231b3b80d8 commit 753857b4cf4a1c3221daa3af826ce17150b4fd5f Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 05:04:31 2010 +0000 fix an ugly wart in the MCInstPrinter api where the raw_ostream to print an instruction to had to be specified at MCInstPrinter construction time instead of being able to pick at each call to printInstruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100307 91177308-0d34-0410-b5e6-96231b3b80d8 commit eecac9a5bfc0fd1203f57825817c03c3b86f7284 Author: Chris Lattner <sabre@nondot.org> Date: Sun Apr 4 04:47:45 2010 +0000 change a ton of code to not implicitly use the "O" raw_ostream member of AsmPrinter. Instead, pass it in explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100306 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9190cae5047baa8da80831efa2803299f76d1a6 Author: Mon P Wang <wangmp@apple.com> Date: Sun Apr 4 03:10:48 2010 +0000 Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100304 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8e2b5306d31df546a619f0d03e4352302aa29bc Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 22:28:33 2010 +0000 asmstreamerize the .size directive for function bodies, force clients of printOffset to pass in a stream to print to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100296 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba2a2583bb3688ca35d21ff175e5e08ebc96eef7 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 22:19:41 2010 +0000 emit the cygwin stub thing through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35642a4ea13d08bbb7241d0a8b038a0c39ad489f Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 22:12:35 2010 +0000 add a twine form of MCStreamer::EmitRawText, and mc'ize a few more things in AsmPrinter.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 264b85495b69901645c5edcff8b0841eeaa7e4c1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 22:06:56 2010 +0000 allow attaching comments to raw text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100292 91177308-0d34-0410-b5e6-96231b3b80d8 commit 038ae53c0bf9290ef226a6777698cd2be963a9ea Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 22:01:50 2010 +0000 start moving towards emitting inline asm statements with EmitInlineAsm. However, this attempt is foiled by operands being emitted directly to "O" so I'll have to do some surgery and finish MCizing the world. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100291 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cee8a7a43f827e878f690a93bfe0280b0d40c6f Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 21:48:59 2010 +0000 add <cstdlib> header for abort() on linux builders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9329f9f8e4e2fe2a81a97267e5f807299a17e32c Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 21:35:55 2010 +0000 add a new EmitInlineAsm function to asmprinter to handle inline asm. If we have an MCAsmStreamer, we continue to emit asm textually, otherwise we (currently) emit an error to errs and ignore it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100289 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbb7ff00d03c4a4eab3b22fd7d32dc175e64a631 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 21:13:18 2010 +0000 mc'ize comment printing around file scope inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100288 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f7b595b75ca44b46c883fefadd728010f2b91ff Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 21:03:50 2010 +0000 remove some extraneous casts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100287 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fd045878aef9a7a527a561e57cff0f54cdb20ae Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 07:21:39 2010 +0000 require that the branch being controlled by the IV exits the loop. With this information we can guarantee the iteration count of the loop is bounded by the compare. I think this xforms is finally safe now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100285 91177308-0d34-0410-b5e6-96231b3b80d8 commit d20adb127cce4fbd4256363a38983fe744b92933 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 07:18:48 2010 +0000 add integer overflow check for the fp induction variable checker. Amusingly, we already had tests that we should have rejects because they would be miscompiled in the testsuite. The remaining issue with this is that we don't check that the branch causes us to exit the loop if it fails, so we don't actually know if we remain in bounds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100284 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c945a716abe7f6c41807d991dafd69a43595ac2 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:41:49 2010 +0000 add a comment and fix some consistency issues, converting to a signed vs unsigned value depending on the sign of the constant fp means that we can't distinguish between a truly negative number and a positive number so large the 32nd bit is set. So, do don't this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100283 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27f8d68bc9d803b736703ef20a9f1841a63cf402 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:30:03 2010 +0000 fix PR6761, a miscompilation due to the fp->int IV conversion stuff. More bugs remain though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100282 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3f8e6d07d35edde9bb42effd57f2f4354cf6b57 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:27:56 2010 +0000 convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100281 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22a7fa8b214d4a010e011eae5220f291acb7eb58 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:25:21 2010 +0000 just eliminate the uitofp checks. This code isn't doing the required validity checks in the first place, and supporting a condition large enough to require the 32'nd bit isn't worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100280 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba3ea5816012a9a4cdd09eb76ed0b32ac4908fd7 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:24:28 2010 +0000 rename feature test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100279 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26e87998d0d68fb0f8ba710c3929e2a290f73c76 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:24:03 2010 +0000 actually just remove this, will move the real feature test here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100278 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4cdf61202fd059b167ac029c6b937762f0eaa20 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:22:52 2010 +0000 rename test since it is a feature test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100277 91177308-0d34-0410-b5e6-96231b3b80d8 commit 631bf43ef8c6f5a2538bc79560d3323fe53542c0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:17:08 2010 +0000 rename PH -> PN to be consistent with WeakPN and the rest of llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100276 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b71a8e5ee3a033a10d3cb69a330961406f424c5 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:16:22 2010 +0000 improve comment and drop a dead check. If PH had no uses, it would have been deleted by RecursivelyDeleteTriviallyDeadInstructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100275 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee8ea1a3ad660741a5608804c9b47a7988fd94ac Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:13:12 2010 +0000 strength reduce a ridiculous use of APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100274 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c426ad12b71d4c718f779bb8c209a70aefa56c9 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:11:07 2010 +0000 rename stuff improve comment grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100273 91177308-0d34-0410-b5e6-96231b3b80d8 commit d62f4e0498c7da5b84d20ca1ab3e32975eb9111e Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:06:59 2010 +0000 simplify some code and resolve a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100272 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43250b834634a302610edf0f7e57ce17879f0f0b Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 06:05:10 2010 +0000 There is no guarantee that the increment and the branch are in the same block. Insert the new increment in the correct location. Also, more cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 423a7d8a78e3b93ab810cac731a98da27a2597d4 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 05:54:59 2010 +0000 first half of a pass through IndVarSimplify::HandleFloatingPointIV, this cleans up a bunch of code and also fixes several crashes and miscompiles. More to come unfortunately, this optimization is quite broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100270 91177308-0d34-0410-b5e6-96231b3b80d8 commit c75d38c56a4c27b9f1813e87c0264ea49f4f91f6 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 05:24:50 2010 +0000 don't internalize available_externally functions, they are really just declarations. This is related to PR6524 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100269 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc3d641525f0f884cc0f48e4ea17380b03ac180a Author: Chandler Carruth <chandlerc@gmail.com> Date: Sat Apr 3 04:45:24 2010 +0000 Fix a warning in GCC about a pointless typedef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100268 91177308-0d34-0410-b5e6-96231b3b80d8 commit 379a559f25325bda03cf56846b6603627d156c6e Author: Chandler Carruth <chandlerc@gmail.com> Date: Sat Apr 3 04:36:43 2010 +0000 Add the new ARMDecodeEmitter to CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100267 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43b28faf2defc3c3aefa597669d2f1c4a6318ba6 Author: Johnny Chen <johnny.chen@apple.com> Date: Sat Apr 3 04:10:56 2010 +0000 Get rid of the middleman (ARMAlgorithm), which causes more trouble than the abstraction it brings. And also get rid of the atexit() handler, it does not belong in the lib directory. :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100265 91177308-0d34-0410-b5e6-96231b3b80d8 commit f64baccd65e9cf218e0cb20c65b7cbd1e71acc11 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Apr 3 03:50:38 2010 +0000 Revert all my SSAUpdater patches. The PHI placement algorithm is not correct (what was I thinking?) and there's also a problem with LCSSA. I'll try again later with fixes. --- Reverse-merging r100263 into '.': U lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100177 into '.': G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100148 into '.': G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100147 into '.': U include/llvm/Transforms/Utils/SSAUpdater.h G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100131 into '.': G include/llvm/Transforms/Utils/SSAUpdater.h G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100130 into '.': G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100126 into '.': G include/llvm/Transforms/Utils/SSAUpdater.h G lib/Transforms/Utils/SSAUpdater.cpp --- Reverse-merging r100050 into '.': D test/Transforms/GVN/2010-03-31-RedundantPHIs.ll --- Reverse-merging r100047 into '.': G include/llvm/Transforms/Utils/SSAUpdater.h G lib/Transforms/Utils/SSAUpdater.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1caa929620ff1b980c1446cb08dbb9fd333892f1 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Apr 3 03:28:44 2010 +0000 Add a DEBUG_TYPE for the SSAUpdater. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100263 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1408dae65887b4bccfe9bf5747da6b14920db96 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Apr 3 02:23:43 2010 +0000 Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100262 91177308-0d34-0410-b5e6-96231b3b80d8 commit f151fe5110fd148de9c9077c84418ed220d476d2 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 02:17:50 2010 +0000 Add special case bitcode support for DebugLoc. This avoids having the bitcode writer materialize mdnodes for all the debug location tuples when writing out the bc file and stores the information in a more compact form. For example, the -O0 -g bc file for combine.c in 176.gcc shrinks from 739392 to 512096 bytes. This concludes my planned short-term debug info work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100261 91177308-0d34-0410-b5e6-96231b3b80d8 commit e267af292d5b9b3b1b4758207479705f260308eb Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Apr 3 02:00:03 2010 +0000 Pass -shared to the linker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100260 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ee5528c5234d12327d446565cad371db28c57d6 Author: Johnny Chen <johnny.chen@apple.com> Date: Sat Apr 3 01:17:30 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100259 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9515824c6f9df79bded29118060a0d2e3b26f41 Author: Johnny Chen <johnny.chen@apple.com> Date: Sat Apr 3 01:09:47 2010 +0000 Register ARMAlgorithm::DoCleanup() to be called on exit to free the memory occuplied by the cached ARMAlgorithm objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100258 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53b1a0b90ffb691a41694d3df910c02e76752e91 Author: Chris Lattner <sabre@nondot.org> Date: Sat Apr 3 01:05:24 2010 +0000 add a couple missing enum names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 677f815c1d37530fed6e3aaedf515d0587b016a8 Author: Eric Christopher <echristo@apple.com> Date: Fri Apr 2 23:48:33 2010 +0000 Rewrite aesimc handling. It only takes a single input and has a single dest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100252 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbc64295cc72e3a6d555f4b3540dd3100b3ba8b3 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 2 23:43:38 2010 +0000 Fix another build warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fffba4ccc5119c27218d991c6f99d0981542ce8 Author: Eric Christopher <echristo@apple.com> Date: Fri Apr 2 23:29:36 2010 +0000 Fix typo aeskeygenassist -> aeskeygenassist128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100250 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff128694c9397bcd58c3f6e6d4570ad0ef44ac18 Author: David Greene <greened@obbligato.org> Date: Fri Apr 2 23:17:14 2010 +0000 Ok, third time's the charm. No changes from last time except the CMake source addition. Apparently the buildbots were wrong about failures. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100249 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4293612696357277ea12ff55d735120e890e6a2 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 2 23:13:52 2010 +0000 Move variable "Bits" declaration/definition into the DEBUG block where its usage is expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100247 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c1debea05f17802888be286206c4b4090666ca3 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 2 22:51:04 2010 +0000 Fixed build warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100244 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b2edbdea93d7456b222a0083f18acd2eaff37d3 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 2 22:41:06 2010 +0000 Change from .../Support/DataTypes.h to .../System/DataTypes.h. (Fix build failure) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100243 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b8b7d66f685b1a3083fdc579fc6f731584fb82b Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Apr 2 22:27:38 2010 +0000 Second try of initial ARM/Thumb disassembler check-in. It consists of a tablgen backend (ARMDecoderEmitter) which emits the decoder functions for ARM and Thumb, and the disassembler core which invokes the decoder function and builds up the MCInst based on the decoded Opcode. Reviewed by Chris Latter and Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96051c0b43ae509a3e89175b22520d1b47c42e3f Author: Sean Callanan <scallanan@apple.com> Date: Fri Apr 2 22:27:05 2010 +0000 Added support for reporting operand token ranges to the ARM AsmParser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100232 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1e70313bcfa30516beca6a542cafa1b68788d5c Author: Eric Christopher <echristo@apple.com> Date: Fri Apr 2 21:54:27 2010 +0000 Separate out the AES-NI instructions from the SSE4.2 instructions. Add a new subtarget option for AES and check for the support. Add "westmere" line of processors and add AES-NI support to the core i7. Add a couple of TODOs for information I couldn't verify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 685982aca46bea75f9847ebaca7c85a8e313f9a5 Author: Dale Johannesen <dalej@apple.com> Date: Fri Apr 2 21:49:27 2010 +0000 Skip debug info when looking for existing EH calls at the beginning of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c5dec507808f9ce8214df607ee412de47982598 Author: Sean Callanan <scallanan@apple.com> Date: Fri Apr 2 21:23:51 2010 +0000 Fixes to the X86 disassembler. The disassembler will now return an error status in all failure cases, printing messages to debugs() only when debugging is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34fc05317fa60d35639b7443585eaa1d0726d95b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Apr 2 20:47:05 2010 +0000 Fix anachronism. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27366d4fd31d34b9335dc3f571f4f9064ede52f9 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:44:29 2010 +0000 DebugInfoFinder::processModule was foiling my plot by materializing an MDNode for every debugloc. don't do that! :) "clang -g -S t.c" really no longer makes mdnodes for location tuples now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100224 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0569632693ab77e69b2c6b751b926aea73ea7d41 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:36:25 2010 +0000 fix the llvm-x86_64-linux buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100223 91177308-0d34-0410-b5e6-96231b3b80d8 commit 533687635b78c5f5018c4134fd357edeb464f528 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:26:36 2010 +0000 remove empty file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100222 91177308-0d34-0410-b5e6-96231b3b80d8 commit d02728e4a82bbc9018eb88bd60941552b9aab32a Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:26:07 2010 +0000 remove compatibility typedef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100221 91177308-0d34-0410-b5e6-96231b3b80d8 commit db9a67876cb99b2b1d67cb379252cac6d4cace8d Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:21:22 2010 +0000 rename NewDebugLoc -> DebugLoc, prune #includes in DebugLoc.h. This keeps around temporary typedef for clang/llvm-gcc so the build won't break when I commit this :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100218 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5e88e778d0f5c42977216b08059f7d476e64645 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:20:41 2010 +0000 remove uses of DebugLoc::getUnknownLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100217 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1f4d91ee9d3a67f07d9cb22c788f60c667b111f Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:20:04 2010 +0000 include densemap.h explicitly and rearrange #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100216 91177308-0d34-0410-b5e6-96231b3b80d8 commit 819163a39e9b3922dad79b489db6c6fdfea21b87 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:17:23 2010 +0000 stop using DebugLoc::getUnknownLoc() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 332764e5e224d6e65dd71a13f97eb6f45a1a2f14 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 20:16:16 2010 +0000 use DebugLoc default ctor instead of DebugLoc::getUnknownLoc() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100214 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddfae79e0421d079ee616d283ff65e59c581b948 Author: Chris Lattner <sabre@nondot.org> Date: Fri Apr 2 19:42:39 2010 +0000 Switch the code generator (except the JIT) onto the new DebugLoc representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100209 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6644e742802de990e46411a8bbcf530ec5505333 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 2 19:36:14 2010 +0000 Correctly lower memset / memcpy of undef. It should be a nop. PR6767. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a07f164871e3a0b26282a299aed1a4d1f7a68b4 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 2 19:29:15 2010 +0000 Revert 100204. It broke a bunch of tests and apparently changed what passes are run during codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100207 91177308-0d34-0410-b5e6-96231b3b80d8 commit 279912883987e086a30672eb714987ba2de12443 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Apr 2 19:09:51 2010 +0000 Update CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100206 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebb712ee562ceb72e9d5e4522f67bf77df5512f6 Author: David Greene <greened@obbligato.org> Date: Fri Apr 2 18:46:26 2010 +0000 Let's try this again. Re-apply 100143 including an apparent missing <string> include. For some reason the buildbot choked on this while my builds did not. It's probably due to a difference in system headers. --- Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f824ca71706102f8a1834ff7e5a6fb2ed2b6859 Author: Mon P Wang <wangmp@apple.com> Date: Fri Apr 2 18:43:02 2010 +0000 Revert r100191 since it breaks objc in clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bc466443249b8fecefa3e50babcf34129208614 Author: Mon P Wang <wangmp@apple.com> Date: Fri Apr 2 18:04:15 2010 +0000 Reapply address space patch after fixing an issue in MemCopyOptimizer. Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100191 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb677037b94dbb17456fc5fd092e88bae5739dad Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 2 14:57:49 2010 +0000 Add an explicit keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100187 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdbcb478960d1afaf79c8c5af19fecbfb58bc349 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 2 14:48:31 2010 +0000 Manually notify ScalarEvolution before making an operand replacement, since it can't currently observe such changes automatically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100186 91177308-0d34-0410-b5e6-96231b3b80d8 commit 136d3bf40b529848981ff0eb199df70c42e47e79 Author: Edwin Török <edwintorok@gmail.com> Date: Fri Apr 2 13:20:51 2010 +0000 Fix SpecificBumpPtrAllocator iteration. Need to start from (char*)(Slab+1), and not from (char*)Slab+1. This fixes crashes in Win64 debug mode. Thanks to Nicolas Capens! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fbd05d72af6dc450dbec94de7750c122ea1a232 Author: Duncan Sands <baldrick@free.fr> Date: Fri Apr 2 09:23:15 2010 +0000 Add notes about dragonegg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100183 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0580ec6ff7fd3ec21e2a186f4205059039a22dc8 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 2 05:09:46 2010 +0000 Recommit 100158 now that the buildbots are happy again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100177 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34e6bca6dcc3dab231eb6a1e4d2f280ce4c0f976 Author: Eric Christopher <echristo@apple.com> Date: Fri Apr 2 04:32:37 2010 +0000 Remove FIXME - if there's a better way to do this it isn't here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100176 91177308-0d34-0410-b5e6-96231b3b80d8 commit 370ca398ded03f9854ddc99278071d12385112f8 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 2 03:04:37 2010 +0000 Revert the recent alignment changes. They're broken for -Os because, in particular, they end up aligning strings at 16-byte boundaries, and there's no way for GlobalOpt to check OptForSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c2a1fbf4ca66b8fba075d18a74401d58bb867c4 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Apr 2 02:21:24 2010 +0000 After trivial coalescing, the MI being visited may have become a copy. Avoid adding it to CSE hash table since copies aren't being considered for CSE and they may be deleted. rdar://7819990 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01896c67c15a0c349778ca86ac8b94012f03c709 Author: Dale Johannesen <dalej@apple.com> Date: Fri Apr 2 01:38:09 2010 +0000 Teach AnalyzeBranch, RemoveBranch and the branch folder to be tolerant of debug info following the branch(es) at the end of a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66f99304a63d49dcbbd9c95e241d476bda4b1bed Author: Chandler Carruth <chandlerc@gmail.com> Date: Fri Apr 2 01:31:24 2010 +0000 Disambiguate conditional expression for newer GCCs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 995d6828ae1ebba3c12a5ca1d8dc0d3fe189afd4 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 2 01:26:13 2010 +0000 Remove this initializer so that the optimizer doesn't convert unaligned loads into aligned loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100166 91177308-0d34-0410-b5e6-96231b3b80d8 commit be02fea0a40799724d74785e19e3973fbb268461 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 2 01:24:08 2010 +0000 Update this test for the new preferred alignment heuristics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100165 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2474112b8070e5f44baf2dd285896745fc19f34b Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 2 01:22:49 2010 +0000 Revert 100158 in case it is causing some of the buildbot problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cd0d290731cd112536fb00bdea48dffb2f4bfee Author: Sean Callanan <scallanan@apple.com> Date: Fri Apr 2 00:53:42 2010 +0000 Updated the install location for EnhancedDisassembly on Mac OS X to use @rpath rather than an absolute path. Also allowed the version to be set using an environment variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100163 91177308-0d34-0410-b5e6-96231b3b80d8 commit 599d5a99a914b659a222fe2c03819d97a543b534 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 2 00:46:07 2010 +0000 Change variables which are exactly 16 bytes to be 16-byte-aligned too. This fixes test/Transforms/GlobalOpt/gv-align.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100161 91177308-0d34-0410-b5e6-96231b3b80d8 commit c46aabaadd96ce1c768d88f5c7990b8f479f336f Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 2 00:14:16 2010 +0000 Make globalopt refine global variable alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100160 91177308-0d34-0410-b5e6-96231b3b80d8 commit addf09d0fa38e556f8410982cdf13b5dde10e303 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Apr 2 00:10:41 2010 +0000 Check for terminating conditions before adding PHIs to the worklists. This is more efficient than adding them to the worklist and then ignoring them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100158 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea17f1981ecdd6bee25fd63cdcb45647402c4c4d Author: Gabor Greif <ggreif@gmail.com> Date: Fri Apr 2 00:08:26 2010 +0000 remove these merge-tracking properties as they might interfere with merges to other branches (as Dan pointed out) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100157 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9ab20b39a423576c35323775c43b9fb59a770a6 Author: Dan Gohman <gohman@apple.com> Date: Fri Apr 2 00:03:51 2010 +0000 If the bitcode reader input stream isn't a multiple of 4 bytes, it's more likely not a bitcode file at all, rather than being a bitcode file which is truncated. Check for this case and issue a more relevant error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100156 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90db96f916ed9eceec4a99717920e2e2cefaa28a Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Apr 1 23:06:38 2010 +0000 Remove trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100148 91177308-0d34-0410-b5e6-96231b3b80d8 commit d03b87e3c34b5e812b5d021ffb6d21965c60da80 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Apr 1 23:05:58 2010 +0000 Rewrite another SSAUpdater function to avoid recursion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32909df3eca9d0c80467fa73cc0f4209ce6b609d Author: Eric Christopher <echristo@apple.com> Date: Thu Apr 1 22:54:42 2010 +0000 Revert r100143. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dec59c83819aae026afdad2cd53dc7f51e1909a Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 1 22:47:29 2010 +0000 Revert r100117. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100145 91177308-0d34-0410-b5e6-96231b3b80d8 commit a29c9c0037826eee67550a9d5bfea064d284b122 Author: David Greene <greened@obbligato.org> Date: Thu Apr 1 22:43:57 2010 +0000 Add some switches helpful for debugging: -print-before=<Pass Name> Dump IR before running pass <Pass Name>. -print-before-all Dump IR before running each pass. -print-after-all Dump IR after running each pass. These are helpful when tracking down a miscompilation. It is easy to get IR dumps and do diffs on them, etc. To make this work well, add a new getPrinterPass API to Pass so that each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass suitable for dumping out the kind of object the Pass works on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100143 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd6248b319846a9ea56c0bdb7a6b7760f008c5ee Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 1 20:27:45 2010 +0000 In 64-bit mode, use i64 to lower memcpy / memset instead of f64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33518be1f318bb2f1d764619998218840c5c257d Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 1 20:22:44 2010 +0000 Do not eagerly record known previous location. DBG_VALUE may not cause a new label due to one or other reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100134 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1882e8dfc72627a1b7b76e209034c4b0cc1be1b8 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 1 20:13:28 2010 +0000 Skip checking preferred alignment of GVs defined in other translation units all together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100133 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9555b9450c30d60481a6dda37c1a5188ab67f71 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 1 20:10:42 2010 +0000 Add comments about DstAlign and SrcAlign. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b9bf9685a156099a656205ebbbcf6a05d89f568 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Apr 1 20:04:30 2010 +0000 Change another SSAUpdater function to avoid recursion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c85e7acb5145c75e0147960a7213ab21670e599 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Apr 1 19:53:48 2010 +0000 Simplify the code to check for existing PHIs, now that it is only used in one place. This removes the template function added in svn 94690. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dee8d0336fd323ef592198afc76750bc91bb4a9 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Apr 1 18:46:59 2010 +0000 The SSAUpdater should avoid recursive traversals of the CFG, since that may blow out the stack for really big functions. Start by fixing an easy case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100126 91177308-0d34-0410-b5e6-96231b3b80d8 commit d393b405a7d45ddd1f7921593ee784820719876d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 1 18:19:11 2010 +0000 - Avoid using floating point stores to implement memset unless the value is zero. - Do not try to infer GV alignment unless its type is sized. It's not possible to infer alignment if it has opaque type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100118 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0b0a23fa59c87348ecc0169f5d6db03949ede66 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 1 17:32:01 2010 +0000 Skip instructions until new scope is seen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100117 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f52c8a68abd98d6172e2c77bed628c00bddfb43 Author: Devang Patel <dpatel@apple.com> Date: Thu Apr 1 17:16:48 2010 +0000 Cosmetic changes. Update comment, rename a local variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100116 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc8af06ef002572a15e7566f8dbc5a01e9765cf9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Apr 1 14:39:55 2010 +0000 Remove accidental include and add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100107 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a3b91cb0179559a9a14e77a974eb06c674cbbe8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Apr 1 14:35:22 2010 +0000 Various improvements to MemoryBuffer::getFile: - Use a RAII object to close the FD. - Use sys::StrError instead of thread-unsafe strerror calls. - Recover gracefully if read returns zero. This works around an issue on DragonFlyBSD where /dev/null has an st_size of 136 but we can't read 136 bytes from it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100106 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f0d44484eee99a4cde5715c50ae43df98a1cf31 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 1 08:25:26 2010 +0000 Add -mcpu to memcpy / memset tests to ensure they behave the same on all hosts / targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37942ef7502b5f1eccab52164868b16df962f295 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Apr 1 08:21:08 2010 +0000 Introduce ImmutableCallSite, useful for contexts where no mutation is necessary. Inherits from new templated baseclass CallSiteBase<> which is highly customizable. Base CallSite on it too, in a configuration that allows full mutation. Adapt some call sites in analyses to employ ImmutableCallSite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79dd15b3dd95274b4c3660630cdd94bd47be5501 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Apr 1 07:34:00 2010 +0000 Clean up this file a little, no functionality change. This is a subset of my patch back in r94322. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 088429a660133e7231b5cb04883daa7fba72d01a Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 06:31:45 2010 +0000 switch IRBuilder to use NewDebugLoc for locations instead of raw mdnodes. This allows frontends to specify debug locations without ever creating an MDNode for the DILocation. This requires a corresponding clang/llvm-gcc change which I'll try to commit as simultaneously as possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100095 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc52a05dd9d4341a4692bca575324fe300d6e54b Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 06:29:56 2010 +0000 add comments, don't require inlined-at to be specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100092 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbc5e8514b08c588e325dd210b42c9dc3eae963c Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 1 06:04:33 2010 +0000 Fix sdisel memcpy, memset, memmove lowering: 1. Makes it possible to lower with floating point loads and stores. 2. Avoid unaligned loads / stores unless it's fast. 3. Fix some memcpy lowering logic bug related to when to optimize a load from constant string into a constant. 4. Adjust x86 memcpy lowering threshold to make it more sane. 5. Fix x86 target hook so it uses vector and floating point memory ops more effectively. rdar://7774704 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100090 91177308-0d34-0410-b5e6-96231b3b80d8 commit b294915298e2cf27adbac0c99f4eac00c2580c17 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Apr 1 05:58:17 2010 +0000 Nehalem unaligned memory access is fast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100089 91177308-0d34-0410-b5e6-96231b3b80d8 commit f43f8344241a5ab84dc33178e378aad7a05d921b Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 05:23:13 2010 +0000 Switch the representation of the location in instruction from being a TrackingVH<MDNode> to a NewDebugLoc, shrinking sizeof(Instruction) a lot, and providing clients the ability to deal with locations in terms of NewDebugLoc instead of having to deal with Metadata. This is still fully compatible with all clients that *do* use MDNodes for everything of course. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100088 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf3f9286cdda989b1f9fbb8def6bde558632825d Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 05:20:21 2010 +0000 include header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100087 91177308-0d34-0410-b5e6-96231b3b80d8 commit 911757689e6a8ed5a86122f55e2dbdd758349d72 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 05:14:45 2010 +0000 rewrite handling of forward ref'd instruction metadata to used deferred resolution instead of creating a temporary node + rauw. There is no reason to create the temporary mdnode, then do rauw, then destroy it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100086 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52154d28f74b94aa11af9b8d2ea9f40e612b7fcc Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 05:13:10 2010 +0000 change this from using '!dbg' to using '!dbgx'. The MD used here isn't valid for !dbg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7458e28f82a91ab41c0c65bfa2235f6d9715a852 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 05:12:07 2010 +0000 fix a bug in DebugRecVH::deleted/allUsesReplacedWith. If an entry in the Scope+InlinedAt drops to a non-canonical form, we need to reset the idx member of both VH's to 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100084 91177308-0d34-0410-b5e6-96231b3b80d8 commit 747767670f4ea00f23fadb35814e620052ea74a8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 04:53:22 2010 +0000 no really, we don't need to copy strings around in the accessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100083 91177308-0d34-0410-b5e6-96231b3b80d8 commit 554797a731813b11f13b6e59b6283010b27a00ac Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 04:51:13 2010 +0000 eliminate a temporary smallvector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100082 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7baceb95d42001717942a6c9c07f08e4edbc52d Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 03:55:42 2010 +0000 add a method to decode a DILocation into a NewDebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e95d80fca45ed8060665750175ed4e857a9c645 Author: Eric Christopher <echristo@apple.com> Date: Thu Apr 1 03:05:45 2010 +0000 Add aeskeygenassist intrinsic and rename all of the aes intrinsics to aes instead of sse4.2. Add a brief todo for a subtarget flag and rework the aeskeygenassist instruction to more closely match the docs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100078 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ce5d0f0c11ad0fd2e401e6952208a0a7a6bdfee Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Thu Apr 1 01:53:24 2010 +0000 There are no known O'Caml problems at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100076 91177308-0d34-0410-b5e6-96231b3b80d8 commit e47177989b69198c91928d3ad39d27bead24de8c Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 01:02:19 2010 +0000 update cmakefile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9473f9b5380c135541fc222208136588e10ea3b3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Apr 1 00:37:44 2010 +0000 Add a new "NewDebugLoc" class which will eventually replace DebugLoc, and will replace the 'DbgInfo' member in Instruction. The benefit of NewDebugLoc is that it is compact (8 bytes vs 12/24 bytes for the DbgInfo member in Instruction on a 32/64 bit system), it means that we will end up not having to allocate MDNodes to represent the "DILocations" in common cases of -O0 -g, and it is much more efficient to get things out of than the MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 944c78cef782036bc9184dbdf7a7fd2c83945b82 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Apr 1 00:13:43 2010 +0000 vml[as] are slow on 1136jf-s also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100066 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5d36d916c60d7cb4af4e0ac7196904e9de6e278 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Apr 1 00:00:43 2010 +0000 Reapply r100056. It doesn't look like it's the one that's causing a failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 683999f86073affd5203f090310deaa706abcad8 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Mar 31 23:51:55 2010 +0000 Pass -m32/-m64 to assembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100064 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95d03180248990ff4062a6434145cce1253c647b Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 31 23:26:26 2010 +0000 Revert r100056. It was causing a failure on MSVC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100062 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9b879d5fbb63e1be0dccdf29c8791dc60763818 Author: Stuart Hastings <stuart@apple.com> Date: Wed Mar 31 23:08:46 2010 +0000 Reverting 100048; it broke two Frontend debug info tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13bf23609c968386e618a35afc4538b647a2bcf4 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 31 22:54:38 2010 +0000 Rewrite CorrectExtraCFGEdges() to make it more understandable. * Set the "DestA" and "DestB" according to how they're understood by the method. I.e., if one or both of them should point to the "fall through" block, then point to the fall through block. * Improve the loop that removes superfluous edges to be more understandable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f0c5972ec9712b3b16cb4f7242a445c5d0a392f Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 31 21:38:43 2010 +0000 Add a redundant PHI testcase for SSAUpdater to go with svn r100047. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100050 91177308-0d34-0410-b5e6-96231b3b80d8 commit e437f9eccbd0ac11830960fccebeb275cfbe856e Author: Stuart Hastings <stuart@apple.com> Date: Wed Mar 31 21:10:54 2010 +0000 Debug info can now properly represent functions inside classes inside other functions. Partial fix for Radar 7424645. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100048 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18e73f1826f2aeec0bde8157923ab0ceb0969d7b Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 31 20:51:00 2010 +0000 Rewrite part of the SSAUpdater to be more careful about inserting redundant PHIs. The previous algorithm was unable to reliably detect when existing PHIs in a cycle can be reused. I'm still working on reducing a testcase. Radar 7711900. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92a1b313915d4f58ccd403d706cb228be7640986 Author: Dale Johannesen <dalej@apple.com> Date: Wed Mar 31 20:37:15 2010 +0000 Fix a nasty dangling-pointer heisenbug that could generate wrong code pretty much anywhere AFAICT. A case that hits the bug reproducibly is impossible, but the situation was like this: Addr = ... Store -> Addr Addr2 = GEP , 0, 0 Store -> Addr2 Handling the first store, the code changed replaced Addr with a sunkaddr and deleted Addr, but not its table entry. Code in OptimizedBlock replaced Addr2 with a bitcast; if that happened to reuse the memory of Addr, the old table entry was erroneously found when handling the second store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100044 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f4cc4e15a33f1ed46610a2e1928bc68cdbeba14 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Mar 31 20:37:13 2010 +0000 testcase for r99914, provided by baldrick! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c627d878f2307c0d644522e246e398d6eaac5ed Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 20:32:51 2010 +0000 reduce indentation, minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100042 91177308-0d34-0410-b5e6-96231b3b80d8 commit f74644ba081af8a38715efcde10dd5985e5b4b18 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Mar 31 20:15:45 2010 +0000 Reduce string trashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100038 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc8252523414379c7aebd4a5b0c39a8d33b068bb Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Mar 31 20:05:12 2010 +0000 Use spaces, not tabs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12676af732fc453849292f97ad23b20b80df4a16 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Mar 31 19:34:01 2010 +0000 DwarfDebug: Allocate DIEValues with a BumpPtrAllocator. Most of them are POD-like anyway, so we don't even care about calling their d'tors (DIEBlock being the exception). ~6% less mallocs and ~1% compile time improvement on clang -O0 -g oggenc.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100035 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48aa743572613eeaa093db76aeefdb904cbd083b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 31 19:14:05 2010 +0000 Add a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88607cd357c6412294c2eb454395afe95bef7072 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 31 18:48:58 2010 +0000 Comment the changes for r98218 and friends inside the source code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100033 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8fd7491c681e5de858dfd2cc2ccd7a1b87e9089 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 31 18:48:43 2010 +0000 lit: Make sure to close any files we open as part of redirection. PR6753. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100032 91177308-0d34-0410-b5e6-96231b3b80d8 commit c24b193c529d23c8b0aa4b9fd2193e4d782461a9 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 31 18:47:10 2010 +0000 Comment the changes for r98218 and friends inside the source code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100031 91177308-0d34-0410-b5e6-96231b3b80d8 commit c344ce3047beb722d36d2250d190fc5ff7f77a3a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Mar 31 17:13:16 2010 +0000 Fix PR6750. Don't try to merge a DomainValue with itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100016 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71d4cbfac79230fd517c04538a3f19b00a842a13 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Mar 31 16:06:22 2010 +0000 s/getNameStr/getName/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 769cbbd6f713d838b94e108e2b3f2be5bad09833 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Mar 31 16:04:26 2010 +0000 Bump SmallString size a bit to avoid malloc trashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9045d0061b4eb6f8294018b14882758313015688 Author: Edwin Török <edwintorok@gmail.com> Date: Wed Mar 31 12:07:16 2010 +0000 AddSignalHandler was not releasing the critical section on win32. Patch from Gianluigi Tiesi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100003 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5f315f9838bc438aa3809d57181e9b58e1c114b Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Mar 31 07:50:17 2010 +0000 Small fixes to this documentation. Remove mention of uint/int type, fix typo in 'number'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100001 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9018d3db3c63bba355e441eb2d62addcf4c52165 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 06:09:04 2010 +0000 reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99999 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb06dae02701b5c27dc2011548927712e4310f3e Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 06:06:37 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99998 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca0260a763f3a00a6cca924772e6f268a8e631c6 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 05:53:47 2010 +0000 microoptimize this hot method, also making it more consistent with other similar ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05db3c4dce34795ddd8380318e009c01c61c1b41 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 05:42:48 2010 +0000 MI != 0 is checked in the assert right above this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d184fbb7d53c6ee104722d7dc0f11f5833e519d Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 05:39:57 2010 +0000 use the isDebugValue() predicate and pop_back_val() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52c42af0977a25efdbcca2004a12fdb5501f6812 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 05:36:29 2010 +0000 assert is a function-like macro, not a control flow operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99992 91177308-0d34-0410-b5e6-96231b3b80d8 commit 264373dba95db5bd16c5f445b49a55437794ce56 Author: Duncan Sands <baldrick@free.fr> Date: Wed Mar 31 05:27:33 2010 +0000 Correct comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99991 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62f06686292f75233931ff9795c7dd18b4addf00 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 05:15:22 2010 +0000 reduce indentation, fit in 80 cols and various other cosmetic cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99989 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c9c34b23f59015a20bf6a5efd79e8bcd85f0186 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 04:26:23 2010 +0000 fix file header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99987 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4a290049eb2c12c7f8490f70d1e88aee5c5cca2 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 04:24:50 2010 +0000 use the optimized debug info apis in sdisel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99986 91177308-0d34-0410-b5e6-96231b3b80d8 commit eebdeab1b977b8682412605bc7b1aeecda8584b5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 04:09:11 2010 +0000 make irbuilder use the new optimized debug info accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99984 91177308-0d34-0410-b5e6-96231b3b80d8 commit a168485b4b68cb5bb20eac6eeb5ac9e5d5ce0d65 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 31 03:34:40 2010 +0000 add new apis for getting/setting !dbg metadata on instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 054da5ac3dca3930900b3e1f03731a3a9f8b7f0e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Mar 31 00:40:13 2010 +0000 Replace V_SET0 with variants for each SSE execution domain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99975 91177308-0d34-0410-b5e6-96231b3b80d8 commit b72f69fcd45806ec4eef0c55a1a837fd048072ee Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Mar 31 00:40:08 2010 +0000 Fix typo. Thank you, valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99974 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67312ac74030ef2f75bcaa3115ebb21cd4dc8d83 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 30 23:12:48 2010 +0000 Not all platforms start symbols with _ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99959 91177308-0d34-0410-b5e6-96231b3b80d8 commit da4b08bad20027f4750944858124c8954ca96598 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 23:03:27 2010 +0000 Fix a major source of compile-time slowness at -O0 -g by optimizing the storage of !dbg metadata kinds in the instruction themselves. The on-the-side hash table works great for metadata that not-all instructions get, or for metadata that only exists when optimizing. But when compile-time is everything, it isn't great. I'm not super thrilled with the fact that this plops a TrackingVH in Instruction, because it grows it by 3 words. I'm investigating alternatives, but this should be a step in the right direction in any case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99957 91177308-0d34-0410-b5e6-96231b3b80d8 commit 895bcd24ecccb2c2fe8e0d381ed9249c1b57dd74 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 30 22:47:00 2010 +0000 Enable -sse-domain-fix by default. Now with tests! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99954 91177308-0d34-0410-b5e6-96231b3b80d8 commit c221b395652058797aa604f508baf68f14224a30 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 30 22:46:55 2010 +0000 V_SETALLONES is an integer instruction. Since it is just a pxor in disguise, we should probably expand it to a full polymorphic triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99953 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc6ab6a8178acac359bdbfe9df9067b16ff4bfc8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 30 22:46:53 2010 +0000 Renumber SSE execution domains for better code size. SSEDomainFix will collapse to the domain with the lower number when it has a choice. The SSEPackedSingle domain often has smaller instructions, so prefer that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ef0fa2d4fa2ca3f99b1e62f4ab6413447d8d4df Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 30 22:27:04 2010 +0000 Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99948 91177308-0d34-0410-b5e6-96231b3b80d8 commit 986d5dfc4f564938a7a7ad8983c4126fac7150b2 Author: Devang Patel <dpatel@apple.com> Date: Tue Mar 30 22:09:52 2010 +0000 Ignore invalid metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99938 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4af0a50ae495afa97810ce7141afb082fd3dd907 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 30 21:36:32 2010 +0000 Revert "Enable -sse-domain-fix by default. What could possibly go wrong?" Not running 'make check-all' before committing is a bad idea. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45d65191bf67a67f9c3c053c86cd97bae5ce8f72 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 30 21:09:31 2010 +0000 Enable -sse-domain-fix by default. What could possibly go wrong? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99931 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f3b2d6f9ea3924819e2feae47e600b4dc469d14 Author: Mon P Wang <wangmp@apple.com> Date: Tue Mar 30 20:55:56 2010 +0000 Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99928 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12a2e518121494c25c3a4a3b0cb3dc33a7adc832 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 20:48:48 2010 +0000 move some method definitions to files that make sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99927 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d5587fb80fd7c873bb61b4a604f13bec5ea8506 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Mar 30 20:16:45 2010 +0000 Introduce SpecificBumpPtrAllocator, a wrapper for BumpPtrAllocator which allows only a single type of object to be allocated. Use it to make VNInfo destruction typesafe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57ab05dfad9762106ca7a271e801ae88a84867ab Author: Edwin Török <edwintorok@gmail.com> Date: Tue Mar 30 20:15:13 2010 +0000 Typo noticed by Duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99918 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc3993655c62586082ef26d35c170d2929febd46 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 30 20:04:57 2010 +0000 Fix a grammaro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4940d87724b2eca9e4bcaf4036fbd973a743ecd6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 30 20:04:01 2010 +0000 Add cross-block inference to SSEDomainFix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99916 91177308-0d34-0410-b5e6-96231b3b80d8 commit c07f14d23f33519ff0bf5711d22f6683d24535b7 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 30 19:56:41 2010 +0000 Fix llvm-ld to clean up its output files in case of an error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99915 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9de90e775580d17f9d6484dd33122d686528433c Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 30 19:20:53 2010 +0000 fix two cases where the arguments were extracted from the wrong range out of the InvokeInst spotted by baldrick -- thanks\! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99914 91177308-0d34-0410-b5e6-96231b3b80d8 commit bcaff6a6f7ec2cf8400880f62353aebba9b260a9 Author: Eric Christopher <echristo@apple.com> Date: Tue Mar 30 18:49:01 2010 +0000 Remove the pmulld intrinsic and autoupdate it as a vector multiply. Rewrite the pmulld patterns, and make sure that they fold in loads of arguments into the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00b9749bce84104e1b7d1506667786d167965aca Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 18:10:53 2010 +0000 Rip out the 'is temporary' nonsense from the MCContext interface to create symbols. It is extremely error prone and a source of a lot of the remaining integrated assembler bugs on x86-64. This fixes rdar://7807601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99902 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8207f3688f2c5cf88d11783f1c46b03e3f24e20e Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 30 18:08:53 2010 +0000 Funky indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99901 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a9e90a03dbb68bec2abdd5877ac0a1c1e1e976b Author: Devang Patel <dpatel@apple.com> Date: Tue Mar 30 18:07:00 2010 +0000 There is no need to fall through after processing DBG_VALUE machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99899 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa51c905e0eacfc148f2dfede93c041389b2861e Author: Douglas Gregor <doug.gregor@gmail.com> Date: Tue Mar 30 18:05:52 2010 +0000 Switch isa_impl from a function template to a class template with a static inline member function doit(). This enables the use of partial specialization to override the last stage of the "isa" check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99898 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9aa795784880cfe2260800a20cbb2cb1572a35db Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 30 17:57:42 2010 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99895 91177308-0d34-0410-b5e6-96231b3b80d8 commit be6d7fd1e5d594f16de0be1910ace93333911040 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Tue Mar 30 17:32:08 2010 +0000 Introduce namespace-scope functions to enable LLVM statistics without passing the command-line parameter "-stats" and to print the resulting statistics without calling llvm_shutdown(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99893 91177308-0d34-0410-b5e6-96231b3b80d8 commit 731162f8722a5adaef871751529a79bf51244b49 Author: Ted Kremenek <kremenek@apple.com> Date: Tue Mar 30 16:20:03 2010 +0000 Change PointerUnionX::getFromOpaqueValue() to be declared 'static inline' instead of 'static'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99892 91177308-0d34-0410-b5e6-96231b3b80d8 commit abd64aee14af7082079bbaf47c8401736af0253b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Mar 30 14:34:13 2010 +0000 XFAIL some PIC16 tests when running under valgrind-leaks. I don't expect these to be fixed any time soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99888 91177308-0d34-0410-b5e6-96231b3b80d8 commit b36d46d4a7e0711be279702fb574ec6d390feae8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Mar 30 13:28:42 2010 +0000 PIC16: Plug a leak in PIC16Section by allocating name & address strings in the MCContext. There is still one leak left in PIC16Section (the Items vector). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99887 91177308-0d34-0410-b5e6-96231b3b80d8 commit 319195a42043d0bc2a9ae03cf7312299407fb6a7 Author: Edwin Török <edwintorok@gmail.com> Date: Tue Mar 30 12:52:03 2010 +0000 Don't overwrite previous value, if it succeeded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99886 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6e55419221c87ce21b67143651a18a042aa7bf8 Author: Edwin Török <edwintorok@gmail.com> Date: Tue Mar 30 12:31:58 2010 +0000 Honour addGlobalMapping() in the interpreter, if it was used to add mappings for external Functions (the JIT does honour this). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99885 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77c83b5d0cfdfc43e9d0274a903291f4a494864a Author: Edwin Török <edwintorok@gmail.com> Date: Tue Mar 30 11:17:48 2010 +0000 Reapply r99881 with some fixes: only call destructor in releaseMemory! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99883 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca1db5fda2d1db6d4c35c5c89e5e0a87a00441db Author: Edwin Török <edwintorok@gmail.com> Date: Tue Mar 30 10:25:08 2010 +0000 Revert 99881, it brooke smooshlab's llvm-gcc-i386-darwin9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99882 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2e6b79a83de1ace34afc088c18cd622df18cbd8 Author: Edwin Török <edwintorok@gmail.com> Date: Tue Mar 30 10:08:26 2010 +0000 Introduce another Reset() method in BumpPtrAllocator that calls a destructor on all objects it has allocated, if they are all of the same size and alignment. Use this to destruct all VNInfos allocated in LiveIntervalAnalysis (PR6653). valnos is not reliable for this purpose, as seen in r99400 (which still leaked, and sometimes caused double frees). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99881 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69bb575b5774984867388614b4315fca359e8458 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 30 05:49:07 2010 +0000 Avoid being influenced by the presence of dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99879 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d5f9854419bb4e59e42b3e31eb7ce09661e74ea Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 05:34:02 2010 +0000 stringref'ize Timer apis git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99877 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6a52518dec73428ccf3a882c2d62b0f1f783569 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 05:27:58 2010 +0000 finally, maintain a global list of timer groups, allowing us to implement TimerGroup::printAll, which prints and resets all active timers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e05efdc4bc069372ff0804d546c6d57cdd27ab6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 05:20:02 2010 +0000 add a new TimerGroup::print method, and refactor away the bogus TimerGroup copy ctor and assignment operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99875 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdee68f874564b59d8d262a358054d29023b76be Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 05:01:08 2010 +0000 rename GetLibSupportInfoOutputFile -> CreateInfoOutputFile and have it always return a new stream to simplify clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bb210b7f1587e33186307e8bc5ee8bf62147bdb Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 04:58:26 2010 +0000 if a timergroup is destroyed before its timers, print times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99873 91177308-0d34-0410-b5e6-96231b3b80d8 commit adde7ef9f4f950c1ed225f8d4441981187c0e11c Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 04:40:01 2010 +0000 change TimerGroup to keep a linked list of active timers instead of just a count of them, and refactor the guts of report printing out of removeTimer into its own method. Refactor addTimerToPrint away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99872 91177308-0d34-0410-b5e6-96231b3b80d8 commit 417aa01aaacc68adcd6d18857d02cc3fbc6cd496 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 04:03:22 2010 +0000 reapply my timer rewrite with a change for PassManager to store timers by pointer instead of by-value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99871 91177308-0d34-0410-b5e6-96231b3b80d8 commit b37a403f1dd119310f550812362548b981e7657e Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 03:57:00 2010 +0000 revert r99862 which is causing FNT failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99870 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6ec789df4c7672534464cc623d89a059b60b9b0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 30 02:38:19 2010 +0000 fairly major rewrite of various timing related stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99862 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6d4ee1fee372b5d621cab890c0f7da8b8a05032 Author: Eric Christopher <echristo@apple.com> Date: Tue Mar 30 01:04:59 2010 +0000 Add FIXME for operand promotion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46bdbddb0846cc857a66e2ad20c8f1f1feeadcfa Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 30 00:09:32 2010 +0000 Be gentle to MSVC. C++ is hard, after all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99855 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec952a9867d92de2364c5cb2e56c4d95b9958260 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 29 23:56:40 2010 +0000 MC/Mach-O/x86_64: Support @GOTPCREL on symbols, even for non-PCrel relocations! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99853 91177308-0d34-0410-b5e6-96231b3b80d8 commit b249eb72130db3906b12738b09cd8d3d938aec49 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Mar 29 23:37:07 2010 +0000 Re-add back in the slow way of determining of a clean-up should become a catch-all. The "dominates" way won't catch all of the selectors which must be changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e565aa14666e639dd09b1ea07ea10523cd87235 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Mar 29 23:24:21 2010 +0000 Basic implementation of SSEDomainFix pass. Cross-block inference is primitive and wrong, but the pass is working otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99848 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6eb19bf908cadbc5ff0f125720ffe8d3c323005 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Mar 29 23:02:46 2010 +0000 A more general (and simpler!) implementation of r99671. It performs a similar transform. I.e., if a clean-up eh.selector call dominates the invoke of an _Unwind_Resume_or_Rethrow, then we convert the eh.selector into a catch-all. This patch, however, uses the DominatorTree information, and doesn't go through the whole rigmarole of starting at the eh.exception call, finding the corresponding URoR and eh.selector calls, and trying to trace through any number of instruction types to get to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0337831c83a07be580439077fb8fa137ef39bedc Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 29 22:59:58 2010 +0000 Encode start location of debug value, communicated through DBG_VALUE machine instruction, in a variable's DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 624a9db0b398413e19ad4d871b70e0c6ab1f24cc Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 21:34:06 2010 +0000 move a function into a more logical place in the file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99842 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9954cade59eaa0bb6a6a00c019ea5ec0fc5808f Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 21:28:41 2010 +0000 remove support for per-time peak memory tracking, this isn't used by anyone and is better exposed as a non-per-timer thing. Also, stop including System/Mutex.h in Timer.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b14f816ae36924ddc4badd616612fc90820b66f Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 29 21:27:30 2010 +0000 Fix PR4975. Avoid referencing empty vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99840 91177308-0d34-0410-b5e6-96231b3b80d8 commit de63281a3122eb7cfd76497ab67abda7b79fd549 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 21:24:52 2010 +0000 various timer fixes: move operator= out of line, eliminate the per-timer lock (timers should be externally locked if needed), the info-output-stream can never be dbgs(), so drop the check. Make some stuff private. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99839 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1adaeecca94ce449b78439a4c5fb03f3a074ad58 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Mar 29 21:13:41 2010 +0000 Make isInt?? and isUint?? template specializations of the generic versions. This makes calls a little bit more consistent and allows easy removal of the specializations in the future. Convert all callers to the templated functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99838 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13b82415136683b9f87c194dd26a0f6b7ead9f9f Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 29 20:48:30 2010 +0000 Pool allocate SDDbgValue nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99836 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8adb4fbf10aa731af372376ef515ce72845d17d3 Author: Eric Christopher <echristo@apple.com> Date: Mon Mar 29 20:41:51 2010 +0000 We'll never match these as instructions, just as intrinsics so remove the SDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75e4d502e62d84749093de2cddd56e9d0d5e2771 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 20:40:19 2010 +0000 s/.../. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99834 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1c0da9d09e7fd5d9db2c240aba0d4afe079374e Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 20:39:38 2010 +0000 use RAII for ExceptionTimer too git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99833 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c962f27f797a1479ada95831e2fc13052014659 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 20:38:20 2010 +0000 fix a variety of issues were we'd start DebugTimer but not stop it by using RAII. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99832 91177308-0d34-0410-b5e6-96231b3b80d8 commit cab603243947cd99ce58896993054f9b8fa19380 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 20:35:01 2010 +0000 move code around and improve indentation, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99831 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4f6803e4dcae4d95ad060176367a2e8a27bd7f7 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Mar 29 19:07:58 2010 +0000 Remove a bunch of integer width predicate functions in favor of MathExtras. Most of these were unused, some of them were wrong and unused (isS16Constant<short>, isS10Constant<short>). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99827 91177308-0d34-0410-b5e6-96231b3b80d8 commit c42860834f8d55e291b2ca4c76d2d3790a47bde8 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 18:42:42 2010 +0000 some other notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7482dd0fd902de842ea1f91e5504356c5f7b4605 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 18:39:28 2010 +0000 apparently llvm 2.7 now has great armv4 support, from John Tytgat git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99825 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13ce5e49a433c015c3d30b9569bb846aabccaced Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 18:34:13 2010 +0000 update the vmkit blurb git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e4d7e51f367a9d21e33e5faf188aa7d15a7536b Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 17:50:39 2010 +0000 add tce git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99820 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f08ea59b38d44b5dc2df22e204d6d90579d222b Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 17:38:47 2010 +0000 From Kalle Raiskila: "the bigstack patch for SPU, with testcase. It is essentially the patch committed as 97091, and reverted as 97099, but with the following additions: -in vararg handling, registers are marked to be live, to not confuse the register scavenger -function prologue and epilogue are not emitted, if the stack size is 16. 16 means it is empty - there is only the register scavenger emergency spill slot, which is not used as there is no stack." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99819 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2362eaa5f71a091c034e2e1eef52492fc04b9d67 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 17:36:02 2010 +0000 add support for zero initialized unions, patch by Tim Northover! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99818 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8959cbf0022914c3a7c154ea8575ebdfe4a7009 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 29 17:20:31 2010 +0000 Refactor code to push DILocation prcessing into DwarfDebug.cpp from AsmPrinter.cpp. This is same as r99772 (which was reverted) with just one meaningful difference where two source lines exchanged their positions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99816 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d7e9d2f536f0455c860b0632b4a837b86962dea Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 17:02:02 2010 +0000 add a note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99815 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b652a2062baa59803db3cd720ea6645f5b48385 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 02:02:45 2010 +0000 Switch pattern sorting predicate from stable sort -> sort, it doesn't need to be stable because the patterns are fully ordered. Add a first level sort predicate that orders patterns in this order: 1) scalar integer operations 2) scalar floating point 3) vector int 4) vector float. This is a trivial sort on their top level pattern type so it is nice and transitive. The benefit of doing this is that simple integer operations are much more common than insane vector things and isel was trying to match the big complex vector patterns before the simple ones because the complexity of the vector operations was much higher. Since they can't both match, it is best (for compile time) to try the simple integer ones first. This cuts down the # failed match attempts on real code by quite a bit, for example, this reduces backtracks on crafty (as a random example) from 228285 -> 188369. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99797 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94ad4fca2856174f1920828488854c7d4fea5aaf Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 01:58:15 2010 +0000 revert 99795, as mentioned, it is disabled anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2437091c0b589dbb9c817965f9b2a1c8dd8020a7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 01:56:19 2010 +0000 Check in a (disabled) failed attempt to improve the ordering of patterns within the generated matcher. This works great except that the sort fails because the relation defined isn't transitive. I have a much simpler solution coming next, but want to archive the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 260c25c4980c054c53f543f68f7b58197d17ebe5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 29 01:40:38 2010 +0000 print the complexity of the pattern being matched in the comment in the generated table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99794 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a2669e477b2fe256f427d26817cdc248f880d72 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Mar 29 01:14:22 2010 +0000 Add NVTBLFrm to represent A8.6.406 VTBL, VTBX Vector Table Lookup Instructions. These instructions use byte index in a control vector (M:Vm) to lookup byte values in a table and generate a new vector (D:Vd). The table is specified via a list of vectors, which can be: {Dn} {Dn D<n+1>} {Dn D<n+1> D<n+2>} {Dn D<n+1> D<n+2> D<n+3>} git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99789 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44ce1b9de72e7f7ae44456f9a4b5094f6caab306 Author: Devang Patel <dpatel@apple.com> Date: Sun Mar 28 21:23:37 2010 +0000 Revert 99772. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99778 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc2a34262adef1a9ca505db869cc3a16b072e392 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 19:46:56 2010 +0000 add a statistic for the # times isel has to backtrack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00e8481017e5ec390545a82fc4725b19b37928ba Author: Devang Patel <dpatel@apple.com> Date: Sun Mar 28 18:57:09 2010 +0000 Refactoring. Push DILocation processing in to DwarfDebug from AsmPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99772 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6cf50770a201ed643826bf29a52c45c63bad11e4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 18:52:28 2010 +0000 zap an extra line that Eli noticed! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99770 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd5311fa618c744937a1a6adce25964ad414fdc3 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 28 15:07:02 2010 +0000 Properly quote the quotes :) during cmdline construction on Windows. Otherwise, e.g. in the invocation like clang -DFOO=\"bar\" FOO macro got the bar value, not "bar". Patch by Alexander Esilevich! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99763 91177308-0d34-0410-b5e6-96231b3b80d8 commit c57faa6760151c274cd84fbfef53a661756b6bd5 Author: Edwin Török <edwintorok@gmail.com> Date: Sun Mar 28 11:07:36 2010 +0000 Fix use-of-uninitialized value when RWX memory can't be allocated (PR6701). SELinux doesn't allow 'execmem', returning MAP_FAILED and 'Permission denied' for mmap or RWX memory. In this case AllocateRWX was returning a MemoryBlock with uninitialized fields, which sometimes caused crashes. This patch initializes MemoryBlock fields to 0, so that the RWX-failure check works. It doesn't fix the SELinux 'execmem' issues though (the JIT will not work when SELinux is in enforcing mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99762 91177308-0d34-0410-b5e6-96231b3b80d8 commit 822a2d18f0c2ee1e1c95cf25bb59767933895e0f Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:48:47 2010 +0000 improve type checking of SDNode operand count. This rejects all cases where an incorrect number of operands is provided to an sdnode instead of just a few cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99761 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50e337694ba24e9a4a8434bd335c1b08ad6df87f Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:47:39 2010 +0000 fix a type contradition: XCoreISD::RETSP has one argument, not zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99760 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca85c3f03738a451e25eb871183bbac2ae6d5ba3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:43:23 2010 +0000 finally remove the immAllOnesV_bc/immAllZerosV_bc patterns and those derived from them. These are obnoxious because they were written as: PatLeaf<(bitconvert). Not having an argument was foiling adding better type checking for operand count matching up with what was required (in this case, bitconvert always requires an operand!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99759 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f4bf7131cfa993d43b1509acd519bcd8a4a7881 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:40:48 2010 +0000 remove a pattern with no testcase that doesn't appear to be matchable: it seems like it would always constant fold. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99758 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb9cdea8b8d758ac910e639f5783ef5663185e3e Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:39:10 2010 +0000 fix integer negates to use the proper type for the zero vectors, this also depends on the new "bitconvert dropping" behavior just added to tblgen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6449a475f3fb753286cda99a34c0b737665eb023 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:38:32 2010 +0000 teach tblgen to allow patterns like (add (i32 (bitconvert (i32 GPR))), 4), transforming it into (add (i32 GPR), 4). This allows us to write type generic multi patterns and have tblgen automatically drop the bitconvert in the case when the types align. This allows us to fold an extra load in the changed testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99756 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc58dafff42066c73d6f805c98bc78823e319c95 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:36:45 2010 +0000 fix a typo, bitconvert from node to itself isn't valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99755 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d8a93cbc868a926dfe10d055aecb104b57b194f Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:08:07 2010 +0000 fix vnot matching to explicitly specify the type of the input to be v8i8 or v16i8, which buildvectors get canonicalized to. This allows the patterns that were previously using a bare 'vnot' to match, before they couldn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99754 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c658111c7a6ca842d11bf943370aaba2fea15d9 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 08:00:23 2010 +0000 fix up vnot matching, eliminating a dead pattern, correcting a couple of patterns that would never match because of bitcast, and eliminating use of vnot_conv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99753 91177308-0d34-0410-b5e6-96231b3b80d8 commit 972bb011789e44e0e9a4ce273c4e9ec3424a2b0c Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 07:58:37 2010 +0000 add some nounwinds git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99752 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc013132b2828558b95f5ceb0875c01e331ba66a Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 07:58:09 2010 +0000 this takes an insane amount of time to run, disable it for now (PR6727) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10dbbb09b54c4d667240a28b631555dab0bee740 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 07:48:17 2010 +0000 stop using vnot_conv git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99750 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0390fdb1427e1437610bc79e69168d5a462d4437 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 07:38:39 2010 +0000 revert r99743, this is saying that the repmovs instructinos have an *input* of other type, which is the VT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99749 91177308-0d34-0410-b5e6-96231b3b80d8 commit a790384480d312ee027ab7e3a56977adff074c9e Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 07:38:00 2010 +0000 remove a bunch of dead patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99748 91177308-0d34-0410-b5e6-96231b3b80d8 commit abd0826b0551aebb117478d6f17adb29ad30eb1a Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 06:57:56 2010 +0000 validate that input sdnodes don't exist in an output pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f500c064fb68e066dc31c50b7c1592479dd25d1 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 06:50:34 2010 +0000 eliminate a bunch of code duplication in ParseTreePattern by rotating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88aa54a53f8952acca7c3e6febc95109214b57be Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 06:16:41 2010 +0000 add some node definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99745 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e107ee10fc0b1cab963efea8cda9e7e0450288d Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 06:04:39 2010 +0000 SDTCisVT<0, isVoid> is not valid, reject it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99744 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2d15f5f698a93107576b4a864962a9f0962a96a Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 05:57:36 2010 +0000 claiming to return other is pointless. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99743 91177308-0d34-0410-b5e6-96231b3b80d8 commit f62ce85211f05e6e648c2a54c5d8dee3854cd52d Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 05:55:17 2010 +0000 comply with the wishes of a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bf36878796ac2550972c1c871761841853d3010 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 05:54:03 2010 +0000 now that (parallel) is gone and a variety of bugs in targets are cleaned up, we can remove an old fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99741 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4439a2690676883b7e748951b24ba3366bf72bf Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 05:50:16 2010 +0000 add an optimized form of OPC_EmitMergeInputChains for the 1, 0 and 1, 1 cases which are by-far the most frequent. This shrinks the X86 isel table from 77014 -> 74657 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99740 91177308-0d34-0410-b5e6-96231b3b80d8 commit b43907420f1bbbf9d4329cff197c45fb558df7ac Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 05:28:31 2010 +0000 don't add nodes to the now-dead nodes list multiple times, this can cause a crash on crazy situations in msp430 when morph-node-to is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ae199325b88c1f4fd74473288eb1a2a0590ae3d Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 05:21:52 2010 +0000 Improve systemz to model cmp and ucmp nodes as returning their flags correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8de0e741226d124975c5ea057f54db4146fa8bb8 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 05:12:57 2010 +0000 the FPCmp node returns an i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05ee1618d052061cb7eb01655b9b40872e689b65 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 05:07:17 2010 +0000 fix some modelling problems exposed by a patch I'm working on. bsr/bsf/ptest nodes all have an EFLAGS result when made by isel lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99736 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbd06cdb0e15333c9ca6b22f4f1a262f25c54ddf Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 28 04:54:33 2010 +0000 don't add flag nodes with chain results to the NowDeadNodes list multiple times when MorphNodeTo can't be applied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99735 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4516f0bf7c5ac40fee72918f699ec13926a1c26 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 28 01:03:47 2010 +0000 Oops, r98447 dropped the reference to ForwardType in the wrong place in Type::destroy(), so it got skipped for FunctionTypes, StructTypes, and UnionTypes. This fixes the resulting leaks in test/Feature/opaquetypes.ll and test/Integer/opaquetypes_bt.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99732 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8760a03feae6eca89f56418afbc85ffc4ec4528f Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 20:45:15 2010 +0000 fix a long standing fixme, which required fixing a bunch of other issues to get here. We now trim the result type list of the CompleteMatch or MorphNodeTo operation to be the same size as the thing we're matching. this means that if you match (add GPR, GPR) with an instruction that produces a normal result and a flag that we now trim the result in tblgen instead of having to do it dynamically. This exposed a bunch of inconsistencies in result counting that happened to be getting lucky since the days of the old isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99728 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4b7356564d21bb96ef563adcfc71200a25e078c Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 20:32:26 2010 +0000 fix CodeGenTarget::getRegisterVTs to not return the same vt multiple times for a register. For example, ECX is in 5 different i32 reg classes, just return 1 i32 instead of 5. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99727 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbfe3c484c6c1a706fc8c77d7f9275099d1d5c82 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 20:09:24 2010 +0000 hoist some funky logic into CodeGenInstruction from two places in CodeGenDAGPatterns.cpp, and use it in DAGISelMatcherGen.cpp instead of using an incorrect predicate that happened to get lucky on our current targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99726 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07a3966f8deb7959e38c4d2a4c8193223e38b791 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 19:15:02 2010 +0000 continue pushing tblgen's support for nodes with multiple results forward. We can now handle an instruction that produces one implicit def and one result instead of one or the other when not at the root of the pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99725 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa53c01e1930df83557f38b9449382a53e8cdb0f Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 18:54:50 2010 +0000 improve -debug-only=isel comments for cases when we don't enter a scope due to obviously false predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 550d4be22184e8439b8868f7874ae032109106bb Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 18:49:33 2010 +0000 fix a bug in my recent patch that increased opcode size to 2 bytes: the index comments nested under OPC_SwitchOpcode were off by one. This fixes the comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99722 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7d1c02af1c107fbe53ade93db18d0256a9c879b Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 18:01:10 2010 +0000 revert r99719 which is breaking the botz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99721 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a5b80d5a38bccb039d0d309db21bf12b54623b5 Author: Dan Gohman <gohman@apple.com> Date: Sat Mar 27 16:49:51 2010 +0000 Make llvm-ld remove its output files in the event of an error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99719 91177308-0d34-0410-b5e6-96231b3b80d8 commit bda9d33cb0fd23b600a25984998d7582936d8abd Author: Dan Gohman <gohman@apple.com> Date: Sat Mar 27 16:39:56 2010 +0000 Give FileRemover a default constructor to allow FileRemovers to be created and initialized separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99717 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b5d603327109cfbfdb9140f7688591b82580450 Author: Dan Gohman <gohman@apple.com> Date: Sat Mar 27 16:36:08 2010 +0000 No need to check the same condition twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99716 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44b3384c00953d7a6d1004f085736c5ca8b2c16a Author: Dan Gohman <gohman@apple.com> Date: Sat Mar 27 16:34:32 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99715 91177308-0d34-0410-b5e6-96231b3b80d8 commit 708ab3522478e743bbc1184d37b2cae9f0bba1f1 Author: Dan Gohman <gohman@apple.com> Date: Sat Mar 27 16:33:36 2010 +0000 Remove an unnecessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99714 91177308-0d34-0410-b5e6-96231b3b80d8 commit 817e5ff4bf960241dbf1856af9bfab81e7c91c3b Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 27 09:09:17 2010 +0000 Remove another memory leak from ABCD by using Edges by value instead of pointer. There was also a SmallPtrSet whose settiness wasn't being used, so I changed it to a SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99713 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9373d2025b293474cae6a678c9725742916378f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 27 08:15:46 2010 +0000 In ABCD, change the non-null Bound*s to Bound&s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99711 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0af4de326ac636474c3f160a61dcd2fe36713624 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 27 08:09:24 2010 +0000 Fix a memory leak in ABCD by giving ownership of Bound objects to the MemoizedResultChart. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99710 91177308-0d34-0410-b5e6-96231b3b80d8 commit 586644f1c602ef3aff6deaa899a08be67e1b3f30 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 27 04:59:47 2010 +0000 XFAIL a new tblgen test for memory leak checking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bcfd8adb73d94070f180911244a22cd5b6001b4 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 27 04:53:56 2010 +0000 Avoid leaking the memory allocated for GlobalVariables in the interpreter, by freeing that memory when the GV is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99706 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa7c29c6bc0dd906e9a3789934f13041d15a8055 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 27 04:01:23 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99705 91177308-0d34-0410-b5e6-96231b3b80d8 commit e704c182117248eea752329440ca3bec67ecdb08 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 27 03:56:52 2010 +0000 Add a format argument to the N3V and N3VX classes, removing the N3Vf class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99704 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8c1f395ad2816dd75bfaa304fa00aa74d25e7e2 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 02:53:27 2010 +0000 remove parallel support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99703 91177308-0d34-0410-b5e6-96231b3b80d8 commit c47907a1fe7eac6b7bb548112e595b99de9a1707 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 02:47:14 2010 +0000 eliminate the last of the parallel's! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99700 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15868b51251a960b2e18146f8c685c2819a465f6 Author: Eric Christopher <echristo@apple.com> Date: Sat Mar 27 01:54:00 2010 +0000 When we promote a load of an argument make sure to take the alignment of the previous load - it's usually important. For example, we don't want to blindly turn an unaligned load into an aligned one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99699 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e9f50099a66748618d895aa392c9f429076a82b Author: Bill Wendling <isanbard@gmail.com> Date: Sat Mar 27 01:24:30 2010 +0000 Forgot the part where we handle the ".llvm.eh.catch.all.value". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99697 91177308-0d34-0410-b5e6-96231b3b80d8 commit 996ca468d0281f5a51a58733844b4d608528cd26 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Mar 27 01:22:38 2010 +0000 Return if we changed anything or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99695 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9dc6fdb8e6816d8b4281eb5407a72dd94cd1ec6 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Mar 27 01:19:12 2010 +0000 If a selector has a call to ".llvm.eh.catch.all.value" that we haven't converted, then use the initializer, since using the name itself won't work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c796da424a09e6cfe338ae1212c7557ce888e81 Author: Johnny Chen <johnny.chen@apple.com> Date: Sat Mar 27 01:03:13 2010 +0000 Add NVMulSLFrm to represent "3-register multiply with scalar" operations and set it as the format for the appropriate N3V*SL*<> classes. These instructions require special handling of the M:Vm field which encodes the restricted Dm and the lane index within Dm. Examples are A8.6.325 VMLA, VMLAL, VMLS, VMLSL (by scalar): vmlal.s32 q3, d2, d10[0] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99690 91177308-0d34-0410-b5e6-96231b3b80d8 commit 070d238e098a2926ab7ba6bcee2cdf9838df8b2f Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 00:45:04 2010 +0000 eliminate almost all the rest of the x86-32 parallels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ae83f1ff622375cee1115a61c2b33c2fcf05e9e Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 27 00:29:41 2010 +0000 bump FIRST_TARGET_MEMORY_OPCODE back up, there is no reason to make it a tight bound anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99685 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb284ed9a1f0234f6f94d65dba98f7cd8495b14e Author: Jim Grosbach <grosbach@apple.com> Date: Sat Mar 27 00:09:12 2010 +0000 Thumb2 storeFrom/LoadToStackSlot() need to handle tGPR regs directly, not pass through to the generic version. The generic functions use STR/LDR, but T2 needs the t2STR/t2LDR instead so we get the addressing mode correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99678 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba4acb84847e4326fa0c5f964fa9d4ebaec2be39 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 26 23:54:15 2010 +0000 improve portability to minix, patch by Kees van Reeuwijk for PR6704 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99677 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1a6ce33dbcad31f8f83509e30416604a613b699 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Mar 26 23:49:07 2010 +0000 Remove the duplicate multiclass N3VSh_QHSD and use N3VInt_QHSD which is modified to now take a format argument. N3VDInt<> and N3VQInt<> are modified to take a format argument as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99676 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6af1c62fd86e72457fef68a365bd74846662f8b6 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Mar 26 23:41:30 2010 +0000 If we mark clean-ups as clean-ups, then it could break when inlining through an 'invoke' instruction. You will get a situation like this: bb: %ehptr = eh.exception() %sel = eh.selector(%ehptr, @per, 0); ... bb2: invoke _Unwind_Resume_or_Rethrow(%ehptr) %normal unwind to %lpad lpad: ... The unwinder will see the %sel call as a clean-up and, if it doesn't have a catch further up the call stack, it will skip running it. But there *is* another catch up the stack -- the catch for the %lpad. However, we can't see that. This is fixed in code-gen, where we detect this situation, and convert the "clean-up" selector call into a "catch-all" selector call. This gives us the correct semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99671 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2a4cff08fee04aa4e2d1a67c953d135673c066b Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Mar 26 22:28:56 2010 +0000 Add NVExtFrm to represent NEON Vector Extract Instructions, that uses Inst{11-8} to encode the byte location of the extracted result in the concatenation of the operands, from the least significant end. Modify VEXTd and VEXTq classes to use the format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99659 91177308-0d34-0410-b5e6-96231b3b80d8 commit c23c8cf859bd537ad4f4bbbafc43bd018850789a Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 26 22:17:24 2010 +0000 remove a constructor implementation that isn't declared in the header. How can both clang and gcc accept this? PR6703 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99658 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8937420ed1621265373b6fbcb3309de88587eed Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Mar 26 21:32:14 2010 +0000 Add few missed libcalls and correct names for others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76a0abc0942652452464074264d7e0eb88452598 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Mar 26 21:26:28 2010 +0000 Add N3RegVShFrm to represent 3-Register Vector Shift Instructions, which do not follow the N3RegFrm's operand order of D:Vd N:Vn M:Vm. The operand order of N3RegVShFrm is D:Vd M:Vm N:Vn (notice that M:Vm is the first src operand). Add a parent class N3Vf which requires passing a Format argument and which the N3V class is modified to inherit from. N3V class represents the "normal" 3-Register NEON Instructions with N3RegFrm. Also add a multiclass N3VSh_QHSD to represent clusters of NEON 3-Register Shift Instructions and replace 8 invocations with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99655 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5c1ff36e8693601508ac19632825729762a12c8 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Mar 26 19:59:25 2010 +0000 fix iterator name git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99646 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8ab1500b7ced28c0103d0e9a762d6db984883a8 Author: Dan Gohman <gohman@apple.com> Date: Fri Mar 26 19:51:14 2010 +0000 Minor grammar and html fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fae3d7523e59411a17f31c55fc88303aaee78e8 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Mar 26 19:40:38 2010 +0000 some more tweaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99643 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7dd5a8e2c3fc48ee93ca6cb0d55a894eb4d45b1 Author: Dan Gohman <gohman@apple.com> Date: Fri Mar 26 19:39:05 2010 +0000 Tell "the rest of the story" about LLVM's iterators' implicit conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2348fb9ace932c15b6c395489f37ded5616fd0f9 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Mar 26 19:35:48 2010 +0000 fix formatting and a validation fail git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99640 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc7b8af568105418a8104cb9b2f24e80d2f03045 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Mar 26 19:30:47 2010 +0000 add a blurb on const versions of chain traversals and a word of caution git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99638 91177308-0d34-0410-b5e6-96231b3b80d8 commit af6a65522bb6a8e7e6601fbea691a82f1533e299 Author: Dale Johannesen <dalej@apple.com> Date: Fri Mar 26 19:21:26 2010 +0000 Debug info shouldn't affect kills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99637 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5b43494d1e4940f090747777a10742a1de06a68 Author: Devang Patel <dpatel@apple.com> Date: Fri Mar 26 19:08:36 2010 +0000 Add a paragram describing how to extract line number information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99636 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c22b9047e3182c71385ddf757ae42033ee8e035 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Mar 26 19:04:42 2010 +0000 http://englishplus.com/grammar/00000296.htm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99635 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8af17918ae29b773c6d3d08ebc86e5597c2e2ed Author: Dan Gohman <gohman@apple.com> Date: Fri Mar 26 18:53:37 2010 +0000 Fix SmallVector's insert to handle non-random-access iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99633 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e1a26e7d8f626aeac41c2be914fe906d6a4e047 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Mar 26 18:41:09 2010 +0000 vldm/vstm can only do up to 16 double-word registers at a time. Radar 7797856 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99630 91177308-0d34-0410-b5e6-96231b3b80d8 commit c55615a7623556e5c4ed19149642ab25d2099e74 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Mar 26 18:32:20 2010 +0000 Add N3RegFrm to represent "NEON 3 vector register format" instructions. Examples are VABA (Vector Absolute Difference and Accumulate), VABAL (Vector Absolute Difference and Accumulate Long), and VABD (Vector Absolute Difference). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4163416ded5770d2ba0d3ea61452876543bcf809 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 26 16:26:03 2010 +0000 Do not sibcall if stack needs to be dynamically aligned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99620 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5616c14dbb3b386d4f795fb2f9714d846fa9048 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 26 02:13:13 2010 +0000 Allow trivial sibcall of vararg callee when no arguments are being passed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99598 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa67223f35922847bd6ac863ff0df72e3ff09172 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 26 02:12:24 2010 +0000 LiveVariables should clear kill / dead markers first. This allows us to remove a hack in the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99597 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8add07e8f05505ceca9cc02be03c5f2910ca1a6b Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Mar 26 01:07:59 2010 +0000 Add N2RegVShLFrm and N2RegVShRFrm formats so that the disassembler can easily dispatch to the appropriate routines to handle the different interpretations of the shift amount encoded in the imm6 field. The Vd, Vm fields are interpreted the same between the two, though. See, for example, A8.6.367 VQSHL, VQSHLU (immediate) for N2RegVShLFrm format and A8.6.368 VQSHRN, VQSHRUN for N2RegVShRFrm format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99590 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61fca0786e128fe5c70760b39f39d70d61a542a5 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 26 00:59:12 2010 +0000 Avoid leaking argv and env arrays from lli. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99589 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cc5052bf5667fb6ca54073be89bdb7371e7636a Author: Dan Gohman <gohman@apple.com> Date: Fri Mar 26 00:33:27 2010 +0000 Ignore debug intrinsics in yet more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99580 91177308-0d34-0410-b5e6-96231b3b80d8 commit 513cbed419b5681e6a55e8d5108558451ed5534d Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 26 00:07:25 2010 +0000 Try trivial remat before the coalescer gives up on a vr / physreg coalescing for fear of tying up a physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99575 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2260d52bb598ac3ff1288473aaf7e5eb736a057 Author: Dale Johannesen <dalej@apple.com> Date: Fri Mar 26 00:02:44 2010 +0000 Handle DEBUG_VALUE in this pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86c43236809b2fc4125f7acb202eb9b2db4fd88b Author: Jim Grosbach <grosbach@apple.com> Date: Thu Mar 25 23:47:34 2010 +0000 switch the flag for using NEON for SP floating point to a subtarget 'feature'. Re-commit. This time complete with testsuite updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99570 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39fc5e1559ad5ec0ba0b6c71673a92b720d6135b Author: Jim Grosbach <grosbach@apple.com> Date: Thu Mar 25 23:34:05 2010 +0000 need to fix 'make check' tests first. revert for a moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99569 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ecb0004ac5b1be624344754a2f4a72a316513b5 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Mar 25 23:32:19 2010 +0000 switch the flag for using NEON for SP floating point to a subtarget 'feature' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 499052dd0fb24e99657f610efd3b0299f5d641f5 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Mar 25 23:25:28 2010 +0000 rename pred_const_iterator to const_pred_iterator for consistency's sake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99567 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e160dc65ebb7e3e7f9af67ca710fceec6b00416 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Mar 25 23:11:56 2010 +0000 Removed instruction class NI from ARMInstrFormats.td. It doesn't seem to be used anywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99566 91177308-0d34-0410-b5e6-96231b3b80d8 commit 917139222d61b4302bdcf9df78574582a635d8db Author: Jim Grosbach <grosbach@apple.com> Date: Thu Mar 25 23:11:16 2010 +0000 switch the use-vml[as] instructions flag to a subtarget 'feature' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d40c27229383ff2c725c2903501a7d64607c64f Author: Gabor Greif <ggreif@gmail.com> Date: Thu Mar 25 23:06:16 2010 +0000 rename use_const_iterator to const_use_iterator for consistency's sake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89b81d67520c77b457e63f86e9c9c91588e2c9f3 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 22:49:09 2010 +0000 llvm-mc: Add a -mc-relax-all option, which relaxes every fixup. We always need exactly two passes in that case, and don't ever need to recompute any layout, so this is a nice baseline for relaxation performance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38909c97af1bc35bd0db930b94d5cfa2912b1203 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Mar 25 21:49:12 2010 +0000 Add NVDupLnFrm and change NVDupLane class to use that format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99557 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2fecfead19a3cc35308f09d4e8d8c2dfb6c9acc Author: Jim Grosbach <grosbach@apple.com> Date: Thu Mar 25 20:48:50 2010 +0000 ARM cortex-a8 doesn't do vmla/vmls well. disable them by default for that cpu git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 980e6de9dfd522b4cdfa5f079a2cad93c0acc783 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Mar 25 20:39:04 2010 +0000 Add NVCVTFrm (NEON Convert with fractional bits immediate) and modify N2VImm to expect a Format arg. N2VCvtD/N2VCvtQ are modified to use the NVCVTFrm format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a2d2ec41def7813dd39bffc7ba3561815976ea4 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 20:01:07 2010 +0000 Add nounwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99546 91177308-0d34-0410-b5e6-96231b3b80d8 commit c89a1051dae6a0fc6accf91b82df413b80857aaa Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 19:46:11 2010 +0000 Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99544 91177308-0d34-0410-b5e6-96231b3b80d8 commit 174c2f94847283559b6aaf2dae426d957ebe3857 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 19:35:56 2010 +0000 MC: Stop restarting layout on every relaxation. - Still O(N^2), just a faster form, and now its the MCAsmLayout's fault. On the .s I am tuning against (combine.s from 403.gcc): -- ddunbar@lordcrumb:MC$ diff stats-before.txt stats-after.txt 5,10c5,10 < 1728 assembler - Number of assembler layout and relaxation steps < 7707 assembler - Number of emitted assembler fragments < 120588 assembler - Number of emitted object file bytes < 2233448 assembler - Number of evaluated fixups < 1727 assembler - Number of relaxed instructions < 6723845 mcexpr - Number of MCExpr evaluations --- > 3 assembler - Number of assembler layout and relaxation steps > 7707 assembler - Number of emitted assembler fragments > 120588 assembler - Number of emitted object file bytes > 14796 assembler - Number of evaluated fixups > 1727 assembler - Number of relaxed instructions > 67889 mcexpr - Number of MCExpr evaluations -- Feel free to LOL at the -before numbers, if you like. I am a little surprised we make more than 2 relaxation passes. It's pretty trivial for us to do relaxation out-of-order if that would give a speedup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99543 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3801d871910d8087d7c1dde4fcf66abdfa46426c Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 19:35:53 2010 +0000 Fix -Asserts warning, again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99542 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fcda8ff07b410f4ab1c8e1a8fb7ee60435a050d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Mar 25 18:52:04 2010 +0000 Tag SSE2 integer instructions as SSEPackedInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99540 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6bf4f5ac81fb83440dcfa887fd07f2a2038b9e2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Mar 25 18:52:01 2010 +0000 Teach TableGen to understand X.Y notation in the TSFlagsFields strings. Remove much horribleness from X86InstrFormats as a result. Similar simplifications are probably possible for other targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 208f29dcd66473b13fe05c39cd934bebc9cbc008 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 25 18:49:10 2010 +0000 fix a valgrind error on copy-constructor-synthesis.cpp, which is caused when the custom insertion hook deletes the instruction, then we try to set dead flags on it. Neither the code that I added nor the code that was there before was safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99538 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f2d6f07cb5ffb7c7d693069d60b5e2b90cc7711 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 18:37:23 2010 +0000 Remove an unused option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99537 91177308-0d34-0410-b5e6-96231b3b80d8 commit e32789f6b899ff021cc5837c3b35ed28f2a357a6 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 18:16:42 2010 +0000 MC: Simplify main section layout process by moving alignment into LayoutSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99529 91177308-0d34-0410-b5e6-96231b3b80d8 commit ede0548da82d1968fa582bcf4ccc497ae467f5e7 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 18:16:38 2010 +0000 MC: Sink Section address assignment into LayoutSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99528 91177308-0d34-0410-b5e6-96231b3b80d8 commit de426fd05d30fad84af2e45b2877533795314044 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Mar 25 17:25:00 2010 +0000 Add a late SSEDomainFix pass that twiddles SSE instructions to avoid domain crossings. On Nehalem and newer CPUs there is a 2 cycle latency penalty on using a register in a different domain than where it was defined. Some instructions have equvivalents for different domains, like por/orps/orpd. The SSEDomainFix pass tries to minimize the number of domain crossings by changing between equvivalent opcodes where possible. This is a work in progress, in particular the pass doesn't do anything yet. SSE instructions are tagged with their execution domain in TableGen using the last two bits of TSFlags. Note that not all instructions are tagged correctly. Life just isn't that simple. The SSE execution domain issue is very similar to the ARM NEON/VFP pipeline issue handled by NEONMoveFixPass. This pass may become target independent to handle both. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99524 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7301e1457a299fe9a6a31842bd0db1c9ce55e255 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Mar 25 17:01:27 2010 +0000 Added a new instruction class NVDupLane to be inherited by VDUPLND and VDUPLNQ, instead of the current N2V. Format of NVDupLane instances are set to NEONFrm currently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58d6cbac33a5a643a6ff722dc6d9e2f19907f631 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 25 16:36:14 2010 +0000 Reapply Kevin's change 94440, now that Chris has fixed the limitation on opcode values fitting in one byte (svn r99494). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99514 91177308-0d34-0410-b5e6-96231b3b80d8 commit d045bd1221c589a389713308a37fa18a64b9e515 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 16:09:18 2010 +0000 Sketch a few Clang release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b27323a9d426119a3ce0e862d065c5f7e07d0e1 Author: Devang Patel <dpatel@apple.com> Date: Thu Mar 25 15:09:44 2010 +0000 Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b19734eaf0021546c155d42bfed1b15915fb68b Author: John Criswell <criswell@uiuc.edu> Date: Thu Mar 25 13:59:09 2010 +0000 Fixed spurious warning problem noticed by Daniel Dunbar. The configure script now configures prerequisite projects individually but also ignores them in the big project switch statement to avoid the incorrect warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99506 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9209c578d0e6362b9dd3f3c5b7f2dcbd9618febe Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 08:08:54 2010 +0000 MC/Mach-O: Switch to MCSectionData::getOrdinal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99504 91177308-0d34-0410-b5e6-96231b3b80d8 commit e38eb174770c7ccb5c4f97487b00be24b55f267c Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 07:16:57 2010 +0000 Scheduler assumes SDDbgValue nodes are in source order. That's true currently. But add an assertion to verify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99501 91177308-0d34-0410-b5e6-96231b3b80d8 commit f34fdcc5b46f92523c39a45e905ad1a2ae138cdd Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 07:10:11 2010 +0000 MC: Explicity track section and fragment ordinals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c4ceb454713b337ef767f8990d7d51d479de6b8 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 07:10:05 2010 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99499 91177308-0d34-0410-b5e6-96231b3b80d8 commit f06cac852dbd53a05448449e4e5bc3cf173e53ed Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 07:10:01 2010 +0000 lit: Add LitTestCase and lit.load_test_suite, for adapting lit based suites for use with Python's unittest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99498 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebd574a04fa8ad3aad0760e6bd548a756f85a2bf Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 25 06:33:05 2010 +0000 Change tblgen to emit FOOISD opcode names as two bytes instead of one byte. This is important because we're running up to too many opcodes to fit in a byte and it is aggrevated by FIRST_TARGET_MEMORY_OPCODE making the numbering sparse. This just bites the bullet and bloats out the table. In practice, this increases the size of the x86 isel table from 74.5K to 76K. I think we'll cope :) This fixes rdar://7791648 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99494 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38c3df75e87a7baa73343582aea266ff1c22d1a2 Author: Devang Patel <dpatel@apple.com> Date: Thu Mar 25 06:26:14 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99493 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01601ec4c68589b79fb2df8621239628ba12c119 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Mar 25 06:23:34 2010 +0000 Fix evil TableGen bug in template parameters with defaults. If a TableGen class has an initializer expression containing an X.Y subexpression, AND X depends on template parameters, AND those template parameters have defaults, AND some parameters with defaults are beyond position 1, THEN parts of the initializer expression are evaluated prematurely with the default values when the first explicit template parameter is substituted, before the remaining explicit template parameters have been substituted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 746b9265afc9136558c1425fda0c4bf3d0318c65 Author: Devang Patel <dpatel@apple.com> Date: Thu Mar 25 06:04:47 2010 +0000 Include isFunctionLocal while calculating folding node set profile for a MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cc263ee9e6fa10feda466b5f7d10f62cd78a76b Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 06:02:53 2010 +0000 Remove a fixme that doesn't make sense any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 807e2ca3c426df16ff5b55f4a32140126701202e Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 25 05:58:19 2010 +0000 fix PR6642, GVN forwarding from memset to load of the base of the memset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99488 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d448b77f1484bac4f4da3f4c99aafb2bc6fad88 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 05:50:26 2010 +0000 Make sure SDDbgValue.Invalid is initialized to false by all the constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99487 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc0902a934014b2f4faeb9bd780d978893b52b96 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 25 05:44:01 2010 +0000 eliminate a bunch more parallels now that scheduling handles dead implicit results more aggressively. More to come, I think this is now just a data entry problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99486 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4d88181b06041f334623e7318c7089aa9340ece Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 25 05:40:48 2010 +0000 Make the NDEBUG assertion stronger and more clear what is happening. Enhance scheduling to set the DEAD flag on implicit defs more aggressively. Before, we'd set an implicit def operand to dead if it were present in the SDNode corresponding to the machineinstr but had no use. Now we do it in this case AND if the implicit def does not exist in the SDNode at all. This exposes a couple of problems: one is the FIXME, which causes a live intervals crash on CodeGen/X86/sibcall.ll. The second is that it makes machinecse and licm more aggressive (which is a good thing) but also exposes a case where licm hoists a set0 and then it doesn't get resunk. Talking to codegen folks about both these issues, but I need this patch in in the meantime. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 902e131f5247e5da6250de00e3a71caad397a333 Author: Devang Patel <dpatel@apple.com> Date: Thu Mar 25 05:36:13 2010 +0000 Include isFunctionLocal while calculating folding node set provide for a MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99484 91177308-0d34-0410-b5e6-96231b3b80d8 commit 549983a2d12da1f126ac210b471ca4bb276694a4 Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 25 04:49:10 2010 +0000 Reapply r99451 with a fix to move the NoInline check to the cost functions instead of InlineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 625989070f3c06776bf2cc721ed09d66e7fc408c Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 25 04:41:16 2010 +0000 reapply 99444/99445, which I speculatively reverted in r99453. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99482 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd9a833d737c4135e7735a3718e186a3d4a71ee5 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 02:00:07 2010 +0000 MC: Route access to SectionData offset and file size through MCAsmLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99474 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2ddd798f7171645e4fd954023184eb96cfcc38f Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 02:00:02 2010 +0000 MC: Route access to Fragment offset and effective size through MCAsmLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99473 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dfa53e906562b418bb5b84f322eced43c8ba44c Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 25 01:46:07 2010 +0000 Make sure this runs in 64-bit only, 32-bit won't produce the correct stores. Fariborz please review and make sure this is what you meant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99472 91177308-0d34-0410-b5e6-96231b3b80d8 commit 100d4dc73542d31cbbfb9c5641b8781455b9250f Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 01:38:16 2010 +0000 Change how dbg_value sdnodes are converted into machine instructions. Their placement should be determined by the relative order of incoming llvm instructions. The scheduler will now use the SDNode ordering information to determine where to insert them. A dbg_value instruction is inserted after the instruction with the last highest source order and before the instruction with the next highest source order. It will optimize the placement by inserting right after the instruction that produces the value if they have consecutive order numbers. Here is a theoretical example that illustrates why the placement is important. tmp1 = store tmp1 -> x ... tmp2 = add ... ... call ... store tmp2 -> x Now mem2reg comes along: tmp1 = dbg_value (tmp1 -> x) ... tmp2 = add ... ... call ... dbg_value (tmp2 -> x) When the debugger examine the value of x after the add instruction but before the call, it should have the value of tmp1. Furthermore, for dbg_value's that reference constants, they should not be emitted at the beginning of the block (since they do not have "producers"). This patch also cleans up how SDISel manages DbgValue nodes. It allow a SDNode to be referenced by multiple SDDbgValue nodes. When a SDNode is deleted, it uses the information to find the SDDbgValues and invalidate them. They are not deleted until the corresponding SelectionDAG is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99469 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdedc71139d282c879a3751f09537598cfa6f943 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 01:03:24 2010 +0000 MC: Eliminate MC{Fragment,{Section,Symbol}Data}::getAddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99467 91177308-0d34-0410-b5e6-96231b3b80d8 commit 056c1960a066911110e51b3d074935a2c8a01194 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 25 01:03:17 2010 +0000 MC: Fix refacto in MCExpr evaluation, I mistakenly replaced a fragment address with a symbol address. - This fixes the integrated-as nightly test regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99466 91177308-0d34-0410-b5e6-96231b3b80d8 commit f65f4a669b0447cbceaa3e03faaa361a01616859 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 01:01:37 2010 +0000 Avoid being influenced by dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99465 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed031d0fed698d1fc83ed12fb808fb6c4ec13ade Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 25 00:59:51 2010 +0000 Fix unused parameter warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99463 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01b9bd7a25d9a68cf2489de7b34631ccd5914f97 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 25 00:10:31 2010 +0000 Disable folding loads into tail call in 32-bit PIC mode. It can introduce illegal code like this: addl $12, %esp popl %esi popl %edi popl %ebx popl %ebp jmpl *__Block_deallocator-L1$pb(%esi) # TAILCALL The problem is the global base register is assigned GR32 register class. TCRETURNmi needs the registers making up the address mode to have the GR32_TC register class. The *proper* fix is for X86DAGToDAGISel::getGlobalBaseReg() to return a copy from the global base register of the machine function rather than returning the register itself. But that has the potential of causing it to be coalesced to a more restrictive register class: GR32_TC. It can introduce additional copies and spills. For something as important the PIC base, it's not worth it especially since this is not an issue on 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63fad5a3ec5e657ff80238d5736eafc9ff68d28d Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 25 00:03:04 2010 +0000 Docuemntation corrections from John Myers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94892df1fd55046e8e990772db6a893417cfce9b Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 23:41:19 2010 +0000 revert 99444/99445. This doesn't cause the failure of 2006-07-19-stwbrx-crash.ll for me, but it's the only likely patch in the blame list of several bots. Lets see if this fixes it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83cc675cb4790f5691878bad318e45ba7ce15d39 Author: Eric Christopher <echristo@apple.com> Date: Wed Mar 24 23:35:21 2010 +0000 Temporarily revert this, it's causing an issue with an internal project. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99451 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0c9e3a6c77899159e6303c4c677d1b47317c4f6 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 24 23:26:29 2010 +0000 Speculatively revert this to see if it fixes buildbot failures. --- Reverse-merging r99440 into '.': U test/MC/AsmParser/X86/x86_32-bit_cat.s U test/MC/AsmParser/X86/x86_32-encoding.s U include/llvm/IntrinsicsX86.td U include/llvm/CodeGen/SelectionDAGNodes.h U lib/Target/X86/X86InstrSSE.td U lib/Target/X86/X86ISelLowering.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99450 91177308-0d34-0410-b5e6-96231b3b80d8 commit a845d7a0f527e8bc150e781df7d1ba73b601e476 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 23:07:47 2010 +0000 add a convenient TargetInstrDesc::getNumImplicitUses/Defs method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99446 91177308-0d34-0410-b5e6-96231b3b80d8 commit a09830f5876e26514322b53bc02a88e5c909de7a Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 22:47:12 2010 +0000 remove dead argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b053c405c82e3e02c49d9549833b9a10fba1097 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 22:45:47 2010 +0000 split EmitNode in half to reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99444 91177308-0d34-0410-b5e6-96231b3b80d8 commit bcf54cd7f06edfeae6e78d679482e05952656fb8 Author: Kevin Enderby <enderby@apple.com> Date: Wed Mar 24 22:33:33 2010 +0000 Added the Advanced Encryption Standard (AES) Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99440 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19262344e454e632a16ec594d4ee333dd8fa4cec Author: Jim Grosbach <grosbach@apple.com> Date: Wed Mar 24 22:31:46 2010 +0000 Make the use of the vmla and vmls VFP instructions controllable via cmd line. Preliminary testing shows significant performance wins by not using these instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99436 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7828f2f337d47fee05c6568488920d163b118f5b Author: Kevin Enderby <enderby@apple.com> Date: Wed Mar 24 22:28:42 2010 +0000 Fixed the SS42AI template for the SSE 4.2 instructions with TA prefix so it does not get an "Unknown immediate size" assert failure when used. All instructions of this form have an 8-bit immediate. Also added a test case of an example instruction that is of this form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12ed4a83927b06721bbb0c0db262f0c88e530816 Author: Nate Begeman <natebegeman@mac.com> Date: Wed Mar 24 22:19:06 2010 +0000 Per chris's request, add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99434 91177308-0d34-0410-b5e6-96231b3b80d8 commit a630da5224e3540e3d773dc23e37e882134acb4c Author: Devang Patel <dpatel@apple.com> Date: Wed Mar 24 21:30:35 2010 +0000 Use SP filename directly instead of SP's context's filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99429 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03b3dbcb5d2dff414bb590691bf793ae2401a584 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 24 21:25:07 2010 +0000 Trivial formating change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99428 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0433aab681912cdf73eb95d8df1436cb752fff3b Author: Nate Begeman <natebegeman@mac.com> Date: Wed Mar 24 20:49:50 2010 +0000 BUILD_VECTOR was missing out on some prime opportunities to use SSE 4.1 inserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99423 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbf0e04746eb6e9ce92e0a69c824d271672cc6b7 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 24 20:25:25 2010 +0000 Revert Edwin's change that is breaking MultiSource/Applications/ClamAV/clamscan. --- Reverse-merging r99400 into '.': D test/CodeGen/Generic/2010-03-24-liveintervalleak.ll U lib/CodeGen/LiveIntervalAnalysis.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67ecada73d5f0a3129e336df3dd8d5ce3ad6a23e Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 24 20:19:04 2010 +0000 Move OptChkCall off LibCallOptimization into StrCpyOpt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 889108d53ef3a417b7895dff6bb2136a020b85c5 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 24 19:56:17 2010 +0000 Trim #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99416 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd5cbf8d2d749a955ff3296095b7ecb25c6f2496 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 24 19:47:14 2010 +0000 Reverted r99326 which added NVdVmVCVTFrm, and later renamed to NVCVTFrm. NVCVTFrm will later be used to describe "vcvt with fractional bits". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99415 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8c7c751a6e45ef622b2401d33c0031f8c94ff1b Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 24 19:38:02 2010 +0000 Fix minor style issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cf4a80cb785d9edfdfc4731a96137f85979faf0 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 24 19:00:02 2010 +0000 It's not necessary to call raw_ostream::close explicitly on automatic raw_ostream variables immediately before they go out of scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99413 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d53ca456f131c514667d29a4ca220216815d769 Author: Devang Patel <dpatel@apple.com> Date: Wed Mar 24 18:48:00 2010 +0000 Do not rely on getCompileUnit() to find source file information for a subprogram. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99410 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1253417e32a440c47cf1bb0c21a8714a4035958 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 24 18:46:34 2010 +0000 Reverted r99376. The disassembler will deal with the 2-reg format of these two N3VX instructions using special case code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ec6f4c0aea755c6149b42720ccad3dba7d10f6f Author: Jim Grosbach <grosbach@apple.com> Date: Wed Mar 24 16:15:14 2010 +0000 tweak the arm if conversion heuristic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3efcc8db4a3cd1f63da266d74ff703e8a9a5f358 Author: Edwin Török <edwintorok@gmail.com> Date: Wed Mar 24 13:50:36 2010 +0000 Fix memory leak in liveintervals: the destructor for VNInfos must be called, otherwise the SmallVector it contains doesn't free its memory. In most cases LiveIntervalAnalysis could get away by not calling the destructor, because VNInfos are bumpptr-allocated, and smallvectors usually don't grow. However when the SmallVector does grow it always leaks. This is the valgrind shown leak from the original testcase: ==8206== 18,304 bytes in 151 blocks are definitely lost in loss record 164 of 164 ==8206== at 0x4A079C7: operator new(unsigned long) (vg_replace_malloc.c:220) ==8206== by 0x4DB7A7E: llvm::SmallVectorBase::grow_pod(unsigned long, unsigned long) (in /home/edwin/clam/git/builds/defaul t/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4F90382: llvm::VNInfo::addKill(llvm::SlotIndex) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libcl amav.so.6.1.0) ==8206== by 0x5126B5C: llvm::LiveIntervals::handleVirtualRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::M achineInstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int, llvm::LiveInterval&) (in /home/edwin/clam/git/builds/defau lt/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x512725E: llvm::LiveIntervals::handleRegisterDef(llvm::MachineBasicBlock*, llvm::ilist_iterator<llvm::MachineI nstr>, llvm::SlotIndex, llvm::MachineOperand&, unsigned int) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav .so.6.1.0) ==8206== by 0x51278A8: llvm::LiveIntervals::computeIntervals() (in /home/edwin/clam/git/builds/default/libclamav/.libs/libc lamav.so.6.1.0) ==8206== by 0x5127CB4: llvm::LiveIntervals::runOnMachineFunction(llvm::MachineFunction&) (in /home/edwin/clam/git/builds/de fault/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAE935: llvm::FPPassManager::runOnFunction(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAEB10: llvm::FunctionPassManagerImpl::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclama v/.libs/libclamav.so.6.1.0) ==8206== by 0x4DAED3D: llvm::FunctionPassManager::run(llvm::Function&) (in /home/edwin/clam/git/builds/default/libclamav/.l ibs/libclamav.so.6.1.0) ==8206== by 0x4D8BE8E: llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, llvm::MutexGuard const&) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) ==8206== by 0x4D8CA72: llvm::JIT::getPointerToFunction(llvm::Function*) (in /home/edwin/clam/git/builds/default/libclamav/.libs/libclamav.so.6.1.0) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6911ef38ce85171d7ac857ca7874e6beb69b9e86 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Mar 24 13:21:49 2010 +0000 Finally land the InvokeInst operand reordering. I have audited all getOperandNo calls now, fixing hidden assumptions. CallSite related uglyness will be eliminated successively. Note this patch has a long and griveous history, for all the back-and-forths have a look at CallSite.h's log. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99399 91177308-0d34-0410-b5e6-96231b3b80d8 commit e77a6dee6e5948e871cc53b9b96e014e7a5897aa Author: Gabor Greif <ggreif@gmail.com> Date: Wed Mar 24 11:58:07 2010 +0000 tighten a type and remove trailing whitespace, no functional changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99398 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4a62795ac2a0e8821ecabca9f83ee2ab9815766 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Mar 24 10:29:52 2010 +0000 increase const goodness and remove pointless getUser() calls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99395 91177308-0d34-0410-b5e6-96231b3b80d8 commit db5862e1f468b4435d6210dc6c1fd40fa183c817 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Mar 24 10:12:54 2010 +0000 cache result of UI.getOperandNo() instead of calling it twice, it is cheaper this way git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99394 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11083492c72f01294892a88f2cda7df723ac0a4f Author: Duncan Sands <baldrick@free.fr> Date: Wed Mar 24 09:05:14 2010 +0000 Fix comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99392 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2594c5e0318f11d450d8df739761e8b10ba60ef1 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 24 03:43:40 2010 +0000 MC: Direct all {fragment,section,symbol} address access through the MCAsmLayout object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56db942fbf6c44bf4521764d70b12f5e57e55594 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 24 01:50:28 2010 +0000 dbg_value may end a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 873d635ab8f5bc22c4353514a85882993593241f Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 24 01:29:25 2010 +0000 Mark VMOVDneon and VMOVQ as having the N2RegFrm form to help the disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28d2618ce57640a795bc62a49dbbcb24fdf1ce65 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 01:02:12 2010 +0000 Switch INC8r to defining its pattern in terms of X86inc_flag and defining the add pattern with Pat<>, eliminating a use of parallel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24deac155e1430c07e463c2b95a7f72252a15238 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 24 00:57:50 2010 +0000 Renamed NVdVmImmFrm and NVdVmVCVTFrm to the more proper N2RegFrm and NVCVTFrm, respectively, and add some more comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99373 91177308-0d34-0410-b5e6-96231b3b80d8 commit 306ec9ef5209d2905bc5a1144886360711120c37 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 24 00:53:38 2010 +0000 Remove the ConvertActions table and associated code, which is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99372 91177308-0d34-0410-b5e6-96231b3b80d8 commit a614d3244c08c274c8aa18cfe3d4a44853456440 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:53:27 2010 +0000 Add a method to get a StringMapEntry from a pointer to the string data it contains (similar to GetStringMapEntryFromValue). Patch by Greg Clayton! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99371 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1976491476940828b23f3320a3a3cff507bf56d7 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:49:29 2010 +0000 switch SDTBinaryArithWithFlags to be a multiple-result node as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fd5b27f2f0f50358143718f5ff69f54c51c488f Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:47:47 2010 +0000 Switch SDTUnaryArithWithFlags to being modeled as a two-result ISD node. The only change in the generated isel code are comments like: < // Src: (X86dec_flag:i16 GR16:i16:$src) --- > // Src: (X86dec_flag:i16:i32 GR16:i16:$src) because now it knows that X86dec_flag returns both an i16 (for the result) and an i32 (for EFLAGS) in this case. Wewt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99369 91177308-0d34-0410-b5e6-96231b3b80d8 commit d391d1f8273b7f6a49e9b92d7c3ab097b812ff97 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:41:19 2010 +0000 add plumbing for handling multiple result nodes in some more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99366 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8532485f469f2a34e6d6f5673058d9cc358beed7 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 24 00:27:49 2010 +0000 Fix coding style. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99362 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc8b98175081827c11fdb1bf048b423a7297e413 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 24 00:22:24 2010 +0000 Generalize findNearestCommonDominator to work on post-dominators, based on a suggestion by Jochen Wilhelmy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99361 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8188176af493716b296dbef6f65bfe0c30423ad Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:16:52 2010 +0000 remove 64-bit or_is_add parallels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99360 91177308-0d34-0410-b5e6-96231b3b80d8 commit adf7ff50a30052cb8250e8084c0603af8426a66a Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:15:23 2010 +0000 remove useless or_is_add parallel's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99359 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdc0f579c83be2b4f5a5a9f4e94bf2b033d4ddbc Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:12:57 2010 +0000 reduce nesting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99358 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5e4525f3ba819bdc3e02257d057db924b290255 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:06:46 2010 +0000 implement SDTCisVTSmallerThanOp with EnforceSmallerThan instead of reimplementing it wrong and poorly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99357 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4d6a69dc9ede4b55fbd4647b30192a9cc23f893 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Mar 24 00:03:13 2010 +0000 try being more permissive for if-conversion on ARM V7. see what the nightly test run permformance numbers say as to whether it helps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99355 91177308-0d34-0410-b5e6-96231b3b80d8 commit f371a0f3025883a93c4420d94ae762946eac14c0 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 24 00:01:16 2010 +0000 bring sanity to EnforceVectorEltType git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f36311b7a3dcb323a0bfd8301e7a775127348b1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 23 23:50:31 2010 +0000 Cleanup getImplicitType git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99353 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5dd862e970c44c36c0354b1c21d33b4b0c1931d5 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 23 23:48:51 2010 +0000 Revert "Add a late SSEDomainFix pass that twiddles SSE instructions to avoid domain crossings." This reverts commit 99345. It was breaking buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99352 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c91d2e0e2d7e05bed8b0363f54250d44a02ea23 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 23 23:47:14 2010 +0000 MC: Sprinkle in some more interesting statistics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99350 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b68972ea8be7c04f7fec30eba17b6962bca3469 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 23 23:47:12 2010 +0000 llvm-mc: Support -filetype=null, for timing purposes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99349 91177308-0d34-0410-b5e6-96231b3b80d8 commit f32ad3910853b61b9e0e6db62eed538d32c6fe95 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 23 23:47:07 2010 +0000 llvm-mc: Fast path EvaluateAbsolute of constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99348 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95c5cf74f1f8881680b49a4ca54118e2a467b823 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 23 23:46:27 2010 +0000 reject void in intrinsic type lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99347 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62271f2b07e7904041b92d5dd7017562192d9e2c Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 23 23:46:07 2010 +0000 [llvm_void_ty] is no longer needed for result types, just use an empty result list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99346 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1aca81c9bc9eeaa4cc067283d58c7df76912e3fd Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 23 23:14:44 2010 +0000 Add a late SSEDomainFix pass that twiddles SSE instructions to avoid domain crossings. This is work in progress. So far, SSE execution domain tables are added to X86InstrInfo, and a skeleton pass is enabled with -sse-domain-fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99345 91177308-0d34-0410-b5e6-96231b3b80d8 commit de0996dd09f62ded2f3976ebb61e4530fe25ba45 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 23 23:09:14 2010 +0000 Renamed NVdImmFrm to N1RegModImmFrm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99344 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b103ef05707cc08ecc2152ca803fa33bacaa970 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 23 23:09:03 2010 +0000 Remove if DISABLED not if not DISABLED... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99343 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cd2eec646bd7e9935fc4a3933d3b8eda0571579 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 23 22:59:07 2010 +0000 add some accessors to callsite/callinst/invokeinst to check for the noinline attribute, and make the inliner refuse to inline a call site when the call site is marked noinline even if the callee isn't. This fixes PR6682. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99341 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5b3351982518eb5411912075d1bef98cba55c7b Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 23 22:44:42 2010 +0000 Revert 99335. getTypeToExpandTo's iterative behavior is actually needed here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99339 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f31143be820cbe57a61b342b8ad1a0b8050c074 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 23 22:15:33 2010 +0000 Use "DISABLE_EDIS" to disable building "edis" explicitly. Don't build it for Apple-style builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99336 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5310777be9b03c5705894c7d9e36b9c71d54534 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 23 22:15:31 2010 +0000 Remove getTypeToExpandTo, since it isn't adding much value beyond just calling getTypeToTransformTo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99335 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4af2c53ec5362cdfb32cecaddbdee94fa10af59 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 23 21:59:43 2010 +0000 make sure to delete the llvm module before calling llvm_shutdown, this fixes crashes in error cases, PR6683 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99334 91177308-0d34-0410-b5e6-96231b3b80d8 commit f011237843078e12b8a7fd97c8d23f95a9b1e4f5 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 23 21:53:22 2010 +0000 Don't back past debug info intrinsics; SCEVExpander's strategy for ignoring debug info intrinsics everywhere else is to advance past them, and it needs to be consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 275f178d17f333508b55ac3c7519be7347f9ccdf Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 23 21:48:41 2010 +0000 fix an infinite loop in Module::getEndianness, PR6684 patch by Alex Mac! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99330 91177308-0d34-0410-b5e6-96231b3b80d8 commit c492bd83e21ed8ff9fa161a1fc43b28bf66b0628 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 23 21:35:03 2010 +0000 Fix typo in the comment for N3VX class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99328 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ad1edc3e4fc44e85a1597e7dc00ca40895ff4d6 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 23 21:30:12 2010 +0000 Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99327 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe9f61bdfbeecfbc66a38e77541c7cd0083640f8 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 23 21:25:38 2010 +0000 Add New NEON Format NVdVmVCVTFrm. Converted some of the NEON vcvt instructions to this format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 285787a2581f91871e7e9ce7a962effe46f1611d Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 23 21:15:59 2010 +0000 Skip debugging intrinsics when sinking unused invariants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 713f6370bc84327cb0e30cfbf8fa42d9519e8352 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 23 20:40:44 2010 +0000 Add New NEON Format NVdVmImmFrm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99322 91177308-0d34-0410-b5e6-96231b3b80d8 commit e84fdb032ac5f725905d9b64138200b1574bf459 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 23 20:36:12 2010 +0000 Ignore dbg_value's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b7a8612c0b513d635f7e66932d12396c7fe2283 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 23 20:35:45 2010 +0000 Teach isSafeToClobberEFLAGS to ignore dbg_value's. We need a MachineBasicBlock::iterator that does this automatically? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99320 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8e67f4bb75fd3117a38b0b8398a5c17154d1827 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 23 20:33:48 2010 +0000 Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99319 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1837d5010a964a1f9a623f00ea08b558d4748163 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 23 18:54:46 2010 +0000 Fix VLDMQ and VSTMQ instructions to use the correct encoding and address modes. These instructions are only needed for codegen, so I've removed all the explicit encoding bits for now; they should be set in the same way as the for VLDMD and VSTMD whenever we add encodings for VFP. The use of addrmode5 requires that the instructions be custom-selected so that the number of registers can be set in the AM5Opc value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99309 91177308-0d34-0410-b5e6-96231b3b80d8 commit 386b167cab4ac08fde567ee4dc525abdcfe4c14c Author: Stuart Hastings <stuart@apple.com> Date: Tue Mar 23 18:39:23 2010 +0000 Test case for llvm-gcc r99305. Radar 7659636. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99306 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6b0f2d1a9ca2f1f58f588026e47f23475154296 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 23 17:23:59 2010 +0000 Fix bad indentation, 80-column violations, and trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99295 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad1287232a55d237e7b8ae6df647d3f400425456 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 23 16:43:47 2010 +0000 Add New NEON Format NVdImmFrm. Ref: A7.4.6 One register and a modified immediate value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99288 91177308-0d34-0410-b5e6-96231b3b80d8 commit d275f1077a70d1758100fe8b167339cfbd833b13 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 23 15:50:49 2010 +0000 Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99284 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3891874d4646edf472f9f95eb3f8c27ec301db1d Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 23 15:49:37 2010 +0000 Forgot this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99283 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2380130fcc58a9847e4afb0c81451a1797e4b6d Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 23 15:48:04 2010 +0000 Teach simplify libcall to transform __strcpy_chk to __memcpy_chk to enable optimizations down stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99282 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8bb7f06a5dcdbe156ec9dee517ce96026857b6f Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 23 14:40:20 2010 +0000 add assert in argpromotion, which cannot trigger if Function::hasAddressTaken works as advertised also included some cosmetic cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99276 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0f273b5a6e8a3cb8a8a48b23f8e84052393da46 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 23 13:45:54 2010 +0000 word-o git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99275 91177308-0d34-0410-b5e6-96231b3b80d8 commit a180ed5f1f48e09a39f6424e5a4dabdb4268bf40 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 23 06:26:18 2010 +0000 Rename some instructions to match the corresponding NEON opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99266 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a6055ef4b5ba34a87a65f0685a6c625c9de4ab4 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 23 06:20:33 2010 +0000 Change VST1 instructions for loading Q register values to operate on pairs of D registers. Add a separate VST1q instruction with a Q register source operand for use by storeRegToStackSlot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99265 91177308-0d34-0410-b5e6-96231b3b80d8 commit 690fd00ecb48070b955fc5977afbe94fb1ec4717 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 23 06:06:09 2010 +0000 Fix an incorrect logic causing instcombine to miss some _chk -> non-chk transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99263 91177308-0d34-0410-b5e6-96231b3b80d8 commit b790b3ad04aaba7934c5c1112dbdf1c83e38f9ff Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 23 05:25:43 2010 +0000 Change VLD1 instructions for loading Q register values to operate on pairs of D registers. Add a separate VLD1q instruction with a Q register destination operand for use by loadRegFromStackSlot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99261 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0ed890a8f248050f149ac98522870a849124e67 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 23 05:09:03 2010 +0000 MC: Switch to using MCInst fragments to do relaxation. Also, both MCMachOStreamer and MCAssembler are now target independent! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 741002c54ebdfca00bb60bdb5ccf1e23b2cf7934 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 23 03:13:05 2010 +0000 MC: Add TargetAsmBackend::MayNeedRelaxation, for checking whether a particular instruction + fixups might need relaxation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99249 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36d8101c33f959b2a8246d5a1e09854e3a54deee Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 23 02:36:58 2010 +0000 MC: Add TargetAsmBackend::WriteNopData and use to eliminate some target dependencies in MCMachOStreamer and MCAssembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99248 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9346ea82843349ba29795b4173e0911d2765b6ef Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 23 01:39:09 2010 +0000 MC: Add TargetAsmBackend::RelaxInstruction callback, and custom X86 implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99245 91177308-0d34-0410-b5e6-96231b3b80d8 commit 075402d0f528ac6ce26a3a53df8caf3906394e3a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 23 01:39:05 2010 +0000 MC: Tweak MCInstFragment to include the encoded data and fixups, so that we don't need to recompute them during relaxation. I will revisit this once all the other pieces of fast relaxation are in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99244 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5ada695635bbf34d19cb786ac1bb559432fd61f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Mar 22 23:26:12 2010 +0000 Put MCSectionCOFF::Name into the MCContext instead of leaking it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 736fca6f04b529477c792d860e6ddd1a01862618 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 23:16:48 2010 +0000 MC: Add MCInstFragment, not used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00e93ce7c5993e130ec44ac3251523a55c817217 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 23:16:43 2010 +0000 Add a FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 942b5ddb52a3a2742eef73df2dba8b4c8e66a8f3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 22 23:15:57 2010 +0000 Fix PR6673: updating the callback should not clear the map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62846cd844c52e2a4d0d8e5d881a8980e427da8f Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 22 23:11:36 2010 +0000 Emit DW_AT_low_pc and DW_AT_high_pc attributes for TAG_compile_unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f430b6c16bd577114be9a192ea17ee9017c20bf Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 22 22:44:31 2010 +0000 Fix 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99224 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b7a0d8538d0287eaa0715824310b45b8d1f82f0 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 22 22:38:48 2010 +0000 DW_AT_stmt_list attribute attached with a compile unit encodes offset of line number information for this compile unit in debug_line section. This offset is always zero when only one compile unit is emitted in a object file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99223 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9df6d2060c62e8bdcbcc938ec4d97dde4a63392c Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 21:49:41 2010 +0000 MC: Fix a few more cases we were passing an MCDataFragment when a MCFragment would do, and sprinkle in some const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99218 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7501212668a0c1b49176a169a5cd804a7630ac0 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 21:49:38 2010 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99217 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1b8f8f6dbd2b99e568b06a6b2934b2a9f09ffa7 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 21:49:34 2010 +0000 MCInst: Add ::dump_pretty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99216 91177308-0d34-0410-b5e6-96231b3b80d8 commit 548a9365fe5931d471f3370c2307b9979e350597 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 22 21:24:33 2010 +0000 Reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99214 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0efe817fab4aef24a03f866795542b503bacc72 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 22 20:56:36 2010 +0000 Change intrinsic result type for void to store it as an empty list instead of as a single element list with VoidTy. Now with a fix for the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99206 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfd06a2d695c18fdd3486f21675258a5707a1596 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 20:35:50 2010 +0000 MC: Change MCObjectWriter::RecordRelocation to take an MCFragment (instead of a MCDataFragment). Object files should only need the generic MCFragment features. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99205 91177308-0d34-0410-b5e6-96231b3b80d8 commit d34b64f03dae31744c3ebceee9f46f7520b89955 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 20:35:46 2010 +0000 MC/Mach-O: Factor out getOrCreateDataFragment(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36f8b8dd8aa0aad830de4a06cedbaa737a3ff1e7 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 20:35:43 2010 +0000 MC: Eliminate MCFragment::getMaxFileSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99203 91177308-0d34-0410-b5e6-96231b3b80d8 commit 313facb5d5e5af5b8325c231d3c5fd573dc10907 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 22 20:35:35 2010 +0000 MC: Share the MCAsmLayout object, although its still not used for anything important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99202 91177308-0d34-0410-b5e6-96231b3b80d8 commit 037f5661b799e08d803950d92a0d6c4009d60f88 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Mar 22 20:31:39 2010 +0000 Rename one more NEON instruction that I missed earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d39b943c9a1ea6f753409fa47bb4a5653c9a3dd Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Mar 22 18:47:14 2010 +0000 Fix a memory leak from DIE::addSiblingOffset() by adding the DIEValue it allocates to DwarfDebug::DIEValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6898511e3be8d0eafcc8467cf442089510352594 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 22 18:40:50 2010 +0000 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a11ce53d6c530316fa5807b957622d81926de0e Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Mar 22 18:22:06 2010 +0000 Regroup some instructions. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99192 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc9acd985d425bf9af57e72a144adad495054117 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Mar 22 18:13:18 2010 +0000 Rename some VLD1/VST1 instructions to match the implementation, i.e., the corresponding NEON instructions, instead of operation they are currently used for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99189 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d59706725a97262e42b96ff11304077d3296db8 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Mar 22 18:02:38 2010 +0000 Remove some redundant instruction classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99187 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd2cb7a999867e415950fdae75f96454b5fa8caa Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 22 16:59:44 2010 +0000 llc doesn't need LinkAllVMCore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99186 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8b64519e6149a1d6acf8333dd1a27e1fdc7d736 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Mar 22 16:43:10 2010 +0000 Refactor instruction encoding arguments for VLDnLN/VSTnLN classes to specify encoding bits in arguments instead of "let" expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99185 91177308-0d34-0410-b5e6-96231b3b80d8 commit d96fddd7dd68557795eae1dd3733393c7108a362 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Mar 22 16:30:04 2010 +0000 Completely remove Blackfin patterns that thought JustCC was i1. Thanks, Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99183 91177308-0d34-0410-b5e6-96231b3b80d8 commit f21373d12152a35ff42aaf968075b993fbb9b0ce Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Mar 22 16:13:21 2010 +0000 Don't leak a MachineInstruction from Thumb1InstrInfo::restoreCalleeSavedRegisters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99182 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64ae57c2512b86a973581cd83d142e5a00191345 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Mar 22 15:56:04 2010 +0000 Avoid leaking the FunctionPassManager from opt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31ff8f40f8b6bc558a4c68bc69b75ba8cddc9ce4 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Mar 22 09:11:00 2010 +0000 backing out r99170 because it still fails on clang-x86_64-darwin10-fnt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99171 91177308-0d34-0410-b5e6-96231b3b80d8 commit 478001d513fd58879c697cdb9f81bab9ebb3d88e Author: Gabor Greif <ggreif@gmail.com> Date: Mon Mar 22 08:28:00 2010 +0000 Now that hopefully all direct accesses to InvokeInst operands are fixed we can reapply the InvokeInst operand reordering patch. (see r98957). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77e427769a0c1dce88e3cc147aa00b2c0dd7f8dd Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Mar 22 05:23:37 2010 +0000 Free all Constants in ~LLVMConstantImpl. We avoid assertion failures by dropping all references from all constants that can use other constants before trying to destroy any of them. I also had to free bugpoint's Module in ~BugDriver(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99160 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81042fd4dc518a4aec2aa48214244438d1607b3d Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Mar 21 23:15:13 2010 +0000 Fix the ocaml kaleidoscope tutorial to fix linking external libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99151 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b5d4dac070706a21c259cd22d45f900f635d1a4 Author: Gabor Greif <ggreif@gmail.com> Date: Sun Mar 21 22:23:02 2010 +0000 modernize the do-all-for-me target to run lit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99148 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b20bf7e5e79ec124f03ef11eb88be14b1b69162 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 21 22:08:41 2010 +0000 Re-add the Metadata.h include to LLVMContextImpl.h so that MDNode is complete where FoldingSet<MDNode> is instantiated. Clang and MSVC complain; gcc doesn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8460da1b03c5138a9d5d4185e005e9da6de2bd47 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 21 21:17:34 2010 +0000 Move the LLVMContextImpl implementation into a .cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63a535b8c10001cc189647804f311f413d0d9f29 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 21 20:37:19 2010 +0000 Memoize InlineAsms into the LLVMContext and delete them on shutdown. Fixes PR803. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99143 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02fecdded2e2b292cef5603e24e3d33408eb1095 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 21 08:12:46 2010 +0000 XFAIL tests from LLVMC on valgrind or valgrind+leak-checking. We don't care about leaks from tblgen, and I assume we don't care about valgrind errors in llvm-gcc/g++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99115 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79aeb15ca222e5ba6f503d8011169d9d984f5904 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 21 01:47:49 2010 +0000 Free SavedLI even if SimpleRegisterCoalescing::JoinCopy() returns early. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7089e96d6e98a36f663f48cfca444fb147d1afd9 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 21 01:47:33 2010 +0000 When we don't pass --vg-leak to lit, pass --leak-check=no to valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99112 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4510226a613885a3fdb6c1c72e1ce948e286ae3d Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Mar 21 01:38:21 2010 +0000 Fix suggested parentheses warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9821ce5d2fd83a98e18bf03590e523da2e5fb0ff Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 20 23:08:45 2010 +0000 Add support for XFAILing valgrind runs with memory leak checking independently of runs without leak checking. We add -vg to the triple for non-checked runs, or -vg_leak for checked runs. Also use this to XFAIL the TableGen tests, since tablegen leaks like a sieve. This includes some valgrindArgs refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99103 91177308-0d34-0410-b5e6-96231b3b80d8 commit afa664c88197b2e8195d47993341c065df8fd08b Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 20 22:36:38 2010 +0000 MC/X86: Fix an MCOperand link, when we parsing shrld $1,%eax and friends; I believe this fixes the last memory leaks under test/MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99102 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0db6550e0bb7488e9c757aa6ebbd8763a9a3c830 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 20 22:36:35 2010 +0000 llvm-mc: Fix MCInstPrinter memory leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82d38e3c374f2116878ceff71c84a41a0e53f815 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 20 22:36:32 2010 +0000 MC/Mach-O: Remove Darwin host specific tests, we don't need them anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99100 91177308-0d34-0410-b5e6-96231b3b80d8 commit c69ce47452b468bbbefe0cc05e3674bb7df1aab0 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 20 22:36:29 2010 +0000 MC/Mach-O: Tweak optimal_nop test to be host independent. - This also avoids us running valgrind on /usr/bin/as, which has leaks. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99099 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31d1971a5de40cfc4103ade8eb96b71393c22e73 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 20 22:36:25 2010 +0000 llvm-mc: Fix memory leak of MCAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99098 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef30c5200ad6bcacb538c96ba3ef3ad617175d30 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 20 22:36:22 2010 +0000 TargetRegistry: Fix create{AsmInfo,MCDisassembler} to return non-const objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 828189692f5e890eda4399352559001165c09195 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 22:20:40 2010 +0000 pr6652: Use LDM to restore PC to the return address on ARMv4. Patch by John Tytgat! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99096 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e181a3da6944a8aa535e160b6294251ebca53ef Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 22:13:40 2010 +0000 Re-commit r98683 ("remove redundant writeback flag from ARM address mode 6") with changes to add a separate optional register update argument. Change all the NEON instructions with address register writeback to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12c6215eef8b222c74520d95aa5f435fc5bbe13a Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 21:57:36 2010 +0000 Add instruction variants for VST2, VST3, and VST4 "store-lane" operations with address register writeback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99094 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3334f7dd7f69196c530f9750053838e19cac34b Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 21:45:18 2010 +0000 Add variants of VST2, VST3 and VST4 with address register writeback, and rewrite the existing VST3 and VST4 instructions to use the same classes as the others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 291c8cf1a91cc2162a3a9ab4b57ac28ecb3ff2ff Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 21:15:48 2010 +0000 Add instructions for double-spaced VST3 and VST4 without address register writeback, and refactor the existing double-spaced VST2 instructions. These are only for the disassembler since codegen doesn't use them, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99090 91177308-0d34-0410-b5e6-96231b3b80d8 commit 635f76e12b280b970fc7749336c1fec1649716c2 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 20 21:12:48 2010 +0000 tests: Mangle '-vg' onto the end of the triple when running under valgrind, so we can use the standard XFAIL and XTARGET to conditional tests based on valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99088 91177308-0d34-0410-b5e6-96231b3b80d8 commit 516306f5060541a524beb07f43ad052ce73ba8df Author: Gabor Greif <ggreif@gmail.com> Date: Sat Mar 20 21:00:25 2010 +0000 Add a setCalledFunction member to InvokeInst (like in CallInst) and use this (as well as getCalledValue) to access the callee, instead of {g|s}etOperand(0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99084 91177308-0d34-0410-b5e6-96231b3b80d8 commit c54b0156264a9ab1ca7135529e09cda6a787d664 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 20:54:36 2010 +0000 Add VST1 instructions with address register writeback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99083 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d86d4c98798534fa68b12fd84eeaf3b0e404fa9 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 20:47:18 2010 +0000 Add instruction variants for VLD2, VLD3, and VLD4 "load-lane" operations with address register writeback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99082 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e21f9c82cdaa53eba9645f46662a6ba00ef2fee Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 20:39:53 2010 +0000 Tidy some more comments and whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47249df3d75c9093be93087c58e4d9a7649a2384 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 20:10:51 2010 +0000 Add variants of VLD2, VLD3 and VLD4 with address register writeback, and rewrite the existing VLD3 and VLD4 instructions to use the same classes as the others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99080 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2489f876bba601c28730891b6084d9ac8f54d8ea Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 19:57:03 2010 +0000 Tidy some comments and whitespace for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99078 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8cac730877cdfc233cae0d2da6975c6c06559f02 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 18:35:24 2010 +0000 Rename some instructions for consistency and sanity: use "_UPD" suffix for load/stores with address register writeback, and use "odd" suffix to distinguish instructions to access odd numbered registers (instead of "a" and "b"). No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d6725c211c98a4340f2cbe00eebfd828903baf9 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 18:14:26 2010 +0000 Add instructions for double-spaced VLD3 and VLD4 without address register writeback, and refactor the existing double-spaced VLD2 instructions. These are only for the disassembler since codegen doesn't use them, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99065 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac349b8d7a6fcbb80fb2e60cc4712a6a9089c46f Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 17:59:03 2010 +0000 Add VLD1 instructions with address register writeback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99062 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce634263e1b04ec03e9e24d97a0004c8e58e6e4d Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Mar 20 17:41:18 2010 +0000 PIC16: Simplify code by using a std::set<std::string> instead of a sorted & uniqued std::list of leaked char*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99061 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77b06ab306644426c4c841b396ff553fe36e0f81 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 06:34:02 2010 +0000 Revert the rest of 98679. --- Reverse-merging r98679 into 'lib/Target/ARM/ARMInstrVFP.td': U lib/Target/ARM/ARMInstrVFP.td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8790467552d8fea55c8709b9695a386f6d405ed4 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 20 06:05:13 2010 +0000 Fix a very bad typo. Since the register number was off by one, the ARM load/store optimizer would incorrectly think that registers D26 and D28 were consecutive and would generate a VLDM instruction to load them. The assembler was not convinced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0acee7273ab9224bc309b4ae2b54d31f3eb99ae6 Author: Dan Gohman <gohman@apple.com> Date: Sat Mar 20 03:53:53 2010 +0000 Clear the SCEVExpander's insertion point after making deletions, so that the SCEVExpander doesn't retain a dangling pointer as its insert position. The dangling pointer in this case wasn't ever used to insert new instructions, but it was causing trouble with SCEVExpander's code for automatically advancing its insert position past debug intrinsics. This fixes use-after-free errors that valgrind noticed in test/Transforms/IndVarSimplify/2007-06-06-DeleteDanglesPtr.ll and test/Transforms/IndVarSimplify/exit_value_tests.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99036 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e3287c6f922902bdc67c46f942a42290d5e0636 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Mar 20 03:17:05 2010 +0000 Stupid svn. Add back to the lost sibcall tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99033 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b234d161805fd707dcba156120626f362706ccd Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Mar 20 02:58:15 2010 +0000 If call result is in ST0 and it is not being passed to the caller's caller, then it is not safe to optimize the call into a sibcall since the call result has to be popped off the x87 stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 625f8ac193fb9e1bcebdca4deb770a5283ee75a0 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 20 01:58:40 2010 +0000 Better fix for r98994, MachObjectWriterImpl wasn't intended to be virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99031 91177308-0d34-0410-b5e6-96231b3b80d8 commit aaa58c5b72050ba19fb9e3fa811e63a14c6fca1c Author: Johnny Chen <johnny.chen@apple.com> Date: Sat Mar 20 00:17:00 2010 +0000 Add NLdStFrm Format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 745e4cb80c4e485b29879623c369563008568874 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Mar 19 23:50:27 2010 +0000 Revert r98679. The disassembler will be updated to depend on the existence of IndexModeUpd and then populates the Inst{21}=1 while populating the instructions for disassembly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99013 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cba83a9e74bb859ba5a1c6256e4ea3ce5e2fc52 Author: Eric Christopher <echristo@apple.com> Date: Fri Mar 19 23:04:23 2010 +0000 Revert r99009 temporarily it seems to be breaking the bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e3d0f2762c8bc9334747a0f876540d3dae2a125 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Mar 19 22:51:32 2010 +0000 Revert this change, since it was causing ARM performance regressions. --- Reverse-merging r98889 into '.': U lib/Target/ARM/ARMInstrNEON.td U lib/Target/ARM/ARMISelLowering.h U lib/Target/ARM/ARMInstrInfo.td U lib/Target/ARM/ARMInstrVFP.td U lib/Target/ARM/ARMISelLowering.cpp U lib/Target/ARM/ARMInstrFormats.td git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57fe410320c688809ed90778bbabb430afed2661 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 22:40:56 2010 +0000 Change intrinsic result type for void to store it as an empty list instead of as a single element list with VoidTy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 814cf10a8dadaaf0f92c4bf7d1f5451736176898 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 21:56:21 2010 +0000 make getOperandNum a static function (since it's just used by ApplyTypeConstraint) and make it handle multiple result nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99003 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70e479ff5535f4f361b6359e791ece4954b273eb Author: Dan Gohman <gohman@apple.com> Date: Fri Mar 19 21:51:03 2010 +0000 Fix more places to more thoroughly ignore debug intrinsics. This fixes use-before-def errors in SCEVExpander-produced code in sqlite3 when debug info with optimization is enabled, though the testcases for this are dependent on use-list order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99001 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65fd2d46665cd39aabd94567acd5d916c4514410 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 21:43:36 2010 +0000 remove the patterns that I commented out in r98930, Dan verified that they are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c28ee3f466af3119f7d9063e43c5bb7d19c3b32 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 21:37:09 2010 +0000 major surgery on tblgen: generalize TreePatternNode to maintain a list of types (one for each result of the node) instead of a single type. There are liberal hacks added to emulate the old behavior in various situations, but they can start disolving now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98999 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2140ff71c546d7108239cc86df01fa1edcfead3 Author: John Criswell <criswell@uiuc.edu> Date: Fri Mar 19 21:31:39 2010 +0000 Force configuration of some projects before others. In particular, some projects rely upon llvm-gcc, the LLVM test suite, and poolalloc. This ensures that the aforementioned projects have their object trees created first so that other projects can find their object trees when they themselves are configured. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98998 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e2df0cc245e8e498e036efeab9d6a5ecacfc43a Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Mar 19 21:26:46 2010 +0000 Fix -Wnon-virtual-dtor warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10b320be0d3d5017e624e2944df041e503dfa054 Author: Tanya Lattner <tonic@nondot.org> Date: Fri Mar 19 21:22:13 2010 +0000 Regenerate configure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 907da429985acce392e28d109030e4c92b3e573c Author: Tanya Lattner <tonic@nondot.org> Date: Fri Mar 19 21:19:10 2010 +0000 Bump version number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98989 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99e30587317d62a8aad1e28fad785fba38795c8a Author: Ben Holt <bjh@apple.com> Date: Fri Mar 19 21:12:29 2010 +0000 Test commit (removed extra blank line) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98988 91177308-0d34-0410-b5e6-96231b3b80d8 commit 720a5bbff2aa41244077d1677c2b10da9413855c Author: Devang Patel <dpatel@apple.com> Date: Fri Mar 19 21:06:24 2010 +0000 call void @llvm.dbg.declare(metadata !{i32* null}, metadata !1) is valid, but not useful, when variable identified by !1 is optimized away by the optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98986 91177308-0d34-0410-b5e6-96231b3b80d8 commit 326feffafa30502745545275a4b15be5f54e8a02 Author: John Criswell <criswell@uiuc.edu> Date: Fri Mar 19 21:04:16 2010 +0000 Updated copyright year to 2010. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98985 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd6fb6c3a242bac4dfcb37fbe5d22fc10e6a4468 Author: Kevin Enderby <enderby@apple.com> Date: Fri Mar 19 20:04:42 2010 +0000 Fixed the encoding problems of the crc32 instructions. All had the Operand size override prefix and only the r/m16 forms should have had that. Also for variant one, the AT&T syntax, added suffixes to all forms. Also added the missing 64-bit form for 'CRC32 r64, r/m8'. Plus added test cases for all forms and tweaked one test case to add the needed suffixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98980 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0ed8bcc1cc81de3711ec1ff52cbc81691f8617a Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Mar 19 19:05:41 2010 +0000 Stop trying to merge identical jump tables. This had been inadvertently disabled for several months (since svn r88806) and no one noticed. My fix for pr6543 yesterday reenabled it, but broke the ARM port's code for using TBB/TBH. Rather than adding a target hook to disable merging for Thumb2 only, I'm just taking this out. It is not common to have identical jump tables, the code we used to merge them was O(N^2), and it only helps code size, not performance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98977 91177308-0d34-0410-b5e6-96231b3b80d8 commit f434892c75290dcc4a804026ec001165f3618f52 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 18:07:55 2010 +0000 MC/Mach-O/x86_64: Add relocation support. - This is "extraordinarily" Darwin 'as' compatible. See the litany of FIXMEs littered about for more information. - There are a few cases which seem to clearly be 'as' bugs which I have left unsupported, and there is one cases where we diverge but should fix if it blocks diffing .o files (Darwin 'as' ends up widening a jump unnecessarily). - 403.gcc build, runs, and diffs equivalently to the 'as' built version now (using llvm-mc). However, it builds so slowly that I wouldn't recommend trying it quite yet. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98974 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f87fc6f183e6820cc1729ea58caa7f688c335ba Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 18:07:50 2010 +0000 llvm-mc: Fix target selection for --disassemble to use GetTarget. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 959f67b2c8e8fe9fa9a5332baa9514aacaf0fab9 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 18:07:48 2010 +0000 MC/X86: Rename alternate spellings of {ADD64,CMP64} and mark as "code gen only" so they don't get selected by the asm matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98972 91177308-0d34-0410-b5e6-96231b3b80d8 commit 388f045be5dfb7866d2ebdc602669a65b8d4e794 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 18:07:43 2010 +0000 FileCheck: Don't print "possibly intended match" line if it would match the "scanning from here" one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04d7a877e5b14b102629ffa2d1972c91f52e977c Author: Edwin Török <edwintorok@gmail.com> Date: Fri Mar 19 17:54:21 2010 +0000 Set numThreads to 1 by default when Python is older than 2.5.2. Python 2.4 always hits this bug: http://bugs.python.org/issue1731717 when running check-lit on multi-core systems. Setting numThreads to 1 makes it slower, but at least the results reported are correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98969 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43da5190607e0109bdc211b272c36c09b1a39f8c Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 17:41:26 2010 +0000 make FillWithPossibleTypes take a predicate to filter types so that we don't blow the smallvector as often. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98968 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dc953d022679e787938dc15d3475f94122bf686 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Mar 19 17:39:00 2010 +0000 Renumber LdStExFrm from 28 to 11 and shift the existing format values to make room for it. This is in preparation for another patch which is adding NEON subformats to facilitate disassembly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98967 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9602e094e9392707d07673b7ff2029dec64027e Author: Douglas Gregor <doug.gregor@gmail.com> Date: Fri Mar 19 15:36:58 2010 +0000 Acccess control is lame git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78abea948dacb71fcf37359f84147c40ab431398 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Fri Mar 19 15:31:09 2010 +0000 struct -> class, to silence a Clang warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98961 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5d10a1d5a773d22f0fff792674803ebe0bae1ed Author: Gabor Greif <ggreif@gmail.com> Date: Fri Mar 19 13:50:02 2010 +0000 back out r98957, it broke http://smooshlab.apple.com:8010/builders/clang-x86_64-darwin10-fnt/builds/703 in the nightly test suite git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98958 91177308-0d34-0410-b5e6-96231b3b80d8 commit 662fc495e89b4f70b222c2fdc5f314064940c024 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Mar 19 11:55:53 2010 +0000 Recommit r80858 again (which has been backed out in r80871). This time I did a self-hosted bootstrap on Linux x86-64, with no problems. Let's see how darwin 64-bit self-hosting goes. At the first sign of failure I'll back this out. Maybe the valgrind bots give me a hint of what may be wrong (it at all). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98957 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad365b3ba578cb0e7417665487cd9bf637e6f8bb Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 10:43:26 2010 +0000 MC: Add TargetAsmBackend::createObjectWriter. - MCAssembler is now object-file independent, although we will surely need more work to fully support ELF/COFF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98955 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2ff4f3e3019928c062220a60a221873ed548da7 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 10:43:23 2010 +0000 MCCodeEmitter: Add target independent fixup flag for is-pc-relative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98954 91177308-0d34-0410-b5e6-96231b3b80d8 commit b18332dffb1e69b7b3aa4056a2c2e98b50f7582c Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 10:43:18 2010 +0000 MC: Sink code emitter into MCAssembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a8963a33f6af4c2171c966e0e0c9aa6d5e6eed5 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 10:43:15 2010 +0000 MC/Mach-O: Move to MachObjectWriter.{h,cpp}. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4259f216392be9c59f6eab6252d134dcc194d8ac Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 09:29:03 2010 +0000 MC: Add TargetAsmBackend::isVirtualSection hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98950 91177308-0d34-0410-b5e6-96231b3b80d8 commit e29ab668ff8a427f040adf95a9fdbadea8beb089 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 09:28:59 2010 +0000 MC: Split MCObjectWriter out of MCAssembler.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98949 91177308-0d34-0410-b5e6-96231b3b80d8 commit c650b6dd823a222db68c1f05be9c37c7a3e322c2 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 09:28:55 2010 +0000 MCAssembler: Pull out MCObjectWriter class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98948 91177308-0d34-0410-b5e6-96231b3b80d8 commit adf6ab8e2bc51bd0711376382c0cfaedd7134719 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 09:28:12 2010 +0000 MCAssembler: Move ApplyFixup to the TargetAsmBackend, this is a target specific not object writer specific task. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98cf02dc1201d1995536b8f474062c9b2ea92be5 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 07:09:47 2010 +0000 MC/Mach-O: Lift the fixup evaluation and application up (to the same place), and eliminate MCAsmFixup::FixedValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98944 91177308-0d34-0410-b5e6-96231b3b80d8 commit 306d566fda007a77244331c1ca0833029bd21880 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 07:09:33 2010 +0000 MC/Mach-O: Factor out ExecutePostLayoutBinding, to separate the post-layout changes the object writer may need to make to the assembler from the actual .o writing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98943 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bafbab8d61ea5c6acb8de92a62c57a48c9d4f4d Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 07:09:18 2010 +0000 MC/Mach-O: Lift relocation emission logic a bit higher to separate evaluation / relocation handling from the actual .o writing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98942 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e23f3f8161302c373180c7dd9b1b34a94d6f83d Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 19 07:06:46 2010 +0000 Remove a memory leak from the CBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98941 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81d8026e9fc4d471caf19de802c8e41fa00a285e Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 05:48:53 2010 +0000 fix an MCInstPrinter leak that jyasskin pointed out: createAsmStreamer now takes ownership of the instprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98939 91177308-0d34-0410-b5e6-96231b3b80d8 commit 967557ba4952c438edb4a3c03eadf40010e42c1f Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 05:34:15 2010 +0000 resolve fixme: we now infer the instruction-level 'isvariadic' bit from the pattern if present, and we use it instead of the bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98938 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8affb3a1d037bb538bba56c8a8809d11f2e5ba3e Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 05:33:51 2010 +0000 set SDNPVariadic on nodes throughout the rest of the targets that need them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98937 91177308-0d34-0410-b5e6-96231b3b80d8 commit b46bc6360c96cf4ad263eac1ead138f38fe9eec0 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 19 05:25:28 2010 +0000 Remove a memory leak from ThumbTargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98936 91177308-0d34-0410-b5e6-96231b3b80d8 commit b84b2a6cc5b298705f393edcaed01393cc223305 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 05:07:09 2010 +0000 add a new SDNPVariadic SDNP node flag, and use it in dag isel gen instead of instruction properties. This allows the oh-so-useful behavior of matching a variadic non-root node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98934 91177308-0d34-0410-b5e6-96231b3b80d8 commit e87dcfbda9cabc1336451330807ef386dc37d177 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 04:54:36 2010 +0000 rewrite EnforceSmallerThan to be less bone headed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98933 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5e29e84a1cd13aee850cf23e9a756e0d83113fe Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 04:53:47 2010 +0000 remove some damaged sign extend patterns that can never match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98932 91177308-0d34-0410-b5e6-96231b3b80d8 commit c621978614e5faa520742d397102870a60643f87 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 04:53:21 2010 +0000 disable some illegal blackfin patterns. sext from i32 to i32 can never match. Jakob, please take a look when you get a chance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98931 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc646cf823e173e786c3596db4c584cdc886a81d Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 04:14:21 2010 +0000 comment out a bunch of parallel store patterns that apparently can't match or just have no testcases. Will remove after confirmation from dan that they really are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98930 91177308-0d34-0410-b5e6-96231b3b80d8 commit be5cedfc028b4d46e17d6399b5ebe822c49717ff Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 03:18:23 2010 +0000 Fix -Asserts warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98928 91177308-0d34-0410-b5e6-96231b3b80d8 commit f889d092668836fb9d681ad4f1f656d520659788 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 03:18:20 2010 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98927 91177308-0d34-0410-b5e6-96231b3b80d8 commit df1d35d1ec790ff8f425402fc18ee4a11c3b3e7d Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 03:18:18 2010 +0000 MC/Mach-O: Add isScatteredFixupFullyResolved, which implements the correct algorithm (used on x86_64) for determining whether an evaluated fixup is fully resolved (doesn't need relocation). - Test cases will follow, once we have x86_64 relocation support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98926 91177308-0d34-0410-b5e6-96231b3b80d8 commit be67f754ca1f090bd5d7343e796cc79e6bf928a7 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 03:18:15 2010 +0000 MC/Mach-O/x86_64: Add getAtom[ForAddress]. - These find the defining symbol which identifies the containing atom for a symbol or address. They are currently very slow, but will be eliminated eventually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98925 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4399eb738a0780498ac293b176bb6145c51dfe7 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 03:18:12 2010 +0000 MC/Mach-O: Factor out isScatteredFixupFullyResolvedSimple predicate, and fix some corner cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98924 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9375f390d83055e39b7a7e22d81bba1cebd7c420 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 03:18:09 2010 +0000 MC/Mach-O: Factor out isSymbolLinkerVisible method; "linker visible" is a made up term to refer to non-temporary labels + temporary labels in sections-which-require symbols. For Darwin, it corresponds to symbols which effectively define an atom. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0879d26f302e1244a817e4b0f53f39e16ce94639 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 03:18:05 2010 +0000 Drop KLEE blurb, we don't have anything new. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98922 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf7d7eb55ca2a09bbe797154f2e000b31e2c77c9 Author: Mon P Wang <wangmp@apple.com> Date: Fri Mar 19 01:19:52 2010 +0000 Fixed a widening bug where we were not using the correct size for the load git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98920 91177308-0d34-0410-b5e6-96231b3b80d8 commit 686227a388531328acf5008a37df0ceaa9d3d925 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 19 01:15:03 2010 +0000 X86: Fix encoding for TEST64rr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 891f4fc2ffafc86a47836c01d069decc4bfe4932 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 01:14:27 2010 +0000 eliminate the last use of EEVT::isUnknown git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98918 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a9e88da7961df7f7a816e2f25b26c2f3ff796cc Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 19 01:10:41 2010 +0000 Remove `ignore` from LLVMC/TestWarnings.td. This avoids https://bugs.kde.org/show_bug.cgi?id=231257 and seems not to have been needed in the first place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98bf288aeb9a0cd7e27145dd5ac3cb41eefb4917 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 01:07:44 2010 +0000 Finally change the instruction looking map to be a densemap from record* -> instrinfo instead of std::string -> instrinfo. This speeds up tblgen on cellcpu from 7.28 -> 5.98s with a debug build (20%). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98916 91177308-0d34-0410-b5e6-96231b3b80d8 commit be0bde6aa444b35addf9e8988ec4e97678c64e1a Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 01:00:55 2010 +0000 make inst_begin/inst_end iterate over InstructionsByEnumValue. Use CodeGenTarget::getInstNamespace in one place and fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98915 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cd292ea182cc7e91aad4893c4d9eebffa0ba57f Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 00:50:47 2010 +0000 revert 98912 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98914 91177308-0d34-0410-b5e6-96231b3b80d8 commit f570d419662ebbed6609b94286e5dc4112c1d282 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 00:40:22 2010 +0000 make inst_begin/inst_end iterate over InstructionsByEnumValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98912 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee9eac8fbe7646edee13504272ddd93af8879edb Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Mar 19 00:36:35 2010 +0000 FP16 constfolding git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98911 91177308-0d34-0410-b5e6-96231b3b80d8 commit 569146e8dd295da1fdfc1745c5a9243b362bb447 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 00:34:35 2010 +0000 change Target.getInstructionsByEnumValue to return a reference to a vector that CGT stores instead of synthesizing it on every call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7497231a3d7e8c81062999d7526347696c2b4afd Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 19 00:32:11 2010 +0000 Revert r98892. BSD systems may not have bash installed at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98909 91177308-0d34-0410-b5e6-96231b3b80d8 commit eaf13e218519757ff11cda222e5cf809d81aa631 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 00:23:20 2010 +0000 factor copy and paste code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5523d56b8e9d7572b4779c6b8672a8a71b424572 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 00:18:23 2010 +0000 don't go through getInstructions(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89ffa1a4b1b68e1deff01124ed86be179f83ad67 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 19 00:09:28 2010 +0000 Bugpoint's default memory limit (100MB) was too low for valgrind, so this patch raises the default to 800MB when valgrind's active. 800 was chosen semi-arbitrarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98905 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fd56212fd16b0fb746856a89190ee9269f01d1d Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 00:07:20 2010 +0000 look up instructions by record, not by name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98904 91177308-0d34-0410-b5e6-96231b3b80d8 commit afdea872062df084f0d4fef4b58b05e60cedf180 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 19 00:01:11 2010 +0000 Now that tblgen can handle matching implicit defs of instructions to input patterns, we can fix X86ISD::CMP and X86ISD::BT as taking two inputs (which have to be the same type) and *returning an i32*. This is how the SDNodes get made in the graph, but we weren't able to model it this way due to deficiencies in the pattern language. Now we can change things like this: def UCOM_FpIr80: FpI_<(outs), (ins RFP80:$lhs, RFP80:$rhs), CompareFP, - [(X86cmp RFP80:$lhs, RFP80:$rhs), - (implicit EFLAGS)]>; // CC = ST(0) cmp ST(i) + [(set EFLAGS, (X86cmp RFP80:$lhs, RFP80:$rhs))]>; and fix terrible crimes like this: -def : Pat<(parallel (X86cmp GR8:$src1, 0), (implicit EFLAGS)), +def : Pat<(X86cmp GR8:$src1, 0), (TEST8rr GR8:$src1, GR8:$src1)>; This relies on matching the result of TEST8rr (which is EFLAGS, which is an implicit def) to the result of X86cmp, an i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98903 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b3900c18faaed47b9a15be644d9c4e120b4b3d9 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 18 23:57:57 2010 +0000 Update comment to refer to the right filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98902 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b1b32aece2fab51ed4e63ef4bed5f7b454d65b4 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 23:57:57 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98901 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54985d849b61463ec45d0cc4307a081a4279952d Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 23:57:40 2010 +0000 expand tblgen's support for instructions with implicit defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98900 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95623895aa6751144dea2d42e9e2e25f9c829e53 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 23:15:10 2010 +0000 infer results of a pattern from implicit defs. This allows you to do something like this: def : Pat<(add ...), (FOOINST)>; When fooinst only has a single implicit def (e.g. to R1). This will be handled as if written as (set R1, (FOOINST ...)) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98897 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fa0d25aac955076e26264d59f373a2c49c8ad58 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 18 22:56:02 2010 +0000 Work around a valgrind oddity where it doesn't pass the full path of a script to the #! command by using bash instead of /bin/sh. Bash searches $PATH for its script argument, but dash, which /bin/sh resolves to on some systems, does not. https://bugs.kde.org/show_bug.cgi?id=231257 tracks the valgrind problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98892 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ee453b1166c15f2779a04ebc3d9d5756daa8a08 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Mar 18 22:35:45 2010 +0000 Get rid of target-specific fp <-> int nodes when still I'm here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98889 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3386aa9f4fb1e17937d5e1a9ab9d9244ef7794f Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Mar 18 22:35:37 2010 +0000 Get rid of target-specific nodes for fp16 <-> fp32 conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98888 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf2c4f5bfa4109c58da90053fa2f55178bcaf27f Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Mar 18 22:35:02 2010 +0000 Refactor Reg-Reg copy emission routine for ARM. This makes cross-regclass copies weirdness more straightforward. Also, add GPR <-> SPR copy support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98887 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44b33e4e97ae3b982952a751442d6c510dc1175e Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 18 21:58:33 2010 +0000 Couple of changes that Dan mentioned for llvm.stackprotector fast-isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98881 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71afbbbb2d969958e2750ee4f52467c1384a4d28 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 18 21:53:54 2010 +0000 X86MCCodeEmitter: Fix two minor issues with reloc_riprel_4byte_movq_load, we were missing it on some movq instructions and were not including the appropriate PCrel bias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98880 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd1309822617d32ed3b79846e774713466f79717 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 21:42:03 2010 +0000 capture implicit uses and defs in CodeGenInstruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98879 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12e548cdb175ef2ab035b5de50c17efeab2368f5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 21:15:05 2010 +0000 simplify this code, the # of sets in the pattern for an instruction shouldn't change this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98872 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ee2ed468a0b61e036b039040720834c645ce7bb Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 21:07:51 2010 +0000 disallow concatenation of two dags with different operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98871 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ddba157f9143fa1b600a5e145c828c53e09519b Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 21:07:39 2010 +0000 rewrite this to not artificially force concat the ins/outs list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98870 91177308-0d34-0410-b5e6-96231b3b80d8 commit a127e0085be57cf2bb973bf8f7c311d809a7b42b Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 21:06:54 2010 +0000 fix some buggy ops concatentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9287c94753e3a4af405507cbc8c4296a93c282f9 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 20:56:35 2010 +0000 eliminate support for "ops" in the input/output list of an instruction. Instructions must use 'ins' and 'outs' now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98868 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32734ac92e16df86ff73ecae09b06eb3026f7566 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 20:55:31 2010 +0000 use ins/outs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98867 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3830a67ccd5781092c33016d5596b0dfeeb7974c Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 20:55:18 2010 +0000 use ins/outs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98866 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ced79f95ba0c296d0e6e7ea2c80686f5b4f9708 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 20:50:52 2010 +0000 remove some code that was working around old sparc v9 backend bugs. Add checking that the input/output operand list in spelled right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98865 91177308-0d34-0410-b5e6-96231b3b80d8 commit 913b2878a4199ac3d641ecfeb4c8c38a56ca4272 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 20:50:06 2010 +0000 outs come before ins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98864 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9958a558e1f8c4b46eb158303b7f9c31322d668c Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 18 20:27:26 2010 +0000 Make fast-isel understand llvm.stackprotector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98862 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0770f3526dbf998ba4989888e5c583c91ee0a51 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 18 20:18:39 2010 +0000 Refactor NEON ld/st instructions to hardcode class arguments that are constants. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98860 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4a4f79cc13aed810e172ac927e6a000d8f71679 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 18 20:06:05 2010 +0000 lit: Tweak example tests config. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e7e99f9ac826571024d8b5ddb69117693602015 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 18 20:06:02 2010 +0000 MC/X86/AsmMatcher: Use the new instruction cleanup routine to implement a temporary workaround for matching inc/dec on x86_64 to the correct instruction. - This hack will eventually be replaced with a robust mechanism for handling matching instructions based on the available target features. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 247b8af2280b72075bb617477f379128d2d3465f Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 18 20:05:56 2010 +0000 MC/AsmMatcher: Add support for target specific "instruction cleanup" functions, to allow custom post-processing of matched instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 165b0d7bca3a5ce457bee66017a144c6d74517ec Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 20:04:36 2010 +0000 fix an x86-64 encoding bug Daniel found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98855 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d68c8ff9afbd728f794fd32864d43df64d6b85f Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 19:37:35 2010 +0000 offsetof always has type size_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98854 91177308-0d34-0410-b5e6-96231b3b80d8 commit b970654407c9b45487255911a4570541e31c7f92 Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 19:34:33 2010 +0000 Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98853 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7336cd6a13751549a399008e58bc9636cdd90de Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Mar 18 19:34:06 2010 +0000 Fix a name clash that was breaking MSVC builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98852 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5d8599c056ec98808620dbf21d3ee2930e1f8aa Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 19:01:12 2010 +0000 Explicitly cast std::min's arguments to avoid type mismatches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d15b61c211dd35ddc73077780cfc361a1731603 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Mar 18 18:59:08 2010 +0000 another one git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98850 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2b0a86143d6359e90084b5ee31b8e19c09a2d6b Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 18:49:47 2010 +0000 Define placement new wrappers for BumpPtrAllocator and RecyclingAllocator to allow client code to be simpler, and simplify several clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98847 91177308-0d34-0410-b5e6-96231b3b80d8 commit a73a9b4225b6c265e554b1a4408e5cf296928b29 Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 18:47:50 2010 +0000 Make this test more lenient; with SmallVector now using actually aligned storage, the capacity may be more than what is explicitly requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98846 91177308-0d34-0410-b5e6-96231b3b80d8 commit a445d2c2dbd59dd1944795a31d280313fe396ddf Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 18 18:42:41 2010 +0000 Fix pr6543: svn r88806 changed MachineJumpTableInfo::getJumpTableIndex() to always create a new jump table. The intention was to avoid merging jump tables in SelectionDAGBuilder, and to wait for the branch folding pass to merge tables. Unfortunately, the same getJumpTableIndex() method is also used to merge tables in branch folding, so as a result of this change branch tables are never merged. Worse, the branch folding code is expecting getJumpTableIndex to always return the index of an existing table, but with this change, it never does so. In at least some cases, e.g., pr6543, this creates references to non-existent tables. I've fixed the problem by adding a new createJumpTableIndex function, which will always create a new table, and I've changed getJumpTableIndex to only look at existing tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 270f35d4cd9f95f80671372f687253612cff2a9d Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 18:40:47 2010 +0000 Fix a bug found by inspection; in the __GNUC__ code, the alignment doesn't apply to the type, only to the variable, so subsequent uses of U which expect it to be aligned weren't actually aligned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98843 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbc0a03ae69250ebb97f2f5c3f1d22e7e16eab3d Author: Andrew Lenharth <alenhar2@cs.uiuc.edu> Date: Thu Mar 18 18:18:00 2010 +0000 Nick wants these alphabetized git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98840 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07dc9bf7e011aaf1c39155a26a499b10a1c68638 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 18:10:56 2010 +0000 add a special relocation type for movq loads for object files that produce special relocation types where the linker changes movq's into lea's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98839 91177308-0d34-0410-b5e6-96231b3b80d8 commit c82cba3a78d663a8fe4659cffad23f92e5b71091 Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 18:07:13 2010 +0000 Add explicit braces to avoid ambiguous ‘else’. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98838 91177308-0d34-0410-b5e6-96231b3b80d8 commit 741d94196a4ecf75b3b3e8d1fedaae1d5544c2ef Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 17:52:22 2010 +0000 callq is pcrelative git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26a8807b18826727e295d0f1e76151d7736aa937 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 18 16:52:15 2010 +0000 Check if function names start with "llvm." before trying to lookup them up as intrinsics. The intrinsic lookup code assumes that this check has been done and assumes the names are at least 6 characters long. Valgrind complained about this. pr6638. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98831 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef66a9fcc7ce5464fcd6b2960f3af554217d3080 Author: Devang Patel <dpatel@apple.com> Date: Thu Mar 18 16:41:16 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68b10232005439c6ec0b8b6318a3553fffb2105f Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 16:16:38 2010 +0000 Add the ability to "intern" FoldingSetNodeID data into a BumpPtrAllocator-allocated region to allow it to be stored in a more compact form and to avoid the need for a non-trivial destructor call. Use this new mechanism in ScalarEvolution instead of FastFoldingSetNode to avoid leaking memory in the case where a FoldingSetNodeID uses heap storage, and to reduce overall memory usage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98829 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1724e8c0db4da7f5c32543a14b6bf42ebc986ee0 Author: Wesley Peck <peckw@wesleypeck.com> Date: Thu Mar 18 14:31:30 2010 +0000 Adding MicroBlaze as an experimental backend in the release notes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46fc2fa52f2414b40ccfe90d7de6469faf94a621 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Mar 18 13:52:05 2010 +0000 CMake: Add options for using static runtime on MSVC++ build. Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98821 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34aa35b090704230bd77cff4eb854020a0abc579 Author: Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Date: Thu Mar 18 13:16:38 2010 +0000 Add an extra newline to separate PP directives from the contents git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98820 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c1efa1a8207fd99d26672395d02528f0e8062f2 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Mar 18 12:18:36 2010 +0000 Try to fix a valgrind error on 32 bit platforms: use %zu instead of %llu to format a size_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98819 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e1c55abbc3e12834ac3fafb705fa78807bb1c0d Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 18 07:00:12 2010 +0000 Avoid a problem in libc_freeres() seen on a linux-i686 buildbot when running under valgrind: ==19577== Invalid free() / delete / delete[] ==19577== at 0x4C9C866: free (vg_replace_malloc.c:325) ==19577== by 0x5121104: ??? (in /lib/libc-2.10.2.so) ==19577== by 0x4C97412: _vgnU_freeres (vg_preloaded.c:62) ==19577== by 0x5041486: __run_exit_handlers (exit.c:93) ==19577== by 0x50414FE: exit (exit.c:100) ==19577== by 0x5028B5C: (below main) (libc-start.c:254) ==19577== Address 0xffffffff is not stack'd, malloc'd or (recently) free'd ==19577== Apparently this happens under certain versions of glibc, so valgrind provides the --run-libc-freeres=no option to avoid calling freeres(). This may increase the number of "still reachable" blocks valgrind reports, but we don't care about those, while this error breaks the buildbots. There are upstream bugs about this at http://sourceware.org/bugzilla/show_bug.cgi?id=10610 and http://bugs.kde.org/show_bug.cgi?id=167483, but they don't look likely to be fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98813 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e910a9a69f54a514601e3bde077db61c157fd37 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 18 06:55:42 2010 +0000 Turning off post-ra scheduling for x86. It isn't a consistent win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98810 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab344e7e2164ffb4d410d154c96af11ffe939d68 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 18 06:52:15 2010 +0000 add a couple blurbs back git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98809 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79bf3abfc4605fe3686b11b538f3c6bd948f532f Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 18 01:17:13 2010 +0000 Reapply r98755 with a thinko which miscompiled gengtype fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98793 91177308-0d34-0410-b5e6-96231b3b80d8 commit a20ff3ba564348165e1bb71f5396232c6c6c9fa7 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 18 00:59:10 2010 +0000 MCValue: Change to holding MCSymbolRefExprs instead of MCSymbols, we will need this for accessing to symbol modifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7733e1afc78598c2357520d34d281745cdcce681 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 18 00:59:02 2010 +0000 Add MCSymbol::isInSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83f31740bb8ef42dec4323efafbd528d5fe1d985 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 18 00:58:53 2010 +0000 MC/Darwin: Add a new target hook for whether the target uses "reliable" symbol differences, basically whether the assembler should attempt to understand atoms when using scattered symbols. Also, avoid some virtual call overhead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98789 91177308-0d34-0410-b5e6-96231b3b80d8 commit da4fc928e041190584ce440d523c9c41fc7a4792 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Mar 18 00:23:47 2010 +0000 Revert "Change coalescer complexity from N^2 to N logN by changing one letter." This reverts commit 98776. It broke the llvm-gcc boot strap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98784 91177308-0d34-0410-b5e6-96231b3b80d8 commit c95665550e3ea04ff0b1c8aa7a74ae699b4449f0 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 17 23:58:35 2010 +0000 X86 address mode matching code MatchAddressRecursively does some aggressive hack which require doing a RAUW. It may end up deleting some SDNode up stream. It should avoid referencing deleted nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98780 91177308-0d34-0410-b5e6-96231b3b80d8 commit b26231b2009f4450a13ec4352a896da77b977729 Author: Devang Patel <dpatel@apple.com> Date: Wed Mar 17 23:52:37 2010 +0000 Debug info intrinsic does not intefer during tail call optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98778 91177308-0d34-0410-b5e6-96231b3b80d8 commit aae2b26c4b10d7e3381273c7a0513bedeeea2156 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 17 23:26:50 2010 +0000 Revert 98745 with respect to the addition of NEONFrm subformats for disassembly. There is a better way coming up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98777 91177308-0d34-0410-b5e6-96231b3b80d8 commit d573ab389748590c5cc0d32ae7cf745a4a0c82f1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Mar 17 23:21:58 2010 +0000 Change coalescer complexity from N^2 to N logN by changing one letter. Remove ugly hack that aborted the coalescer before using N^2 time. This affects functions with very complicated live intervals for physical registers, i.e. functions with thousands of function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98776 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fd28195eb1f67113a2ddec9ef44f6aa35f9c335 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 17 23:14:23 2010 +0000 Fixed a bug in the IT mask printing where T means the cond bit in the mask matches that of Firstcond[0] and E means otherwise. The Firstcond[0] is also tagged in the Mask to facilitate Asm printing. The disassembler also depends on this arrangement. This is similar to what's described in A2.5.2 ITSTATE. Ran: utils/lit/lit.py test/CodeGen/ARM test/CodeGen/Thumb test/CodeGen/Thumb2 successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98775 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7f89267a78f651caa5245152b165570169d96b8 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 17 23:01:59 2010 +0000 Refines 98745 so that it only contains the patch related to the output of the addressing modes to omit the '+' from the assembler syntax #+/-<imm> or +/-<Rm>. This patch removes the impl of printT2AddrModeImm8s4OffsetOperand() from ARMAsmPrinter.cpp. It is used by disassembler as of now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a2d7de005548b89f0e55c38399abbdcb48b3f31 Author: Sean Callanan <scallanan@apple.com> Date: Wed Mar 17 22:01:36 2010 +0000 Changed install_name for libEnhancedDisassembly.dylib on Mac OS X to match current install location. This has no effect on other platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98773 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a669776961c288a95e08e4c04a125bb70816e90 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Mar 17 21:28:19 2010 +0000 remove arm mode workaround for ARM host git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d300f6199c75179cdd582a13979a3f1773fec2f Author: Jim Grosbach <grosbach@apple.com> Date: Wed Mar 17 21:25:13 2010 +0000 Use llvm-gcc to build ARM when it's available git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1eb72fb1ab219ffc5fef3dd7478987160f106ec2 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 17 21:16:45 2010 +0000 Clean up whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98769 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6558e378ccdbb3d1f4b7782cefafc93c05d377d6 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 17 21:13:43 2010 +0000 Increase format field from 5 to 6 bits. ARMII::FormMask was increased to 0x3f in svn r74988 but the format field was never widened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cbcf0c8054ff34b27b7356451383b65c5a7ceef Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Mar 17 19:55:31 2010 +0000 Initialize Size member to appease valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98763 91177308-0d34-0410-b5e6-96231b3b80d8 commit f950b22ed469bf3fd3725ec059f1c038a4d4a2c8 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 17 19:54:53 2010 +0000 Revert 98755, which may be causing trouble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98762 91177308-0d34-0410-b5e6-96231b3b80d8 commit b96046d0d525cd3565af2de9a93b56a141dac43c Author: Gabor Greif <ggreif@gmail.com> Date: Wed Mar 17 19:27:31 2010 +0000 feedback from Nick git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98761 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7460a402228edbb773380f0fd2257c00a48a74d3 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 17 18:51:01 2010 +0000 Change SCEVNAryExpr's operand array from a SmallVector to a plain pointer and length, and allocate the arrays in ScalarEvolution's BumpPtrAllocator, so that they get released when their owning SCEV gets released. SCEVs are immutable, so they don't need to worry about operand array resizing. This fixes a memory leak reported in PR6637. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98755 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9061e86fd2c8451802d821a96fea559e2f6e14d9 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 17 18:43:25 2010 +0000 Remove an unnecessary (and misspelled) typedef. Tweak whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98753 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22d5ca506e1feb1d7f1043164f4dd61462b233dd Author: Andrew Lenharth <alenhar2@cs.uiuc.edu> Date: Wed Mar 17 18:33:00 2010 +0000 missing include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98752 91177308-0d34-0410-b5e6-96231b3b80d8 commit c616c7c29f7c3c382b9cf59d5b6606477150f641 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 17 18:32:39 2010 +0000 98745 contains something unrelated to the patch. Remove it from ARMAddressingModes.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98751 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8d212294c8d4892b6725a70b4bea48ce09e2157 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 17 18:15:52 2010 +0000 notes from evan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78500c2059e8425a27fdfc8992e8d7f10b7dd140 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 17 17:52:21 2010 +0000 Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm instructions to help disassembly. We also changed the output of the addressing modes to omit the '+' from the assembler syntax #+/-<imm> or +/-<Rm>. See, for example, A8.6.57/58/60. And modified test cases to not expect '+' in +reg or #+num. For example, ; CHECK: ldr.w r9, [r7, #28] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98745 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee1cb8dd66d9ba4c47649fa7dc8a4a6ecee584b9 Author: Stuart Hastings <stuart@apple.com> Date: Wed Mar 17 17:51:08 2010 +0000 Testcase for r98728. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dffa0caa72775e62537d74201035b53a25425b3 Author: Devang Patel <dpatel@apple.com> Date: Wed Mar 17 17:29:55 2010 +0000 Fix EmitSectionOffset incorrect argument. DwarfDebug is emitting debug info so isEH is always false. This was hiding until now from compilers because of default arguments. This was hiding from dwarf debug info users because for most of the platform isAbsoluteEHSectionOffsets() is same as isAbsoluteDebugSectionOffsets(). But Chris found it while updating dwarf printer to use MC*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98743 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9ef7fc392211bcd3a434db7affd9aeaf81b8210 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 17 17:25:49 2010 +0000 several updates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28c1c2c1bdf252262e57df750f56b1e5e0adbdc7 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Mar 17 17:04:56 2010 +0000 Make lit pay attention to --vg for tcl tests too, which makes it work on LLVM's non-unit tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21bdd10d31bc4aec953f1693ba4d1391eb4d0f54 Author: John Criswell <criswell@uiuc.edu> Date: Wed Mar 17 15:01:50 2010 +0000 Fixed spelling errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98724 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3477009eb2a96b1909cb63f74be4d4dae57a5cf8 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Mar 17 07:08:12 2010 +0000 Fix a false-positive memory leak in code using RemoveFileOnSignal(). Because libstdc++'s std::string class points to the interior of an allocation, valgrind reports strings still alive at program termination as possible leaks. I didn't use a ManagedStatic for this because System can't depend on Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98716 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5815a85392128259350468769042d4970d7d8983 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 17 06:42:25 2010 +0000 combiner-aa too, what's its status? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98715 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fe3341683613a6779d7b4211ec6fe116f499c4e Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 17 06:41:58 2010 +0000 more chris scribble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98714 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00750f70589920d1b46780ef5f712c2507ab5951 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 17 05:41:18 2010 +0000 fix GetOrCreateTemporarySymbol to require a name, clients should use CreateTempSymbol() if they don't care about the name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98712 91177308-0d34-0410-b5e6-96231b3b80d8 commit 526f2b276a4e672753b5fbc6ac560169090150ee Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 17 04:41:49 2010 +0000 add a bunch of random and unformatted notes as I am reading through tons of old commits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49f55c9097d6db58c038ce39e453fabafdfa841e Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 17 04:02:39 2010 +0000 add logo, comment out project info, they need to send updates to get reincluded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 223b574e4c0cff794c8c24ddf86e001915912a9a Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 17 01:45:17 2010 +0000 remove dead variable, patch by Nathan Howell! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95d152e6187143abb6c8eccb82417a0af583c67f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Mar 17 01:18:45 2010 +0000 Fix death tests in -Asserts builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c72fcabbeeaff1a07c395846958a5fb6086b462 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 23:40:32 2010 +0000 Remove a check that can no longer be true, after r84803. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23ec0ffebf30581bf493d3c479c87959adfdb7d1 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 23:01:13 2010 +0000 Revert 98683. It is breaking something in the disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5246b2f8b439383df09ab1358074d9980f8a1045 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 16 21:51:27 2010 +0000 Fix liveintervals handling of dbg_value instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8afc3aa4767286db8a66114a47fd96878819a51a Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 21:44:40 2010 +0000 Remove redundant writeback flag from ARM address mode 6. Also remove the optional register update argument, which is currently unused -- when we add support for that, it can just be a separate operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08d4dfc8126f21a1c78f964ba2077c4b2b03f8ee Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 21:25:55 2010 +0000 reapply r98656 unmodified, which exposed the asmprinter not handling constant unions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98680 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4684345381efcefca6270ee198da6218ca139e31 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 16 21:25:05 2010 +0000 Disambiguate the *_UPD and * variants by specifying the writeback flag as 1. This is for the disassembly work. There are cases where this is not possible, for example, A8.6.53 LDM Encoding T1. In such case, we'll use an adhoc approach to deduce the Opcode programmatically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98679 91177308-0d34-0410-b5e6-96231b3b80d8 commit 194692f167109fa7da44c98b4d9cb047918f8453 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 21:21:35 2010 +0000 add asmprinter suport for unions, fixing Feature/unions.ll to actually be doing something useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98677 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7190a73de30f09be300028f9565f26c8ad46e815 Author: Devang Patel <dpatel@apple.com> Date: Tue Mar 16 21:02:07 2010 +0000 Ignore debug value instructions while analyzing BB for tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98675 91177308-0d34-0410-b5e6-96231b3b80d8 commit b24d3efa05e5bdb1df2cb359ce7919628066f845 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 16 20:52:59 2010 +0000 Revert r98666 too; it's checkin-without-testing day! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98673 91177308-0d34-0410-b5e6-96231b3b80d8 commit 425a686932868c79b4797a1ba8ac021189b32a29 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Mar 16 20:33:15 2010 +0000 str[r]chr returns its pointer argument so we cannot mark it as nocapture. Thanks to Duncan for spotting my mistake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98671 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82d5da84c4643b779c374c27c138de48896c36b7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 20:08:07 2010 +0000 temporarily xfail git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98666 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2711ac4e228e7047caae8db8d72e85586cac3171 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Mar 16 19:36:43 2010 +0000 Mark str[r]chr readonly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a69ebf2ea586857473a28c79be3ff47896701d4 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 16 19:35:34 2010 +0000 Revert r98656, its breaking all over the place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98662 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc66902f3cac02c73838185768a42f9e931dcbef Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 19:15:03 2010 +0000 improve support for uniontype and ConstantUnion, patch by Tim Northover! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98656 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7d36f94cac2d3db15fcdd3678db1d666a4c84cb Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 16 19:08:20 2010 +0000 Add an rdar number to this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00efa17e4a4051147b40654a059f20bf91f99475 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 19:07:05 2010 +0000 work around an MSVC2010 bug, PR6504 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8de4a2ad5088db458f92db2d5e3dc4474ce9b981 Author: Duncan Sands <baldrick@free.fr> Date: Tue Mar 16 18:50:54 2010 +0000 Chris pointed out that producing undef here is wrong in general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97420883bdb4989a742955c72ebc7ae4dfc4642f Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 18:38:09 2010 +0000 Remove redundant writeback flag in ARM addressing mode 5. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98648 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34146c4cb183d30d655d520d9b85dadfe0171945 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 17:46:45 2010 +0000 Remove the writeback flag from ARM's address mode 4. Now that we have separate instructions for ld/st with writeback, the flag is completely redundant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98643 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4ce9a4bbb1302dfb182fc1be3d703e1eb466793 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 17:44:45 2010 +0000 Fix unused variable warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1edfd696d515d29402ad89c001f62f0431e5c3a0 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 16:59:47 2010 +0000 --- Reverse-merging r98637 into '.': U test/CodeGen/ARM/tls2.ll U test/CodeGen/ARM/arm-negative-stride.ll U test/CodeGen/ARM/2009-10-30.ll U test/CodeGen/ARM/globals.ll U test/CodeGen/ARM/str_pre-2.ll U test/CodeGen/ARM/ldrd.ll U test/CodeGen/ARM/2009-10-27-double-align.ll U test/CodeGen/Thumb2/thumb2-strb.ll U test/CodeGen/Thumb2/ldr-str-imm12.ll U test/CodeGen/Thumb2/thumb2-strh.ll U test/CodeGen/Thumb2/thumb2-ldr.ll U test/CodeGen/Thumb2/thumb2-str_pre.ll U test/CodeGen/Thumb2/thumb2-str.ll U test/CodeGen/Thumb2/thumb2-ldrh.ll U utils/TableGen/TableGen.cpp U utils/TableGen/DisassemblerEmitter.cpp D utils/TableGen/RISCDisassemblerEmitter.h D utils/TableGen/RISCDisassemblerEmitter.cpp U Makefile.rules U lib/Target/ARM/ARMInstrNEON.td U lib/Target/ARM/Makefile U lib/Target/ARM/AsmPrinter/ARMInstPrinter.cpp U lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp U lib/Target/ARM/AsmPrinter/ARMInstPrinter.h D lib/Target/ARM/Disassembler U lib/Target/ARM/ARMInstrFormats.td U lib/Target/ARM/ARMAddressingModes.h U lib/Target/ARM/Thumb2ITBlockPass.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fe73e8bcefe45fb8a4fbaf37504538e3c212acc Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 16 16:36:54 2010 +0000 Initial ARM/Thumb disassembler check-in. It consists of a tablgen backend (RISCDisassemblerEmitter) which emits the decoder functions for ARM and Thumb, and the disassembler core which invokes the decoder function and builds up the MCInst based on the decoded Opcode. Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm instructions to help disassembly. We also changed the output of the addressing modes to omit the '+' from the assembler syntax #+/-<imm> or +/-<Rm>. See, for example, A8.6.57/58/60. And modified test cases to not expect '+' in +reg or #+num. For example, ; CHECK: ldr.w r9, [r7, #28] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85f0889c86d795373ae17fdf8e269b6527a78bb7 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 16:19:07 2010 +0000 Stop using the old pre-UAL syntax for LDM/STM instruction suffixes. This does not move entirely to UAL syntax, since the default "increment after" suffix is empty but we still use "IA" for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dac209e62fd6160a7366863096933031dd9683b Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 16 15:53:58 2010 +0000 more BranchInst tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c954d33e7ba9d4936e84ddd002cf35ede10e2f8 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 16 15:53:02 2010 +0000 NNT: Add -nouname option, so machine uniquing can occur across physical machines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98633 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5982adf0fffaf18ff85551e02d11bc6c0f20b025 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 16 15:26:09 2010 +0000 add BranchInst tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98632 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73d6df4b7bee64a5f0efeaded8887adfb742eeed Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 16 12:32:03 2010 +0000 appease valgrind testers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a56662e8326a696948eb0a24ed0862b6a4f00b7 Author: Duncan Sands <baldrick@free.fr> Date: Tue Mar 16 11:36:35 2010 +0000 Check that P is not zero initialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98627 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9c19bed1e7afe131205ae10f311f26d86c34f68 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 16 11:24:53 2010 +0000 add single return tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98625 91177308-0d34-0410-b5e6-96231b3b80d8 commit 019bcaa1de3ec1ec10e8a605ae9373fad2672236 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 16 10:59:48 2010 +0000 fix PR6589 adjusted unittest I have added some doxygen to OptionalOperandTraits, so hopefully there will be no confusion in the future. Incidentally OptionalOperandTraits is not used any more (IIUC), but the obvious client would be BranchInstr, and I plan to rearrange it that way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98624 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6fc731b1f2d9c46f0444de5993ed73349299262 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Mar 16 09:55:46 2010 +0000 begin humbly with a repro of PR6589 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98623 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6218903786365a05256ac2156c55e72c4879b303 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 06:41:47 2010 +0000 add support for bugpointing the integrated assembler. Something like this works for me: bugpoint Output/bisort.llvm.bc -run-llc-ia -safe-run-llc This uses llc with the integrated assembler as the test compiler and llc without it as the safe compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98618 91177308-0d34-0410-b5e6-96231b3b80d8 commit 993d1af5d9e7a23c3184c24cfa3f00eb2e644089 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 06:39:08 2010 +0000 fix the same bug on the x86-64 side of the fence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4435df11b4b82a755a510f70ccf1be5d959221ff Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 06:30:18 2010 +0000 fix the encoding of TAILJMPd. This fixes Benchmarks/Olden/bisort with the integrated assembler! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98615 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f37a2f1b981224d5884d5d1e9ea22a6e7490421 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Mar 16 05:54:54 2010 +0000 Avoid a memory leak in JITDebugRegisterer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ddaa5988fc7b2f255d7c3e838aa9d0a8aac6c9a Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 05:33:29 2010 +0000 Add a testcase for the change in r98586. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26405add4c9d98bfedb2fec61494e7165198675b Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 16 02:01:51 2010 +0000 Use getFirstTerminator(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98604 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2caef3678c4266e1c5b2ce329a5a932b93620a6 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 16 01:54:20 2010 +0000 Forgot testcase for r98599. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98602 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1a3debe441c1ba5b8bcb58313383005de835254 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 16 01:05:35 2010 +0000 When checking if something's killed, don't rely simply on whether it's marked as "used outside of the block". If the block ends in a return, then it won't be used outside of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98599 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a882994f0342f59a988d5b1ebccc79bae0ff99a Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 00:35:11 2010 +0000 don't form a RecordChild or CheckChildType for child #'s over 7, we don't have enums for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98597 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0969e1869f23779f7a7dfdfdad2ea55066fadc7b Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 16 00:31:15 2010 +0000 Wrap a long line and add some parens to be consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98596 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff70afe44b62706b70cfe8a3846a66a7dc044c28 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 16 00:29:39 2010 +0000 Fix the third (and last known) case of code update problems due to LLVM IR changes with addr label weirdness. In the testcase, we generate references to the two bb's when codegen'ing the first function: _test1: ## @test1 leaq Ltmp0(%rip), %rax .. leaq Ltmp1(%rip), %rax Then continue to codegen the second function where the blocks get merged. We're now smart enough to emit both labels, producing this code: _test_fun: ## @test_fun ## BB#0: ## %entry Ltmp1: ## Block address taken Ltmp0: ## BB#1: ## %ret movl $-1, %eax ret Rejoice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98595 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5da78442d09d743e5f088ec10947d213574b0806 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 15 23:51:06 2010 +0000 MC: Allow modifiers in MCSymbolRefExpr, and eliminate X86MCTargetExpr. - Although it would be nice to allow this decoupling, the assembler needs to be able to reason about MCSymbolRefExprs in too many places to make this viable. We can use a target specific encoding of the variant if this becomes an issue. - This patch also extends llvm-mc to support parsing of the modifiers, as opposed to lumping them in with the symbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98592 91177308-0d34-0410-b5e6-96231b3b80d8 commit a97a0212b7fbe93fe617714b4828ff80a7837af8 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 15 23:23:03 2010 +0000 Recognize code for doing vector gather/scatter index calculations with 32-bit indices. Instead of shuffling each element out of the index vector, when all indices are needed, just store the input vector to the stack and load the elements out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98588 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29fabfd8a63bb0fb8d8c987a6e5919c2fcf2fde3 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Mar 15 23:09:18 2010 +0000 Translate "cc" clobber in ARM inline assembly to ARM::CCRRegisterClass. Radar 7459078. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bcc1d95b2f011d1d6a03ae8e4df5f722928bd90 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 15 22:23:03 2010 +0000 Skip debug info intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98584 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e59a5c2e96c3b4e16cfb014ba4f6da0024b6faf Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 15 21:56:50 2010 +0000 MC/Mach-O/x86_64: Temporary labels in cstring sections require symbols (and external relocations, but we don't have x86_64 relocations yet). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98583 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75dc5fd43728e0659dc700ab2464b38abe55a5c7 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 15 21:56:38 2010 +0000 MC/Mach-O: Add MCSectionMachO::getType() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19e805dc5368ece646ba3332466b62aea8ac970a Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 15 21:25:29 2010 +0000 Skip debug info intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98581 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc31bd647b52a86752f7093558b4620da0b42ac5 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Mar 15 21:09:38 2010 +0000 Now that the default for Darwin platforms is to place the LSDA into the TEXT section, remove the target-specific code that performs this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98580 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83eecad981269251d8b1b658b64a3613b8c30b68 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 20:39:00 2010 +0000 Implement support for the case when a reference to a addr-of-bb label is generated, but then the block is deleted. Since the value is undefined, we just emit the label right after the entry label of the function. It might matter that the label is in the same section as the function was afterall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98579 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44941fe100c0f94ad82ee72981618736e46d5b4e Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 20:37:57 2010 +0000 use Mang->getSymbol() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98578 91177308-0d34-0410-b5e6-96231b3b80d8 commit 641e618654ce512da72438f01220bd555015189e Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 20:37:38 2010 +0000 use Mang->getSymbol() more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98577 91177308-0d34-0410-b5e6-96231b3b80d8 commit 464002364a2b2128d43f398d9fc9d7ed16b8b761 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Mon Mar 15 20:32:14 2010 +0000 Extend MemoryBuffer::getFile() to take an optional "stat" structure pointer. If given, the structure will be set with the stat information from the file actually read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10300fb314dd6a9d3f4f4d4df7cad8687c375d22 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 15 19:15:44 2010 +0000 Create SDDbgValue for dbg_value intrinsics and remember its connections with DAG nodes. This is a work in progress. Patch by Dale Johannesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d0f859a36fe020e809db5c9e5daa74270dc836c Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 19:09:43 2010 +0000 Fix the case when a reference to an address taken BB is emitted in one function, then the BB is RAUW'd before the definition is emitted. There are still two cases not being handled, but this should improve us back to the situation before I touched anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98566 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb46db5b9b3ab00675671116dffdd147671807f6 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 15 19:05:46 2010 +0000 In "empty" bb, the return instruction may not be first instruction, if dbg value intrinsics are present in this bb. Use terminator to find return instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98565 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3f3aeab0ec46627bceb30b8e1e43fdefa1e8a1f Author: Bill Wendling <isanbard@gmail.com> Date: Mon Mar 15 19:04:37 2010 +0000 Place the LSDA into the TEXT section for x86 Darwin. If the global it's pointing to is local to the translation unit, we need to place fill the value of that symbol into the non-lazy pointer. This should conclude all Darwin changes for placing the LSDA into the TEXT section. There is some cleanup to do. I.e., there's no longer a special need for target-specific code here. But that can come later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5feacdf31801ca3856a9e7de069077517bd8f358 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 15 18:54:48 2010 +0000 Avoid sibcall optimization if either caller or callee is using sret semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98561 91177308-0d34-0410-b5e6-96231b3b80d8 commit 166c829a384a93c5dcaba8bf282b4b45dc60526e Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 18:42:01 2010 +0000 revert r98550, it isn't necessary or sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98558 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa472ace725e24e82a0382204957be89216ec707 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 15 18:33:46 2010 +0000 Emit dwarf variable info communicated by code generator through DBG_VALUE machine instructions. This is a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98556 91177308-0d34-0410-b5e6-96231b3b80d8 commit b84029ffaf4d4ae7d56e497bf7ad060c57ce5170 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 16:37:42 2010 +0000 don't eliminate address-taken blocks here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98550 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83b730eca99b28febc146059ad5e59871d382146 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 16:15:56 2010 +0000 SIGN_EXTEND from the same type as the dest is valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2aaa1a8024b2bb60304f373342f1b7bb9643cfd3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 16:05:15 2010 +0000 sink the call to VT.getSizeInBits() down into its uses, not all unary nodes necessarily have a simple result type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98547 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06c0838f23d3cb55711119dcfdb893cf2db64314 Author: Duncan Sands <baldrick@free.fr> Date: Mon Mar 15 14:01:44 2010 +0000 Treat copysignl like the other copysign functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98542 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4871580a2431e804473984e4f187d23a419439fd Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Mar 15 06:59:21 2010 +0000 Don't save a temporary string into a StringRef field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98538 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fc0a989aaa2fe6b214d602d679b4913923fd499 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 06:23:52 2010 +0000 fix MCSectionELF to not leak memory, just like I did for MCSymbol. MCSectionMachO is already fine (yay for fixed size arrays?), MCSectionCOFF still leaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98537 91177308-0d34-0410-b5e6-96231b3b80d8 commit 111901052d478ae9d287485108a08a584e7d6917 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 06:15:35 2010 +0000 fix a memory leak yjasskin pointed out: MCSymbol is bump pointer allocated and thus not freed. This is cool except that it contains and std::string so the string data didn't get freed. In any case there is no reason to redundantly store the string data in the MCSymbol anyway, just make the MCSymbol ref the string data in the MCContext StringMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98536 91177308-0d34-0410-b5e6-96231b3b80d8 commit 261a3145fb15ac46ee55cdcb3d309e9f8c3224c3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 06:03:22 2010 +0000 eliminate some #if 0 code I added in r96905, type inference now enforces that input/output named values have hte same type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98535 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1bcd4082aea88582d15a0e2771bb7d19a7dd5cf Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 06:00:16 2010 +0000 Completely rewrite tblgen's type inference mechanism, changing the primary datastructure from being a "std::vector<unsigned char>" to being a new TypeSet class that actually has (gasp) invariants! This changes more things than I remember, but one major innovation here is that it enforces that named input values agree in type with their output values. This also eliminates code that transparently assumes (in some cases) that SDNodeXForm input/output types are the same, because this is wrong in many case. This also eliminates a bug which caused a lot of ambiguous patterns to go undetected, where a register class would sometimes pick the first possible type, causing an ambiguous pattern to get arbitrary results. With all the recent target changes, this causes no functionality change! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98534 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6e03be2d5511d59d9b57286adccc53cd0d2bd12 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 05:55:35 2010 +0000 MachineMove ctor doesn't need to to mutate input, add 'const' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98533 91177308-0d34-0410-b5e6-96231b3b80d8 commit deadfafe5a8e1bf7809b5b93a3b3bfbe0eea1b4b Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 05:53:47 2010 +0000 do some serious surgery on CellSPU to get it back into a world where it uses types consistently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9507c20740611326fce324dc1dde588dccbcee9f Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 05:53:30 2010 +0000 fix a few more ambiguous types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d0e94f8038ad39d6e427906ad739a521a21923c Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 05:35:37 2010 +0000 add some missing types git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98530 91177308-0d34-0410-b5e6-96231b3b80d8 commit c834bfba60ad364399e8d954313cc091d123b4b6 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Mar 15 04:57:55 2010 +0000 Tell Valgrind when we modify already-executed machine code so it knows to re-instrument the code. We depend on the system valgrind.h to avoid adding a new license. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dbb559efbcbd722f00c31b41b0e3b56f517a952 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 04:12:21 2010 +0000 various cleanups from daniel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7185635ac1491a7c8de4afea98f86e4217f4a96b Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 00:52:43 2010 +0000 fix an ambiguous pattern, contrary to expectations, scalar_to_vector doesn't have a type constraint on the scalar because we don't have an 'sAny' type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98527 91177308-0d34-0410-b5e6-96231b3b80d8 commit e46ecf062d025232c691f8cc9741235f7290f3f5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 15 00:00:42 2010 +0000 remove dead method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98526 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3797a65747d854835ea11538a8ce5eb5edba390 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 23:16:45 2010 +0000 don't forget to close a FD on an error condition, found by cppcheck, PR6617. Patch by Ettl Martin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 911a729439f9f209a777523036e55199d93ce458 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 23:03:31 2010 +0000 tidy up and expound more on how half-float works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98524 91177308-0d34-0410-b5e6-96231b3b80d8 commit 011d4b77d80435b6dbdfd48cdade26a936e6ff9c Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 22:44:11 2010 +0000 tidy indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98523 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebc43c18c2a96afdd2305f3f6984c82af304548b Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 22:39:35 2010 +0000 no really, all 64-bit cpu's have cmov support. This should fix the rest of the buildbot failures on non-x86 hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98522 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5701a2c1320ff40e0bf032be6b8233c874cf2782 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 22:31:16 2010 +0000 filecheckize a test and mark these wiht a cpu so it passes on hosts without cmovs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98521 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee7091a75549e5e51e77d44620aaad44aea6a7cf Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 22:24:34 2010 +0000 all 64-bit cpus have cmov, this should fix CodeGen/X86/cmov.ll (at least) on non-x86 builders. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98520 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fcfc73b86a146707a72765ee222b2a0d92cd0eb Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Mar 14 22:00:28 2010 +0000 Remove pointless forward declaration, MSVC got confused by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98519 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce019aa888126346aa66de567fc42cd056918679 Author: Duncan Sands <baldrick@free.fr> Date: Sun Mar 14 21:08:40 2010 +0000 Turn calls to copysignl into an FCOPYSIGN node. Handle FCOPYSIGN nodes with ppc_f128 type by having the type legalizer turn these back into a call to copysignl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98514 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bf83fd1f6ebe247e7736c63d096c8252db53e27 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Mar 14 19:56:39 2010 +0000 Rename SDDbgValue.h to SDNodeDbgValue.h for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c49d02ca771e75c05b6aeb3bae1361f64f81922 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 19:46:02 2010 +0000 fix ShrinkDemandedOps to not leave dead nodes around, fixing PR6607 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0be138306d05e589c18508ac54f1b98181a41292 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 19:43:04 2010 +0000 rewrite ShrinkDemandedOps to be faster and indent less, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98511 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3691c5eb834c2094764c7275b951102fd7e2467a Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Mar 14 19:28:34 2010 +0000 Fix jit encoding bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98510 91177308-0d34-0410-b5e6-96231b3b80d8 commit fabb45122db3db4a1657624cd3d05f838fab52dd Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 19:27:55 2010 +0000 make -view-isel-dags print after the 'ShrinkDemandedOps' pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ee2c157033051d41575f0e69abd2e539cbf60ea Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 18:51:18 2010 +0000 don't have i386-specific tests in CodeGen/Generic, PR6601. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3165e1c5386843fc6aed85d257a00deb4449932e Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 18:44:35 2010 +0000 fix PR6605, X86ISD::CMP always returns i32 (EFLAGS), not the operand type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1797b357337e497e7ec759950ebfd5bdfb048fb5 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:52 2010 +0000 Fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98506 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3b8a10114c5ac033f624b2efd0f167e609b86ac Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:47 2010 +0000 Document fp16 intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98505 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69eebea7552eb30d93b5285f95a9e4fd46e81b2d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:43 2010 +0000 Feature test for half precision FP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98504 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f331689371b5f262c553b948600baceedf93822 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:38 2010 +0000 Add substarget feature for FP16 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98503 91177308-0d34-0410-b5e6-96231b3b80d8 commit c29cca0cf505e58a10225be8549dc08413846b8c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:31 2010 +0000 Add codegen support for FP16 on ARM git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98502 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd6724ba460865c2d083044975f10a0d6a659228 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:24 2010 +0000 Make default expansion for FP16 <-> FP32 nodes into libcalls git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98501 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca161131ad7531f4f88620ce23c37b879d678ee5 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:15 2010 +0000 Add DAG nodes to represent FP16 <-> FP32 intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b9c187f406191f33874dd7cf18995133b977387 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:08 2010 +0000 Cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98499 91177308-0d34-0410-b5e6-96231b3b80d8 commit b64a7040d4dcaf4da311bcb330000392bacf39cf Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:42:04 2010 +0000 The fp16 <-> fp32 intrinsics are pure, mark them so they can be CSE'd, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ca76d7945ee222b18e5b0949d9b5fd52e53fcfb Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Mar 14 18:41:50 2010 +0000 Add intrinsics to represent fp16 <-> fp32 conversions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98497 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6b8880da649ee57c78f0f1db3cf9dbb060411a7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 18:31:44 2010 +0000 add support for pentium class CPUs which do not have cmov, PR4841. Patch by Craig Smith! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28a2c5017aa2169426070a3f0eeef6023d5d68f7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 17:53:23 2010 +0000 fix AsmPrinter::GetBlockAddressSymbol to always return a unique label instead of trying to form one based on the BB name (which causes collisions if the name is empty). This fixes PR6608 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ab56e7c810e61767a2a544e9c813e20c534029a Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 17:10:52 2010 +0000 comment fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98494 91177308-0d34-0410-b5e6-96231b3b80d8 commit b346da98cfad4094c65dff19b65760d68636f45c Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 17:04:18 2010 +0000 shrink 4-byte branches to 1-byte branches when lowering from MachineInstr -> MCInst. This is what the assembler backend wants, it relaxes from smaller to larger things. This fixes rdar://7750815 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98493 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18a47ce27b84b576ea6aae65c414fb065ddbdc9c Author: Bill Wendling <isanbard@gmail.com> Date: Sun Mar 14 10:40:55 2010 +0000 Skip over debug info when trying to merge two return BBs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98491 91177308-0d34-0410-b5e6-96231b3b80d8 commit 774ee05646ae1bc1a757fd37d59ae97d384a6397 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Mar 14 10:40:28 2010 +0000 Make returns more consistent with others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 917724ac2052bf5cd8acee8ae99eb5dd00e3f918 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 08:36:50 2010 +0000 get MMI out of the label uniquing business, just go to MCContext to get unique assembler temporary labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98489 91177308-0d34-0410-b5e6-96231b3b80d8 commit a410ce86e4a391e22040c8f2dce0252ba0ddf809 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 08:28:48 2010 +0000 fix these two get the mcsymbol operand instead of imm operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98487 91177308-0d34-0410-b5e6-96231b3b80d8 commit b17d4f838efd22a2f75723348288ef957b5f337f Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 08:23:30 2010 +0000 add a new CreateTempSymbol method, the use case for CreateTempSymbol vs GetOrCreateTemporarySymbol are completely different. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98486 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3717f1d340f52c42cc8c9529c7b3f4ea15676ec Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 08:18:13 2010 +0000 don't use getDWLabel("label" anymore, always go through MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f138cff6c8e1fb31d386e72cb6e14641082628f Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 08:17:53 2010 +0000 remove now-dead code, all labels use MCSymbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98484 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03d483eba2dc1ea7c65ff0316c915bad543dadcf Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 08:15:55 2010 +0000 change SrcLineInfo to contain a label instead of a label ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dbd62e9eca40cea4834f25587422e54da77dfa2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 08:12:40 2010 +0000 Now that DBG_LABEL is updated, we can finally make MachineMove contain an MCSymbol instead of a label index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98482 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61c61e12cb4093dadfaa1725b1b5cf1d9a790220 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 07:56:48 2010 +0000 change the DBG_LABEL MachineInstr to always be created with an MCSymbol instead of an immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98481 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6acb5eafa09629ef401310c31c181957d8c53d4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 07:55:34 2010 +0000 xfail properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 993a3aae3a0ebe5be63e6458f8ca137799464c03 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 07:36:49 2010 +0000 unbreak the build, grr symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 873571e2aff951dfd40d6243557cac62a30b18cf Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 07:32:48 2010 +0000 xfail these tests temporarily to get teh buildbots back to happy land. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98476 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ad2aa896a3eea8dac4e3472fd95c160e1d306ef Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 07:29:45 2010 +0000 Change this code to allocate temporary labels from mccontext, not from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98475 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04d61bf6f2851d31c11c5d394e7c97e3de896158 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 07:27:07 2010 +0000 switch GC_LABEL to use an MCSymbol operand instead of a label ID operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98474 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f2eff6c0857064c294b075ea1df20b0f300e19f Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 07:02:50 2010 +0000 Fix some EH failures on NNT I introduced in r98461 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98471 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09917f986bdaf271a054776466e3c589665d2485 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 06:50:56 2010 +0000 fix a bug I introduced in r98459, causing some NNT failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98470 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c51266e32a9712e6c481e088345818b7fa4c394 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Mar 14 05:15:39 2010 +0000 Check in tablegen changes to fix disassembler related failures caused by r98465. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09f0b5f2ba57818403a257cf7202be6375921922 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Mar 14 03:48:46 2010 +0000 Do not force indirect tailcall through fixed registers: eax, r11. Add support to allow loads to be folded to tail call instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98465 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00a794d42850e8b4200ca70568a721d5eb14a15a Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Mar 14 03:10:40 2010 +0000 MC: Fix a crash on invalid, attempting to evaluate undefined symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98464 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24237b7f0a0ccf357dd0d35b3cba20a7b33d50fa Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 02:33:54 2010 +0000 change the LabelSDNode to be EHLabelSDNode and make it hold an MCSymbol. Make the EH_LABEL MachineInstr hold its label with an MCSymbol instead of ID. Fix a bug in MMI.cpp which would return labels named "Label4" instead of "label4". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98463 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0cfde7c9488a5f83242d3beb9625ada490f280f Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 02:24:55 2010 +0000 eliminate InvalidateLabel and LabelIDList from MMI and replace them with a counter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98462 91177308-0d34-0410-b5e6-96231b3b80d8 commit 735ab20106ebbf1da80306f4df879bd943230504 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 02:20:58 2010 +0000 use Label->isDefined() instead of isLabelDeleted() now that we consistently use MCSymbol and only call this predicate after they should have been emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98461 91177308-0d34-0410-b5e6-96231b3b80d8 commit a878ca2fbc6b91407ebb229b85787b368a865207 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 01:56:06 2010 +0000 fix some pointless layering violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98460 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f05d6a8b7b2e5f3e03fadb67f45a1b0c9afa93a Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 14 01:41:15 2010 +0000 change EH related stuff (other than EH_LABEL) to use MCSymbol instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress. Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :( One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98459 91177308-0d34-0410-b5e6-96231b3b80d8 commit 030c848f93352229babe3fd861eba6788e6a7f1d Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 22:57:53 2010 +0000 X86_64: Fix encoding for the rest of the 64i32 instructions too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98458 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab00a737d643287486df1203f8b9bff08a7db914 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 22:49:39 2010 +0000 X86: Fix ADD64i32 encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d04ccf3606ee5b39a1300edd6d170f38953675d Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 22:49:35 2010 +0000 MC/X86_64: Symbol support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98456 91177308-0d34-0410-b5e6-96231b3b80d8 commit a47543b05c3274728d3c7a6777f7b8823b4e63c9 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 22:10:17 2010 +0000 MC/Mach-O: Initial x86_64 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22910288976ee9520e94a24474f743d3b0cbb98b Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 22:10:11 2010 +0000 macho-dump: Basic Mach 64 support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dad1d9ce87c3004a94ddcaada394ff0c49f56ba Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 21:04:28 2010 +0000 eliminate the now-unneeded context argument of MBB::getSymbol() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98451 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7ee2650d5cfe77aeda2f997af20738abf1b618f Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 20:55:24 2010 +0000 rearrange MCContext ownership. Before LLVMTargetMachine created it and passing off ownership to AsmPrinter. Now MachineModuleInfo creates it and owns it by value. This allows us to use MCSymbols more consistently throughout the rest of the code generator, and simplifies a bit of code. This also allows MachineFunction to keep an MCContext reference handy, and cleans up the TargetRegistry interfaces for AsmPrinters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e03bc78be918a22fa1e61f83377becf7226c21b Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 13 20:45:41 2010 +0000 Make lit pay attention to --vg for unittests too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6dd22e9c0e8ba4e34a4a21574d66c03c004831bb Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 13 20:09:55 2010 +0000 Allow types that have been forwarded to to be freed. Tested: make check-lit && valgrind --dsymutil=yes --leak-check=full unittests/ExecutionEngine/JIT/Debug/JITTests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98447 91177308-0d34-0410-b5e6-96231b3b80d8 commit 237d4a2b89b6c803a45a9be1736cd9302d096dd4 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Mar 13 19:58:26 2010 +0000 Teach this test not to leak. Also, clean up all the cast<BinaryOperator> cruft. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98446 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d41f02e85eee3a25ed2963deec4bd7e7f550a05 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 19:31:47 2010 +0000 llvm-mc: Delete output files on error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80bee7740aaeddaea90f553d29359b9e78233d59 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 19:31:44 2010 +0000 MC/X86_64: Fix matching of leaq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98444 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09070b17859c49edf1fb3eed8bef7c3dd9fe4f01 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 19:31:38 2010 +0000 MC/X86_64: Fix matching of callq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98443 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97463fd0f82b3877841221ae89d5a02ef23f740d Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 19:25:13 2010 +0000 add a hack to allow parsing negative minint. rdar://7751341 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98442 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12e0718b692297828252b3a3ecb60b827167b892 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 08:16:25 2010 +0000 add builder support for mcsymbol operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1be7be6c1f71f2d658ffb92c0deb943111a0975e Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 08:14:18 2010 +0000 add support for MCSymbols as operands to MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98433 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8934a18cfd454710bb648bbd8bd821c592d0610d Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 08:05:25 2010 +0000 simplify EmitFrameMoves to take BaseLabel in as a symbol instead of as a stem+idx pair, simplify the "is a new location" check to use symbol comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07ccdc11230b40e75aee8985a21a84ec1b5c3c94 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 08:04:35 2010 +0000 simplify some overly general code. The stack always grows down on x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98431 91177308-0d34-0410-b5e6-96231b3b80d8 commit c057322d627c8da7d70cdcb12786dfa8bc2cff53 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Mar 13 07:50:22 2010 +0000 Fix another warning. There is a functionality change but I believe it's correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98430 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3887369e727d7f2a2145f1592af921341cf27c0b Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 07:40:56 2010 +0000 factor some labels, simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98429 91177308-0d34-0410-b5e6-96231b3b80d8 commit 378e08686d78e8bd1b87780d050554c91837965d Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Mar 13 07:40:34 2010 +0000 Add some parens and silence a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98428 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9eaa9954d6f6c030d14ba7ee80736a8c6d2a353 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 13 07:34:35 2010 +0000 Attempt to appease the arm-linux buildbot by fixing the JIT encodings for new base register updating load/store-multiple instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98427 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd393b35d54be27aa30c61bd9d7d77bed138b20f Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 07:26:18 2010 +0000 various cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98426 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8ba8d830c3ffc8dc51381c35a5e40d16a511d9c Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 02:38:00 2010 +0000 MC/Mach-O: PCrel relocations weren't using the right base address, they are relative to the fragment address, not its offset. This was masked by the text section normally being at address 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98420 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc4935b045b39acc8446a10365a2b1b44b902bfd Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 02:20:57 2010 +0000 llvm-mc: Support -n, useful for comparing -integrated-as output since the compiler may not lead with the text section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c94b704b1a4af476ef5cb470bf0d77abbc8ed42 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 02:20:38 2010 +0000 llvm-mc: Support -arch as a simplified form of -triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95e151679b1a3a288247377ac0cac95f7aafa83b Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Mar 13 02:20:29 2010 +0000 Fix a typo in ValueTracking that's causing instcombine to delete needed shift instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98416 91177308-0d34-0410-b5e6-96231b3b80d8 commit acc41cb5765998e0b70e34a7b343a7e3a5919c9c Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 02:17:42 2010 +0000 reimplement the string pool used for inlined function entries to not thrash std::strings and MCSymbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98415 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba901e75bb4931207f644a6aba3da26f74f7156c Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 13 02:15:08 2010 +0000 Remove the last memory leak from the VMCore unit tests. Tested: valgrind --leak-check=full unittests/VMCore/Debug/VMCoreTests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98414 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca3d965c531e4b48db11f425eaa4905334a33cbf Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 13 02:10:00 2010 +0000 switch to the text section at the start of the .s file for darwin/x86 targets. This is a temporary hack for the .o file writer that Daniel wants :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98413 91177308-0d34-0410-b5e6-96231b3b80d8 commit f32ef7dea6f49a9f7a2b408f80b9353c7b55cd3b Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 13 01:39:20 2010 +0000 Remove a memory leak from MetadataTest. Tested: valgrind --leak-check=full unittests/VMCore/Debug/VMCoreTests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98412 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26fbe8a8ef8a146bdb279766799263c22b50093c Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 13 01:34:56 2010 +0000 Remove a memory leak from VerifierTest. Tested: valgrind --leak-check=full unittests/VMCore/Debug/VMCoreTests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 700524ca0d62f3c952aaa6834c6a9792076e2dd6 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Mar 13 01:26:15 2010 +0000 Delete MDNodes when LLVMContext is destroyed. Previous attempts: r97918, r97788. Tested: clang debug bootstrap, llvm-gcc bootstrap, `make check-lit` after configuring with --with-llvmgccdir (and this did run the FrontendC* tests this time) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98410 91177308-0d34-0410-b5e6-96231b3b80d8 commit afe9201c199378918d071f8194482e7861f974b2 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 13 01:08:20 2010 +0000 Change ARM ld/st multiple instructions to have variant instructions for writebacks to the address register. This gets rid of the hack that the first register on the list was the magic writeback register operand. There was an implicit constraint that if that operand was not reg0 it had to match the base register operand. The post-RA scheduler's antidependency breaker did not understand that constraint and sometimes changed one without the other. This also fixes Radar 7495976 and should help the verifier work better for ARM code. There are now new ld/st instructions explicit writeback operands and explicit constraints that tie those registers together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92d8c52fff310667317d5e50cbe1b96d68c5cb57 Author: Devang Patel <dpatel@apple.com> Date: Sat Mar 13 01:05:02 2010 +0000 Do not ignore arg_size() impact while counting bb instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a6aec01f5b15eb95fa773f5d771610814ca5e6a Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 00:47:29 2010 +0000 MC/X86: Add temporary hack to match shrl $1,%eax correctly, to support testing other functionality on 403.gcc compiled at -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98405 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd51d92306aef931de7670fed24a84dd7de5c3e6 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Mar 13 00:47:25 2010 +0000 MC/X86: Add an XFAIL test where we aren't matching the correct instruction because we don't understand how the specific instruction is doing sign extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98404 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebebac801e8e572980ba312719f08162f2b5a1c5 Author: Devang Patel <dpatel@apple.com> Date: Sat Mar 13 00:45:31 2010 +0000 Remove extra parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98403 91177308-0d34-0410-b5e6-96231b3b80d8 commit 509f31997d4c0ec53964a112081b37bab83c7585 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Mar 13 00:43:32 2010 +0000 Combine the code to build VLDM and VSTM instructions, since they are mostly the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79fd53af11db038c31d5edd1b0a62901a2d8bf19 Author: Devang Patel <dpatel@apple.com> Date: Sat Mar 13 00:10:20 2010 +0000 Do not overestimate code size reduction in presense of debug info. Use CodeMetrics.analyzeBasicBlock() to estimate BB size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 577ac8bb81353e25a56c984194c89303da041ea3 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Mar 12 22:50:09 2010 +0000 Tidy up. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98398 91177308-0d34-0410-b5e6-96231b3b80d8 commit 088f1a0fa029ed4bb801318f857b9f8beded95c1 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 12 22:07:14 2010 +0000 MC/Mach-O: Implement initial support for relaxation. - The implementation is currently very brain dead and inefficient, but I have a clear plan on how to fix it. - The good news is, it works and correctly assembles 403.gcc (when built with Clang, at '-Os', '-Os -g', and '-O3'). Even better, at '-Os' and '-Os -g', the resulting binary is exactly equivalent to that when built with the system assembler. So it probably works! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44b100915241f47f69f51406ee60a689e05a8828 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Mar 12 22:00:08 2010 +0000 Remove obsolete comments. VLDM is implemented in ARMInstrVFP.td. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98395 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f7e94e98783f02e8dc921dae23addbc533ea244 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 12 21:42:14 2010 +0000 Fix LLVM build when the user specifies CPPFLAGS on the make command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98394 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4960fb76e4951daf58faa5d46b84700604f9efe2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 21:30:49 2010 +0000 remove gone method, grr symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98392 91177308-0d34-0410-b5e6-96231b3b80d8 commit c653490c6f6aff4d267011bd3734ebe66cc4ec4f Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 21:21:19 2010 +0000 remove special case code that isn't needed anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98391 91177308-0d34-0410-b5e6-96231b3b80d8 commit b410c4fe76ec084c0a67f8be34ea933784dbd3ca Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 21:19:23 2010 +0000 inline GetGlobalValueSymbol into the rest its callers and remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98390 91177308-0d34-0410-b5e6-96231b3b80d8 commit 576568e7a5231ed17df59fe03ee6e47a27ed0357 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 21:09:07 2010 +0000 inline the now-trivial implementation of GetGlobalValueSymbol into some of its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98388 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46c145d2aee5487b992cb32eca2ce40448927dcd Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 21:06:41 2010 +0000 eliminate the X86 version of GetGlobalValueSymbol, allowing it to be non-virtual and soon disappear. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98387 91177308-0d34-0410-b5e6-96231b3b80d8 commit d21ca05711c5a11a370d0063c5f9ab1490e97cb7 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 21:04:31 2010 +0000 prune #includes, this file should be removed pending hte cygwin stub issue being resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98386 91177308-0d34-0410-b5e6-96231b3b80d8 commit 279aaf6c46b028f18025d679d9c6fde066a40bb2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 21:03:47 2010 +0000 move fastcall/stdcall mangling up into Mangler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98384 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86c68a875b53c8faa1bd93509b5bc3ef7b94f3b4 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 12 21:00:49 2010 +0000 MC: Factor out MCAssembler::EvaluateFixup, and simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98381 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2eab51ee0ff151b8c16aa348575e36f8f1f7b12 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 12 21:00:45 2010 +0000 MC: Constify MCAsmLayout argument to MCExpr::EvaluteAs... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98380 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb1ce22751fb48e9a4eea3b77eab093dc0a7ed2f Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Mar 12 21:00:38 2010 +0000 MC: Add MCAssembler::addFixup, which enforces that fixups are added in order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98379 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2c3d2cbdeacd56a7c94cdfec56e726a23741f80 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 20:47:28 2010 +0000 give Mangler access to TargetData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c44a8a2b81e3767199599506506eafc2250d8c7 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 20:43:52 2010 +0000 make DecorateCygMingName a static method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98377 91177308-0d34-0410-b5e6-96231b3b80d8 commit 136399b5d998d1438741cb90b6e5b1fbd6f7c863 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Mar 12 20:41:29 2010 +0000 Add a virtual destructor and give vtable a home. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98376 91177308-0d34-0410-b5e6-96231b3b80d8 commit d91cd68722297486b69e8ebcee710a8937b1c0aa Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 19:48:03 2010 +0000 minor tidying, only do work if a function is actually X86_StdCall or X86_FastCall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98374 91177308-0d34-0410-b5e6-96231b3b80d8 commit 838baa853d1a785be1a1ab4ae1f423cdece1f221 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 19:42:40 2010 +0000 eliminate the string form of DecorateCygMingName git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98373 91177308-0d34-0410-b5e6-96231b3b80d8 commit 208064f89bec6e69f1d11d9e9439038f6f952cd6 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 19:31:03 2010 +0000 remove the FnArgWords cache to make way for future changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2591b16cc14b6a5cb3ca1d72cfdc21d62d466363 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Mar 12 19:20:40 2010 +0000 Add a beta-test for placing the LSDA into the TEXT section on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 486d9404a0ae9255fa6f6acdfa68b178a7631526 Author: Devang Patel <dpatel@apple.com> Date: Fri Mar 12 19:18:30 2010 +0000 Fix llc crash on invalid input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65a3a80d2e44ff0a231cd197450a4026718dfc81 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 19:14:18 2010 +0000 Remove some dead code. This method only gets called on definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fd506d04200bb7d6bdff0e89d7f54ae86c9eb31 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 19:04:14 2010 +0000 use Mang->getSymbol instead of duplicating the logic, reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98367 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ef0319b0f6ee4d85dae24699895bbac3006919e Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 18:55:20 2010 +0000 finally give Mangler a getSymbol method, which returns an MCSymbol for a global instead of messing around with string buffers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98366 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff3c55cd4c8c8d24cc64321ad9e738c30a24b0af Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 18:49:32 2010 +0000 remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98365 91177308-0d34-0410-b5e6-96231b3b80d8 commit da2530860ec32a065d775f1096ca088b4f1089a2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 18:47:50 2010 +0000 simplify code to use OutContext.GetOrCreateTemporarySymbol with no arguments instead of having to come up with a unique name. This also makes the code less fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98364 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfcbe376f4a2865f2cff2df5f58cb1ece7096024 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 18:44:54 2010 +0000 make the mangler take an MCContext instead of an MAI. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98363 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0273c250d24467a11644afe60f9cf98094f692c1 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 18:28:53 2010 +0000 remove MAI argument from createAsmStreamer since it can get it from the context now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98361 91177308-0d34-0410-b5e6-96231b3b80d8 commit c88fa8293a2020537c90037e963913653a0a5fbd Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 18:10:35 2010 +0000 fix a bug emitting .secrel32 that I introduced, PR6587, patch by A.Mazur! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60f36ee48942ce479d391dc11e681d65253ff59d Author: Duncan Sands <baldrick@free.fr> Date: Fri Mar 12 17:55:20 2010 +0000 When constant folding GEP of GEP, do not crash if an index of the inner GEP is not a ConstantInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98359 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a861df7e69f7986f96ed7f72d2d6e080645f1be Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 12 17:45:06 2010 +0000 Free DbgScopes in DwarfDebug::endFunction(). Also increased the const-ness of several fields to make it easier to figure out where bugs might be creeping in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98358 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19e6754320ab62e75129e78320d6096003593133 Author: Duncan Sands <baldrick@free.fr> Date: Fri Mar 12 17:41:34 2010 +0000 Revert turning copysignl into a COPYSIGN node for the moment: ppc calls copysignl with a 128 bit ppc long double, resulting in a node that the type legalizer doesn't know how to expand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98357 91177308-0d34-0410-b5e6-96231b3b80d8 commit a13544bd99d2214cd56dd8f9d8e7b60e8a62d535 Author: Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Date: Fri Mar 12 14:17:24 2010 +0000 Remove superfluous NULL assignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98350 91177308-0d34-0410-b5e6-96231b3b80d8 commit cabc1e61b7ed161b2cd20489b8642f1137c2c170 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Mar 12 13:54:59 2010 +0000 Use StringRef::substr instead of std::string::substr to avoid using a free'd string temporary. This should fix PR6590. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98349 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4b164c7cb4a35741e113012abbaa1dd1388a40d Author: Duncan Sands <baldrick@free.fr> Date: Fri Mar 12 12:13:59 2010 +0000 Now that it's supported, turn copysignl into a COPYSIGN node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98348 91177308-0d34-0410-b5e6-96231b3b80d8 commit f34c882a733bd8fd7f926997f03fcaef78c66d53 Author: Duncan Sands <baldrick@free.fr> Date: Fri Mar 12 11:45:06 2010 +0000 Fix PR6522: implement copysign expansion for x86 long double (it seems that FreeBSD doesn't have copysignl). Done by removing a bunch of assumptions from the code. This may also help with sparc 128 bit floats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98346 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59812870ced7e2a51487b74754aaa4611d1bf0ba Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Mar 12 09:27:41 2010 +0000 Factor checked library call optimization into a common helper class and use it to unify the almost identical code in CodeGenPrepare and InstCombineCalls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98338 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc37b6ec55fab0fe89819e87f6228b0be338cec0 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 07:15:36 2010 +0000 fix PR6577, a bug in sdbuilder lowering select instructions whose true value was not Val#0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fd86658e332ff9a8683b7bc2da556740829d763 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 06:32:12 2010 +0000 update mkpatch for MC, patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98334 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18fa3e654b21fc3e5db52eff9905576414dea67d Author: Bill Wendling <isanbard@gmail.com> Date: Fri Mar 12 02:00:43 2010 +0000 The same situation that effected ARM effects PPC with regards to placing the LSDA into the TEXT section. We need to generate non-lazy pointers to it on Mach-O. However, the object the NLP points to may be local to the translation unit. If so, then the NLP needs to have the value of that object specified instead of "0", which the linker interprets as "external". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74c593da88a18cc9f976678c7650d963ebf4f424 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 12 01:56:43 2010 +0000 make TargetLoweringObjectFile::getExprForDwarfReference just make unnamed temp symbols instead of having to come up with its own names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9879a75871eff9f7297fb3049fa704d879075e64 Author: Devang Patel <dpatel@apple.com> Date: Thu Mar 11 23:44:52 2010 +0000 There is no need to create specification DIE for definitions at DIFile level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98302 91177308-0d34-0410-b5e6-96231b3b80d8 commit c97855f4fbb40dcec8c09f40dce12e31504c7c20 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Mar 11 23:39:44 2010 +0000 MC-ize PPC's asm printing of stubs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98300 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7f3f628c13b53b8f33c646ab94c9865ff87653c Author: Nate Begeman <natebegeman@mac.com> Date: Thu Mar 11 23:21:19 2010 +0000 Whoops this already existed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98297 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9e60fc0047f8d7577994aad6ac6e2bc0373df42 Author: Nate Begeman <natebegeman@mac.com> Date: Thu Mar 11 23:06:07 2010 +0000 Add a handful of additional useful pass manager things to the C API git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98296 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8819847cb4a22f67fd92fac4057a3bbbb245973 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Mar 11 23:04:34 2010 +0000 Extract methods from LocalRewriter::RewriteMBB bringing it down to 666 lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98295 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6314f0cf10f22c7d2fcea2d6e42ffc87f1effa6 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 11 22:56:10 2010 +0000 enhance MCContext::GetOrCreateTemporarySymbol() to create a new symbol with an arbitrary unique name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23f188ddf4b1f16d723183dc1d69cf3baa9dce56 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 11 22:53:35 2010 +0000 change MCContext to always have an MCAsmInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98293 91177308-0d34-0410-b5e6-96231b3b80d8 commit f11fac45579a35d70ce45359fbc27faf2cba3956 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 11 21:55:20 2010 +0000 fix a fixme in TargetLoweringObjectFile::getExprForDwarfReference where we used ot create an MCSymbol for ".". Now emit an assembler temporary label and reference it instead of "." textually. rdar://7739457 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98292 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76cfca0b723d5ca5124fe688725c2e1b1f2d288d Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 11 21:39:57 2010 +0000 Remove getWidenVectorType, which is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98289 91177308-0d34-0410-b5e6-96231b3b80d8 commit feaf79326bc80fc7d1ce24db9adcf05c8398aa2c Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 11 21:38:58 2010 +0000 empty symbols aren't possible, the mcsymbol ctor aborts on them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98288 91177308-0d34-0410-b5e6-96231b3b80d8 commit 593f333bd499f8b666418bf048b05a070e13c8e7 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Mar 11 21:02:50 2010 +0000 Set the (Format)F filed of t2Int_MemBarrierV7 & t2Int_SyncBarrierV7 to ThumbFrm, instead of Pseudo, which helps Thumb decoder to recognize them as Thumb instr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98285 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1bec9885da40edd4da6b222e8abf5177db5c506 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Mar 11 20:45:13 2010 +0000 stpcpy is so similar to strcpy, it doesn't deserve a complete copy of the __strcpy_chk -> strcpy code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98284 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b8b65307b613a1fc54b958f507fdd3254718c35 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Mar 11 19:50:31 2010 +0000 revert r98270. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98281 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8518acd31f737e808bb03fd4c6b72cce81af6564 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 11 19:41:58 2010 +0000 rename getSymbolForDwarf* to getExprForDwarf* since it returns an MCExpr and not an MCSymbol. Change it to take an MCStreamer, which is currently unused. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b208d6bf6ba0dd8cbde98cc734e092c434a5569 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 11 19:38:18 2010 +0000 In case of tail call size of Ins and InVals may not match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98277 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce683b8fe0ad0e28d8586c556f83333188d75265 Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 11 19:24:34 2010 +0000 Lower stpcpy_chk when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98274 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b740b0d4e1a73719399526a99c180fbd309962d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 11 18:49:14 2010 +0000 Bad bad bug. x86 force indirect tail call address into eax when it's meant to force it into a call preserved register instead. Change it to ecx for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cb382d6f93ea13c9338ad47cdefce6d4a99b3aa Author: Richard Osborne <richard@xmos.com> Date: Thu Mar 11 18:38:59 2010 +0000 Remove dead code. (S|U)MUL_LO is now lowered to LMUL or MACC(S|U) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11bbd43f187e449647fe7fcac0a6c15cecb9b767 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 11 18:29:55 2010 +0000 Avoid leaking CompileUnits in DwarfDebug.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98268 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c0653f3e8819c5aeee6b53bd1db422140d77e60 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 18:22:51 2010 +0000 MC/Mach-O: Add MCSymbolData::getAddress() utility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98266 91177308-0d34-0410-b5e6-96231b3b80d8 commit 126c2d80e0915f0607432d8a0c86101de3e6806a Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 11 17:45:38 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98260 91177308-0d34-0410-b5e6-96231b3b80d8 commit db3fbb7eea2ac03dfc5508185dd978df02ece75b Author: Richard Osborne <richard@xmos.com> Date: Thu Mar 11 16:26:35 2010 +0000 Add dag combine to simplify lmul(x, 0, a, b) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98258 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78375ae6de28743042dab9877a5435c471e68644 Author: Richard Osborne <richard@xmos.com> Date: Thu Mar 11 14:58:56 2010 +0000 Switch XCore over to using inline jump table entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75e9b828d28437377ce5cc81d74aa31f30341092 Author: Richard Osborne <richard@xmos.com> Date: Thu Mar 11 14:58:16 2010 +0000 Add a new jump table encoding to indicate jump tables entries are inside the function by the target at the point of use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98255 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cc39094b7d07609dc467f54c4948cadf2783ab6 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 11 08:20:21 2010 +0000 The check for coalescing a virtual register to a physical register, e.g. cl = EXTRACT_SUBREG reg1024, 1, is overly conservative. It should check for overlaps of vr's live interval with the super registers of the physical register (ECX in this case) and let JoinIntervals() handle checking the coalescing feasibility against the physical register (cl in this case). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bbefaf003e20fb54e3b1a4761f1b256afa1188b Author: Ted Kremenek <kremenek@apple.com> Date: Thu Mar 11 07:51:23 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98250 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c88358d93d45709559df6484a3a88c929af4145 Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 11 06:20:22 2010 +0000 Have fast-isel understand llvm.objectsize. Update testcase for slightly different codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98244 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6c43c76150d0cd0c5a3ec4104332ca1a0dc4d42 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 11 06:14:32 2010 +0000 Make clang bootstrap happier on OSX 10.5 by reducing the number of headers included when using global symbols to ask the linker for the addresses of various functions. One of the symbols was actually getting declared by a header included in DynamicLibrary.cpp, which conflicted with the "extern void*" declaration in SearchForAddressOfSpecialSymbol(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98243 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2be1b72e535ec91076e574c179d2b8edb531c186 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 05:53:37 2010 +0000 MC/Mach-O: Implement "absolutizing" semantics of .set, by evaluating the assembly time value of variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98241 91177308-0d34-0410-b5e6-96231b3b80d8 commit d31dd9028de702d6d8465d5adba6564349dc2031 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 05:53:33 2010 +0000 MC/Mach-O: Start passing in the basic MCAsmLayout object. - Also, drop the current location part of AsmLayout, I think I prefer to implement this via explicit symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98240 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63786f5b3a767ca04cd91eef4330f9b42f2d4988 Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 11 02:41:03 2010 +0000 Do some final lowering in CodeGenPrepare of _chk calls similar to that in InstCombineCalls. More call lowering needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 883ed6766f71cb7cf46500c3315d8165ebaa367a Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 02:28:59 2010 +0000 MC: Sketch initial MCAsmLayout class, which encapsulates the current layout of an assembly file. The MCAsmLayout is also available for use by MCExpr::EvaluateAs{Absolute,Relocatable}, to allow target specific hooks and "absolutizing" of symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d750ce5bbbe8f796a979c9469a391b08e765613 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 02:28:52 2010 +0000 Fix (unused) RegisterAsmBackend template, clang++ isn't happy about this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98226 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d0a0e03b2572770b77e880a03cee61c042c0b7a Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 02:28:48 2010 +0000 Remove dead include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0941bad008106b55086d7c14fdd7ab347c0020e3 Author: Dale Johannesen <dalej@apple.com> Date: Thu Mar 11 02:10:24 2010 +0000 Fix debug_value handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98224 91177308-0d34-0410-b5e6-96231b3b80d8 commit b99107ffa6a252605fecb59ffe8bf13f3e797e95 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 01:34:27 2010 +0000 MC: Provide MCAssembler with a TargetAsmBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98222 91177308-0d34-0410-b5e6-96231b3b80d8 commit 939995c6268f3b1615c072115966974d9da74d57 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 01:34:21 2010 +0000 MC: Sketch some TargetAsmBackend hooks we are going to need. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98221 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1acef867e200f2a611c20fa09fd5ecaeee5b480c Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Mar 11 01:34:16 2010 +0000 MC: Provide the target triple to AsmBackend constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98220 91177308-0d34-0410-b5e6-96231b3b80d8 commit a49b2c4f199c43a38c5331ab12362e6147d1f191 Author: Eric Christopher <echristo@apple.com> Date: Thu Mar 11 01:25:07 2010 +0000 Add strncpy libcall creator. Use it when it should be used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98219 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a84885059e31059f314ab2690ee3a1f2892f34a Author: Bill Wendling <isanbard@gmail.com> Date: Thu Mar 11 01:18:13 2010 +0000 When outputing a non-lazy pointer for a stub, we may need to fill in the value for the NLP because the object it's pointing to may be internal to the file. This seems counter-intuitive, but bear with me. When we place the LSDA into the TEXT section, the type info pointers need to be indirect and pc-rel. We accomplish this by using NLPs. However, sometimes the types are local to the file. GCC gets around this by not using a NLP in this case, but a "regular" indirection like this: GCC_except_tbl: .long Lfoo-. __ZTIA: @ This is local ... Lfoo: .long __ZTIA LLVM prefers NLPs on Darwin. In fact, it's more optimal for load performance to use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98218 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e1504bc859269ddffcae95e7e0d2805feff8e13 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Mar 11 01:13:36 2010 +0000 Added Thumb2 LDRD/STRD pre/post variants for disassembly only. Plus fixed the encoding of t2LDRDpci such that P = 1 and W = 0 (offset mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98217 91177308-0d34-0410-b5e6-96231b3b80d8 commit e859c1e822f46b9a6c007d0ed3967b3155678a6e Author: Dale Johannesen <dalej@apple.com> Date: Thu Mar 11 00:52:12 2010 +0000 Make sure HasDebugValue is initialized. This should fix the buildbot running valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98216 91177308-0d34-0410-b5e6-96231b3b80d8 commit 033ec6ec87d7def3112708023414917c5d9fcc82 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 11 00:46:22 2010 +0000 Fix ARM buildbot breakage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98215 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb6ea41aa30a4fe3a890047d3956bad726940a03 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 11 00:22:57 2010 +0000 add support, testcases, and dox for the new GHC calling convention. Patch by David Terei! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a371c95a2275cb0749372bcb6f3a9a34b0d0098 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 11 00:20:49 2010 +0000 Lower small memcpys to load/stores on Thumb2. Radar 7686922. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98210 91177308-0d34-0410-b5e6-96231b3b80d8 commit c79c22674b375d41ff52fd170d16c8520a9ba678 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Mar 11 00:11:33 2010 +0000 VirtRegRewriter spring cleaning. No functional change. Move methods out of line and M-x whitespace-cleanup. Promote common method arguments to member variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98207 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ceaca9acaa305e020c6ede05b075559cc9c2f61 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 11 00:06:19 2010 +0000 Work around a bug in the openbsd assembler on i386, which doesn't support .quad correctly because it is "really really old". PR6528. Yet another reason the mc assembler should take over ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98205 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff65b85d89a13c7849588e180e5370897394212b Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 23:46:44 2010 +0000 fix PR6533 by updating the br(xor) code to remember the case when it looked past a trunc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98203 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63ea0e129c2d7979b5c60820410b3a8122a509e9 Author: Dale Johannesen <dalej@apple.com> Date: Wed Mar 10 23:37:24 2010 +0000 Cosmetic: lengthen names and improve comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98202 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b4c117b4d1350e7cd628629ec3379c6b6a0d59e Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 10 22:38:45 2010 +0000 Fix an obvious typo in an assert. Patch by Sean Callanan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98200 91177308-0d34-0410-b5e6-96231b3b80d8 commit f31b4466946236127a6fd90e759a74ec83656eb4 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 10 22:34:10 2010 +0000 Add a bit along with the MCSymbols stored in the MachineModuleInfo maps that indicates that an MCSymbol is external or not. (It's true if it's external.) This will be used to specify the correct information to add to non-lazy pointers. That will be explained further when this bit is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98199 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1bcf85dbe05c5bfc1777dd4050d02fc7f03f8d8 Author: Dale Johannesen <dalej@apple.com> Date: Wed Mar 10 22:13:47 2010 +0000 Progress towards shepherding debug info through SelectionDAG. No functional effect yet. This is still evolving and should not be viewed as final. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98195 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb4ada4607ce78c91ecc78e5452752a74c97d8ca Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 21:42:42 2010 +0000 move PR6576 here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98194 91177308-0d34-0410-b5e6-96231b3b80d8 commit d72a247c40905c5f63c1b7760ea9706eb9711abc Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 21:27:53 2010 +0000 add DESTDIR support for TOOLALIAS, for PR6557, patch by Matthias Klose! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98193 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba3f872d6016ac09eeea26e75eaec83559c3a5a7 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 10 21:04:53 2010 +0000 Fix another bitwidth calculation to handle vector types; based on a patch by Micah Villmow for PR6572. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98188 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e00e2110507e2927ee9decc93fe83cec8407eae Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 10 20:58:31 2010 +0000 MC/Mach-O: Use the MCAssembler symbol map instead of reconstructing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98187 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21c7d9acb54d4b0ed339d815f650aa206aeea798 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 10 20:58:29 2010 +0000 MC: Move the backend section and symbol data maps to MCAssembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98186 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6bdad5bef07b3e7af9bf2164df46d44f76bad3b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 10 20:58:25 2010 +0000 Remove unneeded declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1aa22b2be5513a54c1c64c054733ff49bf6d6206 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Mar 10 20:01:30 2010 +0000 Make sure the LR gets pushed in functions that use vaargs. This fixes 400.perlbench for the nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98183 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4e1fb5f7aa98677e8a8f6144309bd998d8d8c1a Author: Jim Grosbach <grosbach@apple.com> Date: Wed Mar 10 19:59:47 2010 +0000 comment why we use custom epilogue for t1 functions using vaargs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98182 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99d80f308132342a7e9aed70603151cdc13b6cd0 Author: Dale Johannesen <dalej@apple.com> Date: Wed Mar 10 19:57:56 2010 +0000 Fix another place where DEBUG_VALUE affected codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98181 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82c0a8ec2c85ffe7c19ee4915d9ef3a937502f8c Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 10 19:38:49 2010 +0000 Add a DominatorTree argument to isLCSSA so that it doesn't have to compute a set of reachable blocks for itself each time it is called, which is fairly frequently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98179 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee4b7bd3e77ca9c6cb9389a95b77709d9466577b Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 10 19:31:51 2010 +0000 Constant-fold GEP-of-GEP into a single GEP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98178 91177308-0d34-0410-b5e6-96231b3b80d8 commit b90edeb9ebcdf879aa12a5656006fa41c923a71b Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 10 19:00:54 2010 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98173 91177308-0d34-0410-b5e6-96231b3b80d8 commit a06adda3136a48b7cad4dc80f154cce3cbb899ce Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 10 18:59:38 2010 +0000 Factored out the disassembly printing of CPS option, MSR mask, and Negative Zero operands into their own PrintMethod, in order not to pollute the printOperand() impl with disassembly only Imm modifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98172 91177308-0d34-0410-b5e6-96231b3b80d8 commit e88c5b516ed423b7bb4f5738fce84302a8f0ce9b Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Wed Mar 10 18:41:59 2010 +0000 Fix make check with cmake/lit PR6540: Set the newly introduced variables ENABLE_SHARED and SHLIBPATH_VAR in lit.site.cfg not only in the autoconf build, but also in a cmake one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98171 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60b0225cc769f79c23f7075eb27c6fb4e3a3b4f5 Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 18:14:47 2010 +0000 The backend now makes a reasonable job of targeting lmul / macc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98169 91177308-0d34-0410-b5e6-96231b3b80d8 commit eefa1b07983745b4051c54d96904d3ef88d2e77a Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 18:12:27 2010 +0000 Handle MVT::i64 type in DAG combine for ISD::ADD. Fold 64 bit expression add(add(mul(x,y),a),b) -> lmul(x,y,a,b) if all operands are zero extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98168 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6e5d688c819b1a7dce5b09ee1b9412952860333 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 10 17:56:05 2010 +0000 Remove unneeded includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58d0b3aa00df84fbe85560a40f6078caadbf1198 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Mar 10 17:54:11 2010 +0000 Testcase for pr6552. I changed the code to use "ip" instead of "fp" because the "fp" register name is not valid on Darwin, and the "ip" register name was broken for all ARM targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98166 91177308-0d34-0410-b5e6-96231b3b80d8 commit 930997ec2ca8749806bb6e79338b72ffbd968038 Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 17:16:29 2010 +0000 Fix checking of intermediates having one use in isADDADDMUL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00f900caac55cfe5f59a4698a54b49200f1427c6 Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 17:10:35 2010 +0000 Extract recognition of patterns such as add(add(mul(x,y),a),b) into a seperate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98162 91177308-0d34-0410-b5e6-96231b3b80d8 commit de0dd2a2dd36df38e79fae7c7efb57be2d9fadbf Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 16:27:11 2010 +0000 Fix thinko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98158 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41fe1a22639ffd737a9b322871e07c6443987897 Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 16:19:31 2010 +0000 Fold add(add(mul(x,y),a),b) -> lmul(x,y,a,b) if the intermediate results are unused elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98157 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa7282bef1ab2013e619c9d345118f126f1d637f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Mar 10 16:04:20 2010 +0000 Remove duplicated code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98156 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28a0922dfccfa0c266b84e0dcc9420fe27372340 Author: Dale Johannesen <dalej@apple.com> Date: Wed Mar 10 15:06:26 2010 +0000 Fix a bug in DEBUG_VALUE handling Devang ran into. I'll get this loop right yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98155 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7223072ce580e8cf4ac7ec112ef289344f242cd5 Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 13:27:10 2010 +0000 Prefer LMUL to MACCU as LMUL has no tied operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98153 91177308-0d34-0410-b5e6-96231b3b80d8 commit 527160527b2a6fb8fda93071049ff1a1d2203af8 Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 13:20:07 2010 +0000 Custom lower (S|U)MUL_LOHI -> MACC(S|U) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98152 91177308-0d34-0410-b5e6-96231b3b80d8 commit faefe537577b8c4a0899b35d26164b30ac17fef3 Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 11:42:05 2010 +0000 Fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98151 91177308-0d34-0410-b5e6-96231b3b80d8 commit 528e1b3101c192d70cfc64e68659f31d85d66242 Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 11:41:08 2010 +0000 Lower add (mul a, b), c into MACCU / MACCS nodes which translate directly to the maccu / maccs instructions. We handle this in ExpandADDSUB since after type legalisation it is messy to recognise these operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37b957223047e3138fae234a44933ec51e652a2d Author: Richard Osborne <richard@xmos.com> Date: Wed Mar 10 11:24:03 2010 +0000 Convert test to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98148 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bcb4c982385a1f1102bc2e26907041d9b28451e Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 07:20:42 2010 +0000 move three lowering hooks from MAI to TLOF and make one of them semantic instead of syntactic. This completes MCization of darwin/x86[-64]! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98145 91177308-0d34-0410-b5e6-96231b3b80d8 commit 463f3177d1078c72cb1e382debc9f19f03dd1c91 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 10 07:07:55 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98142 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7020b5baec50a160463cc794dd2a43be911d8bc6 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 10 07:07:45 2010 +0000 Unbreak test on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c13435ebb4bdd842eda4aaf311dbc252a1ba116 Author: Dale Johannesen <dalej@apple.com> Date: Wed Mar 10 05:45:47 2010 +0000 This survived a bootstrap, so let's try 98104 again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c92221f1ab2efd94ef086aef94d748616af4ac3 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 10 03:07:41 2010 +0000 Enable machine cse pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6361da4e345d93cae03e27bddedc8da4146b7260 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 02:48:06 2010 +0000 mcize the rest of EH emission, only one more directive missing for darwin/x86 to be completely mcized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98130 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb05860f3aacda04193c2f90950aa1e3dc95d5c0 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 02:29:31 2010 +0000 add missing filename! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98125 91177308-0d34-0410-b5e6-96231b3b80d8 commit da6ce7e1ea60527eb8c9f28dd9cc1117d848f3ea Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 02:25:11 2010 +0000 set the temporary bit on MCSymbols correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98124 91177308-0d34-0410-b5e6-96231b3b80d8 commit da2a2fce691fa9c71d9d18331c670943734f3fc5 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 10 02:18:48 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98122 91177308-0d34-0410-b5e6-96231b3b80d8 commit 551abca8cd4aae0201716b4b6f2b07bd3f8f8f1e Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 10 02:12:03 2010 +0000 Add a couple more heuristics to neuter machine cse some more. 1. Be careful with cse "cheap" expressions. e.g. constant materialization. Only cse them when the common expression is local or in a direct predecessor. We don't want cse of cheap instruction causing other expressions to be spilled. 2. Watch out for the case where the expression doesn't itself uses a virtual register. e.g. lea of frame object. If the common expression itself is used by copies (common for passing addresses to function calls), don't perform the cse. Since these expressions do not use a register, it creates a live range but doesn't close any, we want to be very careful with increasing register pressure. Note these are heuristics so machine cse doesn't make register allocator unhappy. Once we have proper live range splitting and re-materialization support in place, these should be evaluated again. Now machine cse is almost always a win on llvm nightly tests on x86 and x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90f5e72975cff88293a4d8b3b67c122d4ce1335e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 10 02:10:29 2010 +0000 MC/Mach-O: Resolve a FIXME; these relocation types are no longer semanticaly different. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98120 91177308-0d34-0410-b5e6-96231b3b80d8 commit d36793aedcaea634c2470673538cb3e99f5e132b Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 10 01:29:39 2010 +0000 Clarify the documentation for MachineFunctionPasses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98119 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7886aaaac503c77d684ab0b0cc975ccaf13eb7a9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 01:29:27 2010 +0000 eliminate MCContext::CreateSymbol and CreateTemporarySymbol. Add a new GetOrCreateTemporarySymbol method and a version that takes a twine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98118 91177308-0d34-0410-b5e6-96231b3b80d8 commit acc84241c380a192d8302dced7b81fe249d7f063 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 01:17:49 2010 +0000 inline away a form of IsPCRelative, eliminating the dead IsPCRel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98117 91177308-0d34-0410-b5e6-96231b3b80d8 commit a86ceff62f602502c7c4c2b0e274660f6091a5c3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 01:04:13 2010 +0000 add some fixme's for MCizing. EH still has a few things that need to be MCized, but the last debug info thing are LEB and cygwin specific (which the MC api doesn't support yet) and one specific form of EmitReference which I'll tackle next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98116 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fef7f7e99d528af68463334511ca99217b15a32 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Mar 10 00:58:25 2010 +0000 MC/Mach-O: Use the SECTDIFF relocation type for (A - B + constant) where A is external. - I'm not sure why, but this is what 'as' does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98115 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bc6e0f6dbb2116bbf7a08a1c9dd5dc07074bcc3 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Mar 10 00:13:42 2010 +0000 Clear up the last (famous last words) frame index value reuse issues for Thumb1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98109 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3c70abef729cfd54388ad5c66234543901ab66e Author: Dale Johannesen <dalej@apple.com> Date: Wed Mar 10 00:11:34 2010 +0000 Speculatively revert 98104; could be what's causing crashes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98108 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c03e3f463423f19edad33d97b484b23ce8a8b91 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 10 00:09:21 2010 +0000 mcize uses of PrintRelDirective and eliminate it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98107 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b250030e02178330267ce1f1ce23ea6e6e1aab5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 23:54:52 2010 +0000 inline the bool form of PrintRelDirective away, leaving just the unsigned form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98106 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1610482b2f2cd40b058ddaf974da775fa4921935 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 23:52:58 2010 +0000 eliminate EOL, adding all comments with the OutStreamer.AddComment method. With this, comments should end up on the same lines as the .byte directives (for example) and we now get no output with: $ llc CodeGen/X86/2009-02-12-DebugInfoVLA.ll -o - -filetype=null -asm-verbose woot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98105 91177308-0d34-0410-b5e6-96231b3b80d8 commit 798702f9281fdba793d1f77598277e2125620cc1 Author: Dale Johannesen <dalej@apple.com> Date: Tue Mar 9 23:52:37 2010 +0000 Ever more complicated DEBUG_VALUE fixes for branch folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d9906977b93533f7abaac988d1bca88de192d96 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 9 23:46:50 2010 +0000 Avoid analyzing instructions in blocks not reachable from the entry block. They are lots of trouble, and they don't matter. This fixes PR6559. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98103 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dbeb3df7e0c1c8c3f7937957fee89a0b3a37289 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 23:38:23 2010 +0000 eliminate a bunch of \n's that are being printed to O. Next up is to kill off "EOL". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98102 91177308-0d34-0410-b5e6-96231b3b80d8 commit b936626322fddf934ff255bd53f961efc33ad980 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 23:19:15 2010 +0000 convert the non-"ispcrel" case of EmitReference to MC, significant debug info testcases are now all going through MCStreamer, though they print a lot of extraneous newlines to "O". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98101 91177308-0d34-0410-b5e6-96231b3b80d8 commit a13472345b954f1f48037aae2f795b0d50c191db Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 23:12:18 2010 +0000 make the NullStreamer set the section on a label when emitted so that isDefined() works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d69bdda72964ed90175e11319b7a02d270e2bc4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 9 23:02:17 2010 +0000 Try to keep the cached inliner costs around for a bit longer for big functions. The Caller cost info would be reset everytime a callee was inlined. If the caller has lots of calls and there is some mutual recursion going on, the caller cost info could be calculated many times. This patch reduces inliner runtime from 240s to 0.5s for a function with 20000 small function calls. This is a more conservative version of r98089 that doesn't break the clang test CodeGenCXX/temp-order.cpp. That test relies on rather extreme inlining for constant folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98099 91177308-0d34-0410-b5e6-96231b3b80d8 commit 979e9f224612bc936a82fc686ffdc9d6d7b2d481 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 9 22:50:46 2010 +0000 MC/X86: Rename alternate spellings of ADD{8,16,32} and mark as "code gen only" so they don't get selected by the asm matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98098 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9eb8c5dfab36cdcedb573444534bf7f39dbe8c16 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 9 22:50:40 2010 +0000 MC/X86: Rename alternate spellings of CMP{8,16,32} and mark as "code gen only" so they don't get selected by the asm matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98097 91177308-0d34-0410-b5e6-96231b3b80d8 commit df4d6e3a05aa7094a9e8bcbaeb0ae2af1f0a4e27 Author: Chandler Carruth <chandlerc@gmail.com> Date: Tue Mar 9 22:45:10 2010 +0000 Continue propagating the GoogleTest flags until we can update our version to eliminate this problem. This will hopefully let us make progress on Linux bootstrapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 979d8b8ca30c91cad0eac4ba32edc1b5f319b26d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 9 22:43:37 2010 +0000 Revert r98089, it was breaking a clang test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98094 91177308-0d34-0410-b5e6-96231b3b80d8 commit e919c5df41f857b160b5dd02ab6bdfa9d0add68e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 9 22:17:11 2010 +0000 Try to keep the cached inliner costs around for a bit longer for big functions. The Caller cost info would be reset everytime a callee was inlined. If the caller has lots of calls and there is some mutual recursion going on, the caller cost info could be calculated many times. This patch reduces inliner runtime from 240s to 0.5s for a function with 20000 small function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98089 91177308-0d34-0410-b5e6-96231b3b80d8 commit be23161ae9de1fd16231ce6f003ac69b50dcdcc0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 9 22:17:06 2010 +0000 Permit inlining into huge functions. This heuristic is ancient, and inlining can sometimes help reduce function size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98088 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8654b6bb13928a2296b8426e4a2f323257919db1 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Mar 9 21:45:49 2010 +0000 Change the Value argument to eliminateFrameIndex to a type-tagged value. This is preparatory to having PEI's scavenged frame index value reuse logic properly distinguish types of frame values (e.g., whether the value is stack-pointer relative or frame-pointer relative). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98086 91177308-0d34-0410-b5e6-96231b3b80d8 commit fabe039a28884c4412d117a3826a4a45935038a3 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 9 21:39:34 2010 +0000 MSR (Move to Special Register from ARM core register) requires a mask to specify what fields of the CPSR or SPSR are affected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94f6f26972b4f22105060539670d0e62a3530d45 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 9 21:27:58 2010 +0000 MC/Mach-O: For PCrel relocations, we need to compensate for the PCrel adjustment when determining if we need a scattered relocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98082 91177308-0d34-0410-b5e6-96231b3b80d8 commit 866db6ddd3d9c49cd9a007ec479151df72f73119 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 9 21:27:47 2010 +0000 MC/Mach-O: Also set the PCrel bit in the second half of paired relocation entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98081 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4404ee2b48996b5ad519c4a6fac9a3112f11c35 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 9 21:27:30 2010 +0000 MC/Mach-O: Don't generate relocations for PCrel fixups to local labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98080 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dd77d0c7af0853b8b5ced268256121b5d84adce Author: Dale Johannesen <dalej@apple.com> Date: Tue Mar 9 20:15:42 2010 +0000 The address of an indirect call must be in R12 on Darwin. Make it so. (This patch is in LowerCall_Darwin, which seems to be used by SVR4 code as well; since that doesn't belong here, I haven't worried about this case.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98077 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f22e72e6f363abc22fb8087f7b9f4417fe48dc0 Author: Chandler Carruth <chandlerc@gmail.com> Date: Tue Mar 9 19:24:49 2010 +0000 Consolidate GoogleTest make options and duplicate them to its own makefile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a40e25a7e404b461f4954f7f0aea31b0332dd07 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Mar 9 19:07:28 2010 +0000 scavenged frame index value re-use gets confused when more than one base register is involved for thumb1. Work around this for the moment by only re-using SP-relative offsets. This is temporary 'til the code can distinguish multiple base registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98071 91177308-0d34-0410-b5e6-96231b3b80d8 commit b00a26fee958ed3537f81d4b7c89e1a9afead8d8 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 9 18:31:07 2010 +0000 The ARM EH experiment worked! Place the LSDA into the TEXT section for ARM platforms. This involves making the encoding indirect, pcrel, and sdata4 instead of an absolute pointer. The references to the type infos are then non-lazy pointers. Revision 98019 changed the encoding of non-lazy pointers to add the symbol to the non-lazy pointer definition if it's a local symbol (otherwise, it's external and set to '0' so that the loader can adjust it to the real value). This paved the way for this change to work on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98068 91177308-0d34-0410-b5e6-96231b3b80d8 commit af56ab9536f9c4a2b097983bc1cbacc1175d081c Author: Richard Osborne <richard@xmos.com> Date: Tue Mar 9 16:34:25 2010 +0000 In cases where the carry / borrow unused converted ladd / lsub to an add or a sub. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 576925a21d81713f504d7423130565793ee5b909 Author: Richard Osborne <richard@xmos.com> Date: Tue Mar 9 16:13:57 2010 +0000 Canonicalize ladd constant to RHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7433c2b9591c92f9ee530a316a982ba47c831fb6 Author: Richard Osborne <richard@xmos.com> Date: Tue Mar 9 16:07:47 2010 +0000 Add DAG combine for ladd / lsub. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31d18bd9a179a797b93a1f53078dc7b015ce49fb Author: Duncan Sands <baldrick@free.fr> Date: Tue Mar 9 09:03:21 2010 +0000 Attempt to fix random build failures seen when doing highly parallel builds: the gold plugin fails to link because the lto library is in the middle of being written out by the linker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98054 91177308-0d34-0410-b5e6-96231b3b80d8 commit e34ce839bda9174de210deb21230aec01af4b8f4 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 9 06:38:17 2010 +0000 Allow more cross-rc coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98048 91177308-0d34-0410-b5e6-96231b3b80d8 commit c12254c2ddc2cda280b7c1b5e7c69399285179fd Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 04:54:43 2010 +0000 reapply r98035: Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53bba1fb2d7e86b3123e1bdbfbef2e2d27e1444a Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 04:48:35 2010 +0000 add some extra checks. I'm not sure why, but this does unbreak a failure remaining on mainline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98046 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c0db7be603d8c41197e723a8b3ac36d59d488e8 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 9 04:04:38 2010 +0000 Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98045 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76396173a6e6286acfb3591adf9465765df2d56e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 9 03:56:06 2010 +0000 Don't do illegal cross-class coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98044 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5643b0a9af8fb46a9f1a30c7a5c49c2a8da70a3 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 9 03:21:12 2010 +0000 - Make the machine cse dumb coalescer (as opposed to the more awesome simple coalescer) handle sub-register classes. - Add heuristics to avoid non-profitable cse. Given the current lack of live range splitting, avoid cse when an expression has PHI use and the would be new use is in a BB where the expression wasn't already being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0eb20476e1137527fa8127f4ae50fba8fe39d421 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 9 03:01:40 2010 +0000 Don't try to fold V_SET0 and V_SETALLONES to loads in medium and large code models. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98042 91177308-0d34-0410-b5e6-96231b3b80d8 commit dcfab59a21926d8a12d53ec49596d80ad68c49b0 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 9 02:46:12 2010 +0000 This is part of an LLC-beta test used to test <rdar://problem/6804645>. Please bear with the awful code. It won't last in its current state beyond tonight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98040 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3536d8ddcf90219e87fa87438a0cd86263cd718 Author: Eric Christopher <echristo@apple.com> Date: Tue Mar 9 02:36:31 2010 +0000 Speculatively revert r98035. It appears to have caused a set of buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98039 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca89d0e2363edb83733a68fddc3829247019e5f1 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 9 02:15:05 2010 +0000 Attempt to make this debug output meaningful, both in the case of multibyte opcodes and in the case of multiple scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98036 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3275c1428b2d4b581e3a1ddcb627b52594d95786 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 02:08:02 2010 +0000 Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98035 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82488607ec184b2612bbdbb8122b5755d0f230f8 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 01:58:53 2010 +0000 change DbgScope to keep track of the start/end label as MCSymbol* now that the dependence on ID is removed from MMI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98034 91177308-0d34-0410-b5e6-96231b3b80d8 commit d279d2701266629a83f782309967222d2927f274 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 9 01:53:33 2010 +0000 Make isLCSSA ignore uses in blocks not reachable from the entry block, as LCSSA no longer transforms such uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98033 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b52a73f042ed4b2197a1a14f7b97fec98cb5f86 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 01:52:43 2010 +0000 remove a useless optimization: now that label replacement never happens, the start/end of a scope can never be the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a55b20a43ba28df75a55853d146715bc99c2a7a Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 01:51:43 2010 +0000 strength reduce MMI::MappedLabel to MMI::isLabelDeleted, and add a FIXME about how we are eventually going to zap this lookup table once mc world domination is complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1adce0381ad8b90b290c87646fa1e32b9e5cd94e Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 01:29:59 2010 +0000 inline RemapLabel into its only caller and simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98029 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30af5fb2f6f1513e89366a855c6ef8def2635bb0 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 9 01:12:23 2010 +0000 MC/Mach-O: Tweak .dump() formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98028 91177308-0d34-0410-b5e6-96231b3b80d8 commit b73962a86b6fd123d68d5882a966266c56572508 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Mar 9 01:12:20 2010 +0000 MC/Mach-O: Don't adjust section sizes when aligning zero fill sections, just pad the address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98027 91177308-0d34-0410-b5e6-96231b3b80d8 commit 484bdb6de0a1284ed5d86543a7373fabce4835e1 Author: Dale Johannesen <dalej@apple.com> Date: Tue Mar 9 01:08:11 2010 +0000 Another place where debug info affected codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98026 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4833c0cbe8c88f63e93ce9a9ed9801e37cb01032 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 01:02:30 2010 +0000 mcstreamerize AsmPrinter::printLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98025 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b139709c5c35684a61a7ed00e78f1edc10a407c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 9 00:59:53 2010 +0000 Add inlining threshold to log output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98024 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cbf3995c22e3d85143eda6e5ec99bcd367f5361 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Mar 9 00:59:48 2010 +0000 Disable physical register coalescing when the number of live ranges for the physreg becomes ridiculously high. std::upper_bound may be log(N), but for sufficiently large live intervals, it becomes log(N)*cachemiss = a long long time. This patch improves coalescer time by 4500x for a function with 20000 function calls. The generated code is different, but not significantly worse - the allocator hints are almost as good as physreg coalescing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98023 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59ffad622e4ada009fd8c9871f398d624aaeb187 Author: Devang Patel <dpatel@apple.com> Date: Tue Mar 9 00:44:10 2010 +0000 Start using DIFile. See updated SourceLevelDebugging.html for more information. This patch updates LLVMDebugVersion to 8. Debug info descriptors encoded using LLVMDebugVersion 7 is supported. Corresponding llvmgcc and clang FE commits are required. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8530c21320fb105c470cecca1666e2ab3b50debf Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 9 00:43:34 2010 +0000 Print blank line and clear stubs vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98019 91177308-0d34-0410-b5e6-96231b3b80d8 commit b472e7f003ce4cfec0207856a592233adf640a78 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 9 00:40:17 2010 +0000 MC-ize the stub printing in ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98018 91177308-0d34-0410-b5e6-96231b3b80d8 commit 536235b86b08cc3793dd6c8499ca195115329633 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 00:39:24 2010 +0000 add a EmitSymbolValue convenience method to MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98017 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2fe00b10f675debd2028c27cafddb3ba74ba454 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 00:31:02 2010 +0000 make InlineInfoLabels hold MCSymbol*'s, avoiding recomputation of the labels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98016 91177308-0d34-0410-b5e6-96231b3b80d8 commit e91bb0e5e1f3f8eefb5372d8126c95d688fcf1e8 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 00:26:09 2010 +0000 mc'ize the last use of PrintLabelName and eliminate PrintLabelName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15397c08a7d7548253b4c651744066f5fa035834 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 00:17:58 2010 +0000 eliminate an argument from PrintRelDirective, sinking the one special case into EmitSectionOffset. MCize the non-special case in EmitSectionOffset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 798dffc1c528741938f92dfeb15f341d4f3ae629 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 9 00:07:36 2010 +0000 Print the correct index in the "match failed at index" message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98013 91177308-0d34-0410-b5e6-96231b3b80d8 commit b39e8199fff92f6a1ca32af9b35cfd001c302b37 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 00:00:57 2010 +0000 remove the suffix form of PrintLabelName, which was only used for 'flavor'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98012 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b6b4a9f3e3637f3165cb2372778e8f13e050bef Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 9 00:00:15 2010 +0000 now that the debug and eh emitters use a common .set counter, we can eliminate "flavor". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c35f7473dbd28cdbb19f708d104c844daf192d3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 23:58:37 2010 +0000 move .set generation out of DwarfPrinter into AsmPrinter and MCize it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 375592fad9cdd72a0e737e9840f5dbba2c6a1d3a Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 8 23:49:12 2010 +0000 Don't waste time trying to CSE labels, phis, inline asm. Definitely avoid cse implicit-def for obvious performance reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98009 91177308-0d34-0410-b5e6-96231b3b80d8 commit adee8f6247446883e41627d4b0ad41b1bd1e992f Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 8 23:28:08 2010 +0000 Restrict machine cse to really trivial coalescing. Leave the heavy lifting to a real coalescer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98007 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3712b724eb739e611edb2fce5d3cd8245303c9a7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 23:23:25 2010 +0000 simplify EmitSectionOffset to always use .set if it is available, the only thing this affects is that we produce .set in one case we didn't before, which shouldn't harm anything. Make EmitSectionOffset call EmitDifference instead of duplicating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98005 91177308-0d34-0410-b5e6-96231b3b80d8 commit b34dfbce73d9dbda91db0bf1af85487e8a533339 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 23:18:21 2010 +0000 don't reset defaults. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98004 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10673c610a9283bde513654c1800a69d879c646d Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 23:02:59 2010 +0000 Remove a version of EmitDifference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98002 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4de9d004e33c5ab4e465ef235ed394d4a93635ac Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Mar 8 22:56:15 2010 +0000 Fix a crash compiling 254.gap for Thumb2. The Thumb2 add/sub with 12-bit immediate instructions cannot set the condition codes, so they do not have the extra cc_out operand. We hit an assertion during tail duplication because the instruction being duplicated had more operands that expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98001 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5b3e618125712677e24d0d7308642a2bfaf2263 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 8 22:54:36 2010 +0000 Re-commit 97860 with fix. getMallocAllocatedType may return null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37a2da78c7756cc0e6bc7c49a53fd2ce72ca51ba Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 22:52:49 2010 +0000 eliminate a form of PrintLabelName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97999 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6282eed764c665dd39203d0e99ae0475a1a0d313 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 22:50:36 2010 +0000 remove another form of EmitReference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97998 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c5090fde95548bec19618937e6584c4419399f2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 22:47:57 2010 +0000 eliminate the non-MCSymbol versions of EmitReference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74e377ad4a3382e37703148e7ab50b6f7d55aa0e Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 22:44:40 2010 +0000 mc'ize EmitLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97996 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c6b9d908b46395bdf562b6413c4c4b88c123624 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 22:31:46 2010 +0000 merge DIEObjectLabel and DIEDwarfLabel into DIELabel. Yes, DIE you fiendish labels, die all of you. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7497fff3f4b642d0b77139b798372d06939ace17 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 8 22:27:22 2010 +0000 Introduce DIFile. This will be used to represent header files and source file(s) in debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27702ca45fb5ac8ebbb5ce963890f8247270fc26 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 22:23:36 2010 +0000 elimiante the DWLabel class, using MCSymbol instead. Start switching some stuff over to passing around MCSymbol* instead of stem+ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95b919f1e68169241d511ec44a28b6588e2761aa Author: Kevin Enderby <enderby@apple.com> Date: Mon Mar 8 22:17:26 2010 +0000 Fix the vmxon entry in the X86InstrInfo.td so it has the correct prefix bytes for the encoding and is not the same as vmptrld. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97992 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfca64d14f34d3b57bc6755c9d34d27c76183d2c Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 8 22:03:42 2010 +0000 MC/Macho-O: Align the zerofill section itself to the maximum alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97991 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5f42aac3d5d2f09686d77d292ef9a951f0a7e72 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 8 22:02:50 2010 +0000 Derive DIType from DIScope. This simplifies getContext() where for members the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ad39f9c976594c62b1e1f22ed7fe445985c4102 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 8 21:32:10 2010 +0000 Remove DbgNode checks in constructor. Debug descriptors are intended to be light weight wrappers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97988 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58ab5e7c15a15768209eff6761c714dfbf568ab7 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 8 21:10:42 2010 +0000 MC/Mach-O: Fix address compution for zero fill sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97984 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4a178fa8b8636e03e29f775767a3bcff84c3784 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 8 21:10:39 2010 +0000 MC/Mach-O: Error out instead of crashing on invalid scattered relocation expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97983 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d7511112d0908781bc16935869744d23b6e7e22 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Mar 8 21:10:36 2010 +0000 X86: Fix encoding for TEST{8,16,32}rr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97982 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8e3a9084c610086889e06e754cbd6a384bbf179 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 8 21:05:02 2010 +0000 Add documentation on sibling call optimization. Rename tailcall2.ll test to sibcall.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97980 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a559f9f30b4c006edbe45ddf3754d1b90b152c6 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 8 21:00:27 2010 +0000 isNull() is not used any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7699ba9b22d05488d0e022b4291e1f57b8d4b94a Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 8 20:52:55 2010 +0000 Avoid using DIDescriptor.isNull(). This is a first step towards eliminating checks in Descriptor constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97975 91177308-0d34-0410-b5e6-96231b3b80d8 commit c303e4f41efd62e7ae06da9de184b8b60c8896e4 Author: Andrew Lenharth <alenhar2@cs.uiuc.edu> Date: Mon Mar 8 20:45:52 2010 +0000 Iterator traits and swap. closes PR6548 and PR6549 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97974 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d5ce6b5b24f2d3f5cc05f9193a73322985b140e Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Mon Mar 8 20:07:32 2010 +0000 Don't always run the ocaml kaleidoscope tutorials. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f949b1548342766311eaf3da7bed7fb522a949b Author: John McCall <rjmccall@apple.com> Date: Mon Mar 8 20:02:05 2010 +0000 Revert r97726 and r97728 at ddunbar's request; we want to solve this some other way when it comes to be necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97972 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40cdf7e58d2b200e536d4ff2db775659d819cf79 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Mon Mar 8 19:32:27 2010 +0000 Add OCaml tutorial to the examples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97966 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0838f1f7c62b340d7667ad9ad2fb4dc85eed3767 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Mon Mar 8 19:32:18 2010 +0000 Update the OCaml Kaleidoscope tutorial. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97965 91177308-0d34-0410-b5e6-96231b3b80d8 commit df905d6e81a8893b3fcde434ad51a29a98049af4 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 8 19:20:38 2010 +0000 Revert r97947. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97963 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33d1305defc3ebcbd57e042193b9f46b908768f7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 18:59:49 2010 +0000 disambiguate some types, add a fixme about some inconsistent intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08d10e42ff854b1f74031fc42582843d91542114 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 18:57:56 2010 +0000 fix some more ambiguous patterns, remove another nontemporalstore pattern which is broken (source and address swapped). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97958 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcfbb2bac4b8330a2e2909fc40b3212a079c2b72 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 18:55:15 2010 +0000 Correct immediate sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97957 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0298306461240a74e36d3a73121fae57d0f08363 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 18:52:55 2010 +0000 fix a type compatibility bug. imm is i32 in the input pattern, not i64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97956 91177308-0d34-0410-b5e6-96231b3b80d8 commit 674df3dd474da601030c482d71c7956e15ee2326 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 18:51:21 2010 +0000 fix a bunch of partially ambiguous patterns on ARM. As an example, this: (set DPR:$dst, (fsub (fneg (fmul DPR:$a, DPR:$b)), DPR:$dstin)) is ambiguous because DPR contains both f64 and v2f32. tblgen currently accidentally picks f64 because it's first in the regclass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e2509168d2069f7795bc0c2d8c5e5695b2d8c70 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 18:44:04 2010 +0000 Fix a bunch of ambiguous patterns which tblgen happens to infer types for, due to a bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23c573d22b1c86232763c8a190443909a07909fc Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 18:36:19 2010 +0000 Node arguments to type casts can have names too. This code needs to be majorly refactored, but this spot bugfix allows things like: def vmrghw_shuffle : PatFrag<(ops node:$lhs, node:$rhs), (vector_shuffle (v4i32 node:$lhs), node:$rhs), [{ ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d5db9b55f7dba9ed2f1f9ad3bdb98b32b9b775c Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 18:29:38 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97950 91177308-0d34-0410-b5e6-96231b3b80d8 commit d57377faae39dd0adf1d652abcbfa0c8efb230df Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 8 18:25:48 2010 +0000 Avoid using DIDescriptor.isNull(). This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cba8964b838ef615bec9467703367bc28bcc88a Author: Dale Johannesen <dalej@apple.com> Date: Mon Mar 8 05:39:50 2010 +0000 Add Order to SDDbgValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97939 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ebf2395596a2299fbbc2332554fdc1e985e8803 Author: Dale Johannesen <dalej@apple.com> Date: Mon Mar 8 05:38:13 2010 +0000 Fix dbg value handling in tail merging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97938 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7579f4342e12b45bc8a230680e84dae1c51e1f91 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 8 03:18:28 2010 +0000 remove a non-temporal store pattern which is not tested and could never have matched because the operand list was backwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45f8521ba99fb7fead855cc7af3f173a7d4eca61 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Mon Mar 8 02:58:37 2010 +0000 Revert r97917, which was causing Clang Debug self-host failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97932 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c51a8b928528e8f0b3bac4632c8d79bdad1be04 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 7 19:26:40 2010 +0000 Roll back r97918 again. Just configuring against llvm-gcc wasn't enough to run the FrontendC* tests. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97921 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa049609074bc577eff2aaba0e76b5e01e79fd52 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 7 18:46:57 2010 +0000 Reapply r97788 to free MDNodes when the LLVMContext is destroyed. It bootstraps llvm-gcc this time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97918 91177308-0d34-0410-b5e6-96231b3b80d8 commit 683903d4139e31949ae1bd2fbee40669597109ac Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 7 17:10:13 2010 +0000 Roll r97906 forward again, without double-deleting CompileUnit::IndexTyDie. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 945671d65ee6dcc8784f3d8a9860589f3f7a6f98 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Sun Mar 7 11:15:04 2010 +0000 Add findNearestCommonDominator() for PostDominators. Add a missing interface to be able to call findNearestCommonDominator for a PostDominanceTree. The function itself is already implemented in DominatorTreeBase. The interface however was only added to the DominatorTree class, but not the PostDominatorClass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97915 91177308-0d34-0410-b5e6-96231b3b80d8 commit e334376b5c7cc9f21c0b05416fbdf6145935a01a Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 7 07:45:08 2010 +0000 Use Other as a sentinel instead of iAny. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 153b35abab0d3d8d6eadf83a3791209ac4c5566b Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 7 07:21:24 2010 +0000 turn off debug spew git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97912 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18c2cf7e2c0386235e8aff2aa0bcd4c2c287653e Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 7 07:20:49 2010 +0000 more factoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97911 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12d029514ea05bc147939b12219861b94e7ea0e2 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 7 07:16:49 2010 +0000 _2_ gcc crashes, ah, ah, ah... (Rolling back r97906.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97909 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67eeb51d145bf66e014961355ca1e552c59e85db Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 7 07:01:28 2010 +0000 teach tblgen to be more aggressive when factoring CheckType nodes. Now it will factor things like this: CheckType i32 ... CheckOpcode ISD::AND CheckType i64 ... into: SwitchType: i32: ... i64: CheckOpcode ISD::AND ... This shrinks hte table by a few bytes, nothing spectacular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51add9a0af0b77b2a427bf8138cc366aaa6d6c9a Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Mar 7 06:55:35 2010 +0000 Avoid leaking CompileUnits and DbgScopes from DwarfDebug. Leaks found by Valgrind! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e32517a0a32814b4e587e46fe1729f10d14bfba Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 7 06:29:26 2010 +0000 add some helper functions and implement isContradictory for CheckValueTypeMatcher. The isContradictory implementation helps us factor better, shrinking x86 table from 79144 -> 78896 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97905 91177308-0d34-0410-b5e6-96231b3b80d8 commit c08cbfd5b310096f304eeb77ffd28b0e2275dc39 Author: Chris Lattner <sabre@nondot.org> Date: Sun Mar 7 04:28:09 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97895 91177308-0d34-0410-b5e6-96231b3b80d8 commit cae2fc5dc584c33fe519252bb2789a115a42ddff Author: Wesley Peck <peckw@wesleypeck.com> Date: Sat Mar 6 23:23:12 2010 +0000 Re-committing the failed r97807 commit with changes to eliminate warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97891 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3edbcb547e63556b3c825fb406068af4b3cc3805 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Mar 6 20:26:48 2010 +0000 Add verification of union types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97889 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fdea181b80dc2509fab0c282b35bb27daea5ab0 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Mar 6 20:07:32 2010 +0000 Describe what's going on with mingw alloca and why do we need separate instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97888 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26502318cbe0c14c2bfedbf90165c3699eb8049c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Mar 6 19:39:36 2010 +0000 Initial bits of ARMv4-only support. Patch by John Tytgat! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97886 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0391c33d30582e640bbae6d394c6718b3226607d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Mar 6 19:32:29 2010 +0000 Lower dynamic stack allocation on mingw32 to separate instruction. We cannot use a normal call here since it has extra unmodelled side effects (it changes stack pointer). This should fix PR5292. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97884 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67767d3975c4e4ea349f8e5684a2194456bed849 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 6 19:20:13 2010 +0000 make APFloat::toString be const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97883 91177308-0d34-0410-b5e6-96231b3b80d8 commit effd01dcbf1424d4157f7139fd3b4fd34dd1b552 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 6 18:54:37 2010 +0000 disable this for mingw as well, we really need a 'has no dynamic linking' predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97882 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
|
|
24cb93723b |
Merge LLVM upstream SVN r97877.
This brings in the new ISel emitter, which should improve build times, and code size. Squashed commit of the following: commit 8b8baa7196d3ee855a618977101333cca26db4dc Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Mar 6 11:41:12 2010 +0000 Do not use '&' prefix for globals when register base field is non-zero, otherwise msp430-as will silently miscompile the code (TI's assembler report an error though). This fixes PR6349 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97877 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8092cc9adfe019b29dd6443965fe3c1ed3765544 Author: Eric Christopher <echristo@apple.com> Date: Sat Mar 6 10:59:25 2010 +0000 Let the fallthrough handle whether or not we've changed anything before we try to optimize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 129ed5cf3e6c1b662886a0b4069fecc72b8b45ee Author: Eric Christopher <echristo@apple.com> Date: Sat Mar 6 10:50:38 2010 +0000 Migrate _chk call lowering from SimplifyLibCalls to InstCombine. Stub out the remainder of the calls that we should lower in some way and move the tests to the new correct directory. Fix up tests that are now optimized more than they were before by -instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97875 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa346d0816abd2196aa6966f7003b3d6c0719cf3 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Mar 6 07:22:39 2010 +0000 Add static methods to handle Linkage Types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97871 91177308-0d34-0410-b5e6-96231b3b80d8 commit f320cc8cfc783519aa09952dfbfe0fa06d012cf3 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 6 07:02:28 2010 +0000 clean this up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97870 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0f0509a54528a29f3f6a40359d2b9f710d27490 Author: Chris Lattner <sabre@nondot.org> Date: Sat Mar 6 04:32:46 2010 +0000 revert r97807, it introduced build warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97869 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca26451b6fb2e2f6a68a2ffdd2268ac89828bf76 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Mar 6 03:28:39 2010 +0000 Thumb1 epilogue code generation needs to take into account that callee-saved registers may be restored via a pop instruction, not just a tRestore. This fixes nightly test 471.omnetep for Thumb1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97867 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a7906741bf0850f017cb68ea4ac9b6e1ec17e67 Author: Eric Christopher <echristo@apple.com> Date: Sat Mar 6 03:11:35 2010 +0000 Temporarily revert: Log: Transform @llvm.objectsize to integer if the argument is a result of malloc of known size. Modified: llvm/trunk/lib/Transforms/InstCombine/InstCombineCalls.cpp llvm/trunk/test/Transforms/InstCombine/objsize.ll It appears to be causing swb and nightly test failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97866 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0178525100218078fe2c8109d12d3a88b559fae Author: Dale Johannesen <dalej@apple.com> Date: Sat Mar 6 02:45:26 2010 +0000 Fix another case where LSR was affected by debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97865 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10af7bf2237461239e34f84c3eec3e4bbf28d3fa Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Mar 6 01:14:19 2010 +0000 Don't update physical register def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97861 91177308-0d34-0410-b5e6-96231b3b80d8 commit d456295b41ec822aebc5c7bab86dc405defea74f Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Mar 6 01:01:42 2010 +0000 Transform @llvm.objectsize to integer if the argument is a result of malloc of known size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97860 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33764fd6174986391c4f1f37561453de4f9bed81 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sat Mar 6 00:30:06 2010 +0000 Add a LLVMWriteBitcodeToFD that exposes the raw_fd_ostream options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 894a386aa80308f468be3492a79e533319fbdafa Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sat Mar 6 00:30:01 2010 +0000 Whoops, the old LLVMWriteBitcodeToFileHandle closed the stream. Luckily this never was released. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 983e27ee9080161bba57afbf34aee5cf0cf0058f Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sat Mar 6 00:29:58 2010 +0000 LLVMWriteBitcodeToFileHandle should work on all architectures now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97856 91177308-0d34-0410-b5e6-96231b3b80d8 commit a391cead11d5f588720c0347cd40643df5c0904e Author: Dale Johannesen <dalej@apple.com> Date: Sat Mar 6 00:03:23 2010 +0000 Add some new bits of debug info handling. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97855 91177308-0d34-0410-b5e6-96231b3b80d8 commit b16da2f136a493ddf05b5190b6689de4199098db Author: Dan Gohman <gohman@apple.com> Date: Sat Mar 6 00:00:55 2010 +0000 Reapply r97778 and r97779, enabled only for unsigned i64 to f64 conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97854 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff4a90cdf553545ed3b4c2094b4437931d986be0 Author: Devang Patel <dpatel@apple.com> Date: Fri Mar 5 23:35:04 2010 +0000 Test case for r97851. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95563fe18c05036964c1e561c0610d416c14784c Author: Ted Kremenek <kremenek@apple.com> Date: Fri Mar 5 22:34:16 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97846 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8d42e67971c8bbf491976af0c3b275140e5563b Author: Charles Davis <cdavis@mines.edu> Date: Fri Mar 5 22:28:45 2010 +0000 Don't emit global symbols into the (__TEXT,__ustring) section on Darwin. This is a workaround for <rdar://problem/7672401/> (which I filed). This let's us build Wine on Darwin, and it gets the Qt build there a little bit further (so Doug says). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97845 91177308-0d34-0410-b5e6-96231b3b80d8 commit a06312178d2f5f93eec745c276b52a2a2c68d5da Author: Eric Christopher <echristo@apple.com> Date: Fri Mar 5 22:25:30 2010 +0000 Move SimplifyLibCalls's LibCall builders to a separate file so they can be used in more places. Add an argument for the TargetData that most of them need. Update for the getInt8PtrTy() change. Should be no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97844 91177308-0d34-0410-b5e6-96231b3b80d8 commit f31408102aa0351eadf6ec1169b03fdb4cd58c51 Author: Eric Christopher <echristo@apple.com> Date: Fri Mar 5 22:21:58 2010 +0000 Add support for an i8* type accessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 198d7c43ac6d798c5711d7ee2bbef60a373bea0c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Mar 5 21:49:17 2010 +0000 Better handling of dead super registers in LiveVariables. We used to do this: CALL ... %RAX<imp-def> ... [not using %RAX] %EAX = ..., %RAX<imp-use, kill> RET %EAX<imp-use,kill> Now we do this: CALL ... %RAX<imp-def, dead> ... [not using %RAX] %EAX = ... RET %EAX<imp-use,kill> By not artificially keeping %RAX alive, we lower register pressure a bit. The correct number of instructions for 2008-08-05-SpillerBug.ll is obviously 55, anybody can see that. Sheesh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97838 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ed0665a7bcdd00f9304abc0cc57c73ae64d4d6b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Mar 5 21:49:13 2010 +0000 We don't really care about correct register liveness information after the post-ra scheduler has run. Disable the verifier checks that late in the game. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97837 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa3341e6c8b494d275fe2cd6b4401fcfff926844 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Mar 5 21:49:10 2010 +0000 Avoid creating bad PHI instructions when BR is being const-folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97836 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39d3644211e5eed38c6eb7feb64ce882def1ade8 Author: Dale Johannesen <dalej@apple.com> Date: Fri Mar 5 21:12:40 2010 +0000 Fix a case where LSR is sensitive to debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 737ae96836ec3ab9c72747810612e2a5eb1d6efb Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 5 20:59:47 2010 +0000 Safely turn memset_chk etc. to non-chk variant if the known object size is >= memset / memcpy / memmove size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97828 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd91987d3895fa05add6982a809bd571b4ff6c4d Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 5 20:47:23 2010 +0000 Instcombine should turn llvm.objectsize of a alloca with static size to an integer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97827 91177308-0d34-0410-b5e6-96231b3b80d8 commit d448115fc3b5977504811ab2747b75dd176dc5f3 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 5 19:55:55 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f330b5f50d2ca35937b5b11f6c606d263c43230 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 18:55:36 2010 +0000 fix bss section printing for cell, patch by Kalle Raiskila! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97814 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0e7c613208be8f1e242c12a63f253fcd749eea5 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 18:53:28 2010 +0000 fix PR6512, a case where instcombine would incorrectly merge loads from different addr spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97813 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c0511d9ab206da7bf20a3bb48a29260d28e1f35 Author: Wesley Peck <peckw@wesleypeck.com> Date: Fri Mar 5 15:26:02 2010 +0000 Reworking the stack layout that the MicroBlaze backend generates. The MicroBlaze backend was generating stack layouts that did not conform correctly to the ABI. This update generates stack layouts which are closer to what GCC does. Variable arguments support was added as well but the stack layout for varargs has not been finalized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50a5b7b8f82e6256ac661859dc10f9455a790f2d Author: Wesley Peck <peckw@wesleypeck.com> Date: Fri Mar 5 15:15:55 2010 +0000 Adding MBlaze to cmake target list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c4d10999c93a3e002ed8d994063d5a4ac413125 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 08:46:26 2010 +0000 Fix PR6503. This turned into a much more interesting and nasty bug. Various parts of the cmp|cmp and cmp&cmp folding logic wasn't prepared for vectors (unrelated to the bug but noticed while in the code) and the code was *definitely* not safe to use by the (cast icmp)|(cast icmp) handling logic that I added in r95855. Fix all this up by changing the various routines to more consistently use IRBuilder and not pass in the I which had the wrong type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97801 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f0557ebc64b81b67ef263f7ecf3ff8c7a61e1fd Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 08:43:33 2010 +0000 make these less sensitive to temporary naming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97799 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02c78af1f36c8e991b8d4202f8b2e17f493b1276 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 08:43:06 2010 +0000 remove this testcase, it isn't clear what it was testing and it is subsumed by or.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78e26a68c480fe6e3b612698e3f61ef7bcd88bdc Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 5 08:38:04 2010 +0000 Fix an oops in x86 sibcall optimization. If the ByVal callee argument is itself passed as a pointer, then it's obviously not safe to do a tail call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97797 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd405377206ce3f3d6b366a2b913d4e501126ea1 Author: Duncan Sands <baldrick@free.fr> Date: Fri Mar 5 08:21:02 2010 +0000 If LD_LIBRARY_PATH is set in the system environment, use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44debf4f7d10ec8ad414873df3047e6f4c23930b Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 07:47:57 2010 +0000 simplify some functions and make them work with vector compares, noticed by inspection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59ffdbd8644519afeca1f1c77637d2bfad2fbe02 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 07:18:54 2010 +0000 fix a nice subtle reassociate bug which would only occur in a very specific use pattern embodied in the carefully reduced testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97794 91177308-0d34-0410-b5e6-96231b3b80d8 commit 801dee0ea3164b1b07bc17fdf05fe63d57de637c Author: Eric Christopher <echristo@apple.com> Date: Fri Mar 5 06:58:57 2010 +0000 Move GetStringLength and helper from SimplifyLibCalls to ValueTracking. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97793 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a5210b06ed03f9ff422921992a404c14c591855 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 5 06:43:49 2010 +0000 Revert r97788 because it broke test/FrontendC/2010-02-16-DbgVarScope.c. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97792 91177308-0d34-0410-b5e6-96231b3b80d8 commit df97abcc77da393760a7bcc12c03645cf1728b67 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 06:19:13 2010 +0000 Fix PR6497, a bug where we'd fold a load into an addc node which has a flag. That flag in turn was used by an already-selected adde which turned into an ADC32ri8 which used a selected load which was chained to the load we folded. This flag use caused us to form a cycle. Fix this by not ignoring chains in IsLegalToFold even in cases where the isel thinks it can. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bd98df78e0099db2dc9e013f79d7ffa9400689d Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 06:17:43 2010 +0000 cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50163132c78a04867316371dfc108d81d6bd192e Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 05:49:45 2010 +0000 inline a small function with one call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97789 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1df73fd6d634705e69c8fcb6f556ecaf35b4fde Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Mar 5 05:47:09 2010 +0000 Free MDNodes when the LLVMContext is destroyed. Leak found by Valgrind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97788 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd88637114a2246b2c48fcd61512e04468fe3a73 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Mar 5 04:46:39 2010 +0000 Make it not an error to specify -O* options several times. As in 'llvmc -O2 -O2 test.c'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c014502943a288377d325367c89b1a0159618ff Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Mar 5 04:46:28 2010 +0000 Use FindExecutable as a fall-back search method. Allows us to find executables that are in the same directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97786 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8755dd455a462aed4cc923cd5eebc701ae95afc Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 5 03:08:23 2010 +0000 Rever 96389 and 96990. They are causing some miscompilation that I do not fully understand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97782 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59043f24a7c8d723b66c5176d1520507dc2cfbe7 Author: Dan Gohman <gohman@apple.com> Date: Fri Mar 5 02:40:23 2010 +0000 Revert r97778 and r97779. They're somehow breaking llvm-gcc builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 342e270897302e5d14b94f8521d50beb337edda0 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 02:34:34 2010 +0000 apparently if gold is around lto needs to be part of DIRS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f6137e125ce7be6d42232420acadb71f846687a Author: Dan Gohman <gohman@apple.com> Date: Fri Mar 5 02:13:10 2010 +0000 Fix these constants to be more portable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97779 91177308-0d34-0410-b5e6-96231b3b80d8 commit 512edab665b19b56f46a5e884726d3b95001a5ca Author: Dan Gohman <gohman@apple.com> Date: Fri Mar 5 02:00:46 2010 +0000 Rewrite i64-to-f64 conversion using an algorithm which handles rounding correctly. This implementation is a generalization of the x86_64 code in compiler-rt. This fixes rdar://7683708. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97778 91177308-0d34-0410-b5e6-96231b3b80d8 commit ede8780a38eb918050be9805a685976466d9a4d6 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Mar 5 01:45:46 2010 +0000 Trivial comment change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97776 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c2ab41b4f483d9af9026112de00902d9e875b4d Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Mar 5 01:22:47 2010 +0000 Add missing break for Intrinsic::objectsize case. It was falling through to the following Intrinsic::bswap code. I have no idea why it wasn't breaking stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97f858f693f64e690937a0a09c2eee0c83fc49cb Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 01:00:34 2010 +0000 disable libprofile on cygwin, patch by Aaron Gray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97772 91177308-0d34-0410-b5e6-96231b3b80d8 commit 076c95a931cc4eb4fcc65a38b55e18337340a96f Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 00:59:18 2010 +0000 Only build libedis if ENABLE_SHARED is specified, just like liblto. Don't build any of the dynamic library stuff on cygwin/mingw. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b3845a8ee5c93ba2f9c060db7daf5bd83dc6f9a Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 00:54:45 2010 +0000 liblto and gold don't need to be built in serial git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 042b9b4377110320a37b5362c944d18ef483d669 Author: Chris Lattner <sabre@nondot.org> Date: Fri Mar 5 00:49:08 2010 +0000 add an assertion requested on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97769 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff150b4c021a69e2e42f08e70a8d8f6d41ec1eeb Author: Bill Wendling <isanbard@gmail.com> Date: Fri Mar 5 00:33:59 2010 +0000 Revert r97766. It's deleting a tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32fa39ec4dd17337d99925ce7eb7843a0f7b1ef9 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Mar 5 00:24:26 2010 +0000 Micro-optimization: This code: float floatingPointComparison(float x, float y) { double product = (double)x * y; if (product == 0.0) return product; return product - 1.0; } produces this: _floatingPointComparison: 0000000000000000 cvtss2sd %xmm1,%xmm1 0000000000000004 cvtss2sd %xmm0,%xmm0 0000000000000008 mulsd %xmm1,%xmm0 000000000000000c pxor %xmm1,%xmm1 0000000000000010 ucomisd %xmm1,%xmm0 0000000000000014 jne 0x00000004 0000000000000016 jp 0x00000002 0000000000000018 jmp 0x00000008 000000000000001a addsd 0x00000006(%rip),%xmm0 0000000000000022 cvtsd2ss %xmm0,%xmm0 0000000000000026 ret The "jne/jp/jmp" sequence can be reduced to this instead: _floatingPointComparison: 0000000000000000 cvtss2sd %xmm1,%xmm1 0000000000000004 cvtss2sd %xmm0,%xmm0 0000000000000008 mulsd %xmm1,%xmm0 000000000000000c pxor %xmm1,%xmm1 0000000000000010 ucomisd %xmm1,%xmm0 0000000000000014 jp 0x00000002 0000000000000016 je 0x00000008 0000000000000018 addsd 0x00000006(%rip),%xmm0 0000000000000020 cvtsd2ss %xmm0,%xmm0 0000000000000024 ret for a savings of 2 bytes. This xform can happen when we recognize that jne and jp jump to the same "true" MBB, the unconditional jump would jump to the "false" MBB, and the "true" branch is the fall-through MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97766 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90c537295ce9dbd44b75b065eb377cb343457637 Author: Dale Johannesen <dalej@apple.com> Date: Fri Mar 5 00:02:59 2010 +0000 Fix some more places where dbg_value affected codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cbf4231649e0d3106449d9c8f30eed622a2f21b Author: Devang Patel <dpatel@apple.com> Date: Thu Mar 4 23:44:48 2010 +0000 Add metadata example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97764 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8a7df8e453fbdaf71745d107d420cadcfa80a41 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 4 23:24:19 2010 +0000 Stop leaking MDStrings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97763 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64e333257e0989ac508a616039f3f5054ced2322 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Mar 4 22:24:41 2010 +0000 Drop the ".w" qualifier for t2UXTB16* instructions as there is no 16-bit version of either sxtb16 or uxtb16, and the unified syntax does not specify ".w". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97760 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36efd7ebd8a76e37b7042cdc8e9c4c1688e6d457 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 4 22:15:01 2010 +0000 Fix memcheck-found leaks: one false positive from using new[], and one true positive where pointers would be leaked on llvm_shutdown. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97759 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6dcf1ed5d44a22743b500b901440c6c3086a4a59 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Mar 4 22:07:46 2010 +0000 For SJLJ exception handling, make sure that all calls that are not marked as nounwind are marked with a -1 call-site value. This is necessary to, for example, correctly process exceptions thrown from within an "unexpected" execption handler (see SingleSource/Regression/C++/EH/expection_spec_test.cpp). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15b85c2e52fd6e074e2bdabd16047dde42163641 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 4 21:42:36 2010 +0000 pr6478: The frame pointer spill frame index is only defined when there is a frame pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97755 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8ca9d5a19983aafb289d2452c23ff8368ea0831 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 4 21:28:09 2010 +0000 Run machine licm before machine cse to avoid messing up licm opportunities. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 768d399deacd93a6faa14575414eb2ddf1ccf7d7 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 4 21:18:08 2010 +0000 Avoid cse load instructions unless they are known to be invariant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97747 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb199e565c052ac002a1353a0a211a0a3959618e Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Mar 4 21:04:38 2010 +0000 pr6480: Don't try producing ld/st-multiple instructions when the address is an undef value. This is only going to come up for bugpoint-reduced tests -- correct programs will not access memory at undefined addresses -- so it's not worth the effort of doing anything more aggressive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97745 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b9a1c6368243323b47ad85d080d646922616eee Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Thu Mar 4 20:56:19 2010 +0000 Rewrite makefiles to explicitly reference DESTDIR to fix bug 3153. We need this so can not bake DESTDIR into the O'Caml symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07cecc814cfac381611dfe35440402e2a1b47bf6 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Mar 4 20:42:07 2010 +0000 Fix the remaining MUL8 and DIV8 to define AX instead of AL,AH. These instructions technically define AL,AH, but a trick in X86ISelDAGToDAG reads AX in order to avoid reading AH with a REX instruction. Fix PR6489. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60c81d5a0323eddf67fdaffd1183a313053658e5 Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 4 19:58:08 2010 +0000 Fix recognition of 16-bit bswap for C front-ends which emit the clobber registers in a different order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43dd4fd11a1ee702e7ae85b3aaff8cc89c2d6503 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 19:54:45 2010 +0000 not committing what you test = bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9753af92498d6c71afb58df09117828971134f2a Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 19:48:19 2010 +0000 make gep matching in fastisel match the base of the gep as a register if it isn't possible to match the indexes *and* the base. This fixes some fast isel rejects of load instructions on oggenc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a0ce1421722365b719efb4bb4f98dfe091d4b9c Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 19:46:56 2010 +0000 add a statistic for # times fastisel fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14b1ebdfedcaa80d296942999d4eb95b416f7dd7 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 4 19:45:09 2010 +0000 Fix PR6360. It's easy for a stub's address to escape to user code, so we can't just count references to it from JIT output to decide when to destroy it. This patch waits to destroy the JIT's memory of a stub until the Function it refers to is destroyed. External function stubs and GVIndirectSyms aren't destroyed until the JIT itself is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80c162a1b7771a0a81c0d0028c508b89b4b3711c Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 4 19:11:28 2010 +0000 Fix a typo Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97735 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4a7af91b1aa122d4a34e9c4119f779b652cdaf1 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Mar 4 17:40:44 2010 +0000 Added 32-bit Thumb instructions for Preload Data (PLD, PLDW) and Preload Instruction (PLI) for disassembly only. According to A8.6.120 PLI (immediate, literal), for example, different instructions are generated for "pli [pc, #0]" and "pli [pc, #-0"]. The disassembler solves it by mapping -0 (negative zero) to -1, -1 to -2, ..., etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97731 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91ad25ef8391b5bfdcfca4d003b3d0e33edf52f2 Author: John McCall <rjmccall@apple.com> Date: Thu Mar 4 11:48:42 2010 +0000 Simplify the condition-checking logic and hopefully clear up a build failure that somehow got through my testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97728 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1722deb2df37444ef0a1f9ccf310d2867e833520 Author: John McCall <rjmccall@apple.com> Date: Thu Mar 4 09:36:50 2010 +0000 Teach lit to honor conditional directives. The syntax is: IF(condition(value)): If the value satisfies the condition, the line is processed by lit; otherwise it is skipped. A test with no unignored directives is resolved as Unsupported. The test suite is responsible for defining conditions; conditions are unary functions over strings. I've defined two conditions in the LLVM test suite, TARGET (with values like those in TARGETS_TO_BUILD) and BINDING (with values like those in llvm_bindings). So for example you can write: IF(BINDING(ocaml)): RUN: %blah %s -o - and the RUN line will only execute if LLVM was configured with the ocaml bindings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97726 91177308-0d34-0410-b5e6-96231b3b80d8 commit df8dfbd216ce1f77f1128f1d24f3598ded7c8be6 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Mar 4 06:54:10 2010 +0000 Make the 'icmp pred trunc(ext(X)), CST --> icmp pred X, ext(trunc(CST))' transformation much more careful. Truncating binary '01' to '1' sounds like it's safe until you realize that it switched from positive to negative under a signed interpretation, and that depends on the icmp predicate. Also a few miscellaneous cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97721 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9fbe67d7e4211d18505e71477b1061f0ea71e71 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 4 06:50:01 2010 +0000 Fix PR5291, in which a SmallPtrSet iterator was held across an insertion into the set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97720 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54639611efd444f3ef2fa26f618d106b1aa40c80 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 4 02:08:04 2010 +0000 Rename -machine-cse to -enable-machine-cse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97713 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c1d83b5ef2893f5e7aadc33e5c3b0596c21b717 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 01:43:43 2010 +0000 add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3240a2ab76d6152aa4c97bbe0e5c4abebeb541fb Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 01:34:29 2010 +0000 so hey, it turns out that the histogram was completely wrong, because we sometimes emit nodes multiple times to string buffers to size them. Compute the histogram correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97708 91177308-0d34-0410-b5e6-96231b3b80d8 commit e69a659304234a7d5385fd343d5eb3489fb5b21a Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Mar 4 01:33:55 2010 +0000 Look ahead a bit to determine if a physical register def that is not marked dead is really alive. This is necessary to catch a lot of common cse opportunities for targets like x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97706 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4066394fb9bfff2924047b05dee47ccfba69a0e Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 01:26:00 2010 +0000 zap fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71c277e71d757d586f3bcaec601f5b10b216ba79 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 01:25:36 2010 +0000 now that complexpatterns are all emitted at the end of the match sequence, just emit instruction predicates right before them. This exposes yet more factoring opportunitites, shrinking the X86 table to 79144 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06f2729c970c7e93e5cbd1f7f7e1231842dda721 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 01:23:08 2010 +0000 change the new isel matcher to emit ComplexPattern matches as the very last thing before node emission. This should dramatically reduce the number of times we do 'MatchAddress' on X86, speeding up compile time. This also improves comments in the tables and shrinks the table a bit, now down to 80506 bytes for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97703 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3b56d7c4e0efb7026b92d2dcc5e37b252ede90e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Mar 4 00:32:33 2010 +0000 Make sure JITResolvers don't leave any stubs behind. When a JITResolver was destroyed, it could leave stubs in the StubToResolverMap, which would confuse the lookup for subsequent lazy compilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97698 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3d51353b648f973743ca15c74e4013977755b97 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 00:28:05 2010 +0000 enhance comment output to specify what recorded slot numbers a ComplexPat will match into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97696 91177308-0d34-0410-b5e6-96231b3b80d8 commit 411907fd64949307ed5abab5cb41e0c721e7d4f6 Author: Dan Gohman <gohman@apple.com> Date: Thu Mar 4 00:23:16 2010 +0000 Fix more code to work properly with vector operands. Based on a patch my Micah Villmow for PR6465. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20a0937af355b3759cdae25113e97b3eebe16a5a Author: John McCall <rjmccall@apple.com> Date: Thu Mar 4 00:21:47 2010 +0000 Teach the pic16 target to recognize pic16-*-* triples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32f610d51cac9d0edc1c772d3a11943f7a292ca8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Mar 4 00:21:16 2010 +0000 inline CannotYetSelectIntrinsic into CannotYetSelect and simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97690 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a647b1bcf1066ce6fe762f4cca38abd5b668994 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 23:59:08 2010 +0000 Fix a logic error. An instruction that has a live physical register def cannot be CSE'ed, but it *can* be used to replace a common subexpression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97688 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0688e58596dc38e21023437985b6f6e1910ce2f6 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 23:55:49 2010 +0000 Remove PHINodeTraits and use MachineInstrExpressionTrait instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54fda172ce1260ee0537a5cf2c510fb1b5cf3b36 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Wed Mar 3 23:51:34 2010 +0000 Expose the rest of the llvm-c scalar opts to ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97685 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6152c59ec9f9fd4dce205e08ef83eb5af08babd4 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Wed Mar 3 23:51:30 2010 +0000 Rename some ocaml functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97684 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0a775a5c3ecde86ba6f3f4ea3576de1beb9a9a6 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Wed Mar 3 23:51:28 2010 +0000 Expose the external functions for ocaml's execution engine as an optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5164fc103e317ca2d3a16c1e2ab84fbc279c7ba3 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Wed Mar 3 23:51:25 2010 +0000 Expose alignment and stack alignment attributes to llvm-c and ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97682 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca6a35be3cc2271ce8a3dbdbe268ff7598e68fb2 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 23:37:30 2010 +0000 Move MachineInstrExpressionTrait::getHashValue() out of line so it can skip over only virtual register defs. This matches what isEqual() is doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97680 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1412446ac97a6d60293a0c2ce45cb7232e391f24 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 23:27:36 2010 +0000 Re-apply r97667 but with a little bit of thought put into the patch. This implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97678 91177308-0d34-0410-b5e6-96231b3b80d8 commit 030b0c94091a045229471ec228afef2dfaf9921d Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 3 23:15:43 2010 +0000 Modified the asm string of 16-bit Thumb MUL instruction so that it prints: MULS <Rdm>, <Rn>, <Rdm> according to A8.6.105 MUL Encoding T1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 199822da16404d8ea037cdd8225b0138ce29e285 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 3 22:40:03 2010 +0000 Revert 97667. It broke a bunch of tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97673 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec2f71188b6ad456e4fb5c2ddeefd18ca9c34caf Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 21:54:14 2010 +0000 Fix funky indentation and add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97670 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffaadf4aa0736a77a33bd754d38c6ee4a294fdc8 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 21:47:16 2010 +0000 Move DenseMapInfo for MachineInstr* to MachineInstr.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97667 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0fbcf5f91bc2c7d9d477cefae111f2c9c56d630 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 3 21:33:37 2010 +0000 Fix a bug in SelectionDAG's ReplaceAllUsesWith in the case where CSE and recursive RAUW calls delete a node from the use list, invalidating the use list iterator. There's currently no known way to reproduce this in an unmodified LLVM, however there's no fundamental reason why a SelectionDAG couldn't be formed which would trigger this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97665 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25c64ba019aff84b6d0eca309b8f0bf21c72d511 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 21:20:05 2010 +0000 Machine CSE work in progress. It's doing some CSE now. But implicit def of physical registers are getting in the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97664 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebeba930713e58fbacbbd0e7ad06eeea4c0b265c Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 21:18:38 2010 +0000 Add MachineRegisterInfo::hasOneUse and hasOneNonDBGUse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57d4a663bbbb96b28ba9d34c4ebb596a9d9a9a09 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 3 20:47:12 2010 +0000 don't use always_inline with gcc 3.4, it has some unimplemented features and is too old to really care about the performance of the generated compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97662 91177308-0d34-0410-b5e6-96231b3b80d8 commit c13c95f62aeb8279d1169466260bec7e02470b8c Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 20:46:48 2010 +0000 TopLevelMap[] reference is a pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97661 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4374df984b4a3f4c681dd8db85144d6d7f26f5f2 Author: Andrew Lenharth <alenhar2@cs.uiuc.edu> Date: Wed Mar 3 20:15:31 2010 +0000 Fix PR6444, note still doesn't compile libgcc2 all the way, but fixes that error. May not fix it in an ABI complient way. It wasn't clear what gcc does git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97660 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a1a27fe0a29565581344c147c85e117abd53263 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 3 19:46:03 2010 +0000 fix incorrect folding of icmp with undef, PR6481. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97659 91177308-0d34-0410-b5e6-96231b3b80d8 commit cce2077e349773f96e4bea5462ec679e5aba46c3 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 3 19:31:05 2010 +0000 Revert... --- Reverse-merging r97592 into '.': U lib/CodeGen/TargetLoweringObjectFileImpl.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b9fb5eb26cb221e5ae9f83e753e2d1524c98311 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 3 18:45:36 2010 +0000 Added 32-bit Thumb instructions LDRT, LDRBT, LDRHT,,LDRSBT, LDRSHT, STRT, STRBT, and STRHT for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07866f7546b839a9e86f9351ae26cf8b37168ee3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 3 07:46:25 2010 +0000 add some of the more obscure predicate types to the Scope accelerator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97652 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac70ddc123577b33a45328ed95a403c21be33fac Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 3 07:31:15 2010 +0000 speed up scope node processing: if the first element of a scope entry we're about to process is obviously going to fail, don't bother pushing a scope only to have it immediately be popped. This avoids a lot of scope stack traffic in common cases. Unfortunately, this requires duplicating some of the predicate dispatch. To avoid duplicating the actual logic I pulled each predicate out to its own static function which gets used in both places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97651 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fd97aa747bf0a6bbd821471077ec2a5021911ec Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 3 06:28:15 2010 +0000 introduce a new SwitchTypeMatcher node (which is analogous to SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This speeds up selection, particularly for X86 which has lots of variants of instructions with only type differences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97645 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54125a770694e7015f0c6464ce382469f7bc9994 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 3 05:40:40 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3982ab8b1a4c1defde9fd99aaa8d5dd6f80bb441 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 3 05:29:13 2010 +0000 Make SCEVExpander and LSR more aggressive about hoisting expressions out of loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b2b13390084be1013c0389a064d231c0db97a44 Author: Dan Gohman <gohman@apple.com> Date: Wed Mar 3 04:36:42 2010 +0000 Revert r97580; that's not the right way to fix this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97639 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef1404358254b727461473d04294714053832faa Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 02:48:20 2010 +0000 Work in progress. Finding some cse now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e82e907837347fddf2cc4ba2c4cc68966a24577 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 3 02:14:54 2010 +0000 remove nvload and two patterns that use it which are better done by dag combine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97633 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cb0881fd0475b57bc6ad64b4ecf15c6591a4c3f Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 3 02:09:43 2010 +0000 Added 32-bit Thumb instructions t2NOP, t2YIELD, t2WFE, t2WFI, t2SEV, and t2DBG for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97632 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee63dbcce4be6e492cddde020d274f9ff0dd26ac Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 3 01:58:01 2010 +0000 Use APInt instead of zext value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97631 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5774689caeda43775891121c70ee9104629090e4 Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 3 01:52:59 2010 +0000 factor the 'in the default address space' check out to a single 'dsload' pattern. tblgen doesn't check patterns to see if they're textually identical. This allows better factoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97630 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5eed36be09b45b5e53247ceeb109672fde26cc8e Author: Chris Lattner <sabre@nondot.org> Date: Wed Mar 3 01:45:01 2010 +0000 factor the 'sign extended from 8 bit' patterns better so that they are not destination type specific. This allows tblgen to factor them and the type check is redundant with what the isel does anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97629 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63e7fbc85a6e4d34d32ff0a7dcb20d74ca22f1a1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 01:44:33 2010 +0000 - Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality. - Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7771179a389bef5311ad359763084de19f6d0c47 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 01:38:35 2010 +0000 Add an option to enable machine cse (it's not doing anything yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0784aada6ac3a30b3890f2b52d9ecc74bdf61a73 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 01:37:50 2010 +0000 Ordering forward declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 779a9f3bc89883d77d398dec2359a4343213b560 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 3 01:13:55 2010 +0000 Don't turn assertions on by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97623 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a7678e2072b637e7a720afa157816cc11ea0aa6 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Mar 3 00:43:15 2010 +0000 Eliminate unused instruction classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97617 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63d35d28de1073c6d9214e3cab2ef319a3c8a012 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Mar 3 00:35:56 2010 +0000 This test case: long test(long x) { return (x & 123124) | 3; } Currently compiles to: _test: orl $3, %edi movq %rdi, %rax andq $123127, %rax ret This is because instruction and DAG combiners canonicalize (or (and x, C), D) -> (and (or, D), (C | D)) However, this is only profitable if (C & D) != 0. It gets in the way of the 3-addressification because the input bits are known to be zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c25aa2e25e2f9007e66e2f81d5f731f598f056c Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Mar 3 00:16:28 2010 +0000 Added 32-bit Thumb instructions t2DMB variants, t2DSB variants, and t2ISBsy for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97614 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce6affafe652f88bcdacec9397499db154dcd434 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Mar 2 23:59:08 2010 +0000 Use the ocaml tag 0 since we are just returning an option value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97612 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce13383fe9ea3ed047f8fb621d395af0995edaa5 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Mar 2 23:59:05 2010 +0000 Don't use an ocaml keyword in an ocamldoc comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0610f44010292b2bfecc84a419b8702459066d19 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Mar 2 23:59:03 2010 +0000 Expose the optimization level for the jit in ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97610 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8eac021cc43c2987b90237466cf46f347dd8bc3 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Mar 2 23:59:00 2010 +0000 Remove module providers from ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dd5a40bf2fe15fbf022b70666bb2113301455ce Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Mar 2 23:58:54 2010 +0000 Add Module functions in place of module providers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97608 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3de906f1dfb8f7f3358ab864487115aefde0b8ff Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 23:12:51 2010 +0000 merge two loops over all nodes in the graph into one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97606 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2303f1f374c5a8fa23879a3c933da9f56f2e5f6c Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 22:33:56 2010 +0000 eliminate PreprocessForRMW now that isel handles it. We still preprocess calls and fp return stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97598 91177308-0d34-0410-b5e6-96231b3b80d8 commit a15890fac1a6b1534a0ce7848fb1221c28a61d55 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 22:30:08 2010 +0000 remove 300 lines of code that is now dead in the MSP430 backend now that isel handles chains more aggressively. This also allows us to make isLegalToFold non-virtual. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97597 91177308-0d34-0410-b5e6-96231b3b80d8 commit e15b5610729840a5a78cfcb623cb2ab530d06a40 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 22:20:06 2010 +0000 Fix some issues in WalkChainUsers dealing with CopyToReg/CopyFromReg/INLINEASM. These are annoying because they have the same opcode before an after isel. Fix this by setting their NodeID to -1 to indicate that they are selected, just like what automatically happens when selecting things that end up being machine nodes. With that done, give IsLegalToFold a new flag that causes it to ignore chains. This lets the HandleMergeInputChains routine be the one place that validates chains after a match is successful, enabling the new hotness in chain processing. This smarter chain processing eliminates the need for "PreprocessRMW" in the X86 and MSP430 backends and enables MSP to start matching it's multiple mem operand instructions more aggressively. I currently #if out the dead code in the X86 backend and MSP backend, I'll remove it for real in a follow-on patch. The testcase changes are: test/CodeGen/X86/sse3.ll: we generate better code test/CodeGen/X86/store_op_load_fold2.ll: PreprocessRMW was miscompiling this before, we now generate correct code Convert it to filecheck while I'm at it. test/CodeGen/MSP430/Inst16mm.ll: Add a testcase for mem/mem folding to make anton happy. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97596 91177308-0d34-0410-b5e6-96231b3b80d8 commit b905028b4ba7b851af940c91901ac5214ea0b73b Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 2 22:11:06 2010 +0000 Added 32-bit Thumb instruction CLREX (Clear-Exclusive) for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97595 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5210aa3afd28b390195d929c05e4bc0ff4f2cba9 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 2 22:10:24 2010 +0000 Allow specialization of ScopedHashTable of non-default DenseMapInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97594 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddde6747e4069a787fe44517b9856383712070fb Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 2 21:50:35 2010 +0000 Okay. One last attempt: Place the LSDA into the TEXT section on Mach-O. This saves space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97592 91177308-0d34-0410-b5e6-96231b3b80d8 commit 905465e7420cd11c4368e80ee0b68529234e536b Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 20:48:24 2010 +0000 this testcase is failing because pic16 doesn't define a reg/reg xor pattern. I have no plans to fix this XFAIL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97587 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6bd358b68e8d5ab977d15faa309c66f42482643 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Mar 2 20:32:32 2010 +0000 Add support for use to ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a5b54284276cba3c33fc2673cd56cf7f94ae143 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Mar 2 20:32:28 2010 +0000 Rename LLVMUseIteratorRef to LLVMUseRef since we don't refer to iterators in llvm-c. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97585 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5635f0323df2a9a3675a310e45ef0c61e959ff1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 19:53:25 2010 +0000 xfail this for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97584 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77eb6bea8bc6914093bd759d4a1a6f19c76e0c64 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 2 19:38:59 2010 +0000 Removed the extra S from the multiclass def T2I_adde_sube_s_irs as well as from the opc string passed in, since it's a given from the class inheritance of T2sI. The fixed the extra 's' in adcss & sbcss when disassembly printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97582 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8163f938b0e5e62a13e18125fb6f79d3c96cead Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 19:34:59 2010 +0000 run HandleMergeInputChains even if we only have one input chain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97581 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb10eea9fd12836819acfa4d5d73b048e3e9e3d4 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 2 19:32:21 2010 +0000 When expanding an expression such as (A + B + C + D), sort the operands by loop depth and emit loop-invariant subexpressions outside of loops. This speeds up MultiSource/Applications/viterbi and others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97580 91177308-0d34-0410-b5e6-96231b3b80d8 commit 417282ec649a3b8d52c4749be0edbd0cd8885528 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 2 19:03:01 2010 +0000 Swap parameters of isSafeToMove and isSafeToReMat for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97578 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58a36789dc375f5b8057527b37f61ba2b24642c1 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 2 19:02:27 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97577 91177308-0d34-0410-b5e6-96231b3b80d8 commit 475c915bc20438417296734952a6c29a16233192 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 18:56:03 2010 +0000 clean up some testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97576 91177308-0d34-0410-b5e6-96231b3b80d8 commit 483e6c612accc3f613291675ba6d6bfe49ccaf13 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 18:15:02 2010 +0000 the sorting predicate should work for comparing an element to itself, even though this isn't wildly useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97574 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7795907648d497959c58d099064faa0a525317f6 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 2 18:14:57 2010 +0000 Added 32-bit Thumb instructions: CPS, SDIV, UDIV, SXTB16, SXTAB16, UXTAB16, SEL, SMMULR, SMMLAR, SMMLSR, TBB, TBH, and 16-bit Thumb instruction CPS for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97573 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdff186e041e26e7bf719d4ca0397274fe92639a Author: Devang Patel <dpatel@apple.com> Date: Tue Mar 2 17:58:15 2010 +0000 Fix grammar. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97572 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad2444f6d85258477141bf67ebfb509ab7b5e521 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 2 17:57:15 2010 +0000 AL is an optional mnemonic extension for always, except in IT instructions. Add printMandatoryPredicateOperand() PrintMethod for IT predicate printing. Ref: A8.3 Conditional execution git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97571 91177308-0d34-0410-b5e6-96231b3b80d8 commit c53e80f9669af6a1bf51f1a8c48df658644b428b Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Mar 2 17:03:18 2010 +0000 Change some asm shift opcode strings to lowercase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97567 91177308-0d34-0410-b5e6-96231b3b80d8 commit d928e505781c90b0f2638a14581efa2e02109998 Author: Xerxes Ranby <xerxes@zafena.se> Date: Tue Mar 2 13:42:03 2010 +0000 fix typo add missing ( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97565 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbf8d6503ad48921440fb59c5d0fdb8eac06938f Author: Xerxes Ranby <xerxes@zafena.se> Date: Tue Mar 2 13:26:18 2010 +0000 Unbreak llvm-arm-linux buildbot and fix PR5309. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d58d6576bedd9be85df075e24776d28658ccbb2 Author: Duncan Sands <baldrick@free.fr> Date: Tue Mar 2 11:18:43 2010 +0000 Rather than passing "false" for InsertBefore, AddressSpace for ThreadLocal, and nothing for AddressSpace, pass 0 for InsertBefore, "false" for ThreadLocal and AddressSpace for AddressSpace. Spotted by gcc-4.5. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12227402851982da92af8257263bd7a3dc213ab3 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 07:50:03 2010 +0000 Fix the xfail I added a couple of patches back. The issue was that we weren't properly handling the case when interior nodes of a matched pattern become dead after updating chain and flag uses. Now we handle this explicitly in UpdateChainsAndFlags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97561 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ccb30d2dffed0f20c74cc36745c222414e3d765 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 07:14:49 2010 +0000 I was confused about this, it turns out that MorphNodeTo *does* delete ex-operands that become dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97559 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2c2cbb24ffa9818864fecdd0edc781cd2d994f5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 06:55:04 2010 +0000 factor node morphing out to its own helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97558 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ff97812803efa6bbb640493731bcc7d00c3bc50 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 06:36:51 2010 +0000 attributes are not part of types anymore, patch by James Woodyatt! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24466bd998a4f0669ca776c5b944876e29a2af6c Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 06:36:28 2010 +0000 eliminate CodeGen/DAGISelHeader.h, it is empty now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58132fddf1ea639401e08340d3c51143e93bbc15 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 06:34:30 2010 +0000 Sink InstructionSelect() out of each target into SDISel, and rename it DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader. Sink some other stuff out of DAGISelHeader into SDISel. Eliminate the various 'Indent' stuff from various targets, which dates to when isel was recursive. 17 files changed, 114 insertions(+), 430 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97555 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2d40399a72c153339f3b945f066b8c96c0bf3e0 Author: Eric Christopher <echristo@apple.com> Date: Tue Mar 2 06:25:00 2010 +0000 Only save vector registers if we've defined for the vector registers. Fixes PR5309. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97554 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f67a13451468f8ce717ca9027b6682877f9f7d2 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 06:04:12 2010 +0000 move some code out of DAGISelHeader up to SelectionDAGISel.h where it is shared by all targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97553 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab60ef8f311ea273509797ec2c4318732d1012ce Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Mar 2 05:32:52 2010 +0000 Fix looking up MD names to not need a module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97550 91177308-0d34-0410-b5e6-96231b3b80d8 commit e698201c7f1c69b21bc4793670d889309c54f924 Author: Eric Christopher <echristo@apple.com> Date: Tue Mar 2 05:17:21 2010 +0000 Move the docsdir to /usr/share/doc/llvm to match other projects. Fixes PR6267. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46d06bbfb91bf06007f62cf8e3e55db44f41d18f Author: Eric Christopher <echristo@apple.com> Date: Tue Mar 2 05:06:54 2010 +0000 Make sure we save CXXFLAGS before setting it as pedantic and regenerate configure. Fixes PR6388. Patch by Yann Droneaud! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dcff6b02d5fbca92a6f689dc736e899e7931eaf Author: Eric Christopher <echristo@apple.com> Date: Tue Mar 2 02:49:43 2010 +0000 Add file to CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97545 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33880353f3b7bb2b8068e6ed39eccc08c263f60e Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 2 02:38:24 2010 +0000 Add skeleton of a machine level cse pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97543 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37c9263aca6dab843a9b1b4d84b4fc4ccf52a732 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Mar 2 02:37:33 2010 +0000 Add count() and lookup() to ScopedHashTable. It might be useful to get information out of the hash table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97542 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd20d2550e38dec3e1b1666e4166c2c8e46850fb Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 02:37:23 2010 +0000 Use the right induction variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97541 91177308-0d34-0410-b5e6-96231b3b80d8 commit 645d1cecf03833d5fdcd62a62286d3193d6dda20 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 02:22:10 2010 +0000 Rewrite chain handling validation and input TokenFactor handling stuff now that we don't care about emulating the old broken behavior of the old isel. This eliminates the 'CheckChainCompatible' check (along with IsChainCompatible) which did an incorrect and inefficient scan *up* the chain nodes which happened as the pattern was being formed and does the validation at the end in HandleMergeInputChains when it forms a structural pattern. This scans "down" the graph, which means that it is quickly bounded by nodes already selected. This also handles token factors that get "trapped" in the dag. Removing the CheckChainCompatible nodes also shrinks the generated tables by about 6K for X86 (down to 83K). There are two pieces remaining before I can nuke PreprocessRMW: 1. I xfailed a test because we're now producing worse code in a case that has nothing to do with the change: it turns out that our use of MorphNodeTo will leave dead nodes in the graph which (depending on how the graph is walked) end up causing bogus uses of chains and blocking matches. This is really bad for other reasons, so I'll fix this in a follow-up patch. 2. CheckFoldableChainNode needs to be improved to handle the TF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97539 91177308-0d34-0410-b5e6-96231b3b80d8 commit a14a5077a5804713ff8262f5eb4ce43ab41aeb7e Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 2 02:14:38 2010 +0000 Fix several places to handle vector operands properly. Based on a patch by Micah Villmow for PR6438. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97538 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d553d864b97fd0283fe0d4f5a740780289386ed Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 2 01:59:21 2010 +0000 Non-affine post-inc SCEV expansions have more code which must be emitted after the increment. Make sure the insert position reflects this. This fixes PR6453. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97537 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b90d3794cfe6e8ad522399cf81af8afe01d6535 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Mar 2 01:55:18 2010 +0000 Remove dead parameter passing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97536 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d7ac48da3b9e6a7709d661695920c111bc8d172 Author: Devang Patel <dpatel@apple.com> Date: Tue Mar 2 01:26:20 2010 +0000 Constructors and operators for anonymous aggregates does not names. Do not force empty AT_name attribute in such cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97533 91177308-0d34-0410-b5e6-96231b3b80d8 commit df236b99612bf13242fd83e74e5ce902dc2050b2 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 2 01:11:08 2010 +0000 Floating-point add, sub, and mul are now spelled fadd, fsub, and fmul, respectively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97531 91177308-0d34-0410-b5e6-96231b3b80d8 commit f90913ecdaba0e911feff5419bddae0cd3945359 Author: Dan Gohman <gohman@apple.com> Date: Tue Mar 2 01:08:11 2010 +0000 PerformTailCallOpt was renamed to GuaranteedTailCallOpt to better reflect its meaning, now that tail call optimizations are done by default in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97530 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3fcac3316951ba07b0b7ea1b35fac04e47e43db Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 00:40:26 2010 +0000 remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 260058f76c2106f6f4acfdf38b1ef4a95c5945a4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 00:13:03 2010 +0000 add some missing \n's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97527 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50a69481871546040ce068be4513ad612331e46b Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Mar 2 00:09:29 2010 +0000 Don't attempt load PRE when there is no real redundancy (i.e., the load is in a loop and is itself the only dependency). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97526 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c85da73dae24e6f2b27378efe16b9a0624a5701 Author: Chris Lattner <sabre@nondot.org> Date: Tue Mar 2 00:00:03 2010 +0000 refactor some code out of OPC_EmitMergeInputChains into a new helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08a3d3fb1e0f5859d9a5700fc19a104dc99714ae Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 23:40:33 2010 +0000 remove some functions that were only used by the old isel generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97522 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdc2f6d89067566b9296fa533767143e92c3cc81 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Mar 1 23:37:32 2010 +0000 When GVN needs to split critical edges for load PRE, check all of the predecessors before returning. Otherwise, if multiple predecessor edges need splitting, we only get one of them per iteration. This makes a small but measurable compile time improvement with -enable-full-load-pre. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7feeb6e3d905c5fa8d4a2880629df7c4ef0e381e Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 23:08:51 2010 +0000 fixme resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24ebfdd24c06935f75e62e96895d37f35434a2f0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 22:51:11 2010 +0000 remove a little hack I did for the old isel, not needed now that it is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57ebc5e653cbf4284f907b24a0fab8add8115f08 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 22:49:06 2010 +0000 resolve some fixmes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d6a51163d2e8d0911aaeb265e8dfab3fc2a934a Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 22:46:42 2010 +0000 resolve a fixme and simplify code by moving insertion of the EmitMergeInputChainsMatcher node up into EmitResultCode. This doesn't have much of an effect on the generated code, the X86 table is exactly the same size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97514 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62300e6cebb26b0de1f8f99ed62463d0ef4d7c9c Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 22:29:19 2010 +0000 resolve a fixme by having the .td file parser reject thigns like (set GPR, somecomplexpattern) if somecomplexpattern doesn't declare what it can match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d53bd63665da09ed931b601d19da0c08097491f Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 1 22:23:12 2010 +0000 MemoryDepAnalysis is not used if redundant load processing is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d44157df53834c145dc42123b6e5fb777ca5539 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 22:20:05 2010 +0000 remove all but one version of SelectionDAG::MorphNodeTo (the most general) the others are dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97511 91177308-0d34-0410-b5e6-96231b3b80d8 commit a862e2d42700b96c82d6c8df8401519151972fe6 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 22:19:47 2010 +0000 remove dead code, simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97510 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22e438bea13c3dfcb0474c8d7553cb9f19bdcbb3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 22:09:11 2010 +0000 Fix PR2590 by making PatternSortingPredicate actually be ordered correctly. Previously it would get in trouble when two patterns were too similar and give them nondet ordering. We force this by using the record ID order as a fallback. The testsuite diff is due to alpha patterns being ordered slightly differently, the change is a semantic noop afaict: < lda $0,-100($16) --- > subq $16,100,$0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4418997fb6ffa56726629c271c122495c2c7c0c4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 22:04:33 2010 +0000 tolerate factoring the *last* node for CellSPU. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97508 91177308-0d34-0410-b5e6-96231b3b80d8 commit e15fe40f5a32095a05f4ff5f4893c62b87ce26ce Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Mar 1 22:00:11 2010 +0000 Remove the optimize for code size limitation on r67917. Optimize 64-bit imul by constants into leas + shl regardless if optimizing for code size. The size saving from using imulq isn't worth it. Also, the lea and shl instructions may expose further optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8295665bba2279540d57829dcecff576ae25e439 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 21:49:54 2010 +0000 optimize tblgen compile time by eliminating the old isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97504 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b23bcf07f255f7d4fce0e591e35471a75fdc683 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 21:45:21 2010 +0000 Make llc opt into the addPassesToEmitFile verify pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97502 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fb316404308c1aac6821255982e5b67866a499a Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 21:20:46 2010 +0000 remove a terrible hack that disabled assertions from this file because of build time problems. rdar://7697850. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97500 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2f406b555d99585ac8a4f1415285779696ddf1e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Mar 1 20:59:38 2010 +0000 Use methods to determine if a LiveInterval is spillable. Don't accidentally produce unspillable intervals for deeply nested loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97496 91177308-0d34-0410-b5e6-96231b3b80d8 commit c01812c5876a287ed5b8dcf6202a4f1bd96602b7 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 20:33:48 2010 +0000 Remove tests that checks @llvm.dbg.stoppoint handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97493 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c4d5029d1d0f88c30bf95fda9214a8d89bba751 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 20:24:50 2010 +0000 stop using anders-aa git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32f6cf91d506799397c854220680a4418e28cfad Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 20:24:05 2010 +0000 stop using anders-aa git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97491 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d424a60864d2adf37098d15c8a5c21545cdfa08 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 20:23:15 2010 +0000 remove andersen's tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97490 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa7e2749f520bbfd4a4d107e16d0704ed417c7ee Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 19:46:08 2010 +0000 @llvm.dbg.stoppoint intrinsic is not used anymore. Delete dead testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f7d3b5afa2490eb194fe931b6477fd22d3a96c2 Author: Ted Kremenek <kremenek@apple.com> Date: Mon Mar 1 19:42:47 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97488 91177308-0d34-0410-b5e6-96231b3b80d8 commit f30f0316e20fa83ab95dcbed7d7ba68c32347aad Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 19:41:26 2010 +0000 Update to use new debug info encoding scheme. As a bonus, now the test passes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97487 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5199788f617a98bf5b27759e1f797bf5e0b3923 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 19:39:15 2010 +0000 don't emit the old sdnodexform stuff for the new isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97486 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e46b9150341e9427461eadb8f6ad1ef9a189430 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 19:38:53 2010 +0000 stop using generated sdnodexforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97485 91177308-0d34-0410-b5e6-96231b3b80d8 commit d85206bea0a36f0c4076a32cb2e95601645e640f Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 19:29:17 2010 +0000 note that andersaa was removed in 2.7 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97484 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfbb0c6be01df99a6ffeae22115516f0e945fef2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 19:24:17 2010 +0000 remove anders-aa from mainline, it isn't maintained and is tantalyzing enough that people keep trying to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97483 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1f2cde6af7f0db1517bd466ccb899b4ee9d5a23 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Mar 1 19:22:00 2010 +0000 Added STRHT for disassembly only and fixed a bug in AI3sthpo class where the W bit should be set to 0 instead of 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97481 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0ab0702974c022f6a18439c5a48377ac2342c64 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 19:14:25 2010 +0000 Remove this test because it checks wheter optimizer handled @llvm.dbg.global_variable appropriately or not. LLVM does not use this scheme to encode debug info for global variables any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97480 91177308-0d34-0410-b5e6-96231b3b80d8 commit a269f3e1aba5cdad240aec7076ca5e7152d15969 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 19:09:55 2010 +0000 Remove test to check bugfix in handing debug info for global variables using intrinsics. Now, debug info for global variable is encoded using metadata. The old code path is now history and there is no need to have a test to check a bug fix in old code path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97477 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb1c9ef6ed13e877ccf48be75e6a1023c3b2b7c5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 19:05:25 2010 +0000 Turn on the new isel by default. Here are some fun numbers with a release-asserts build on x86-64-darwin10: LLC Size: Old: 15,426,852 New: 12,759,140 (down 2.7M) LLI Size: Old: 9,926,876 New: 8,864,292 (down 1.1M) X86ISelDAGToDAG.o size: Old: 1,401,232 New: 162,868 (down 1.3M) Time to build X86ISelDAGToDAG.o: Old: 67.147u 2.060s 1:09.78 New: 4.234u 0.387s 0:04.77 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97475 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d791b44af91da373093865ea230fbf38ec0948f Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 19:04:23 2010 +0000 Remove dead test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97474 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7ed258a0bfd46180a030422d9558aa74d20bcfe Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 19:02:51 2010 +0000 Replace test case that uses @llvm.dbg.* intrinsic with a test that uses metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97473 91177308-0d34-0410-b5e6-96231b3b80d8 commit d43e9a3a28b001bf2dbbcd34a4fbebecf7e64d4d Author: Edwin Török <edwintorok@gmail.com> Date: Mon Mar 1 19:00:55 2010 +0000 Missed a \n in previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97472 91177308-0d34-0410-b5e6-96231b3b80d8 commit 900084a3a996d57d247b2cf2e5dc3891f38bb6ef Author: Edwin Török <edwintorok@gmail.com> Date: Mon Mar 1 18:49:10 2010 +0000 Add command-line flag to tblgen to turn off generating comments for the new isel (defaults it to generate comments). This reduces the size of the generated source file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97470 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cf6005fd6c4683897dc7900db9d0e18f1c1c163 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 18:47:11 2010 +0000 Accelerate isel dispatch for tables that start with a top-level OPC_SwitchOpcode to use a table lookup instead of having to go through the interpreter for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97469 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73faf3b452fb3f786eaf59dd94653f0a1e417f97 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 18:45:28 2010 +0000 These two tests check whether oprimizer safely ignores @llvm.dbg.stoppoint intrinsic or not. This intrinsic is not used anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57fb3dc4756b2368cd4dfc9d7dc69fbd07ec6eba Author: John McCall <rjmccall@apple.com> Date: Mon Mar 1 18:38:45 2010 +0000 Don't potentially read past the end of the fill data when making a NaN from an APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97467 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce6fc8a4994331b09cae2aea6d056acd7d854acb Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 18:32:27 2010 +0000 This test checks whether LICM ignores @llvm.dbg.stoppoint intrinsics appropriately or not. Now, llvm does not use this intrinsic. Remove this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97466 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff71abdc1ad48564ec39a08c2dfc8ada00d09269 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 18:30:58 2010 +0000 Rewrite test to test VLA using new debug info encoding scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97465 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2208249ae2bfc2bfe44891b9428285f1be8ecb8 Author: Devang Patel <dpatel@apple.com> Date: Mon Mar 1 18:30:08 2010 +0000 Remove this generic debug info intrinsic test. LLVM does not use this llvm.dbg.stoppoint intrinsic anymore. There are tests to check new implementation, which attaches location information directly with an instruction using metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97464 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67cd6e6ab83953b91433830206ccd949cdd42546 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:59:21 2010 +0000 Fix optimization of ISD::TRUNCATE on vector operands. Based on a patch by Micah Villmow for PR6335. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97461 91177308-0d34-0410-b5e6-96231b3b80d8 commit 394b4939b4abb5aaa780407b6185638488fa9171 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:56:46 2010 +0000 Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97460 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbbcd55632c777c274e90f3287fc0c3e89e388ac Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:56:04 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97459 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f37d90123bcf49949425057710641d0e35897d2 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:55:27 2010 +0000 Add some debug output to LoopSimplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97458 91177308-0d34-0410-b5e6-96231b3b80d8 commit c099730599723c7545055dd1ce973b8e86ddc422 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:53:39 2010 +0000 Add the alignstack keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4aca1f7708d659f0f318433f12f4a985aa753aad Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:53:15 2010 +0000 LLVM instruction syntax doesn't have trailing semicolons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bc097deea0aef83a61f7058471b2962416bb8a3 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:52:16 2010 +0000 svn:ignore fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97455 91177308-0d34-0410-b5e6-96231b3b80d8 commit a823e5e5935f53e6446c1adc4efde2974a9ca8e3 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:51:02 2010 +0000 Spelling fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03bf33a56bce72af7a76cea32f2b01fe0ab5a4e1 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:49:51 2010 +0000 Spelling fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39cf7ad065e20be0898c6003b3e350cb42f379eb Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:47:21 2010 +0000 Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97452 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6600d10855c8457fb20f04362c678911f6cfb648 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:45:15 2010 +0000 Use Doxygen comment syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97451 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f6a178532279b83f4eb30d58ec66f704f219e87 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:43:57 2010 +0000 This is now done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2119ecfcab1b531dbd10b8371c5b143aa155b75a Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:42:55 2010 +0000 Fix a missing newline in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9568d4b7819c5d7f928ace96ea7d7732e3db2eb4 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:42:17 2010 +0000 Prune #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97448 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5c104e7a9aabb7645db735cd4cdfc714b5916fc Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:41:39 2010 +0000 Fix spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97447 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6577b50b6f8ad580eb7d3f7016f0273457061098 Author: Dan Gohman <gohman@apple.com> Date: Mon Mar 1 17:34:28 2010 +0000 Don't print "Modified" for passes which haven't modified anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97446 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98bcbe6c99e81d18bd0aec239b0a818fc42df6e9 Author: Nathan Keynes <Nathan.Keynes@sun.com> Date: Mon Mar 1 10:40:41 2010 +0000 Add JIT support to the TODO list (test commit) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97443 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dc91ac6e34d324bab29063b90aff9f6216541b8 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 07:54:59 2010 +0000 Emit type checks late instead of early, this encourages structural matching code to be factored and shared this shrinks the X86 isel table from 86537 to 83890 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97442 91177308-0d34-0410-b5e6-96231b3b80d8 commit c512fe0ee4f668f6df9c4e2adf994a042c589597 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 07:43:08 2010 +0000 some trivial microoptimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97441 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad0f17c91f61dd1118e48937e67b82381f26a8be Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 07:27:07 2010 +0000 Emit a redundant check for immediates at root context, e.g. (imm 0). This allows formation of OpcodeSwitch for top level patterns, in particular on X86. This saves about 1K of data space in the x86 table and makes the dispatch much more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97440 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ccd7096ef3cd69a663ec57bf08515f42feb7fc1 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 07:17:40 2010 +0000 eliminate the CheckMultiOpcodeMatcher code and have each ComplexPattern at the root be generated multiple times, once for each opcode they are part of. This encourages factoring because the opcode checks get treated just like everything else in the matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97439 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b12730d457b342eb88dcca8bc7a6af4be6167ca Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 06:59:22 2010 +0000 add a new OPC_SwitchOpcode which is semantically equivalent to a scope where every child starts with a CheckOpcode, but executes more efficiently. Enhance DAGISelMatcherOpt to form it. This also fixes a bug in CheckOpcode: apparently the SDNodeInfo objects are not pointer comparable, we have to compare the enum name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e68128b5add40945c87a8158210a262882b74d0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 02:33:14 2010 +0000 pull MarkFlagResult out from between an EmitNode/CompleteMatch pair. This encourages MorphNodeTo formation, this gets us 200 more MorphNodeTo's on X86 and shrinks the table a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fb9cc77917868b356308408cccec6556b692058 Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 02:24:17 2010 +0000 enhance RecordNode and RecordChild comments to indicate what slot they're recording into, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97433 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51a318403fb8e5d67c3aeeee9f31d1f01d2aa4ab Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 02:15:34 2010 +0000 Emit redundant opcode checks for andimm and orimm tests at root so that we get grouping at the top level. Add an optimization to reorder type check & record nodes after opcode checks. We prefer to expose tree shape matching which improves grouping and will enhance the next optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97432 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea9b74379f485b6de4fef0ba8f6217fd9b84f16b Author: Chris Lattner <sabre@nondot.org> Date: Mon Mar 1 01:54:19 2010 +0000 inline the node transforms and node predicates into the generated dispatcher method. This eliminates the dependence of the new isel's generated code on the old isel's predicates, however some random hand written isel code still uses them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97431 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ce0b03a5953fefa42ca43c150130907903bd64a Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 23:00:47 2010 +0000 simplify some code now that chain/flag results are not stored in the vtlist for emitnode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97429 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfbeef9fd80c771c49c245f10b42d2a636a6934f Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 22:57:03 2010 +0000 don't emit useless functions. These were producing warnings in release-assert builds if there were no cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97428 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36ae3a009e6568e3ca67b2a2fbfe7856291c13e2 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Feb 28 22:54:30 2010 +0000 80-col violations/trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97427 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96cef7b5473e983c9ff73eb828499e6a13f751d7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 22:38:43 2010 +0000 eliminate GetInt1/2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97426 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0417ed0c15a13e3db6ffe44ee2c48173484a1109 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 22:37:22 2010 +0000 hoist the new isel interpreter out of DAGISelHeader.h (which gets #included into the middle of each target's DAGISel class) into a .cpp file where it is only compiled once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97425 91177308-0d34-0410-b5e6-96231b3b80d8 commit 856846ab383401ba1dbfeeec0f47ced8b118a4bb Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 22:14:32 2010 +0000 change a few opcodes to use VBRs instead of embedding immediate sizes into the opcode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97423 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb595e5073d524aee1567d7cee9fe3494278eb6f Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 21:58:42 2010 +0000 move all the opcodes out of DAGISelHeader.h (which gets #included into the middle of each isel class) into a real header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43c6ab0a079de32d6fb58d1a90a3809ba2901908 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 21:56:16 2010 +0000 resolve a fixme by using hte new flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97420 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7fcce3c10c92cbf96d224235dc4b76cfd08fde8 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 21:53:42 2010 +0000 enhance the EmitNode/MorphNodeTo operands to take a bit that specifies whether there is an output flag or not. Use this instead of redundantly encoding the chain/flag results in the output vtlist. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53bd1ebee622628c7343ed41c5712f36b6e4ce5e Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 21:36:14 2010 +0000 enhance the new isel to handle the 'node already exists' case of MorphNodeTo directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97417 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7f6db0a804e649cf9ca8287e124992f1fb4c9fe Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 20:55:18 2010 +0000 use MorphNodeTo instead of SelectNodeTo. SelectNodeTo is just a silly wrapper around MorphNodeTo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97416 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4051f97bd0cec2c25a612275d784bf3158f7d519 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 20:49:53 2010 +0000 enhance the new isel to use SelectNodeTo for most patterns, even some the old isel didn't. There are several parts of this that make me feel dirty, but it's no worse than the old isel. I'll clean up the parts I can do without ripping out the old one next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83cf81459909f6ad4fc1d4f4156b80ba7af75069 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 20:45:03 2010 +0000 Add support getting the operands of a User to ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 450fb9a0dcaea37af6c84ab5dad4300dd8879c88 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 20:44:58 2010 +0000 Add support for global aliases to ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97413 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3bde2b90fafbbf7d9aabf68b23af9b628cf0085 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 20:44:53 2010 +0000 Add support for inserting inline asm to ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97412 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93a2c6ec39a97fe46492cf53eb650eddab7bbfc1 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 20:36:49 2010 +0000 add some random nounwinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97411 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa921203d13ac0fb0d154010c24a417958283020 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 18:57:59 2010 +0000 I'm removing andersaa after the branch is made. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d3d749dfb45895948c6a8d8528e1bd2a7b13837 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 18:53:13 2010 +0000 simplify this code, return only ever has zero or one operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97408 91177308-0d34-0410-b5e6-96231b3b80d8 commit a60c85a69c177be912465a44b4717adfeb979816 Author: John McCall <rjmccall@apple.com> Date: Sun Feb 28 12:49:50 2010 +0000 Properly clear all the extra bits in a significand when making a NaN from an APInt. Be certain to set the integer bit in an x87 extended-precision significand so that we don't accidentally make a pseudo-NaN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97382 91177308-0d34-0410-b5e6-96231b3b80d8 commit b73b9b8128235c347a93945605d1cd84e582696c Author: John McCall <rjmccall@apple.com> Date: Sun Feb 28 09:55:58 2010 +0000 Add an override to StringRef::getAsInteger which parses into an APInt. It gets its own implementation totally divorced from the (presumably performance-sensitive) routines which parse into a uint64_t. Add APInt::operator|=(uint64_t), which is situationally much better than using a full APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97381 91177308-0d34-0410-b5e6-96231b3b80d8 commit f70395da00a55ea0ae9734f316d3be00e31978a7 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 09:46:27 2010 +0000 Add support for getting a null pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97380 91177308-0d34-0410-b5e6-96231b3b80d8 commit b522f73045d581a47646967565b75e494ced5c79 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 09:46:21 2010 +0000 Add a way to look up a type by it's name in a module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97379 91177308-0d34-0410-b5e6-96231b3b80d8 commit d00375038d31c98adbbf3c990168b1fac0cd2735 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 09:46:16 2010 +0000 Add replace_all_uses_with to ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dc2daf8a6c205a9ee950843ad527b5b88e7463d Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 09:46:13 2010 +0000 Add support for global variables in an address space for llvm-c and ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97377 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15b767e020fdfaa8d198f5f030d330469a5f131a Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 09:46:06 2010 +0000 Add indirect br support to llvm-c and ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8aaaa83f6c0ab52f16a54243e9b68057e8148d7f Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 09:45:59 2010 +0000 Add metadata functions to llvm-c and ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97375 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5e4e15881e31968d97b62653a4379fed11c4f3d Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 07:23:21 2010 +0000 remove redundant instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97374 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8936e3701522f0e8fd033265372badb466bc84e Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 05:51:43 2010 +0000 Add the new builder arthmetic instructions to llvm-c and ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97372 91177308-0d34-0410-b5e6-96231b3b80d8 commit efc5c4e7d824f4ad8619c5e615062f2928479350 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 05:51:33 2010 +0000 Add the new union arthmetic instructions to llvm-c and ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97371 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c8058555c5031abf80cbd817ae869991069742b Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 05:51:27 2010 +0000 Add generic binary op and cast builder functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7aede7fced6359bd3aa9869ef3d5d0ce5362fb6f Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 05:51:21 2010 +0000 Rename ocaml vmcore tests to make it easier to insert tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 146b87473f05694f887df9b3e6c546e95e868941 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 05:51:16 2010 +0000 Fix incorrect uses of an ocaml llbuilder without extracting it from ocaml. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0279de8b895de809986fe333fed332d7c2566cf2 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Sun Feb 28 05:51:09 2010 +0000 Remove malloc and free from the ocaml bindings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97367 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7d12e99d2a502cec60edc40fccf93e065cc2968 Author: Bob Wilson <bob.wilson@apple.com> Date: Sun Feb 28 05:34:05 2010 +0000 Revert r97245 which seems to be causing performance problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97366 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91b67e07d2385dc10690b7616b0d130049be6185 Author: John McCall <rjmccall@apple.com> Date: Sun Feb 28 02:51:25 2010 +0000 Teach APFloat how to create both QNaNs and SNaNs and with arbitrary-width payloads. APFloat's internal folding routines always make QNaNs now, instead of sometimes making QNaNs and sometimes SNaNs depending on the type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97364 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc3645f2ee3c76cd9e607ddcb431d05048e52b1f Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 02:41:25 2010 +0000 enhance EmitNodeMatcher to keep track of the recorded slot numbers it will populate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97363 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d33d1b229f9c69b7d426477fc02a4c060a40d13 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 02:31:26 2010 +0000 add infrastructure to support forming selectnodeto. Not used yet because I have to go on another detour first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97362 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62f32a3103755eaf327dfafd131c4c459858e326 Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 28 01:33:43 2010 +0000 Don't try to replace physical registers when doing CSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8511f87ea283219b6d25d37fe66179b511e35e9f Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 28 00:41:59 2010 +0000 Add a flag to addPassesToEmit* to disable the Verifier pass run after LSR, so that clients can opt in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97357 91177308-0d34-0410-b5e6-96231b3b80d8 commit c58b4d7e491b331370d3a79a43a986f1946a93d2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 28 00:22:30 2010 +0000 Generalize my hack to use SDNodeInfo to find out when a node is always guaranteed to have a particular type instead of hacking in ISD::STORE explicitly. This allows us to use implied types for a broad range of nodes, even target specific ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 497f06b7b7bc7205a6379d1abe5d10b8fa4d9bf4 Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 28 00:17:42 2010 +0000 Implement XMM subregs. Extracting the low element of a vector is now done with EXTRACT_SUBREG, and the zero-extension performed by load movss is now modeled with SUBREG_TO_REG, and so on. Register-to-register movss and movsd are no longer considered copies; they are two-address instructions which insert a scalar into a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9aa35000ba4cbc3d03575ab72d657d82f761f370 Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 28 00:08:44 2010 +0000 Don't unconditionally suppress hoisting of instructions with implicit defs or uses. The regular def and use checking below covers them, and can be more precise. It's safe to hoist an instruction with a dead implicit def if the register isn't live into the loop header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97352 91177308-0d34-0410-b5e6-96231b3b80d8 commit de6a265c339af6a79f20a4add9c890f09521fe71 Author: Dan Gohman <gohman@apple.com> Date: Sat Feb 27 23:53:53 2010 +0000 Add nounwinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35d4ac0dc7c9a2616bb63d2f133c688b8299f525 Author: Dan Gohman <gohman@apple.com> Date: Sat Feb 27 23:47:46 2010 +0000 The mayHaveSideEffects flag is no longer used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97348 91177308-0d34-0410-b5e6-96231b3b80d8 commit d99a053a4c2e05046149d6c7bb5dde3807d999ec Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 21:48:43 2010 +0000 change CheckOpcodeMatcher to hold the SDNodeInfo instead of the opcode name. This gives the optimizer more semantic info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97346 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4247398be6f858db37404021873d11b8e8c4f985 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 21:15:32 2010 +0000 remove a bogus pattern, which had the same pattern as STDU but codegen'd differently. This really wanted to use some sort of subreg to get the low 4 bytes of the G8RC register or something. However, it's invalid and nothing is testing it, so I'm just zapping the bogosity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97345 91177308-0d34-0410-b5e6-96231b3b80d8 commit a438b4a8e0e10a25846fe051b68153917abc9538 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 08:19:47 2010 +0000 add another case from the ppc backend. This is obviously a huge and dissatisfying hack. TODO: Improve it. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97317 91177308-0d34-0410-b5e6-96231b3b80d8 commit dacb44537c6fec3bd9dfb76512ae9d3f327250f6 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 08:18:55 2010 +0000 fix an incorrect (overly conservative) predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24ca8ffb85f2e87c2cc89e910f8de279336c142f Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 08:13:23 2010 +0000 fix logic in DEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97315 91177308-0d34-0410-b5e6-96231b3b80d8 commit d04d261fdcd3ac272de8cb68226825fa9eba6313 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 08:11:15 2010 +0000 teach the optimizer that opcode == ISD::STORE is contradictory with getType() == MVT::i32 etc. Teach it that two different integer constants are contradictory. This cuts 1K off the X86 table, down to 98k git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97314 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5834855cea71c583026c77c7bde0ec2fbbd97a25 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 07:50:40 2010 +0000 fix grammaro's pointed out by daniel git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97313 91177308-0d34-0410-b5e6-96231b3b80d8 commit 830549b90a14b345509a0984526c78eb1c65fffa Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 07:49:13 2010 +0000 Teach the grouper some simple tricks about looking contradictory predicates. For example if we have: Scope: CheckType i32 ABC CheckType f32 DEF CheckType i32 GHI Then we know that we can transform this into: Scope: CheckType i32 Scope ABC GHI CheckType f32 DEF This reorders the check for the 'GHI' predicate above the check for the 'DEF' predidate. However it is safe to do this in this situation because we know that a node cannot have both an i32 and f32 type. We're now doing more factoring that the old isel did. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97312 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f3fcd72c730a01993b6cf1563d03e56da42c237 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Feb 27 07:36:59 2010 +0000 Re-apply 97040 with fix. This survives a ppc self-host llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 792a0ed7161970678528fc14db1c8d9a6a719247 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 06:51:44 2010 +0000 use DEBUG instead of DebugFlag directly so that this respects -debug-only=something-else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97307 91177308-0d34-0410-b5e6-96231b3b80d8 commit 509ed849a170b844b41841ae3aa518040e191de8 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 06:22:57 2010 +0000 implement a new optimization to sink pattern predicates (like isSSE1) as deeply into the pattern as we can get away with. In pratice, this means "all the way to to the emitter code, but not across ComplexPatterns". This substantially increases the amount of factoring we get. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97305 91177308-0d34-0410-b5e6-96231b3b80d8 commit d600f8d37b6ec0f628498b978f078fdae0a56247 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Feb 27 01:05:51 2010 +0000 The TType is always absptr on Mach-O...at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97295 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9ceeeae6ddb552b4c4d6319f6f38e9b691edd3d Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Feb 27 00:25:18 2010 +0000 Fix the ocaml bindings for the bitcode reader. llvm_get_module_provider() was returning a value of the wrong type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 360dc7efa16a2c94ca408ff16921b2295117a05b Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 27 00:07:42 2010 +0000 fix PR6414, a nondeterminism issue in IPSCCP which was because of a subtle interation in a loop operating in densemap order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97288 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cd1e9442328fdae0d0d84e2e21dbcaae0d454fa Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 23:42:13 2010 +0000 Fix rdar://7694996 a miscompile of 183.equake from my patch yesterday, confusing the old MAT variable with the new GlobalType one. This caused us to promote the @disp global pointer into: @disp.body = internal global double*** undef instead of: @disp.body = internal global [3 x double**] undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8976a55c744f61ee237c314bd0b066631f016b54 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 23:35:25 2010 +0000 remove dead code, by this point all uses of CI are gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97283 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3cd39b2d873bbc924dd63f5eaad787bda20b92c Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Feb 26 22:25:06 2010 +0000 Test that docs are updating. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97279 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3965a7b28926fb40c38c0a2aec31808f86285aa Author: John McCall <rjmccall@apple.com> Date: Fri Feb 26 22:20:41 2010 +0000 Make APFloat's string-parsing routines a bit safer against very large exponents. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00969bab536007305f3d9d9c7ff1b762ee86fc8c Author: Bill Wendling <isanbard@gmail.com> Date: Fri Feb 26 22:17:52 2010 +0000 A much cleaner (and less code!) way of inserting the correct amount of padding for alignment into the LSDA. If the TType base offset is emitted, then put the padding there. Otherwise, put it in the call site table length. There will be no conflict between the two sites when placing the padding in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97277 91177308-0d34-0410-b5e6-96231b3b80d8 commit a13a014855f0a2b93cb4e26fd33648d976691a5b Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Feb 26 22:04:29 2010 +0000 Added the follwoing 32-bit Thumb instructions for disassembly only: o Parallel addition and subtraction, signed/unsigned o Miscellaneous operations: QADD, QDADD, QSUB, QDSUB o Unsigned sum of absolute differences [and accumulate]: USAD8, USADA8 o Signed/Unsigned saturate: SSAT, SSAT16, USAT, USAT16 o Signed multiply accumulate long (halfwords): SMLAL<x><y> o Signed multiply accumulate/subtract [long] (dual): SMLAD[x], SMLALD[X], SMLSD[X], SMLSLD[X] o Signed dual multiply add/subtract [long]: SMUAD[X], SMUSD[X] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97276 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe01e44b8a2fc762d4514160955dede4ca282c8e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Feb 26 21:53:24 2010 +0000 Merge PPC instructions FMRS and FMRD into a single FMR instruction. This is possible because F8RC is a subclass of F4RC. We keep FMRSD around so fextend has a pattern. Also allow folding of memory operands on FMRSD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97275 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0121a9111a1eb81a2aec04671e30a540ff3a7df4 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 21:45:37 2010 +0000 Fix grammaro in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97273 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c95ce5459c63f98c09cd3c3bc44cd76dbd6d5fa Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 21:39:02 2010 +0000 Use the right svn:keywords value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d3f1b5dff1263397df8b3b30c48a5184be36f94 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 21:38:04 2010 +0000 Add Revision keywords to these files, as it's common for them to be copied out of the source tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97270 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcc1fcf93d832105213aff60ee0cfe7fc30a1a6b Author: Bill Wendling <isanbard@gmail.com> Date: Fri Feb 26 21:31:01 2010 +0000 Comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97269 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed686f4264ca2a868811193b3ce64b6fbefaf0bd Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 21:26:33 2010 +0000 don't build edis if the x86 target isn't enabld. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97268 91177308-0d34-0410-b5e6-96231b3b80d8 commit 193c9fd0cb4dd45ae7003b71b9f6336aebec0773 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 21:24:46 2010 +0000 Improve the vim code for highlighting trailing whitespace and lines longer than 80 columns. This replaces the heavy-handed "textwidth" mechanism, and makes the trailing-whitespace highlighting lazy so that it isn't constantly jumping on the user during typing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97267 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc6e0499f95fc697c42e9c84463e0dd6f3446850 Author: Tanya Lattner <tonic@nondot.org> Date: Fri Feb 26 21:23:59 2010 +0000 Test autoupdate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97266 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b54f4ff53bb38c245970d79b4f0662cdd3212ed Author: Tanya Lattner <tonic@nondot.org> Date: Fri Feb 26 21:19:09 2010 +0000 Test auto update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97265 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cf739796efea50e724cbda35c535613126414c2 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 21:16:17 2010 +0000 Add the alignstack keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f7d0be35e02a24b8ba3290254bdcec816592b61 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 21:15:49 2010 +0000 Remove bogus Updated line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97263 91177308-0d34-0410-b5e6-96231b3b80d8 commit d21af378e4c987c368684e57fb90ec61660f95b8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Feb 26 21:09:24 2010 +0000 Use the right floating point load/store instructions in PPCInstrInfo::foldMemoryOperandImpl(). The PowerPC floating point registers can represent both f32 and f64 via the two register classes F4RC and F8RC. F8RC is considered a subclass of F4RC to allow cross-class coalescing. This coalescing only affects whether registers are spilled as f32 or f64. Spill slots must be accessed with load/store instructions corresponding to the class of the spilled register. PPCInstrInfo::foldMemoryOperandImpl was looking at the instruction opcode which is wrong. X86 has similar floating point register classes, but doesn't try to fold memory operands, so there is no problem there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97262 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55a6b3854c1c906f66abfac8d890f7cc41d39884 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Feb 26 21:09:20 2010 +0000 Remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97261 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa08d6d52785dd06ecdc0e101e169ed963d9fee9 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Feb 26 20:43:33 2010 +0000 Remove REQUIRES_EH from the suggested set of make variables, since users can build with exceptions even if LLVM is built without. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97260 91177308-0d34-0410-b5e6-96231b3b80d8 commit 837fd84eff2aef17d7e036241baccb383a91c44b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Feb 26 20:28:29 2010 +0000 Replace a temporary std::string with SmallString. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97259 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce4ae7a26789a5cc8332d575466b00bb43053568 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 20:18:32 2010 +0000 Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02defac4a7ea5025c71e0d2f371cf7fac1f3e269 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 20:16:58 2010 +0000 Delete empty directories. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38a74a3e8dc4bc2c343d01ee6645fadc611d899f Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 26 20:01:55 2010 +0000 Move dbg_value generation to target-independent FastISel, as X86 is currently the only FastISel target. Per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97255 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5d788748fccb8dca8ccb406b45adf04baac48d6 Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 26 19:39:56 2010 +0000 Further constify MDNode* references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7376e1b36c13b3fd0d9cf1df033e1ca6c08b23be Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 26 19:38:59 2010 +0000 Add type printing for Metadata pseudo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d6a7ebc285174e734eae27611301c505c537764 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Feb 26 19:09:47 2010 +0000 Move the EnableFullLoadPRE flag from a separate command-line option to an argument of createGVNPass and set it automatically for -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97245 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d0e14b692a1c220f012d76be88adb4a4b50dda9 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Fri Feb 26 18:38:44 2010 +0000 disable-mem2reg and disable-gvn options should not be used by the driver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97236 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b3a0ccf3a43747662aad9a5c9c9ceee74bdbe54 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Feb 26 18:35:19 2010 +0000 Remove unused "NoPRE" parameter in GVN and createGVNPass(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97235 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3606dbe53179e7d9b94eb9015e92017715b5938 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 18:32:26 2010 +0000 pass in more section kinds, enough to get the .align 0x90 stuff to emit optimal nops in the right places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 338ffcf804d1a754fa21eae3555f1cad030437ca Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Fri Feb 26 18:32:18 2010 +0000 The cloner has nothing to do if any of the main or ISR entrypoints are not present in the module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31eac0edbafd56f31d2536daeb47f37c2267c1f4 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 18:23:13 2010 +0000 fix PR6435 another bug from the MallocInst elimination work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f6ab3ff36eb4ef9521db8aef90801057b8086bb Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Feb 26 18:07:00 2010 +0000 Set svn:keywords property on docs/Packaging.html. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97878a0d8d271041b3a72e45832d08cda8e0ee93 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Feb 26 18:03:43 2010 +0000 Add to the packaging advice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97229 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc6fcccc4b7966c23e7dcaacb9d27bf7e7810223 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Fri Feb 26 17:59:28 2010 +0000 Reapply things reverted back in 97220, with the fixed test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25fa95c3b6422e0792ade7a1afa60eb1c3c3098a Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 16:49:27 2010 +0000 movl is a cheaper way to materialize 0 without clobbering EFLAGS than movabsq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 095893143d070222b4d3627c7eb1464909f90312 Author: Richard Osborne <richard@xmos.com> Date: Fri Feb 26 16:44:51 2010 +0000 Fix XCoreTargetLowering::isLegalAddressingMode() to handle VoidTy. Previously LoopStrengthReduce would sometimes be unable to find a legal formula, causing an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97226 91177308-0d34-0410-b5e6-96231b3b80d8 commit d291e6e8eb4590e0094855f1f732e2dcfe66ac9e Author: Chandler Carruth <chandlerc@gmail.com> Date: Fri Feb 26 08:43:09 2010 +0000 Revert r97211 and r97213 to get the build green again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97220 91177308-0d34-0410-b5e6-96231b3b80d8 commit b90bb4346576b86c6b18c5c3cd6e0c666705650d Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 08:15:02 2010 +0000 add some helpful comments to the emitter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97219 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f9178d662149c01455db2c1a6a99458edea52ea Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 08:08:41 2010 +0000 switch from my nice hashtable based merging solution to a gross little neighbor merging implementation. This one has the benefit of not violating the ordering of patterns, so it generates code that passes tests again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97218 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb86fc33d99ce108b83067264e57d81163c3ec74 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 08:06:02 2010 +0000 fix same bug in CheckChainCompatibleMatcher::isEqualImpl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97217 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5897353a7c64ec534b347ffaee2ea0f4ea71ba5 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 08:05:36 2010 +0000 fix a nasty bug in CheckTypeMatcher::isEqualImpl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97216 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66595ab540f5f03ba40935506f230f1dd5f3c614 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 07:36:37 2010 +0000 finish off the factoring optimization along the lines of the current design. This generates a matcher that successfully runs, but it turns out that the factoring we're doing violates the ordering of patterns, so we end up matching (e.g.) movups where we want movaps. This won't due, but I'll address this in a follow on patch. It's nice to not be on by default yet! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b3ba4224ce5187e937a80812ed02ee15d6b0fa2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 07:35:27 2010 +0000 add a new setNumChildren method for resizing scopes. Tweak getHash() so that we never return a tombstone value, which (thankfully) triggers an assert in densemap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97214 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba7d63b090d32aeb6c875972e5b0a3e5a67c6af9 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Fri Feb 26 07:31:15 2010 +0000 Currently in LLVM, names of libcalls are assigned during TargetLowering object construction. There is no provision to change them when the code for a function generated. So we have to change these names while printing assembly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97213 91177308-0d34-0410-b5e6-96231b3b80d8 commit e14d01fc992a5e2ce1d78a1a6864eea9f3e797a8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 07:28:20 2010 +0000 fix the matcher in the presence of multiple scopes: we need to save and restore the entire matcher stack by value. This is because children we're testing could do moveparent or other things besides just scribbling on additions to the stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ca8903c0caadb86f80763653dfc838f34bae7e5 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Fri Feb 26 07:27:35 2010 +0000 Before converting an operand to mem, check if it is legal to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97211 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad8ae688adffd304a7453e88e2c6139a755e81ad Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 26 02:40:57 2010 +0000 this file lacks a run line! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08094647d10c1a4be6b1947a4f6745128bd47560 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 02:15:17 2010 +0000 Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97206 91177308-0d34-0410-b5e6-96231b3b80d8 commit a11c31a0f605235a8c39c3726e4180b525934a76 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 26 01:14:30 2010 +0000 Delete a bunch of redundant predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2978dc8ec509246ee9564846e3a3beaf69e7c320 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Feb 26 01:12:52 2010 +0000 Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97200 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3b25988a817adc6ea6a01a324f2f92053977c52 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Feb 26 00:54:42 2010 +0000 Give packagers some advice about how to build LLVM so it's useful to the most users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ef6de4e422e1fe70cdac4d733dfad35d0db7955 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Feb 26 00:43:54 2010 +0000 Add another (and hopefully the last) exception case, where once we recalculate the alignment requirement, if it no longer makes the TType base offset overflow into extra bytes, then we need to pad to those bytes ourselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09191712250bd71363403a56ebab15bf78d59ddb Author: Bill Wendling <isanbard@gmail.com> Date: Fri Feb 26 00:24:25 2010 +0000 And should use the correct variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97193 91177308-0d34-0410-b5e6-96231b3b80d8 commit c90d1edb08d7dad93a41e10ff593d556fa10f3bc Author: Bill Wendling <isanbard@gmail.com> Date: Fri Feb 26 00:22:42 2010 +0000 Got assertion check backwards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97192 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3246d273e5dd23259e066a7b214416ba79054aaf Author: Bill Wendling <isanbard@gmail.com> Date: Thu Feb 25 23:52:44 2010 +0000 Catch a corner case where adding the padding to the "TType base offset" field will eliminate the need for padding in the "Call site table length". E.g., if we have this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0x7f ## @TType base offset .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length with padding of 1. We want to emit the padding like this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0xff ## @TType base offset .space 1,0 ## Padding .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length and not with padding on the "Call site table length" entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97183 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e6ecdb72a446a8bc4dab0b4fc794f6e281543ac Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 23:51:27 2010 +0000 Fix a few more typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97182 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fe65922d2e711f2a7b3571c88a212e403f1f6be Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 23:41:41 2010 +0000 Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97181 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90146b2b24f3143af41bc061ed80293f93ce149d Author: John Criswell <criswell@uiuc.edu> Date: Thu Feb 25 22:57:19 2010 +0000 Added SAFECode (safecode) to the list of projects to automatically configure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97179 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e7b3ba394bf30ed84a7b458f28dee285ab14af6 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 22:33:52 2010 +0000 rewrite OptimizeGlobalAddressOfMalloc to fix PR6422, some bugs introduced when mallocinst was eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97178 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62a987ca0bf453a147a245629ebd5b927431d49f Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Feb 25 22:09:09 2010 +0000 tests: Propogate the HOME environment variable through to tests. I'm ambivalent about this, but it can be useful for users who use ccache, since the LLVMC tests are fond of calling gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97171 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69f0bf8bdddcad98a7208edbaee2f9348c70b35c Author: Bill Wendling <isanbard@gmail.com> Date: Thu Feb 25 21:23:24 2010 +0000 Fix HTML. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f56ec28fec2419c8517ea9e4bd6486747776af7 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Feb 25 21:19:47 2010 +0000 Make comment more meaningful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97169 91177308-0d34-0410-b5e6-96231b3b80d8 commit e163d0ab418f5bcf1ecdb20d6f5ce2761dfb3f4d Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 20:56:25 2010 +0000 Add svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17d4481a6d2a63898b4bac80b884a06f2777c572 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 20:30:49 2010 +0000 Fix ExpandVectorBuildThroughStack for the case where the operands are themselves vectors. Based on a patch by Micah Villmow for PR6338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97165 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88048deab97eca1d1215984920409e6145da3831 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 25 20:25:24 2010 +0000 Added the following 32-bit Thumb instructions for disassembly only: SMC, RFE, and SRS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97164 91177308-0d34-0410-b5e6-96231b3b80d8 commit a07e055aede2b7016019d4ec24cb82785eee9041 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 25 19:05:29 2010 +0000 Added the 32-bit Thumb instructions (BXJ) for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97163 91177308-0d34-0410-b5e6-96231b3b80d8 commit d913047f01a0ec03c2c0f5e48f619aa31e72202a Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 19:00:39 2010 +0000 change the scope node to include a list of children to be checked instead of to have a chained series of scope nodes. This makes the generated table smaller, improves the efficiency of the interpreter, and make the factoring optimization much more reasonable to implement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97160 91177308-0d34-0410-b5e6-96231b3b80d8 commit e52ee1611aec57416b5e43fe1efa56fc247f46b0 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 25 18:46:43 2010 +0000 Added the 32-bit Thumb instructions (MRS and MSR) for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97159 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd9ca732bd4bc3249e633d8155b02b68fd622275 Author: Kevin Enderby <enderby@apple.com> Date: Thu Feb 25 18:46:04 2010 +0000 This is a patch to the assembler frontend to detect when aligning a text section with TextAlignFillValue and calls EmitCodeAlignment() instead of calling EmitValueToAlignment(). This allows x86 assembly code to be aligned with optimal nops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97158 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b13ee53db4ca5270e3407dd2b7e60393c3a05d6 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 18:18:49 2010 +0000 stkrc is gone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97156 91177308-0d34-0410-b5e6-96231b3b80d8 commit caa449962270218e9d7ead67167cd5ac3800623a Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 18:17:58 2010 +0000 Add the union keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97155 91177308-0d34-0410-b5e6-96231b3b80d8 commit 538317d5ae05ae872c16a8a982774ca11b69efdf Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 18:16:03 2010 +0000 Merge the advanced getelementptr FAQ into the regular getelementptr FAQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97154 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70e6e4acd826c5f6771dab04adff70109de18e8b Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Feb 25 18:07:10 2010 +0000 Fix TextAlignFillValue in a few places git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97151 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85bb95785699c5322e9915933356e285fd1eed8d Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Feb 25 18:07:07 2010 +0000 Add simple script for finding most-recent-rev-before-N in a git-svn repo; useful when bisecting multiple repos in sync. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ec09ae83be027258b7202904cd3a19270ac63f5 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 25 17:51:03 2010 +0000 Added the following 16-bit Thumb instructions for disassembly only: YIELD, WFE, WFI, SEV, SETEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97149 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9eafaf32ba39bd82eab083b70abc4acdf54d72e5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 17:39:34 2010 +0000 remove a dead PatLeaf, I previously changed all uses to use -1 instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97148 91177308-0d34-0410-b5e6-96231b3b80d8 commit a259122f615ddf153605bddce888fe40b0aa20a0 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 16:51:31 2010 +0000 Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9090481cfdeb37674acd5754708e2050da51af64 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 16:50:07 2010 +0000 Clarify the description of pointer types, and move the address space content to its own paragraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97143 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7c07581c416bd68ca799f7e22fb2e9d50c67bcd Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 16:45:19 2010 +0000 Teach the constant folder about union types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97142 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d961446491ef701698585a70e949c30e4b904a8 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 16:05:33 2010 +0000 Remove code which assumes it knows how vectors are stored in memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c3a8df44d6de7ffc8338605f27a04e086436e77 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 15:55:28 2010 +0000 Add more information to the getSizeOf comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97140 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf7d5be98d40e15a3880f2a7c5b910cdb0369f0c Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 15:53:42 2010 +0000 Remove this paragraph. Vectors may not always have the same layout as arrays now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97139 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58152e31a6dc0030f74bd5a22260a2a833aa7d2c Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 15:20:39 2010 +0000 Revert r97064. Duncan pointed out that bitcasts are defined in terms of store and load, which means bitcasting between scalar integer and vector has endian-specific results, which undermines this whole approach. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75800fdc170d6a113fd695c1d475498081b55bb3 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Feb 25 08:30:17 2010 +0000 Make the side-numbering of instructions used by metadata (which is needed to keep track of instructions that return void) per-function. This fixes PR5278. This breaks backwards compatibility with the metadata format. That's okay because we haven't released the metadata bitcode yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97132 91177308-0d34-0410-b5e6-96231b3b80d8 commit a891ffdd67f66052e371b7510a48124c3ee01b61 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 07:45:24 2010 +0000 Implement the first half of redundancy factoring: efficiently splitting all the patterns under scope nodes into equality sets based on their first node. The second step is to rewrite the graph info a form that exposes the sharing. Before I do this, I want to redesign the Scope node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b66d0ee1daab85438c6e3d4fd2e6b77c6edaa00 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 06:57:05 2010 +0000 Make LoopSimplify change conditional branches in loop exiting blocks which branch on undef to branch on a boolean constant for the edge exiting the loop. This helps ScalarEvolution compute trip counts for loops. Teach ScalarEvolution to recognize single-value PHIs, when safe, and ForgetSymbolicName to forget such single-value PHI nodes as apprpriate in ForgetSymbolicName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97126 91177308-0d34-0410-b5e6-96231b3b80d8 commit e64a5697b891feeffca085560f9a8f4013221f74 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 06:53:39 2010 +0000 factor the print method better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97125 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d3b221aeee85d972d6cd622e7e6d8acbfae215c Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Feb 25 06:53:04 2010 +0000 Dump the presence of attached metadata even if we don't know what it is. This format is not parsable, even if the module is legal. To get parsable output, dump the module instead of the function or smaller, since metadata kind are attached to the module (not the context). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97124 91177308-0d34-0410-b5e6-96231b3b80d8 commit d540a808f3b39120dccd7ad3332d5c3405c4c254 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 06:49:58 2010 +0000 add methods to do equality checks and get hashes of Matchers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97123 91177308-0d34-0410-b5e6-96231b3b80d8 commit 449a50228c7843c1b674230ad183fce0032b49ce Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Feb 25 06:39:10 2010 +0000 Modernize comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97121 91177308-0d34-0410-b5e6-96231b3b80d8 commit be67e72a30b96b70e5269ba24d915922d06b6f28 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Feb 25 06:38:51 2010 +0000 Correct whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97120 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9aca70bbf976cebbe37167977c142f5abf0f2c1a Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Feb 25 06:34:33 2010 +0000 Try r96559 for the third time. This time the shared library is only built if --enable-shared is passed to configure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97119 91177308-0d34-0410-b5e6-96231b3b80d8 commit f82c55ce698883ac93d9c51e0034d19d51f9b874 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Thu Feb 25 03:54:49 2010 +0000 Each field of auxiliary debug entry is only 1 byte long. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97108 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ce5dad9c76773bf40644f2e6f9e853760bf54a1 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 25 03:28:51 2010 +0000 Added tNOP for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97105 91177308-0d34-0410-b5e6-96231b3b80d8 commit df7d6ebc126f0a70edf9b3ecbc4dc1a4b1461fb8 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 25 03:04:36 2010 +0000 Truncate from i64 to i32 is "free" on x86-32, because it involves just discarding one of the registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01c09177f73fd5bca8e9c6775a0610c1d07aa99a Author: Scott Michel <scottm@aero.org> Date: Thu Feb 25 02:32:54 2010 +0000 Revert this patch for the time being. Needs more testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97099 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77df7b669954158dfc4a27af03f42ec9965e1aba Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 25 02:21:11 2010 +0000 Added tSVC and tTRAP for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97098 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fb0aa00f6f1d324362f565fceb6196662f86364 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 02:09:00 2010 +0000 formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c5413491d90d7e893e07d220006f47ee4a203c1 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 02:04:40 2010 +0000 rename fooMatcherNode to fooMatcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97096 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ce8368df4a263d98b072e232e646c63493316ce Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 01:57:41 2010 +0000 add some noop code to push it out of my tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97094 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dc46efa7afb24de5fd71d8e4d76be2887c8ae05 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 01:56:48 2010 +0000 rename PushMatcherNode -> ScopeMatcherNode to more accurately reflect what it does. Switch the sense of the Next and the Check arms to be more logical. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4de064d29fe4db363865a800b2a9881038757660 Author: Scott Michel <scottm@aero.org> Date: Thu Feb 25 01:53:17 2010 +0000 Large stack frame patch for the CellSPU: handle stack frames that exceed 8176 (511*16) bytes register displacement (D-form). NOTE: This is a potential headache, given the SPU's local core limitations, allowing the software developer to commit stack overrun suicide unknowingly. Also, large SPU stack frames will cause code size explosion. But, one presumes that the software developer knows what they're doing... Contributed by Kalle.Raiskila@nokia.com, edited slightly before commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97091 91177308-0d34-0410-b5e6-96231b3b80d8 commit fceff16fd4c03bd5c471a4fcae8102e1f10911ea Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Feb 25 01:21:38 2010 +0000 Filter the future all-of-llvm shared library out of the llvm-config results. I'm checking this in before the shared library so that I can tell if it breaks anything on its own. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97089 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2aab0b1da47e56b674837c1bc450aaf9c7b0da5f Author: Bill Wendling <isanbard@gmail.com> Date: Thu Feb 25 00:24:52 2010 +0000 MC'ize padding when padding the ULEB128 value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97087 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a75f2ebd78e94d67f28e842b9a18958a099c2f3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 25 00:03:03 2010 +0000 add a fixme for an experiment that defeated me for the time being. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e23979c9c77e08b7c6979f747b75ca43f999b75 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Feb 24 23:34:35 2010 +0000 LLVM puts padding bytes in the __gcc_except_tab section after the GCC_except_table label but before the Lexception, which the FDE references. This causes problems as the FDE does not point to the start of an LSDA chunk. Use an unnormalized uleb128 for the call-site table length that includes the padding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97078 91177308-0d34-0410-b5e6-96231b3b80d8 commit 163767793646774da228d4ec2331458c8c478a14 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 22:52:52 2010 +0000 fix a bug I introduced by checking the wrong node's VT in OPC_CheckChildXType git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c105788b821f3a7e59f3c6e0c8c005eb33ff024 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 22:44:06 2010 +0000 clean up various VT manipulations, patch by Micah Villmow! PR6337 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bd6f736c442270586dd2366fdf59b6386f07c6c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Feb 24 22:43:17 2010 +0000 Create a stack frame on ARM when - Function uses all scratch registers AND - Function does not use any callee saved registers AND - Stack size is too big to address with immediate offsets. In this case a register must be scavenged to calculate the address of a stack object, and the scavenger needs a spare register or emergency spill slot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97071 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c4a1b7306d2ab167ac5f38204d9a4a7abf10cd9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 22:33:41 2010 +0000 fix PR5954, patch by Roman Divacky. I don't have a great way to test this myself (it's linux/bsd only), but Roman says it works. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97069 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8662ba4d955fcfa2e0258cea12bab3ae107474aa Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Feb 24 22:15:53 2010 +0000 Check for comparisons of +/- zero when optimizing less-than-or-equal and greater-than-or-equal SELECT_CCs to NEON vmin/vmax instructions. This is only allowed when UnsafeFPMath is set or when at least one of the operands is known to be nonzero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95b3b3f5b7a3be22b1c5ff8b5481bcc6ac87a6f2 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 24 22:05:23 2010 +0000 Make getTypeSizeInBits work correctly for array types; it should return the number of value bits, not the number of bits of allocation for in-memory storage. Make getTypeStoreSize and getTypeAllocSize work consistently for arrays and vectors. Fix several places in CodeGen which compute offsets into in-memory vectors to use TargetData information. This fixes PR1784. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97064 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32ade6676326c1b0e56da7452413af50e555f188 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 21:34:04 2010 +0000 convert cycle checker to smallptrset, add comments and make it more elegant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97059 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0cb694ca5ca12d814dacddb8a95b51140bedfd3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 21:25:08 2010 +0000 revert david's patch which does not even build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97057 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6103e0c0bc07407f1afc80c9aac37436eb87a48 Author: David Greene <greened@obbligato.org> Date: Wed Feb 24 20:59:49 2010 +0000 Use a SmallPtrSet as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97056 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3c09bd4af8cd78f4d5b007b9f2ca7fe1a0151e2 Author: Wesley Peck <peckw@wesleypeck.com> Date: Wed Feb 24 20:16:27 2010 +0000 Adding function "lookupGCCName" to MBlazeIntrinsicInfo Adding the function "lookupGCCName" to the MBlazeIntrinsicInfo class to support the Clang MicroBlaze target. Additionally, minor fixes which remove some unused PIC code (PIC is not supported yet in the MicroBlaze backend) and removed some unused variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97054 91177308-0d34-0410-b5e6-96231b3b80d8 commit 732223ec718d47a63fb4fee2a128163270dc848f Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 20:15:25 2010 +0000 contract movechild+checktype into a new checkchild node, shrinking the x86 table by 1200 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97053 91177308-0d34-0410-b5e6-96231b3b80d8 commit 215a251a1d6fd3485e69ddf9299f8ccc95db184e Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Feb 24 20:06:07 2010 +0000 Added Vector Swap (VSWPd and VSWPq) instructions for disassembly only. A8.6.405 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97052 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7c4596fa24da15c2143930ee2b45616b47b67d9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 19:52:48 2010 +0000 split the movechild/record/moveparent -> recordchild optzn into a movechild/record -> recordchild/movechild and movechild/moveparent -> noop xforms. This slightly shrinks the tables (x86 to 117454) and enables adding future improvements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97051 91177308-0d34-0410-b5e6-96231b3b80d8 commit 093f2ce980c8773a98894465dfb835f65754919c Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 24 19:31:47 2010 +0000 ConstantFoldInstOperands can theoretically return null if it didn't fold anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6971a55cb1f913f83c3f86dff2a3526afacfb06b Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 24 19:31:06 2010 +0000 Simplify this code; these casts aren't necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97048 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1518ef49f8c0c50ae8b1336bd83c03dd07718887 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 19:17:12 2010 +0000 emit a histogram of the opcodes in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b573fba71e1e58fb5022f68690f78c39fa66048 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Feb 24 18:57:08 2010 +0000 Stay away from str <undef> in ARMLoadStoreOpt. This pass does not understand <undef> operands, and can cause scavenger failures when it translates <kill,undef> to <kill>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97046 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37e8c75dd31f12b5d2911cf20198e2243ed5b40e Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Feb 24 18:00:40 2010 +0000 Fixed typo of opcodestr, should be "vst1", not "vld1". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97044 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9be117f489051eae2a5571f7d0c0163412afeb1b Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 24 17:31:30 2010 +0000 Convert a few more backedge-taken count functions to use BackedgeTakenInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40daa3bef360da5966e748a21bf1c36f667c16f9 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 24 17:05:47 2010 +0000 Speculatively revert r97011, "Re-apply 96540 and 96556 with fixes.", again in the hopes of fixing PPC bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97040 91177308-0d34-0410-b5e6-96231b3b80d8 commit 004492d7dd5ede35df13cedbee66a99cc2bd21f1 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 24 08:48:04 2010 +0000 Reapply r97010, the speculative revert failed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97036 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9c14b6c37b05876f45b4b80e2d2d72191904e98 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 07:41:11 2010 +0000 lets not break the old isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e609477f98a1cc418ad32fa697a8a0736a6dcdb Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 07:35:09 2010 +0000 Since the new instruction selector now works, I don't need to keep the old one around for comparative purposes: have the ENABLE_NEW_ISEL #define (which is not enabled on mainline) stop emitting the old isel at all, yay for build time win. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97033 91177308-0d34-0410-b5e6-96231b3b80d8 commit e434eff35addbaa33db1edebc34b1901f035fe85 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 07:31:45 2010 +0000 implement a simple proof-of-concept optimization for the new isel: fold movechild+record+moveparent into a single recordchild N node. This shrinks the X86 table from 125443 to 117502 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97031 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6eb29ddf46c6420cf1b6ea78c20abf77996dcb1 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 07:06:50 2010 +0000 The new isel passes all tests, time to start making it go fast. Also add an easy macro at the top of DAGISelEmitter.cpp to enable it. Lets see if I can avoid accidentally turning it on :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97029 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2702d8f9ead14b173b6058b6e193141b4430f84 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 24 07:06:20 2010 +0000 Add svn:ignore properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97028 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a5a832146529ad09783d54cb06f854d94898b79 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 24 06:55:22 2010 +0000 Speculatively revert r97010, "Add an argument to PHITranslateValue to specify the DominatorTree. ...", in hopes of restoring poor old PPC bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97027 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d8b2db59991c2b56e14f72fdc55dc32cb3491e7 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 24 06:52:40 2010 +0000 When forming SSE min and max nodes for UGE and ULE comparisons, it's necessary to swap the operands to handle NaN and negative zero properly. Also, reintroduce logic for checking for NaN conditions when forming SSE min and max instructions, fixed to take into consideration NaNs and negative zeros. This allows forming min and max instructions in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97025 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1120863f3abbda2c8ce92590e0533fc1cd57e40 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 24 06:46:09 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97024 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c27d06de74b1dcdbdb64e8976a6d3f23ee7f81e Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 06:11:37 2010 +0000 Change the scheduler from adding nodes in allnodes order to adding them in a determinstic order (bottom up from the root) based on the structure of the graph itself. This updates tests for some random changes, interesting bits: CodeGen/Blackfin/promote-logic.ll no longer crashes. I have no idea why, but that's good right? CodeGen/X86/2009-07-16-LoadFoldingBug.ll also fails, but now compiles to have one fewer constant pool entry, making the expected load that was being folded disappear. Since it is an unreduced mass of gnast, I just removed it. This fixes PR6370 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97023 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa1744295338c27e0077e68096c9168335a9ec8b Author: Chandler Carruth <chandlerc@gmail.com> Date: Wed Feb 24 06:09:03 2010 +0000 Remove an unused variable. Was this intentional? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97022 91177308-0d34-0410-b5e6-96231b3b80d8 commit c51418455570858863a38e15db639611e8031e0e Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 05:33:42 2010 +0000 The new isel was not properly handling patterns that covered internal nodes with flag results. Record these with a new OPC_MarkFlagResults opcode and use this to update the interior nodes' flag results properly. This fixes CodeGen/X86/i256-add.ll with the new isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 792ea8226fe1a1eaf37e292b3934406b66cb0fd2 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 24 04:24:44 2010 +0000 add node #'s to debug dumps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d80284c131ebc9e3e3aca521ebc0fa8c7e95486 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Feb 24 02:57:20 2010 +0000 Added for disassembly VST1 (multiple single elements) which stores elements to memory from three or four registers and VST2 (multiple two-element structures) which stores to memory from two double-spaced registers. A8.6.391 & A8.6.393 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97018 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3c4c121c47630185e008362c2e92b86db6f74f2 Author: Sean Callanan <scallanan@apple.com> Date: Wed Feb 24 02:56:25 2010 +0000 Changed the table generator so that the X86 disassembler never recognizes InitReg instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97017 91177308-0d34-0410-b5e6-96231b3b80d8 commit e049cd2d55a9c7bfa49cfe89048441e8b44b43a9 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Feb 24 02:15:43 2010 +0000 handle very large call frames when require SPAdj != 0 for Thumb1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97013 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc5ab7839a5600708cad8e640efe99b3f57ffee4 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Feb 24 01:43:03 2010 +0000 LowerCall() should always do getCopyFromReg() to reference the stack pointer. Machine instruction selection is much happier when operands are in virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97012 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7273e875e4bac0374877c91991cd59338df3f788 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Feb 24 01:42:31 2010 +0000 Re-apply 96540 and 96556 with fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32848c7e9115fbbc1799817fb3f5ca6c65242860 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Feb 24 01:39:00 2010 +0000 Add an argument to PHITranslateValue to specify the DominatorTree. If this argument is non-null, pass it along to PHITranslateSubExpr so that it can prefer using existing values that dominate the PredBB, instead of just blindly picking the first equivalent value that it finds on a uselist. Also when the DominatorTree is specified, have PHITranslateValue filter out any result that does not dominate the PredBB. This is basically just refactoring the check that used to be in GetAvailablePHITranslatedSubExpr and also in GVN. Despite my initial expectations, this change does not affect the results of GVN for any testcases that I could find, but it should help compile time. Before this change, if PHITranslateSubExpr picked a value that does not dominate, PHITranslateWithInsertion would then insert a new value, which GVN would later determine to be redundant and would replace. By picking a good value to begin with, we save GVN the extra work of inserting and then replacing a new value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93d3b5ed10b910d5c04b1ba299db4026c9d3a83a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Feb 24 00:39:35 2010 +0000 DIV8r must define %AX since X86DAGToDAGISel::Select() sometimes uses it instead of %AL/%AH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97006 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd9e22303ebc96f9950527c4f4f7712c4662dc07 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 23:47:34 2010 +0000 fix X86/uint_to_fp-2.ll, only fold loads when they have a single use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97003 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a9de9dc0b29305a302194a707323f41830f8d82 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 23:01:35 2010 +0000 make selectnodeto set the nodeid to -1. This makes it more akin to creating a new node then replacing uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9032d968e8fead82607c9179c5a4b270c1d59af7 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Feb 23 22:44:02 2010 +0000 Remember to handle sub-registers when moving imp-defs to a rematted instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44894027646a0d9bccec120ce3c13ba93a9bb26c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Feb 23 22:43:58 2010 +0000 Keep track of phi join registers explicitly in LiveVariables. Previously, LiveIntervalAnalysis would infer phi joins by looking for multiply defined registers. That doesn't work if the phi join is implicitly defined in all but one of the predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 087baeb205f8475bc819b53118882c7021ae9b61 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Feb 23 21:51:54 2010 +0000 Fix rev 96389 by restricting the xform to mask that's either signbit or max signed value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 793779392c0ce7ec21cfa7b4880aeeced3c4033f Author: Kevin Enderby <enderby@apple.com> Date: Tue Feb 23 21:41:24 2010 +0000 This is the second patch to allow x86 code to be aligned with optimal nops. With the compiler changed to use EmitCodeAlignment() it does change the functionality. But X86 assembly code assembled with llvm-mc does not change its output. For that we will eventually change the assembler frontend to detect a '.align x, 0x90' when used in a section that 'hasInstructions' and use EmitCodeAlignment, but will wait until we have better target hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96988 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0180cd2113754c7d3e4f3de1f125f1df052f9a3f Author: Richard Osborne <richard@xmos.com> Date: Tue Feb 23 21:08:11 2010 +0000 Don't mark call instruction as a barrier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96983 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4cfc1b15fef78486d2520a8d45d9e45d5c7c28e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Feb 23 20:53:37 2010 +0000 Roll back r96959 again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f37cc74b5c23318b1e98b5740ea5ef4ea6f691e Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 23 20:51:23 2010 +0000 Added for disassembly VLD1 (multiple single elements) which loads memory into three or four registers and VLD2 (multiple two-element structures) which loads memory into two double-spaced registers. A8.6.307 & A8.6.310 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96980 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54dc357c8714bdea1a1b038e940255e791fbfe61 Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Tue Feb 23 19:42:44 2010 +0000 Use the module's context instead of the global context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b11c0bbb8d0a5506f5ba1e6444499f16efd0222 Author: Devang Patel <dpatel@apple.com> Date: Tue Feb 23 19:37:40 2010 +0000 new test case for r96974. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96975 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31e2f4feadd988291349db6d449c067863d0306d Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 19:33:11 2010 +0000 no need to override IsLegalToFold, the base implementation disables load folding at -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78da63aabbc4beae079ca8c5e8036a5357473b76 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 19:32:27 2010 +0000 fix a bug in findNonImmUse (used by IsLegalToFold) where nodes with no id's would cause early exit allowing IsLegalToFold to return true instead of false, producing a cyclic dag. This was striking the new isel because it isn't using SelectNodeTo yet, which theoretically is just an optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96972 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad9c441bd53cb6ba3813009d7bb9798082c831d6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 19:31:18 2010 +0000 Print node ID's in dumps and views if set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b671c1c4b1d4924a7d2b52ab24bbdc8979d0202 Author: Wesley Peck <peckw@wesleypeck.com> Date: Tue Feb 23 19:15:24 2010 +0000 Adding the MicroBlaze backend. The MicroBlaze is a highly configurable 32-bit soft-microprocessor for use on Xilinx FPGAs. For more information see: http://www.xilinx.com/tools/microblaze.htm http://en.wikipedia.org/wiki/MicroBlaze The current LLVM MicroBlaze backend generates assembly which can be compiled using the an appropriate binutils assembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96969 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5386c11ac88551b1b62176415b05a5b8321f0d82 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 18:46:22 2010 +0000 use OutStreamer.EmitCodeAlignment for alignment in the text segment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96967 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76392cd1fd1f451d9195435a36031638f55b3720 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 18:44:31 2010 +0000 genericize MCAsmStreamer::EmitCodeAlignment to support other targets so that it doesn't break them when the code generator starts using it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96966 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47bdfce72cdef2d79c0f221c484f47cf6a569980 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Feb 23 18:40:48 2010 +0000 Oops. Pass -lgcc _only_ on ARM, not on everything except ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96965 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1709f4e5b0d69f90713688a760b72d6727c7ca9 Author: Richard Osborne <richard@xmos.com> Date: Tue Feb 23 18:29:49 2010 +0000 ECALLF, ECALLT shouldn't be marked as barriers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96964 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3aadf754e2af29d3435a500ebc75abdd50b44987 Author: Kevin Enderby <enderby@apple.com> Date: Tue Feb 23 18:26:34 2010 +0000 This is the first patch to put the needed bits in place to eventually allow code to be aligned with optimal nops. This patch does not change any functionality and when the compiler is changed to use EmitCodeAlignment() it should also not change the resulting output. Once the compiler change is made and everything looks good the next patch with the table of optimal X86 nops will be added to WriteNopData() changing the output. There are many FIXMEs in this patch which will be removed when we have better target hooks (coming soon I hear). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96963 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60958e8ff34ede7f9a4f12bbac5800f0270cfeb0 Author: Richard Osborne <richard@xmos.com> Date: Tue Feb 23 18:13:38 2010 +0000 Mark unconditional branches as barriers. Found using -verify-machineinstrs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96960 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c3228ed1ed85a8fa165804453f76013a235017e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Feb 23 18:10:07 2010 +0000 Roll r96559 forward again, adding libLLVM-2.7svn.so to LLVM. This links 3 of the examples shared to make sure the shared library keeps working. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96959 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7e0655956273b963c22e849b19428161d29e5db Author: David Greene <greened@obbligato.org> Date: Tue Feb 23 17:37:50 2010 +0000 Speed up cycle checking significantly by caching results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96956 91177308-0d34-0410-b5e6-96231b3b80d8 commit 785fb2889749908232c65e7a5f7643bd03cb4516 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 23 17:17:57 2010 +0000 Don't do (X != Y) ? X : Y -> X for floating-point values; it doesn't handle NaN properly. Do (X une Y) ? X : Y -> X if one of X and Y is not zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96955 91177308-0d34-0410-b5e6-96231b3b80d8 commit da5a01b1e4a41f1a32061f918315d82743e00c0d Author: Jim Grosbach <grosbach@apple.com> Date: Tue Feb 23 17:16:27 2010 +0000 Spelling. s/suppor /support / git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96954 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68861c2bab3bc88114f605b12c3f622e13ac8caf Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 23 16:35:41 2010 +0000 Remove the code which constant-folded ptrtoint(inttoptr(x)+c) to getelementptr. Despite only doing so in the case where x is a known array object and c can be converted to an index within range, this could still be invalid if c is actually the address of an object allocated outside of LLVM. Also, SCEVExpander, the original motivation for this code, has since been improved to avoid inttoptr+ptroint in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96950 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf46f94f8d494e2acd2dd922595b3fc4ed13ebc7 Author: Garrison Venn <gvenn.cfe.dev@gmail.com> Date: Tue Feb 23 16:27:59 2010 +0000 Modified examples Makefile to only build the ExceptionDemo example for x86 and x86_64 on UNIX systems. Only OS X 10.6.2 (x86_64) and 32bit CentOS 5.2 with gcc 4.1.2 were tested. ARM UNIX build triggered failure motivating this modification, as it seems that the ARM ABI does not support _Unwind_GetIP(...), _Unwind_SetGR(...), and _Unwind_SetIP(...). From doing a quick browse of: http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038a/IHI0038A_ehabi.pdf, it seems as if all other exception related apis are supported. Looks like the port can be done to ARM. Thanks to Xerxes Rånby <xerxes@zafena.se> for pointing out this error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96949 91177308-0d34-0410-b5e6-96231b3b80d8 commit 799c443aefc44b7f8a7b37edc2dfd1506d7db102 Author: Wesley Peck <peckw@wesleypeck.com> Date: Tue Feb 23 15:11:17 2010 +0000 Testing subversion commit access git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96948 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb8c29c897e2cd875db6138873a428edfd24ffc8 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 14:29:42 2010 +0000 Fix -mtune forwarding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96944 91177308-0d34-0410-b5e6-96231b3b80d8 commit e52062e22ccf8a0217138f340edf325ae777b0ae Author: Richard Osborne <richard@xmos.com> Date: Tue Feb 23 14:17:20 2010 +0000 Remove unused lowering function LowerJumpTable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96943 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ea4d623aec666e9c370e319d3cfc0617c68108d Author: Richard Osborne <richard@xmos.com> Date: Tue Feb 23 13:25:07 2010 +0000 Lower BR_JT on the XCore to a jump into a series of jump instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96942 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59bd608420d50dd3f5f63badcc905b04de995981 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 11:34:12 2010 +0000 tests: Don't make a missing llvm-gcc dir a fatal error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96938 91177308-0d34-0410-b5e6-96231b3b80d8 commit 706aebd40ae61e7859b0d88e37531b52115ace9a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 10:28:06 2010 +0000 Switch .bc/.ll Makefile rules to use LLVM{CC,CXX} instead of LLVMG{CC,XX} git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96936 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79f73683baece556d2b95f80e15a0f52ee6cad65 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 10:00:53 2010 +0000 Add LLVM{CC,CXX} make variables, which specify the configured path the LLVM capable compilers (which could be llvm-gcc or clang). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96935 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3a42e30c5cbb5c69a8a61c4ea995a644d730da1 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 10:00:49 2010 +0000 Initial configure support for using Clang as the LLVM capable compiler. Comes in two parts: 1. Use --with-clang=path/to/clang/compiler to select an installed clang, or --with-built-clang to have the makefiles use the clang which will be built as the LLVM capable compiler. If neither is given, --with-built-clang will be used if the Clang sources are checked out into the standard location (tools/clang). 2. Use --with-llvmcc={llvm-gcc,clang,none} to specify which LLVM capable compiler to use. If not given, then llvm-gcc will be used if available, otherwise Clang. Makefile support still to come. Eric, Doug, Chris, seem reasonable? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 316860cd7a773e14524bbc03ae55d1e455e6d6d7 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:59:30 2010 +0000 Update mcc16 and the ancient Clang plugin for the 'cmd_line' -> 'command' change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96933 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddd2e2efb12eb7ceaa07fbf4a2b1b68597c444e9 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 09:28:50 2010 +0000 Eliminate CFERuntimeLibDir make variable, this shouldn't be needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96932 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6dc97ddee4b14b8f7ed2119f845e7a924afe1033 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 09:28:48 2010 +0000 Fix a thinko in the lit.cfg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96931 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1e7b55f72f575f02740968a53c572084a1216b4 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:05:21 2010 +0000 Input files with empty suffixes must be passed to linker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96927 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5686d1b590eb41268164f9df9a50dcf7c5143a61 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:05:15 2010 +0000 Support -Xlinker et al. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96926 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92bca8707d8318a1e809a3fcc3e1129440129376 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:05:10 2010 +0000 Temporary disable response files. They are giving us problems on Mac. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96925 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae666386a261a9f30b9478907d86420ba4c7c928 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:05:06 2010 +0000 Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96924 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41a3555705547d6c79ae6a20e4ce08fb96d939fa Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:05:01 2010 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e6ccb4ea1896699389d126993af1b3182fc8f22 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:04:57 2010 +0000 Implement order-preserving option forwarding. Needed to correctly handle things like 'llvmc -framework Foo foo.o -framework Bar bar.o' - before this commit all '-framework' options would've been grouped together in the beginning. Due to our dependence on CommandLine this turned out to be a giant hack; we will migrate away from CommandLine eventually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96922 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5018426d8b6e09c6493bed4fda999c37089bb59d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:04:51 2010 +0000 Update the test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96921 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dbac04a6e48423cc9dc4b537b802b192cbc00e9 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:04:44 2010 +0000 Correct option forwarding: initial implementation. Does not work, but the infrastructure changes are in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96920 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2aa9c93d46a5f034e941f1bb844fbb9c3013b674 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:04:33 2010 +0000 Precompiled headers: initial support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96919 91177308-0d34-0410-b5e6-96231b3b80d8 commit f86bacffdf5b8c90f6615fdc756eb982deeebe7e Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:04:28 2010 +0000 New experimental/undocumented feature: 'works_on_empty'. For now, just enough support to make -filelist work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96918 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09cf0ced1c1913e5910e1b105bbb6a66a2f6fd8c Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:04:18 2010 +0000 Support '-install_name'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f69ce7242d155ad08ab584acdf746689cfa359c Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Feb 23 09:04:13 2010 +0000 Add a way to enable '-opt=foo' forwarding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96916 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d4f4e142948e0e55707eca80e84774d825c0654 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 07:56:41 2010 +0000 Inline and eliminate LLVMG{CC,XX}WITHPATH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96913 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7ddfaa3fc91428f11e2e6e51032e651731c801c Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 07:56:38 2010 +0000 Remove ancient Xcode project, replaced by CMake project. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96912 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8a57eda57c5816a6a7f98dd81fabf0e7c4a2340 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 07:56:36 2010 +0000 Remove dead LUPGRADE make variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96911 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5781b528c7cc6585c722d466551a6a6b52469844 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 07:56:34 2010 +0000 Kill off unused LLVMGCCLIBEXEC make variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1909b1c644cf4886f4c879e6d9e211b30cab063d Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 07:56:31 2010 +0000 Kill off LLVMGCCARCH and LLVMGCC_VERSION make variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96909 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f18e4e91f7b0e8a52fcf79da85302c2a5d7f112 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 07:56:28 2010 +0000 Eliminate llvmgcc_version testing variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e22a9246338579c9f28347574e5749faae70891 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 07:56:22 2010 +0000 Kill off LLVMGCC_MAJVERS make variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96907 91177308-0d34-0410-b5e6-96231b3b80d8 commit feea95357e133db966876fe164104d2cd5e3d563 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 23 07:56:18 2010 +0000 Kill unused llvmgccmajvers testing variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96906 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa0ba4af64684a80953b059bd6ab9e6d909cabda Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 07:50:58 2010 +0000 add some #if 0'd out code for checking that named values in input/output patterns have the same type. It turns out that this triggers all the time because we don't infer types between these boundaries. Until we do, don't turn this on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96905 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0207875c1f7f2cb645fd2db40ba94af3e6966738 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 07:22:28 2010 +0000 Reject patterns that use a name multiple times in the src or result of a pattern and where the uses have different types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96904 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f675fd4860f21cb112a361131a62dd49ec3f91f Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 07:21:15 2010 +0000 disable two patterns that are using non-sensical result pattern types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96903 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5258df2152326cd89a84b5f8e4d6d64c0bc0bf5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 07:16:12 2010 +0000 remove a confused pattern that is trying to match an address then use it as an MMX register (!?). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96901 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6301df9646f1169d1bab1beb26abd7902030fed Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 06:55:24 2010 +0000 reject patterns that have dead named arguments in the input pattern this is tidier and can find bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96900 91177308-0d34-0410-b5e6-96231b3b80d8 commit b727fd1bd5f835e8c618347c4aaf2b1c8fe1718a Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 06:54:29 2010 +0000 remove a bunch of dead named arguments in input patterns, though some look dubious afaict, these are all ok. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96899 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51f3fd420b6d225f925f0b6f9e60278a6825841f Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 06:35:45 2010 +0000 reject patterns that mention a name in the destination pattern but not in the input. Previously, this would trigger an abort late in the isel logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96898 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f9408792ecd755b6c6493a0f99d19509ba34060 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 06:16:51 2010 +0000 merge some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96896 91177308-0d34-0410-b5e6-96231b3b80d8 commit dab91266db960ba6e05573c3bf56586d2f290950 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 06:09:57 2010 +0000 fix a type mismatch in this pattern, where we were using an i64 imm in a place where an i32 imm was required, the old isel just got lucky. This fixes CodeGen/X86/x86-64-and-mask.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96894 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08feacc63e2d73921cbe3be6bbac6cfd624276fe Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 05:59:10 2010 +0000 more tidying up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96891 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0128d21f3418a5d3e0b09bb9125a103e25951ec6 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Feb 23 05:55:00 2010 +0000 Update memdep when load PRE inserts a new load, and add some debug output. I don't have a small testcase for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96890 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64836d55daa56e649354b6ef04ea20d04cc7e334 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 05:51:07 2010 +0000 reduce indentation by eliminating 'else after return' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96889 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5a5d91944507c2da994bc9e6e0419ca2b9ae768 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 05:30:43 2010 +0000 reapply my cellspu changes with a fix to not break the old isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96885 91177308-0d34-0410-b5e6-96231b3b80d8 commit f29f8f086c3afa203fea0889b85744e5dabdace5 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 23 02:44:03 2010 +0000 Update LangRef to match the code; pointers default to being 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96873 91177308-0d34-0410-b5e6-96231b3b80d8 commit 412db15093fb1998042f609993174f1313407861 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 23 02:33:29 2010 +0000 Revert 96854, 96852, and 96849, unbreaking test/CodeGen/CellSPU/i64ops.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96871 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbf86a2f1eb0320a6a1e6c409df096f91acebd4a Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 02:07:48 2010 +0000 X86InstrInfoSSE.td declares PINSRW as having type v8i16, don't alis it in the MMX .td file with a different width, split into two X86ISD opcodes. This fixes an x86 testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5097f5bc6c1e5ae0aa1b1dfde6bfd1f8bede97b0 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 23 01:42:58 2010 +0000 Added versions of VCGE, VCGT, VCLE, and VCLT NEON instructions which compare to (immediate #0) for disassembly only. A8.6.283, A8.6.285, A8.6.287, A8.6.290 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96856 91177308-0d34-0410-b5e6-96231b3b80d8 commit 598bb53b8c017f2ccf6400c205748bdf92cf7840 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 01:37:39 2010 +0000 fix hte last cellspu failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19d8a01c41bb230ac9f3b184353af9d4fb1f2e7c Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 01:33:17 2010 +0000 hack around more crimes in instruction selection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 948f49b2aa339a1dbdb2718155fae635ae83e744 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 23 01:28:09 2010 +0000 Convert this test to FileCheck and add a testcase for PR3574. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96851 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7f668406b8d3b63433e791b2a555257c110000b Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 01:20:00 2010 +0000 the cell backend is making all sorts of unsafe and incorrect assumptions about ownership and update policies. It isn't clear why it is doing all this lowering at isel time instead of in legalize. This fixes fcmp64.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96849 91177308-0d34-0410-b5e6-96231b3b80d8 commit 536238183b92ef3c98a7c7ae480eaed7dfb59e73 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 01:07:39 2010 +0000 really fix an off-by-one error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96845 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1a7ecd44bc2961988479c15435b4f242cfcc07b Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 01:07:09 2010 +0000 fix an off-by-one error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96844 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82d2983ef9fb574977226d41893ea2e4e73f62cb Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 23 00:59:59 2010 +0000 switch the value# in OPC_CompleteMatch and OPC_EmitNode to use a VBR encoding for the insanity being perpetrated by the spu backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96843 91177308-0d34-0410-b5e6-96231b3b80d8 commit 951eae263c5326cd581df33fe404bc7521190c49 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 23 00:33:12 2010 +0000 Added VCEQ (immediate #0) NEON instruction for disassembly only. A8.6.281 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96838 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67ac9950b677731f8766d29717564ff0218577c5 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Feb 23 00:28:53 2010 +0000 Dead code elimination git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96837 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08d2e8bae2ee1a7443f9a78719d48f06ee63b147 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Feb 23 00:04:53 2010 +0000 Fix viewCFG on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96834 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4fd103b6e2dc93ccc63c469a4d5a9f0bc864c4e Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 23:55:39 2010 +0000 add a new Push2 opcode for targets (like cellspu) which have ridiculously ginormous patterns and need more than one byte of displacement for encodings. This fixes CellSPU/fdiv.ll. SPU is still doing something else ridiculous though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96833 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbe487d049f68b1cbcbe9e28bc4aa08d937ee8f1 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Feb 22 23:37:48 2010 +0000 These should not have been committed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96827 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a2d6b0c040c01c5eedb913c9435e92bfbdbac3a Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 23:34:12 2010 +0000 no need to run llvm-as here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96826 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0dfed5686c151314fc5f58e50c6604bbc82fd14 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Feb 22 23:34:00 2010 +0000 Instcombine constant folding can normalize gep with negative index to index with large offset. When instcombine objsize checking transformation sees these geps where the offset seemingly point out of bound, it should just return "i don't know" rather than asserting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96825 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fd50a5f98a5d18a1b7f17e89e06596157574930 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 23:33:44 2010 +0000 Change ComplexPattern handling to push the node being matched as well as the operands produced when the pattern is matched. This allows CheckSame to work correctly when matching replicated names involving ComplexPatterns. This fixes a bunch of MSP430 failures, we're down to 13 failures, two of which are due to a sched bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a5eb3eafba49861717869ba90f560f7a7752709 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Feb 22 23:10:38 2010 +0000 Updated version of r96634 (which was reverted due to failing 176.gcc and 126.gcc nightly tests. These failures uncovered latent bugs that machine DCE could remove one half of a stack adjust down/up pair, causing PEI to assert. This update fixes that, and the tests now pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6253658d7c7da5e4680d9c53d5492ff8bd5fc828 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 23:07:52 2010 +0000 Add a test for canonicalizing ConstantExpr operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96820 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3321cf25d054bb18e07c686efc391df88afadeb Author: Jim Grosbach <grosbach@apple.com> Date: Mon Feb 22 22:54:55 2010 +0000 Clean up a bit and fix for when SPAdj != 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f419caeca7d02e44fcfe066edd73522c83f9d5a Author: Jim Grosbach <grosbach@apple.com> Date: Mon Feb 22 22:47:46 2010 +0000 The predicate index isn't fixed, so scan for it to make sure we get the proper value. Thumb2 uses the tADJCALLSTACK* instructions, and doesn't need t2 versions, so remove the FIXME entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96817 91177308-0d34-0410-b5e6-96231b3b80d8 commit a69fb559527a30ab40a5e2bc40df8a263e657ee5 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 22:43:23 2010 +0000 Canonicalize ConstantInts to the right operand of commutative operators. The test difference is just due to the multiplication operands being commuted (and thus requiring a more elaborate match). In optimized code, that expression would be folded. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96816 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bfccd6129136dedbc905cbcb9fe331ae9b5831f Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 22:37:11 2010 +0000 expand my hack to work with nodes that have flags but no chains and the isel doesn't know the correct # results. This fixes 8 codegen tests, down to 22 failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96815 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28cded9689401154617716d81a9adde3e8167464 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 22:30:37 2010 +0000 add a new CheckMultiOpcode opcode for checking that a node has one of the list of acceptable opcodes for a complex pattern. This fixes 4 regtest failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96814 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8218d428ddd48485276d25087a86ab45dff01622 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 22:18:05 2010 +0000 When matching patterns that have a complex pattern as their root, make sure to only run the complex pattern on nodes where the target opts in. This patch only handles targets with one opcode specified so far, but fixes 16 failures, only 34 left. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96813 91177308-0d34-0410-b5e6-96231b3b80d8 commit e85a094d8be56def5b5a921889de7e7a65e101e4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 22:15:39 2010 +0000 add some debug hooks for tracking the behavior of the isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0875e0bbb87d2428f877d9b53adf58522840f53c Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 22:15:05 2010 +0000 remove dupes now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96811 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4f39d6fe2ca15bb6153bd3a02da5daee93f06e4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 22:14:47 2010 +0000 move #includes earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96810 91177308-0d34-0410-b5e6-96231b3b80d8 commit a91798edfed53022f83cd69f8e55127065ba815f Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Feb 22 22:08:57 2010 +0000 MC/Mach-O: Remove non-sensical comment, and add a missing AddValueSymbols call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96809 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17da190000390f02beec08296e8f4b5e0ac21dcb Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 22:07:27 2010 +0000 Minor formatting cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96808 91177308-0d34-0410-b5e6-96231b3b80d8 commit 720a1ace28bbd268ce6de3feb3d5579f7f63292d Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 22:05:18 2010 +0000 Use Instruction::isCommutative instead of duplicating it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7562e569a22a2e6e473672d8cba4f9b6e6a355e6 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Feb 22 21:50:40 2010 +0000 Added SEL, SXTB16, SXTAB16, UXTAB16, SMMULR, SMMLAR, SMMLSR, SMUAD, and SMUSD, for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dd6b2805419e37c3e127b62b9bc27869afdae1a Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Feb 22 21:39:41 2010 +0000 Erase deleted instructions from GVN's ValueTable. This fixes assertion failures from ValueTable::verifyRemoved() when using -debug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96805 91177308-0d34-0410-b5e6-96231b3b80d8 commit d83ba06e0894188259a46294a30cb7a47ed2fd83 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 18:53:26 2010 +0000 Actually enable the -enable-unsafe-fp-math tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b41870f23040455bb631f43c4261f412ed01dd1 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Feb 22 18:50:54 2010 +0000 Added a bunch of instructions for disassembly only: o signed/unsigned add/subtract o signed/unsigned halving add/subtract o unsigned sum of absolute difference [and accumulate] o signed/unsigned saturate o signed multiply accumulate/subtract [long] dual git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96795 91177308-0d34-0410-b5e6-96231b3b80d8 commit d651e2e920026c0c98d00c1c8805c008e51703fc Author: Arnold Schwaighofer <arnold.schwaighofer@gmail.com> Date: Mon Feb 22 16:18:09 2010 +0000 Mark the return address stack slot as mutable when moving the return address during a tail call. A parameter might overwrite this stack slot during the tail call. The sequence during a tail call is: 1.) load return address to temp reg 2.) move parameters (might involve storing to return address stack slot) 3.) store return address to new location from temp reg If the stack location is marked immutable CodeGen can colocate load (1) with the store (3). This fixes bug 6225. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96783 91177308-0d34-0410-b5e6-96231b3b80d8 commit 662af7c4654a217a18f943cb47f4128792a211c0 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Feb 22 05:55:32 2010 +0000 LLVMC/MultiplePluginPriorities.td: Generally XFAIL this test for now, it is still failing during (one) llvm-gcc powerpc build, and is also failing on my x86_64-apple-darwin10. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 561c47eb14ac9d2d179b46795e1510119ae2126b Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 04:11:59 2010 +0000 Remove unused variables and parameters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 551a234702e5fa424881cc866db45b1608509932 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 04:10:52 2010 +0000 Fix various doxygen warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96779 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85a0e9c5ad6ea03720f460a850d6c2ec81034b5d Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 04:09:26 2010 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96778 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7ba80a3580ef087314d23cf0a81e636fb333ade Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 04:06:03 2010 +0000 Constant-fold certain comparisons with infinity and negative infinity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96777 91177308-0d34-0410-b5e6-96231b3b80d8 commit 651d3026e737756d2f52f988ddf60ef0b798418a Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 04:04:24 2010 +0000 Rename a variable to avoid a -Wshadow warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96776 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccbad01de34516a064c2dafb7dfa535aedbfacd1 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 04:03:39 2010 +0000 Remove the logic for reasoning about NaNs from the code that forms SSE min and max instructions. The real thing this code needs to be concerned about is negative zero. Update the sse-minmax.ll test accordingly, and add tests for -enable-unsafe-fp-math mode as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96775 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c32d8008e58a65cbf2675c560bdab24e7615549 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 03:59:54 2010 +0000 When emitting an instruction which depends on both a post-incremented induction variable value and a loop-variant value, don't force the insert position to be at the post-increment position, because it may not be dominated by the loop-variant value. This fixes a use-before-def problem noticed on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96774 91177308-0d34-0410-b5e6-96231b3b80d8 commit c040d3cb34ae0adb52a5f513b9c2365b75bfee56 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 22 02:07:36 2010 +0000 This cast<Instruction> is unnecessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8224c0bb6201d54b259b0b458de632a95d749a70 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 00:47:38 2010 +0000 enhance my hack for flags handling, this allows us to pass CodeGen/X86/pr2182.ll. Down to 13 x86 failures out of ~1100 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94ebcde2aaee561c2a9c7f6211c1a0fce712dd22 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 22 00:28:59 2010 +0000 fix an incorrect VT: eflags is always i32. The bug was causing us to create an X86ISD::Cmp node with result type i64 on the CodeGen/X86/shift-i256.ll testcase and the new isel was assert on it downstream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ae24d70824e4ee0f16223e3368da7537e1bc055 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 23:54:05 2010 +0000 fix most of the failures in the x86 suite by handling multiple result nodes correctly. Note that this includes a horrible hack in DAGISelHeader which cannot be fixed reasonably without eliminating (parallel) from input patterns. That, in turn, can't be done until we support writing multiple result patterns for the X86and_flag and related multiple-result nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96767 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c1568a7514847bf2ec37b93a6d3364b55fbb9ef Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Feb 21 21:54:14 2010 +0000 MC/X86: Add stub AsmBackend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96763 91177308-0d34-0410-b5e6-96231b3b80d8 commit f822b3393654d327f22e3404a171db1e03253561 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Feb 21 21:53:53 2010 +0000 MC: Sketch registry support for target specific assembler backends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96762 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94890962008ba6daab9ec1a6b1dbcd4b4f1a8a9a Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Feb 21 21:53:37 2010 +0000 Formatting tweaks (trailing whitespace, ordering, comments). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96761 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8252aafc429c328e67ee0aa81b66b5fe3af5af60 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 20:57:28 2010 +0000 fix an odd thinko in an assertion, all arm tests pass now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96758 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76b3124496a1e414191e4d5318680b50fd752a95 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 20:53:45 2010 +0000 Always emit register class id references as i32 like DAGISelEmitter does. This fixes 11 arm failures (8 left). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 247465195ba60d00b8a0d6fa0492ec42c659f664 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 20:33:20 2010 +0000 add some no-unwinds, other minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96756 91177308-0d34-0410-b5e6-96231b3b80d8 commit a80c01e5c5608c0dd71219c6f5beda1466002263 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Feb 21 20:28:15 2010 +0000 It turned out that we failed to emit proper symbol stubs on non-x86/darwin for ages (we emitted a reference to a stub, but no stub was emitted). The code inside x86-32/macho target objfile lowering should actually be the generic one - move it there. This (I really, really hope) should fix EH issues on ppc/darwin and arm/darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96755 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17d2e870e73eef73f15d20f3e02ae111396c3d37 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 20:15:25 2010 +0000 speculatively teach OPC_CheckValueType and OPC_EmitNode to handle MVT::iPTR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96753 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18c3cba3eb42771ce9b777b6c4d6a444339bd088 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 20:10:43 2010 +0000 teach OPC_CheckType to handle MVT::iPTR, down to 2 ppc failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96752 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac982429dc553f285c460b64a51ce1f862f6f57b Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 20:02:15 2010 +0000 make this check a bit more generous, it may be outliving its utility. Down to 6 ppc failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96751 91177308-0d34-0410-b5e6-96231b3b80d8 commit f08accb33eac1edc73848b157c7d026d1a76aa2c Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 19:35:07 2010 +0000 Relax an assertion a bit. We allow replacing things like <4 x i32> with <4 x float> values if they end up the same register class. This gets us up to 231 passes on the ppc tests (only 7 fails). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96750 91177308-0d34-0410-b5e6-96231b3b80d8 commit c044ffeb91d65555585612d29d82d85c39353f3f Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 19:27:38 2010 +0000 add a triple so that this doesn't fail due to linux/ppc register printing syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96748 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea17a4cc66e4b517ae08a4da4d2e8b24e477235e Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 19:22:06 2010 +0000 Sort the patterns before adding them to the FA so that we get the least cost matches. This gets us from 195 -> 208 passes on the ppc codegen tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 097058c74354e8f22b5e23f0282e907f580aaeda Author: Duncan Sands <baldrick@free.fr> Date: Sun Feb 21 19:15:19 2010 +0000 Remove a bunch of duplicated code, where there was one version taking a std::ostream and another taking a raw_ostream, but otherwise identical. Use raw_ostream everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96746 91177308-0d34-0410-b5e6-96231b3b80d8 commit f81d7a9c6647ea5058840fbf6e68c7ec0e24e64c Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 18:53:28 2010 +0000 filecheckize and add nouwinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96745 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8718c5bba41d2909709f51f10cddbe0bc84e52f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Feb 21 18:51:48 2010 +0000 Enable assertion to detect cyclic valno references. This changes the stack overflow in PR6363 to an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4eab8871a8c351e08021ebfa38aa9dc7cf382193 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Feb 21 12:28:58 2010 +0000 IT turns out that during jumpless setcc lowering eq and ne were swapped. This fixes PR6348 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96734 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec8bfbc2c69f076e6710d470a4ae1571c19e7f86 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 07:55:48 2010 +0000 when a match fails and we have to rollback, make sure to keep 'N' in sync with the top of stack. This fixes a bunch of failures on larger testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96732 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95ae06faabbfa6c4753aad51b0a256e52d38133d Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 07:19:06 2010 +0000 handle optional in flags that aren't present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96731 91177308-0d34-0410-b5e6-96231b3b80d8 commit eab3a483ebdf3110aafe8c7caaf61ce692db843c Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 07:16:41 2010 +0000 emit table indexes before each row so that it is debuggable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6252811370eaa8e82979dd56cda3a1fcbb617daa Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 06:58:27 2010 +0000 fix two bugs in OPC_EmitRegister, which makes ppc happier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96728 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50356ba1682201debb58d84ea89d02f79906c69e Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 06:44:29 2010 +0000 fix a table size miscomputation, target opcodes are 2 bytes. With this, the matcher actually works reasonably well, but crashes on larger examples in the scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96727 91177308-0d34-0410-b5e6-96231b3b80d8 commit d43cbc17992b19d624499d0a5a6a344002665381 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 06:30:04 2010 +0000 emit to the right streams, to avoid emitting the push body before the push. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96726 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ade183489d62cb7c3a42e161526fb7c125e5673 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 06:03:56 2010 +0000 oops don't turn this on for everyone yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96725 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55214c3f2617d719286df0e6a5b0f9d20cba5d97 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 06:03:07 2010 +0000 implement the last known missing feature: updating uses of results of the matched pattern to use the newly created node results. Onto the "making it actually work" phase! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96724 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4bd7f0b3b6f44838dacdc01e8d1683f1b939dcc Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 04:53:34 2010 +0000 fix and un-xfail X86/vec_ss_load_fold.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96720 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfe6e63a044c5ce2f13b61bc08f8075882dccfce Author: Johnny Chen <johnny.chen@apple.com> Date: Sun Feb 21 04:42:01 2010 +0000 Undo r96654. The printing of ARM shift instructions in canonical forms can be handled in ARMInstPrinter.cpp. And added PLD/PLDW/PLI (Preload Data/Instruction) for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96719 91177308-0d34-0410-b5e6-96231b3b80d8 commit bacb17f722a7b36d3190ceb1914fd434cac8f9a0 Author: Charles Davis <cdavis@mines.edu> Date: Sun Feb 21 04:26:06 2010 +0000 Reduce size of 'StackAlignment' field from 5 to 3 bits. Seriously, who needs a 2GB-aligned stack anyway? 256 bytes is plenty. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96718 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1740fe351bd1fd93536b80d8419dc0b36cc028d9 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 03:24:41 2010 +0000 temporarily disable this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96717 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3593bf4e3f6d569673cb73a9a4d3701cebfe582d Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 03:22:59 2010 +0000 Lots of improvements to the new dagisel emitter. This gets it to the point where it is to the 95% feature complete mark, it just needs result updating to be done (then testing, optimization etc). More specificallly, this adds support for chain and flag handling on the result nodes, support for sdnodexforms, support for variadic nodes, memrefs, pinned physreg inputs, and probably lots of other stuff. In the old DAGISelEmitter, this deletes the dead code related to OperatorMap, cleans up a variety of dead stuff handling "implicit remapping" from things like globaladdr -> targetglobaladdr (which is no longer used because globaladdr always needs to be legalized), and some minor formatting fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96716 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f79718ae585a2f69d0e69626cf4c971b64de73c Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 03:17:59 2010 +0000 rename SelectScalarSSELoad -> SelectScalarSSELoadXXX and rewrite it to follow the mode needed by the new isel. Instead of returning the input and output chains, it just returns the (currently only one, which is a silly limitation) node that has input and output chains. Since we want the old thing to still work, add a new SelectScalarSSELoad to emulate the old interface. The XXX suffix and the wrapper will eventually go away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96715 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6205d98fb0edfed046cca455ddf151aa25d0df96 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 03:15:11 2010 +0000 add a hook so that the new isel can run SDNodeXForms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96714 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73052f4b2f4b5759ce98d0d4ed2e4146f862ceaf Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 03:13:10 2010 +0000 Eliminate some uses of immAllOnes, just use -1, it does the same thing and is more efficient for the matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96713 91177308-0d34-0410-b5e6-96231b3b80d8 commit eacbfef5101dff9dcf620f42e120538cbf6fe40d Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 21 03:12:16 2010 +0000 Eliminate some uses of immAllOnes, just use -1, it does the same thing and is more efficient for the matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96712 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1d83db8838172a16b80cb6b508d68716fee0357 Author: Tanya Lattner <tonic@nondot.org> Date: Sun Feb 21 03:01:05 2010 +0000 Test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96711 91177308-0d34-0410-b5e6-96231b3b80d8 commit f95fdf4bcb48e21f3f3d2fdce74bf3c9c0c217da Author: Tanya Lattner <tonic@nondot.org> Date: Sun Feb 21 02:59:05 2010 +0000 Test commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96710 91177308-0d34-0410-b5e6-96231b3b80d8 commit 349819a813c8c93544f27a9d4131234f52140ff1 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 19 19:35:48 2010 +0000 Rename getSDiv to getExactSDiv to reflect its behavior in cases where the division would have a remainder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b0ea295dee969b3d103778799500ea519f9b5d6 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 19 19:32:49 2010 +0000 Check for overflow when scaling up an add or an addrec for scaled reuse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a891b6e11775b26d8400d49c2f1ea35845d1591 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Feb 19 18:59:53 2010 +0000 Revert 96634. It causes assertion failures for 126.gcc and 176.gcc in the armv6 nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96691 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff49692a11b9f95bae17b5a560827a35700cb6e9 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 19 18:49:22 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96688 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3151807449da3ff92a4219edb5600c1c2c0ac56 Author: Charles Davis <cdavis@mines.edu> Date: Fri Feb 19 18:17:13 2010 +0000 Add support for the 'alignstack' attribute to the x86 backend. Fixes PR5254. Also, FileCheck'ize a test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ce4c01bea8e41eba62084717b08e47104427041 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 19 18:12:07 2010 +0000 Teach ScalarEvolution how to compute a tripcount for a loop with true or false as its exit condition. These are usually eliminated by SimplifyCFG, but the may be left around during a pass which wishes to preserve the CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33aacdd25540b32eb7aef0c5e23bc3d2e0830742 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Feb 19 17:10:59 2010 +0000 Revert Anton's most recent EH patch (r96637), since it breaks a lot of ARM and Thumb tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96680 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf382697b2fcfa693142067489746f74bb84c7c1 Author: Duncan Sands <baldrick@free.fr> Date: Fri Feb 19 11:30:41 2010 +0000 Revert commits 96556 and 96640, because commit 96556 breaks the dragonegg self-host build. I reverted 96640 in order to revert 96556 (96640 goes on top of 96556), but it also looks like with both of them applied the breakage happens even earlier. The symptom of the 96556 miscompile is the following crash: llvm[3]: Compiling AlphaISelLowering.cpp for Release build cc1plus: /home/duncan/tmp/tmp/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:4982: void llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode*, llvm::SDNode*, llvm::SelectionDAG::DAGUpdateListener*): Assertion `(!From->hasAnyUseOfValue(i) || From->getValueType(i) == To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"' failed. Stack dump: 0. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_ZN4llvm19AlphaTargetLowering14LowerOperationENS_7SDValueERNS_12SelectionDAGE' g++: Internal error: Aborted (program cc1plus) This occurs when building LLVM using LLVM built by LLVM (via dragonegg). Probably LLVM has miscompiled itself, though it may have miscompiled GCC and/or dragonegg itself: at this point of the self-host build, all of GCC, LLVM and dragonegg were built using LLVM. Unfortunately this kind of thing is extremely hard to debug, and while I did rummage around a bit I didn't find any smoking guns, aka obviously miscompiled code. Found by bisection. r96556 | evancheng | 2010-02-18 03:13:50 +0100 (Thu, 18 Feb 2010) | 5 lines Some dag combiner goodness: Transform br (xor (x, y)) -> br (x != y) Transform br (xor (xor (x,y), 1)) -> br (x == y) Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm" r96640 | evancheng | 2010-02-19 01:34:39 +0100 (Fri, 19 Feb 2010) | 16 lines Transform (xor (setcc), (setcc)) == / != 1 to (xor (setcc), (setcc)) != / == 1. e.g. On x86_64 %0 = icmp eq i32 %x, 0 %1 = icmp eq i32 %y, 0 %2 = xor i1 %1, %0 br i1 %2, label %bb, label %return => testl %edi, %edi sete %al testl %esi, %esi sete %cl cmpb %al, %cl je LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96672 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecab71b9f5ffc6afe46407a9dd0450449e8fe119 Author: Duncan Sands <baldrick@free.fr> Date: Fri Feb 19 09:18:53 2010 +0000 Correct LastPrimitiveTyID: MetadataType is a primitive type. This change probably has no functional effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96669 91177308-0d34-0410-b5e6-96231b3b80d8 commit f558bd3a1c802d7aac37f3827c4c70be51fe2a0b Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 19 07:49:56 2010 +0000 add emitter support for integer constants and simple physreg references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f6c0cadfb533897312545d0dce31b8590b8e0e0 Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 19 07:14:22 2010 +0000 recommit 96626, evidence that it broke things appears to be spurious git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96662 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3c5c26d37ca134ec8107498a5fff100338052b4 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 19 07:02:20 2010 +0000 fix this to work more determinstically, patch by Thomas Veith! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96661 91177308-0d34-0410-b5e6-96231b3b80d8 commit c479dcf7e4bca1325343d38eb63347f6f28641db Author: Devang Patel <dpatel@apple.com> Date: Fri Feb 19 02:58:33 2010 +0000 Test case for r96656. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1afbdfceab05493bcfd67e17131274e853000e82 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Feb 19 02:12:06 2010 +0000 Added entries for ASR, LSL, LSR, ROR, and RRX so that the disassembler prints out the canonical form (A8.6.98) instead of the pseudo-instruction as provided via MOVs. DBG_ARM_DISASM=YES llvm-mc -triple=arm-unknown-unknown --disassemble 0xc0 0x00 0xa0 0xe1 Opcode=29 Name=ASR Format=ARM_FORMAT_LDMISCFRM 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ------------------------------------------------------------------------------------------------- | 1: 1: 1: 0| 0: 0: 0: 1| 1: 0: 1: 0| 0: 0: 0: 0| 0: 0: 0: 0| 0: 0: 0: 0| 1: 1: 0: 0| 0: 0: 0: 0| ------------------------------------------------------------------------------------------------- asr r0, r0, #1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5856c910917b665fc21bdb66cacef37ca7ec0148 Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 19 01:54:37 2010 +0000 Revert 96626, which causes build failure on ppc Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33403fea96f346dd67174dd75fa55b25c077b908 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 19 00:34:39 2010 +0000 Transform (xor (setcc), (setcc)) == / != 1 to (xor (setcc), (setcc)) != / == 1. e.g. On x86_64 %0 = icmp eq i32 %x, 0 %1 = icmp eq i32 %y, 0 %2 = xor i1 %1, %0 br i1 %2, label %bb, label %return => testl %edi, %edi sete %al testl %esi, %esi sete %cl cmpb %al, %cl je LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58ec19ab4901514845922ec08bc9b2b3e352f577 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 19 00:33:13 2010 +0000 I confused myself, temporaries will be recorded right along with other inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96639 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef9d04cf557b0fa77b0824fbd7befdf2d8d6e075 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Feb 19 00:29:36 2010 +0000 Use the same encoding for EH stuff uniformly on all MachO targets. This hopefulyl should unbreak EH on PPC/Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5aa3ace5a4bacc9897298c537372b13a9aa74798 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 19 00:27:40 2010 +0000 introduce a new ResultVal and start keeping track of temporary values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96636 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3f173cbfa675a63489d344c0a91d2b1f480163f Author: Jim Grosbach <grosbach@apple.com> Date: Fri Feb 19 00:16:24 2010 +0000 Radar 7636153. In the presence of large call frames, it's not sufficient for ARM to just check if a function has a FP to determine if it's safe to simplify the stack adjustment pseudo ops prior to eliminating frame indices. Allow targets to override the default behavior and does so for ARM and Thumb2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96634 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd3ddf5f0c0f633c39b42f1a48b483d65f3d0fed Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 19 00:05:23 2010 +0000 When determining the set of interesting reuse factors, consider strides in foreign loops. This helps locate reuse opportunities with existing induction variables in foreign loops and reduces the need for inserting new ones. This fixes rdar://7657764. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96629 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5e9beaff4973477663acc5cc9e444ebfde07bd7 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 18 23:26:33 2010 +0000 Indvars needs to explicitly notify ScalarEvolution when it is replacing a loop exit value, so that if a loop gets deleted, ScalarEvolution isn't stick holding on to dangling SCEVAddRecExprs for that loop. This fixes PR6339. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96626 91177308-0d34-0410-b5e6-96231b3b80d8 commit e62abaebf48091afd1b488baed1698fa4e02e043 Author: Mon P Wang <wangmp@apple.com> Date: Thu Feb 18 22:33:18 2010 +0000 getSplatIndex assumes that the first element of the mask contains the splat index which is not always true if the mask contains undefs. Modified it to return the first non undef value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96621 91177308-0d34-0410-b5e6-96231b3b80d8 commit baf26c82ecd15bd28a9e04e7684836c102534b40 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 18 22:31:18 2010 +0000 Added LDRD_PRE/POST & STRD_PRE/POST for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96619 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6220d28bab41ec354a1e56632aebb597108970f0 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 18 22:03:03 2010 +0000 add support for referencing registers and immediates, building the tree to represent them but not emitting table entries for them yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96617 91177308-0d34-0410-b5e6-96231b3b80d8 commit a82887a0e7503764e687e7ef62bf3ba0983b86fc Author: Talin <viridia@gmail.com> Date: Thu Feb 18 21:43:45 2010 +0000 replaceUsesOfWithOnConstant implementation for unions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e7364467b85336639f9736a4d0aa332679bc230 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 18 21:34:02 2010 +0000 Hoist this loop-invariant logic out of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d57ee9fbdb3dbe96ad7f63784f25c9474211014 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 18 21:33:05 2010 +0000 Always normalize spill weights, also for intervals created by spilling. Moderate the weight given to very small intervals. The spill weight given to new intervals created when spilling was not normalized in the same way as the original spill weights calculated by CalcSpillWeights. That meant that restored registers would tend to hang around because they had a much higher spill weight that unspilled registers. This improves the runtime of a few tests by up to 10%, and there are no significant regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97a6c69733a3db6a5889c085b4e395c9677b908b Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 18 21:25:53 2010 +0000 Make CodePlacementOpt detect special EH control flow by checking whether AnalyzeBranch disagrees with the CFG directly, rather than looking for EH_LABEL instructions. EH_LABEL instructions aren't always at the end of the block, due to FP_REG_KILL and other things. This fixes an infinite loop compiling MultiSource/Benchmarks/Bullet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54484f9f17de14a9699bb78fb35452566c3b5b8d Author: Devang Patel <dpatel@apple.com> Date: Thu Feb 18 21:03:36 2010 +0000 Fix comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 762426382d050e324da72c78c66d3b69a864a141 Author: Devang Patel <dpatel@apple.com> Date: Thu Feb 18 20:53:16 2010 +0000 Destroy MDNodes gracefully while deleting llvm context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5159342e3edf28d46fa2e50def6498c2c2e35a5f Author: Devang Patel <dpatel@apple.com> Date: Thu Feb 18 19:52:12 2010 +0000 Ignore target dependent value in grep search. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96604 91177308-0d34-0410-b5e6-96231b3b80d8 commit b95d51083697cd7b6a09462b18dfbe600df60223 Author: Dale Johannesen <dalej@apple.com> Date: Thu Feb 18 18:51:15 2010 +0000 Generate DBG_VALUE from dbg.value intrinsics. These currently comes out as comments but will eventually generate DWARF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89bf1e188b68b5637e416ff2b8539574ee7f5c14 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 18 18:40:29 2010 +0000 Clarify that ptrtoint+inttoptr are an alternative to GEP which are not restricted by the GEP rules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f74a0fa87916426a46ba5316d4ea47a3b4992bd Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 18 18:22:41 2010 +0000 Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96597 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c73aa9e95526f86f8c9d7a537d82eb65defeae8 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 18 18:22:18 2010 +0000 Clarify that the rules about object hopping kick in when a pointer is deferenced, rather than when the pointer value is computed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96596 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74e1ff45131888ab4e5ea1fc5ff263f9a6373c1e Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 18 18:19:17 2010 +0000 Fix typos Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96594 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8696719f59aac87b9f53375b08a752defe63430 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Thu Feb 18 18:00:35 2010 +0000 Remap the call sites of a shared function in interrupt line functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 834466c4a192dcb36370d4c2c3f3871b7bf21dee Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Thu Feb 18 17:32:25 2010 +0000 Re-factoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96589 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ad781ac4b8a0f8ce961356113c9d65d5728d789 Author: Duncan Sands <baldrick@free.fr> Date: Thu Feb 18 14:37:52 2010 +0000 Uniformize the way these options are printed. Requested by Russell Wallace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96580 91177308-0d34-0410-b5e6-96231b3b80d8 commit c24378d92d55f2e3b4764f6372e9d8193f1cc0da Author: Duncan Sands <baldrick@free.fr> Date: Thu Feb 18 14:10:41 2010 +0000 Remove terminating dot in description. Inconsistency pointed out by Russell Wallace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96579 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddd5b4c929d39bd491f51ab576c1fafeaaf7e170 Author: Duncan Sands <baldrick@free.fr> Date: Thu Feb 18 14:08:13 2010 +0000 Refer to -help instead of --help since this is what tools themselves say. Also, have tools output -help-hidden rather than refer to --help-hidden, for consistency, and likewise adjust documentation. This doesn't change every mention of --help, only those which seemed clearly safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96578 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7316dea5cc26e2825cfe53b1880fcd05f924e698 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Feb 18 12:57:05 2010 +0000 Avoid a dangling pointer dereference, PassManager::add can delete the Pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96576 91177308-0d34-0410-b5e6-96231b3b80d8 commit 986fab2dc7197715928875decd663068944ac9de Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 18 06:47:49 2010 +0000 start sketching out the structure of code for result emission generation. Nothing real here yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9041a138d986e9ee5e775aa8d13d485c5778dd94 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 18 06:33:42 2010 +0000 add a missing type cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96574 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b5cbcab08ff5058af7e38fe74a9d5cf795461ea Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 18 06:29:06 2010 +0000 remove empty file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a76807eff146d515f2d2035898e87015737df1a Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Feb 18 06:05:53 2010 +0000 Use NEON vmin/vmax instructions for floating-point selects. Radar 7461718. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96572 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc90957195bbe47f7182a935b3a33f0f5476d793 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Feb 18 04:43:02 2010 +0000 Roll back the shared library, r96559. It broke two darwins and arm, mysteriously. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96569 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d4ee4e9b21f3e0d74ee548b6d419ede88bb9732 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 18 03:27:42 2010 +0000 Added LDRSBT, LDRHT, LDRSHT for disassembly only. And fixed encoding errors of AI3ldsbpo, AI3ldhpo, and AI3ldshpo in ARMInstrFormats.td in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96565 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad7e41d5e53f19b14c2c746a006240c39eaad559 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 18 02:53:41 2010 +0000 rename the child field to 'next'. This is not a parent/child relationship, this is a linear list relationship. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96561 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d4e8f0f59fd1ccb81bc11551892e8b686bc12be Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 18 02:49:24 2010 +0000 eliminate the MatcherNodeWithChild class, give the 'child' field to MatcherNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96560 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88881e1168e32522529e2feaeb539dbf82cd4a4a Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Feb 18 02:36:02 2010 +0000 Add a shared library for LLVM, named libLLVM2.7svn.(so|dylib), and add an --enable-shared configure flag to have the tools linked shared. (2.7svn is just $(LLVMVersion) so it'll change to "2.7" in the release.) Always link the example programs shared to test that the shared library keeps working. On my mac laptop, Debug libLLVM2.7svn.dylib is 39MB, and opt (for example) is 16M static vs 440K shared. Two things are less than ideal here: 1) The library doesn't include any version information. Since we expect to break the ABI with every release, this shouldn't be much of a problem. If we do release a compatible 2.7.1, we may be able to hack its library to work with binaries compiled against 2.7.0, or we can just ask them to recompile. I'm hoping to get a real packaging expert to look at this for the 2.8 release. 2) llvm-config doesn't yet have an option to print link options for the shared library. I'll add this as a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96559 91177308-0d34-0410-b5e6-96231b3b80d8 commit eadf9fc23721aea592981955c91f3f4c250afbc6 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Feb 18 02:13:50 2010 +0000 Some dag combiner goodness: Transform br (xor (x, y)) -> br (x != y) Transform br (xor (xor (x,y), 1)) -> br (x == y) Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96556 91177308-0d34-0410-b5e6-96231b3b80d8 commit c94d789e58f994c2f2d8a588389965102e78710a Author: Devang Patel <dpatel@apple.com> Date: Thu Feb 18 00:53:49 2010 +0000 New test case for r96543. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96544 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7292fda1bbff055771af5068db1db6593764648d Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 18 00:23:27 2010 +0000 fit in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96541 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8aabefbe150a42c2f429b33795e9065f68dc12ad Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 18 00:19:08 2010 +0000 Added for disassembly only the variants of DMB, DSB, and ISB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96540 91177308-0d34-0410-b5e6-96231b3b80d8 commit f95eb8ce753dff7310811807e467f420f1577946 Author: Eric Christopher <echristo@apple.com> Date: Wed Feb 17 23:55:26 2010 +0000 Fix a few unused parameter warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96533 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f7a015d6c211d086ff07328bd20f41ada29b05b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 17 23:45:16 2010 +0000 MC/Mach-O: Update fixup values for change to X86 offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48b4e349ddac3e974a031d4dd988d35d69de963d Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 22:54:10 2010 +0000 Make this an unnumbered list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96528 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7ef1d069dd569aaa93feac6dfcbf7b4596741dd Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 22:50:12 2010 +0000 HTML validation fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96527 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c811a7b2e5b9c0c3ec4abf639b05b7c3cb8add2 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 22:47:06 2010 +0000 Add an "advanced" GetElementPtr FAQ document, with answers to questions left unanswered by the first GetElementPtr FAQ. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96526 91177308-0d34-0410-b5e6-96231b3b80d8 commit c32176e1bd44ce5f9514a9ccf997e0c097122cd2 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Feb 17 22:42:54 2010 +0000 Remove the NEON N2VSInt instruction class: it's only used in one place and since it has no pattern, there's not much point in distinguishing an "N2VS" class for intrinsics anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96525 91177308-0d34-0410-b5e6-96231b3b80d8 commit e51e54f5bb0f8634ab4e9753f98289ba9cd31ff3 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Feb 17 22:37:58 2010 +0000 Added CLREX (Clear-Exclusive) for disassembly only. A8.6.30 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96523 91177308-0d34-0410-b5e6-96231b3b80d8 commit c364642e09715f19769b5b53da29da56e52a7586 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Feb 17 22:23:11 2010 +0000 More cleanup for NEON: * Use "S" abbreviation for scalar single FP registers in class and pattern names, instead of keeping the "D" (for "double") abbreviation and tacking on an "s" elsewhere in the name. * Move the scalar single FP register classes and patterns to be more consistent with other definitions in the file. * Rename "VNEGf32d" definition to "VNEGfd" for consistency. * Deleted the N2VDIntsPat pattern; N2VSPat is good enough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64f6921be53c5451a213952c145ffab395ce8c22 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Feb 17 21:39:10 2010 +0000 Added RFE for disassembly only. B6.1.8 RFE Return From Exception loads the PC and the CPSR from the word at the specified address and the following word respectively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96519 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98fc471e7a10772a978fd849928eb9905bb97859 Author: David Greene <greened@obbligato.org> Date: Wed Feb 17 20:21:42 2010 +0000 Make the non-temporal bit "significant" in MemSDNodes so they aren't CSE'd or otherwise combined with temporal MemSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96505 91177308-0d34-0410-b5e6-96231b3b80d8 commit 587e14be8e8ac7fc3c74110de6a9e549e79434d5 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Feb 17 20:18:50 2010 +0000 Remember to define super registers in mips calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96504 91177308-0d34-0410-b5e6-96231b3b80d8 commit b19b7d10d3ef4cdca16100ee15f78044d43c15d4 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 17 20:08:42 2010 +0000 Add Regex::sub, for doing regular expression substitution with backreferences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 739ef571a2d239ebb3b0743748b042c99a8533d8 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 19:54:34 2010 +0000 irbuilder is doing constant folding now by default, PR6092 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96502 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1aedc2c20ca91f228093407fd5eee479f249a0f9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 19:51:31 2010 +0000 fix some out of date prose dating from the LLVMContext changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96500 91177308-0d34-0410-b5e6-96231b3b80d8 commit e209ed52e3d0baed0d80195a462ad80cf4f3a64c Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 17 19:26:45 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96498 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd84b4bebc1d3d9c85e4e65fe66ae7e10326cf95 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 19:19:50 2010 +0000 redisable this to save people a small amount of build time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96497 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17ab361f218b0c9c823b4900ed28876bc0848866 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Feb 17 19:13:56 2010 +0000 Dead code elimination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49b4f955f8027576a49aacf264e297cc0493b0d5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 18:57:19 2010 +0000 "Fix and issue in SparcAsmPrinter where multiple identical .LLGETPCHn symbols could be emitted in the same file (it was uniqued by block number, but not by function number). " Patch by Nathan Keynes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96495 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54f5c508486c1d120d8a62efe6bbcca444551478 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 18:52:56 2010 +0000 move isOnlyReachableByFallthrough out of MachineBasicBlock into AsmPrinter, and add a sparc implementation that knows about delay slots. Patch by Nathan Keynes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cbf45556d0dd1cd039400aeba3b4ba5ac9a0202 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 18:42:24 2010 +0000 add a note, from PR5100 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e76fd0c478b8a328e76a3364688c9d9fe20525d Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 18:39:56 2010 +0000 add missing method, PR6284 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96489 91177308-0d34-0410-b5e6-96231b3b80d8 commit daf84e05852c3b3199a3c075eba0fe8b915e8882 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 18:33:13 2010 +0000 add optional debian instructions, PR6272 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96488 91177308-0d34-0410-b5e6-96231b3b80d8 commit cac5f1f58d7df62d5ca893c3db3c8d3d706a7d99 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Feb 17 18:11:29 2010 +0000 Added routine to clone the body of a function and maintain a map of already cloned functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 491a1ff42cd2b311880b77c70c401121fa6474ca Author: Duncan Sands <baldrick@free.fr> Date: Wed Feb 17 17:20:17 2010 +0000 Mention an API change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f5ee33ea755aa8110c6b3bede2589689adaf071 Author: Duncan Sands <baldrick@free.fr> Date: Wed Feb 17 14:52:22 2010 +0000 Pacify gcc-4.5, which warns (correctly) that these switches have cases that are not part of the enum. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 197ad60fa75a81c866710e99bb9cc6dd0bb66541 Author: Eric Christopher <echristo@apple.com> Date: Wed Feb 17 08:53:27 2010 +0000 Revert: r95605 | dpatel | 2010-02-08 15:27:46 -0800 (Mon, 08 Feb 2010) | 2 lines test case for r95604. Which was the testcase for the patch reverted from llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96474 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfa756308b82a1644fb9176b3b8307fc82db1076 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 06:53:36 2010 +0000 reduce nesting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96466 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a1ae6843df7e7545e7c4bbb94fa9fdbc1c9561d Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Feb 17 06:48:50 2010 +0000 Added a function to clone locals of a function.( which for pic16 are globals with mangled names). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96465 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dea247c3b95e66a33ec36d08f00726f9a7da0c5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 06:47:35 2010 +0000 improve comments, the matcher is now feature complete, on to codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96464 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e90a2924873fee4f0c24f9bbe2e2acd6aafa6f7 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Feb 17 06:46:23 2010 +0000 Removed header files from .h by adding forward decls. Renamed PIC16FrameOverlay namespace to PIC16OVERLAY. Renamed PIC16FrameOverlay class to PIC16Overlay. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96463 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb01b1e85f3c9730759fcb13349b45b0b42d4133 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Feb 17 06:31:48 2010 +0000 Added BFI for disassembly only. A8.6.18 BFI - Bitfield insert (Encoding A1) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96462 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6692fa908a3a3f4437609b0e817f0acd8098292 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 06:28:22 2010 +0000 sink special case "cannotyetselect" for intrinsics out of the tblgen splatted code into the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96460 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1dd428284e6058052e5a6689b2af2060b838f11 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 06:23:39 2010 +0000 Emulate the current isel's "IsChainCompatible" logic for now. I'd like to eventually rip it out, but for now producing the same selections as the old matcher is more important. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96458 91177308-0d34-0410-b5e6-96231b3b80d8 commit f080de44754a95cddca4d9f86dc93e74988f0136 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 06:08:25 2010 +0000 properly record chain inputs to complex patterns, resolving a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 212c5804c459dfe7f23ea3de1941c105c7728af2 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 06:07:47 2010 +0000 rename and document some arguments so I don't have to keep reverse engineering what they are. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d98c838d5eb47e3c66291ea2e27380f0d3139ef Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Feb 17 05:53:11 2010 +0000 Use pointer-wide encoding for LSDA and FDE on Darwin. Hopefully, this will fix the remaining issues seen there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96454 91177308-0d34-0410-b5e6-96231b3b80d8 commit eaf82d889ecc0056cbadb355c1153fdf7858686f Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 05:35:28 2010 +0000 simplify IsChainCompatible codegen, add comments. no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0be6757d9bc10b078ddaa9e3987b6b0eaed2e4a0 Author: Lang Hames <lhames@gmail.com> Date: Wed Feb 17 03:42:51 2010 +0000 Removed an early out which was causing the PBQP allocator to not compute live-in sets or run the rewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51e24cb395ef99fbbc6fbe88be989a3f86bd9985 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 02:39:31 2010 +0000 Fix SCEVExpander's existing PHI reuse checking to recognize the case where there are loop-invariant instructions somehow left inside the loop, and in a position where they won't dominate the IV increment position. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96448 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5419f2f9d45ac84f567eff6508a94a292c849e5 Author: Devang Patel <dpatel@apple.com> Date: Wed Feb 17 02:20:34 2010 +0000 Before setting scope end marker, pay attention to scope begin marker and existing scope end marker, if any. Scope must begin before it ends and nested inlined scope do not truncate surrounding scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82d7099221326012de1a84a84832e66e2be2a8a3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 02:16:19 2010 +0000 Prep work to handle input chains of matched patterns and checking for 'ischaincompatible' when a pattern has more than one input chain. Need to do some commenting and cleanup now that I understand how this works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96443 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b423812d6e781c533b537e9beefa593cad45e88 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 01:55:54 2010 +0000 daniel remembered why this was needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96440 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4ab22d6e915d3a1f6acd388c2209a3f4f9ea981 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 01:38:01 2010 +0000 add a comment explaining why darwin/i386 uses ## as a comment. It's not clear why this is really required, but it was explicitly added in r48808 with no real explanation or rdar #. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96438 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdbb8357a71f36257d0eee4f35024142806c928d Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 01:34:15 2010 +0000 record input chains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96437 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ab37e16af2275b8cb6d3960d83bb26563736822 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 01:27:29 2010 +0000 prefix captured value names with $ so they look like variables. Use the fancy OpNo variable instead of i, which has the right index including chains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96436 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b4f2e55c0db3873138723b3a5f8de004dab506e Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Feb 17 01:11:53 2010 +0000 Initial implementation of PIC16 Cloner pass. This pass is supposed to be run on the linked .bc module. It traveses the module call graph twice. Once starting from the main function and marking each reached function as "ML". Again, starting from the ISR and cloning any reachable function that was marked as "ML". After cloning the function, it remaps all the call sites in IL functions to call the cloned functions. Currently only marking is being done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96435 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1da86b25d395726d446dbd4814b09e52c060ccd Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 01:08:57 2010 +0000 Don't check for comments, which vary between subtargets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96434 91177308-0d34-0410-b5e6-96231b3b80d8 commit e78397b57651577bf13613ac6ec6ab4b1b75b3c4 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 01:03:09 2010 +0000 improve comments on OPC_Record to say what we're recording a node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96433 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d1673fb026b070b802460077e62c3d8fdd1e004 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 00:54:58 2010 +0000 Fold bswap(undef) to undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96432 91177308-0d34-0410-b5e6-96231b3b80d8 commit a93b0de79e649a8d4463ca525a4a950b129db6eb Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 00:42:19 2010 +0000 Delete some unneeded casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96429 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec933669c4039f33b38cc766982229974ca382ea Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 00:41:53 2010 +0000 Don't attempt to divide INT_MIN by -1; consider such cases to have overflowed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96428 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4d4076386ecb4617e09b8b15e671cdc07c8a1db Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 00:41:34 2010 +0000 make the new isel's interpreter loop call the generated CheckComplexPattern function. Though it is logically const, I don't have the fortitude to clean up all the targets now, and it not being const doesn't block anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96426 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59749a3cb6ae45955865f7e875e7dd38568df5d9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 00:39:26 2010 +0000 improve comments in generated matcher a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69957ff9041ce113d7d2c5d41446ddf9c5900e44 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 17 00:37:20 2010 +0000 Make the operand and format specifier match, and print all 64 bits, fixing a variety of problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4411c2e11d783ee6d4b9a65a48fdc3f5ef03d7e9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 00:31:50 2010 +0000 make the new isel generator plop out a CheckComplexPattern function for evaluating complex patterns. Some cleanup has to happen before this can be used though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96419 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfdce68ddbbb43b4a2f2628b58582870e8cc1b81 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Feb 17 00:31:29 2010 +0000 Wrap lines to 80 columns and generally try to clean up whitespace and indentation. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d7619e9f971d2299ddf1140b14da3aeeb5b5e36 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 00:29:06 2010 +0000 roundss is an sse 4 thing, fix the test on non-sse41 builders like llvm-gcc-x86_64-darwin10-selfhost git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42675c6528107adcf75cbf2425e88dfe2132f630 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 17 00:11:30 2010 +0000 fix inverted condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96416 91177308-0d34-0410-b5e6-96231b3b80d8 commit 598072cf6deac9bad6c543d0186e6d0982580caa Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 16 23:25:23 2010 +0000 Make g5 target explicit; scheduling affects register choice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96413 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa71393244402d8beffef682b9344b0a404c2ec9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 23:16:25 2010 +0000 complex patterns don't get 'record' nodes, they implicitly record all their results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96412 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b8803bdb263d380042e910efe5444b39c9d1b4b Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 23:13:59 2010 +0000 clean up some code, eliminate NodeIsComplexPattern, which does the same thing as getComplexPatternInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5faa9d59ece74fdf5e836ef32d14976500ba6c3f Author: Bill Wendling <isanbard@gmail.com> Date: Tue Feb 16 22:47:14 2010 +0000 Make error statement more personal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49e718489de8b969973ec4324acc8060ce11d0fa Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 22:38:31 2010 +0000 fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 494c589c39c9549b906398802608b0983adc88be Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 22:35:06 2010 +0000 fix rdar://7653908, a crash on a case where we would fold a load into a roundss intrinsic, producing a cyclic dag. The root cause of this is badness handling ComplexPattern nodes in the old dagisel that I noticed through inspection. Eliminate a copy of the of the code that handled ComplexPatterns by making EmitChildMatchCode call into EmitMatchCode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38a65967dec66441c5610ba19dfe35a28272f2b9 Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 16 22:31:31 2010 +0000 Adjust register numbers in tests to compensate for the new lack of R2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96407 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60fd8df8b5bbb2b66af3f97ebeabc8bb27180823 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 22:13:43 2010 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96404 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11ea1ddcc1b08203a0db0eea4146e93cf792a79c Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Feb 16 22:01:59 2010 +0000 Handle tGPR register class in a few more places. This fixes some llvm-gcc build failures due to my fix for pr6111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96402 91177308-0d34-0410-b5e6-96231b3b80d8 commit d44933d247156442c64c8e0ac9c5b4ac121063c2 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 16 21:59:54 2010 +0000 Add SMC (Secure Monitor Call) system instruction for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86bcc29c3189c775fae8c69f0359b4f9f510b1be Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 16 21:53:27 2010 +0000 Really reserve R2 on PPC Darwin. PR 6314. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96399 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14568d790b7e5dab04a4b9c1873a6a69d8055adc Author: Devang Patel <dpatel@apple.com> Date: Tue Feb 16 21:39:34 2010 +0000 Use line and column number to distinguish two lexical blocks at the same level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96395 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d473e60e8d1b9d5f2246e0b3b108cd93dcb1aea Author: Jim Grosbach <grosbach@apple.com> Date: Tue Feb 16 21:23:02 2010 +0000 80 column cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96393 91177308-0d34-0410-b5e6-96231b3b80d8 commit feaea7beb8e8d2f4cdc8a9b9d0edeb5f443162ec Author: Devang Patel <dpatel@apple.com> Date: Tue Feb 16 21:16:08 2010 +0000 New testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96391 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57fa1e6039d5414abe846d8b8b4a7348b9ca2299 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Feb 16 21:09:44 2010 +0000 Look for SSE and instructions of this form: (and x, (build_vector c1,c2,c3,c4)). If there exists a use of a build_vector that's the bitwise complement of the mask, then transform the node to (and (xor x, (build_vector -1,-1,-1,-1)), (build_vector ~c1,~c2,~c3,~c4)). Since this transformation is only useful when 1) the given build_vector will become a load from constpool, and 2) (and (xor x -1), y) matches to a single instruction, I decided this is appropriate as a x86 specific transformation. rdar://7323335 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96389 91177308-0d34-0410-b5e6-96231b3b80d8 commit d926bc7168536737dcb44b6b15ac11d78dddaaf8 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Feb 16 21:07:46 2010 +0000 Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96388 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74fd8d32929a7b076649f82b218f5d4d9aa0e03a Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Feb 16 21:06:42 2010 +0000 Rename SuccessorNumber to GetSuccessorNumber. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96387 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d620a400b1479e1a4a37424b9c9fa325907f1ff Author: David Greene <greened@obbligato.org> Date: Tue Feb 16 20:50:18 2010 +0000 Add support for emitting non-temporal stores for DAGs marked non-temporal. Fix from r96241 for botched encoding of MOVNTDQ. Add documentation for !nontemporal metadata. Add a simpler movnt testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96386 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fadab28bfcef8470d12c068616ada11cbd683f5 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Feb 16 20:48:55 2010 +0000 Testcase for critical edge splitting with load PRE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96385 91177308-0d34-0410-b5e6-96231b3b80d8 commit fef89ea2a62eaba2e0743530ac3530f00b817039 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Feb 16 20:42:29 2010 +0000 Update Thumb2 to not use CarryDefIsUnused or CarryDefIsUsed predicates, but to have the predicate on the pattern itself instead. Support for the new ISel. Remove definitions of CarryDefIsUnused and CarryDefIsUsed since they are no longer used anywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96384 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8c650aa2c53a07d466ccf6845b7821768aa1d7d Author: Jim Grosbach <grosbach@apple.com> Date: Tue Feb 16 20:35:59 2010 +0000 Remove redundant setting of Defs. CPSR is already marked by the block level set of Defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96383 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9e9c208698b4243e9a9a260ea5b1dbc34dc2694 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 16 20:25:07 2010 +0000 Refactor rewriting for PHI nodes into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96382 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee58357256ebbf38229782dd30b8d5bdda0bdfcd Author: Jim Grosbach <grosbach@apple.com> Date: Tue Feb 16 20:17:57 2010 +0000 First step in eliminating the CarryDefIsUnused and CarryDefIsUsed predicates. They won't work with the new ISel mechanism, as Requires predicates are no longer allowed to reference the node being selected. Moving the predicate to the patterns instead solves the problem. This patch handles ARM mode. Thumb2 will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77992fea5250cb63b179847da70dc42f91962c35 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 16 20:04:27 2010 +0000 Added for disassembly the following instructions: o Store Return State (SRSW, SRS) o Load/Store Coprocessor (LDC/STC and friends) o MSR (immediate) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96380 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9b39793e3f4dc0e33f898786ab7d7f7936083d4 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Feb 16 19:51:59 2010 +0000 Split critical edges as needed for load PRE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39eaa32127cf3250d6f2c6be289ee036038e5906 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Feb 16 19:49:17 2010 +0000 Refactor to share code to find the position of a basic block successor in the terminator's list of successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96377 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7760d0e0606a822021c0159226242f3b007f9e2 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 16 19:42:34 2010 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6680cd2dc9be8f353f9d5d494127e2c716e7fb38 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Tue Feb 16 19:28:02 2010 +0000 Function attributes have index ~0, not 0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96370 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7ce535453a375581f8d9857c5f17715bddbdc5d Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 19:19:58 2010 +0000 simplify this code. In the new world order there is no need to scan the entire subtree of the pattern anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96369 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1b6280131fc345cd67c6246a800a886cc280c37 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 19:15:55 2010 +0000 convert the new matcher to check intermediate nodes for a single use and only call IsProfitableToFold/IsLegalToFold on the load being folded, like the old dagiselemitter does. This substantially simplifies the code and improves opportunities for sharing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96368 91177308-0d34-0410-b5e6-96231b3b80d8 commit d93d4503a10f8e4f7a3a2be7a32e57ab790a0fb9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 19:03:34 2010 +0000 change dag isel emitter to only call 'IsProfitableToFold' on nodes with chains. On interior nodes that lead up to them, we just directly check that there is a single use. This generates slightly more efficient code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96366 91177308-0d34-0410-b5e6-96231b3b80d8 commit f25ffc2eaca3ca1720444abe9993baa41380ac8d Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Feb 16 17:24:15 2010 +0000 Fix pr6111: Avoid using the LR register for the target address of an indirect branch in ARM v4 code, since it gets clobbered by the return address before it is used. Instead of adding a new register class containing all the GPRs except LR, just use the existing tGPR class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96360 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1c5b8bfbb203c63720dfb83dce31625b9924a7c Author: Duncan Sands <baldrick@free.fr> Date: Tue Feb 16 14:50:09 2010 +0000 Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move some methods to try to have the type predicates be more logically positioned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00f2a6b91ad2dbbce9edfecce9caa47d72ffac93 Author: Duncan Sands <baldrick@free.fr> Date: Tue Feb 16 11:11:14 2010 +0000 There are two ways of checking for a given type, for example isa<PointerType>(T) and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96344 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10b11b5ee8b0dc0c620565411e2ef5c1af4d1ca8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Feb 16 10:25:04 2010 +0000 Minor warning fixes (semicolons, newline at EOF). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96343 91177308-0d34-0410-b5e6-96231b3b80d8 commit f74051bfc6788ab0af465b7629aa213e5c381dcc Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 07:26:36 2010 +0000 mark all the generated node predicates 'const'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96337 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e4ed1a4543e88e5697469e24f17e800169c3129 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 07:21:10 2010 +0000 generate code for node and pattern predicates. Note that this won't build if enabled, it will fail with constness issues. I'll resolve these next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a6eebb2aebde9f605906bb08ab0b0f1ed228572 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 06:52:01 2010 +0000 refactor some code into a local class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96334 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2dd2f23953a69ec2c342d5421982db02af3d7f24 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 06:15:00 2010 +0000 remove now dead code and fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96333 91177308-0d34-0410-b5e6-96231b3b80d8 commit 638838d250bc239a714c16a3268cfe6d61013161 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 06:14:22 2010 +0000 remove dead code. This is never generated for any targets in mainline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96332 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6556761e463fa7022b3000a7f674501872f8607 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 06:10:58 2010 +0000 add support for the new isel matcher to generate (isprofitable|islegal)tofold checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96331 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab38222131e3e43a366e4da26aea0cc8e0ca4b8a Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 16 05:03:17 2010 +0000 make pcrel immediate values relative to the start of the field, not the end of the field, fixing rdar://7651978 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96330 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b666cda8f23b02e7e37a50baad79e547299977b Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Feb 16 03:45:23 2010 +0000 Fix a typo in an LLVMOpcode enum. LLVMTrunk -> LLVMTrunc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96324 91177308-0d34-0410-b5e6-96231b3b80d8 commit d07191c7433f724ab011dc8dd066405b7d6a8543 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Tue Feb 16 03:45:17 2010 +0000 Fix some ocaml documentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fe8877a1160488bbe6b99bf57e89bd2c8537cca Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Tue Feb 16 03:41:07 2010 +0000 The code section for an ISR has a specific address. Currently, whether a function is ISR or not is encoded in the section attribute for that function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0667d716109d2962b78895f11c6569c19ddf39de Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 16 01:57:28 2010 +0000 Handle DBG_VALUE mixed with labels when doing PHI elimination. Before a DBG_VALUE could affect codegen. The solution here is imperfect and not final. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96318 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9bbef3224217647a4ebd7dfa8fd96c0c242bd4e7 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Feb 16 01:50:18 2010 +0000 Drop support for the InReg attribute on the ppc backend. This was used by llvm-gcc but has been replaced with pad argument which don't need any special backend support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96312 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74122dc59729d434f36bd9616da6a48ebe710bba Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 16 01:42:53 2010 +0000 Split the main for-each-use loop again, this time for GenerateTruncates, as it also peeks at which registers are being used by other uses. This makes LSR less sensitive to use-list order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96308 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56d339fd25e7fab39d24ffb2b9f526f462d70902 Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 16 01:27:47 2010 +0000 Reapply 96294; now that I've gotten around to looking at older buildbot messages, I see the failure predates this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96307 91177308-0d34-0410-b5e6-96231b3b80d8 commit 146ea06aba961faffacce13ea7ef13bfc1bc0034 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Feb 16 00:58:02 2010 +0000 Apply patch from http://llvm.org/bugs/attachment.cgi?id=4136 now that PR5004 is finished. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96304 91177308-0d34-0410-b5e6-96231b3b80d8 commit 308a961045b0f98cbb7ec563d714af28ea22cc57 Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 16 00:43:58 2010 +0000 Something broke. Hard to believe it was this patch but it's harder to believe it's the other candidate, so reverting. Temporarily I hope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e08033bba79f68e5026dba6bff8b2c88f4969f0 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 16 00:20:08 2010 +0000 When reusing an existing PHI node in a loop, be even more strict about the requirements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96301 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32e19800e215b85fa3add4e80dd02a41cf0c57ce Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Feb 15 23:43:47 2010 +0000 Put repeated empty pattern into the AQI instruction class. We could almost use a multiclass for the signed/unsigned instructions, but there are only 6 of them so I guess it's not worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96297 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f4ee011ff7bf7b42502ce88731bcd87271847e9 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Feb 15 23:16:53 2010 +0000 Fix a memory leak. Patch by Nicolas Geoffray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d3f45c5a477928f872cba01f9224955b3a3b24e Author: Dale Johannesen <dalej@apple.com> Date: Mon Feb 15 23:05:03 2010 +0000 More handling of DBG_VALUE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 865e8c7081d5ab11222986a6798f1ce58a618080 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Feb 15 22:55:13 2010 +0000 Add missed entry to cmake build list file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96292 91177308-0d34-0410-b5e6-96231b3b80d8 commit a55abaffd833a86872e2e33b00eafda8a15c36f9 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Feb 15 22:38:25 2010 +0000 Use ttype encoding consistently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38d61a078546b3e111a46bc425ce585b76cdf5d2 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Feb 15 22:38:10 2010 +0000 Fix a silly darwin-only typo introduced during merge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96289 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfda2e31ac49f798133c388273797c2b542de9e9 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Feb 15 22:37:53 2010 +0000 Move TLOF implementations to libCodegen to resolve layering violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96288 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4200bc29ff68ab1594cda5b2eee048e0c8359eb Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Feb 15 22:36:41 2010 +0000 It turns out that we emitted completely wrong common EH frame since the early beginning! The "z" CIE augmentation mark indicates that there is an extra word containing the size of augmentation section. However, even for frames w/o any augmentation data we emitted size uleb! (this is the case of "unwinding through C code"). Thus frame moves information was emitterd completely wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96287 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb1b1a8e83983d1b587f4b0366399ef73ae8b0ca Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Feb 15 22:36:26 2010 +0000 Add suffix for stubs, so we won't have name clashes with private symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96286 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8b5cf127ff2b6bc0058933115e479a5d2d19605 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Feb 15 22:35:59 2010 +0000 Preliminary patch to improve dwarf EH generation - Hooks to return Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83540cf4ee16238a036905f916ff450beef5136b Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Feb 15 22:09:09 2010 +0000 Teach the verifier to check the condition on a branch and ensure that it has 'i1' type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96282 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc3c0a23abd0dde7266c4a26a94da33ad11dfa9a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Feb 15 22:03:29 2010 +0000 Fix PR6300. A virtual register can be used before it is defined in the same MBB if the MBB is part of a loop. Teach the implicit-def pass about this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96279 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3aa3691a322badcabcf0507fc5d418af3a245c21 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Feb 15 21:56:40 2010 +0000 Last week we were generating code with duplicate induction variables in this test, but the problem seems to have gone away today. Add a check to make sure it doesn't come back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96277 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64bc51ccf6c4d6feb599bb3926dd6be78c47ed0a Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Feb 15 21:52:04 2010 +0000 Fix crash in VerifyType when checking Contexts. Because there may not be a Module (we were called with verifyFunction and an unowned Function) we can't rely on Mod->getContext(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96275 91177308-0d34-0410-b5e6-96231b3b80d8 commit fce19f702065e5508104b97d398b421b0ae15548 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Feb 15 21:27:56 2010 +0000 Don't try to materialize a function that isn't materializable anyways. This fixes a crash using FPM on a Function that isn't owned by a Module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96273 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5b71ecaa3ebeb3b1cab0dcffac87ea2234e4ae2 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Feb 15 21:27:20 2010 +0000 A function with no Module owner isn't materializable. This fixes F->dump() for functions not embedded within modules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96272 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdf8ea5260cbc0da97b97c6375f5a08f91f544f0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 21:14:50 2010 +0000 remove empty file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29fb7359e9c95c60e25d6c6ec04226258e2f23d1 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Feb 15 21:08:22 2010 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2701109863eb6d7429f7466872be024975d250f6 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Feb 15 20:53:17 2010 +0000 Remove c++ style comments from c header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96266 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa926c2fa04593fcba3ac8c2be1e2d190de2a43e Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 20:53:01 2010 +0000 revert r96241. It breaks two regression tests, isn't documented, and the testcase needs improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96265 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5649118a2dbf2c08001b2fbb0d14368452a170b1 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Feb 15 20:50:51 2010 +0000 Renumber Instruction enums in llvm-c. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06cbf699410d304f30bae868d77c24dd4d4c06db Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 20:47:49 2010 +0000 fix PR6305 by handling BlockAddress in a helper function called by jump threading. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96263 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c2a2ee1e16b8ea0e06b90e6144b8c530a02ba47 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Feb 15 19:41:07 2010 +0000 Split SelectionDAGISel::IsLegalAndProfitableToFold to IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use. This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96255 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c2c36ec20ff2725c64b0f0abae8d31cfbedd6b5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 18:55:04 2010 +0000 comment fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96248 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22592eb38c87f396aa04c046a16e83045e6baea3 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 17:02:56 2010 +0000 Add support for emitting non-temporal stores for DAGs marked non-temporal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96241 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06fd33bfbf6f211c48b4fd3ceeb04a3e110567da Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 17:00:31 2010 +0000 Add non-temporal flags and remove an assumption of default arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96240 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b2f30ed619ffc3bcb0e661cad06160cc4ecc437 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:57:43 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96239 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1259402d5897c33be616a852ed4562de73a676b7 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:57:13 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96238 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b152e3a7279b532f9341c9a0d68d3bd0d5b9820 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:57:02 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96237 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61b1ae04b047927e8d446379ead249b894870b6b Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:56:53 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96236 91177308-0d34-0410-b5e6-96231b3b80d8 commit 633141d5738691281f96cfa0785299001d9dfa69 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:56:34 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96235 91177308-0d34-0410-b5e6-96231b3b80d8 commit c534755355037f2a75b39518aaa3a48f341c1253 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:56:22 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20cbce0f2c3e4ec73b27fd36b34babdcd6ce942a Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:56:10 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96233 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec311a98211de0c5949700e7196a67cc24b5666e Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:55:58 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25e1f1a2577aa77accd8f74f7a70ae85701b5706 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:55:37 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31403f268e554af4c9764775df246d61762133b7 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:55:24 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33f0e02d5336a1719fb7b2d3c9c72b22ede654bb Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:55:07 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82394ef82056375bf752676859c219791996319e Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:53:33 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96228 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf22e0946e6fe86ccd4c421a4b22ce7214f7cf5d Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:49:52 2010 +0000 Remove an assumption of default arguments. This is in anticipation of a change to SelectionDAG build APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96227 91177308-0d34-0410-b5e6-96231b3b80d8 commit a870e9d00ccdf325bd441638e79d0ea799233835 Author: David Greene <greened@obbligato.org> Date: Mon Feb 15 16:48:31 2010 +0000 Add non-temporal flags to MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96226 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1acb80d4e42f7a5a0fff08737d068afb5601149 Author: Duncan Sands <baldrick@free.fr> Date: Mon Feb 15 16:12:20 2010 +0000 Uniformize the names of type predicates: rather than having isFloatTy and isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96223 91177308-0d34-0410-b5e6-96231b3b80d8 commit b743e68144f4a59dac95dc80251fd794ba58e8d8 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Feb 15 15:17:05 2010 +0000 CMake: Fixed syntax in conditional. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96221 91177308-0d34-0410-b5e6-96231b3b80d8 commit 011dfdfde2e50769b9f276ad614bd888b12fc7ae Author: Andrew Lenharth <alenhar2@cs.uiuc.edu> Date: Mon Feb 15 15:00:44 2010 +0000 Fix changes from r75027 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96220 91177308-0d34-0410-b5e6-96231b3b80d8 commit d31ee026569a5f24c445267e016cf9910583ecd1 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 15 10:28:37 2010 +0000 When testing whether a given SCEV depends on a temporary symbolic name, test whether the SCEV itself is that temporary symbolic name, in addition to checking whether the symbolic name appears as a possibly-indirect operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96216 91177308-0d34-0410-b5e6-96231b3b80d8 commit 657373b3503c19e66e2dd7a396f14b8986883f81 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 08:04:42 2010 +0000 Check in the first big step of rewriting DAGISelEmitter to produce a table based matcher instead of gobs of C++ Code. Though it's not done yet, the shrinkage seems promising, the table for the X86 ISel is 75K and still has a lot of optimization to come (compare to the ~1.5M of .o generated the old way, much of which will go away). The code is currently disabled by default (the #if 0 in DAGISelEmitter.cpp). When enabled it generates a dead SelectCode2 function in the DAGISel Header which will eventually replace SelectCode. There is still a lot of stuff left to do, which are documented with a trail of FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dc91ca186b2e7dd7c308c4e6cf7d3e7969ca5e3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 07:11:34 2010 +0000 give SDValue an operator->, allowing V->isTargetOpcode() and many other natural things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96214 91177308-0d34-0410-b5e6-96231b3b80d8 commit f02f4757dc20afc15f8a81a882b4f1ecefd00077 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 06:39:31 2010 +0000 don't make insanely large node numbers for no reason, packing somewhat densely is better than not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96213 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4aac10ec660a06e22dce191128eb5024ab21518 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 06:38:41 2010 +0000 no need to add the instruction count anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bba1bac8b95c78b92a4a72b5705e2a25713755f Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Feb 15 03:17:06 2010 +0000 Revert r96130 ("Forward parameter options as '-option=param'"). This behaviour must be configurable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96210 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd9b922998ba89ea8f5d1189eace6e32789abaad Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 02:18:26 2010 +0000 enhance raw_svector_ostream::write_impl to work with unbuffered streams, which may call write_impl on things that are not the usual buffer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96209 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55386b01a4cecd00ced70506053c42a484377f97 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 15 02:17:50 2010 +0000 make PadToColumn return the stream so you can use: OS.PadToColumn(42) << "foo"; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fb413bb51d0dee81a73bd9172f9143a34131f00 Author: Dale Johannesen <dalej@apple.com> Date: Mon Feb 15 01:45:47 2010 +0000 Ignore DBG_VALUE in a couple more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96207 91177308-0d34-0410-b5e6-96231b3b80d8 commit f26cfe1cb289c64d1b4837ee27cf8a82c807c52b Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 15 00:21:43 2010 +0000 When restoring a saved insert location, check to see if the saved insert location has become an "inserted" instruction since the time it was saved. If so, advance to the first non-"inserted" instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96203 91177308-0d34-0410-b5e6-96231b3b80d8 commit ace26149d15397912b33d27b2581d5c8152ff748 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 14 22:33:49 2010 +0000 constize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96199 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8205a02f245f50066f35d18b185b10f6991437a Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 14 22:22:58 2010 +0000 clean up a bunch of code, move some random predicates on TreePatternNode to be methods on TreePatternNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96197 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7345cb780331e29aaf65aac22dd0fa47cb2ab3a Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 14 21:53:19 2010 +0000 mark "addr" as having type "iPTR", eliminating some type comparisons in hte generated dag isel fil. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96193 91177308-0d34-0410-b5e6-96231b3b80d8 commit d61d15ec8e1c357e5b95d2cb5165134f8a969d49 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 14 21:11:53 2010 +0000 remove the DisablePatternForFastISel predicate, which is a check that predated -fast-isel which attempted to speed up the dag pattern matchers at -O0. Since fast-isel is around, this is basically obsolete and removing it shrinks the generated dag isels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96188 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e3d5991f3236a4d47a10fed9b3a49fdac06e873 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 14 21:10:33 2010 +0000 add an insertion operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96187 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9579a01585fd387c4d3d4dcc422b6adcec0d91d4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 14 21:10:15 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96186 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99fca24dccf031de508b81747ae8370f86360845 Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 14 18:51:39 2010 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96179 91177308-0d34-0410-b5e6-96231b3b80d8 commit c406240f44cb131e976cb4d51b7ab83a7b0b0ed9 Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 14 18:51:20 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96178 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82460b98c2e062fd5148427a9cb1cb78a4909769 Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 14 18:50:49 2010 +0000 When complicated expressions are broken down into subexpressions with multiplication by constants distributed through, occasionally those subexpressions can include both x and -x. For now, if this condition is discovered within LSR, just prune such cases away, as they won't be profitable. This fixes a "zero allocated in a base register" assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96177 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40742a3a3882348c797524c7c86a9ec5814725aa Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sun Feb 14 18:27:42 2010 +0000 fixes to pagesel/banksel inserter. 1. restore these across direct/indirect calls. 2. restore pagesel for any macros with gotos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33e8473580e0fbf1f3a69fdc43933f5587017f55 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Feb 14 18:25:41 2010 +0000 Forgot to commit the header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96174 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc2ace8a01bf1365ef8ee7b51c5c11ae8948fa0d Author: Chris Lattner <sabre@nondot.org> Date: Sun Feb 14 18:20:09 2010 +0000 follow-on to PR6280 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47600ebabd031883ce4391d8b6cb731be4fdb52a Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Feb 14 15:19:54 2010 +0000 Drop winmcasminfo and use normal AT&T COFF for all windows targets. Otherwise AT&T asm printer is used with non-compatible MCAsmInfo and there is no way to override this behaviour. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96165 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3efdcb0c01aaf4f8ce026b8951a1355c07ea83ac Author: Johnny Chen <johnny.chen@apple.com> Date: Sun Feb 14 06:32:20 2010 +0000 Try to factorize the specification of saturating add/subtract operations a bit, as suggested by Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96153 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a3f2908bb5c8bb7a7a431b46da88c0312fbf07f Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 14 03:21:49 2010 +0000 Actually, this code doesn't have to be quite so conservative in the no-TLI case. But it should still default to declining the transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96152 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bbd4650fd1deb087fc0d14ef7ddd75433a56f61 Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 14 03:12:47 2010 +0000 In rememberInstruction, if the value being remembered is the current insertion point, advance the current insertion point. This avoids a use-before-def situation in a testcase extracted from clang which is difficult to reduce to a reasonable-sized regression test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96151 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c74bfa2a1ddd7a2ef248b0230fedf9876b8f575 Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 14 02:48:58 2010 +0000 Simplify this code; no need for a custom subclass if it doesn't need to override anything from the parent class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74fca1b9ff661b978f7618e0728f73e0fdd54a6d Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 14 02:47:26 2010 +0000 Remove a 'protected' keyword, now that SCEVExpander is no longer intended to be subclassed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96149 91177308-0d34-0410-b5e6-96231b3b80d8 commit f264808f2cb4a8b38128c3a7ae2b4f1d879d3a4e Author: Dan Gohman <gohman@apple.com> Date: Sun Feb 14 02:45:21 2010 +0000 Don't attempt aggressive post-inc uses if TargetLowering is not available, because profitability can't be sufficiently approximated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96148 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2aed470b47f8328773c0ddb95cf580fd3925d934 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Feb 14 01:47:19 2010 +0000 2.7: Note that DataTypes.h moved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96143 91177308-0d34-0410-b5e6-96231b3b80d8 commit eead7ba8da9d823e3bc0a65749598cab9884a89f Author: John McCall <rjmccall@apple.com> Date: Sat Feb 13 23:40:16 2010 +0000 Make LSR not crash if invoked without target lowering info, e.g. if invoked from opt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96135 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44f9090da450cf9dacfb75992fd9aeb26f68fc4d Author: Eric Christopher <echristo@apple.com> Date: Sat Feb 13 23:38:01 2010 +0000 Fix a problem where we had bitcasted operands that gave us odd offsets since the bitcasted pointer size and the offset pointer size are going to be different types for the GEP vs base object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96134 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8042b4e7edc9d542d2e58143943ffb3beaed9390 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Feb 13 22:37:28 2010 +0000 Forward parameter options as '-option=parameter'. Some tools do not like the '-option parameter' form. Should this be configurable? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92cd5e38ac6edcef4b749c69b80746c4259989a2 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Feb 13 22:37:13 2010 +0000 Support some more Darwin-only options. We really need a conditional compilation mechanism... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96129 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49f2808120c4d0f15687725809b0e536474e791a Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Feb 13 22:37:00 2010 +0000 Support -mfix-and-continue properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96128 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50d6b85789129c236b23be735e1b32dd63abc8ca Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Feb 13 22:36:43 2010 +0000 Revert r94752, turns out we don't need to touch these options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96127 91177308-0d34-0410-b5e6-96231b3b80d8 commit f23debd520b74ad86a216ada0e01f7fd0ffc61e2 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 22:23:47 2010 +0000 Trim trailing spaces (aka, trigger rebuild). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96126 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b0a6878e6c460e05f4b03c46bac57a7fa59a59c Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 20:06:50 2010 +0000 pull a bunch of huge inline methods in the PatternCodeEmitter class out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 663660c70218e3a2d5278c28c9565a818151c332 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 19:16:53 2010 +0000 teach the encoder to handle pseudo instructions like FP_REG_KILL, encoding them into nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96110 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30b038f436af6b6fd4628abf88d49d40c23d0fc1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 19:07:06 2010 +0000 remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96109 91177308-0d34-0410-b5e6-96231b3b80d8 commit e253572d2fad7b182b894cbc7289ffc3375560f6 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:45:59 2010 +0000 MCAssembler: Fix pcrel relocations. Oh and, -- ddunbar@ozzy:tmp$ clang -m32 -integrated-as hello.c && ./a.out hello world! -- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96096 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf1ebe1dbfdd13d852f13bf8d6974f3f5d87a0d4 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:29:02 2010 +0000 MC/Mach-O: Start emitting fixups/relocations for instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96095 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc7fba3c3fed472e1ad8dc3e649dd60482500e98 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:28:54 2010 +0000 MCAssembler: Switch MCAsmFixup to storing MCFixupKind instead of just a size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96094 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f39f69797b8f84d4a40ab7ba02a93f55996444c Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:28:43 2010 +0000 MCAssembler: Sink fixup list into MCDataFragment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e60008ce79947b3de0cfaf1db17750a162c93aa Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:28:32 2010 +0000 MCAssembler: Switch MCFillFragment to only taking constant values. Symbolic expressions can always be emitted as data + fixups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96092 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09b30df90d48aca2e01f3f79e5067796f221f058 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:28:22 2010 +0000 MC/Mach-O: Implement EmitValue using data fragments + fixups instead of fill fragment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 290d22e0420d15aa4ea88760f8e3e4dacc97892f Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:28:15 2010 +0000 MCAssembler: Start applying fixups in the data section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96090 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb1e5f4b351ffa37946abf905337573a8dc0f70b Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:28:03 2010 +0000 MCAssembler: Add assorted dump() methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96089 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed2a7790092b11455a8595c78c875f5f975e4162 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 09:27:52 2010 +0000 X86: Move extended MCFixupKinds into X86FixupKinds.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96088 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca1cd7f210bbbb36d3124bf4acc3a04631042752 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 05:35:08 2010 +0000 Split some code out to a helper function (FindReusablePredBB) and add a doxygen comment. Cache the phi entry to avoid doing tons of PHINode::getBasicBlockIndex calls in the common case. On my insane testcase from re2c, this speeds up CGP from 617.4s to 7.9s (78x). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96083 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdfc77eb6fbafeed46c78bc811fcc2209946c066 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 05:01:14 2010 +0000 Speed up codegen prepare from 3.58s to 0.488s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74a9792208d00e0f761b05f81ffeafbace02c098 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 04:24:19 2010 +0000 PHINode::getBasicBlockIndex is O(n) in the number of inputs to a PHI, avoid it in the common case where the BB occurs in the same index for multiple phis. This speeds up CGP on an insane testcase from 8.35 to 3.58s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96080 91177308-0d34-0410-b5e6-96231b3b80d8 commit b57f90e32d5fe848d9f74f11a28bc850bde69e87 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 04:15:26 2010 +0000 iterate over preds using PHI information when available instead of using pred_begin/end. It is much faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96079 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecdb218b1b4d1f8ab7bf8d17b0c9ec123e8cd566 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 04:04:42 2010 +0000 speed up CGP a bit by scanning predecessors through phi operands instead of with pred_begin/end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96078 91177308-0d34-0410-b5e6-96231b3b80d8 commit a17ee30ede09175873860c5dead5c87c4f998729 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 03:42:24 2010 +0000 add encoder support and tests for rdtscp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96076 91177308-0d34-0410-b5e6-96231b3b80d8 commit d12893a3644282505cc9646c5b105377b431f48a Author: Johnny Chen <johnny.chen@apple.com> Date: Sat Feb 13 02:51:09 2010 +0000 Add SETEND and BXJ instructions for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96075 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16468d9e438555645102fbb2778432bd35abd4c3 Author: Sean Callanan <scallanan@apple.com> Date: Sat Feb 13 02:06:11 2010 +0000 Added the rdtscp instruction to the x86 instruction tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96073 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cf36cd25850354adaf0f3edf3de938e0ec3bc80 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Feb 13 02:06:10 2010 +0000 Fix PR6283. When coalescing with a physreg, remember to add imp-def and imp-kill when dealing with sub-registers. Also fix a related bug in VirtRegRewriter where substitutePhysReg may reallocate the operand list on an instruction and invalidate the reg_iterator. This can happen when a register is mentioned twice on the same instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f5f11fcbf30f78b7a5329a531e27f245db19c45 Author: Dan Gohman <gohman@apple.com> Date: Sat Feb 13 02:06:02 2010 +0000 Fix a pruning heuristic which implicitly assumed that SmallPtrSet is deterministically sorted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96071 91177308-0d34-0410-b5e6-96231b3b80d8 commit eff3bca8f97276e92e90f8d56c9e4291a66c4341 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Feb 13 01:56:41 2010 +0000 Teach MachineFrameInfo to track maximum alignment while stack objects are being created. This ensures it's updated at all time. It means targets which perform dynamic stack alignment would know whether it is required and whether frame pointer register cannot be made available register allocation. This is a fix for rdar://7625239. Sorry, I can't create a reasonably sized test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96069 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e628ba996e2e2af6de56252cca6e53f426301b7 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Feb 13 01:51:53 2010 +0000 Enable the inlinehint attribute in the Inliner. Functions explicitly marked inline will get an inlining threshold slightly more aggressive than the default for -O3. This means than -O3 builds are mostly unaffected while -Os builds will be a bit bigger and faster. The difference depends entirely on how many 'inline's are sprinkled on the source. In the CINT2006 suite, only these tests are significantly affected under -Os: Size Time 471.omnetpp +1.63% -1.85% 473.astar +4.01% -6.02% 483.xalancbmk +4.60% 0.00% Note that 483.xalancbmk runs too quickly to give useful timing results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d3a51e5f880151165ac69bba2515f328ed66515 Author: Sean Callanan <scallanan@apple.com> Date: Sat Feb 13 01:48:34 2010 +0000 Fixed encodings for invlpg, invept, and invvpid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58d70fd72375c42ccbb96705419ed1e13a44fdc7 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 01:28:07 2010 +0000 MC/AsmParser: Attempt to constant fold expressions up-front. This ensures we avoid fixups for obvious cases like '-(16)'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96064 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbc39e6574315ebfefa022c80b089212f9bb796e Author: Johnny Chen <johnny.chen@apple.com> Date: Sat Feb 13 01:21:01 2010 +0000 Added a bunch of saturating add/subtract instructions for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96063 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3116cb4e9495b87fdab0c951cc7d155f6b33b6c3 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 00:49:29 2010 +0000 rip out the 'heinous' x86 MCCodeEmitter implementation. We still have the templated X86 JIT emitter, *and* the almost-copy in X86InstrInfo for getting instruction sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7045e8c400a5496101069eb11da81da4a40ccad0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Feb 13 00:41:14 2010 +0000 remove special cases for vmlaunch, vmresume, vmxoff, and swapgs fix swapgs to be spelled right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62b451b2ee84750519f2508d2945ed576a1cd034 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Feb 13 00:31:44 2010 +0000 Besides removing phi cycles that reduce to a single value, also remove dead phi cycles. Adjust a few tests to keep dead instructions from being optimized away. This (together with my previous change for phi cycles) fixes Apple radar 7627077. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96057 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7f18489ed04021e50814b8b8232e2c303f5bd89 Author: Dan Gohman <gohman@apple.com> Date: Sat Feb 13 00:19:39 2010 +0000 Override dominates and properlyDominates for SCEVAddRecExpr, as a SCEVAddRecExpr doesn't necessarily dominate blocks merely dominated by all of its operands. This fixes an abort compiling 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96b7ae4a9f1f68fd1cf9ec8c8bd828aa40fdf7c5 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Feb 13 00:17:21 2010 +0000 MC/X86: Push immediate operands as immediates not expressions when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96055 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8587b0bf8eb4a2d867b2a0243b4a115221df45dd Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Feb 13 00:03:17 2010 +0000 Make PassRegistrar thread-safe since it can be modified by code running in separate LLVMContexts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96051 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11203379493732fa422589f5c9ff46e7ae4e17c3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 23:54:57 2010 +0000 Remove special cases for [LM]FENCE, MONITOR and MWAIT from encoder and decoder by using new MRM_ forms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96048 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8002ba66e96485214e3c57b43b4d6eb7706522d1 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 23:46:48 2010 +0000 add some disassemble testcases for weird instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96045 91177308-0d34-0410-b5e6-96231b3b80d8 commit a37c9b5a95253eb24d2658d55adb1c73b605c915 Author: Sean Callanan <scallanan@apple.com> Date: Fri Feb 12 23:39:46 2010 +0000 Reworked the Intel disassembler to support instructions whose opcodes extend into the ModR/M field using the Form field of the instruction rather than by special casing each instruction. Commented out the special casing of VMCALL, which is the first instruction to use this special form. While I was in the neighborhood, added a few comments for people modifying the Intel disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62574fd778f9c1cd9b8e1404d1ad92daa0e8110f Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 23:24:09 2010 +0000 implement the rest of correct x86-64 encoder support for rip-relative addresses, and add a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96040 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3aaba2b64692bb1b59451546fba55b4d06fe5df0 Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 12 23:16:24 2010 +0000 Add the problem I just hacked around in 96015/96020. The solution there produces correct code, but is seriously deficient in several ways. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96039 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5978124b36300af6cb60dfd56c4200d4156eeb0f Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 23:12:47 2010 +0000 give MCCodeEmitters access to the current MCContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96038 91177308-0d34-0410-b5e6-96231b3b80d8 commit faa7feddabee6e3f294785114ef824326268edf4 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Feb 12 23:05:31 2010 +0000 Make JIT::runFunction clean up the generated stub function. Patch by Shivram K! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0609b1e6d69aa82937e6f54af73c92c6596252da Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 23:00:36 2010 +0000 implement infrastructure to support fixups for rip-rel addressing. This isn't complete because I need an MCContext to generate new MCExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96036 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ceb228ee2b5482144e935cbe17928f60648c601 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Feb 12 22:53:19 2010 +0000 Add YIELD, WFE, WFI, and SEV instructions for disassembly only. Plus add two formats: MiscFrm and ThumbMiscFrm. Some of the for disassembly only instructions are changed from Pseudo Format to MiscFrm Format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87ee5c9565c4362991e2fd99adf365f216574eff Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 22:47:55 2010 +0000 pull the rip-relative addressing mode case up early. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4410c7506473b5ff6c075356eed07fca9c87ec26 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 22:39:06 2010 +0000 fixme resolved! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96029 91177308-0d34-0410-b5e6-96231b3b80d8 commit da3abd11aead14b8b5812bb8a5dc7fff0687f399 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 22:36:47 2010 +0000 start producing reloc_pcrel_4byte/reloc_pcrel_1byte for calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96028 91177308-0d34-0410-b5e6-96231b3b80d8 commit c52c146a6c499821a37e4a260b17dcb65f46e2d1 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Feb 12 22:34:54 2010 +0000 Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96027 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f45b9dfd57cd29af5a286c95c67e7f8831e6599 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 22:27:07 2010 +0000 enhance the immediate field encoding to know whether the immediate is pc relative or not, mark call and branches as pcrel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96026 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7312910f142ffc20c8ed466df2808be6e6ffbc65 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 12 22:17:21 2010 +0000 Load / store multiple instructions cannot load / store sp. Sorry, can't come up with a reasonable test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96023 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78597677837983b2bd54345792c5727e5cb7df0d Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 12 22:00:40 2010 +0000 This should have gone in with 26015, see comments there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97637b840f772fd49bbb73c0ec32b578a30ddc59 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Feb 12 21:59:23 2010 +0000 Add halfword multiply accumulate long SMLALBB/BT/TB/TT for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bcde6783ba1ef149066bf5f226ea3b5bb204a62 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 21:54:28 2010 +0000 doxygenize some comments, patch by Peter Collingbourne! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96018 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9ccefd1972a73e609d2a4460ef24c4d1277332f Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 12 21:35:34 2010 +0000 When save/restoring CR at prolog/epilog, in a large stack frame, the prolog/epilog code was using the same register for the copy of CR and the address of the save slot. Oops. This is fixed here for Darwin, sort of, by reserving R2 for this case. A better way would be to do the store before the decrement of SP, which is safe on Darwin due to the red zone. SVR4 probably has the same problem, but I don't know how to fix it; there is no red zone and R2 is already used for something else. I'm going to leave it to someone interested in that target. Better still would be to rewrite the CR-saving code completely; spilling each CR subregister individually is horrible code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 964eda1b7e6d2c274537d6887598d94afc39cb86 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 20:49:41 2010 +0000 Add support for a union type in LLVM IR. Patch by Talin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d4b966df8f910f36c5d8e02befd5b8da5c39038 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Feb 12 20:48:24 2010 +0000 Add SWP (Swap) and SWPB (Swap Byte) for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96010 91177308-0d34-0410-b5e6-96231b3b80d8 commit a477ca64a2ff06c295fc5d79a4ae847044964764 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 12 20:39:35 2010 +0000 Also recognize armv6t2-* and armv5te-* triplets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1abb17f23368025054fac2a266293c52308413c7 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 12 20:39:25 2010 +0000 Fix a case of mismatched types in an Add that turned up in 447.dealII. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96007 91177308-0d34-0410-b5e6-96231b3b80d8 commit db0084c8abbc02963d7087b1b89ed3ecb6bbc5d3 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 12 20:13:44 2010 +0000 Add ARM bitcode file magic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96006 91177308-0d34-0410-b5e6-96231b3b80d8 commit b20bd310eda5e159d28993229dabb4f6e481102c Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 12 19:35:25 2010 +0000 Reapply 95979, a compile-time speedup, now that the bug it exposed is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96005 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91e7b9265d247c5206860c9655fdee62d16a8512 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 12 19:20:37 2010 +0000 Fix this code to avoid dereferencing an end() iterator in offset distributions it doesn't expect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96002 91177308-0d34-0410-b5e6-96231b3b80d8 commit f012c07c5e30ab36e1fc81c6e6a27f19dba4fd44 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Feb 12 18:55:33 2010 +0000 Add CPS, MRS, MRSsys, MSR, MSRsys for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95999 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0abe9e7645ab2f98ceafea4644c210d270a3b5d2 Author: Dale Johannesen <dalej@apple.com> Date: Fri Feb 12 18:40:17 2010 +0000 Rewrite handling of DBG_VALUE; previous algorithm didn't handle X = Y<dead> = use X DBG_VALUE(X) I was hoping to avoid this approach as it's slower, but I don't think it can be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95996 91177308-0d34-0410-b5e6-96231b3b80d8 commit e92534406bed8cb0d869cf6f03bf0a0b5e8967e4 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 18:17:23 2010 +0000 1. modernize the constantmerge pass, using densemap/smallvector. 2. don't bother trying to merge globals in non-default sections, doing so is quite dubious at best anyway. 3. fix a bug reported by Arnaud de Grandmaison where we'd try to merge two globals in different address spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95995 91177308-0d34-0410-b5e6-96231b3b80d8 commit a996e79bdf9a1e3c94c87657c639ea3a4ff2a3cc Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 18:05:00 2010 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ac9e9e4b79e63595606f0c2a1f956b460c1529b Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Feb 12 17:27:08 2010 +0000 Revert "Reverse the order for collecting the parts of an addrec. The order", it is breaking llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95988 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d685a4fab6fd002bfd297096e3571df4deab415 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Feb 12 15:29:13 2010 +0000 Testcases for recent stdcall / fastcall mangling improvements git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 412cd99612db589101a9a01cf76109f517045a77 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Feb 12 15:28:56 2010 +0000 Setup correct data layout to match gcc's expectations on mingw32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24d33f599734b757d8574dbacbbfb7d09f43618d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Feb 12 15:28:40 2010 +0000 Cleanup stdcall / fastcall name mangling. This should fix alot of problems we saw so far, e.g. PRs 5851 & 2936 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95980 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8ed2ebf5ac86bfd799d9bdc66f99abe73a96620 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 12 11:08:26 2010 +0000 Reverse the order for collecting the parts of an addrec. The order doesn't matter, except that ScalarEvolution tends to need less time to fold the results this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a607b8949e73a508c26771e26f7c30b7cd26c0c Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 12 10:34:29 2010 +0000 Reapply the new LoopStrengthReduction code, with compile time and bug fixes, and with improved heuristics for analyzing foreign-loop addrecs. This change also flattens IVUsers, eliminating the stride-oriented groupings, which makes it easier to work with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95975 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca41a7d6ca95108aa285a499434a85e65830b200 Author: Lang Hames <lhames@gmail.com> Date: Fri Feb 12 09:43:37 2010 +0000 * Updated the cost matrix normalization proceedure to better handle infinite costs. * Enabled R1/R2 application for nodes with infinite spill costs in the Briggs heuristic (made safe by the changes to the normalization proceedure). * Removed a redundant header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 864d3c380bfe2a46ca0bb1e45a77232723a040d0 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 12 07:48:46 2010 +0000 Update test to match 95961. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 253134e443bed0a1abbac39f1159b43103805680 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 12 02:35:03 2010 +0000 Test for 95961. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2563a3d8062d011dc92c68bfab12d8aadb96cb14 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 02:06:33 2010 +0000 add a bunch of mod/rm encoding types for fixed mod/rm bytes. This will work better for the disassembler for modeling things like lfence/monitor/vmcall etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95960 91177308-0d34-0410-b5e6-96231b3b80d8 commit a11f1f613938c87def9975d1d02d24ab8e031db2 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 12 02:02:23 2010 +0000 Test case for 95958. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95959 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea6d61133cdc7b23708456c2f39b58f2999e8eeb Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 01:55:31 2010 +0000 revert r95949, it turns out that adding new prefixes is not a great solution for the disassembler, we'll go with "plan b". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95957 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6e257ddfe666a2a5f2d3c785ca0db1bc464ce55 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Feb 12 01:46:54 2010 +0000 MC: Fix bug where trailing tied operands were forgotten; the X86 assembler matcher is now free of implicit operands! - Still need to clean up the code now that we don't to worry about implicit operands, and to make it a hard error if an instruction fails to specify all of its operands for some reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95956 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc6dcfca28dededf4dacff3f810655dafe5f0fc1 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Feb 12 01:44:23 2010 +0000 Added coprocessor Instructions CDP, CDP2, MCR, MCR2, MRC, MRC2, MCRR, MCRR2, MRRC, MRRc2. For disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0267dc4352974ba2cc5d21eb434570c7e11b6cde Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Feb 12 01:30:21 2010 +0000 Add a new pass on machine instructions to optimize away PHI cycles that reduce down to a single value. InstCombine already does this transformation but DAG legalization may introduce new opportunities. This has turned out to be important for ARM where 64-bit values are split up during type legalization: InstCombine is not able to remove the PHI cycles on the 64-bit values but the separate 32-bit values can be optimized. I measured the compile time impact of this (running llc on 176.gcc) and it was not significant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95951 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd9673a09a416b6f443c8191f7e4aa5272ab36c3 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Feb 12 01:22:03 2010 +0000 X86: Fix definition for RCL/RCR.*m? operations -- they were getting represented with "tied memory operands", which is wrong. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95950 91177308-0d34-0410-b5e6-96231b3b80d8 commit c70ef3e2792a0a37e3517998f8aa6a7f3e9781df Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 01:15:16 2010 +0000 add another bit of space for new kinds of instruction prefixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95949 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3629bdb8b22324c2bfe33c036fa8cab10511548d Author: Nate Begeman <natebegeman@mac.com> Date: Fri Feb 12 01:10:45 2010 +0000 Add a missing pattern for movhps so that we get: movq (%ecx,%edx,2), %xmm2 movhps (%ecx,%eax,2), %xmm2 rather than: movq (%eax, %edx, 2), %xmm2 movq (%eax, %ebx, 2), %xmm3 movlhps %xmm3, %xmm2 Testcase forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95948 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76b82cb12274539b254a04a0423006b1a8584844 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 01:06:22 2010 +0000 fix the encodings of monitor and mwait, which were completely busted in both encoders. I'm not bothering to fix it in the old one at this point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30d51dce30851e64cdeb1e6136d6f6d5d879a4db Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 12 00:37:46 2010 +0000 improve support for minix, PR6280, patch by Kees van Reeuwijk! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e5dc6e9bdeefbc238c336bfba82bc403b8b69ac Author: Charles Davis <cdavis@mines.edu> Date: Fri Feb 12 00:31:15 2010 +0000 Add a new function attribute, 'alignstack'. It will indicate (when the backends implement support for it) that the stack should be forcibly realigned in the prologue (and the process reversed in the epilogue). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95945 91177308-0d34-0410-b5e6-96231b3b80d8 commit c33bef344039f91e8bdc63766252b3c480b6a67a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 11 23:55:29 2010 +0000 Reapply coalescer fix for better cross-class coalescing. This time with fixed test cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95938 91177308-0d34-0410-b5e6-96231b3b80d8 commit af2b332ed86806c193669dcac77961b2d945b9a3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 22:57:32 2010 +0000 enhance llvm-mc -show-inst to print the enum of an instruction, like so: testb %al, %al ## <MCInst #2412 TEST8rr ## <MCOperand Reg:2> ## <MCOperand Reg:2>> jne LBB1_7 ## <MCInst #938 JNE_1 ## <MCOperand Expr:(LBB1_7)>> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95935 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68316b7ed1283ed43ef1814d51a3666ae9c30ced Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 22:39:10 2010 +0000 add a new MCInstPrinter::getOpcodeName interface, when it is implemented, llvm-mc --show-inst now uses it to print the instruction opcode as well as the number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95929 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13f9209eeea6b78a89e14da0a400c7281984cc1a Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Feb 11 21:51:51 2010 +0000 Document binutils requirements for coff targets (cygwin / mingw32). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95928 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef7bd26055041eee137b3b732377e8ec7843b8c8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 21:45:31 2010 +0000 improve encoding information for branches. We now know they have 8 or 32-bit immediates, which allows the new encoder to handle them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95927 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d0ac4072239b9aea6e993b67470d675c94b497f Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Feb 11 21:29:46 2010 +0000 MC: Move assembler-backend's fixup list into the fragment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95926 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94ad6823bc3bb8e2ce5d285bb8258c6129df8e0c Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Feb 11 21:29:29 2010 +0000 MC: Move MCSectionData::Fixup out to MCAsmFixup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95925 91177308-0d34-0410-b5e6-96231b3b80d8 commit 252990b75fb84cd3b8005a8cd2abcdd1e3a7ebcb Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 21:27:18 2010 +0000 make getFixupKindInfo return a const reference, allowing the tables to be const. Teach MCCodeEmitter to handle the target-indep kinds so that we don't crash on them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95924 91177308-0d34-0410-b5e6-96231b3b80d8 commit e84ffbd5af615af4b4326b4a5937d8e7725fa875 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 11 21:19:44 2010 +0000 Revert functional change. This broke a bunch of tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95921 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf922f08f3f3dba6d8f6204270cc9d4df30c3dc3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 21:17:54 2010 +0000 switch to target-indep fixups for 1/2/4/8 byte data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95920 91177308-0d34-0410-b5e6-96231b3b80d8 commit a62b13e4334c3dd03f90db7e9212c5629455cc4a Author: Devang Patel <dpatel@apple.com> Date: Thu Feb 11 20:58:56 2010 +0000 revert 95903. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95918 91177308-0d34-0410-b5e6-96231b3b80d8 commit bde99e7657bb11b7edf9fcf35467c9497abfd6f8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 11 20:58:45 2010 +0000 It is always good to do a cross-class join when the large register has a tiny interval. Also avoid division by zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 892cf047c170383369f88f936e03607b87f2e4c3 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 11 20:31:08 2010 +0000 Added LDRT/LDRBT/STRT/STRBT for disassembly only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95916 91177308-0d34-0410-b5e6-96231b3b80d8 commit 021109ade238fd0e25cf8c69f7c367a461ea03ae Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 19:52:11 2010 +0000 unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95915 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34b92a3f30c7e01062f7d7eee5db972a1b1208c8 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 11 19:35:26 2010 +0000 llvm-db was removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95904 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee2e10cf787b7c935085d156343ee9b48033bc86 Author: Devang Patel <dpatel@apple.com> Date: Thu Feb 11 19:35:10 2010 +0000 Destroy MDNodes while destructing llvm context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95903 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9f95edce8035bbea61d68c4fd373e46ae2cd493 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 19:31:22 2010 +0000 refactor x86 conditional branches to use a multipattern that generates the 1-byte and 4-byte immediate versions from one definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95902 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c9872327581faf7d85aad5e570973c6f359d77c Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 19:25:55 2010 +0000 refactor the conditional jump instructions in the .td file to use a multipattern that generates both the 1-byte and 4-byte versions from the same defm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95901 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1ef56bd34602273702b98cbb28c6a3c589ca70b Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Feb 11 19:15:20 2010 +0000 Make Kaleidoscope not link against the interpreter, since that didn't work anyway (Interpreter::getPointerToFunction doesn't return a callable pointer), and improve the error message when an ExecutionEngine can't be created. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95896 91177308-0d34-0410-b5e6-96231b3b80d8 commit df0649adf48fa3343dc1ec95975259777b87b45f Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 11 19:07:04 2010 +0000 Add an svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95895 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98c5eed093b2f21580925541ff971003be227939 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 11 18:47:03 2010 +0000 Forgot to also check in this file for vcvt (floating-point <-> fixed-point, VFP). Sorry! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95892 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75f18b48f297a4f31af3d70dcacb6601558d174e Author: Dale Johannesen <dalej@apple.com> Date: Thu Feb 11 18:23:23 2010 +0000 Allow for more than one DBG_VALUE targeting the same dead instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95890 91177308-0d34-0410-b5e6-96231b3b80d8 commit 177849e66e24ccca09fbbd282eaa4f5ed0904de7 Author: Dale Johannesen <dalej@apple.com> Date: Thu Feb 11 18:22:31 2010 +0000 Don't allow DBG_VALUE to affect codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95889 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56c787f5c53084f7283a8fe47711db65d167c9a5 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 11 18:17:16 2010 +0000 Added VCVT (between floating-point and fixed-point, VFP) for disassembly. A8.6.297 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95885 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31a24b15aa460aa543772be3b415f06432630506 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 11 18:12:29 2010 +0000 Added BKPT/tBKPT (breakpoint) to the instruction table for disassembly purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95884 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7cf68f307458f6cc214734685f361f530893b4a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 11 18:06:56 2010 +0000 Use array_pod_sort instead of std::sort for improved code size. Use SmallVector instead of std::vector for better speed when indirectbr has few successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95879 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a058c4604c121efbe8d8783c17d1b20605dc938 Author: Eric Christopher <echristo@apple.com> Date: Thu Feb 11 17:44:04 2010 +0000 Make sure that ConstantExpr offsets also aren't off of extern symbols. Thanks to Duncan Sands for the testcase! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95877 91177308-0d34-0410-b5e6-96231b3b80d8 commit 310f24fcfcf54e6cf1e6ca350b7b431b1c474c51 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Feb 11 17:14:31 2010 +0000 Add pseudo instruction TRAP for disassembly, which is encoded according to A5-21 as the "Permanently UNDEFINED" instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95873 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62b33dc015061dc780d345bf5c2e47c3b3c27051 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Feb 11 10:37:57 2010 +0000 Use .empty() instead of .size(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95871 91177308-0d34-0410-b5e6-96231b3b80d8 commit d38bd5ececc6c84836b8ee52d809e2d6e450152a Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 08:45:56 2010 +0000 dont' call getX86RegNum on X86::RIP, it doesn't like that. This fixes the remaining x86-64 jit failures afaik. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95867 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46a26bbf505cc07b5e51d2d7aab9827181cbf9d3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 08:41:21 2010 +0000 fix a really nasty bug I introduced in r95693: r12 (and r12d, r12b, etc) also encodes to a R/M value of 4, which is just as illegal as ESP/RSP for the non-sib version an address. This fixes x86-64 jit miscompilations of a bunch of programs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95866 91177308-0d34-0410-b5e6-96231b3b80d8 commit 321617629bf8b7cec0b12c591acff40ccc278784 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Feb 11 07:16:13 2010 +0000 Fix (harmless) memory leak found by memcheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95862 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebce12bbcf2508514afc2fa55c7580d46e7e3afe Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 07:06:31 2010 +0000 Add and commonize encoder support for all immediates. Stub out some dummy fixups to make things work. We can now emit fixups like this: subl $20, %esp ## encoding: [0x83,0xec,A] ## fixup A - offset: 2, value: 20, kind: fixup_1byte_imm Emitting $20 as a single-byte fixup to be later resolved by the assembler is ridiculous of course (vs just emitting the byte) but this is a failure of the matcher, which should be producing an imm of 20, not an MCExpr of 20. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95860 91177308-0d34-0410-b5e6-96231b3b80d8 commit f80c505d83787296cffb3e7495d3b8b7dfc35794 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 06:54:23 2010 +0000 generalize EmitDisplacementField to work with any size and rename it to EmitImmediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97374c6e6a29b7dff39632a1b8dc96ee86e44c1a Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 06:51:36 2010 +0000 eliminate the dead IsPCRel argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e07afd152a07b1c6c1d144646f4869e9533dc33 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 06:49:52 2010 +0000 eliminate the dead "PCAdj" logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77c7077e8f39f2efa8a74091743af08db20833f4 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Feb 11 06:41:30 2010 +0000 Fix some of the memcheck errors found in the JIT unittests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95856 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f3e09483b108ba4fa6ee06a1ca9540267d7d21b Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 06:26:33 2010 +0000 Rename ValueRequiresCast to ShouldOptimizeCast, to better reflect what it does. Enhance it to return false to optimizing vector sign extensions from vector comparisions, which is the idiom used to get a splatted vector for a vector comparison. Doing this breaks vector-casts.ll, add some compensating transformations to handle the important case they cover without depending on this canonicalization. This fixes rdar://7434900 a serious pessimization of vector compares. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95855 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48df834a4a87a035ff4311057ad8fd2250415249 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 06:24:37 2010 +0000 convert to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95854 91177308-0d34-0410-b5e6-96231b3b80d8 commit f05a4a82b719a1bd583cdd7739079504d9963422 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 05:11:54 2010 +0000 Make DSE only scan blocks that are reachable from the entry block. Other blocks may have pointer cycles that will crash basicaa and other alias analyses. In any case, there is no point wasting cycles optimizing dead blocks. This fixes rdar://7635088 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9211ea57815c52083d4bd54c2f40fe1cbee1744f Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 05:08:05 2010 +0000 a testcase that doesn't crash GVN but could someday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 089ed82c48bd69fe4a98ab3ef8e37ae26eabd9a1 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 11 04:40:44 2010 +0000 Make jump threading honor x|undef -> true and x&undef -> false, instead of considering x|undef -> x, which may not be true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 042109e6237b5fc008570e8adbb6ba445fb6120e Author: Eric Christopher <echristo@apple.com> Date: Thu Feb 11 01:48:54 2010 +0000 Add ConstantExpr handling to Intrinsic::objectsize lowering. Update testcase accordingly now that we can optimize another section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65944ae3e1b2fdd6b8966b5af084f9607b34999d Author: Devang Patel <dpatel@apple.com> Date: Thu Feb 11 01:31:01 2010 +0000 test case for r95842. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95844 91177308-0d34-0410-b5e6-96231b3b80d8 commit 459468d4434427a26cbc0fe5f79e4c31fbaf2795 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Feb 11 01:15:27 2010 +0000 Fix to get it to compile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95840 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4880f4c56524735b593e4a852b584e101c80a54 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Feb 11 01:13:02 2010 +0000 Don't print out a default newline when emitting the section offset. There are almost always comments afterwards that need printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95839 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3caf596efddb31aa4998bf8f9bbea09071198c2 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Feb 11 01:07:39 2010 +0000 Make it possible to create multiple JIT instances at the same time, by removing the global TheJIT and TheJITResolver variables. Lazy compilation is supported by a global map from a stub address to the JITResolver that knows how to compile it. Patch by Olivier Meurant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95837 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5d1bc4945f66b39363f5adb70d652280d71f796 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 11 00:34:33 2010 +0000 Reuse operand location when updating PHI instructions. Calling RemoveOperand is very expensive on huge PHI instructions. This makes early tail duplication run twice as fast on the Firefox JavaScript interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95832 91177308-0d34-0410-b5e6-96231b3b80d8 commit 983620a4957887088e3a54edf80d4a52789d7de3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 11 00:34:18 2010 +0000 Remove duplicate successors from indirectbr instructions before building the machine CFG. This makes early tail duplication run 60 times faster when compiling the Firefox JavaScript interpreter, see PR6186. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95831 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01dd2eed529c40aaee21eb3ce179e12cad1f36d9 Author: Devang Patel <dpatel@apple.com> Date: Thu Feb 11 00:20:49 2010 +0000 Ignore dbg info intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95828 91177308-0d34-0410-b5e6-96231b3b80d8 commit bddbb3549a3e706e1e48f4069b0820872b4bfe49 Author: Kevin Enderby <enderby@apple.com> Date: Thu Feb 11 00:18:12 2010 +0000 Remove the few # TAILCALL comments that snuck in. As they may fail on linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95827 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9d6893474485fb9d42fb67f566494bf8119184b Author: Kevin Enderby <enderby@apple.com> Date: Thu Feb 11 00:13:43 2010 +0000 Update the X86 assembler matcher test case now that a few more things match with some of the recent changes that have gone into llvm-mc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3125ea6e98852dab38710e6c9f4eb1fe31fec216 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 23:58:53 2010 +0000 Add support to llvm-extract for extracting multiple functions and/or multiple global variables at a time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95825 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c0275b0f91c1ea26942e6178dd62b0247b4252d Author: Mon P Wang <wangmp@apple.com> Date: Wed Feb 10 23:37:45 2010 +0000 The previous fix of widening divides that trap was too fragile as it depends on custom lowering and requires that certain types exist in ValueTypes.h. Modified widening to check if an op can trap and if so, the widening algorithm will apply only the op on the defined elements. It is safer to do this in widening because the optimizer can't guarantee removing unused ops in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95823 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4f4b1506d2a7bd676adcd886d98c12012bdd952 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 23:04:09 2010 +0000 Ignore debug info one more place during coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95819 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0df83f4b11cb2e8b6f793a1425b77f9b6cd5e19b Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 23:03:20 2010 +0000 Allow isDebug inquiry on any MO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ca197830a1a1906a5657c9e9c52977510106e39 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Feb 10 22:58:57 2010 +0000 Delete dead PHI machine instructions. These can be created due to type legalization even when the IR-level optimizer has removed dead phis, such as when the high half of an i64 value is unused on a 32-bit target. I had to adjust a few test cases that had dead phis. This is a partial fix for Radar 7627077. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95816 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b0ea846f73eb83706dd80d1fbde28fe3eeed217 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 21:47:48 2010 +0000 Skip debug info in a couple of places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95814 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3393b63d1a2483a7b7a2dd23e20cb16ea43c210 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Feb 10 21:41:57 2010 +0000 Use an index instead of pointers into the vector. If the vector resizes, then the pointer values could be invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95813 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dae4593c8310d09e587a928c15d3e7b32172037 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 21:41:41 2010 +0000 When I rewrote this loop per Chris' preference I changed its behavior. Oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95811 91177308-0d34-0410-b5e6-96231b3b80d8 commit e824fb17b264b0696b236304671ddb4ccb50c895 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 21:37:31 2010 +0000 add a virtual dtor to MCTargetExpr, hopefully silencing some warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b9161cf664d44a0c0789a2ea7e439b81f02d83f Author: Eli Friedman <eli.friedman@gmail.com> Date: Wed Feb 10 21:26:04 2010 +0000 A few missed optimizations; the last one could have a significant impact on code with lots of bitfields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95809 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1196f9ba64661542cc87fcd99b96655874c057d4 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 21:22:51 2010 +0000 work around a gcc bug with -Wuninitialized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95808 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4343998c96075c771bc1b8c486cd4d141f4ddf9f Author: Devang Patel <dpatel@apple.com> Date: Wed Feb 10 21:19:56 2010 +0000 Strip new llvm.dbg.value intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c7b65e886227bf3cbff010868d91c22daec111b Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 21:19:28 2010 +0000 MC/X86 AsmMatcher: Fix a use after free spotted by d0k, and de-XFAIL x86_32-encoding.s in on expectation of it passing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06e24dc5f9ea9603d282f77e327fff27748c8e95 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 21:01:04 2010 +0000 XFAIL this on linux until I figure out what is happening. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95804 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63bb9e8ff151f1d947682100594e794b646a6646 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 21:00:55 2010 +0000 lit: Ignore dot files when scanning for tests (e.g., editor temprary files, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95803 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20631dbca24c6895ac647923fa3742fe94e7b3a7 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 21:00:47 2010 +0000 MC/AsmMatcher: Tweak conversion function name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95802 91177308-0d34-0410-b5e6-96231b3b80d8 commit 013ca607f6404a26921689e0e2936f9eeff85891 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 20:42:57 2010 +0000 Minor whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95801 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3eeaacd71c0b4925eef44b315fa41d16588f2fad Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 20:42:37 2010 +0000 Use an AssemblyAnnotatorWriter to clean up IVUsers' debug output. The "uses=" comments are just clutter in this context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95799 91177308-0d34-0410-b5e6-96231b3b80d8 commit d73878ab5df6dcade0aab73f789b9173e0a21a3e Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 20:41:46 2010 +0000 Add a hook to AssemblyAnnotationWriter to allow custom info comments to be printed, in place of the familiar "uses=" comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50d20e115bc9907aa170fd14b720a17c002e3db6 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 20:23:33 2010 +0000 Use doxygen comment syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95797 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cb9e26a4f8e5f3037fe24dff0780cfb0c8acae0 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 20:04:19 2010 +0000 Fix several comments which had previously been "the the" where a different word was intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6cd9da8b837fbb130cfb68bdfaf307f069838a6a Author: Kevin Enderby <enderby@apple.com> Date: Wed Feb 10 19:13:56 2010 +0000 Replace this file containing 4 tests of x86 32-bit encodings with a file containing the subset of the full auto generated test case that currently encodes correctly. Again it is useful as we bring up the the new encoder to make sure currently working stuff stays working. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e91762c19cff323979775171efd78ce52cbd6f2 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Feb 10 18:02:25 2010 +0000 Added NOP, DBG, SVC to the instruction table for disassembly purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95784 91177308-0d34-0410-b5e6-96231b3b80d8 commit af23afb740065a6c0c12f1d2fbc88eb3f18036bd Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 16:03:48 2010 +0000 Fix "the the" and similar typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 349b2a1b5c6c41646b8f04bf96ed0383b5607602 Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 15:54:22 2010 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95780 91177308-0d34-0410-b5e6-96231b3b80d8 commit a960e5e14330ff0f2791bd69fb3576813a5cea7a Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Feb 10 13:34:02 2010 +0000 Silence GCC warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95779 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67f1b0e981f324a66a7e6713a20cd6758ce57633 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 08:15:48 2010 +0000 MC/AsmMatcher: Add support for creating tied operands when constructing MCInsts. - Pretty messy, but we need to rework how we handle tied operands in MCInst anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95774 91177308-0d34-0410-b5e6-96231b3b80d8 commit f35eb9fa274c8e1ca4cd0c349cfb780aefda3758 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 06:52:12 2010 +0000 emit some simple (and probably incorrect) fixups for symbolic displacement values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95773 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64f2e32ed184eb327d7dca782a2f34e0e4ed6e0f Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 06:41:02 2010 +0000 keep track of what the current byte being emitted is throughout the X86 encoder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52a804e27005885de0e26cc29ecdbfda4389bc17 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 06:30:00 2010 +0000 simplify displacement handling, emit displacements by-operand even for the immediate case. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95770 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb024ff9f39712daa425d097cd3d497e2973087f Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 06:13:07 2010 +0000 Canonicalize sizeof and alignof on pointer types to a canonical pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95769 91177308-0d34-0410-b5e6-96231b3b80d8 commit d637aba529b5cc6a8dedbddfc187b3cd6ef4ccde Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 10 05:54:04 2010 +0000 Implement operators |=, &=, and ^= for SmallBitVector, and remove the restriction in BitVector for |= and ^= that the operand must be the same length. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c7ab5dec64227e63d7417a99abe57324ae84436 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 04:47:08 2010 +0000 MC: Switch MCFixup to just hold an MCExpr pointer instead of index into the MCInst it came from. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95767 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5336c8961a2c3379da09d95ee4d7903fd04f7ad8 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 04:46:51 2010 +0000 Fix a signed comparison warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95766 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbeaaa6b9892186196acaa7576334eec63a738e5 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 04:10:10 2010 +0000 Remove stray DOS newline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 252efd4f274ba896f82b785774973941198a79c9 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 04:09:52 2010 +0000 Add a ReleaseNotes FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99fff3e301012321a0a0a7db660bfc6ca6852a38 Author: Garrison Venn <gvenn.cfe.dev@gmail.com> Date: Wed Feb 10 03:38:29 2010 +0000 Prevented build on WINDOWS using default make system. Stopped WINDOWS build at eh llvm/examples level using if check on LLVM_ON_UNIX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95763 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07663f302606e6b2112b4fde8db8c1c76bb97c11 Author: Sean Callanan <scallanan@apple.com> Date: Wed Feb 10 03:23:23 2010 +0000 Updated the enhanced disassembly library's TableGen backend to not use exceptions at all except in cases of actual error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95762 91177308-0d34-0410-b5e6-96231b3b80d8 commit f327869a5de5fb01a4c42cc789ab97663fc31762 Author: Garrison Venn <gvenn.cfe.dev@gmail.com> Date: Wed Feb 10 02:50:08 2010 +0000 Prevented ExceptionDemo example being built on WINDOWS via if( NOT WIN32 ) check in examples cmake list file. This has NOT been tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95761 91177308-0d34-0410-b5e6-96231b3b80d8 commit 096b097f4a245dd6e043ffbff4d574800f4768c4 Author: Sean Callanan <scallanan@apple.com> Date: Wed Feb 10 02:47:08 2010 +0000 Updated the TableGen emitter for the Enhanced Disassembler to take advantage of the refactored AsmWriterInst.h. Note removed parser code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95760 91177308-0d34-0410-b5e6-96231b3b80d8 commit 605a402cc2a7ef412ad4144a2de45d68f7b65dcb Author: Sean Callanan <scallanan@apple.com> Date: Wed Feb 10 02:27:43 2010 +0000 Changed AsmWriterOperand to also include the index of the operand into the CodeGenInstruction's list of operands, which is useful for EDEmitter. (Still working on PR6219) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95759 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8f028b8bce6e92e12809beac0e0379b601980a4 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Feb 10 02:17:34 2010 +0000 Now that ShrinkDemandedOps() is separated out from DAG combine. It sometimes leave some obvious nops which dag combine used to clean up afterwards e.g. (trunk (ext n)) -> n. Look for them and squash them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95757 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7a939aeea7bbbadddde5c0491621dbe1059c00d Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 01:46:47 2010 +0000 "fixup" a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95754 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33fe554b0bb1dd7fc2ee9c9e5d7afae9233d652c Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 01:45:28 2010 +0000 Introduce a new CodeGenInstruction::ConstraintInfo class for representing constraint info semantically instead of as a c expression that will be blatted out to the .inc file. Fix X86RecognizableInstr to use this instead of parsing C code :). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95753 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6129a289288b6bd0d237dece7ccc494a01bb59e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 10 01:41:14 2010 +0000 llvm-mc: Remove --show-fixups and always show as part of --show-encoding. Also, fix a silly memory leak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95752 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf8fe6a7fc7a6722143d6025007aaab01a3b1526 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 01:31:26 2010 +0000 Rewrite loop to suit Chris' preference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95749 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3f58b6ce58d2287a291f0c82993b461c0cc5bc6 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 01:23:18 2010 +0000 fix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95748 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8fc7b209da57482995dcb78a33449bcb3ceacbf Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Feb 10 01:22:57 2010 +0000 Remove duplicated #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93726d8a787a3b1e7d709ea6259eca7eb8bdd6c8 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Feb 10 01:21:02 2010 +0000 Emit an error for illegal inline asm constraint (which uses illegal type) rather than asserting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b2322be1ee42dbf4dd1df42e3cb097b231f7603 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 01:17:36 2010 +0000 fix missing #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95745 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28afd8223a04f38c87746e0fe8c7e1e251db0a97 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 01:05:28 2010 +0000 daniel *really* likes fixups! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95742 91177308-0d34-0410-b5e6-96231b3b80d8 commit e90535cbb30c071096987e9f5ae2114f3132ea96 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 01:04:16 2010 +0000 Stop MachineInstr.h from #including AsmPrinter.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95741 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce5a93e4cdc1ca70c5dc436453f227b3d0fcb715 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Feb 10 00:59:47 2010 +0000 Improve comments a even more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95740 91177308-0d34-0410-b5e6-96231b3b80d8 commit d832aa8fb8044b80a86273493c70770537bcce14 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 00:55:42 2010 +0000 Skip DBG_VALUE many places in live intervals and register coalescing. This fixes many crashes and places where debug info affects codegen (when dbg.value is lowered to machine instructions, which it isn't yet in TOT). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95739 91177308-0d34-0410-b5e6-96231b3b80d8 commit f87769d484291b79abcbce9c1d93e189a9429529 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 00:47:53 2010 +0000 Move verbose asm instruction comments to using MCStreamer. The major win of this is that the code is simpler and they print on the same line as the instruction again: movl %eax, 96(%esp) ## 4-byte Spill movl 96(%esp), %eax ## 4-byte Reload cmpl 92(%esp), %eax ## 4-byte Folded Reload jl LBB7_86 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95738 91177308-0d34-0410-b5e6-96231b3b80d8 commit db7b35ff8026dfdbc0d33da63a3a7c19b6e656ea Author: Bill Wendling <isanbard@gmail.com> Date: Wed Feb 10 00:45:28 2010 +0000 Improve comments a bit more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c711aa69b6220492b543f42e477dc1b92704450 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 00:44:23 2010 +0000 more comment updates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95736 91177308-0d34-0410-b5e6-96231b3b80d8 commit de4b068361b29005fab942ac14ac8f12be1b743e Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 00:41:49 2010 +0000 Add isDebug argument to ChangeToRegister; this prevents the field from being used uninitialized later in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95735 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8e397b58489fd96a45e69c7d7710eab6d5cab18 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 00:36:00 2010 +0000 print all the newlines at the end of instructions with OutStreamer.AddBlankLine instead of textually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95734 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf50ddc93cf854eb803d580e07b4b2276a4e6430 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Wed Feb 10 00:14:03 2010 +0000 IntegerValType holds a uint32_t, so its constructor should take a uint32_t. This allows it to be properly initialized with bit widths > 65535 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95731 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94f6097942b3dd9b13c2c71a74b7f7c034cc70e0 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 10 00:11:11 2010 +0000 Fix comments to reflect renaming elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d9d97cddb404caf738a7b494b931b17e8f585a8 Author: Kevin Enderby <enderby@apple.com> Date: Wed Feb 10 00:10:31 2010 +0000 Fix the encoding of the movntdqa X86 instruction. It was missing the 0x66 prefix which is part of the opcode encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95729 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59ee3d246bb7292180f55bdc97b9d0ace583f7db Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 10 00:10:18 2010 +0000 Add ability for MCInstPrinters to add comments for instructions. Enhance the x86 backend to show the hex values of immediates in comments when they are large. For example: movl $1072693248, 4(%esp) ## imm = 0x3FF00000 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95728 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0431e6c49421e302de8d311c1a5581549fc1f18 Author: David Greene <greened@obbligato.org> Date: Tue Feb 9 23:52:19 2010 +0000 TableGen fragment refactoring. Move some utility TableGen defs, classes, etc. into a common file so they may be used my multiple pattern files. We will use this for the AVX specification to help with the transition from the current SSE specification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a6844b9567642a99a459eee65f8bce25dbe7449 Author: Garrison Venn <gvenn.cfe.dev@gmail.com> Date: Tue Feb 9 23:22:43 2010 +0000 Adds a JIT based exception handling example to the examples directory. Both zero cost example domain specific, and C++ foreign exception handling are shown. The example's documentation fully explains how to run the example. Notes: 1) The code uses an extremely simple type info model. 2) Only a single landing pad is used per unwind edge (one call to llvm.eh.selector) 3) llvm.eh.selector support for filter arguments is not given. 4) llvm.eh.typeid.for is not used. 5) Forced unwind behavior is not supported. 6) Very little if any error handling is given. 7) __attribute__((__aligned__)) is used. 8) The code uses parts from the llvm compiler-rt project and the llvm Kaleidoscope example. 9) The code has not been ported or tested on WINDOWS. 10) The code was not tested with a cmake build. 11) The code was tested for a debug build on 32bit X86 CentOS LINUX, and both a debug and release build on OS X 10.6.2 (64bit). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 490852e92928683702e224b0a92a4d5a333c3bf7 Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 9 23:06:35 2010 +0000 Fixed some indentation in the AsmWriterInst implementation. Also changed the constructor so that it does not require a Record, making it usable by the EDEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95715 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23d193a06140d17e33ddb4428a71f67d8d3992a6 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 9 23:05:23 2010 +0000 Add VBIF/VBIT for disassembly only. A8.6.279 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95713 91177308-0d34-0410-b5e6-96231b3b80d8 commit c321472b1f49b10f261f74508c40cb5ce72431da Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Feb 9 23:03:44 2010 +0000 Make --disable-libffi work on systems with libffi installed. Also make no-ffi the default even on systems with libffi. This fixes http://llvm.org/PR5018. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95712 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1bdcf1fa7cdd98c7b4da719dd74ebfec1f4e027 Author: David Greene <greened@obbligato.org> Date: Tue Feb 9 23:03:05 2010 +0000 Only dump output in debug mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95711 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab57543e713bc754b2640e3747c2ff65457b63c2 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 9 23:00:14 2010 +0000 llvm-mc: Add --show-fixups option, for displaying the instruction fixup information in the asm comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95710 91177308-0d34-0410-b5e6-96231b3b80d8 commit e466b68c58bdc2ce05dbabdc02783c53b955500b Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 9 23:00:03 2010 +0000 MC/X86: Add a dummy implementation of MCFixup generation for hacky X86 MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95709 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5a052a84947f80567a72d99944f943b79d9f76b Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 9 22:59:55 2010 +0000 MC: First cut at MCFixup, for getting fixup/relocation information out of an MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95708 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8f02384dcbe2c57d4a0798687cdc06ebcdf0845 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Feb 9 22:49:16 2010 +0000 Improve comments in the LSDA somewhat. They can be improved much more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63ac41c0db09647d6469560b8803ee8d0a2d8903 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 9 22:35:38 2010 +0000 Added VMRS/VMSR for disassembly only. A8.6.335 & A8.6.336 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95703 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecadd7d8ef99681205ed4527530cda4773a5bbbb Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 9 22:29:16 2010 +0000 Added AsmWriterInst.cpp to the CMakeList so that it builds OK on Visual Studio. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95702 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78db1ba08fe914adb89e6c66e7065a7c0eb202ea Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 9 22:15:27 2010 +0000 Disable unittests/ADT/BitVectorTest on PPC Darwin. It fails with a release build only, for reasons as yet unknown. (If there's a better way to Xfail things here let me know, doesn't seem to be any prior art in unittests.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95700 91177308-0d34-0410-b5e6-96231b3b80d8 commit f373fc3257d5b0aa0fcfc59298f8033d2643078b Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 21:57:34 2010 +0000 port encoder enhancements over to the new encoder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95699 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3b3acf9317ca5fac7207f3493583422f7a9400f Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 9 21:50:41 2010 +0000 Per PR 6219, factored AsmWriterInst and AsmWriterOperand out of the AsmWriterEmitter. This patch does the physical code movement, but leaves the implementation unchanged. I'll make any changes necessary to generalize the code in a separate patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95697 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8b1aac62bd8a74b004e4abed07d2f693a4cd365 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 21:47:19 2010 +0000 fix X86 encoder to output [disp] only addresses with no SIB byte in X86-32 mode. This is still required in x86-64 mode to avoid forming [disp+rip] encoding. Rewrite the SIB byte decision logic to be actually understandable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d47ee14b397d7315c3fa1767cb01bd6823daa87 Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 9 21:24:27 2010 +0000 Move Intrinsic::objectsize lowering back to InstCombineCalls and enable constant 0 offset lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 616e35969b69d0fcb063634b465a41c1bf8a817a Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 21:21:26 2010 +0000 revert r95689: getX86RegNum(BaseReg) != N86::ESP is a confusing idiom to check for ESP or RSP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95690 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20f133563c8c6dd09f4c754e6236bc79801e0adf Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 21:00:12 2010 +0000 simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95689 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a50aac9641027f9608ce3ab34664266bab982e7 Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 9 19:54:29 2010 +0000 Re-disable for Darwin; I was mistaken to think this was fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95688 91177308-0d34-0410-b5e6-96231b3b80d8 commit 261a07e6802837ca121afbd35aa67d66b8cddf79 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 19:54:29 2010 +0000 move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10b4c2ecc28cb21e6038f53185a0409a12ba02fc Author: Jim Grosbach <grosbach@apple.com> Date: Tue Feb 9 19:51:37 2010 +0000 Radar 7417921 tMOVCCi pattern only valid for low registers, as the Thumb1 mov immediate to register instruction only works with low registers. Allowing high registers for the instruction resulted in the assembler choosing the wide (32-bit) encoding for the mov, but LLVM though the instruction was only 16 bits wide, so offset calculations for constant pools became incorrect, leading to out of range constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ab0b29165870293ea8a9c896fcda6bb15f685ab Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Feb 9 19:07:19 2010 +0000 Add support for TypeBuilder<const/volatile void*, false>. Thanks to Jochen Wilhelmy for the suggestion! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95677 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01f65f0fa690ad8c066d2b79b9c0ffe51f7e300a Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 9 17:29:18 2010 +0000 Pull these back out, they're a little too aggressive and time consuming for a simple optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95671 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dd1b1df4e46cfa0453b91c17d5d5513b0573262 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Feb 9 17:24:21 2010 +0000 Oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 887f91b80eeb4259ebcf31ed1404fdc7eaec8d4c Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 9 17:21:56 2010 +0000 Added vcvtb/vcvtt (between half-precision and single-precision, VFP). For disassembly only. A8.6.300 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95669 91177308-0d34-0410-b5e6-96231b3b80d8 commit 541e03a3b0eee5b3d76cc1ae3cd8544e40476e7e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Feb 9 17:20:11 2010 +0000 Remember to update live-in lists when coalescing physregs. Patch by M Wahab! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95668 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa2cc940fb5cc78df37805e32e5f2c1650107b3a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Feb 9 17:20:03 2010 +0000 clang test suite git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95667 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5839e96c8d3207d3640a2c2dc07a2ab5ce18630 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 9 17:00:40 2010 +0000 Mention IndVarSimplify in the comment by getSmallConstantTripCount, as is done for getTripCount. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95666 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6fc8fab2a22b9ef1bc4a9d9c5dd8077a87a6554 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 9 16:59:14 2010 +0000 Mention vAny and iPTRAny in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95665 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2609573cf0c9beb247b7f0e8c9d280bce8656ac Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 06:41:03 2010 +0000 move tests that depend on the x86 backend out of codegen/generic, and remove a few old and unreduced ones. Fixes PR5624. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50c7723419a8a2e74c9f511917e120a8a9f4f45f Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 06:36:30 2010 +0000 make target independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0392fa4a69ca47c515211ce34325408b3dedb97e Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 06:35:50 2010 +0000 merge a target-specific add test into x86 directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 636fef000f14238f8efdf5308e0630a849f35a7f Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 06:33:27 2010 +0000 merge another test in, drop the trivially constant folded cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95653 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3c0bc8b5d2cdd6217ee00202582d426996cd29e Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 06:24:00 2010 +0000 consolidate and filecheckize two tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95652 91177308-0d34-0410-b5e6-96231b3b80d8 commit db71d597a8f3632d5e8c7417fa5247dc589543cc Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 06:19:20 2010 +0000 merge two tests, make target independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95651 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46bf694a136bd056d2546abe8a1d6b74f0a56efa Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 05:55:14 2010 +0000 move PR3462 to here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95650 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3f972db36312b043592d64b359686f77a2d1e0c Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 05:45:29 2010 +0000 add a note from PR6194 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95649 91177308-0d34-0410-b5e6-96231b3b80d8 commit a70edceec20bee694492901eb019aa97b8f27e75 Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 9 02:01:46 2010 +0000 Skip DEBUG_VALUE in some places where it was affecting codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95647 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad7410a2b169cd871652cbeeda802c3955960e69 Author: Devang Patel <dpatel@apple.com> Date: Tue Feb 9 01:58:33 2010 +0000 Add declaration attribute to a variable DIE, if there is a separate DIE for the definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f916df02dd583e77cc2414ce0c5d6a26a42ecf6 Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 9 01:50:54 2010 +0000 Updated the enhanced disassembly library to produce whitespace tokens in the right places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95645 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8257d65e9602988beb2bc4f85a07ba4ef52722ed Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 01:39:46 2010 +0000 fix llvm_build_struct_gep for PR6167, patch by Peter Hawkins! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 420101c495eff5b9473802dcac80ab787ca2fc9a Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 01:14:06 2010 +0000 simplify this code, duh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95643 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23480f2817a488aad23eea3858b328fbccbc85b5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 01:12:41 2010 +0000 fix PR6193, only considering sign extensions *from i1* for this xform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f11751b8b463eed987b81ec2352fff4a2ba654e Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 9 01:11:03 2010 +0000 Add file in here too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51cc5e94852ad9d40e2715b6e22f285b68b6b339 Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 9 01:00:18 2010 +0000 Fixed a problem where the enhanced disassembly library was reporting inaccurate token IDs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95639 91177308-0d34-0410-b5e6-96231b3b80d8 commit c092b994e77608bec7eae1478d7f39d0479dc107 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 00:54:51 2010 +0000 make -show-inst be formatted a bit nicer. Before: movl $3735928559, a ## inst: <MCInst 1273 <MCOperand Reg:0> <MCOperand Imm:1> <MCOperand Reg:0> <MCOperand Expr:(a)> <MCOperand Reg:0> <MCOperand Expr:(3735928559)>> after: movl $3735928559, a ## <MCInst #1273 ## <MCOperand Reg:0> ## <MCOperand Imm:1> ## <MCOperand Reg:0> ## <MCOperand Expr:(a)> ## <MCOperand Reg:0> ## <MCOperand Expr:(3735928559)>> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73aae2a863dc7bdc27506b9d9f8c037cb35bc810 Author: Lang Hames <lhames@gmail.com> Date: Tue Feb 9 00:50:27 2010 +0000 Fixed a bug in the PBQP allocator's findCoalesces method. Previously spill registers, whose def indexes are not defined, would sometimes be improperly marked as coalescable with conflicting registers. The new findCoalesces routine conservatively assumes that any register with at least one undefined def is not coalescable with any register it interferes with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95636 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8fdb73df3da757998d2e067b1f62a2b4df1f53d Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 00:49:22 2010 +0000 Implement x86 asm parsing support for %st and %st(4) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b2795d4e1854a9d649280895bea2ead196e45c3 Author: Lang Hames <lhames@gmail.com> Date: Tue Feb 9 00:45:48 2010 +0000 Added copy sensible construction & assignment to PBQP graphs and fixed a memory access bug in the heuristic solver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95633 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4895f0c2e0218dfb21c8e52849e1191b8db23734 Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 9 00:42:08 2010 +0000 Debug operands should not be def or kill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95632 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a60d78777508f981da8ba050a16009751e6bcf0 Author: Lang Hames <lhames@gmail.com> Date: Tue Feb 9 00:41:23 2010 +0000 Changed the definition of an "invalid" slot to include the empty & tombstone values, but not zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95631 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4c9a75bd96cec540f28ec731274329dfcf2b2b7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 00:40:07 2010 +0000 stop using reserved identifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95630 91177308-0d34-0410-b5e6-96231b3b80d8 commit e45e9747b90f8717f22e1c433e5208ad7aee3750 Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 9 00:35:38 2010 +0000 Add a new pass to do llvm.objsize lowering using SCEV. Initial skeleton and SCEVUnknown lowering implemented, the rest should come relatively quickly. Move testcase to new directory. Move pass to right before SimplifyLibCalls - which is moved down a bit so we can take advantage of a few opts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95628 91177308-0d34-0410-b5e6-96231b3b80d8 commit d332011a64483f20d6095defb03d03ce0dbd32f1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 00:34:28 2010 +0000 pass stringref by value instead of by const& git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38600491dcf049ee6444b4c9b3a5e805b3ed89c9 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 9 00:29:29 2010 +0000 Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 945d6e6ef5500953740ddf25d349b7d8553b3539 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 00:11:10 2010 +0000 move PR6212 to this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95624 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60992d698f56b41c8052610257dd0a84900e8b96 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 9 00:05:45 2010 +0000 enhance bits_storage to work with enums by using a c-style cast instead of reinterpret_cast, fixing PR6243. Apparently reinterpret_cast and I aren't getting along today. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95622 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47a9f41cc78716c82d2bbe2ce4b0211d33a916cf Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 9 00:02:37 2010 +0000 Implement AsmPrinter support for several more operators which have direct MCExpr equivalents. Don't use MCExpr::Shr because it isn't consistent between targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2376dd8e47d549492464909444dff454c23a7b3d Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 8 23:58:47 2010 +0000 Document that MCExpr::Mod is actually remainder. Document that MCExpr::Div, Mod, and the comparison operators are all signed operators. Document that the comparison operators' results are target-dependent. Document that the behavior of shr is target-dependent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95619 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8479c1b655a03a1c166221803312525333cc2f46 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 23:56:03 2010 +0000 fix some problems handling large vectors reported in PR6230 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95616 91177308-0d34-0410-b5e6-96231b3b80d8 commit cba43384cca80445e3c3f75208aeba9cfc3c25e4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 23:48:10 2010 +0000 this is done, tested by CodeGen/ARM/iabs.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 015b886f496c17e3283b12ee9898e3795fe17964 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 23:47:34 2010 +0000 convert to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95608 91177308-0d34-0410-b5e6-96231b3b80d8 commit b31a0feb5bf1db49cb3a9be767650a7b6a4a5f74 Author: Sean Callanan <scallanan@apple.com> Date: Mon Feb 8 23:34:25 2010 +0000 Added header file declarations and .exports entries for the new APIs offered by the enhanced disassembler for inspecting operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95606 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4e2d98e4e90b4cd1042261bf561b83cd3971d5a Author: Devang Patel <dpatel@apple.com> Date: Mon Feb 8 23:27:46 2010 +0000 test case for r95604. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95605 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98b68dabfc5f27450a8827437dbc66ce9736f987 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Feb 8 23:22:00 2010 +0000 tighten up eh.setjmp sequence a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95603 91177308-0d34-0410-b5e6-96231b3b80d8 commit f444ae4711a92742b13d76d3174611058cfb2c40 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 23:10:08 2010 +0000 now that @GOTOFF is no longer represented as a suffix on a MCSymbol, we can remove the 'suffix' argument of GetBlockAddressSymbol. Do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95601 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7566f7ea341feb29e7d06d560ea0468f9da7e76 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 23:03:41 2010 +0000 unify the paths for external symbols and global variables: 2 files changed, 48 insertions(+), 83 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95599 91177308-0d34-0410-b5e6-96231b3b80d8 commit 878b5bee0314e26770cf4c4940c250c68707d1c5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 22:52:47 2010 +0000 switch the rest of the "@ concatentation" logic in the X86 backend to use X86MCTargetExpr, simplifying a bunch of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95595 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4b7310a90a8dc31334903ce141fb6728bef4a0d Author: Sean Callanan <scallanan@apple.com> Date: Mon Feb 8 22:50:23 2010 +0000 Fixed the AT&T AsmLexer to report the proper strings for register tokens. Before, if it encountered '%al,' it would report 'al,' as the token. Now it correctly reports '%al'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95594 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c9bf8bf6d2ac83f79f0e3d5f3f7de7ae1579ef9 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 22:33:55 2010 +0000 switch ELF @GOTOFF references to use X86MCTargetExpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95593 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36657aab3e97cf1ca68815bf7eba7b5b4e080b30 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 8 22:19:11 2010 +0000 ConstantFoldConstantExpression can theoretically return the original expression; don't go into an infinite loop if it does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fdcbcae5f72970bc4c9732ecd9c72d0e4bed5e1 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 22:09:08 2010 +0000 add an x86 implementation of MCTargetExpr for representing @GOT and friends. Use it for personality references as a first use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95588 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d2e850f5ff5a513c8ab0177b034361f2f489cba Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 22:07:36 2010 +0000 don't make hte dtor private or we can't construct the class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95587 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0273f0d4692800e282fa4a1babcf3511a22fe8a Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 22:05:38 2010 +0000 use a c-style cast instead of reinterpret-cast, as sometimes the cast needs to adjust for a vtable pointer when going from base to derived type (when the base doesn't have a vtable but the derived type does). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95585 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1240766902e48f93afc1b46520bc146007bdb9f Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Feb 8 22:02:41 2010 +0000 Add VCVTR (between floating-point and integer, VFP) for disassembly purpose. The 'R' suffix means the to-integer operations use the rounding mode specified by the FPSCR, encoded as Inst{7} = 0. A8.6.295 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95584 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea0b08efa466c274c270305165ea473406353d7a Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 8 22:02:38 2010 +0000 When CodeGen'ing unoptimized code, there may be unfolded constant expressions in global initializers. Instead of aborting, attempt to fold them on the spot. If folding succeeds, emit the folded expression instead. This fixes PR6255. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95583 91177308-0d34-0410-b5e6-96231b3b80d8 commit 642a130ec467059b96527271834db7ec40c5eb0c Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 8 22:00:06 2010 +0000 Add const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 739b7feb51bda6378f4a403e248cdb36ac4d28e0 Author: Dale Johannesen <dalej@apple.com> Date: Mon Feb 8 21:53:27 2010 +0000 Apply the 95471 fix to SelectionDAGBuilder as well; we can get in here if FastISel gives up in a block. (Actually the two copies of this need to be unified. Later.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95579 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95d7e60ad7d30e54f42e40ac6d6362e8ed079821 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 8 20:34:14 2010 +0000 In guaranteed tailcall mode, don't decline the tailcall optimization for blocks ending in "unreachable". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95565 91177308-0d34-0410-b5e6-96231b3b80d8 commit a64ddd5cca43fd3abfaa3191f01ff1ecc762ada4 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 8 20:27:50 2010 +0000 Rename the PerformTailCallOpt variable to GuaranteedTailCallOpt to reflect its current purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d81583775836536a9e7a7c2d0140ab236a67f98 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Feb 8 19:41:48 2010 +0000 Add VCMP (VFP floating-point compare without 'E' bit set) for disassembly purpose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95560 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1020ff0702994f0ae376d644967f824716e11182 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 8 19:41:07 2010 +0000 add scaffolding for target-specific MCExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95559 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f85fa82f062103cbbf764911e4c29720bbdee01 Author: Duncan Sands <baldrick@free.fr> Date: Mon Feb 8 19:36:51 2010 +0000 Flesh out the list of predicates, for those who like this style. I was looking for isPointer, and added the rest for uniformity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 683f4fdca2b99ea8313f4ec9e95d91f1ceadbe2b Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Feb 8 18:08:46 2010 +0000 ImmutableIntervalMap: Fix for unqualified lookup into dependent base class, done by clang's -fixit! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95551 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4bd310a7b73b1e80acb35c8c415db368ca854d0 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Feb 8 17:26:09 2010 +0000 Added VMOVRRS/VMOVSRR to ARMInstrVFP.td for disassembly purpose. A8.6.331 VMOV (between two ARM core registers and two single-precision registers) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11449e728495f679b4c6b67dc3d656cd04796f9a Author: Duncan Sands <baldrick@free.fr> Date: Mon Feb 8 11:03:31 2010 +0000 Fix some typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95542 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e8ce476cbf724f9490deefccf6a170b7a1330a7 Author: Edwin Török <edwintorok@gmail.com> Date: Mon Feb 8 08:37:27 2010 +0000 Fix x86 JIT stub on MSVC. Thanks to Kristaps Straupe for noticing the bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95537 91177308-0d34-0410-b5e6-96231b3b80d8 commit abd3dd6ba14de9b44290bb2b4861406fdc076fa0 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Mon Feb 8 06:08:32 2010 +0000 Fixed build error for redefinition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 022752dff182da48cd5f6db70a90a331d7aaaa46 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Mon Feb 8 05:56:37 2010 +0000 Add uppercase and lowercase part defines in driver. Use a temp dir with a unique name in the current dir itself. Use forward_value instead of unpack_values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 640885d04fc3bdd4d001fea92ef486a325fb0d72 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Feb 7 21:13:46 2010 +0000 Make the destructor for TypeMapBase protected. Spotted by Duncan Sands with cppcheck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95527 91177308-0d34-0410-b5e6-96231b3b80d8 commit b29f6887c9b9ca1815e71885a14de6f4119a61ee Author: Duncan Sands <baldrick@free.fr> Date: Sun Feb 7 21:09:22 2010 +0000 Give DwarfPrinter a protected (but not virtual) destructor. Cppcheck warns about this base class not having a virtual destructor, but since this class has no virtual methods and neither it or the types derived from it has a destructor, a protected trivial destructor will do (and shuts cppcheck up) the trick without the cost of introducing a vtable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95526 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78506244d7ca04009b74cba63a767bfff889362b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Feb 6 21:00:02 2010 +0000 Add suport for VASTART on Mips. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95506 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac629f51303d4578b4024ea9112bdea846b1fb6b Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Feb 6 19:20:49 2010 +0000 First step towards varargs support in Mips: - o32 cc must pass all arguments in A0...A3 and stack regardless if its type (but respect the alignment). - Store all variable arguments back to the caller stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4377cdcc95e445d0cd120d7911bf73603ca1e1c1 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Feb 6 09:07:11 2010 +0000 Run codegen dce pass for all targets at all optimization levels. Previously it's only run for x86 with fastisel. I've found it being very effective in eliminating some obvious dead code as result of formal parameter lowering especially when tail call optimization eliminated the need for some of the loads from fixed frame objects. It also shrinks a number of the tests. A couple of tests no longer make sense and are now eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95493 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63d86fe59317d155058309d486d9b12c9749af7e Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Feb 6 09:00:30 2010 +0000 Remove a large test case that (soon will) no longer make sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95492 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebcb016721cf15218e983e00896d7d0fd9c69aee Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Feb 6 05:55:20 2010 +0000 Fix an uninitialized value. Radar 7609421. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95488 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddc00c2e5437a927e17e5f9990e95c3adf202a01 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Feb 6 03:32:21 2010 +0000 Fix alignment on ppc linux. This fixes the build of crtend.o git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95477 91177308-0d34-0410-b5e6-96231b3b80d8 commit a338d790c56083d455bc753f473949f7c77ee3e9 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Feb 6 03:28:46 2010 +0000 Do not emit callseq instructions around sibcalls. This eliminated some unnecessary stack adjustments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95475 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fdd461c821799cfb547167b3f6dc339a0d4531c Author: Dale Johannesen <dalej@apple.com> Date: Sat Feb 6 02:28:32 2010 +0000 Add a Debug bit to MachineOperand, for uses that are from debug info. Add an iterator to MachineRegisterInfo to skip Debug operands when walking the use list. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95473 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ce1aefd18dd02f4a7a780423d83f0934f2ff883 Author: Dale Johannesen <dalej@apple.com> Date: Sat Feb 6 02:26:02 2010 +0000 After Victor's latest commits I am seeing null addresses in dbg.declare; ignore this for the moment to prevent things from breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95471 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d5b21baf41576fa4016a3c6d838c1b77d8f000b Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Feb 6 01:31:55 2010 +0000 Linker should not remap null operands of metadata git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95468 91177308-0d34-0410-b5e6-96231b3b80d8 commit a48cde4a81346c7b01a3359b48d0fdb1434b2ec2 Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Feb 6 01:21:09 2010 +0000 Function-local metadata whose operands had been optimized to no longer refer to function-local IR were not getting written by BitcodeWriter; solution is for these metadata to be enumerated just like global metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95467 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f30baafce7c09af90bb6e9e79c152f9eb4b7b0b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Feb 6 01:16:28 2010 +0000 Reintroduce the InlineHint function attribute. This time it's for real! I am going to hook this up in the frontends as well. The inliner has some experimental heuristics for dealing with the inline hint. When given a -respect-inlinehint option, functions marked with the inline keyword are given a threshold just above the default for -O3. We need some experiments to determine if that is the right thing to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95466 91177308-0d34-0410-b5e6-96231b3b80d8 commit 268778b077fe46127e6a00235ce728bf64858387 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Feb 6 01:16:25 2010 +0000 Add a test for my change to disable reassociation for i1 types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95465 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13ccbeb95d19fd81634289f1bb7ecdd1bebd056f Author: Devang Patel <dpatel@apple.com> Date: Sat Feb 6 01:02:37 2010 +0000 Set DW_AT_artificial only if argument is marked as artificial. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95461 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac664e555198be231007a735bd10b376fbf08c59 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Feb 6 00:24:38 2010 +0000 Handle AddrMode6 (for NEON load/stores) in Thumb2's rewriteT2FrameIndex. Radar 7614112. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f5a066d16bee2846ae86747422154fae74382ce Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Feb 5 23:21:31 2010 +0000 Don't unroll loops containing function calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95454 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed4441a21fde2e7c649dff89fbc78469111e2be9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Feb 5 23:21:18 2010 +0000 Update CodeMetrics to count 'big' function calls explicitly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95453 91177308-0d34-0410-b5e6-96231b3b80d8 commit a27bd000ed8d5a90462c151449de482167518d73 Author: Devang Patel <dpatel@apple.com> Date: Fri Feb 5 23:09:20 2010 +0000 Do not generate specification DIE for nested functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95452 91177308-0d34-0410-b5e6-96231b3b80d8 commit f77c07ec9ec5fce04c1c12449d86e8aa76d89958 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 22:56:11 2010 +0000 fix incorrect encoding of SBB8mi that Kevin noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95448 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb382fa1126c564624a73f3f3c342e7257c65965 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 22:49:06 2010 +0000 fix a case where we'd mis-encode fisttp because of an incorrect (and redundant with a correct one) pattern that was added for the disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95446 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58758822aa166beecd3633bb2dcc0d1cb40270f7 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 22:48:33 2010 +0000 add note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76c3b4645cfb88bed06ac303e3bd5eca7fbd76d3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 22:46:46 2010 +0000 remove fixme git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95444 91177308-0d34-0410-b5e6-96231b3b80d8 commit fede66007333c9d37b55becc6478c660ffbb2f97 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 22:20:08 2010 +0000 print encodings like this: pslld 69, %mm3 ## encoding: [0x0f,0xf2,0x1c,0x25,0x45,0x00,0x00,0x00] instead of like this: pslld 69, %mm3 ## encoding: [0x0f,0xf2,0x1c,0x25,0x45,0000,0000,0000] this only affects 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95441 91177308-0d34-0410-b5e6-96231b3b80d8 commit d29fd16ba6730e5d468b3c801036defc38d4fee8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 22:10:22 2010 +0000 port X86InstrInfo::determineREX over to the new encoder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95440 91177308-0d34-0410-b5e6-96231b3b80d8 commit e263df713726cad8194b57e152b239fefe116328 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Feb 5 22:03:18 2010 +0000 Teach SimplifyCFG about magic pointer constants. Weird code sometimes uses pointer constants other than null. This patch teaches SimplifyCFG to build switch instructions in those cases. Code like this: void f(const char *x) { if (!x) puts("null"); else if ((uintptr_t)x == 1) puts("one"); else if (x == (char*)2 || x == (char*)3) puts("two"); else if ((intptr_t)x == 4) puts("four"); else puts(x); } Now becomes a switch: define void @f(i8* %x) nounwind ssp { entry: %magicptr23 = ptrtoint i8* %x to i64 ; <i64> [#uses=1] switch i64 %magicptr23, label %if.else16 [ i64 0, label %if.then i64 1, label %if.then2 i64 2, label %if.then9 i64 3, label %if.then9 i64 4, label %if.then14 ] Note that LLVM's own DenseMap uses magic pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95439 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea6cb061194032ea1cc02f3a0fa464862414c8c7 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 21:51:35 2010 +0000 wire up 64-bit MCCodeEmitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95438 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca4ccadd5a260f18e4a0028eb8e98eb66aed0119 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 21:34:18 2010 +0000 really kill off the last MRMInitReg inst, remove logic from encoder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95437 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2187ef165bbd8862570d9a442efa069a2f21c32 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 21:30:49 2010 +0000 lower the last of the MRMInitReg instructions in MCInstLower. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d1881dc28eaf484040bae6693cd05a37268f3e6 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 21:21:06 2010 +0000 teach X86MCInstLower to lower the MOV32r0 and MOV8r0 pseudo instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95433 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a7f3c694c409396d5afc89a011156d4ba0cf540 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 21:15:57 2010 +0000 genericize helpers, use them for MOV16r0/MOV64r0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c9facc0f5829c9a757001a9be72fe525a7092c6 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 21:13:48 2010 +0000 factor code better in X86MCInstLower::Lower, teach it to lower the SETB* instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95431 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e91ee7ed44cec2961c224a7658517bfdb571339 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 19:53:02 2010 +0000 fix logical-select to invoke filecheck right, and fix hte instcombine xform it is checking to actually pass. There is no need to match m_SelectCst<0, -1> since instcombine canonicalizes that into not(sext). Add matches for sext(not(x)) in addition to not(sext(x)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95420 91177308-0d34-0410-b5e6-96231b3b80d8 commit bef7eae141f95e6f9bac2d89e32821aac60be254 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 19:37:31 2010 +0000 implement the rest of the encoding types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95414 91177308-0d34-0410-b5e6-96231b3b80d8 commit e49d7f0238b69efa30030feaa7c0902de2d34372 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 19:24:13 2010 +0000 move functions for decoding X86II values into the X86II namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95410 91177308-0d34-0410-b5e6-96231b3b80d8 commit e124253d75ebdf633ea46bfc88249f0d8816da80 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 5 19:24:11 2010 +0000 Implement releaseMemory in CodeGenPrepare and free the BackEdges container data. This prevents it from holding onto dangling pointers and potentially behaving unpredictably. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00da15e44575b6dd929c98ffcea255fd1e3c417f Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 19:20:30 2010 +0000 constant propagate a method away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95408 91177308-0d34-0410-b5e6-96231b3b80d8 commit d288fa5c437772beb0e8fd80321f3d30483bec69 Author: Dan Gohman <gohman@apple.com> Date: Fri Feb 5 19:20:15 2010 +0000 Use a SmallSetVector instead of a SetVector; this code showed up as a malloc caller in a profile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95407 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cb61fd7b7f6ab2a46be75570f738b78d4759c7b Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 19:16:26 2010 +0000 change getSizeOfImm and getBaseOpcodeFor to just take TSFlags directly instead of a TargetInstrDesc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95405 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee40acfedd0178837836456fd0be4056a490c481 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 19:04:37 2010 +0000 add some more encodings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95403 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0444fea9072a78d761b68d00d7d65596a13a2439 Author: Eric Christopher <echristo@apple.com> Date: Fri Feb 5 19:04:06 2010 +0000 Remove this code for now. I have a better idea and will rewrite with that in mind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95402 91177308-0d34-0410-b5e6-96231b3b80d8 commit aed0106212e26a122c13834c5a99aebcd94e7caa Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Feb 5 18:09:19 2010 +0000 Make lit's gtest support honor config.environment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95398 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4af5e911cadff4f2f5a01d8bace2adc5cadbaeb Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Feb 5 18:04:58 2010 +0000 VMOVRRD and VMOVDRR both have Inst{7-6} = 0b00. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95397 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56fbc4ede9610b426e5dbf62a5f7362082c2ce2e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Feb 5 16:19:36 2010 +0000 Move --march, --mcpu, and --mattr from JIT/TargetSelect.cpp to lli.cpp. llc.cpp also defined these flags, meaning that when I linked all of LLVM's libraries into a single shared library, llc crashed on startup with duplicate flag definitions. This patch passes them through the EngineBuilder into JIT::selectTarget(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95390 91177308-0d34-0410-b5e6-96231b3b80d8 commit 739d920a390fa32de22d3559c7f330e664b8cbed Author: Bill Wendling <isanbard@gmail.com> Date: Fri Feb 5 11:21:05 2010 +0000 Make test more fucused eliminating extraneous bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95384 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e9ffb3d5bf4f0694d95396cf9be6236eb7b7705 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Feb 5 07:32:18 2010 +0000 MC: Change default comment column to 40 characters. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95378 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1253ac260d7878f554e92d5faca350e05e3da1c Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 5 06:37:00 2010 +0000 Fix test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95373 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0216b2e36ecb4f9495a76c6742b5130fc28f554 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 06:16:07 2010 +0000 implement the non-relocation forms of memory operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1af931d655ccd22047e6f10b4bc87275099048d3 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 5 02:21:12 2010 +0000 Handle tail call with byval arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f1617ad56becb49ba3acd0f0277a852e747c7d4 Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 02:18:40 2010 +0000 start adding MRMDestMem, which requires memory form mod/rm encoding to start limping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95350 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb61e493e8166c3c5fa2e9be00cf7c2258a0454c Author: Chris Lattner <sabre@nondot.org> Date: Fri Feb 5 01:53:19 2010 +0000 Add a few more encodings, we can now encode all of: pushl %ebp movl %esp, %ebp movl $42, %eax popl %ebp ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95344 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14eaa6d49a9c27f5ca3568336f423dbd3a9a362b Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Feb 5 01:27:11 2010 +0000 When the scheduler unfold a load folding instruction it move some of the predecessors to the unfolded load. It decides what gets moved to the load by checking whether the new load is using the predecessor as an operand. The check neglects the cases whether the predecessor is a flagged scheduling unit. rdar://7604000 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95339 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b8b3190e0b394f680aec4a3a2bbeb8d9683f8c6 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Feb 5 00:17:02 2010 +0000 An empty global constant (one of size 0) may have a section immediately following it. However, the EmitGlobalConstant method wasn't emitting a body for the constant. The assembler doesn't like that. Before, we were generating this: .zerofill __DATA, __common, __cmd, 1, 3 This fix puts us back to that semantic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4754ce2bbdbc22901c895e808f6d3b59fd0e6ca5 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Feb 4 23:32:37 2010 +0000 Do not reassociate expressions with i1 type. SimplifyCFG converts some short-circuited conditions to AND/OR expressions, and those expressions are often converted back to a short-circuited form in code gen. The original source order may have been optimized to take advantage of the expected values, and if we reassociate them, we change the order and subvert that optimization. Radar 7497329. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95333 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0ee4d055a7df10fd00e7e2c79f49150794dc84b Author: Evan Phoenix <evan@fallingsnow.net> Date: Thu Feb 4 19:56:59 2010 +0000 Disable external stubs for X86-32 and X86-64 Instruction selection for X86 now can choose an instruction sequence that will fit any address of any symbol, no matter the pointer width. X86-64 uses a mov+call-via-reg sequence for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d58f1c83e473d7ef4bbe5eca61b44caf2ee9217 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Feb 4 19:07:06 2010 +0000 Fix typo Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a89cf2a84a9742cb18541da4cf7c9256ae4f72c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 4 18:48:20 2010 +0000 Increase inliner thresholds by 25. This makes the inliner about as agressive as it was before my changes to the inliner cost calculations. These levels give the same performance and slightly smaller code than before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95320 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6858dd68e42d90b458b0b447612323bcaab6028c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Feb 4 18:46:28 2010 +0000 Fix small bug in handling instructions with more than one implicitly defined operand. ProcessImplicitDefs would only mark one operand per instruction with <undef>. This fixed PR6086. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95319 91177308-0d34-0410-b5e6-96231b3b80d8 commit 224fafa77876e93609df4cbd2f1fc8189353f520 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Feb 4 18:40:11 2010 +0000 Get the LLVMC tests working with clang++ by removing the problematic CXXFLAG in lit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95318 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08c61aa2f10ad1819dcb72b9cf97e63e9ae1aad0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Feb 4 11:57:54 2010 +0000 Apply property changes from PR6228. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 361dab7c6f2a1549ad87ace3fbfd8cb6845f7a4f Author: Edwin Török <edwintorok@gmail.com> Date: Thu Feb 4 09:31:35 2010 +0000 New flag for GenLibDeps, and llvm-config-perobjincl. This allows to show the explicit files that need to be built/linked to get an LLVM component. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5856a4fae7c87dc2938c1442f4ce73e9117ed52e Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 4 07:32:01 2010 +0000 move the PR6214 microoptzn to this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95299 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec8ea91a09cc6dfaadb5c1c867467f1e4185e236 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 4 07:11:08 2010 +0000 fix a broken archive that was breaking dejagnu only (not lit) after r95292 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b36ef7f8be0244c1f43d84eed43178991668089 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Feb 4 06:47:24 2010 +0000 Re-enable x86 tail call optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95295 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd2bd23ea5f37c9bf362137e0fcab6ce798b9d37 Author: Eric Christopher <echristo@apple.com> Date: Thu Feb 4 06:41:27 2010 +0000 Temporarily revert this since it appears to have caused a build failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95294 91177308-0d34-0410-b5e6-96231b3b80d8 commit c102e823b361cdf9c0f7e0d95b3668e13617d7da Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 4 06:34:01 2010 +0000 add support for the sparcv9-*-* target triple to turn on 64-bit sparc codegen. Patch by Nathan Keynes! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95293 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d60cc5451bbcc875d8d0d4c42a3dc970a7469e8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Feb 4 06:19:43 2010 +0000 From PR6228: "Attached patch removes the extra NUL bytes from the output and changes test/Archive/MacOSX.toc from a binary to a text file (removes svn:mime-type=application/octet-stream and adds svn:eol-style=native). I can't figure out how to get SVN to include the new contents of the file in the patch so I'm attaching it separately." Patch by James Abbatiello! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95292 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb6f779a5ff24d22b74bb396232ac84b9386d682 Author: Eric Christopher <echristo@apple.com> Date: Thu Feb 4 02:55:34 2010 +0000 Rework constant expr and array handling for objectsize instcombining. Fix bugs where we would compute out of bounds as in bounds, and where we couldn't know that the linker could override the size of an array. Add a few new testcases, change existing testcase to use a private global array instead of extern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95283 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa66ea30c2cf83a19157ec92b4e520f5cf4bd299 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Feb 4 02:45:02 2010 +0000 It's too risky to eliminate sext / zext of call results for tail call optimization even if the caller / callee attributes completely match. The callee may have been bitcast'ed (or otherwise lied about what it's doing). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95282 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9462c3a8c6cabfac5824aaf1274a210edaca3993 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 4 02:43:51 2010 +0000 Change the argument to getIntegerSCEV to be an int64_t, rather than int. This will make it more convenient for LSR, which does a lot of things with int64_t offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95281 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c9b1478e9781dfd689a7297d401f259f67c3d68 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Feb 4 02:40:39 2010 +0000 Indirect tail call has to go through a call preserved register since it's after callee register pops. X86 isel lowering is using EAX / R11 and it was somehow adding that to function live out. That prevented the real function return register from being added to the function live out list and bad things happen. This fixes 483.xalancbmk (with tail call opt). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95280 91177308-0d34-0410-b5e6-96231b3b80d8 commit d77df71803f0e9d49c876caa31f4ace2c4b4cd98 Author: Sean Callanan <scallanan@apple.com> Date: Thu Feb 4 01:43:08 2010 +0000 Filled in a few new APIs for the enhanced disassembly library that provide access to instruction information, and fixed ambiguous wording in the comments for the header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95274 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0926ed7137ab99acade66f1c9bf746d040a2db27 Author: Dan Gohman <gohman@apple.com> Date: Thu Feb 4 01:42:13 2010 +0000 Use a tab instead of space after .type, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95272 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40787dcb640de2fc69c0291e1a788c46d0ed3d78 Author: Dale Johannesen <dalej@apple.com> Date: Thu Feb 4 01:33:43 2010 +0000 Rewrite FP constant handling in DEBUG_VALUE yet again, so it more or less handles long double. Restore \n removed in latest MC frenzy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5aa5f8dbf6127b2c4afe4f1bb15396e82fdca049 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Feb 4 01:13:08 2010 +0000 Fix (and test) function-local metadata that occurs before the instruction that it refers to; fix is to not enumerate operands of function-local metadata until after all instructions have been enumerated git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fefacb214916e74d81d132fcb76a089e020499c Author: Eric Christopher <echristo@apple.com> Date: Wed Feb 3 23:56:07 2010 +0000 If we're dealing with a zero-length array, don't lower to any particular size, we just don't know what the length is yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95266 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bce8ccee05dd5340560bc330068e5d6e3602f99 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 3 22:33:17 2010 +0000 This test passes now on ppc darwin; if it doesn't pass on some other ppc say something on the list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95265 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07c1cb52549b6c95ce42c23893bff6764b6e7042 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 3 22:29:02 2010 +0000 This test passes now on ppc darwin, so reenable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95264 91177308-0d34-0410-b5e6-96231b3b80d8 commit c09099dadac902f3e672e26c0831d6b2151d779f Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 3 22:24:49 2010 +0000 Debugging is now reenabled on PPC darwin, so reenable these tests (they pass). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95263 91177308-0d34-0410-b5e6-96231b3b80d8 commit 777872cc6a319b8695bd62962aaeb9ebbf3d969e Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 21:57:59 2010 +0000 enhance new encoder to support prefixes + RawFrm instructions with no operands. It can now handle define void @test2() nounwind { ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95261 91177308-0d34-0410-b5e6-96231b3b80d8 commit 364fb537e4e3f3c4bb46d15a086b682a36bb3065 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 21:43:43 2010 +0000 set up some infrastructure, some minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95260 91177308-0d34-0410-b5e6-96231b3b80d8 commit a825a3149e613e5e42730fa790f9e39e5a9f635c Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Feb 3 21:40:40 2010 +0000 Speculatively disable x86 automatic tail call optimization while we track down a self-hosting issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95259 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41aed3c15b65cdec29da235390b3e3cd7b11ad7a Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Feb 3 21:39:04 2010 +0000 Make test less fragile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95258 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd2d81f36803ff0e9f0efdaea13b0276b49d7843 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 21:24:49 2010 +0000 stub out a new X86 encoder, which can be tried with -enable-new-x86-encoder until its stable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bb768cf0398615a2a6cbc4e98af77eefe960764 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 21:14:33 2010 +0000 rename createX86MCCodeEmitter to more accurately reflect what it creates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95254 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae5bc0f4122457a67bbfcfddd89b063803e34e3d Author: Kevin Enderby <enderby@apple.com> Date: Wed Feb 3 21:04:42 2010 +0000 Added support for X86 instruction prefixes so llvm-mc can assemble them. The Lock prefix, Repeat string operation prefixes and the Segment override prefixes. Also added versions of the move string and store string instructions without the repeat prefixes to X86InstrInfo.td. And finally marked the rep versions of move/store string records in X86InstrInfo.td as isCodeGenOnly = 1 so tblgen is happy building the disassembler files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2831d5d4aff7323c6526bfa99857dac2bf94295e Author: Devang Patel <dpatel@apple.com> Date: Wed Feb 3 20:08:48 2010 +0000 Emit appropriate expression to find virtual base offset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95242 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51ea0cc2933924feb130d52d071e5bdee8ed694b Author: Devang Patel <dpatel@apple.com> Date: Wed Feb 3 19:57:19 2010 +0000 Provide interface to identifiy artificial methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95240 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1af53a796f93066a34cdf4cf7b9371aa173c1c3 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Feb 3 19:18:04 2010 +0000 r94686 changed all ModuleProvider parameters to Modules, which made the 1-argument ExecutionEngine::create(Module*) ambiguous with the signature that used to be ExecutionEngine::create(ModuleProvider*, defaulted_params). Fixed by removing the 1-argument create(). Fixes PR6221. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95236 91177308-0d34-0410-b5e6-96231b3b80d8 commit 819e4ea9858786a3a202642b179f4dffc0cde9c2 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Feb 3 18:49:55 2010 +0000 Make docs less specific about their versions, at Chris's suggestion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2402ff84538dadd53e6f13f5ad9dd7c6bdfe0ef0 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 3 18:43:46 2010 +0000 Add llvm_supports_darwin_and_target to DejaGNU as well, I'd almost forgotten it ever existed. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38bec178a30bdb19ad3197fcc0abd6b61fe72ee1 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Feb 3 18:23:23 2010 +0000 Mention the version in the documentation index and link to the 2.6 docs, which is what most readers will actually be aiming for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0889414038faa0c5c8f1fd28db4391c7a1dfabad Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Feb 3 18:18:30 2010 +0000 llvm-mc: Add --show-inst option, for showing the MCInst inline with the assembly output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76fd987a802f86d0ca298812b63552a15b7f174d Author: Dan Gohman <gohman@apple.com> Date: Wed Feb 3 17:27:31 2010 +0000 Add "Author Date Id Revision" svn:keyword properties to these files, as is done with the other html files in doc, to hopefully keep strings like "Last modified" current. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66b7149074808f51fd6365b509028ff862a05108 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Feb 3 17:23:56 2010 +0000 Adjust the heuristics used to decide when SROA is likely to be profitable. The SRThreshold value makes perfect sense for checking if an entire aggregate should be promoted to a scalar integer, but it is not so good for splitting an aggregate into its separate elements. A struct may contain a large embedded array along with some scalar fields that would benefit from being split apart by SROA. Even if the total aggregate size is large, it may still be good to perform SROA. Thus, the most important piece of this patch is simply moving the aggregate size comparison vs. SRThreshold so that it guards only the aggregate promotion. We have also been checking the number of elements to decide if an aggregate should be split up. The limit of "SRThreshold/4" seemed rather arbitrary, and I don't think it's very useful to derive this limit from SRThreshold anyway. I've collected some data showing that the current default limit of 32 (since SRThreshold defaults to 128) is a reasonable cutoff for struct types. One thing suggested by the data is that distinguishing between structs and arrays might be useful. There are (obviously) a lot more large arrays than large structs (as measured by the number of elements and not the total size -- a large array inside a struct still counts as a single element given the way we do SROA right now). Out of 8377 arrays where we successfully performed SROA while compiling a large set of benchmarks, only 16 of them had more than 8 elements. And, for those 16 arrays, it's not at all clear that SROA was actually beneficial. So, to offset the compile time cost of investigating more large structs for SROA, the patch lowers the limit on array elements to 8. This fixes Apple Radar 7563690. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95224 91177308-0d34-0410-b5e6-96231b3b80d8 commit b692ce605e860ee4d6928eab7586d3cfc2302407 Author: Garrison Venn <gvenn.cfe.dev@gmail.com> Date: Wed Feb 3 12:00:02 2010 +0000 Repository access test commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95221 91177308-0d34-0410-b5e6-96231b3b80d8 commit b49b883b85ef0c4d56c3343a46bcbea6e4d09a3e Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Wed Feb 3 09:05:21 2010 +0000 Remove redundant declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95213 91177308-0d34-0410-b5e6-96231b3b80d8 commit b68773962f3210db4e2a3837197737c8eaa6e0ad Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Wed Feb 3 09:04:11 2010 +0000 Add constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f506f73258301e6cfb4128a3cce5bf93380460a Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 06:42:38 2010 +0000 reapply r95206, this time actually delete the code I'm replacing in the third stub case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95209 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd96d73fe03dff21c9fe0bf9787fc34e37411e34 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 06:41:18 2010 +0000 revert r95206, it is apparently causing bootstrap failure on i386-darwin9 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a1f1f72708b2ff83d4f5ea1df34e652a73e1ba0 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 06:28:13 2010 +0000 print instruction encodings with the existing comment facilities, so that llvm-mc -show-encoding prints like this: hlt ## encoding: [0xf4] instead of like this: hlt # encoding: [0xf4] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95207 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8efb41ad3922cdd022a2eedc8bb5ee098e68b91 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 06:21:16 2010 +0000 make the x86 backend emit darwin stubs through mcstreamer instead of textually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95206 91177308-0d34-0410-b5e6-96231b3b80d8 commit e550c4e717d5135efe0df7e679ec1e83b7ecc0f9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 06:18:30 2010 +0000 make MachineModuleInfoMachO hold non-const MCSymbol*'s instead of const ones. non-const ones aren't very useful, because you can't even, say, emit them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95205 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73cdb9fff3e6e69e6429be28339d10ae0ba78d1a Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 05:55:08 2010 +0000 change addPassesToEmitFile to return true on failure instead of its input, add -filetype=null for performance testing and remove -filetype=dynlib, which isn't planned to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95202 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73b9dcac300a4b4f5814fd628a774ecd2693b639 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Feb 3 03:55:59 2010 +0000 Revert 94937 and move the noreturn check to codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95198 91177308-0d34-0410-b5e6-96231b3b80d8 commit acfc18fbad20b8f2e402408648537a463f3cbb57 Author: Sean Callanan <scallanan@apple.com> Date: Wed Feb 3 03:46:41 2010 +0000 Fixed the disassembler so it accepts multiple instructions on a single line. Also made it a bit more forgiving when it reports errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7550a4139b55d976e60bf2025e41e9a76d9bc6df Author: John McCall <rjmccall@apple.com> Date: Wed Feb 3 03:42:44 2010 +0000 Make APInt::countLeadingZerosSlowCase() treat the contents of padding bits as undefined. Fixes an assertion in APFloat::toString noticed by Dale. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c2d02dcf909a29ad5776b8e320a3e896ec81d91 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Feb 3 03:28:02 2010 +0000 Allow all types of callee's to be tail called. But avoid automatic tailcall if the callee is a result of bitcast to avoid losing necessary zext / sext etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7aec47e78037512575e13a5b31b059bb2ea02cf6 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Feb 3 02:11:49 2010 +0000 Reconfigure with autoconf-2.60, and fix autoconf.ac to work with that version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95191 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5da1e50388dd0ba4a949dd5c559ffb6c9433abc1 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 01:49:49 2010 +0000 don't emit \n's at the start of X86AsmPrinter::runOnMachineFunction, .o files don't like that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95187 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25137eb1159bc82bdf8a9b6c56a3bc1d05febd8a Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 01:46:05 2010 +0000 privatize a bunch of methods and move \n printing into them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95186 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed2c379e4c3bf39afbdfe08b573f965a62063b45 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 01:41:03 2010 +0000 rename printMachineInstruction -> EmitInstruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ee7ca20cd5c9b157c4a1ab9825d6c2f0ba99e96 Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 3 01:40:33 2010 +0000 Reapply 95050 with a tweak to check the register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95183 91177308-0d34-0410-b5e6-96231b3b80d8 commit dab48b4dbe274d58ffe036848efe3f3de25596eb Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 01:16:28 2010 +0000 print instructions through the mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95181 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74887bc2f8910a00660b4dfe55cbd2a3f5639681 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 01:15:03 2010 +0000 emit instructions through the streamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5099786d0b6e63912227de6fe21f1921bb8ca311 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 01:13:25 2010 +0000 Finally eliminate printMCInst and send instructions through the streamer. Demo: $ cat t.ll define i32 @test() nounwind { ret i32 42 } $ llc t.ll -o - ... _test: movl $42, %eax ret $ llc t.ll -o t.o -filetype=obj $ otool -tv t.o t.o: (__TEXT,__text) section _test: 00000000 movl $0x0000002a,%eax 00000005 ret git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95179 91177308-0d34-0410-b5e6-96231b3b80d8 commit f49ae3f1c237f37309d8b8d3c096c902e64156a7 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 01:09:55 2010 +0000 rejigger the world so that EmitInstruction prints the \n at the end of the instruction instead of expecting the caller to do it. This currently causes the asm-verbose instruction comments to be on the next line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95178 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89ef2563079e2c3e90116949105928b57eca6c97 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 01:00:52 2010 +0000 sink handling of target-independent machine instrs (other than DEBUG_VALUE :( ) into the target indep AsmPrinter.cpp file. This allows elimination of the NO_ASM_WRITER_BOILERPLATE hack among other things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95177 91177308-0d34-0410-b5e6-96231b3b80d8 commit c38f1118b1fe7c43c8b4fe67dd920d50a574874e Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 00:48:53 2010 +0000 make these less sensitive to asm verbose changes by disabling it for them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95175 91177308-0d34-0410-b5e6-96231b3b80d8 commit a43ec0f4625cfbff87cf1cad3e233d564fb5b79f Author: Dale Johannesen <dalej@apple.com> Date: Wed Feb 3 00:36:40 2010 +0000 Print FPImm a less kludgy way; APFloat.toString seems to have some problems anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95171 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a7420b3f92907948e325b870253bb2215ee871b Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Feb 3 00:33:21 2010 +0000 Fix some comment typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07a7fb4dfc55877789e4ac89e8e15f7eb193a1c0 Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 00:29:55 2010 +0000 pass an instprinter into the AsmPrinter if it is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95168 91177308-0d34-0410-b5e6-96231b3b80d8 commit b881efd98a3db73235b51fef4a67c8a27ab6c86d Author: Chris Lattner <sabre@nondot.org> Date: Wed Feb 3 00:22:02 2010 +0000 make any use of the "O" stream in asmprinter print to stderr if in filetype=obj mode. This is a hack, and will live until dwarf emission and other random stuff that is not yet going through MCStreamer is upgraded. It only impacts filetype=obj mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95166 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23ce2ffb517fec9f017309966c12c1f79a92593e Author: Eric Christopher <echristo@apple.com> Date: Wed Feb 3 00:21:58 2010 +0000 Recommit this, looks like it wasn't the cause. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95165 91177308-0d34-0410-b5e6-96231b3b80d8 commit 455d28b90ab94ef472ed76178182626c18f36424 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Feb 2 23:58:13 2010 +0000 ByVal frame object size should be that of the byval argument, not the size of the type which is just a pointer. This is not known to break stuff but is wrong nevertheless. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95163 91177308-0d34-0410-b5e6-96231b3b80d8 commit 756d064ed2ce9da3f9ce4667a9bd3dd132312808 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 23:57:42 2010 +0000 Hook up -filetype=obj through the MachO streamer. Here's a demo: $ cat t.ll @g = global i32 42 $ llc t.ll -o t.o -filetype=obj $ nm t.o 00000000 D _g There is still a ton of work left. Instructions are not being encoded yet apparently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95162 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21e1c2718234fa1657c0aeeea86b5dece6ce1d74 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Feb 2 23:56:14 2010 +0000 As of r79039, we still try to eliminate the frame pointer on leaf functions, even when -disable-fp-elim is specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95161 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f7db78a1e125e52592115b0c97029143fae537a Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Feb 2 23:55:14 2010 +0000 Revert 95130. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95160 91177308-0d34-0410-b5e6-96231b3b80d8 commit dcbc37a6c5942a820f36cf6b66bdc041df414ce7 Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 2 23:54:23 2010 +0000 Accept floating point immediates in DEBUG_VALUE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95159 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc21f9123f818edf24d5b40c526dc02a6a2151a4 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 2 23:46:47 2010 +0000 AsmParser/X86: Add temporary hack to allow parsing "sal". Eventually we need some mechanism for specifying alternative syntaxes, but I'm not sure what form that should take yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95158 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f6ea763bf9b8e0dd4f2d3698a5e29e8d2a5017a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 2 23:46:36 2010 +0000 AsmMatcherEmitter: Use stable_sort when reordering instructions, so that order is still deterministic even amongst ambiguous instructions (eventually ambiguous match orders will be a hard error, but we aren't there yet). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95157 91177308-0d34-0410-b5e6-96231b3b80d8 commit 397cebe4eb9631eb73da640399ac802d76a412fb Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 23:45:17 2010 +0000 use OwningPtr and factor code better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95156 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc40c64e5548d1a6b93613dc50b487820d8e7d91 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 23:37:42 2010 +0000 refactor code so that LLVMTargetMachine creates the asmstreamer and mccontext instead of having AsmPrinter do it. This allows other types of MCStreamer's to be passed in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95155 91177308-0d34-0410-b5e6-96231b3b80d8 commit d334d70d6b78b9533b875b329aac174ffa922747 Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 2 23:01:31 2010 +0000 Hopefully temporarily revert this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95154 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5696b523dbc5c8586a5222d5519fe820ee9424b Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 22:58:13 2010 +0000 simplify getVerboseAsm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95153 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b284d094e3805cf4d3dca8fbb91acbad84cf546 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 22:54:51 2010 +0000 move handling of asm-verbose out of AsmPrinter.cpp into LLVMTargetMachine.cpp with the rest of the command line options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95152 91177308-0d34-0410-b5e6-96231b3b80d8 commit e80dc6079eaeaf314617975b9518414674af2cbd Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 22:37:42 2010 +0000 remove dead #include, stupid symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95150 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8982c7f29ed5ead56d2b93cfaa728a50a3ed12c Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 22:36:29 2010 +0000 remove the # TAILCALL markers, which was causing the to fail. It's unclear if the matcher is nondeterminstic of what here, but I'm getting matches without TAILCALL and some other hosts are getting matches with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95149 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8622da039332c3928eb306e8317c8cd1a18d4809 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 22:31:11 2010 +0000 Remove a bunch of stuff around the edges of the ELF writer. Now the only use of the ELF writer is the JIT, which won't be easy to fix in the short term. :( :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95148 91177308-0d34-0410-b5e6-96231b3b80d8 commit c66b12bfe23a9469cfe8316dd99204cc94b4b5cf Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 2 22:29:26 2010 +0000 Reformat my last patch slightly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 049f71265b0a9dc1bf938c87b9d3c3b076e47835 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 22:13:21 2010 +0000 tidy some targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95146 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3b4b0ba19b5001a565087800fd343cef5be9e39 Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 2 22:10:43 2010 +0000 Re-add strcmp and known size object size checking optimization. Passed bootstrap and nightly test run here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95145 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed3cf2287918962e1d0c7a4daf3817fef8700fb0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 22:03:00 2010 +0000 remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95144 91177308-0d34-0410-b5e6-96231b3b80d8 commit b84851fd840d1bc4d79d696b6e8679d3acbafcda Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 2 22:00:15 2010 +0000 MCAssembler/Darwin: Add a test (on Darwin) that we assemble a bunch of instructions exactly like 'as', and produce equivalent .o files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95143 91177308-0d34-0410-b5e6-96231b3b80d8 commit 062ed9b30fff92c004912477bb9255722f8835ed Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 21:55:58 2010 +0000 detemplatize the ppc code emitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95142 91177308-0d34-0410-b5e6-96231b3b80d8 commit 669180b467a7ec704fd95d8d26251fbaffe3e1fd Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 21:52:03 2010 +0000 remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 050e1f2800742f0fe7dbc4cf416a49bb1f6ac773 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 21:49:29 2010 +0000 add a definition for ID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95140 91177308-0d34-0410-b5e6-96231b3b80d8 commit d19fc96465d615f29b254a2a5bdb5a9a431b6dab Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 21:48:51 2010 +0000 detemplatize ARM code emitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95138 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85186c4e27f082dce8568ce347983481bce4607e Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 2 21:44:16 2010 +0000 MCAsmParser/X86: Represent absolute memory operands as CodeGen does, with scale == 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6776221b04b736cec359aace62501c512d2dc7a1 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 2 21:44:10 2010 +0000 MCCodeEmitter/X86: Handle tied registers better when converting MCInst -> MCMachineInstr. This also fixes handling of tied registers for MRMSrcMem instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95136 91177308-0d34-0410-b5e6-96231b3b80d8 commit df557c865aaa18a337964f7cccf7973b12d9735a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 2 21:44:01 2010 +0000 MC/Mach-O: Set SOME_INSTRUCTIONS bit for sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95135 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9365bf724b4308e2bac368a2f29a02fe949ff0f Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 21:38:59 2010 +0000 remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95134 91177308-0d34-0410-b5e6-96231b3b80d8 commit f393cd4958708c36c353f9179ee4f3324edc801c Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 21:35:47 2010 +0000 detemplatize alpha code emission, it is now JIT specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95133 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb4e4e82f29f101e47c0d3fc42be85a82e993cad Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 21:31:47 2010 +0000 eliminate all the dead addSimpleCodeEmitter implementations. eliminate random "code emitter" stuff in Alpha, except for the JIT path. Next up, remove the template cruft. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32abfae758e1d86d915f1f0e5aec20bea802d4fa Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Feb 2 21:29:10 2010 +0000 Pass callsite return type to TargetLowering::LowerCall and use that to check sibcall eligibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 818ad00b8aa8a10052e77c92c67f69f32b2356ba Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 2 21:11:22 2010 +0000 Make DenseSet's erase pass on the return value rather than swallowing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95127 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3adb09481fcde8dd865a5a2fcb8201e3dac7b97 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 2 21:10:27 2010 +0000 Fix function names in comments. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95126 91177308-0d34-0410-b5e6-96231b3b80d8 commit 138c76eb26da9c0d40033566d2a57f2d5510f1ba Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 21:06:45 2010 +0000 eliminate FileModel::Model, just use CodeGenFileType. The client of the code generator shouldn't care what object format a target uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95124 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71f26cdad52675b2b0ef19c349d0f59cd27323ed Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 20:57:28 2010 +0000 this apparently depends on the host somehow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95122 91177308-0d34-0410-b5e6-96231b3b80d8 commit f792e0305f7a44f12e12b65a89c101a43aeb687b Author: Bill Wendling <isanbard@gmail.com> Date: Tue Feb 2 20:56:02 2010 +0000 XFAIL for PPC Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 742d333e513f892dfe2e5d31d3e53008bf3176f7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 20:41:39 2010 +0000 disable this test for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95120 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfe96230d1779423b5f75664be0053fece155600 Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 2 20:20:30 2010 +0000 ...and fixed the Makefile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95119 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29afd237bdf1618d1f9e82919bb9346b8e8f3833 Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 2 20:11:23 2010 +0000 Renamed the ed directory to edis, as suggested yesterday. This eliminates possible confusion about what exactly in this directory; the name is still short, though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95118 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63cb9e7fa1ca3ddf761bf5d1ea3a35711ca16689 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 19:41:23 2010 +0000 remove the remnants of TargetMachOWriterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95114 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f6ee467bd3d1dd02b2dd8d95e90d1aad451fafb Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 19:38:14 2010 +0000 Add a new top-level MachO.h file for manifest constants, fixing a layering violation from MC -> Target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 982557e7ea0bb8dda5799323072c0e2ce7c5099d Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Feb 2 19:31:58 2010 +0000 Added t2BFI (Bitfield Insert) entry for disassembler, with blank pattern field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95112 91177308-0d34-0410-b5e6-96231b3b80d8 commit 368dfe8381c0b8bf62cd2f7c279af5917ceb24eb Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 19:23:55 2010 +0000 remove PPCMachOWriterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95111 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b860df49af8a5ce36983931fe3c3473e318d037 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 19:14:27 2010 +0000 eliminate all forms of addPassesToEmitMachineCode except the one used by the JIT. Remove all forms of addPassesToEmitFileFinish except the one used by the static code generator. Inline the remaining version of addPassesToEmitFileFinish into its only caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95109 91177308-0d34-0410-b5e6-96231b3b80d8 commit c74cb6dfb1a37f36bf306ce88282c8478c40f062 Author: Kevin Enderby <enderby@apple.com> Date: Tue Feb 2 19:05:57 2010 +0000 Added another version of the X86 assembler matcher test case. This test case is different subset of the full auto generated test case, and a larger subset that is in x86_32-bit.s (that set will encode correctly). These instructions can pass though llvm-mc as it were a logical cat(1) and then reassemble to the same instruction. It is useful as we bring up the parser and matcher so we don't break things that currently work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95107 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf50076b6922bd5761ce8f827c44fd5395329dc7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 19:03:39 2010 +0000 remove dead code, we're requesting TargetMachine::AssemblyFile here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95105 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8184d24c93887f1d3eb9cbda7d7e8fa19e8c6344 Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 2 18:52:56 2010 +0000 Test revert 95050; there's a good chance it's causing buildbot failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95103 91177308-0d34-0410-b5e6-96231b3b80d8 commit 545b1b1a9d368259e05f745840ebf091d0cad704 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 18:44:12 2010 +0000 Inline addAssemblyEmitter into its one real caller and delete the -print-emitted-asm option. The JIT shouldn't have to pull in the asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95100 91177308-0d34-0410-b5e6-96231b3b80d8 commit abebd2f6102df6dbf12b44e147132ca029a36018 Author: Duncan Sands <baldrick@free.fr> Date: Tue Feb 2 12:53:04 2010 +0000 Adding missing methods for creating Add, Mul, Neg and Sub with NUW. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95086 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8142256571dbba74bf0d1dc5dc3c696096dd185c Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Tue Feb 2 07:05:31 2010 +0000 Return value on every path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95075 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4c74a63f9c6569b68b0c4dd086f3fbf2c8c5add Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Tue Feb 2 06:33:32 2010 +0000 simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84aa735e88bb3f357f00f9a83f9e4d7bfb1440d2 Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Tue Feb 2 06:22:08 2010 +0000 More logic correction: RemoveOverlap should always create new tree. Add a parameter to record whether changes actually happened. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95073 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9eeca10a528f87882fcc1bdeeb267a008b97296c Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Tue Feb 2 05:23:23 2010 +0000 Add a lookup method to the IntervalMap. The difference from the original lookup is that if the lookup key is contained in the key, we return the data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95070 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32b86302fc0e3568bfdd453919443e7b3589d9d0 Author: Devang Patel <dpatel@apple.com> Date: Tue Feb 2 03:47:27 2010 +0000 Apparently gdb is not amused by empty lines in pubtypes section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95064 91177308-0d34-0410-b5e6-96231b3b80d8 commit b36a8b11f1b7e8b451c805c554b357f9924d98d2 Author: Devang Patel <dpatel@apple.com> Date: Tue Feb 2 03:37:03 2010 +0000 NULL terminate name in pubtypes sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95062 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44e7bce35179730d599b3ae35096df04b0e79553 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 02:43:51 2010 +0000 don't turn (A & (C0?-1:0)) | (B & ~(C0?-1:0)) -> C0 ? A : B for vectors. Codegen is generating awful code or segfaulting in various cases (e.g. PR6204). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06e4b56331b271118d56da0e64ea49ec9a3ecab2 Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Tue Feb 2 02:40:56 2010 +0000 Fix a bunch of errors in the old logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95056 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9ba1ba9fcd7fcb040dcb3d216183d07dce285d9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 02:26:54 2010 +0000 fix a crash in loop unswitch on a loop invariant vector condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95055 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a64e3edd146c918912c07ea7cf95f1e103dcc88 Author: Chris Lattner <sabre@nondot.org> Date: Tue Feb 2 02:23:37 2010 +0000 remove an unreduced testcase, rename another. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95054 91177308-0d34-0410-b5e6-96231b3b80d8 commit f03020966b3492b238fe1262c062e7a7d9fc58b4 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Feb 2 02:22:50 2010 +0000 Perform sibcall in some cases when arguments are passes memory. Look for cases where callee's arguments are already in the caller's own caller's stack and they line up perfectly. e.g. extern int foo(int a, int b, int c); int bar(int a, int b, int c) { return foo(a, b, c); } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95053 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8e0bbfc241381fdc3c8bdfa0c9e93b8b49d8f2e Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 2 02:18:20 2010 +0000 Removed an unnecessary class from the EDDisassembler implementation. Also made sure that the register maps were created during disassembler initialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95051 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0d238a0dbb716040b1058342db54fe4eb7e652e Author: Dale Johannesen <dalej@apple.com> Date: Tue Feb 2 02:08:02 2010 +0000 Make local RA smarter about reusing input register of a copy as output. Needed for (functional) correctness in inline asm, and should be generally beneficial. 7361612. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95050 91177308-0d34-0410-b5e6-96231b3b80d8 commit e078aea60472fd4dcb96170350fe942c01f830af Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Tue Feb 2 01:57:01 2010 +0000 11.8p1: A nested class is a member and as such has the same access rights as any other member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03cd7a89d7f9c3e7114d25a513da4f15ba4e2dbf Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 2 01:44:02 2010 +0000 LangRef.html says that inttoptr and ptrtoint always use zero-extension when the cast is extending. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95046 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94974afa225f916cc1fc5d9aa7aa6b373cb235d9 Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 2 01:41:39 2010 +0000 Factor out alignof expression folding into a separate function and generalize it to handle more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95045 91177308-0d34-0410-b5e6-96231b3b80d8 commit c45b3aa1897a99f74fbb73038c8fd2995eb250bc Author: Dan Gohman <gohman@apple.com> Date: Tue Feb 2 01:38:49 2010 +0000 Various code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95044 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6eb9d10f94d819a320f61f8c961643758515dd50 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Feb 2 01:12:20 2010 +0000 Update CMake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95041 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7e49f3f6b670e14a3ee8c4c6e5c72474e323d6a Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 2 00:51:45 2010 +0000 Don't need to check the last argument since it'll always be bool. We also don't use TargetData here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95040 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b60eab75e05595d7ec77de8b4f9bfaee8f3249d Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 2 00:13:06 2010 +0000 More indentation/tabification fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95036 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b27f221be15788393f00a22a602ebf169801bf1 Author: Eric Christopher <echristo@apple.com> Date: Tue Feb 2 00:06:55 2010 +0000 Untabify previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95035 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac567ab867a93e8ce46f5b56228314bedfcceba5 Author: Sean Callanan <scallanan@apple.com> Date: Tue Feb 2 00:04:46 2010 +0000 Changed to Chris Lattner's suggested approach, which merely stubs out the blocks-based disassembly functions if the library wasn't built with blocks, which allows a constant .exports file and also properly deals with situations in which the compiler used to build a client is different from the compiler used to build the library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61aac7ef2bc97f1c04f0d7e826df89ffe4bb2559 Author: Nate Begeman <natebegeman@mac.com> Date: Mon Feb 1 23:56:58 2010 +0000 Kill the Mach-O writer, and temporarily make filetype=obj an error. The MCStreamer based assemblers will take over for this functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95033 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3617f6aebcdb06b1465ba0165f9bc35d7207bbf7 Author: Sean Callanan <scallanan@apple.com> Date: Mon Feb 1 23:27:57 2010 +0000 Fix for builds with separate source and build directories (like, oh, say, any multistage build) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95028 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e99517c5996acc9ca1b774275515fea7fcf1525 Author: Eric Christopher <echristo@apple.com> Date: Mon Feb 1 23:25:03 2010 +0000 Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95027 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a5f31df635d0c8d65f19d0cc32f6c3476836cc5 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Feb 1 23:06:04 2010 +0000 MOVi16 should also be marked as a UnaryDP instruction, i.e., it doesn't have a Rn operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95025 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a9df81d4d00aea149cb8de9195b7322e3361200 Author: Sean Callanan <scallanan@apple.com> Date: Mon Feb 1 23:01:38 2010 +0000 Updated to use the proper .exports file for the target platform, depending on whether the target supports the blocks API or not git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95024 91177308-0d34-0410-b5e6-96231b3b80d8 commit d89e3fb6c3baedce21438f3cc3032aacb49a9088 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Feb 1 22:51:23 2010 +0000 Add "dump" method to IVUsersOneStride. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95022 91177308-0d34-0410-b5e6-96231b3b80d8 commit aaaed409c8cfd5e9dbaa694a30d2b0a7500c595c Author: Dale Johannesen <dalej@apple.com> Date: Mon Feb 1 22:46:05 2010 +0000 Testcase for 94996 (PR 6157) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17e9fca94d44eb1bec5b7a39be5f2e1e63655773 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Feb 1 22:40:09 2010 +0000 Fix PR6196. GV callee may not be a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95017 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba34ec2cabc28cde10a7ada59c5b52de0b4fe27c Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Feb 1 22:32:42 2010 +0000 Add test case for 95013. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50a68ccb7108932f75967a0036a15638cbec3cd1 Author: Mon P Wang <wangmp@apple.com> Date: Mon Feb 1 22:15:09 2010 +0000 Improve EXTRACT_VECTOR_ELT patch based on comments from Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95012 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61e230d031189201840a17be52d44fa73e66067e Author: Sean Callanan <scallanan@apple.com> Date: Mon Feb 1 21:57:50 2010 +0000 Rollback on including blocks functionality in .exports because some platforms don't support blocks and then break because the symbols aren't present git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95011 91177308-0d34-0410-b5e6-96231b3b80d8 commit a493aa499b18bb534004ab850caba29042d44cd0 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Feb 1 21:17:14 2010 +0000 Add an option to GVN to remove all partially redundant loads. This is currently disabled by default. This divides the existing load PRE code into 2 phases: first it checks that it is safe to move the load to each of the predecessors where it is unavailable, and then if it is safe, the code is changed to move the load. Radar 7571861. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95007 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4350840a22dd22fcae29ed124309d46ca107a3e Author: Duncan Sands <baldrick@free.fr> Date: Mon Feb 1 20:57:35 2010 +0000 Do an early exit when the result is known cheaply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95002 91177308-0d34-0410-b5e6-96231b3b80d8 commit e985e1fe58b689501fcd07947a0b9e288c275951 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 1 20:48:08 2010 +0000 eliminate a bunch of pointless LLVMContext arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95001 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8abd8f0541a289c17536761bd5e236cf1fa280f8 Author: Duncan Sands <baldrick@free.fr> Date: Mon Feb 1 20:42:02 2010 +0000 Fix typo "of" -> "or" and change the way a line was formatted to fit into 80 columns to match my artistic preferences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f9385fc14a2cc39dc912c1f425a73f27d78f2a9 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 1 20:04:40 2010 +0000 fix PR6195, a bug constant folding scalar -> vector compares. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94997 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1c3887e98f2b62b9a25b308619217fe19c41459 Author: Dale Johannesen <dalej@apple.com> Date: Mon Feb 1 19:54:53 2010 +0000 fix PR 6157. Testcase pending. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94996 91177308-0d34-0410-b5e6-96231b3b80d8 commit 356faaae39ef1499382bf50573537fa2bc463237 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 1 19:54:45 2010 +0000 cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03ad0a8bb6f3be3a2185ee63b83cbae9bf18f2b2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 1 19:35:08 2010 +0000 fix PR6197 - infinite recursion in ipsccp due to block addresses evaluateICmpRelation wasn't handling blockaddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4762dd39a17dc7e9700bd0308ae4125be085a2c3 Author: Mon P Wang <wangmp@apple.com> Date: Mon Feb 1 19:03:18 2010 +0000 Fixed a couple of optimization with EXTRACT_VECTOR_ELT that assumes the result type is the same as the element type of the vector. EXTRACT_VECTOR_ELT can be used to extended the width of an integer type. This fixes a bug for Generic/vector-casts.ll on a ppc750. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32ec1a5d49759636247ef24827f42e9c66c026f3 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 1 19:00:32 2010 +0000 Update this test for a trivial register allocation difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94989 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45f1643e0c6fe92ec35ed81d12386372f14be6e3 Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 1 18:27:38 2010 +0000 Generalize target-independent folding rules for sizeof to handle more cases, and implement target-independent folding rules for alignof and offsetof. Also, reassociate reassociative operators when it leads to more folding. Generalize ScalarEvolution's isOffsetOf to recognize offsetof on arrays. Rename getAllocSizeExpr to getSizeOfExpr, and getFieldOffsetExpr to getOffsetOfExpr, for consistency with analagous ConstantExpr routines. Make the target-dependent folder promote GEP array indices to pointer-sized integers, to make implicit casting explicit and exposed to subsequent folding. And add a bunch of testcases for this new functionality, and a bunch of related existing functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94987 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2091359832897a7ba7769eeebf6e0ebc67c83867 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 1 18:11:34 2010 +0000 fix rdar://7590304, a miscompilation of objc apps on arm. The caller of objc message send was getting marked arm_apcscc, but the prototype isn't. This is fine at runtime because objcmsgsend is implemented in assembly. Only turn a mismatched caller and callee into 'unreachable' if the callee is a definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94986 91177308-0d34-0410-b5e6-96231b3b80d8 commit e82dad6d1c3606ee017379967e31c385b4eb5750 Author: Chris Lattner <sabre@nondot.org> Date: Mon Feb 1 18:04:58 2010 +0000 fix rdar://7590304, an infinite loop in instcombine. In the invoke case, instcombine can't zap the invoke for fear of changing the CFG. However, we have to do something to prevent the next iteration of instcombine from inserting another store -> undef before the invoke thereby getting into infinite iteration between dead store elim and store insertion. Just zap the callee to null, which will prevent the next iteration from doing anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14cf1435c8c2e5f774127a1234c7f76079435e26 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Feb 1 17:41:44 2010 +0000 Fix pr6198 by moving the isSized() check to an outer conditional. The testcase from pr6198 does not crash for me -- I don't know what's up with that -- so I'm not adding it to the tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94984 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48f174e79a252d99bdc8aee2c821f6871dbbe0bc Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 1 16:38:14 2010 +0000 Add a getNUWMul function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57c194af6e3725787f73ae1ffeb752906914ca5d Author: Dan Gohman <gohman@apple.com> Date: Mon Feb 1 16:37:38 2010 +0000 Add a generalized form of ConstantExpr::getOffsetOf which works for array types as well as struct types, and which accepts arbitrary Constant indicies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7269641c424bd8d0e0f6c22f6402521bd8dfad2a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Feb 1 12:16:39 2010 +0000 MulOp is actually a Mips specific node, so do the match using Opcode. This fixes PR6192 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b5cef72a83cda3fc651e07c92fab7e83153333c Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Mon Feb 1 10:43:31 2010 +0000 Add an immutable interval map, prepared to be used by flat memory model in the analyzer. WIP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94976 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c30767bed5a692acf43f4bb07f82e12e593a933 Author: Sean Callanan <scallanan@apple.com> Date: Mon Feb 1 09:02:24 2010 +0000 Whoops, left some debugging code in that broke a buildbot. Removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94975 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95ba688843344ba4f811127dd4f7904f3c6cbcb0 Author: Sean Callanan <scallanan@apple.com> Date: Mon Feb 1 08:49:35 2010 +0000 Added the enhanced disassembly library's implementation and fleshed out the .exports file. I still have to fix several details of operand parsing, but the basic functionality is there and usable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94974 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0790256d8b2b86223eae754e8659630ec606ac88 Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Mon Feb 1 07:32:52 2010 +0000 Simplify code. We can compare TNew with T in one batch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94973 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee5eee2923fa2b9b8c8b68559bce92b2838c74c1 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Feb 1 02:13:39 2010 +0000 Undo r94946 now all the tests are passing again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94970 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cd00632df8334a9fcbce4f01160030cdb6e7ba4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Feb 1 02:03:24 2010 +0000 Fix stack size bug while using o32 abi git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94969 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb62f2f3ab0bfdbf5598e586964736db2ad55da4 Author: Johnny Chen <johnny.chen@apple.com> Date: Sun Jan 31 11:22:28 2010 +0000 For MVNr and MVNs, we need to set Inst{25} = 0 so as not to confuse the decoder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4489953fa201178eac3af8e19f04f58bdb3e2b28 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Jan 31 07:28:44 2010 +0000 Change TAILJMP's to be varargs and transfer implicit uses over from TCRETURN's. Otherwise the missing uses can make post-regalloc scheduling do bad things. This fixes 403.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94950 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf3892e990dfce6790ff57e7dccc9e5fb829b258 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Jan 31 07:27:31 2010 +0000 Fix a missing check from my last commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94949 91177308-0d34-0410-b5e6-96231b3b80d8 commit a04696cdaaaebb88550de183439178e812c85e7f Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Jan 31 06:44:49 2010 +0000 Avoid recursive sibcall's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94946 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf83c91bbd530f19054c51da0758e41a189a0251 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sun Jan 31 04:55:32 2010 +0000 Remove a completed item, add a couple new ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94945 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8867dbd7ba85a07d11267561f58db7675c2af561 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sun Jan 31 04:40:45 2010 +0000 Remove test which is no longer relevant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94944 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5714a01e760ee1591da125c9fb4dfdd2df4a051d Author: Eli Friedman <eli.friedman@gmail.com> Date: Sun Jan 31 04:29:12 2010 +0000 Simplify/generalize the xor+add->sign-extend instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94943 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7fa5774587e56d1071348acdadd7569a4fa9092 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sun Jan 31 02:30:23 2010 +0000 Add a small transform: transform -(X<<Y) to (-X<<Y) when the shift has a single use and X is free to negate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94941 91177308-0d34-0410-b5e6-96231b3b80d8 commit c91dadab87396596808a85161727d7d966162c93 Author: Sean Callanan <scallanan@apple.com> Date: Sun Jan 31 02:28:18 2010 +0000 Moved InstallLexer() from the X86-specific AsmLexer to the TargetAsmLexer class so that clients can actually use the TargetAsmLexer they get from a Target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94940 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d40692b1b30ecd409a6bdc3d7bf4c433bf634ae Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Jan 31 00:59:31 2010 +0000 Do not mark no-return calls tail calls. It'll screw up special calls like longjmp and it doesn't make much sense for performance reason. If my logic is faulty, please let me know. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94937 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc3179860ceed01b85071c63c3686ad7dbbb3ec9 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jan 30 18:32:07 2010 +0000 Fix PR6144. Reload GP before the emission of CALLSEQ_END to guarantee the right reload order git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94915 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c4cf9d40bb5d64470e410317fbad462a318a0a0 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Sat Jan 30 18:29:19 2010 +0000 Fix mov.d out register by using the FFR register class directly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 592196d5d01f44ad2929c06e0d2cda9b57d09168 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Jan 30 14:08:12 2010 +0000 Fix a gross typo: ARMv6+ may or may not support unaligned memory operations. Even if they are suported by the core, they can be disabled (this is just a configuration bit inside some register). Allow unaligned memops on darwin and conservatively disallow them otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94889 91177308-0d34-0410-b5e6-96231b3b80d8 commit b79f9b62f198d1ae452da23bf7d5a9aea486c0c9 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jan 30 04:42:39 2010 +0000 Check alignment of loads when deciding whether it is safe to execute them unconditionally. Besides checking the offset, also check that the underlying object is aligned as much as the load itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94875 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0108c91d2ac699a4437e0ab1b1e1c5d15bc4f603 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jan 30 01:22:00 2010 +0000 Allow more tailcall optimization: calls with inputs that are all passed in registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94873 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbbdf911a8e061b5bb0da8236af38ff309c3fdd8 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jan 30 01:16:15 2010 +0000 Don't forget to transfer target flag when inserting a tailcall instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94872 91177308-0d34-0410-b5e6-96231b3b80d8 commit a24e103806f5cc8150d95a3d17c34f7b15a2ac54 Author: Devang Patel <dpatel@apple.com> Date: Sat Jan 30 01:08:30 2010 +0000 Emit declaration DIE for the class static variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94870 91177308-0d34-0410-b5e6-96231b3b80d8 commit 827c600e36786c4cb41fae2e9b41a829c1a52c75 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jan 30 01:02:48 2010 +0000 MC/X86 AsmParser: Handle absolute memory operands correctly. We were doing something totally broken and parsing them as immediates, but the .td file also had the wrong match class so things sortof worked. Except, that is, that we would parse movl $0, %eax as movl 0, %eax Feel free to guess how well that worked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23b9b1e20e2939687c01c26435ae27f9af28a201 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jan 30 01:02:37 2010 +0000 AsmMatcher: Create operand classes before use, apparently records aren't visited in the order they were declared. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94868 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b5007f7ee0140eebeb7a41adcc32fead57e4569 Author: Dale Johannesen <dalej@apple.com> Date: Sat Jan 30 00:57:47 2010 +0000 Fix a case where debug_value could affect codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94866 91177308-0d34-0410-b5e6-96231b3b80d8 commit da88458ae2e4520e5a57b8e4a1e478c25a2d231f Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jan 30 00:41:10 2010 +0000 Use more specific types to avoid casts. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94863 91177308-0d34-0410-b5e6-96231b3b80d8 commit df2bdbad3c28a03d5ac73599f1bf101fb2a3f71c Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jan 30 00:40:23 2010 +0000 Remove ARM-specific calling convention from this test. Target data is needed for this test, but otherwise, there's nothing ARM-specific about it and no need to specify the calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94862 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a758cd460d0f29f9a7dfe3a0c15492f40c7b86b Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jan 30 00:24:12 2010 +0000 X86.td: Refactor to bring operands that use print_pcrel_imm together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94861 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23f4491b48f762af658aa54cd0a1edaee9339ea9 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jan 30 00:24:06 2010 +0000 FileCheck: When looking for "possible matches", only compare against the prefix line. Turns out edit_distance can be slow if the string we are scanning for happens to be quite large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94860 91177308-0d34-0410-b5e6-96231b3b80d8 commit f70705634a6eb03429eddab5e4cb6e43dfaa3fde Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jan 30 00:24:00 2010 +0000 AsmMatcher/X86: Separate out sublass for memory operands that have no segment register, and use to cleanup a FIXME in X86AsmParser.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 943e7d9fa17371889cab42815cd698d942d81b73 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jan 29 23:54:14 2010 +0000 Keep iterating over all uses when meeting a phi node in AllUsesOfValueWillTrapIfNull(). This bug was exposed by my inliner cost changes in r94615, and caused failures of lencod on most architectures when building with LTO. This patch fixes lencod and 464.h264ref on x86-64 (and likely others). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b50cf92f36da35ca33074783b5ecc1a556657c0 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 29 23:32:40 2010 +0000 MC/X86: Add a nice X86 assembler matcher test case from Kevin Enderby. - This test case is auto generated, and has been verified to round-trip correctly through llvm-mc by checking the assembled .o file before and after piping through llvm-mc. It will be extended over time as the matcher grows support for more instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92411a8e37a8f1d29aec9d0531ff4ec2895f875f Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Jan 29 23:21:10 2010 +0000 Modified encoding bits specification for VFP instructions. In particular, the D bit (Inst{22}) and the M bit (Inst{5}) should be left unspecified. For binary format instructions, Inst{6} and Inst{4} need to specified for proper decodings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94855 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6069dd121294d238437705678bfef24e7cfd012 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 29 23:12:36 2010 +0000 Print a comment next to "materializable" global values, to distinguish them from values that are not actually defined in the module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94854 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7b6d2c6a6443d73a3f3f6d31faf4d57ec10655b Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 29 23:05:56 2010 +0000 PPC is not ready for sibcall optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94853 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9aa401e14dca8c65d2fb4c82c43b1d9cbe8f1fbd Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jan 29 22:39:21 2010 +0000 Preserve load alignment in instcombine transformations. I've been unable to create a testcase where this matters. The select+load transformation only occurs when isSafeToLoadUnconditionally is true, and in those situations, instcombine also changes the underlying objects to be aligned. This seems like a good idea regardless, and I've verified that it doesn't pessimize the subsequent realignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94850 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccfec8175249ecc3b926755db90e916cfd806583 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 29 21:57:46 2010 +0000 Minor code cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94848 91177308-0d34-0410-b5e6-96231b3b80d8 commit 833de98561fcf7f668d1a176eeee80f0c871b358 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 29 21:55:16 2010 +0000 Skip whitespace when looking for a potential intended match. Before: <stdin>:94:1: note: possible intended match here movsd 4096(%rsi), %xmm0 ^ After: <stdin>:94:2: note: possible intended match here movsd 4096(%rsi), %xmm0 ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94847 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7786f1bdb609cac7e31b20efbcd2050674f0eee6 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 29 21:53:18 2010 +0000 Fix the position of the caret in the FileCheck error message. Before: test/CodeGen/X86/lsr-reuse.ll:52:34: error: expected string not found in input ; CHECK: movsd -2048(%rsi), %xmm0 ^ After: test/CodeGen/X86/lsr-reuse.ll:52:10: error: expected string not found in input ; CHECK: movsd -2048(%rsi), %xmm0 ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e27257da571ae4897b9367dedb358da00d6c9b9 Author: Junjie Gu <jgu222@gmail.com> Date: Fri Jan 29 21:34:26 2010 +0000 Make sure the size is doubled (not 4x). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 385d68b0ed46d8896662325493a245d1ec8c0dce Author: Sean Callanan <scallanan@apple.com> Date: Fri Jan 29 21:21:44 2010 +0000 Removed symbols from .exports that are not yet in the library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94844 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08ad58149cf43b916c44c4710c7fa27154285cca Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 29 21:21:28 2010 +0000 Add assertion to humor the paranoid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94843 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb265567b7b4d8db906ca74b73235a4f5bdec1c6 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Jan 29 21:19:19 2010 +0000 We were not writing bitcode for function-local metadata whose operands have been erased (making it not have any more function-local operands) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94842 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0521734588adfaec93ccf7dffba127b014c3658 Author: Eric Christopher <echristo@apple.com> Date: Fri Jan 29 21:16:24 2010 +0000 Revert my last couple of patches. They appear to have broken bison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e0df3849e3ab8909485c1a17fa9c5cdea6269da Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Jan 29 21:11:04 2010 +0000 Rename two IRReader.h functions to indicate that they return a Module that loads its contents lazily from bitcode. I think these are the only remaining mis-named functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94840 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30f1709250c8f855ac512cac5f0d806097957d60 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jan 29 20:34:28 2010 +0000 Use uint64_t instead of unsigned for offsets and sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fea743797a4779b62b14d78a6537d59247e1e38 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 29 19:43:48 2010 +0000 Add svn:ignore properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94833 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5575c54de367c1991dde5e53127c3adf0fb75def Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jan 29 19:19:08 2010 +0000 Improve isSafeToLoadUnconditionally to recognize that GEPs with constant indices are safe if the result is known to be within the bounds of the underlying object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94829 91177308-0d34-0410-b5e6-96231b3b80d8 commit e472109fe15b02c2f6b264df4546367e9320f10f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Jan 29 19:10:38 2010 +0000 Belatedly document r85295 and r85330. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94825 91177308-0d34-0410-b5e6-96231b3b80d8 commit d839e1a9792eff26a79c8baef8e1b34ab61b24bb Author: Devang Patel <dpatel@apple.com> Date: Fri Jan 29 18:34:58 2010 +0000 Add size and location info in DW_TAG_class_type descriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1126e04037ca1207fa56151f6c9c06fda8cfe1cc Author: Devang Patel <dpatel@apple.com> Date: Fri Jan 29 18:30:57 2010 +0000 Before inserting llvm.dbg.declare intrinsic at the end of a basic block, check whether the basic block has a terminator or not. This API is used by clang and the test case is test/CodeGen/debug-info-crash.c in clang module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94820 91177308-0d34-0410-b5e6-96231b3b80d8 commit 289c0564c911670f5c4e1826420e3fd820f582c0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jan 29 15:19:06 2010 +0000 Fix MSVC build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94809 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b58d509ef83ef2d0c14f0d206fd39354a2ddc62 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jan 29 14:42:22 2010 +0000 Convert some users of ftostr to raw_ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94808 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b3c938a44e57ec75cbea9c4cf003a0016cfbd56 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jan 29 14:40:33 2010 +0000 Use llvm::format instead of ftostr (which just calls sprintf). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 273c038fca6dd89a242c42978f922d69770bd407 Author: Duncan Sands <baldrick@free.fr> Date: Fri Jan 29 09:45:26 2010 +0000 Change the SREM case to match the logic in the IR version ComputeMaskedBits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94805 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4aa47bd2b13b887593399ebb4a8c18555e08ca13 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 29 06:45:59 2010 +0000 Catch more trivial tail call opportunities: no inputs and output types match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94804 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1deef01c49f252e0a4145459ec10c535637130e Author: Duncan Sands <baldrick@free.fr> Date: Fri Jan 29 06:18:46 2010 +0000 Having RHSKnownZero and RHSKnownOne be alternative names for KnownZero and KnownOne (via APInt &RHSKnownZero = KnownZero, etc) seems dangerous and confusing to me: it is easy not to notice this, and then wonder why KnownZero/RHSKnownZero changed underneath you when you modified RHSKnownZero/KnownZero etc. So get rid of this. No intended functionality change (tested with "make check" + llvm-gcc bootstrap). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94802 91177308-0d34-0410-b5e6-96231b3b80d8 commit c852af1cafe657e4897e153d3a2bc10505b990ef Author: Duncan Sands <baldrick@free.fr> Date: Fri Jan 29 06:18:37 2010 +0000 It looks like the changes to the SRem logic of SimplifyDemandedUseBits (fix for PR6165) are needed here too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94801 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c57220a2ef346d8d4cbc40d5533d3c9f094424c Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 29 03:22:19 2010 +0000 FileCheck: Switch "possible match" calculation to use StringRef::edit_distance. - Thanks Doug, who is obviously less lazy than me! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8413ab7835e70bbd458a93be8239f1011e073031 Author: Eric Christopher <echristo@apple.com> Date: Fri Jan 29 01:37:11 2010 +0000 Make strcpy_chk lower to strcpy if we have a safe size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94783 91177308-0d34-0410-b5e6-96231b3b80d8 commit c94c6dfca03fbe5ba2173cd79fb4e7d902d7ba90 Author: Sean Callanan <scallanan@apple.com> Date: Fri Jan 29 01:34:29 2010 +0000 Quick fix to make the header file for the enhanced disassembly information have a better comment (and better guard macros). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 442bd4e292c9bbfe2f34b0fc53f9e34d7fde07be Author: Sean Callanan <scallanan@apple.com> Date: Fri Jan 29 01:30:01 2010 +0000 Added a bare-bones Makefile to build the enhanced disassembly library as a static and a shared library. Added dependencies so the target-specific enhanced disassembly info tables are built before the library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 133eb9c346127f28c89966a9671de0ca96f629fe Author: Ted Kremenek <kremenek@apple.com> Date: Fri Jan 29 01:10:55 2010 +0000 Recognize 'add_executable' when analyzing CMake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94777 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1aa2f8adbb477ffa51fb521676a2fd1293ba8143 Author: Ted Kremenek <kremenek@apple.com> Date: Fri Jan 29 01:10:25 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94776 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77fe12bf626a284d889283033322e1d1d3877454 Author: Eric Christopher <echristo@apple.com> Date: Fri Jan 29 01:09:57 2010 +0000 Add constant support to object size handling and remove default lowering. We'll either figure it out, or not and be lowered by SelectionDAGBuild. Add test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94775 91177308-0d34-0410-b5e6-96231b3b80d8 commit f495802f3e81462b29e23c5e83902d3dca5f0fea Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jan 29 00:52:43 2010 +0000 Generic reformatting and comment fixing. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93bff173ea147f2b516677828f1f79edb171c29e Author: Bill Wendling <isanbard@gmail.com> Date: Fri Jan 29 00:27:39 2010 +0000 Add newline to debugging output, and fix some grammar-os in comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 323f7068c889952ac6a2700ef08c1af6ba3f9bc3 Author: Sean Callanan <scallanan@apple.com> Date: Fri Jan 29 00:21:04 2010 +0000 Added a custom TableGen backend to support the enhanced disassembler, and the necessary makefile rules to build the table for X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48539b5d4d4e6e17cf58179b2d2d6fc6e1f7c1d9 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Jan 29 00:01:35 2010 +0000 mem2reg erases the dbg.declare intrinsics that it converts to dbg.val intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94763 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68d271623713a16ffe62a60edf32d7e3b6c2f275 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jan 28 21:51:40 2010 +0000 Assign the ordering of SDNodes in a much less intrusive fashion. After the "visit*" method is called, take the newly created nodes, walk them in a DFS fashion, and if they don't have an ordering set, then give it one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a12c56badd0733754baee7f7921b495509f9e53 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Jan 28 18:19:36 2010 +0000 Support some more options... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94752 91177308-0d34-0410-b5e6-96231b3b80d8 commit a64c74890ef37c607b3f1742abb5b1af65342afa Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 28 18:08:26 2010 +0000 Remove the folding rule getelementptr (i8* inttoptr (i64 1 to i8*), i32 -1) to inttoptr (i64 0 to i8*) from the VMCore constant folder. It didn't handle sign-extension properly in the case where the source integer is smaller than a pointer size. And, it relied on an assumption about sizeof(i8). The Analysis constant folder still folds these kinds of things; it has access to TargetData, so it can do them right. Add a testcase which tests that the VMCore constant folder doesn't miscompile this, and that the Analysis folder does fold it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94750 91177308-0d34-0410-b5e6-96231b3b80d8 commit 078a4063e384d3a21a14bc1af4c88aeacd4a1f72 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jan 28 18:04:38 2010 +0000 Replace strcpy with memcpy when we have the length around anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41d0a0c1b36033c45a5fa74ec353842b2244b22a Author: Duncan Sands <baldrick@free.fr> Date: Thu Jan 28 17:22:42 2010 +0000 Fix PR6165. The bug was that LHSKnownZero was being and'd with DemandedMask when it should have been and'd with LowBits. Fix that and while there beef up the logic in the case of a negative LHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94745 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe53061bea27c4b222c548cf2b0e4428134e8bf0 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Jan 28 06:42:08 2010 +0000 Add llvm::Program::ChangeStderrToBinary(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08b017ea9bd8cc8471b6dbd151402b73606f9057 Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 28 06:32:46 2010 +0000 Check Type::isSized before calling ScalarEvolution::getAllocSizeExpr, rather than after. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89c402f35edafd7c2178d4ee99644669abd476a8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 06:22:43 2010 +0000 convert the last 3 targets to use EmitFunctionBody() now that it has before/end body hooks. lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp | 49 ++----------- lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp | 87 ++++++------------------ lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp | 56 +++------------ test/CodeGen/XCore/ashr.ll | 2 4 files changed, 48 insertions(+), 146 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94741 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca73d86620334381948d7d3d713e1b31701dec86 Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 28 02:43:22 2010 +0000 Make getAlignOf return an i64, for consistency with getSizeOf and getOffsetOf, and remove the comment about assuming i8 is byte-aligned, which is no longer applicable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94738 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9ebe37839d32ce786dd7140bd559df444ac772d Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 28 02:15:55 2010 +0000 Remove SCEVAllocSizeExpr and SCEVFieldOffsetExpr, and in their place use plain SCEVUnknowns with ConstantExpr::getSizeOf and ConstantExpr::getOffsetOf constants. This eliminates a bunch of special-case code. Also add code for pattern-matching these expressions, for clients that want to recognize them. Move ScalarEvolution's logic for expanding array and vector sizeof expressions into an element count times the element size, to expose the multiplication to subsequent folding, into the regular constant folder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 117728fed8d10c94cf56f9cb5aa2d6e93f5143d1 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 01:58:58 2010 +0000 add target hooks for emitting random gunk before and after the function body. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94732 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e64765c09c0f900518c9db8d1d116a1a7180e9d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jan 28 01:57:22 2010 +0000 Fix a bug introduced by r94490 where it created a X86ISD::CMP whose output type is different from its inputs. This fixes PR6146. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94731 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdbb81d0628e15b5a7ea2ae1c466bb283ab740ef Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 01:54:33 2010 +0000 switch blackfin to the default runOnMachineFunction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94729 91177308-0d34-0410-b5e6-96231b3b80d8 commit b825faaddebc861ee06af5a50cef78e645275673 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 01:50:22 2010 +0000 eliminate a now-useless class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94728 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9df5d79183e13a0ce6915c184f47d7c01e72dc9 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 01:48:52 2010 +0000 Switch MSP430, SPU, Sparc, and SystemZ to use EmitFunctionBody(). Diffstat: 6 files changed, 30 insertions(+), 284 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94727 91177308-0d34-0410-b5e6-96231b3b80d8 commit f59d57d36935e921c12785690477d3bfdba9d69d Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jan 28 01:45:32 2010 +0000 Update of 94055 to track the IR level call site information via an intrinsic. This allows code gen and the exception table writer to cooperate to make sure landing pads are associated with the correct invoke locations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94726 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf7dadf717673b9d494f9930f6618236feb2ce7f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Jan 28 01:41:20 2010 +0000 Record the death of ModuleProvier and GhostLinkage in the release notes and give upgrade instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57d849fe78589bb84ec82db82cdbcb6dc88207b4 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 01:28:58 2010 +0000 Give AsmPrinter the most common expected implementation of runOnMachineFunction, and switch PPC to use EmitFunctionBody. The two ppc asmprinters now don't heave to define runOnMachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94722 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e47dee4ccf9640938dd81cb93a9fd1ab26f5874 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Jan 28 01:14:43 2010 +0000 Truncate the release notes so they're ready to accumulate notes for the 2.7 release. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94720 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb0602789a69e4764c70321424eb552a5d33d9cc Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 01:10:34 2010 +0000 switch ARM to EmitFunctionBody(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94719 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07a24263e9daeb0d702fb8890e17347733327732 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 01:06:32 2010 +0000 emit a 0 byte instead of a noop if a function is empty on darwin. "0" is nice and target independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94718 91177308-0d34-0410-b5e6-96231b3b80d8 commit bea3e68096198f2d2b453b7e2f94303f61f587b0 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 01:02:27 2010 +0000 Remove the argument from EmitJumpTableInfo, because it doesn't need it. Move the X86 implementation of function body emission up to AsmPrinter::EmitFunctionBody, which works by calling the virtual EmitInstruction method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94716 91177308-0d34-0410-b5e6-96231b3b80d8 commit 692276d99e08f224f58ed5207ce4e8310137f72e Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 00:19:24 2010 +0000 Drop the argument to AsmPrinter::EmitConstantPool and make it virtual. Overload it in the ARM backend to do nothing, since is does insane constant pool emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94708 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1b68d104bed6ca4fb4040a29b1cda52c2343e85 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 00:15:18 2010 +0000 don't emit constant pools twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94706 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3c5f49d35d0468f92e6c02242cf6ef9dccbdb84 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 28 00:05:10 2010 +0000 rename printVisibility to EmitVisibility and make it private, constify EmitLinkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94705 91177308-0d34-0410-b5e6-96231b3b80d8 commit e12efcf52becf0152d0f58877fb0b6207b81d6ef Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 23:58:11 2010 +0000 switch ARM to use EmitFunctionHeader. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94703 91177308-0d34-0410-b5e6-96231b3b80d8 commit df6c7e6ba3e6068ffd02540034da342e87a44e6d Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 23:37:36 2010 +0000 eliminate the ARMFunctionInfo::Align member, using MachineFunction::Alignment instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f0b5d27b3d7da40809549ea3163cad91b54ad34 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 23:35:43 2010 +0000 add a helper function for bumping up the alignment of a machine function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94700 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9ae1a57883cc746c8ed9eedef5e8b5bb33a5c30 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 23:26:37 2010 +0000 switch blackfin to use EmitFunctionHeader. BlackfinAsmPrinter.cpp is now less than 200 LOC! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94699 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d5f9ea90027b7f170feda84b1d475ba9b861a15 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 23:23:58 2010 +0000 switch mips to use the shared EmitFunctionHeader() function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94698 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9926d38af912f56ed3d6e24d76ed9f73a0887395 Author: Sean Callanan <scallanan@apple.com> Date: Wed Jan 27 23:20:51 2010 +0000 Changed constants to an enum so as not to pollute the global namespace needlessly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94697 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6060faac72ff45287e952a53f7a58a4ac36cf9d Author: Sean Callanan <scallanan@apple.com> Date: Wed Jan 27 23:03:46 2010 +0000 Added a header file defining the externally-visible C API for the LLVM disassemblers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94696 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfa3d94ab52cb5e551f740deaaaa1e5d2a7f8ad4 Author: Dale Johannesen <dalej@apple.com> Date: Wed Jan 27 22:12:36 2010 +0000 If the only use of something is a DEBUG_VALUE, don't let that stop it from being deleted, and change the DEBUG_VALUE value to undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02e6dd46f178a58440557dbfa41df4cc8ed88203 Author: Dale Johannesen <dalej@apple.com> Date: Wed Jan 27 22:11:16 2010 +0000 Treat MO_REG 0 location as undefined in DEBUG_VALUE, per document. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dbdbe8bee1358d3435be1898374c48263fb00e5 Author: Dan Gohman <gohman@apple.com> Date: Wed Jan 27 22:06:46 2010 +0000 Add an svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94692 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0c5a8634d4dade44fec9a1abc76b20c5f1a8fca Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 27 22:03:03 2010 +0000 Need to recurse for all operands of function-local metadata; and handle Instructions (which map to themselves) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 662a0c306457aed9147f582e64ed3642d4aa7a8b Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Jan 27 22:01:02 2010 +0000 Avoid creating redundant PHIs in SSAUpdater::GetValueInMiddleOfBlock. This was already being done in SSAUpdater::GetValueAtEndOfBlock so I've just changed SSAUpdater to check for existing PHIs in both places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94690 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbf472700fa3dbfb9568126b52d28ada35b13ece Author: Ted Kremenek <kremenek@apple.com> Date: Wed Jan 27 20:44:12 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 752ff1fb26fc819498de04d342d496f146100f2a Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Jan 27 20:34:15 2010 +0000 Kill ModuleProvider and ghost linkage by inverting the relationship between Modules and ModuleProviders. Because the "ModuleProvider" simply materializes GlobalValues now, and doesn't provide modules, it's renamed to "GVMaterializer". Code that used to need a ModuleProvider to materialize Functions can now materialize the Functions directly. Functions no longer use a magic linkage to record that they're materializable; they simply ask the GVMaterializer. Because the C ABI must never change, we can't remove LLVMModuleProviderRef or the functions that refer to it. Instead, because Module now exposes the same functionality ModuleProvider used to, we store a Module* in any LLVMModuleProviderRef and translate in the wrapper methods. The bindings to other languages still use the ModuleProvider concept. It would probably be worth some time to update them to follow the C++ more closely, but I don't intend to do it. Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 844446082c4a29f4c23e18ff5225890a3606a4c6 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jan 27 19:58:47 2010 +0000 Don't bother with sprintf, just pass the Twine through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94684 91177308-0d34-0410-b5e6-96231b3b80d8 commit d238cc10f8fe9b9e568c76ed3943a48a0b2985a0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jan 27 19:46:52 2010 +0000 Use the less expensive getName function instead of getNameStr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94683 91177308-0d34-0410-b5e6-96231b3b80d8 commit bed204de2b223a441b1c4582ff813e5b664052c6 Author: Chandler Carruth <chandlerc@gmail.com> Date: Wed Jan 27 10:36:15 2010 +0000 Quick fix to a test that is currently failing on every Linux build bot. No idea if this is the "correct" fix, but it seems a strict improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94675 91177308-0d34-0410-b5e6-96231b3b80d8 commit c93a316297a3545cbd6a8924a34e4370fe6d1905 Author: Chandler Carruth <chandlerc@gmail.com> Date: Wed Jan 27 10:27:10 2010 +0000 Silence GCC warnings with asserts turned off. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94673 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbbb0b1faaf20465d85b540684eb90a7fe1d0178 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Jan 27 10:13:28 2010 +0000 Make SMDiagnostic::Print a const method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94672 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b79bae89b28eb9a4ab4dc4ec6c62985e69a10d4 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Jan 27 10:13:11 2010 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94671 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47bc2f65663192c4d8ac781b685d94d7144f5cea Author: Duncan Sands <baldrick@free.fr> Date: Wed Jan 27 10:08:08 2010 +0000 Revert commit 94666 (ddunbar) [Suppress clang warning about unused arguments]. It causes g++ to complain: unrecognized option '-Qunused-arguments' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 118ed0eb33493ab604b6b24ad89e6348fd68195e Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 07:21:55 2010 +0000 add a new AsmPrinter::EmitFunctionEntryLabel virtual function, which allows targets to override function entry label emission. Use it to convert linux/ppc to use EmitFunctionHeader(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94667 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdd25445c0cdfe9def326ff61b6dbe6ddac69b48 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jan 27 07:10:10 2010 +0000 Suppress clang warning about unused arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94666 91177308-0d34-0410-b5e6-96231b3b80d8 commit aac8d95fefc1f8efef19e0ca1e1d7f6f2575d6b8 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 27 06:25:16 2010 +0000 Perform trivial tail call optimization for callees with "C" ABI. These are done even when -tailcallopt is not specified and it does not require changing ABI. First case is the most trivial one. Perform tail call optimization when both the caller and callee do not return values and when the callee does not take any input arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94664 91177308-0d34-0410-b5e6-96231b3b80d8 commit e453d94b9cedea849c6aec9fbfcbe395cadbde8f Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 02:18:21 2010 +0000 merge two ifs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94650 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78b48b61971bdb388971e9dd7473cc4661052159 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 02:12:20 2010 +0000 some cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94649 91177308-0d34-0410-b5e6-96231b3b80d8 commit e347d24803b32d9b25ad30b1f604b63cc7606eb5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 02:04:20 2010 +0000 no need to check for null git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94648 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe398973c7ced1a4af9a925bfeecbb6527a096d5 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 27 01:44:40 2010 +0000 Remove a dead target hook. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bf770db031ef3e9348cc5db7d836d545ac0b1b7 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 01:02:43 2010 +0000 ppc/linux isn't ready for this and it was an accident that it was included. This should fix a bunch of linux buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94643 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12dbb7096ea5f08cdce6099a28539ae9f217870b Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 27 00:44:36 2010 +0000 When converting dbg.declare to dbg.value, attach promoted store's debug metadata to dbg.value git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25a2a85e32636a3c09169c9c25de7509404dac4c Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 27 00:30:42 2010 +0000 Linker needs to do deep-copy of function-local metadata to update references to function arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94632 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89cff97315984f1b30b2d2ca1470d684410d878f Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 00:20:02 2010 +0000 use existing basic block numbers instead of recomputing a new set of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94631 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0e44f66356645c49f1a3e9a6807f6828e9de5e7 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 27 00:17:20 2010 +0000 Switch MSP430, CellSPU, SystemZ, Darwin/PPC, Alpha, and Sparc to EmitFunctionHeader: 7 files changed, 16 insertions(+), 210 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94630 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c55bfe437197d0d34edb6887da2a2dd29eb6abe Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 27 00:10:09 2010 +0000 Clarify what -tailcallopt option actually do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f240d49cb730fa95b7752aec624f14e26977443 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jan 27 00:07:20 2010 +0000 Adjust setjmp instruction sequence to not need 32-bit alignment padding git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8904bc5f834bde215cbaba8a898f739db1dfc673 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 27 00:07:07 2010 +0000 Eliminate target hook IsEligibleForTailCallOptimization. Target independent isel should always pass along the "tail call" property. Change target hook LowerCall's parameter "isTailCall" into a refernce. If the target decides it's impossible to honor the tail call request, it should set isTailCall to false to make target independent isel happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94626 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0045f69c5b838f81cc0bf3a1c5512fe6b204988 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 27 00:00:57 2010 +0000 Restore to pre-94570 state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94625 91177308-0d34-0410-b5e6-96231b3b80d8 commit b799bdfb839df00dd357b0f63ddce9086e2183ed Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 23:53:39 2010 +0000 mcize label emission for functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94624 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8174307f67b59afd8ba5355d05f0c8262554b31 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 23:51:52 2010 +0000 use EmitLinkage for functions as well as globals. One output change is that we now use ".linkonce discard" for global variables instead of ".linkonce samesize". These should be the same, just less strict. If anyone is interested in mcizing MCSection for COFF targets, this should be easy to fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94623 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31ffe0af9fac830a223c3a577ecac5bbaaecceae Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 23:47:12 2010 +0000 pull linkage emission code out to a new EmitLinkage function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94621 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1e30988695b7a16e8e116395c951068a8ddbe0f Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 23:41:48 2010 +0000 rearrange some directives, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bca23ef9d02ce81b17c2964dd4411f71bb66481 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Jan 26 23:30:46 2010 +0000 Roll r94484 (avoiding RTTI problems in tests) forward again in a way that isn't broken by setting CXXFLAGS on the command line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94619 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2548e91a283df66d482004ed3e973d2c381c5af7 Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Jan 26 23:29:09 2010 +0000 Avoid extra calls to MD->getNumOperands() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94618 91177308-0d34-0410-b5e6-96231b3b80d8 commit 045d60450f7220d2f1446057058bd72bd6ed323d Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 26 23:28:40 2010 +0000 Ignore 'forced' tailcall opt in fastisel mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94617 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c329dc12d3a5172ce163bf6e4cc84969f9c2e58 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 23:26:29 2010 +0000 remove a noop function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94616 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcd69992ced3281fc9d0630806d30be2feaab5a2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jan 26 23:21:56 2010 +0000 Fix inline cost predictions with SCIENCE. After running a batch of measurements, it is clear that the inliner metrics need some adjustments: Own argument bonus: 20 -> 5 Outgoing argument penalty: 0 -> 5 Alloca bonus: 10 -> 5 Constant instr bonus: 7 -> 5 Dead successor bonus: 40 -> 5*(avg instrs/block) The new cost metrics are generaly 25 points higher than before, so we may need to move thresholds. With this change, InlineConstants::CallPenalty becomes a political correction: if (!isa<IntrinsicInst>(II) && !callIsSmall(CS.getCalledFunction())) NumInsts += InlineConstants::CallPenalty + CS.arg_size(); The code size is accurately modelled by CS.arg_size(). CallPenalty is added because calls tend to take a long time, so it may not be worth it to inline a function with lots of calls. All of the political corrections are in the InlineConstants namespace: IndirectCallBonus, CallPenalty, LastCallToStaticBonus, ColdccPenalty, NoreturnPenalty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94615 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6af8d0c03c0957ea52590ac15a7deb2dbb5b3bab Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 23:18:44 2010 +0000 now that enough stuff is constified, move function header printing logic up from X86 into the common code. The other targets will hopefully start using this soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6139e33352f91d8deceac847e532bd56d69ee8d3 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 23:18:02 2010 +0000 constify a bunch of dwarf stuff now that the registerinfo method is constified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 305c54bb02ce0ce0360b20d8562e299bc69dbd60 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 23:15:09 2010 +0000 constify a method argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1082b75a14004f924335a44a7e6aae4d8d5957f7 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 26 23:13:04 2010 +0000 Allow some automatic tailcall optimization without changing ABI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94611 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd80f9ce1de542f63d4676bea34825b55da1ce64 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 26 23:07:57 2010 +0000 Delete blank lines that bug me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36f987f0a6c1b88f47baec98947da0fa28c0fe34 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 22:06:58 2010 +0000 call emitconstantpool and emitjumptable like other targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 514f9f89c41d672737168b62f36f5835dc656161 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 26 22:03:41 2010 +0000 Before existing NamedMDNode entry in the symbol table, remove any existing entry with the same name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94600 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce1f25476c67b572f4d82899a9ed693cf1115f9b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 21:53:08 2010 +0000 emit jump table an alias ".set" directives through MCStreamer as assignments. .set x, a-b is the same as: x = a-b git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94596 91177308-0d34-0410-b5e6-96231b3b80d8 commit 268ec7835e66eda747bbda73b54366b3dde2665c Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 21:51:43 2010 +0000 fix CastInst::castIsValid to reject aggregate types, fixing PR6153: llvm-as: t.ll:1:25: error: invalid cast opcode for cast from '[4 x i8]' to '[1 x i32]' @x = constant [1 x i32] bitcast ([4 x i8] c"abcd" to [1 x i32]) ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94595 91177308-0d34-0410-b5e6-96231b3b80d8 commit eec5843c809c182a12560f67c0d54aa86ef9e97b Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 26 21:42:58 2010 +0000 Remve unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94594 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc04b87311d24f0b8b2d12a75fe442c06302aeb1 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 26 21:39:14 2010 +0000 Use AssertingVH, just to be paranoid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94593 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68c3e203d9af2c4e1694235b02dd61fc2b5eb6cc Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jan 26 21:31:35 2010 +0000 Revert test polarity to match comment and desired outcome. Remove undeserved bonus. A GEP with all constant indices is already considered free by analyzeBasicBlock(), so don't give it an extra bonus in CountCodeReductionForAlloca(). This patch should remove a small positive bias toward inlining functions with variable-index GEPs, and remove a smaller negative bias from functions with all-constant index GEPs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 822b6122a5b7a6fdf120ac8304381b601cb1f0ee Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jan 26 21:31:30 2010 +0000 Remove dead code. Functions containing indirectbr are marked NeverInline by analyzeBasicBlock(), so there is no point in giving indirectbr special treatment in CountCodeReductionForConstant. It is never called. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94590 91177308-0d34-0410-b5e6-96231b3b80d8 commit b66489dcbe91da300bea69d18f8a086d7d503f5e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jan 26 21:31:24 2010 +0000 Skip calculation of ArgumentWeights if it will never be used. Save a few bytes by allocating the correct size vector. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94589 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6e109bd42e8b8fd138f4daf95c30c5b48e6eafa Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 26 21:16:06 2010 +0000 Emit DW_AT_containing_type attribute for a class if containing type is known. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94587 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8898d2736985e2a14e9cda816d7e640397cfeb1 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 26 21:14:59 2010 +0000 Add extra element to composite type. This new element will be used to record c++ class that holds current class's vtable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94586 91177308-0d34-0410-b5e6-96231b3b80d8 commit c317dc5547141e68c337cfe885ee69b44fcb9a6b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 20:40:54 2010 +0000 Eliminate SetDirective, and replace it with HasSetDirective. Default HasSetDirective to true, since most targets have it. The targets that claim to not have it probably do, or it is spelled differently. These include Blackfin, Mips, Alpha, and PIC16. All of these except pic16 are normal ELF targets, so they almost certainly have it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94585 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca334f0696d794f91a2499b3c32843a2dab2a842 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 26 20:36:21 2010 +0000 Delete dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94583 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d5ae0ed3cb6222e90157ef381678efc6397134c Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Jan 26 20:21:43 2010 +0000 Emit .comm alignment in bytes but .align in powers of 2 for ARM ELF. Original patch by Sandeep Patel and updated by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b6a1a0319984ad0b8aa7a53c329e25258725e20 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 20:20:43 2010 +0000 eliminate MCAsmInfo::NeedsSet: we now just use .set on any platform that has it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94581 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9644e95834edf5b112906b858222eca75621946 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 20:17:34 2010 +0000 don't set to the default value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94580 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab3cf043ce28d0236360938d71ada4f499d749c5 Author: Junjie Gu <jgu222@gmail.com> Date: Tue Jan 26 19:45:17 2010 +0000 test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94578 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bbeaad4db989fd4f2a2fbaff3861a369b8e25de Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 19:25:59 2010 +0000 -disable-output is no longer needed with -analyze. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94574 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35640b2bfaf054ec644de402407dda59a2638d92 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 19:19:05 2010 +0000 Make the unsigned-range code more consistent with the signed-range code, and clean up some loose ends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cd6cea76a29447f5057207d07b486af197ae024 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 26 19:04:47 2010 +0000 Code refactoring, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94570 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7590bb0e7d4de62df0993a8c7573b73d6509808f Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jan 26 19:04:37 2010 +0000 Revert 94484. Re-disable unittests that need RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94569 91177308-0d34-0410-b5e6-96231b3b80d8 commit 897516339c2c8ed92066b170200b6a19a045f81f Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Jan 26 18:57:53 2010 +0000 Switch AllocaDbgDeclares to SmallVector and don't leak DIFactory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94567 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba05500da36091ffa0c867831d779ca45a868685 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 18:32:54 2010 +0000 Fix a typo in a comment that Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a24bfd614af412601a08f9644de5f9e72eb827b Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 18:30:24 2010 +0000 Remove SIL, DIL, and BPL from the GR8_NOREX allocation order also. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94560 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfb17221accd7197bc194888ae093f90a9636705 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 18:14:22 2010 +0000 SIL, DIL, BPL, and SPL require a REX prefix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94558 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2a8efbb47714fca780e31b4e3634bef578668b6 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 16:46:18 2010 +0000 Rename ItCount to BECount, since it holds a backedge-taken count rather than an iteration count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 135a294519f851b3b701846581e0cd586e036b55 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 16:04:20 2010 +0000 Fix ICmpInst::makeConstantRange to use ConstantRange's API properly in the case of empty and full ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c32772f586f832b770de187e6822091ee38bc63 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 15:56:18 2010 +0000 Fix a typo that several people pointed out. Also, address the case of wrapping that Duncan pointed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94547 91177308-0d34-0410-b5e6-96231b3b80d8 commit b690d9e8e1653bdf7a13e082918652f9448a01f1 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Jan 26 14:55:44 2010 +0000 Support -arch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94546 91177308-0d34-0410-b5e6-96231b3b80d8 commit ead5e4cce0b949bfecb15cd2bd3ae56ca195888a Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Jan 26 14:55:30 2010 +0000 Support for -iquote. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94545 91177308-0d34-0410-b5e6-96231b3b80d8 commit b746f712542767bc7e4c3444793212ac0e3110f5 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Jan 26 14:55:16 2010 +0000 Better error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94544 91177308-0d34-0410-b5e6-96231b3b80d8 commit 276fe43e5323899b7c9eadcc80477af0e2d75d32 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Jan 26 14:55:04 2010 +0000 Escape double quotes in 'help'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94543 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
|
|
f578257021 |
Merge LLVM upstream SVN r94539.
Squashed commit of the following: commit 4d555935ac5c77164d9af2494f470abdb542a434 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jan 26 11:58:04 2010 +0000 Tweak the way appendModuleInlineAsm works, so you aren't obliged to append a newline when using setModuleInlineAsm in case later someone calls appendModuleInlineAsm - make newline handling fully automatic. In case anyone is wondering there is only one user of appendModuleInlineAsm: the dragonegg plugin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16cc9fd0863e778a34ef4559180f059224d2e78b Author: Edwin Török <edwintorok@gmail.com> Date: Tue Jan 26 08:50:50 2010 +0000 Regenerate configure. With the previous cleanup to configure.ac, configure is now only 393k, instead of 1.1M! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 239f981ac0b583f113a8c6ffcf51002b1dc5994c Author: Edwin Török <edwintorok@gmail.com> Date: Tue Jan 26 08:48:04 2010 +0000 Remove unneeded checks from configure.ac. HAVE_{BI,STD,FWD}_ITERATOR and HAVE_NAMESPACES were not used in the code. bison and flex are no longer used. CAN_DLOPEN_SELF was never used either. AC_PROG_LIBTOOL is not needed since we don't use libtool, we only need the libltdl checks for dlopen. Add check for AR, it used to be done by AC_PROG_LIBTOOL. AC_TYPE_SIGNAL is deprecated, follow autoupdate's suggestion and replace with void. Remove unused m4 files. Configure can now be generated using autoconf 2.65 too, without any warnings! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94534 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad97ab8596f7ffb831e6b494ceb735d0a0ef0286 Author: Edwin Török <edwintorok@gmail.com> Date: Tue Jan 26 08:43:05 2010 +0000 Fix autoconf 2.65 warning (don't use _cv_ inside AC_CACHE_VAL). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94533 91177308-0d34-0410-b5e6-96231b3b80d8 commit 708db218ba4afbd6c96c7648dda80f4b20185d19 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jan 26 08:27:24 2010 +0000 Remove warning about non return on a non-void function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56178773f3fa4ba2a3f0c0286cb42eaeeb9ba049 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 06:53:37 2010 +0000 eliminate the TargetLowering::UsesGlobalOffsetTable bool, which is subsumed by TargetLowering::getJumpTableEncoding(). Change uses of it to be more specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94529 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab9d79bdabd469ecd40d76f77cb9e391e052115a Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 06:42:44 2010 +0000 Now that printPICJumpTableSetLabel is not overloaded, inline it into its only caller, allowing us to simplify it and hoist bits out of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 576b9165cf59ce6b435defb6718b31d7a501615e Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 06:28:43 2010 +0000 Move getJTISymbol from MachineJumpTableInfo to MachineFunction, which is more convenient, and change getPICJumpTableRelocBaseExpr to take a MachineFunction to match. Next, move the X86 code that create a PICBase symbol to X86TargetLowering::getPICBaseSymbol from X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific library. This eliminates a 'gross hack', and allows us to implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now calls it. This in turn allows us to eliminate the X86AsmPrinter::printPICJumpTableSetLabel method, which was the only overload of printPICJumpTableSetLabel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94526 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ab57e0e40914ec7c9da51dc7af422a9bb4742d2 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 05:58:28 2010 +0000 add a new MachineJumpTableInfo::getJTISymbol method, use it to implement the default TargetLowering::getPICJumpTableRelocBaseExpr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94523 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ae50d6c969ea5319b4ac36a92f6ae3bb2db9510 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 05:30:30 2010 +0000 stub out a new target hook, need some refactoring before I can implement it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5edab094dc771c2ea605feefa4168589c1703b50 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 05:15:20 2010 +0000 simplify asmprinter: only emit .set directives when entries have EK_LabelDifference32 kind and the target has .set support. Simplify X86AsmPrinter::printPICJumpTableSetLabel to make use of recent helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9dd8c76971b200d5e6da9b582322fa6b4ee03fc9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 05:10:10 2010 +0000 rename printPICJumpTableEntry -> EmitJumpTableEntry, make it private and non-virtual. It handles the non-pic case too, so just use it, simplifying EmitJumpTableInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ed376c1534bd482cae00ca58365945a5c595d06 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 05:02:42 2010 +0000 implement X86 @GOTOFF jump table entries with the new EK_Custom32 jump table entry kind, instead of overloading AsmPrinter::printPICJumpTableEntry. This has a pretty horrible and inefficient FIXME around how @GOTOFF is currently smashed into the mcsymbol name, but otherwise this is much cleaner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92baedd90eca87c18f5734141f68123843bf94af Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 04:55:51 2010 +0000 add a new MachineBasicBlock::getSymbol method, replacing the AsmPrinter::GetMBBSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94515 91177308-0d34-0410-b5e6-96231b3b80d8 commit c240962977fb769c537028a4a033e509b61b2b5f Author: Lang Hames <lhames@gmail.com> Date: Tue Jan 26 04:49:58 2010 +0000 New PBQP solver. * Fixed a reduction bug which occasionally led to infinite-cost (invalid) register allocation solutions despite the existence finite-cost solutions. * Significantly reduced memory usage (>50% reduction). * Simplified a lot of the solver code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94514 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52ec98318a4a336d37048613565c031a0cb1dc5f Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 04:40:18 2010 +0000 Fix the the ceiling-division used in computing the MaxBECount so that it doesn't have trouble with an intermediate add overflowing. Also, be more conservative about the case where the induction variable in an SLT loop exit can step past the RHS of the SLT and overflow in a single step. Make getSignedRange more aggressive, to recover for some common cases which the above fixes pessimized. This addresses rdar://7561161. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87c00880896deb3d3c7e0cc11954fecc5cf7c75e Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 04:38:11 2010 +0000 don't bother setting the AsmPrinter::MF ivar, now that AsmPrinter::SetupMachineFunction sets it. Note that systemz and msp430 didn't. Yay for reduced inconsistency! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94510 91177308-0d34-0410-b5e6-96231b3b80d8 commit b73ec923cd277bd24bff2d81c4b29b4a7661f344 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 04:35:26 2010 +0000 make MachineFunction keep track of its ID and make MachineFunctionAnalysis dole them out, instead of having AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction method set the 'AsmPrinter::MF' variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 451d50e0b00fecc00fcb8657552384f318055ae2 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 04:19:00 2010 +0000 this hook should be const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94508 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd665558f42e47780aff6e3a4555e00d1789e064 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 04:13:15 2010 +0000 Add a comment about a missed opportunity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94507 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1a154b0075a9f31b1850e26ff4f9462484756f7 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 26 04:12:55 2010 +0000 Print empty and full sets specially. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94506 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98639cc055c3420fc68e8cbe308b4c9070c58bd5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 04:05:28 2010 +0000 Add support for target-specific 32-bit custom-lowered jump table entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94505 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd80b5194431e0ce5b27852dc72c695ad4f7d5a7 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jan 26 03:56:22 2010 +0000 Unbreak MSVC/CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94502 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce044b9c7e5dc2c587984ad10fa7b5ed3e31fa82 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 03:47:15 2010 +0000 make jit jump table emission be based on the EntryKind instead of magic variables. JITInfo::getPICJumpTableEntry can probably be removed now, but I don't plan to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94501 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ff0256e58dc792e6b1a99ae095326f06764e44c Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 26 03:43:22 2010 +0000 switch jump table entry emission to be based on EntryKind instead of magic variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94500 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7829479065b2c9e3593040f3ea9eb731fa505a5 Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Jan 26 02:42:15 2010 +0000 In mem2reg, for all alloca/stores that get promoted where the alloca has an associated llvm.dbg.declare instrinsic, insert an llvm.dbg.var intrinsic before each store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94493 91177308-0d34-0410-b5e6-96231b3b80d8 commit 772e788108793a13d4c154974d151e9755b09373 Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Jan 26 02:36:35 2010 +0000 Add MDNode::getIfExists(), an efficient way to determine if a value is used by metadata (since metadata does not appear in a value's use list) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bdbbc8c8bd9261fce6c90f6546fca5e743f071b Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Jan 26 02:07:38 2010 +0000 Assert when debug intrinsic insert functions are passed empty arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94491 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35442a5bd501a65850e46ab87e77a0bf254227ef Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 26 02:00:44 2010 +0000 Implement cond ? -1 : 0 with sbb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91945aed6441c5fee15f0b4da9f74ff5fdb161b4 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jan 26 01:54:26 2010 +0000 Accept immediate as value of a dbg_value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2798a565988f04b8e8e9b385ce7a1a9a671dc747 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Jan 26 01:26:46 2010 +0000 Re-enable unit tests disabled in r94164 by telling GTest about the lack of RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94484 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4eac23ed3a3dcf627e2b346bbadb6e6acd05eb12 Author: Sean Callanan <scallanan@apple.com> Date: Tue Jan 26 01:00:10 2010 +0000 Added the implementation of the Intel-specific TargetAsmLexer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94482 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfe2023a6987b4201e612b8b787cbb40b4b29e7d Author: Dale Johannesen <dalej@apple.com> Date: Tue Jan 26 00:09:58 2010 +0000 Generate DEBUG_VALUE comments on x86. The (limited) dbg.declare's we currently generate go through both register allocators without perturbing the results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38465e0f8e0ce74d6a4721e4d667194e4ee3ee6c Author: Sean Callanan <scallanan@apple.com> Date: Tue Jan 26 00:08:25 2010 +0000 Added the TargetAsmLexer implementation for AT&T syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21cf5dc841bfce418403b3909f5ab8c9e6087b9a Author: Dale Johannesen <dalej@apple.com> Date: Tue Jan 26 00:03:12 2010 +0000 use findDebugLoc in more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23703f10f4ee82ce35381cb63a06300ced4e98d7 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jan 25 23:50:13 2010 +0000 Minor jump table cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94475 91177308-0d34-0410-b5e6-96231b3b80d8 commit f51056a64833520d9a19dd4e66d439622e3a7794 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 23:38:14 2010 +0000 in 32-bit pic mode for targets with a GOT, x86 emits jump table entries with @GOTOFF whih is EK_GPRel32BlockAddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94474 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02f40bc55023ba2181ecb32aeb8d0c265624d176 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 23:28:03 2010 +0000 fix quoting problem jim noticed! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94472 91177308-0d34-0410-b5e6-96231b3b80d8 commit f64ffc4e7521176024d0c53f2e3a702c6de98133 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 23:26:13 2010 +0000 Rearrange handling of jump tables. Highlights: 1. MachineJumpTableInfo is now created lazily for a function the first time it actually makes a jump table instead of for every function. 2. The encoding of jump table entries is now described by the MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the TLI::getJumpTableEncoding() hook, instead of by lots of code scattered throughout the compiler that "knows" that jump table entries are always 32-bits in pic mode (for example). 3. The size and alignment of jump table entries is now calculated based on their kind, instead of at machinefunction creation time. Future work includes using the EntryKind in more places in the compiler, eliminating other logic that "knows" the layout of jump tables in various situations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94470 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfe7b7a54a60a928e30896b5a21233fa0cbca0a4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 23:22:00 2010 +0000 prep work to support a future where getJumpTableInfo will return a null pointer for functions with no jump tables. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94469 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5badd6703d1f8fc552f45023ba10dec5e6d9b0a Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 23:18:11 2010 +0000 add a method to get the alignment of an integer type even when we don't have one laying around. Useful if you don't have an llvmcontext handy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c6e446caaa411d8f44f2abe82c5d0b39118f79a Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Jan 25 22:54:29 2010 +0000 Make it SP, LR, PC for GPR Register Class instead of LR, SP, PC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94465 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43b18d3c46b16a3d07cb6ae9856439af29626749 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 22:41:33 2010 +0000 eliminate redundant argument to EmitJumpTableInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94464 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba0c53b5194a4a00042844d89815229ffcae3ada Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Jan 25 22:13:10 2010 +0000 Implemented ARMInstPrinter::printThumbS4ImmOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94457 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfceef4d7c86e1faff86b76962fd49cbf69748db Author: Sean Callanan <scallanan@apple.com> Date: Mon Jan 25 21:59:20 2010 +0000 Implemented the dialect decision logic for the X86 TargetAsmLexer. Dialect-specific lexing code will be placed in the functions LexTokenATT() and LexTokenIntel(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94456 91177308-0d34-0410-b5e6-96231b3b80d8 commit da756cedbd90c7c5c4cb88ce020567a2980d93d4 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Jan 25 21:56:35 2010 +0000 Fixed the order of GPR RegisterClass regs to be: ..., R10, R11, R12, ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94455 91177308-0d34-0410-b5e6-96231b3b80d8 commit f995e69497f878e241907c577840be9a4001517d Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 25 21:55:39 2010 +0000 Fix the bitcode reader to deserialize nuw/nsw/etc. bits properly in the case of a forward-reference, which doesn't use an "abbrev" encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94454 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc57be1812ac38d5966a819ad4ed495c074a7795 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 21:28:50 2010 +0000 mcstreamerize gprel32 emission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94452 91177308-0d34-0410-b5e6-96231b3b80d8 commit e45fe963cf0ac976f60815cecbb5fa7816c32aa1 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jan 25 21:28:05 2010 +0000 Remove check for an impossible condition: the condition of the while loop has already checked that TmpBB->getSinglePredecessor() is non-null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94451 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7db595672d1825bc31a0bd3cf9258cbdbe233601 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 21:22:22 2010 +0000 mcize the non-gprel cases of AsmPrinter::printPICJumpTableEntry git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72d7c91660fc92b769b87c3464c038e1e1ff2ded Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 21:17:10 2010 +0000 handle the _set_ symbol with an MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75bd561e510de2d6376a8573fcbcaabf0e1f8b9f Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 21:10:10 2010 +0000 rename MAI::PICJumpTableDirective to MAI::GPRel32Directive to make it clear what it is, instead of how it is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94448 91177308-0d34-0410-b5e6-96231b3b80d8 commit c50dd923eb17911f40d1a354c08b2d3e45cb5316 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 21:01:58 2010 +0000 pull the non-pic jump table case out of printPICJumpTableEntry and MCize the non-pic case. Now printPICJumpTableEntry really is just about printing PIC entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94446 91177308-0d34-0410-b5e6-96231b3b80d8 commit cffc498b7b150de1d0d48a56a57550609ab61e4a Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 20:52:54 2010 +0000 remove JumpTableDirective, it is always null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98e00c465b19ccdcf0ad3ff2bb1919d190b4945c Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 20:37:36 2010 +0000 no need to implement these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94443 91177308-0d34-0410-b5e6-96231b3b80d8 commit 010d3c27b44c66695ad2c967722fa39c7dc454c4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 19:51:38 2010 +0000 mcize jump table symbol manipulation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94441 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8a81c36e4a0786baacf13b1744d3aaebc9baed0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 19:39:52 2010 +0000 sink an arm specific method out of asmprinter into the ARMAsmPrinter and rename it to avoid shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94440 91177308-0d34-0410-b5e6-96231b3b80d8 commit 758f781239b7876a4589e4a8ea8486400cfc02d5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 19:23:04 2010 +0000 remove dead code: the x86 target never sets usesGlobalOffsetTable, even on x86-32/elf which uses a GOT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94439 91177308-0d34-0410-b5e6-96231b3b80d8 commit be8c61a305dd714126a1dd308024b765a5e5de15 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 19:02:58 2010 +0000 wirte up .file and .file to the mc asmparser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94438 91177308-0d34-0410-b5e6-96231b3b80d8 commit eaf065b751af99a0cc1fdc304e9118e9b8f7906f Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 18:58:59 2010 +0000 mcstreamerize .file and .file. This also fixes an issue where the normal form of .file would fail if the filename had a weird character in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94437 91177308-0d34-0410-b5e6-96231b3b80d8 commit f20ca12ef34f3e557241346f0db15bfa93ef989e Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 18:33:40 2010 +0000 emit ELF .type directives through MCStreamer instead of doing it textually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94436 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82ede98c5928c480b7b8d2d79b481c936fba99cd Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 18:30:45 2010 +0000 add symbol attribute support for the ELF .type directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b3d624c931bc42d3aadbb505b81b91498ce4b1c Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jan 25 18:26:54 2010 +0000 Change Value::getUnderlyingObject to have the MaxLookup value specified as a parameter with a default value, instead of just hardcoding it in the implementation. The limit of MaxLookup = 6 was introduced in r69151 to fix a performance problem with O(n^2) behavior in instcombine, but the scalarrepl pass is relying on getUnderlyingObject to go all the way back to an AllocaInst. Making the limit part of the method signature makes it clear that by default the result is limited and should help avoid similar problems in the future. This fixes pr6126. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94433 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0699b0384ab44c2c0344673d6c96fd246e0811f Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Jan 25 17:52:13 2010 +0000 Revert r94260 until findDbgDeclare() is made more efficient git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0271305987a4170ef3daa793c2a367338c0e32cb Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jan 25 15:32:10 2010 +0000 Update test for darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94421 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4b84343d60c4140df8b11c6f5f23c8e981e0871 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 07:53:05 2010 +0000 add a comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94417 91177308-0d34-0410-b5e6-96231b3b80d8 commit aaa7b1bae9af996efdaa0f230800f59198b55ca8 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 07:52:13 2010 +0000 emit the .size directive for global variables on ELF through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94416 91177308-0d34-0410-b5e6-96231b3b80d8 commit 516b4d673d1cfba74c5c0e0f1db49abe77ca5853 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 07:43:40 2010 +0000 we removed support for darwin8 tools. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f9165d2391eba416439e4467bd333e9daa99d9a Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 07:29:13 2010 +0000 all supported target now have aligned common support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94413 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9378674bdedadfe3fefb8aecfebee0b8cbbf25ad Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 07:26:17 2010 +0000 Remove support for i386 tiger tools for aligned common symbols. Previously we would just silently miscompile code that used aligned common's, now at least you'll get a build error. tiger-ppc already triggered the build error because it didn't have a version of this logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94412 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c3d2bf9419127c61c0d5e0bd43fab2e827cb0c2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 07:23:14 2010 +0000 don't set value to its default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34ed3bc8b335e54535f48b8182bebc0db0c2b477 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 25 07:20:44 2010 +0000 coff targets support alignment on .comm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94410 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8a8280017dfb9207e6e4f92dfaf485777a6c336 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jan 25 04:59:07 2010 +0000 ARM does accept the .comm directive alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6751d70c7fe47be58fdd937e3766ce4344ccff8e Author: Eric Christopher <echristo@apple.com> Date: Mon Jan 25 04:10:28 2010 +0000 Fix autoconf llvm srcdir location for generic projects. Patch by Torvald Riegel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94405 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9a5d80089360065d335b9a46911b7b679d4e193 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Jan 25 02:27:39 2010 +0000 Fix PR6134. We are not emitting alignments on Darwin for "bar". Not sure what is the correct way to do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69b0fad03edc822efa7497bfbf5051475d9904f5 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jan 25 00:54:13 2010 +0000 Attempt to unbreak test on Linux. Chris, please check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94399 91177308-0d34-0410-b5e6-96231b3b80d8 commit e05be056a19a8ee169ea2676f2c2a8b42050ff33 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jan 25 00:45:01 2010 +0000 This example requires RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94398 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f6edb89f62862757145752b50c465e990879cbd Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 20:54:45 2010 +0000 linux/ppc does use alignment in bytes, not pow-2. This fixes PR6129. It looks like linux/arm and linux/mips have the same setting, which are probably wrong. Someone who cares about ARM and MIPS should investigate with the testcase in PR6129. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04e65245cdab942a551de170237973c9cb6b903e Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 20:53:12 2010 +0000 don't reset the default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1adf597745f664fdea164b2d25695e3aca78ee8c Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 20:43:08 2010 +0000 make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 117674051a2501cce79ca6e0b3ecc00e1382ffb7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 20:22:08 2010 +0000 mark some libraries that currently require RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94377 91177308-0d34-0410-b5e6-96231b3b80d8 commit 696f0cfe623a89ef7575ff6c0b3948c34d2f3baf Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 20:21:50 2010 +0000 libs that need EH need RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94376 91177308-0d34-0410-b5e6-96231b3b80d8 commit b08bea7868ae3094051469e7f360eb945f35d973 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 20:20:40 2010 +0000 ENABLE_EXPENSIVE_CHECKS shouldn't know how rtti is enabled, let REQUIRES_RTTI handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 073777efc9f8dcc11201a24b257d1ad3efc73f0b Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 20:17:09 2010 +0000 reassociate should do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94374 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34cc79c227e1bbe3c1d78a2ebbdf31e7289e9f2d Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 20:01:41 2010 +0000 add a note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94373 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdf289c59d527d18a7b3d6b29d7dc0cb2d006860 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 19:23:09 2010 +0000 just remove this test, it is not reduced, is not clear what its testing for and it is dying due to fragility in the asmprinter .s comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8eba210656b1b46a627a53f27607eb78bee0b46c Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 19:13:39 2010 +0000 this test has been failing or a long time, just disable it for now to get back to green. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94371 91177308-0d34-0410-b5e6-96231b3b80d8 commit b35037aec3f60518a97f86050098e0c3597b8e14 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 19:01:06 2010 +0000 fix some issues where we weren't emitting enough newlines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94370 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6e18804c095c7a9580161cec25457910ff1e470 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 18:54:17 2010 +0000 when emitting DIEs, emit the comment on the same line as the directive. This fixes FrontendObjC/2009-11-30-Objc-ID.m git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ef7cf97cd5f40a660e36c637284eb120528dd04 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 02:27:03 2010 +0000 move PR5945 here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94350 91177308-0d34-0410-b5e6-96231b3b80d8 commit b30a9d51185aed4a863737ce8f4aa01770a91426 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 01:07:33 2010 +0000 fix a parsing problem on instructions like: movw $8, (_cost_table_-L97$pb)+66(%eax) After the parens, we could still have a binop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94345 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8075fd5cc680647735c00aa160597d438924b9d9 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 00:25:09 2010 +0000 This corrects an error in the type of the Llvm.dispose_context function. Patch by James Woodyatt! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94343 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bfb35b04c180f4b1c9ef08026d4d79e6dcbc22e Author: Mon P Wang <wangmp@apple.com> Date: Sun Jan 24 00:24:43 2010 +0000 It seems better to scalarize vectors of size 1 instead of widening them. Add support to widen SETCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94342 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bb7a3c88d365944ffbd6f7c6602d6634fd7eba3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 24 00:09:49 2010 +0000 change the canonical form of "cond ? -1 : 0" to be "sext cond" instead of a select. This simplifies some instcombine code, matches the policy for zext (cond ? 1 : 0 -> zext), and allows us to generate better code for a testcase on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94339 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2de8d73b7944fa39803d9531719da96e0921a345 Author: Mon P Wang <wangmp@apple.com> Date: Sun Jan 24 00:05:03 2010 +0000 Improved widening loads by adding support for wider loads if the alignment allows. Fixed a bug where we didn't use a vector load/store for PR5626. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94338 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9256a922c459a26e590d0ffbce1a7fa151421a1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 23:31:46 2010 +0000 fix a potential overflow issue Eli pointed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21dbf2fe88b87852d3b644752152fa4c939d9f67 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Jan 23 20:32:12 2010 +0000 Speculatively revert r94322 to see if it fixes darwin selfhost buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94331 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8070ec0e39fe9fa098e05c8480fefeeafdab9e63 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 19:21:31 2010 +0000 third bug from PR6119: the xor dupe extension allows for arbitrary terminators in predecessors, don't assume it is a conditional or uncond branch. The testcase shows an example where they can happen with switches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94323 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed230ec24e2639545b5f72ce86ceebd809b0f483 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Jan 23 19:19:34 2010 +0000 Teach DAE that even though it can't modify the function signature of an externally visible function, it can still find all callers of it and replace the parameters to a dead argument with undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e27c8ab6d591b7c0b95f174bc4bb1788241a6ea Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 19:16:25 2010 +0000 add an early out to ProcessBranchOnXOR to speed it up, handle the case when we can infer an input to the xor from all inputs that agree, instead of going into an infinite loop. Another part of PR6199 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94321 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8d56ca2576b026967c306f6b2d4a7818215958f Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 18:56:07 2010 +0000 fix a crash in jump threading, PR6119 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94319 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79bda77aa67a5fb3ce416b072e5a7757ef2f0757 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 18:49:30 2010 +0000 implement a simple instcombine xform that has been in the readme forever. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94318 91177308-0d34-0410-b5e6-96231b3b80d8 commit c577b8344b6fe79cd250ceaf95303a6405af12e9 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 18:42:37 2010 +0000 add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94317 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d28a9d1cd2f682c8fb812c2ba04a25c67cc2a76 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 17:59:23 2010 +0000 add some notes, making posix-memalign be nocapture would be an easy improvement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94312 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcc37a1838a832ec99f3f469c7dbb26751a1db2c Author: Bill Wendling <isanbard@gmail.com> Date: Sat Jan 23 10:26:57 2010 +0000 Remove the '-disable-scheduling' flag and replace it with the 'source' option of the '-pre-RA-sched' flag. It actually makes more sense to do it this way. Also, keep track of the SDNode ordering by default. Eventually, we would like to make this ordering a way to break a "tie" in the scheduler. However, doing that now breaks the "CodeGen/X86/abi-isel.ll" test for 32-bit Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94308 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21733fda3761f7209a4ec0e54dfeba60009c8af9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Jan 23 09:54:23 2010 +0000 Respect operator precedence (and silence a gcc 4.3 warning). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94304 91177308-0d34-0410-b5e6-96231b3b80d8 commit bab5d64f0e7f902588a78294cb2196c498f1836a Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 07:47:02 2010 +0000 mcize lcomm, simplify .comm, extend both to support 64-bit sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94299 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5282425d454ae746a266d1c41175564545c057f Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 07:21:06 2010 +0000 resolve a fixme: the "nonexecutable stack directive" is actually a .section. Switch to it with SwitchSection. However, I think that this directive should be safe on any ELF target. If so, we should hoist it up out of the X86 and SystemZ targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94298 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce83c429c23fb6f94d987e49e39563fb2ccb9b1e Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 07:17:54 2010 +0000 remove a dead call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94297 91177308-0d34-0410-b5e6-96231b3b80d8 commit a60bdbe226bb00daa15b7bc5a7fd9d3f0c1c2bc1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 07:00:21 2010 +0000 use helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0952125a6ba77ae0bb54f995adc9dbbc0d5544a2 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 06:53:23 2010 +0000 mcize visibility directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bec06f70cf3f98437d065cd7ddd80dfaa14d949 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 06:39:22 2010 +0000 move the various directive enums out of the MCStreamer class into a new MCDirectives.h file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37bfafecbfdfd1d13c67939872f500b1b73c83e0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 06:17:14 2010 +0000 Change constantexpr global variable initializers to convert the constants to MCExpr then emit them through MCStreamer with EmitValue. I think all global variable initializers are now going through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94293 91177308-0d34-0410-b5e6-96231b3b80d8 commit da960b1ecc70e2eb5b8fd2553d30f094b2c1ffb7 Author: Eric Christopher <echristo@apple.com> Date: Sat Jan 23 06:02:43 2010 +0000 Don't lower splat vector load to relative to the esp if the stack may be misaligned. Update test accordingly. Patch by Evan Cheng! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94291 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cfb025a75f48ca48aacb4728e0fa2ab208e0cbb Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 05:51:36 2010 +0000 mcstreamerize .no_dead_strip and .reference for static ctors/dtors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7aeeb28d19bdaece1ae9de1f16c3280a576f84c3 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 05:45:28 2010 +0000 stop testing for invalid output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94288 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea28a60728a6cf566ca89bb76b8eff841a6f78dd Author: Eric Christopher <echristo@apple.com> Date: Sat Jan 23 05:29:06 2010 +0000 Reapply 94059 while fixing the calling convention setup for strcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94287 91177308-0d34-0410-b5e6-96231b3b80d8 commit d07f6755bbae6d71080f76f4067704e5ccd8f973 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 05:28:25 2010 +0000 remove unneeded directive set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94286 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5071b187e87991fe21c9237bd05a4be888a9ca0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 05:26:25 2010 +0000 use some helpers instead of duplicating logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8977ba554ce5b1683adae55836e0710badcaa6f1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 05:19:23 2010 +0000 mcize jump table and constant pool entry labels, .local on elf, and some .weak directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94284 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f700b2c30b62395cf6c35a63c5ae4dca45ddbd4 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 04:54:10 2010 +0000 emit .ascii and .asciz through MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94282 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7fa27941f0d710932f12d55fe155abbcae09136 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 04:42:42 2010 +0000 simplify code a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94281 91177308-0d34-0410-b5e6-96231b3b80d8 commit fecdf6a06df7033f4c867bd13acfbeb966cd65d0 Author: Mon P Wang <wangmp@apple.com> Date: Sat Jan 23 04:35:57 2010 +0000 InstCombine should not fold sext/zext of a vector and a bitcast to a scalar to a sext/zext git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94280 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a7c14bf328f64ff4193dd3cf0295b8f93b8c3c2 Author: Ted Kremenek <kremenek@apple.com> Date: Sat Jan 23 04:01:37 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94278 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7466a925f7b8617abd8bc8b24bd7a5b3503316e Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 03:11:46 2010 +0000 remove one form of EmitString, just use EmitBytes instead. We must be careful to add a \0 at the end though, because EmitString didn't do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94277 91177308-0d34-0410-b5e6-96231b3b80d8 commit f04952804f541d3122cfb43ec40cc0942325c23d Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 03:11:10 2010 +0000 remove this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94276 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6ab361317fd3574732ff553d10208aac92d0fd3 Author: Sean Callanan <scallanan@apple.com> Date: Sat Jan 23 02:43:15 2010 +0000 Added the skeleton for the implementation of the X86 target-specific AsmLexer, and added the appropriate registration calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94275 91177308-0d34-0410-b5e6-96231b3b80d8 commit 059df4def56ac9f1eb215a3fb849a2f21891360a Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jan 23 01:21:27 2010 +0000 Fix test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94272 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2ff4823326a56abb0ba669b821a5936b4352e8c Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jan 23 01:19:28 2010 +0000 Fix tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94271 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7a921beb95ccea2238dbebe2c41d9178e894c3a Author: Sean Callanan <scallanan@apple.com> Date: Sat Jan 23 00:40:33 2010 +0000 Modified the register matcher function in AsmMatcher to be static. Also made it possible for clients to get it and no other functions from ...GenAsmMatcher.inc by defining REGISTERS_ONLY before including GenAsmMatcher.inc. This sets the stage for target-specific lexers that can identify registers and return AsmToken::Register as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94266 91177308-0d34-0410-b5e6-96231b3b80d8 commit da5a810fe5032fa06d1f50db89b0caf0c4af9be5 Author: Devang Patel <dpatel@apple.com> Date: Sat Jan 23 00:26:28 2010 +0000 Avoid using "Type" as the variable name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94262 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17d6b5bc6ba2bedc3843f2650dc32f8f87240e22 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jan 23 00:26:16 2010 +0000 AsmMatcher: Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94261 91177308-0d34-0410-b5e6-96231b3b80d8 commit d24eb84b7e60f8eee20cdf617eba33ebfa52b900 Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Jan 23 00:17:34 2010 +0000 In mem2reg, for all alloca/stores that get promoted where the alloca has an associated llvm.dbg.declare instrinsic, insert an llvm.dbg.var intrinsic before each store git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94260 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2724561e93d576930911903b1f91abfe1681dc61 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 23 00:15:00 2010 +0000 teach MCAsmStreamer::EmitBytes to use .ascii and .asciz git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94259 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0147ebbe1e565c30ea095212467d0c31c3cbfd9e Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Jan 23 00:03:28 2010 +0000 Make sure ValueFn starts off empty git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0122611496dacf43dcb8fd246258d0a835bc9988 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 22 23:49:45 2010 +0000 Enable pre-regalloc scheduling load clustering by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94255 91177308-0d34-0410-b5e6-96231b3b80d8 commit c95d6a904c9d796664f720423f50a7a8e553dad9 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 22 23:49:11 2010 +0000 Be more conservative with clustering f32 / f64 loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94254 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1ca0cc113a5e7d4078729904274608de82c861d Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 23:47:11 2010 +0000 move "EOL" from asmprinter to dwarfprinter. It should eventually be completely eliminated, but today is not that day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94253 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29f89d3d786ccb37ed00a96a4b439aa4ca95a4ec Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 23:43:14 2010 +0000 remove uses of EOL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d806e74cc94867843b050698b4daa39d5776321 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 23:40:08 2010 +0000 add a new EmitCFAByte method and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94251 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa01d51d21d54f2ca00b78e4d2091d53533eaf5e Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 23:18:42 2010 +0000 move uleb printing from asmprinter to dwarfprinter, mcize, cleanup and eliminate a bunch more uses of "EOL". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94250 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b1235ab731407403eea3a6b513ca1507fd973f1 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Jan 22 23:04:39 2010 +0000 Make OProfile support compile again after r93630 removed DebugLocTuple. Also use an AssertingVH to ensure that MDNodes aren't destroyed while the FilenameCache is using them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94245 91177308-0d34-0410-b5e6-96231b3b80d8 commit f91ddc3b77bfd40e84a928da86fac608cd113eb6 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 22:56:55 2010 +0000 move sleb printing out of asmprinter into dwarf printer, make clients handle the comment better, MCize the non-.sleb case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94244 91177308-0d34-0410-b5e6-96231b3b80d8 commit f57bfb4bcc2519b3e7409d385a4ff119ce21296c Author: Devang Patel <dpatel@apple.com> Date: Fri Jan 22 22:52:10 2010 +0000 Remove MetadataBase class because it is not adding significant value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94243 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ba10c12d0d4e205923380005bcd2a551fe3b707 Author: Sean Callanan <scallanan@apple.com> Date: Fri Jan 22 22:42:22 2010 +0000 Added a Register token to AsmToken and the appropriate accessor method for its value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94241 91177308-0d34-0410-b5e6-96231b3b80d8 commit 275991914793014fb284c1dec811d7684b3b2f1c Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 22 22:38:21 2010 +0000 Ignore DEBUG_VALUE when building live intervals; this makes the code work transparently the same whether they're there or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94240 91177308-0d34-0410-b5e6-96231b3b80d8 commit e50e6d22c237b7287afa87cd358578cf1884111a Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 22:38:16 2010 +0000 add a new DwarfPrinter::EmitEncodingByte method which handles pretty printing encoding comments and eliminates redundancy on the client side. We now get pretty dwarf like this again: .byte 255 ## @LPStart Encoding = omit .byte 0 ## @TType Encoding = absptr .byte 0x28 ## @TType base offset .byte 3 ## Call site Encoding = udata4 .byte 0x1a ## Call site table size ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94239 91177308-0d34-0410-b5e6-96231b3b80d8 commit b70eff364cde6a60a00a0e549df9fd6d308d8355 Author: Sean Callanan <scallanan@apple.com> Date: Fri Jan 22 22:35:01 2010 +0000 Filled out the skeleton of the TargetAsmLexer to behave exactly like an MCAsmLexer. (The difference is that the TargetAsmLexer knows how to handle target-specific stuff like registers, whereas the MCAsmLexer is fully generic.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94237 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c68039af93eedd5a3a85bcfd6e0c9e04c83faa9 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 22:23:57 2010 +0000 rename the dwarf class to DwarfPrinter. This matches the filename and much more accurately describes what it is all about. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d9f592d5ea82a8ccc47e86ca24b11fe7a32c91d Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 22:19:51 2010 +0000 fix indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09bcfe29cc1206b4488ff52151b9aff6734aebd8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 22:09:00 2010 +0000 inline away the trivial AsmPrinter::EOL() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b03593d029ac231ebcf9d581bcabcc3a4c40094 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 21:57:56 2010 +0000 inline AsmPrinter::PrintHex into its two trivial callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94228 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4baf399c89cac6a77f292eec358fcde663ba990 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 21:50:41 2010 +0000 change this to be a static function instead of a method on asmprinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94227 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8e3a9c1508eeeb8475fa824bc6188a383e089ba Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 21:43:28 2010 +0000 make the loop comment printer print out a much better structured output. An example: .align 4, 0x90 LBB1_5: ## %while.cond3 ## Parent Loop BB1_1 Depth=1 ## => This Loop Header: Depth=2 ## Child Loop BB1_8 Depth 3 ## Child Loop BB1_6 Depth 3 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a083046e39014715254eec809993afe6557058f Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 21:16:10 2010 +0000 Changes to fix buffering that I forgot to commit with previous patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94222 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2898d5c0c9f4a403de67ca714336612887d2220e Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 21:11:06 2010 +0000 For blocks that are not loop headers, just print their loop depth and header BB. For loop headers, print Inner loop along with the other stuff so it doesn't take an extra line. We now get stuff like this: LBB1_4: ## %land.end ## in Loop: Header=BB1_1 Depth=1 notb %al testb $1, %al jne LBB1_8 and: LBB1_6: ## %while.cond7 ## Inner Loop Header: Depth=3 ## Inside Loop BB1_5 Depth 2 ## Inside Loop BB1_1 Depth 1 which still isn't great for loop headers, but is much less verbose. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94221 91177308-0d34-0410-b5e6-96231b3b80d8 commit 992dadad54a34560aeb714f9b6330d50483e8242 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 21:00:45 2010 +0000 reenable the label loop comments and switch them to use the formatted comment emission stuff. I'm going to rewrite this though because the current output doesn't make sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94215 91177308-0d34-0410-b5e6-96231b3b80d8 commit b879eef258dd7a9b8480c7b2e1259a58de0278c4 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 22 20:16:37 2010 +0000 Mark EH_RETURN64 as CodeGenOnly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94205 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9a0c6d6bf9f548fa5c0710eb87fbf81e38982e3 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jan 22 20:00:21 2010 +0000 Another strncmp -> StringRef.startswith simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94203 91177308-0d34-0410-b5e6-96231b3b80d8 commit b03dee3f599868a20c569540c53956914a71d25b Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 19:52:01 2010 +0000 Convert some more random-comment-printing stuff to use AddComment and GetCommentOS. Add a blank line between globals (even in non-verbose mode) to make the assembly more readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94202 91177308-0d34-0410-b5e6-96231b3b80d8 commit b671b3566275e21443b7430bef6610948a660c05 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 19:51:08 2010 +0000 make this less constrained, we want blank lines between globals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 643754db2ef4713fceda458b858e60e562ca815a Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 19:17:48 2010 +0000 add a new MCAsmStreamer::GetCommentOS method to simplify stuff that doesn't want to use twines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54bb43ce6bdbfc08a4c8651209c256c64c875afb Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jan 22 19:16:40 2010 +0000 Revert 94059. It is breaking the MultiSource/Benchmarks/Prolangs-C/bison test on ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4daebf7f7de736ff476a1a219a95e524a81fec54 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 19:11:53 2010 +0000 add missing break, PR6114, patch by M Wahab. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5637abcbf760d7f372d8cdf20a2fe639aa801f87 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Jan 22 19:06:12 2010 +0000 Fix/strengthen verification of llvm.dbg.declare git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54c6af0ac878c25b5854545cdb11cc7d1d41176e Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Jan 22 19:05:05 2010 +0000 Keep ignoring pointer-to-pointer bitcasts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94194 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d63ba1ff03dbb2e5b2f7e7cc329c80ef8ff920a Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 18:33:00 2010 +0000 use both the Mangler and the CBE's mangler for identifiers, this should fix a problem duncan saw handling symbols with '.' in them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94192 91177308-0d34-0410-b5e6-96231b3b80d8 commit 426fd0e36872e4959e3c40579c219fa4660e45fd Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 18:21:35 2010 +0000 rename addComment -> AddComment for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94190 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfd854a8b0cf3b1506b06476d66d2b882a4e0226 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Jan 22 18:21:23 2010 +0000 Simplify some uses of str(n)cmp with StringRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94189 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a7c2dd91fab40da7f5730e1bb47e32f1f4bba59 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 22 18:14:27 2010 +0000 CMake: Don't try to descend into projects/compiler-rt, it doesn't work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94187 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6f53ec8a5f6329e9eb99fcd9721154e95863012 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 22 18:14:21 2010 +0000 Make GetSourceVersion more portable, thanks Pawel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94186 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8b2a7fec64b897bdc32a1ce9aed6de2110a8937 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 22 18:14:14 2010 +0000 Update CMake LibDeps git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ea2167f18c86a5582b9a68051017ed54dfe0c71 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 22 18:10:54 2010 +0000 make: Make .o files depend on Makefile, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6be4f1bb09a28c828765c25ae8137c1978bdb27d Author: Edwin Török <edwintorok@gmail.com> Date: Fri Jan 22 15:51:31 2010 +0000 Fix TimeValue::now() on Unix. TimeValue()::now().toEpochTime() is supposed to be the same as time(), but it wasn't, because toEpoch subtracted PosixZeroTime, but now() didn't add PosixZeroTime! Add a unittest to check this works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94178 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bd4726718a54b82545b70f82de80a7790aeeeb2 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 22 10:48:28 2010 +0000 Revert r94066, which was the patch which added a Verifier pass after LoopStrengthReduce, as it's causing too much trouble (even with the old LoopStrengthReduce code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94172 91177308-0d34-0410-b5e6-96231b3b80d8 commit a72e6a456823a00213f97a896fad80ac43225769 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 07:36:39 2010 +0000 add comment support to the rest of the directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c50aa145f4d32af5f49598eee5d3a14a11961d8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 07:34:12 2010 +0000 stop using strtoll, it gives windows heartburn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9eb7b072080725f485626551827d77072e6a3e6d Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 07:29:22 2010 +0000 Add the ability for MCStreamer to emit comments on the same line as directives. Switch over the asm-verbose comment for double values to use it. We now get: _x: .long 343597384 ## double 1.231200e+02 .long 1079953326 For example, note that the comment is on the same line as the .long. Woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94166 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e035d5fccfddc47297de0da99ee914d9a2bd214 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 07:06:15 2010 +0000 pass "-fasm-verbose" into createAsmStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94165 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac91dc93e5e0703418e786d0b53dafcfc588b600 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 06:49:46 2010 +0000 Stop building RTTI information for *most* llvm libraries. Notable missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 224823eaea4e1907b9a12bc9323d3a479aca3b1d Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 06:29:25 2010 +0000 give PassNameParser a home. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94162 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22c5b90647c0f6db016708b0c818beb032926b95 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 06:25:37 2010 +0000 add an out-of-line virtual method to CmpInst to give it a home. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94161 91177308-0d34-0410-b5e6-96231b3b80d8 commit 660a65c9b195dabacec7c583743ab48bc7fdd7cf Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 06:03:06 2010 +0000 elimiante the dynamic_cast's from opt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94160 91177308-0d34-0410-b5e6-96231b3b80d8 commit 228d59aef55e700c353f51d4d2e087b9f659a8ae Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 05:54:03 2010 +0000 simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94159 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bc3c3b1cfae9e7dbc2bb023f0ff2b42f814e061 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 05:52:51 2010 +0000 drop the pass name from the output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94158 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f6a77614269d316aecbd92759ace12f5f1cf8a4 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 05:46:59 2010 +0000 eliminate dynamic_cast from this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94157 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8745ad5250e7744a3e2ea5962522c8d4dff1828d Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 05:37:10 2010 +0000 eliminate a bunch more unneeded dynamic_cast's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94156 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3205d176601749b3b9823acdf7584f2c165aee22 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 05:24:46 2010 +0000 eliminate a bunch of dynamic_cast's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94155 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1efffa891157a377aa759adb556d32818dc1d8a8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 04:55:08 2010 +0000 eliminate a bunch of dynamic_cast's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94154 91177308-0d34-0410-b5e6-96231b3b80d8 commit c766713d70923e886ae2dde5840c83cb3f6fa74b Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 22 03:36:51 2010 +0000 Teach pre-regalloc scheduler to schedule loads from nearby addresses. It may improve cache locality. This is controlled by -cluster-loads for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94148 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea0e0c0e1cfa23c6ed276798c7e6c98d00497cca Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 22 03:34:51 2010 +0000 Add two target hooks to determine whether two loads are near and should be scheduled together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5444b9fe0858807f206081cab447f46d25a36e13 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 22 03:33:01 2010 +0000 Add DenseMapInfo for signed long long. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94146 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9539e24981a586ee732e16d2710dd7bf4be1a54 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 22 02:04:33 2010 +0000 CMake: Add MCParser directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94135 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54a7255c0b8f3703008ce88acf09afec3c801008 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Jan 22 02:04:28 2010 +0000 lit: Separate test suite from test name with spaces, to make it easier to cut and paste. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94134 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa52e910d9b9ffff0d86f7183cccad9d74330991 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 01:58:44 2010 +0000 add new file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d0e32c35c92fb073da29ec06f5b54ffd6bb30c7 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 01:58:08 2010 +0000 move some files out of the llvm-mc tool into the MCParser library so other tools can link it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94131 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1cd87d00fbb71385ddd4d2da812723ad9c6b5ed Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 01:55:10 2010 +0000 forgot to svn add these, doh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 808bf3bd80522a075959bea601c9e9ae06f72035 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 01:44:57 2010 +0000 create a new MCParser library and move some stuff into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94129 91177308-0d34-0410-b5e6-96231b3b80d8 commit c28a9238761facfb1a2519da236192fd316f7700 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 01:17:12 2010 +0000 remove some confused code that used strtoull git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94128 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cea4f37aca55c4a1d6e24349d96ce488fca895f Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 01:10:40 2010 +0000 allow registering target lexers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94127 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8dbec783f4a5d12c6f883b8379e3c48685d2320f Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 22 00:58:59 2010 +0000 stub out a new TargetAsmLexer interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94125 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa9de114313d06a89d317306683589ba43922d52 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 22 00:46:49 2010 +0000 Revert LoopStrengthReduce.cpp to pre-r94061 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94123 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e4d5f45ee8b2a4602b3ea0fd5b133932eea4ae4 Author: Ted Kremenek <kremenek@apple.com> Date: Fri Jan 22 00:28:27 2010 +0000 Store flags in bitfields instead of masking them into the pointer for the left child. This leads to some nice conceptually cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e634910a9e7d494064057658ca2847e629d26a7 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jan 22 00:08:13 2010 +0000 Fix PR5694. The CMN instructions set the flags differently from CMP, so they cannot be directly interchanged for comparisons against negated values. Disable the CMN instructions for the time being. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94119 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7205efd48b24a4d02771fd0e1f07c78ee6461163 Author: Ted Kremenek <kremenek@apple.com> Date: Thu Jan 21 23:42:57 2010 +0000 Tidy up assertion syntax. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94117 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53bdfacf7beb2906e3dbecbe7d5f81f4c9f5338b Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 21 23:09:12 2010 +0000 No need to look through bitcasts for DbgInfoIntrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94114 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf4f0e59d781441ebf28d7bc8b7b0eac8a23cf99 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 21 23:08:36 2010 +0000 DbgInfoIntrinsic no longer appear in an instruction's use list git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94113 91177308-0d34-0410-b5e6-96231b3b80d8 commit e498e711f16d8456d555e9b15bea0e02ed57f7f4 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 21 23:07:15 2010 +0000 No need to look through bitcasts for DbgInfoIntrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94112 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45846ac009ca010097d85e2c548d97a6a70036e0 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 21 23:05:53 2010 +0000 DbgInfoIntrinsics no longer appear in an instruction's use list; so clean up looking for them in use iterations and remove OnlyUsedByDbgInfoIntrinsics() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94111 91177308-0d34-0410-b5e6-96231b3b80d8 commit c95dce9668375cf950162fee2a64eb20ce297f77 Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 23:01:22 2010 +0000 When inserting expressions for post-increment users which contain loop-variant components, adds must be inserted after the increment. Keep track of the increment position for this case, and insert these adds in the correct location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94110 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06efd96affdf537dff3f5991aad8204ffb2d8d1d Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 22:46:32 2010 +0000 Include IVUsers information in LSR's debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94108 91177308-0d34-0410-b5e6-96231b3b80d8 commit f874582d8f5e44e304c58f824c61026f751bb4d1 Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 22:42:49 2010 +0000 Prune the search for candidate formulae if the number of register operands exceeds the number of registers used in the initial solution, as that wouldn't lead to a profitable solution anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94107 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59caf2b6453440d6b553b9a11be808608e41cd61 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jan 21 21:44:43 2010 +0000 Trim unneeded includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94105 91177308-0d34-0410-b5e6-96231b3b80d8 commit 349291bfb714d8b1b75fd9c711995f990664b008 Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 21:31:09 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c21610ada2f50338f60a4c311b61cabaacdda9a Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 21:29:25 2010 +0000 It turns out that this #include is needed because otherwise ValueMapper.cpp ends up calling an out of line __ZNK4llvm12PATypeHolder3getEv, which is a template and llvm-config determines arbitrarily to use the one in libipo. This sucks, but keeping the #include is a reasonable workaround. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94103 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e69ba2ec15421ddd7a9d18985bf32a087981520 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 21:20:51 2010 +0000 unbreak the build, apparently without this transformutils starts depending on libipa? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94102 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5be1d63a362791581a0c1c02bdfb85664b71f93b Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 21:05:54 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d62ac57a4a36d8a3208ee6a7efd02a2a6114b16 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 21:01:47 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94100 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68abe9242583b94f39e6dd55f595ce87f3172f57 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 20:43:39 2010 +0000 remove dead .erase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94098 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce178f1cad0e27378f696f07bec6c2ad9727ba08 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jan 21 20:10:22 2010 +0000 back this out for now. Growing Function is not good. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b80d3e6abe702b0570db64706220d71172a69fb Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 20:01:04 2010 +0000 testcase for r94095 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94096 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ca22403c61266e8f3039493f9e649aa01f3d74c Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 19:58:19 2010 +0000 fix a problem with a missing _, testcase pending. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94095 91177308-0d34-0410-b5e6-96231b3b80d8 commit 399f540a943ada4219992eb5fbed256026ffc706 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 21 19:33:59 2010 +0000 Don't need to include IntrinsicInst.h any more git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94092 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b2e3d7c7fa479da9ad73c9cd5a6c891a68ca65e Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 21 19:26:20 2010 +0000 No need to map NULL operands of metadata git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09e5cd4c6046361c494a73c048b94f1238f49672 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Jan 21 16:09:59 2010 +0000 Add a simple script for getting a version tag from a svn/git-svn/git repository. Feel free to add support for your favorite VCS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94077 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1b797ca4dfdd5e70f8815092a7abe8c872c786a Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jan 21 15:40:14 2010 +0000 struct/class mismatch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94075 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6ce7fcc5c5c28af35a89c9c1cfda56649e5a990 Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 10:15:06 2010 +0000 Make the parser include the lower level error message in its own error message, to be more informative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6decbcedb01ad0a677cda94b7d2e88c07144a06e Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 10:13:27 2010 +0000 Avoid printing a spurious semicolon when there is no filename. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94071 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5eac35732d05e5fde2933456cc74d6453fba0616 Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 10:08:42 2010 +0000 When re-using an existing cast for a user, it's still necessary to call rememberInstruction so that future users of that user will be inserted in the correct position. This fixes the Darwin selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94070 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f89af189aaa7413b37cf34bb6712abdfc6d5c47 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Jan 21 07:03:21 2010 +0000 Fix a crasher trying to fold each element in a comparison between two vectors if one of the vectors didn't have elements (such as undef). Fixes PR 6096. Fix an issue in the constant folder where fcmp (<2 x %ty>, <2 x %ty>) would have <2 x i1> type if constant folding was successful and i1 type if it wasn't. This exposed a related issue in the bitcode reader. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94069 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccedfaf8a570d896c179fcbdf4c76cff9254bab3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 06:11:03 2010 +0000 remove a couple of asserts that use RTTI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94068 91177308-0d34-0410-b5e6-96231b3b80d8 commit f351d251e90ab22adfc8323aca899d880c8d87fc Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 03:51:36 2010 +0000 Run the verifier after LSR, to help catch use-before-def errors before they reach codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2003be1aa5b51b63f438ac33637b161ba97ec1db Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 21 02:09:26 2010 +0000 Re-implement the main strength-reduction portion of LoopStrengthReduction. This new version is much more aggressive about doing "full" reduction in cases where it reduces register pressure, and also more aggressive about rewriting induction variables to count down (or up) to zero when doing so reduces register pressure. It currently uses fairly simplistic algorithms for finding reuse opportunities, but it introduces a new framework allows it to combine multiple strategies at once to form hybrid solutions, instead of doing all full-reduction or all base+index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94061 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0173bf117d7ff7ea00824e62d0457ad646bc7bb Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 21 02:07:07 2010 +0000 eliminate dynamic_cast from the pass manager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a4e8e8647c04d0dcf2b47f527ac7394187a7602 Author: Eric Christopher <echristo@apple.com> Date: Thu Jan 21 01:04:38 2010 +0000 Add strcpy_chk -> strcpy support for "don't know" object size answers. This will update as object size checking gets better information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94059 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea70dd4fcb20d2abf70a8c03157add6b03c0f2ac Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jan 21 00:55:14 2010 +0000 Fix a minor issue in x86 load / store folding table. movups does an unaligned load so it doesn't require 16-byte alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94058 91177308-0d34-0410-b5e6-96231b3b80d8 commit e96029f9f29e697bfccbc8f7bb0fe9426a58df6b Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jan 21 00:43:30 2010 +0000 Make sure that landing pad entries in the EH call site table are in the proper order for SjLj style exception handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94055 91177308-0d34-0410-b5e6-96231b3b80d8 commit df9e5096b6fe734bdcda8e724dd816624e0e6695 Author: Sean Callanan <scallanan@apple.com> Date: Thu Jan 21 00:19:58 2010 +0000 Moved handling of inclusion from the AsmLexer to the AsmParser, breaking AsmLexer's dependence on SourceMgr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94054 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36c6b186829848ef935fc8d6388d77fc6c2bbea8 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 23:30:28 2010 +0000 simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94048 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a9ae98ab368fdd5f7c9c4e2f130d1b2b05f27b6 Author: Sean Callanan <scallanan@apple.com> Date: Wed Jan 20 23:19:55 2010 +0000 Changed the AsmParser to handle error messages itself rather than passing them off to the AsmLexer to handle. This means the AsmLexer no longer requires a SourceMgr to do error handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94047 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0885e7b9b0f6b89af155696c4412afb25f8a56a Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jan 20 23:03:55 2010 +0000 SjLj EH introduces can introduce an additional edge to a landing pad and pad normalization needs to take this into account. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94046 91177308-0d34-0410-b5e6-96231b3b80d8 commit e155f8fbe86c8354938ba7dd3efce0578b99fc29 Author: Sean Callanan <scallanan@apple.com> Date: Wed Jan 20 22:45:23 2010 +0000 Promoted the reference to the SourceMgr from AsmLexer into AsmParser, in preparation for making AsmLexer independent of the SourceMgr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b79aa91db34d6149052b68e0989f22200bf29b1 Author: Sean Callanan <scallanan@apple.com> Date: Wed Jan 20 22:18:24 2010 +0000 Modified MCAsmLexer to return error information upward rather than printing it locally, reducing its dependence on SourceMgr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94041 91177308-0d34-0410-b5e6-96231b3b80d8 commit 501eb0b812c54273e6621d5c3fe67b4c969316a8 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 21:36:48 2010 +0000 eliminate FnStubInfo, using MachineModuleInfoMachO instead. this makes function stub emission determinstic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94033 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0312ac5aef609cc96308d1ad389af8728c58ffe Author: Dale Johannesen <dalej@apple.com> Date: Wed Jan 20 21:36:02 2010 +0000 make findDebugLoc a class method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 658deae41f27c8716ab47c2221238a7e091290ae Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 21:19:44 2010 +0000 split function stub printing out to its own function, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94030 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5432f843148c71db548070383c2a150255bc20bb Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 21:16:14 2010 +0000 eliminate the GVStubs and HiddenGVStubs maps, and use MachineModuleInfoMachO instead. This eliminates two sources of nondeterministic output in the ppc backend, but function stubs are still bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94029 91177308-0d34-0410-b5e6-96231b3b80d8 commit d11d8c1016cd1bcc66fe24bce6123aa12d3ba67b Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 20:48:59 2010 +0000 don't forget to initialize an instance variable! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 610d6cbe506606fc86525c0c30c68842e3723993 Author: David Greene <greened@obbligato.org> Date: Wed Jan 20 20:13:31 2010 +0000 When XDEBUG is enabled, check for SelectionDAG cycles at some key points. This will help us find future problems like the one described in PR6019. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 576e34ee28c04a3321e3693e1e431bbf9688f256 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 20:09:02 2010 +0000 adopt getAdjustedAnalysisPointer in a few more passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94018 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9917244e222bb4758cb5dd033de03763cad6e077 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 19:53:32 2010 +0000 adopt getAdjustedAnalysisPointer in two more passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94017 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73d5e3f43961009732292aadf5987ffac2dee486 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 19:51:46 2010 +0000 adopt getAdjustedAnalysisPointer in BasicCallGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94015 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3ff296dffce1990825ce3503b5532f46f0491d9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 19:26:14 2010 +0000 add some new methods to adjust this pointers. Not used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94013 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0252e0a4f296dee7670281ae95d43ca08e28478 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 19:25:45 2010 +0000 add a helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94012 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8391018c707eecd15793967a7e076eee6eddd40 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 17:57:50 2010 +0000 don't send null pointers through the constantexpr codepath unneededly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94010 91177308-0d34-0410-b5e6-96231b3b80d8 commit 674ee7197741c9fdea7dc81a29969ff5d72aa5a6 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 17:53:51 2010 +0000 reduce redundant are's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d97c90f9d4c28592c4711451f52c502246ca3ef Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jan 20 17:51:28 2010 +0000 Move per-function inline threshold calculation to a method. No functional change except the forgotten test for InlineLimit.getNumOccurrences() == 0 in the CurrentThreshold2 calculation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94007 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf85333d1f13d5b3d702cf865a7075136f76dcad Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 17:50:30 2010 +0000 use getGlobalDirective(), don't hardcode .globl. PR6093 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94006 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff9bf035c5b0e263e1f4da7785141eef996cd427 Author: David Greene <greened@obbligato.org> Date: Wed Jan 20 15:27:19 2010 +0000 Fix an infinite recursion problem. dbgs() should return errs() in release mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94001 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac4b96795f374059d5989eac501d97a983183a0c Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 07:41:15 2010 +0000 eliminate some uses of AsmPrinter::EmitIntXXX git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93996 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3663a67fde068e214d251c0c399c35b045a0a22 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 20 07:37:49 2010 +0000 Backout r93990 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93995 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4f4d33117cd1e581608f0a1a24591d4bcb3173b Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 07:33:29 2010 +0000 inline and radically simplify printDataDirective. It will eventually go completely away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93994 91177308-0d34-0410-b5e6-96231b3b80d8 commit e03a029d04eabab1cc3164c336b34cb3b8004876 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 07:24:05 2010 +0000 emit basic block labels with mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17b54b8fd322deb00afde2bec9443984ad8c7e35 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 07:19:19 2010 +0000 emit integer and fp zeros as (e.g.) .byte 0 instead of .space 1, for tidiness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93992 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1dee1cd01c05f2585b9561f81597af2f03c3a62 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 07:11:32 2010 +0000 signficant cleanups to EmitGlobalConstant (including streamerization of int initializers), change some methods to be static functions, use raw_ostream::write_hex instead of a smallstring dance with APValue::toStringUnsigned(S, 16). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93991 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4e1863f0d65b0efdbf69c607aedfa138c144a3c Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 20 06:57:02 2010 +0000 Fix/strengthen verification of llvm.dbg.declare git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93990 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3792faac8c633d0d89915ea142f9e740675b2d4 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 20 06:56:16 2010 +0000 Switch Elts from vector to SmallVector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93989 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ca943c75e9469b1c2a0439959c354c7c323a6a3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 06:53:37 2010 +0000 switch ConstantFP emission to use MCStreamer, significantly simplifying the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93988 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a6317d5dcbd14e2c7b5001df315bd930d480244 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 06:45:39 2010 +0000 make mcasmstreamer handle expanding 8 byte integer constants to 4-byte constants if .quad isn't supported. Switch a bunch of methods used by the dwarf writer to use OutStreamer.EmitIntValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93987 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15fbb193b82579b419a06f4d86b8c0f08a086182 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 06:39:07 2010 +0000 give createAsmStreamer an 'isLittleEndian' argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93986 91177308-0d34-0410-b5e6-96231b3b80d8 commit 996551e1439e0a0e34c022826ccd8f87b2b5b9e2 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 20 06:34:14 2010 +0000 revert 93934, removing the MCAsmInfo endianness bit. I can't stomache MCAsmInfo having this, and I found a better solution to this layering issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84b83d85f7e1b7ef91558699bee248afe19e80a2 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 20 06:22:33 2010 +0000 Fix if/else brackets; getFunctionForValue() is to be called for non-metadata values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93984 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bacf0a37188b473012e23bf916dca97727584df Author: Chandler Carruth <chandlerc@gmail.com> Date: Wed Jan 20 06:01:02 2010 +0000 Fix the conditions to unambiguously show the logic they represent. This is the logic enforced in the test case as well, so hopefully it is correct. Please review Victor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93980 91177308-0d34-0410-b5e6-96231b3b80d8 commit e419cf483658b209342b05b465819759004ef7dc Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 20 05:49:59 2010 +0000 Map operands of all function-local metadata, not just metadata passed to llvm.dbg.declare intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93979 91177308-0d34-0410-b5e6-96231b3b80d8 commit b671414043b6a956cc23051ef13ba48b86d8ae5a Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 20 05:44:11 2010 +0000 Avoid unnecessary Elts array git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93978 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10e291fa4a937d83b23f7f5a293e1ff76e9f1961 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 20 04:45:57 2010 +0000 Refactor common parts of MDNode::getFunction() and assertLocalFunction() into getFunctionForValue() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 475a3f29b6e1497b3a413506c1a5911312ccb0d6 Author: Devang Patel <dpatel@apple.com> Date: Wed Jan 20 02:05:23 2010 +0000 If a instruction belongs to another function (and not current function) as per debug info attached with the instruction then ignore the dangling lexical scope of this instruction. Such scopes are unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93967 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f878d30358199527a32ee39043cc5cee162dc7b Author: David Greene <greened@obbligato.org> Date: Wed Jan 20 00:59:23 2010 +0000 Add some asserts to check SelectionDAG problems earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93960 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf5ecb9ec5f838a6a720894b13584e90c238d2cf Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Jan 20 00:43:07 2010 +0000 For 'install-clang' target, also traverse tools/clang/lib/Runtime. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93958 91177308-0d34-0410-b5e6-96231b3b80d8 commit 075532b7273ecaf827fca3e1683c9c14831af19a Author: Dale Johannesen <dalej@apple.com> Date: Wed Jan 20 00:19:24 2010 +0000 Move findDebugLoc somewhere more central. Fix more cases where debug declarations affect debug line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7271e860285ff2a5f7b111f4ba55cc5426837a28 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 19 23:30:49 2010 +0000 Fold (add x, shl(0 - y, n)) -> sub(x, shl(y, n)), to simplify some code that SCEVExpander can produce when running on behalf of LSR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93949 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc4aaeb19b543b2582c14e621da711a90f968956 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jan 19 22:56:26 2010 +0000 Wrap some comments to 80 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93940 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39f55232c932dd44ce3807a6d1967c98fae1970e Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 19 22:53:50 2010 +0000 Make SCEVAddRecExpr's getType return a pointer type when the add has a pointer member. This helps reduce unnecessary bitcasting and uglygeps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93939 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5c5cf3c26fb368e1f28b4f8f6c06ab401058886 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jan 19 22:50:05 2010 +0000 Fix a case where debug_value was perturbing the line number info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93937 91177308-0d34-0410-b5e6-96231b3b80d8 commit 147d8bd28abfcc314802fd9123b09236ba95b62b Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 19 22:45:06 2010 +0000 When doing address-mode sinking, expand the base register first, rather than the scaled register. This makes it more likely that subsequent AddrModeMatcher queries will match the new address the same way as the old, instead of accidentally matching what had been the base register as the new scaled register, and then failing to match the scaled register. This fixes some problems with address-mode sinking multiple muls into a block, which will be a lot more common with some upcoming LoopStrengthReduction changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93935 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1644edcfb4b34a1fafc20e708820c5544cf24f4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 22:42:28 2010 +0000 give MCAsmInfo a 'has little endian' bit. This is unfortunate, but I really want clients of the streamer to be able to say "emit this 64-bit integer" and have it get broken down right by the streamer. I may change this in the future, we'll see how it works out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93934 91177308-0d34-0410-b5e6-96231b3b80d8 commit d86a19eac282c33ef3dd894a7286ef22a32ececb Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 19 22:27:22 2010 +0000 Add a comment and tidy up some whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93932 91177308-0d34-0410-b5e6-96231b3b80d8 commit da9eea0223433c3c7c1d5995888b04fca0d3151f Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 19 22:26:02 2010 +0000 Fix a typo and an 80-column violation in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93931 91177308-0d34-0410-b5e6-96231b3b80d8 commit c56417c271387318cb2d6cd23da4e3483d1109c5 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 19 22:21:27 2010 +0000 Give ScalarEvolution access to the DominatorTree. It'll need this to make more intellegent AddRec folding decisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93930 91177308-0d34-0410-b5e6-96231b3b80d8 commit f304d1a34c6af7a35230cbaa3cabea35229810a9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 22:16:33 2010 +0000 simplify the rest of fp constant printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93929 91177308-0d34-0410-b5e6-96231b3b80d8 commit 132bf14002c41c445a57af51652adec7d7ff7e04 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 22:11:05 2010 +0000 simplify the code for printing x86 long double, don't do work for -fverbose-asm unless it's on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93926 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77abfc1e6ce83fc23427e1b0f07a97bf3d9a417a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jan 19 22:08:34 2010 +0000 Identify predicate and optional-def operands when printing machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93925 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed6d8c436e06abdd9b9993c32e21876ef0ddb648 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 22:03:38 2010 +0000 add a new EmitIntValue method that MCStreamer impls can optionally define and that clients can use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8149786c50b3532bf702b45ace4b2388a1341d41 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 19 21:55:32 2010 +0000 Add a new helper function to IVUsers for returning the "canonical" form of an expression. This is the expression without the post-increment adjustment made, which is useful in determining which registers will be used by the expansion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93921 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68867702f7a6049e8b8a8a6b193424a3c0505aaf Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 19 21:51:51 2010 +0000 Add nounwinds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b51ee89fee658d8ef29b8060e15767fc67455b6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 21:51:22 2010 +0000 eliminate AsmPrinter::EmitZeros: just use MCStreamer directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93918 91177308-0d34-0410-b5e6-96231b3b80d8 commit bda38003386beaad6a24d5b821738a0bd46f64b4 Author: Sean Callanan <scallanan@apple.com> Date: Tue Jan 19 21:44:56 2010 +0000 Promoted the getTok() method to MCAsmParser so that the two token accessor functions are declared consistently. Modified the clients of MCAsmParser to reflect this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93916 91177308-0d34-0410-b5e6-96231b3b80d8 commit dddb79d966889b268f642461bbb932c9f2c822cf Author: Xerxes Ranby <xerxes@zafena.se> Date: Tue Jan 19 21:26:05 2010 +0000 Stubs for getHostCPUFeatures API. This implements part of PR5389. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93913 91177308-0d34-0410-b5e6-96231b3b80d8 commit e044e95d47bc670e115a814ebe80cafbaa783cff Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jan 19 21:08:28 2010 +0000 Remove predicates when changing an add into an unpredicable mov. Since the mov is executed unconditionally, make sure that the add didn't have any predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93909 91177308-0d34-0410-b5e6-96231b3b80d8 commit 632fa82c8d0060a9049ee0ec5d6badabbe7ebaaa Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jan 19 20:59:04 2010 +0000 Update CMake list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93905 91177308-0d34-0410-b5e6-96231b3b80d8 commit 396e20751d87b0194dcc9e4b947a1575338d25f7 Author: David Greene <greened@obbligato.org> Date: Tue Jan 19 20:37:34 2010 +0000 Add some new debugging APIs to print out "raw" SelectionDAGs to make understanding CannotYTetSelect and other errors easier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93901 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bb069114798422089019fb5ca25b462cfc0d5fd Author: Sean Callanan <scallanan@apple.com> Date: Tue Jan 19 20:27:46 2010 +0000 Propagated the parser-side Lex function's declaration to MCAsmParser, and changed the target-specific AsmParsers to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93900 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7d4aa347f157579aa9a192e68506850d9780d4c Author: Sean Callanan <scallanan@apple.com> Date: Tue Jan 19 20:22:31 2010 +0000 Added a Lex function to the AsmParser, to allow handling of include directives to occur within the parser itself. This will break the lexer's dependency on a SourceMgr as input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93899 91177308-0d34-0410-b5e6-96231b3b80d8 commit db5b0d575b7cb1f776fbcf4a766bf146a9f7627f Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jan 19 19:57:07 2010 +0000 Fix a bug introduced on r92564 where the name "Node" was already in use by Mips. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93897 91177308-0d34-0410-b5e6-96231b3b80d8 commit cafc2da44c01a7d1a766451bd55a0f6d9cebdf35 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 19:46:13 2010 +0000 Generalize mcasmstreamer data emission APIs to take an address space identifier. There is no way to work around it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93896 91177308-0d34-0410-b5e6-96231b3b80d8 commit c19dbe068d8b59c298a4d835f0d7c5ada6bd2954 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 19 19:45:51 2010 +0000 Do not extend extension results beyond the use of a PHI instruction at the start of a use block. A PHI use is expected to kill its source values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93895 91177308-0d34-0410-b5e6-96231b3b80d8 commit a62bf10496e55c0a70ddc0c6b21502e34d794333 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 19:10:44 2010 +0000 refactor code to be static functions instead of methods on AsmPrinter. This fixes some bugs handling address spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93891 91177308-0d34-0410-b5e6-96231b3b80d8 commit b07e5f66f20e04da9f41e3ab172c35a5167dd525 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 18:58:52 2010 +0000 mcstreamerize AsmPrinter::EmitZeros, at least when emitting to the default address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93890 91177308-0d34-0410-b5e6-96231b3b80d8 commit 689f7609fc35781483edf60e5be16030abc931b3 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 18:52:28 2010 +0000 add an MCAsmStreamer::EmitFill specialization of EmitFill that emits one directive instead of N. Not doing this would be a significant regression on the # bytes generated by .fill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93889 91177308-0d34-0410-b5e6-96231b3b80d8 commit dea52e11c0b7f330a62b6cd9964abff399e97ded Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 18:45:47 2010 +0000 add a "MCStreamer::EmitFill" method, and move the default implementation (which just iteratively emits bytes) to MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93888 91177308-0d34-0410-b5e6-96231b3b80d8 commit 264871c452f0b74abbce18f24f542d0d3d468187 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 18:37:01 2010 +0000 remove MAI::ZeroDirectiveSuffix, which is only used by MASM, which we don't support anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93886 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b139e487e2130ae43ccff63246fad86d23df9c0 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Jan 19 18:31:11 2010 +0000 For aligned load/store instructions, it's only required to know whether a function can support dynamic stack realignment. That's a much easier question to answer at instruction selection stage than whether the function actually will have dynamic alignment prologue. This allows the removal of the stack alignment heuristic pass, and improves code quality for cases where the heuristic would result in dynamic alignment code being generated when it was not strictly necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93885 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21782ed354253d6780e6caa48d6e8bc0f1dbe4f0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 18:16:19 2010 +0000 optimize ~(~X >>s Y) --> (X >>s Y), patch by Edmund Grimley Evans! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93884 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01dfd518ef5a3c0680a6c91283371ced13ff8525 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jan 19 17:00:43 2010 +0000 On pic function calls some arguments were marked dead and the instruction to load those args removed. This fix PR6071 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93880 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1ecb26fd9ca637d5154f07c2a5692652f3b69b6 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jan 19 16:42:10 2010 +0000 The change in r90189 adds a link in a directory outside the iPhone platform directory when building the llvmCore_Embedded project. Fix this by putting the iPhone platform directory into DEST_DIR instead of DEST_ROOT. I also noticed what appears to be an unintentional use of DEVELOPER_BIN instead of DEVELOPER_DIR, so I fixed that and changed to use DEVELOPER_DIR in some places that were hardcoded to "Developer". Finally, the other changes here allowed some refactoring and simplification, which I have done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93878 91177308-0d34-0410-b5e6-96231b3b80d8 commit d93965f3a98c09263a9983d28b91c0c5a06a9b05 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jan 19 12:53:04 2010 +0000 load f64 +0.0 in a cleaner way. This fix part of PR5445 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37e6aad4b09529afa22b87248909da7b43d7a8d0 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Jan 19 12:37:35 2010 +0000 Fix return registers for mips eabi git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93875 91177308-0d34-0410-b5e6-96231b3b80d8 commit dcb6f254d32e9c8dc2a44654d70177334896583d Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 06:41:24 2010 +0000 mcstreamer'ize the rest of EmitGlobalVariable that is used on darwin. The next big piece to get global variables streamerized is EmitGlobalConstant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93870 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb8331e45b56034b1f29be2e90e7a980525d8e32 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 06:39:54 2010 +0000 don't let asm-verbose break the check-next lines in these tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ee4950d6fd5bf796878193a8c7a6e2b80ae71e4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 06:25:51 2010 +0000 stop using the .lcomm pseudoop on darwin, instead, directly use the .zerofill directive. Streamerize its generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93868 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc7b1053d54d819adea030bea5445aa685ed2c1c Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 06:22:22 2010 +0000 fix parsing .comm directives on systems which do not represent alignments as a power of 2. This fixes MC/AsmParser/directive_comm.s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93867 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30301d70964c8da1d1c1686b2c42ae70f51f752b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 06:21:23 2010 +0000 only darwin has zerofill git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93866 91177308-0d34-0410-b5e6-96231b3b80d8 commit c412fbf41da6e79306dda0cf5a2f445f841389bd Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 19 06:19:05 2010 +0000 MDNodes are not expected to disappear or replaced by another MDNode, so there is no need to pay the cost of WeakVH and ValueMaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93865 91177308-0d34-0410-b5e6-96231b3b80d8 commit be5475c17deca20f05263e9d6e33c700a835bc4e Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 19 06:09:04 2010 +0000 Avoid including DebugInfo.h in AsmPrinter.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93864 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c87acb187e34b2bcd4db357de44d321417b1147 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 06:08:15 2010 +0000 zap the ARM version of PrintGlobalVariable, which I missed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93863 91177308-0d34-0410-b5e6-96231b3b80d8 commit 370ee59d0a37bc4cb159dead5c391fe79e85628c Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 06:01:04 2010 +0000 mc'ize some stuff, don't comment out .lcomm directive in -fverbose-asm mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93860 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9934f0312e4caa9a7366d70b7f9dcf624101ff7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 05:51:42 2010 +0000 factor this code better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42a203b73bbc908258a8c2cee070559c300f3bfe Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 05:38:33 2010 +0000 Now that we have everything nicely factored (e.g. asmprinter is not doing global variable classification anymore) and hookized, sink almost all target targets global variable emission code into AsmPrinter and out of each target. Some notes: 1. PIC16 does completely custom and crazy stuff, so it is not changed. 2. XCore has some custom handling for extra directives. I'll look at it next. 3. This switches linux/ppc to use .globl instead of .global. If .globl is actually wrong, let me know and I'll fix it. 4. This makes linux/ppc get a lot of random cases right which were obviously wrong before, it is probably now a bit healthier. 5. Blackfin will probably start getting .comm and other things that it didn't before. If this is undesirable, it should explicitly opt out of these things by clearing the relevant fields of MCAsmInfo. This leads to a nice diffstat: 14 files changed, 127 insertions(+), 830 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9408d24e1a589d705bda5a8ced414809ac0a27b6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 05:25:38 2010 +0000 use %object like other elf targets, gas accepts either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c7b3b869fb6912f28ebbf3e939cf1fa6f6e6da0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 05:23:59 2010 +0000 simplify the mips target to print .size and .type for c strings just like all other elf targets. Bruno, if this isn't right, please let me know + why :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93856 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6359ed28f836123afe82d7d276a4a173bb638587 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 05:08:13 2010 +0000 hookize the cygwin ".linkonce" directive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93855 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fe06165d0b7b91b466ef0faced7bd91a03ad44f Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 04:59:55 2010 +0000 more cleanups. Emit the .local directive even on cygwin/mingw. I'm not sure that this is correct, but it causes no test failures, and just emitting a .comm without protecting its linkage somehow is surely not right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a5510cf167f6288af982a43eb172af46e93e48c Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 04:53:18 2010 +0000 some cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93853 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9b123031148e07082e9ad2393b5657bf3ba2483 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 04:48:20 2010 +0000 add a bool for whether .lcomm takes an alignment instead of basing this on "isdarwin". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a21601ea57eb29fe58399ca68e90d7710f08292 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 04:39:15 2010 +0000 hoist handling of external globals and special globals up to common code. This makes a similar code dead in all the other targets, I'll clean it up in a bit. This also moves handling of lcomm up before acquisition of a section, since lcomm never needs a section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 874fdbc7755aa6634c126e3f8027dabc6617f0f3 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 04:34:02 2010 +0000 move production of .reference directives for static ctor/dtor list on darwin into common code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93849 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf679f8f253409980d143ffe3f8dac1b541f12aa Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jan 19 04:32:48 2010 +0000 Fix a crash in scalarrepl for memcpy/memmove where the source and destination are the same. I had already fixed a similar problem where the source and destination were different bitcasts derived from the same alloca, but the previous fix still did not handle the case where both operands are exactly the same value. Radar 7552893. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93848 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7337615ab96c5bce72b08012ebd4dbe95f316811 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 04:21:20 2010 +0000 use BSSLocal classifier to identify 'lcomm' data instead of duplicating the logic (differently) in lots of different targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93847 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1ef66c3db822b58d683ec34f1d460838fb3edec Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 04:15:51 2010 +0000 make TLOF subclassify BSS based on linkage type into private, external and everything else (weak). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1eef2e76c6a89407e6f6aa92986019cd86824ea9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 03:13:44 2010 +0000 now that elf weak bss symbols are handled correctly, simplify a bunch of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a717abc755b03e1b910512fb956784f56df853e Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 03:06:01 2010 +0000 fix a significant difference between llvm and gcc on ELF systems: GCC would put weak zero initialized mutable data in the .bss section, we would put it into a crasy '.gnu.linkonce.b.test,"aw",@nobits' section. Fixing this will allow simplifications next up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93844 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ca96cb1376934774c5f69e6a25affbc8d45261e Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 02:48:26 2010 +0000 introduce a section kind for common linkage. Use this to slightly simplify and commonize some of the asmprinter logic for globals. This also avoids printing the MCSection for .zerofill, which broke the llvm-gcc build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93843 91177308-0d34-0410-b5e6-96231b3b80d8 commit 174cddac3e5998c65b10a56e41fef76b51b2bb6a Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 02:46:56 2010 +0000 there is no need to emit a .section above .comm on linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93842 91177308-0d34-0410-b5e6-96231b3b80d8 commit b604cae660fe5b0750188a59e27b93d79d0d5d76 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jan 19 02:44:01 2010 +0000 Even more explanation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93841 91177308-0d34-0410-b5e6-96231b3b80d8 commit dcebc08f0cb3ca07bceeeba153c403600cb6c32c Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 02:13:06 2010 +0000 change an accessor to a predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93839 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b3f8751bf270cc0e292aea4a8bc1343964d8312 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 02:09:44 2010 +0000 Cleanup handling of .zerofill on darwin: 1. TargetLoweringObjectFileMachO should decide if something goes in zerofill instead of having every target do it. 2. TargetLoweringObjectFileMachO should assign said symbols to the right MCSection, the asmprinters should just emit to the right section. 3. Since all zerofill stuff goes through mcstreamer anymore, MAI can have a bool "haszerofill" instead of having the textual directive to emit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93838 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab150043d7947faa967d367679f2738d64708167 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Jan 19 01:32:44 2010 +0000 Remove this fixme, looking at the linker source, all targets pad to 4 bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d0f0887e332f44c7f7341fbe473b0ed3bb0537b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 19 01:28:09 2010 +0000 remove extraneous ; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93833 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13026cf2cbaddc405f8b34ce847cdb2f24f2a7ca Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 19 01:26:02 2010 +0000 Revert accident check-in from r93165. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93832 91177308-0d34-0410-b5e6-96231b3b80d8 commit 288d2eeab618759992858e9a72a8b90cbd3745f8 Author: Eric Christopher <echristo@apple.com> Date: Tue Jan 19 01:20:15 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93831 91177308-0d34-0410-b5e6-96231b3b80d8 commit 410c2a5c12cdaaa9686da1db9a64d0b7aeff924d Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 19 00:44:15 2010 +0000 Fix r93758. Use isel patterns instead of c++ selection code to select rbit and make sure we pick different instructions for ARM vs. Thumb2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93829 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94a1c602a2b12485a851ad283ec7c14375334320 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 19 00:35:20 2010 +0000 Test case for r93758. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fa890d694455ec4718633a1fa732953b946fca6 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jan 19 00:12:05 2010 +0000 Reverting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93819 91177308-0d34-0410-b5e6-96231b3b80d8 commit d03ad18a7004198ff00b6b33b618cf3493851a11 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jan 19 00:10:52 2010 +0000 Revert 93811 per request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93818 91177308-0d34-0410-b5e6-96231b3b80d8 commit f482719e48ad43d7b2cdb395111f5677caaef940 Author: Dale Johannesen <dalej@apple.com> Date: Mon Jan 18 23:34:55 2010 +0000 Enable code to emit dbg.declare as DEBUG_VALUE comments (fast isel, X86). This doesn't seem to break any functionality, but will introduce cases where -g affects the generated code. I'll be fixing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93811 91177308-0d34-0410-b5e6-96231b3b80d8 commit 041fb126b6b299d7b595d7261528503ecc1ffa31 Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Jan 18 22:55:08 2010 +0000 Add comment that MDNode::getFunction() is not to be used by performance-critical code (currently only used by AsmWriter) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93802 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14f91a3da3c835ef8b57b25c0936e405a19b0217 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Jan 18 22:38:31 2010 +0000 Make opt -O3 act more like clang -O3 etc., by making the inlining thresholds match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81718ed416e1564ede7a5d65d299aaf25ea59ef8 Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Jan 18 22:36:59 2010 +0000 Add some potentially interesting transformations to README. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93797 91177308-0d34-0410-b5e6-96231b3b80d8 commit 326cb3536de8fc6c3c3ad19d73d6e4e80e2f6bae Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jan 18 22:36:35 2010 +0000 - Add getLSDAEncoding to the PowerPC backend. - Greatly improve the comments to the getLSDAEncoding method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cd1ffa32f2cb6ce51447804807d6e086e607a49 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 22:27:43 2010 +0000 make llvm-config more portable to windows versions of perl, patch by Michael Beck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93793 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd16da9a692dee7befbfb1699abe85f9cf7ac161 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 22:19:16 2010 +0000 my instcombine transformations to make extension elimination more aggressive changed the canonical form from sext(trunc(x)) to ashr(lshr(x)), make sure to transform a couple more things into that canonical form, and catch a case where we missed turning zext/shl/ashr into a single sext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b9c5f1875684043ecb65a5bf711ece3699e7897 Author: Sean Callanan <scallanan@apple.com> Date: Mon Jan 18 22:16:54 2010 +0000 Added a newline at the end of SMLoc.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b93f747cf6e8b097776619dbd35b238b9473645 Author: Sean Callanan <scallanan@apple.com> Date: Mon Jan 18 22:11:34 2010 +0000 Changed the comment in the file header for SMLoc to something more accurate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93782 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02aceb027bc0da9bce100366e45df046c0aa826d Author: Eric Christopher <echristo@apple.com> Date: Mon Jan 18 22:11:29 2010 +0000 Have FastISel handle llvm.trap(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52ab36d3758b279fe12cb3010a70a05100fa2b87 Author: Sean Callanan <scallanan@apple.com> Date: Mon Jan 18 22:07:51 2010 +0000 Split SMLoc out in its own header so that it can be used independently of SourceMgr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53b47a5d360d1664c9325cff112c44d37e17fc56 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jan 18 22:01:39 2010 +0000 Minor cleanup for jump table printing. Need a reference, not a pointer, for printing via <<. Otherwise we just print the pointer value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93777 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb7347bbd893104b53eeebbd0c45c85b350ea9f3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 22:00:46 2010 +0000 filecheckize this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93776 91177308-0d34-0410-b5e6-96231b3b80d8 commit e40f06f8a11c74df8868132c920cb77ceb97996a Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 21:58:32 2010 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93775 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7352e5fcb6e842db329423cb9556710877692fbf Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 21:55:43 2010 +0000 remove a redundant test, filecheckize another. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93774 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4027dfeed6f42ef5e66b236d45a1a2e60bdeb56 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jan 18 21:38:44 2010 +0000 Canonicalize -1 - x to ~x. Instcombine does this but apparently there are situations where this pattern will escape the optimizer and / or created by isel. Here is a case that's seen in JavaScriptCore: %t1 = sub i32 0, %a %t2 = add i32 %t1, -1 The dag combiner pattern: ((c1-A)+c2) -> (c1+c2)-A will fold it to -1 - %a. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93773 91177308-0d34-0410-b5e6-96231b3b80d8 commit e07f7e6e5dce1bf367720c0b5bad1c724257e643 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 21:09:05 2010 +0000 update mkpatch, patch by Garrison Venn! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93771 91177308-0d34-0410-b5e6-96231b3b80d8 commit b754fd33c09170de2231747307dcff08d0780a02 Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Jan 18 20:42:09 2010 +0000 Make findDbgDeclare/findDbgGlobalDeclare local static functions; avoid Elts array git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b452d36b62d8e683d725a509d1205fd28266587 Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Jan 18 20:36:54 2010 +0000 Simplify MDNode::getFunction() and assertLocalFunction() by avoiding extra Function* variable and smallptrset since function-local metadata cannot be cyclic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93762 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c2481288f3038e03b91cb9c2bef53781c9b2985 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Jan 18 20:15:56 2010 +0000 The most significant encoding bit of GPR:$src or GPR:$dst was over-specified in the various MOV (register) instructions (16-bit Thumb), including tBRIND (the indirect branch). Instead of '1', it should be specified as '?', because GPR only specifies the register class, which includes both hi-and-lo registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93759 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c57dc1513859a02b984b60e63765104a131ff40 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Jan 18 19:58:49 2010 +0000 Patch by David Conrad: "On ARMv6T2 this turns cttz into rbit, clz instead of the 4 instruction sequence it is now." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93758 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9112229d2d7340819bd23f3d7bdde067b480543 Author: Devang Patel <dpatel@apple.com> Date: Mon Jan 18 19:52:14 2010 +0000 While mapping llvm.dbg.declare intrinsic manually map its operand, if possible, because it points to an alloca instruction through metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93757 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfca7fe1f42122ff72218a20955aaba6e3d50e5e Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 19:50:32 2010 +0000 reject some invalid IR. We already assert and reject this from the .ll parser, but PR6070 wants it in the verifier too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93756 91177308-0d34-0410-b5e6-96231b3b80d8 commit fbc40f52875a6b326f93a2e6814734dd83960cf4 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jan 18 19:47:53 2010 +0000 Add FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93755 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85e7c4f09ab94c69ccd95cd5b17005ed0abce032 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Jan 18 19:36:27 2010 +0000 - Add a comment to the callback indicating that it's *extremely* not a good idea, but unfortunately necessary. - Default to using 4-bytes for the LSDA pointer encoding to agree with the encoded value in the CIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93753 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f7713f9134c3a3834e6498bbf790d5e764a332c Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Jan 18 19:15:57 2010 +0000 Make printing of metadata more robust when function is not found (which is the normal situation for non function-local metadata) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27574da04679e7cb0b4b03a83335da52b4e20a31 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jan 18 17:52:28 2010 +0000 Don't try to build compiler-rt if it happens to be checked out into projects/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93729 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ab3a8fcae6df8adad5e2682fc270969419a6297 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jan 18 14:39:20 2010 +0000 Unnamed symbol index should be >= 1. This was lost during the mangler refactoring. Fixes PR6067. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93724 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f6642009ebcd484a34d92293dbf6db29e679f78 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jan 18 12:40:05 2010 +0000 Fix refacto reported by Nicolas Geoffray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87fa2352aeb07f8e0b269871a80d52355fca4307 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Jan 18 01:24:43 2010 +0000 Emit spaces after commas in Neon register lists. This is more consistent with the rest of the assembly output, is easier to read, and matches the expected output for gcc's Neon tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93703 91177308-0d34-0410-b5e6-96231b3b80d8 commit aba316e220817acfe6fa8c8a044eb24eb50c28b1 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 01:21:08 2010 +0000 switch x86 zerofill emission over to use MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93702 91177308-0d34-0410-b5e6-96231b3b80d8 commit 202c058004e33a3b67fdb29b5cc9ec943a13e5c0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 00:59:24 2010 +0000 Change CurrentFnSym to be a non-const pointer since asmprinter mutates it as it emits code. Switch .globl directives to use OutStreamer instead of doing it textually (in x86) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93700 91177308-0d34-0410-b5e6-96231b3b80d8 commit f875d80e50d72653003c0ddcaeab1d22fb8c3f8e Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 00:37:40 2010 +0000 remove the MAI argument to MCExpr::print and switch overthing to use << when printing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93699 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fef0d73ffadeadf64f07c1eec37def910672263 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 18 00:21:06 2010 +0000 unbreak x86 jump tables with my previous patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93698 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e6929cecb2b335ecfa2a8a03b1999f8b42ba399 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 17 21:43:43 2010 +0000 now that MCSymbol::print doesn't use it's MAI argument, we can remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93695 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5b47594306373fc8575f085c249b78ce1612fcc Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 17 20:11:03 2010 +0000 rename NameNeedsEscaping -> NameNeedsQuoting, eliminate the check for first character which is a digit, mangler would have taken care of this already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ef5bbe350ce2d891504f48f890e479b44ef200b Author: Owen Anderson <resistor@mac.com> Date: Sun Jan 17 19:33:27 2010 +0000 Convert some of the dynamic opcode lookups into static ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41ecf0789b084646955350b929159850d8c523c0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 17 19:32:29 2010 +0000 stop the CBE from using Mangler::appendMangledName, which is a private function, it is mangling types, which don't matter how they are done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d9f5425542ddc1bff3f938072aee616ad5df600 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 17 19:24:35 2010 +0000 fix uninit member, thanks to Benjamin Kramer for identifying the bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93691 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3f46600b6888bbd00b2c8474d3ab655dcd4fa3d Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 17 19:23:46 2010 +0000 Get MCSymbol out of the mangling business, and move all the logic to Mangler. Now MCSymbol just decides whether to slap quotes around a symbol when printing it. This also fixes some weirdness where two MCSymbols could be created for the same symbol, if one needed to be mangled and got mangled to the other one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93690 91177308-0d34-0410-b5e6-96231b3b80d8 commit 142aab7ce398a5c22a49b20e98480afb296a0920 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Jan 17 19:20:45 2010 +0000 Really fix this. I checked that on ARM I get PASS: LLVM::FrontendC/pr5406.c (3463 of 5030) and on X86 I get XFAIL: LLVM::FrontendC/pr5406.c (3465 of 5030 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93689 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12c01c63b773d0c42c9c1c437ff0bc7febe64bc4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 17 19:09:12 2010 +0000 reduce this test and convert to filecheck, hopefully the linux buildbot will tell me something more useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93688 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf219686faea97a3f9ea0b7dbc7553f510e697cf Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 17 18:52:16 2010 +0000 factor this code better how that the string version of getNameWithPrefix takes a twine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bde2eb86ff04d5825d1fa8b09e16f40f34b7af3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 17 18:22:35 2010 +0000 now that mangler is in libtarget, it can use MCAsmInfo instead of clients having to pass various fields from it in. Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93686 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8d62f79e5837e02170076058dcc9e449bf9ecf0 Author: Dan Gohman <gohman@apple.com> Date: Sun Jan 17 17:47:24 2010 +0000 Don't create a (empty) output file, and don't warn about bitcode output to a console, when --analyze is used. Similarly, avoid creating an empty output file when --disable-output is used. Print a warning when the -o option appears with either --analyze or --disable-output, to indicate that the option is being ignored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93685 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac84db634a2bafc0c428590b48a64d1b0f7dad7e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Jan 17 07:46:39 2010 +0000 Switch some functions to take Twines, eliminate uses of StringExtras.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93680 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51f9d45e973650ed6a167b86eda894a38f4d0690 Author: Owen Anderson <resistor@mac.com> Date: Sun Jan 17 06:49:03 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93679 91177308-0d34-0410-b5e6-96231b3b80d8 commit 898b3166e1145f6fe74105640198dce98e4e7aa6 Author: Bob Wilson <bob.wilson@apple.com> Date: Sun Jan 17 06:35:17 2010 +0000 The Neon "vtst" instruction takes a suffix that is the element size alone -- adding an "i" to the suffix, indicating that the elements are integers, is accepted but not part of the standard syntax. This helps us pass a few more of the Neon tests from gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93677 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8babff07481f87f567cecd364bc4577de76e4890 Author: Bob Wilson <bob.wilson@apple.com> Date: Sun Jan 17 05:58:23 2010 +0000 Fix an off-by-one error that caused the chain operand to be dropped from Neon vector load-lane and store-lane instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93673 91177308-0d34-0410-b5e6-96231b3b80d8 commit 918de29db68a1d8d21ea0a34aa1c93ff83b78a19 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Jan 17 05:40:41 2010 +0000 Looks like XFAIL has to list every unsupported arch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93672 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4945cd19c8aabfe0a634f2e78c01144bdcacabe8 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sun Jan 17 04:44:55 2010 +0000 Add test for pr5406 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93671 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7956b93ffdb4b8d827ec25ad0b1d9e18a4e8e1d Author: Nate Begeman <natebegeman@mac.com> Date: Sun Jan 17 03:49:01 2010 +0000 Add a note for the macho streamer and remove a used of the mangler from the soon to be defunct machowriter pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93670 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca4aeb4525609adb322854c713e84848b756d489 Author: Bill Wendling <isanbard@gmail.com> Date: Sun Jan 17 00:21:21 2010 +0000 Reduce fsub-fadd.ll and merge it into fsub-fsub.ll. Rename fsub-fsub.ll to fsub.ll and FileCheckify it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93669 91177308-0d34-0410-b5e6-96231b3b80d8 commit a59a888da6ed949c0c7a6d871ad1d9cf50ebcc79 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Sat Jan 16 23:37:33 2010 +0000 When checking for sret-demotion, it needs to use legal types. When using the return value of an sret-demoted call, it needs to use possibly illegal types that match the declared Type of the callee. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93667 91177308-0d34-0410-b5e6-96231b3b80d8 commit b003b846f9d4c265f61d046f491e3d16702a9c32 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Jan 16 22:23:09 2010 +0000 Update CMake files for Mangler move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93665 91177308-0d34-0410-b5e6-96231b3b80d8 commit a60a217b035888c38661434340b3f5fd4c66767c Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 21:57:06 2010 +0000 move the mangler into libtarget from vmcore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93664 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8847fb8c52aaa40198c601873266891b0e3f8bb Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 21:55:24 2010 +0000 fix a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33959a9e7f61d7249be8fb360bdf0da288cf264b Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 21:35:09 2010 +0000 this doesn't need to suck in Mangler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a0efac16a896559cb18570b0a7b2eae0b6d907d Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 21:34:51 2010 +0000 remove obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93661 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7748a284c5abb09dc68621444926a455eef1a83 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 21:34:01 2010 +0000 bugpoint doesn't need the mangler at all. DisambiguateGlobalSymbols dates to a time when two different LLVM values could have the same name but different types. Simplify it to just assign names to unnamed things and let the core symtab resolve duplicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93660 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8439bce99a19536d04df9260e331a52f15f32491 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 21:25:13 2010 +0000 add a thing to investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93659 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55e28ccff810d226c0c6091f4ae016f6366c4f8e Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 21:20:34 2010 +0000 remove calls to dead methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96a9c1abb4d233ee069596d6760d26b10b6005c9 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 21:08:46 2010 +0000 reapply the mangler gutting patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bf5bf2e7d107419a6fad2a12f40e17c1edee0f3 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 20:56:05 2010 +0000 remove use of getMangledName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93655 91177308-0d34-0410-b5e6-96231b3b80d8 commit c92c100404e8038a18c2c826b218dc429c54da83 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 20:53:11 2010 +0000 unbreak the build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93654 91177308-0d34-0410-b5e6-96231b3b80d8 commit aacc26910ff6cf037d2348cf87e398c74f2c9996 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Sat Jan 16 20:27:59 2010 +0000 Revert 93648. Mangler::getMangledName is used from lto Mangler::setUseQuotes is used in the AsmPrinter Mangler::setSymbolsCanStartWithDigit is used in the AsmPrinter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93652 91177308-0d34-0410-b5e6-96231b3b80d8 commit 348719fcca5acf13888ff1ebc6f39616d53709d4 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 19:08:51 2010 +0000 Mangler::getMangledName is now dead, remove it and all the other stuff in Mangler that is now transitively dead. woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93648 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8ae1059885f503e204afa822e572924c5b6ca76 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 18:50:28 2010 +0000 Change DIEObjectLabel to take an MCSymbol instead of std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93647 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7fb57b07101bd18ed21e66a697f2318cc9276f4 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 18:37:32 2010 +0000 rename GetPrivateGlobalValueSymbolStub -> GetSymbolWithGlobalValueBase, and add an explicit ForcePrivate argument. Switch FunctionEHFrameInfo to be MCSymbol based instead of string based. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bf71129a8dcba34ee552a62c32afc60b777cf4c Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 18:17:26 2010 +0000 eliminate uses of getMangledName from AsmPrinter.cpp, last up is dwarf emission which is going to be more invasive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93645 91177308-0d34-0410-b5e6-96231b3b80d8 commit deb6480e8c0f9957776cd85776697d698b77294b Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 18:12:14 2010 +0000 switch liblto to use the new getNameWithPrefix() method instead of getMangledName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93643 91177308-0d34-0410-b5e6-96231b3b80d8 commit da1fd911d9c7f93fafbcdf0aea3a0ca224dc8338 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 18:06:34 2010 +0000 add an inefficient version of getNameWithPrefix that returns an std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93641 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1680ba80e18f456f4383480e243be9c711b6eae Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Jan 16 16:14:55 2010 +0000 Revive dead assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 271432c7b8cbaf1468f5baa4bda5c49efdec58db Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Jan 16 14:06:58 2010 +0000 Provide magic define on mingw to not generate inline variants of ctyper functions. Otherwise we'll end with random cyclic deps between libraries due to this. Proposed by Gianluigi Tiesi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 827d0a70e1e7981294e37e7cf0478c61bd12916c Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Sat Jan 16 13:38:07 2010 +0000 Fix PR6047 Nodes that had children outside of the post dominator tree (infinite loops) where removed from the post dominator tree. This seems to be wrong. Leave them in the tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93633 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b20c1082305927ea567088e0b401021e0fa4133 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Sat Jan 16 10:56:41 2010 +0000 Create Generic DOTGraphTraits Printer/Viewer Move the DOTGraphTraits dotty printer/viewer templates, that were developed for the dominance tree into their own header file. This will allow reuse in future passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93632 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdd64b676c2c2344e2af4ce8f98aeff067a64b59 Author: Devang Patel <dpatel@apple.com> Date: Sat Jan 16 06:17:40 2010 +0000 No need to use WeakVH here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93631 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b6871fa24c288179594ea68723a5177d71005ea Author: Devang Patel <dpatel@apple.com> Date: Sat Jan 16 06:09:35 2010 +0000 Replace DebugLocTuple with DILocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93630 91177308-0d34-0410-b5e6-96231b3b80d8 commit 203807de50ff570e432a3c7ceb7a3927020b6dc3 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 03:38:27 2010 +0000 fix build failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93628 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae29e280b4cd3d6a58753fc1aee48d2050200c31 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 02:16:09 2010 +0000 remove a couple of actively incorrect uses of getMangledName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fb92f38e45ee2f3a094bea7fea390c074601113 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 02:15:38 2010 +0000 this doesn't need the mangler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e11fda49973e3a35989637c14c541d0bd9ccccf Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 02:09:06 2010 +0000 more string -> sym, getMangledName is now gone from this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93624 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e090cd388e0a7bf61d4edd8005a16da7b9968bd Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 02:00:23 2010 +0000 use symbols instead of strings, eliminating a bunch of getMangledName calls. Add FIXMEs about a bunch of nondeterminism in stub output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93621 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1f1746269d0dd70323ea937cdb8f4b9ba1d7c73 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 01:45:47 2010 +0000 simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93619 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0dfaadaf26e4e12ed13518e00ce5b9cb8833a2e Author: Bill Wendling <isanbard@gmail.com> Date: Sat Jan 16 01:40:55 2010 +0000 Retrying r91337: The CIE says that the LSDA point in the FDE section is an "sdata4". That's fine, but we need it to actually be 4-bytes in the FDE for some platforms. Allow individual platforms to decide for themselves. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7436757d1b33ca7d98cf6033c9a1fe2a69ec9d6a Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 01:40:07 2010 +0000 eliminate uses of mangler and simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93615 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0749eb83aa0bc6dd1dcf8254ec9092ecc1d02a45 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 01:37:14 2010 +0000 fix inverted conditional git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7638c073a6855e6f2dfb741d38400722343a1e0b Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 01:24:10 2010 +0000 CurrentFnName is now dead, remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93612 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2522de6c3522d9fcb675a6e475627d77fb571370 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 01:21:04 2010 +0000 get pic16 off CurrentFnName git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 446261c29a0546ca6cdc24888c57be4b89dc7dc4 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 01:17:26 2010 +0000 remove the string form of printVisibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59f9b8d65347a5879da41ea085ee5e25d0148926 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 01:12:01 2010 +0000 switch more stuff onto MCSymbols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93608 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89ea3fae1f8c21940ddc558ee3ce452bdbc27800 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Jan 16 01:06:58 2010 +0000 Temporarily revert r93581. It was causing failures in the ExecutionEngine tests on the build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93606 91177308-0d34-0410-b5e6-96231b3b80d8 commit 531f41f143edacea65cb9e180ac4eb7ffd229aaf Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 01:00:27 2010 +0000 eliminate uses of deprecated mangler apis git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93605 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3ae4b3e28a02444d7427dd9ed48bf5ef1a13ce2 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 00:53:22 2010 +0000 this teestcase takes a long time to crash, remove it. If someone cares about this, they should file a bug, it's not doing any good as an xfail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93604 91177308-0d34-0410-b5e6-96231b3b80d8 commit 953d13e493e91783ddb2a67d612304b5f2913f0e Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 00:51:39 2010 +0000 switch X86 target off CurFunctionName and MCIze more. Note that the code wasn't calling DecorateCygMingName when emitting the ".ascii -export" stuff at the end of file for DLLExported functions. I don't know if it should or not, but I'm preserving behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93603 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d1a921e3dce79d2fa285a0e6c47bececcae1047 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jan 16 00:42:25 2010 +0000 Treat indirect branches specially only during pre-regalloc tail duplication, not during the later post-alloc tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93600 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f12db74fae87be9a712ad05de76f82ea2d227f1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 00:32:38 2010 +0000 MCize tis, and make it keep CurrentFnSym up to date with CurrentFnName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93598 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7ba5f6184e332f0c879b766a13189f65ea6fa95 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Jan 16 00:29:50 2010 +0000 Run the pre-register allocation tail duplication pass by default. Remove the -pre-regalloc-taildup command-line option, and add a new -disable-early-taildup option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93597 91177308-0d34-0410-b5e6-96231b3b80d8 commit a00eeba57fc2405aebcb5f60edc85d0a9db5078c Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 00:24:20 2010 +0000 revert the x86 part of my last patch, cygwin is mutating CurrentFnName! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93595 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe6bade0cfbaed4767874df3563cfafa203e24bc Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 16 00:21:18 2010 +0000 MCize a bunch more stuff, eliminating a lot of uses of the mangler and CurrentFnName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93594 91177308-0d34-0410-b5e6-96231b3b80d8 commit d861a34eda1609250704c75bb0e609eae608d0e0 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Jan 16 00:00:20 2010 +0000 Fix llvm_supports_binding for lit, problem noticed by Bob! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f6e93c08eb967c4737e83b616a821556396deec Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 23:56:03 2010 +0000 remove two write-only sets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93590 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6ff5b0eae10c12935517046ac22a19199faf8c1 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 23:55:16 2010 +0000 supplement CurrentFnName with CurrentFnSym, which will eventually replace it. Upgrade Alpha, Blackfin, and part of CellSPU to not use mangler anymore. CellSPU needs more invasive surgery. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93589 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef4314798ee96814fdba9ebd4b21a148926b9738 Author: Erick Tryzelaar <idadesub@users.sourceforge.net> Date: Fri Jan 15 23:49:16 2010 +0000 Fix bug 5992: O'Caml's llvm_create_module was treating the context as a string. Thanks Andy Ray for catching this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93588 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a07ff98622eb583b245a917d77210c7f8781619 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 23:38:51 2010 +0000 add a version of AsmPrinter::printVisibility that takes an MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93587 91177308-0d34-0410-b5e6-96231b3b80d8 commit d373d64307ac024599597ef23045df735ae65d59 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 23:31:55 2010 +0000 use MCSymbol instead of getMangledName() in all cases except one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9eee1f8280772968a4dc5e8404ef86ffddb15a97 Author: Ted Kremenek <kremenek@apple.com> Date: Fri Jan 15 23:29:34 2010 +0000 BumpPtrAllocator: Have the DefaultSlabAllocator created at runtime, not initialization time. This removes one of the 'init_constructors' reported in <rdar://problem/7545356>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93581 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e995e6e8a88e5242a31a8af2438b2a36388ec87 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 15 23:29:29 2010 +0000 Adjust some comments per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93580 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bfba6b89965c5603cc45276f26e58fd1653fd1f Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 15 23:28:49 2010 +0000 Remove unneeded argument per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93579 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f28673e879a011f5215d6a28b40d6367b4ac9e2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 23:26:49 2010 +0000 mc'ize a bunch of symbol stuff, eliminating std::strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93578 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a14ba5c574a8b04b53c7b1a7986c5d10cbca3a7 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 23:25:11 2010 +0000 add another helper git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93577 91177308-0d34-0410-b5e6-96231b3b80d8 commit d16ad064033e18d0d47c241f3f01b3795209016a Author: David Greene <greened@obbligato.org> Date: Fri Jan 15 23:23:41 2010 +0000 Fix PR6019. A load has more than one use if it feeds a bitconvert that has more than one use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93576 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8eb8c2f4e596a1ab722718266a5b6f0717b70c3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 23:18:17 2010 +0000 add a AsmPrinter::GetGlobalValueSymbol and GetExternalSymbolSymbol helper method, use it to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f6532ddb9565c661380bd1527325ad33e6079c7 Author: Ted Kremenek <kremenek@apple.com> Date: Fri Jan 15 22:59:46 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93571 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8fe97053fc985508b8d629993aa9191807a13841 Author: Ted Kremenek <kremenek@apple.com> Date: Fri Jan 15 22:59:11 2010 +0000 Update CMake build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93570 91177308-0d34-0410-b5e6-96231b3b80d8 commit d90b88b011686d6c1b131d0c0ceef3df4642be04 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jan 15 22:27:37 2010 +0000 add testcase for r93564 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93567 91177308-0d34-0410-b5e6-96231b3b80d8 commit c447e6125b58ac553dd9a2d6f6c598026d2af437 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 15 22:22:58 2010 +0000 Add comments to the dump() and dumpr() routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93566 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfdeaf45c4d93fc17429c215e5505208473dc8bc Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 15 22:22:35 2010 +0000 DEBUG_VALUE is now variable sized, as it has a target-dependent memory address representation in it. Restore X86 printing of DEBUG_VALUE; lowering is done in X86RegisterInfo using the normal algorithm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 453ab0706b3198193d3acfef13c34c66ce74d255 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jan 15 22:21:03 2010 +0000 Update Thumb1 storeRegToStackSlot() and loadRegFromStackSlot() to properly handle physical registers R0-R7 when described as having a non-tGPR register class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4168808fe01dfc527475693ffd0c726e980d0250 Author: Dan Gohman <gohman@apple.com> Date: Fri Jan 15 22:18:15 2010 +0000 Fix a typo that Anton noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ba3d00b5879ceb182da72896f29153a00fbe979 Author: Devang Patel <dpatel@apple.com> Date: Fri Jan 15 22:08:16 2010 +0000 Add FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71beb8feb0b2e3c377c5d3b936069d2b199ac769 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jan 15 21:55:02 2010 +0000 Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93560 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73fd9c83e00f7d2bf07e7f75313b681bd3f4d618 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 21:50:19 2010 +0000 move "Metadata Nodes and Metadata Strings" section to the right place in the document and edit it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93559 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbc90a5a01951497d5dc2507c1775d9ff7acbca2 Author: Eric Christopher <echristo@apple.com> Date: Fri Jan 15 21:36:30 2010 +0000 Remove the InlineHint attribute. There are no current or planned users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93558 91177308-0d34-0410-b5e6-96231b3b80d8 commit e15db684275e0506cd64dfc38c985cb6ba8ae9d6 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 21:19:43 2010 +0000 zext / truncate is free on msp430. Inform codegen about this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cc89fdd65c6f81bdfbc6ec96b35c4f6790ccaa8 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 21:19:26 2010 +0000 Reenable tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93555 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca2c00780023f4cd7b54ab2a07d9fc5002a22c8a Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 21:19:05 2010 +0000 Add branch relaxation pass (shamelessly stolen from PPC). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93554 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30a211f4c265bab1c39b2c1a8a9c270daee3023b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 21:18:39 2010 +0000 Provide instruction sizes & encoding. No opcodes yet (but not needed so far). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93553 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b2004f244c39f94b246a79986371dd065b9332a Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 21:18:18 2010 +0000 Enable bit tests and setcc stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93552 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8eb9e38a4cce4233cdffea05aac2d36228fd2190 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 21:18:02 2010 +0000 Add micro-optimization which allows us to fold imm into cmp. This allows us to save 1 word (sometimes) and reduce register pressure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93551 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd786d76b3d1b57877add6c201a7867509eb6758 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 21:17:13 2010 +0000 Add instruction formats & support stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93550 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2b456eaa5f994c054d917816b26a28299da091a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jan 15 20:00:12 2010 +0000 Don't make changes to the MBB in MachineBasicBlock::canFallThrough(). This fixes the regression for -pre-regalloc-taildup in MultiSource/Applications/lambda-0.1.3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93541 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad56f482f17812b99b2e77f54515f8200352a405 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Jan 15 19:59:57 2010 +0000 Simplify logic. Any functional change is unintended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93540 91177308-0d34-0410-b5e6-96231b3b80d8 commit 693b9b9302abeff91f1aceef1306ae86cbbf0bdf Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 19:51:05 2010 +0000 unbreak the build, grr symlinks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 629df86d513070bd13703907edd1c69b72ae8af4 Author: David Greene <greened@obbligato.org> Date: Fri Jan 15 19:43:23 2010 +0000 Add some debug routines to SelectionDAG to dump full DAGs. print/dumpWithDepth allows one to dump a DAG up to N levels deep. dump/printWithFullDepth prints the whole DAG, subject to a depth limit on 100 in the default case (to prevent infinite recursion). Have CannotYetSelect to a dumpWithFullDepth so it is clearer exactly what the non-matching DAG looks like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93538 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee7d12b25df77d42d1bcffd7046332b5dd97a5b5 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 19:39:23 2010 +0000 fix a bug in range information for $42, eliminate an unneeded argument from ParseExpression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93536 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36d2c22a8e1432fd06128d200ba6ccb49e51681b Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 19:33:43 2010 +0000 add range information for mem X86Operand's, now all X86Operand's have range info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 717b29aac15677bb6a4c036d2f9a9bf5940f75b3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 19:28:38 2010 +0000 extend MCAsmParser::ParseExpression and ParseParenExpression to return range information for subexpressions. Use this to provide range info for several new X86Operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93534 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6294228b30eb581423436a809c82918b969294bf Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 19:06:59 2010 +0000 give X86Operand a ctor and start passing SMLoc's into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7707ba938b7fd1fe21dcf1d3b0ac3037f4705c25 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Jan 15 19:04:09 2010 +0000 Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f898ca2753736c7e11c484e42d88d7961419137 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 15 18:58:14 2010 +0000 Revert 93499. After discussion with Chris we agreed FrameIndexes should be lowered, but the same way as everything else (target dependent) rather than in a special hacked way. The lowering needs to be done for eventual purposes of Dwarf generation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27bb05ccb043c00e540ea029c489c1ce9f904100 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 18:51:29 2010 +0000 add range location info for registers, change X86Operand::Create* implementations to avoid copy ctor use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b46007e33ac6a48c13d3fe68f248aec89f821ee Author: Nate Begeman <natebegeman@mac.com> Date: Fri Jan 15 18:51:18 2010 +0000 Hook up llc's -filetype=obj to use MCStreamer if an MCCodeEmitter is available. Remove most of old Mach-O Writer support, it has been replaced by MCMachOStreamer Further refactoring to completely remove MachOWriter and drive the object file writer with the AsmPrinter MCInst/MCSection logic is forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93527 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5e9cd74949a5925c5add6c321e92bc7f22adb29 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 18:44:13 2010 +0000 clean up the memory management of the operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93526 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5983540ba915aece4a3ff729a1c732f3e331e04 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 18:27:19 2010 +0000 refactor ParseRegister to avoid using X86Operand as a temporary datastructure when parsing a mem operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93521 91177308-0d34-0410-b5e6-96231b3b80d8 commit e89193d2cb6afa5faa0e765e9921f2e5f58cce23 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 15 18:08:37 2010 +0000 mention that unwind isn't to be trusted, patch by Dustin Laurence git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93518 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec9c454e07862c7e231a64160742d0d3b920f35d Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Jan 15 17:36:47 2010 +0000 Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be auto-upgraded git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1485c4468ade4217247b73687cc0ff87571a6301 Author: Jay Foad <jay.foad@gmail.com> Date: Fri Jan 15 11:29:26 2010 +0000 Test case for http://llvm.org/PR6028. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93511 91177308-0d34-0410-b5e6-96231b3b80d8 commit b88a798d8d5c36a2f5fac2bccb1fef2a748d43be Author: Jay Foad <jay.foad@gmail.com> Date: Fri Jan 15 08:32:58 2010 +0000 Fix http://llvm.org/PR6028, an assertion failure when an UndefValue of integer type is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46373fd75a2f39a1cb4541496be4606bb7bc8ac1 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Jan 15 06:29:17 2010 +0000 Change pre-regalloc tail duplication to only duplicate indirect branch blocks. The pre-regalloc pass caused some regressions in both compile time and performance of the generated code, and it did not improve performance, except for indirect branches. I also moved the check for single-block loops to speed up the common case when running the taildup pass before reg allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93505 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf85d133908c0e8f5e792bbf09092055f71eed8b Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Jan 15 03:37:48 2010 +0000 Improve llvm.dbg.declare intrinsic by referring directly to the storage in its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93504 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c33762fcb92d4a2c4c87a7f166505dfda5cbbeb Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 02:09:27 2010 +0000 Temporary disable tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93501 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5be890ef254c10c5871deb84651e5b2f90e1dc00 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 15 01:54:55 2010 +0000 Lower FrameIndex operand of DEBUG_VALUE (specially) and print it as a comment on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93499 91177308-0d34-0410-b5e6-96231b3b80d8 commit 425b0c803d727037201f52e9d7fdf223736bd5a6 Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 15 01:50:44 2010 +0000 Remove DEBUG_DECLARE, looks like we don't need it. Also, DEBUG_VALUE has side effects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93498 91177308-0d34-0410-b5e6-96231b3b80d8 commit d00ca94481e1c38a2a5884c87a8da208912c873f Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Jan 15 01:29:49 2010 +0000 Fix cmp emission on msp430: we definitely should turn stuff like "icmp lhs, rhs" into "cmp rhs, lhs". This should fix PR5979. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91d4f32da253072020f37da01eb947fb8bd4321e Author: Devang Patel <dpatel@apple.com> Date: Fri Jan 15 01:12:22 2010 +0000 Do not use AT_specification die for static variables. It confuses gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93494 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0825dec9f18e44ff96408276170622a0e6b242f4 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Jan 15 00:41:53 2010 +0000 Make sure include/llvm/MC/MCParsedAsmOperand.h can be compiled alone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03d20786894c4ab368f97af77e4828dc564fd99b Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jan 15 00:36:15 2010 +0000 fix 80-column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93487 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6372016c7b349b213b895d740e5b7bc0b40fa617 Author: Devang Patel <dpatel@apple.com> Date: Fri Jan 15 00:34:26 2010 +0000 new test case for r93485. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93486 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8ac0913ba36a147c8acb2c1aed76950c3b8d4e7 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jan 15 00:32:47 2010 +0000 Fix 80 column violations and clean up whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93484 91177308-0d34-0410-b5e6-96231b3b80d8 commit acec84b4922b79d3acf92d223df92ed503dca857 Author: Devang Patel <dpatel@apple.com> Date: Fri Jan 15 00:26:31 2010 +0000 Do not emit multiple AT_container_type attributes. We need to find a better way to emit this info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1989192870be588160bb734d82925a9179ed097f Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jan 15 00:22:18 2010 +0000 Name change for consistency. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10ba8daf837c1f7fb7cafb4afed4ad114d37936c Author: Jim Grosbach <grosbach@apple.com> Date: Fri Jan 15 00:18:34 2010 +0000 EmitAtomicCmpSwap() custome inserter needs to delete the MI passed in. EmitAtomicBinary() already does this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58ccfc49fcce74bc3f2cd74fdc84094e74c119d7 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Jan 14 23:15:26 2010 +0000 Teach PPC how to replaceMachineCodeForFunction correctly. (Fixes JITTest.FunctionIsRecompiledAndRelinked.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93475 91177308-0d34-0410-b5e6-96231b3b80d8 commit a95384dff87b4fe65ae259a9a53910241ef69c67 Author: Eric Christopher <echristo@apple.com> Date: Thu Jan 14 23:00:10 2010 +0000 Pad my commit stats by reducing indentation in this now separate commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93473 91177308-0d34-0410-b5e6-96231b3b80d8 commit f408b41c261983d08bf9141af11291fd915ee0a4 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Jan 14 22:42:17 2010 +0000 Added 16-bit Thumb Load/Store immediate instructions with encoding bits so that the disassembler can properly decode Load/Store register/immediate instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93471 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc694ce682d80a8149e088e6b8ee0a7ba0587e70 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 14 22:29:57 2010 +0000 add virtual methods to get the start/end of a MCParsedAsmOperand, the default implementation returns "unknown". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93470 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7a3316c3b862ad5cbd09dec363be38823e831fd Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 14 22:21:20 2010 +0000 Split the TargetAsmParser "ParseInstruction" interface in half: the new ParseInstruction method just parses and returns a list of target operands. A new MatchInstruction interface is used to turn the operand list into an MCInst. This requires new/deleting all the operands, but it also gives targets the ability to use polymorphic operands if they want to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93469 91177308-0d34-0410-b5e6-96231b3b80d8 commit c999433f9c9e584dfbc2df0e7dc5272b43748fdf Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Jan 14 22:09:38 2010 +0000 Add variable-width shifts for MSP430 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3efae6ff7ba5a267b0b36edd33b95628da762665 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Jan 14 22:09:11 2010 +0000 Remove pseudo-MI in custom inserter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93467 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a459b4479c77af81ba823280341fe062c88d60f Author: Dale Johannesen <dalej@apple.com> Date: Thu Jan 14 21:50:17 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93463 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd9185b6346e881c9d2635d5249c4a597433831a Author: Eric Christopher <echristo@apple.com> Date: Thu Jan 14 21:48:00 2010 +0000 Few minor changes that were requested. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93462 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1421e8d59a8d0728fe2fee64c4af58d0010c4d76 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jan 14 21:38:31 2010 +0000 Add comment explaining the necessity of r93456 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93459 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76eeaa86c9e230c1b703a40e56d6befdb7d3fd06 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 14 21:32:45 2010 +0000 prune #includes in TargetAsmParser.h Pass in SMLoc of instr opcode into ParseInstruction. Make AsmToken be a class, not a struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93457 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6bb82e68dccb6fac93d38b546780c139ee42fa4 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Jan 14 21:22:16 2010 +0000 Dwarf EH prepare needs to be run after SjLj prepare. Otherwise, catch info can get misplaced when a selector ends up more than one block removed from the parent invoke(s). This could happen when a landing pad is shared by multiple invokes and is also a target of a normal edge from elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93456 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4fb247eac24e7a5171d800a978be992a65b7a32 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 14 21:21:40 2010 +0000 introduce MCParsedAsmOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ca6088b0692b85eea2b216ccdf121d805fe8e55 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 14 21:20:55 2010 +0000 introduce the MCParsedAsmOperand class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10b2777d3dce6d1a4fa87bf43a920495f3a06836 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jan 14 21:04:31 2010 +0000 Small tweak to inline cost computation. Ext of i/fcmp results are mostly optimized away in codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10e7e9adfddaa1acbcbf173570e5eb40005143eb Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Jan 14 20:19:51 2010 +0000 Remove spurious semicolon. Patch by Diego Iastrubni! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93450 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9b54563dd72aa7b5a2050f1a70806397f0b1005 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 20:12:34 2010 +0000 In debug builds, assert that function-local metadata has only 1 parent function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73e6912a5aba875961ab45d88cbefd4d46543104 Author: Eric Christopher <echristo@apple.com> Date: Thu Jan 14 20:12:34 2010 +0000 Reduce the inlining cost of functions that contain calls to easily, and frequently optimized functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93448 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48d78e65301407f8d89fafb3b5a10c1ddeb735ca Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 19:54:11 2010 +0000 Simplify code that chooses when to enumerate function-local metadata operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93446 91177308-0d34-0410-b5e6-96231b3b80d8 commit b16eb0065a1e5617bc5a107a6bccb4b09b3be232 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 19:38:44 2010 +0000 Avoid modifying ValueEnumerator's MD ValueList by choosing which function-local MD to write based on the function currently being written git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93441 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1dbcea51a7abb6d7a55fda3d0ba5c63b54e97b4a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jan 14 18:19:56 2010 +0000 ARM "l" constraint for inline asm means R0-R7, also for Thumb2. This is consistent with llvm-gcc's arm/constraints.md. Certain instructions (e.g. CBZ, CBNZ) require a low register, even in Thumb2 mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93436 91177308-0d34-0410-b5e6-96231b3b80d8 commit dee49e3d45b73fc22613f633c38440b3767202d6 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Jan 14 10:19:55 2010 +0000 Use ENABLE_ASSERTIONS throughout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93423 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8da116c6cd70b3661dac3c6d885cb1f657600eef Author: Dan Gohman <gohman@apple.com> Date: Thu Jan 14 03:08:49 2010 +0000 Fix a codegen abort seen in 483.xalancbmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f496b825a85d619a45776c8c46cbb6886a6b5c1 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jan 14 02:24:50 2010 +0000 Test for r93409. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93410 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6e1d7a4611e9fe3d69cda8a738f890c40538ca9 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 02:12:41 2010 +0000 Extend testcase to also test llvm.dbg.value intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95592437ed8b3c8d1a14f3490073cebb3f344f3f Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 01:51:28 2010 +0000 Now that LLParser, AsmWriter, BitcodeReader, and BitcodeWriter all correctly support function-local metadata, test it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93406 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa582d67a059ab1999517d1f14474ff25c5bd211 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 01:50:08 2010 +0000 In WriteFunction(), write function-local metadata before we write the instructions, so instruction's references to metadata are fully resolved by the time they get written. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93403 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5412ca3a3a686cb06c984865e3118b941db04079 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 01:47:37 2010 +0000 Fix printing of function-local metadata in AsmWriter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93402 91177308-0d34-0410-b5e6-96231b3b80d8 commit a330aab51d6044064e5201c3c1ab16d4be658833 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 01:46:02 2010 +0000 Clean up unnecessary return and brackets git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87d3a90383b71868031d97fe264fddd1e2ed9c47 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Jan 14 01:45:14 2010 +0000 Add MDNode::getFunction(), which figures out the metadata's function, if it has function that it is local to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2879e52c70ed1285c567a64cf38bd8f477b2ebad Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jan 14 00:54:10 2010 +0000 Don't fold insufficiently aligned ldr/str into ldm/stm instructions. An unaligned ldr causes a trap, and is then emulated by the kernel with awesome performance. The darwin kernel does not emulate unaligned ldm/stm Thumb2 instructions, so don't generate them. This fixes the miscompilation of Multisource/Applications/JM/lencod for Thumb2. Generating unaligned ldr/str pairs from a 16-bit aligned memcpy is probably also a bad idea, but that is beyond the scope of this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93393 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb8f25926bb5b8b7f2379aef21146bac3be71867 Author: Stuart Hastings <stuart@apple.com> Date: Thu Jan 14 00:34:53 2010 +0000 Erm, previous patch was wrong; Thanks Bill\! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93381 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea40d109ac1753ddea6cf3b082e9ab6e1a1d4965 Author: Stuart Hastings <stuart@apple.com> Date: Thu Jan 14 00:22:05 2010 +0000 Enable assertions by default for Apple-style builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a07383e0c6355c9edb54978310024b33fe25fa7 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 23:29:11 2010 +0000 this is an SSE-specific issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93373 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0479e24dab45053317f2586ce4cb8c213e3416dd Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 23:28:40 2010 +0000 X86 if conversion + tail merging issues from PR6032. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93372 91177308-0d34-0410-b5e6-96231b3b80d8 commit dee74d4ab14c941d0003b8d95fa5e60b582e4ba9 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jan 13 23:23:17 2010 +0000 When the visitSub method was split into visitSub and visitFSub, this xform was added to the FSub version. However, the original version of this xform guarded against doing this for floating point (!Op0->getType()->isFPOrFPVector()). This is causing LLVM to perform incorrect xforms for code like: void func(double *rhi, double *rlo, double xh, double xl, double yh, double yl){ double mh, ml; double c = 134217729.0; double up, u1, u2, vp, v1, v2; up = xh*c; u1 = (xh - up) + up; u2 = xh - u1; vp = yh*c; v1 = (yh - vp) + vp; v2 = yh - v1; mh = xh*yh; ml = (((u1*v1 - mh) + (u1*v2)) + (u2*v1)) + (u2*v2); ml += xh*yl + xl*yh; *rhi = mh + ml; *rlo = (mh - (*rhi)) + ml; } The last line was optimized away, but rl is intended to be the difference between the infinitely precise result of mh + ml and after it has been rounded to double precision. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 960771588082bb9fe697624096580e165f9276de Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Wed Jan 13 22:21:43 2010 +0000 Add getSource() to SuccIterator Get the source BB of an iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 616dea8327f0370ea69a54cc79e2803e417c4a2b Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Wed Jan 13 22:21:28 2010 +0000 Extend SuccIterator Implement most of the missing methods to make SuccIterator random access. operator[] is still missing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93363 91177308-0d34-0410-b5e6-96231b3b80d8 commit 965db796f1201b52df303ff41221a659d39cdb0d Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 21:51:41 2010 +0000 this test requires SSE, thanks to jyasskin for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09d94b4acb609bce0d15b8beafe23f52a0b858d6 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 21:31:39 2010 +0000 makeNameProper is now private! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93357 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7900c7f84b4e297c330ed9a26e2d473fcc7b3d56 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 21:29:21 2010 +0000 fix ELF section mangling stuff for weak symbols to not use obsolete Mangler interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93356 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8793d14fbb27b193921c73ffe63dde055fa16e1 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 13 21:25:04 2010 +0000 Fix comment typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93355 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6f55a432675b2f52facfd8939c1d26f88e78670 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 21:21:29 2010 +0000 tidy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93352 91177308-0d34-0410-b5e6-96231b3b80d8 commit df0b6d7e5ed6cb65554035f8fbea434cff3b575f Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 21:12:34 2010 +0000 reduce duplicate mangling logic by using MCSymbol::printMangledName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c94fcbaaa65cf3d1087415c3d60a46aa0da6e4b Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 21:09:59 2010 +0000 expose a static function as a static method on the MCSymbol class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93350 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c1d0b9323b2bff46ddc11699f57baec614551f2 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Jan 13 21:00:26 2010 +0000 Fixed a couple of places for Thumb MOV where encoding bits are underspecified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19fe4af382d6bb8a31838e342784cd0cc44a4d34 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jan 13 19:54:39 2010 +0000 Fix pasto git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93342 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54758997a3ac305e2c51585da42f863e53a2393d Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 19:54:07 2010 +0000 stop the CBE from using deprecated Mangler stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93341 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ed7889c515877e2f8cb8e9f596d7d4d6fc2ba28 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 13 19:37:33 2010 +0000 Write function-local metadata as a metadata subblock of a funciton block git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93339 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0340dc0ec231c7535d724c6c01e3f44f73c1e7b3 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 13 19:36:16 2010 +0000 Enumerate function-local metadata (and its types and operands) only during function-incorporation, global metadata continues to be enumerated during creation of ValueEnumerator git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93338 91177308-0d34-0410-b5e6-96231b3b80d8 commit f59e8a1ea5029df0c2d4eea293eaa577431e841e Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 13 19:34:08 2010 +0000 Parse function-local metadata inside function blocks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93337 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb7b3cd5adabbf4c902197b01f72ccc82d98ae79 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 19:19:17 2010 +0000 Use the GV version of getNameWithPrefix in TargetLoweringObjectFileCOFF:: SelectSectionForGlobal, unbreaking weak globals with no-name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90a30f6b36e071aa921d37a1a4149f6b1ae5a01f Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 13 19:16:39 2010 +0000 Commit some changes I had managed to lose last night while refactoring the code. Avoid change use of PHI instructions because it's not legal to insert any instructions before them. This fixes PR6027. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93335 91177308-0d34-0410-b5e6-96231b3b80d8 commit d419147ec0d4c5d2a3d96eba1c78311f8aec5870 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 19:13:16 2010 +0000 just finish MCizing FnStubInfo which cleans it up and simplifies it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93334 91177308-0d34-0410-b5e6-96231b3b80d8 commit bde11f050c25642786a63d3d3f05e6692424a9f2 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 19:05:36 2010 +0000 don't call getNameWithPrefix repeatedly and unnecesarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93333 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3ec2e4720c7de4b562c0d519f1c33c2119b9d89 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 19:00:57 2010 +0000 properly use MCSymbol to print the strings aquired from getNameWithPrefix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93332 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddae339112715bdd2ab047c1e2538148de0ba811 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Jan 13 12:45:23 2010 +0000 Introduce Twine::toStringRef, a variant of toVector which avoids the copy if the twine can be represented as a single StringRef. Use the new methode to simplify some twine users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93317 91177308-0d34-0410-b5e6-96231b3b80d8 commit 304c727f425ee8a09635749ec34b35e02bef7e10 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 13 08:45:40 2010 +0000 Re-enable extension optimization pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93313 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c897bdd8b75aec10543f120426ffea9c1b7572d Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 08:08:33 2010 +0000 upgrade and MC'ize a few uses of makeNameProper. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 966e4ef2a684bb3ee93a487cc0e6cc2e9eb386e3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 08:04:24 2010 +0000 MC'ize this a bit and upgrade APIs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93309 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74183db4e9e8a85836d586ccf72019195b612fea Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 08:02:14 2010 +0000 add a fixme, ELF MCSection isn't quite right and weak unnamed globals are broken on linux (even though they are pointless, they shouldn't ICE). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93308 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05cda846ddf16a2dbcac2f09327db9e106fae9ec Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 13 08:01:32 2010 +0000 For now, avoid issuing extract_subreg to reuse lower 8-bit, it's not safe in 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93307 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5f8fa4ca174f7fa976d59e20f24bf9f193495e0 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 13 07:59:13 2010 +0000 Add comment; refactor; avoid pulling in DT if it's not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93306 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccf845edcf88afbb660deaf9c20e00b3ee4ad0a1 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 07:56:59 2010 +0000 eliminate some uses of Mangler::makeNameProper. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93305 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8fb18e8cc79cb0355b8fee837b6f51d96231bf7 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 07:50:21 2010 +0000 don't add the \1 to the name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93304 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fd08dfd9703ea1fc0c9bc2782cd98e85cdee1cc Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 07:30:49 2010 +0000 remove uses of deprecated functions, this generates slightly different BlockAddress labels, but nothing semantically important. Add a FIXME that BlockAddress codegen is broken if the LLVM BB has an empty name (e.g. strip was run). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1aeb82bda71e77b46708f462b14d6648e4004ab8 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 07:16:53 2010 +0000 use the new form of getNameWithPrefix, not makeNameProper. Among other things, this would do very weird things if the basic block name had (e.g.) a space in it on darwin: makeNameProper would add quotes, then the mcsymbol would escape the quotes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93302 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8554c4b4eb14c6f8839e1e9da505ede3ceaa3094 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 07:12:06 2010 +0000 add new isSingleStringRef()/getSingleStringRef() methods to twine, and use them to avoid a copy of a string in getNameWithPrefix in the common case. It seems like Value::setName and other places should use this as well? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93301 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ef48d37c161d181c193cd3dc86fab223b8be87b Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 07:01:09 2010 +0000 ugh, my last patch just sped up a method and changed all the clients that I want to completely eliminate. Add fixme's so I remember this in the future, and add the missing helper that they should be upgraded to use instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8555d56b331b441c9cfb278e652d40c0102c94c3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 06:38:18 2010 +0000 change Mangler::makeNameProper to return its result in a SmallVector instead of returning it in an std::string. Based on this change: 1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef 2. Change a bunch of targets to call makeNameProper with a smallstring, making several of them *much* more efficient. 3. Rewrite Mangler::makeNameProper to not build names and then prepend prefixes, not use temporary std::strings, and to avoid other crimes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93298 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49467cf4256adab9782dd05759777ca75148a200 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 05:02:57 2010 +0000 my mistake, Mangler::makeNameProper wants to take a twine, not a stringref! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16d05834c00d11735341953f6accdd32d3eac548 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 04:55:33 2010 +0000 change makeNameProper to take a stringref instead of std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93295 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf7a9fffad13ee0fb75cebb98d2d8312ff5383fa Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 04:50:20 2010 +0000 give StringRef a const_iterator member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d62af3950127427e5f904b8004919ef381072ce Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 04:39:46 2010 +0000 fix assert in AsmPrinter::EmitGlobalConstantLargeInt to match reality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93293 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3765504574b67a8c3e89e0c056423fb8334222e Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 04:38:16 2010 +0000 reduce nesting and code duplication in AsmPrinter::EmitGlobalConstantLargeInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93292 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c570dbcdbe8bfe5ff078ef06d0ee7c12fa32bb8 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 04:34:19 2010 +0000 reduce indentation and add a fast-path to EmitGlobalConstant for 8-byte integers on 64-bit systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93291 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd5ef537f3658f4734185c70b9435acdae531cb0 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 13 04:29:19 2010 +0000 reduce indentation and use early exits in AsmPrinter::EmitConstantValueOnly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95282170f6843740044a41dcc30d042cc7e47e40 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 13 03:18:30 2010 +0000 Revert 93270 pending investigation of how stray non-constant values end up in ValueEnumerator's ValueList during WriteConstants() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93289 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa2c7c9f33ed984d5af005078e1c30678db84faf Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 13 01:51:43 2010 +0000 Disable opt-ext pass to unbreak the build for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93286 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25940625d845c474210d9940397b146f683f4f0f Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 13 01:43:20 2010 +0000 Remove debug option I accidentally left in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e91681a48a184f596f8c643818256e91ebd34fb Author: Dale Johannesen <dalej@apple.com> Date: Wed Jan 13 01:39:38 2010 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93284 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4db937f5a15424e4dc9911c07c58fa966da6269 Author: Ted Kremenek <kremenek@apple.com> Date: Wed Jan 13 01:02:47 2010 +0000 Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93283 91177308-0d34-0410-b5e6-96231b3b80d8 commit 046133233074e04a758692bfd1e875798ac01a95 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jan 13 00:43:06 2010 +0000 Remove the JustSP single-register regclass. It was only being used by instructions with the t_addrmode_sp addressing mode, and that is pattern matched in a way that guarantees SP is used. There is never any register allocation done from this class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93280 91177308-0d34-0410-b5e6-96231b3b80d8 commit 778dd2177f8b89fd437800f07c6145872d692227 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Jan 13 00:31:43 2010 +0000 Try to fix the ARM and PPC buildbots. The -mattr=vector-unaligned-mem flag doesn't exist there, and this is an x86 test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93279 91177308-0d34-0410-b5e6-96231b3b80d8 commit e08fff54a2915f5331f7e75b5f4804dd3f2eb368 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 13 00:30:23 2010 +0000 Add a quick pass to optimize sign / zero extension instructions. For targets where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg. For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1241c35b04181da7531854b368c578376a742ddb Author: Dale Johannesen <dalej@apple.com> Date: Wed Jan 13 00:00:24 2010 +0000 Further progration of metadata operands. The dumper doesn't really do what I want yet, but at least it doesn't crash now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93272 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1495b487162ff38614701d9bee37ce73bee627fd Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Jan 12 23:37:59 2010 +0000 Make WriteConstants() more robust against stray values in ValueEnumerator's ValueList git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38e538d376a4e74d2ada0a9903e6af61dca22fd0 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Jan 12 22:18:56 2010 +0000 Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93261 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0d8d00330d45e9557c704f7fe4a936d3609e0f9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 12 22:00:04 2010 +0000 use consistent tag kinds for ilist_traits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93259 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49767c9b7438184bd5f7493c7df8e75b5e144068 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 12 20:41:47 2010 +0000 1) Use the new SimplifyInstructionsInBlock routine instead of the copy in JT. 2) When cloning blocks for PHI or xor conditions, use instsimplify to simplify the code as we go. This allows us to squish common cases early in JT which opens up opportunities for subsequent iterations, and allows it to completely simplify the testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93253 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6b96ec9866167982b456a7db765d527f1e0a873 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 12 19:40:54 2010 +0000 add a helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93251 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6c1d2cb7af59f5c697b1b91910950ec29f78373 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 12 18:57:56 2010 +0000 Use Twine, instead of StringRef, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93249 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21870c5a2e9c2e2eaeca86d12e4c275149756b13 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 12 18:34:06 2010 +0000 Use ilist_tratis to autoinsert and remove NamedMDNode from MDSymbolTable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93247 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e224cf3893ddc20b5e7019f5047f83eebdf7c4b Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 12 18:31:19 2010 +0000 Eliminate or_not_add and just use AddedComplexity so isel tries or_is_add patterns first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93245 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bec0cfa089896fc7e07ab5abb845ee532cea393 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 12 18:29:23 2010 +0000 Add nounwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93244 91177308-0d34-0410-b5e6-96231b3b80d8 commit be355f34e0729dc040a599a40f008359749ef014 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jan 12 17:46:16 2010 +0000 Revert commit 93204, since it causes the assembler to barf on x86-64 linux with messages like this: Error: Incorrect register `%r14' used with `l' suffix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93242 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6cd9f36b7f3d97c1193d072def590065923cd469 Author: Duncan Sands <baldrick@free.fr> Date: Tue Jan 12 08:30:46 2010 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f4f4fffdf4e5f4ad319059e9357fe7ad84d17ca Author: Duncan Sands <baldrick@free.fr> Date: Tue Jan 12 08:21:07 2010 +0000 Tweak commit 91745, which changed target data for both Mingw and Cygwin, to not touch Cygwin: the change caused llvm-gcc build failures due to long double getting the wrong size. Patch by Aaron Gray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 997d1728fd33bca27402a6e5cf0cd0534797b172 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 12 04:52:47 2010 +0000 Make several tests less fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a59eb84ed47f553845393e105eb0196d2d6253e Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 12 04:42:54 2010 +0000 Reapply the MOV64r0 patch, with a fix: MOV64r0 clobbers EFLAGS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9712cf3a0da6e93f9db5a918b921ddbabbb86753 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 12 04:32:35 2010 +0000 Update a partially obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07e7dea947431ede055a7748fe215f8d7e988653 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 12 04:30:26 2010 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a62df736986d233c475d9c2c7ea0a8fb84e5d6d Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 12 02:07:50 2010 +0000 tidy up git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93222 91177308-0d34-0410-b5e6-96231b3b80d8 commit b015ab7e76239fd9b863085d68efa91aca28619c Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 12 02:07:17 2010 +0000 Teach jump threading to duplicate small blocks when the branch condition is a xor with a phi node. This eliminates nonsense like this from 176.gcc in several places: LBB166_84: testl %eax, %eax - setne %al - xorb %cl, %al - notb %al - testb $1, %al - je LBB166_85 + je LBB166_69 + jmp LBB166_85 This is rdar://7391699 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93221 91177308-0d34-0410-b5e6-96231b3b80d8 commit dac07fb1458578df9b6c67b46c47d84c71f899b3 Author: Dale Johannesen <dalej@apple.com> Date: Tue Jan 12 02:01:53 2010 +0000 Add MO_Metadata as an operand kind. Not used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93220 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31b41036ecde0388929108c70d9b7eb6e4083065 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 12 00:09:37 2010 +0000 Add TargetInstrInfo::isCoalescableInstr. It returns true if the specified instruction is copy like where the source and destination registers can overlap. This is to be used by the coalescable to coalesce the source and destination registers of instructions like X86::MOVSX64rr32. Apparently some crazy people believe the coalescer is too simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93210 91177308-0d34-0410-b5e6-96231b3b80d8 commit c69888cabe7acaa6519450d14d298dec25183978 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 23:41:09 2010 +0000 some cleanup, and make it obvious that ProcessJumpOnPHI only works on branches by renaming it and checking for a branch at the call site. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1adfa777684a24ff3df8e6696a817bef91b448ef Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 23:18:33 2010 +0000 disable this testcase, PR5997 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05622b857d032f6f89ad793571f63d342c7d5eae Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jan 11 22:59:27 2010 +0000 Add manual ISD::OR fastisel selection routines. TableGen is no longer autogen them after 93152 and 93191. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3881d24e33e918b8e1d54f218eae0ca91027055e Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Jan 11 22:53:48 2010 +0000 Add documentation for llvm.dbg.value intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93203 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f974093444a869ceef2dd3b387c79865509991d Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 22:49:40 2010 +0000 reenable the piece that turns trunc(zext(x)) -> x even if zext has multiple uses, codegen has no apparent problem with the trunc version of this, because it turns into a simple subreg idiom git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93202 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6250d378fe142679dfa3e5a4a7b1b323105cef17 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 22:45:25 2010 +0000 Disable folding sext(trunc(x)) -> x (and other similar cast/cast cases) when the trunc has multiple uses. Codegen is not able to coalesce the subreg case correctly and so this leads to higher register pressure and spilling (see PR5997). This speeds up 256.bzip2 from 8.60 -> 8.04s on my machine, ~7%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93200 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20c0ca95d363b027d9bedc913ec7d81ff5fa5c6f Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Jan 11 22:31:58 2010 +0000 Consolidate ConvertGlobalValIDToValue, ConvertGlobalOrMetadataValIDToValue, and ConvertValIDToValue into a more powerful ConvertValIDToValue() that does all three's work git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93197 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8941ccfa492c94bf8062817a47a415619b8a497 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Jan 11 22:22:46 2010 +0000 Remove trailing white spaces in post dominators header file git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93195 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9098bd84df3595bfd9632d9c9e55949e9de34b5 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Jan 11 22:22:32 2010 +0000 Add getNode() to post dominators. Implement the same interface as already available for dominators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93194 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49e359621c5491296d272ec35279fa7ef4e5a20a Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jan 11 22:03:29 2010 +0000 Extend r93152 to work on OR r, r. If the source set bits are known not to overlap, then select as an ADD instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93191 91177308-0d34-0410-b5e6-96231b3b80d8 commit 068a9320de8dd78f523946fa8d4119942e224ef5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 21:58:19 2010 +0000 reduce this to a sensible testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93189 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0c408a4063856e29326c2c6bc099ff439b560e4 Author: David Greene <greened@obbligato.org> Date: Mon Jan 11 21:50:35 2010 +0000 Shorten up this testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93187 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa59ffe04ff0e87196a592b9b241b994e5460de7 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jan 11 21:13:41 2010 +0000 Revert 93158. It's breaking quite a few x86_64 tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a7e7902eae583ed525562bc68dd6ae0fde4d3ac Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Jan 11 21:02:33 2010 +0000 Avoid adding PHI arguments for a predecessor that has gone away when a BRCOND was constant folded. This fixes PR5980. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d6e1b5be983dd6f7fc72e2556189cabb0a6de67 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jan 11 20:33:12 2010 +0000 Remove unused string functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93183 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7aaefe2f92f0cec4ea74fd407e0a43428d2abc2 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jan 11 20:18:04 2010 +0000 Do not turn 8-bit OR to ADD since ADD8ri is not 3-addressfiable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93182 91177308-0d34-0410-b5e6-96231b3b80d8 commit 351d0bd7097d298a5fb32601cb4fd7e6dd57f7f5 Author: Mon P Wang <wangmp@apple.com> Date: Mon Jan 11 20:12:49 2010 +0000 Disable transformation of select of two loads to a select of address and then a load if the loads are not in the default address space because the transformation discards src value info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f786eaf08109f7350f52d027c60572ffa5308e9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jan 11 19:45:18 2010 +0000 Add StrInStrNoCase, a StringRef version of CStrInCStrNoCase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93174 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a1969a435ea1079bb763f40c2f7e7eba343774c Author: Devang Patel <dpatel@apple.com> Date: Mon Jan 11 19:35:55 2010 +0000 Add top level section for named metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ce22094023895d13ca93858e56e45011876ab99 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Jan 11 19:19:26 2010 +0000 Improve unclear bits and inaccuracies in structure and insertvalue documentation. Patch by Dustin Laurence! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f02c5eaf2e18b7ac09cd8b27c0b0e3b7083612f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Jan 11 18:53:47 2010 +0000 Update the -tailcallopt description to match djg's improvements to the calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78104868cacedaabbdd6fd942414bf7b77a6011e Author: Devang Patel <dpatel@apple.com> Date: Mon Jan 11 18:52:33 2010 +0000 s/NextValueNo/NextMDValueNo while processing metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93165 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca226531ab9fc85000221a7b160b55b10dcdce1b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jan 11 18:44:35 2010 +0000 Turns out llvm-gcc still uses SplitString with a vector. Add it back until I have a fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93163 91177308-0d34-0410-b5e6-96231b3b80d8 commit 086ac78ea4d4ea944a75869c5fd357edba4eaedb Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Jan 11 18:03:24 2010 +0000 Reimplement getToken and SplitString as "StringRef helper functions" - getToken is modeled after StringRef::split but it can split on multiple separator chars and skips leading seperators. - SplitString is a StringRef::split variant for more than 2 elements with the same behaviour as getToken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93161 91177308-0d34-0410-b5e6-96231b3b80d8 commit d379d96918d8063d25a36c522868d72e29b5ed86 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 11 17:58:34 2010 +0000 Use a 32-bit and with implicit zero-extension instead of a 64-bit and if it has an immediate with at least 32 bits of leading zeros, to avoid needing to materialize that immediate in a register first. FileCheckize, tidy, and extend a testcase to cover this case. This fixes rdar://7527390. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93160 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fb7a5024fb9a98ff181c5d2a9c77c7953e0d084 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 11 17:37:57 2010 +0000 Re-instate MOV64r0 and MOV16r0, with adjustments to work with the new AsmPrinter. This is perhaps less elegant than describing them in terms of MOV32r0 and subreg operations, but it allows the current register to rematerialize them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93158 91177308-0d34-0410-b5e6-96231b3b80d8 commit d21da3e6e415e725824e03262520efbb8149a58a Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 11 17:24:27 2010 +0000 Generalize this check to avoid depending on a specific register assignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93157 91177308-0d34-0410-b5e6-96231b3b80d8 commit 543461a93129eb01a82e917940c0d951af32c7b3 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 11 17:23:56 2010 +0000 Make this test less trivial, to avoid spurious failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93156 91177308-0d34-0410-b5e6-96231b3b80d8 commit e15b21f014ffe1186cd8b9884802b6bea7e2888e Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 11 17:21:05 2010 +0000 Pattern top-level operators don't need to be restricted to a single user. The _su forms are intended for non-top-level nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93155 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d79e4f053a8cbebdc1476544d883afaf2a5902e Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 11 17:14:46 2010 +0000 Reword this comment to reference a more fundamental issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93154 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06603838de13691e164ec2bfa1f56da2e10ecc3f Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jan 11 17:03:47 2010 +0000 Select an OR with immediate as an ADD if the input bits are known zero. This allow the instruction to be 3address-fied if needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93152 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b55fc02bb4b4c844cd50f489f700f2e8c8ee2e0 Author: David Greene <greened@obbligato.org> Date: Mon Jan 11 16:29:42 2010 +0000 Implement a feature (-vector-unaligned-mem) to allow targets to ignore alignment requirements for SIMD memory operands. This is useful on architectures like the AMD 10h that do not trap on unaligned references if a status bit is twiddled at startup time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93151 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6425510605b8e664e589fc31eb3d15f042d9e02c Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Jan 11 07:45:19 2010 +0000 Respond to Chris' review: Make InsertDbgValueIntrinsic() and get Offset take and recieve a uint64_t. Get constness correct for getVariable() and getValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93149 91177308-0d34-0410-b5e6-96231b3b80d8 commit 390fcc5ffcc455ce1afc7d6ca153b65876b634d0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 06:55:24 2010 +0000 add one more bitfield optimization, allowing clang to generate good code on PR4216: _test_bitfield: ## @test_bitfield orl $32962, %edi movl $4294941946, %eax andq %rdi, %rax ret instead of: _test_bitfield: movl $4294941696, %ecx movl %edi, %eax orl $194, %edi orl $32768, %eax andq $250, %rdi andq %rax, %rcx movq %rdi, %rax orq %rcx, %rax ret Evan is looking into the remaining andq+imm -> andl optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c6ee8169dfcedb5bcb680ab4d212e204f7073c3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 04:05:13 2010 +0000 Extend CanEvaluateZExtd to handle and/or/xor more aggressively in the BitsToClear case. This allows it to promote expressions which have an and/or/xor after the lshr, promoting cases like test2 (from PR4216) and test3 (random extample extracted from a spec benchmark). clang now compiles the code in PR4216 into: _test_bitfield: ## @test_bitfield movl %edi, %eax orl $194, %eax movl $4294902010, %ecx andq %rax, %rcx orl $32768, %edi andq $39936, %rdi movq %rdi, %rax orq %rcx, %rax ret instead of: _test_bitfield: ## @test_bitfield movl %edi, %eax orl $194, %eax movl $4294902010, %ecx andq %rax, %rcx shrl $8, %edi orl $128, %edi shlq $8, %rdi andq $39936, %rdi movq %rdi, %rax orq %rcx, %rax ret which is still not great, but is progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93145 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e08c3a19a6e45bd15e41c3df04b8ba3c7d84dcb Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 03:32:00 2010 +0000 Remove the dead TD argument to CanEvaluateZExtd, and add a new BitsToClear result which allows us to start promoting expressions that end with a lshr-by-constant. This is conservatively correct and better than what we had before (see testcases) but still needs to be extended further. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41314c1f6da6dcfa806218e750a7ccd8442269ed Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 11 02:43:35 2010 +0000 improve comments, remove dead TD argument to CanEvaluateSExtd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93143 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa031d29fcb36598ad0e7524eeba7b968775f15c Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 20:30:41 2010 +0000 teach sext optimization to handle truncs from types that are not the dest of the sext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93128 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ee51f8654f7a3765441c34af43c81032ecce836 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 20:25:54 2010 +0000 teach zext optimization how to deal with truncs that don't come from the zext dest type. This allows us to handle test52/53 in cast.ll, and allows llvm-gcc to generate much better code for PR4216 in -m64 mode: _test_bitfield: ## @test_bitfield orl $32962, %edi movl %edi, %eax andl $-25350, %eax ret This also fixes a bug handling vector extends, ensuring that the mask produced is a vector constant, not an integer constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93127 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3d8a44a4116b338dc5e1760c4fc8c0b435c9afe Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 20:21:42 2010 +0000 fix a buggy assertion, CreateIntegerCast should allow integer vectors as well as just integers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93126 91177308-0d34-0410-b5e6-96231b3b80d8 commit df77d76913bc96239d8c630f52a28fff8cf7b1a7 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Jan 10 18:48:49 2010 +0000 Suppress a warning on gcc 4.4. warning: suggest parentheses around ‘&&’ within ‘||’. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93121 91177308-0d34-0410-b5e6-96231b3b80d8 commit 178ec6095c2522d6da1e7a66a2cc5f3ecab775e0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 07:57:20 2010 +0000 simplify CanEvaluateSExtd to return a bool now that we have a simpler profitability predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93111 91177308-0d34-0410-b5e6-96231b3b80d8 commit d26a9010287c3b76b4328c0a6bb9de4e847d475b Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 07:42:21 2010 +0000 the NumCastsRemoved argument to CanEvaluateSExtd is dead, remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93110 91177308-0d34-0410-b5e6-96231b3b80d8 commit cef643a7cffcf37249fa8908c048d290b7bce03f Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 07:40:50 2010 +0000 now that the cost model has changed, we can always consider elimination of a sign extend to be a win, which simplifies the client of CanEvaluateSExtd, and allows us to eliminate more casts (examples taken from real code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93109 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86de4ca0f1cc0d95d6c1def0b5f96c4e50ce9ddd Author: Victor Hernandez <vhernandez@apple.com> Date: Sun Jan 10 07:14:18 2010 +0000 Compute isFunctionLocal in MDNode ctor or via argument in new function getWhenValsUnresolved(). Document PFS argument to ParseValID() and ConvertGlobalOrMetadataValIDToValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93108 91177308-0d34-0410-b5e6-96231b3b80d8 commit 771e466242edb92436d5ae93b42307dcbaad1044 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 07:08:30 2010 +0000 change the preferred canonical form for a sign extension to be lshr+ashr instead of trunc+sext. We want to avoid type conversions whenever possible, it is easier to codegen expressions without truncates and extensions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93107 91177308-0d34-0410-b5e6-96231b3b80d8 commit b814f837bf9ca083a1a702e14010d84326d556b6 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 06:59:55 2010 +0000 fix indentation of switch statements, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93106 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79046fd0ead7d80018ab7732414c4a0c21b41b15 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 06:50:04 2010 +0000 fix pasto that broke bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93105 91177308-0d34-0410-b5e6-96231b3b80d8 commit 812e446a719dc38e01d58493701c62a46e537e2b Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 02:50:04 2010 +0000 simplify CanEvaluateZExtd now that we don't care about the number of bits known clear in the result and don't care about the # casts eliminated. TD is also dead but keeping it for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93098 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d9228e406d76b4e18d98d03047a834651c4114f Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 02:39:31 2010 +0000 two changes: 1) don't try to optimize a sext or zext that is only used by a trunc, let the trunc get optimized first. This avoids some pointless effort in some common cases since instcombine scans down a block in the first pass. 2) Change the cost model for zext elimination to consider an 'and' cheaper than a zext. This allows us to do it more aggressively, and for the next patch to simplify the code quite a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ac8ce223227de5de5ba9e3d7d8b0d676a4a578b Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 02:22:12 2010 +0000 enhance CanEvaluateZExtd to handle shift left and sext, allowing more expressions to be promoted and casts eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93096 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3d7c306da4bc3477bb10bfd43f61ba0f235f04e Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 01:35:55 2010 +0000 remove an xform subsumed by EvaluateInDifferentType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93095 91177308-0d34-0410-b5e6-96231b3b80d8 commit a44d31b166a84c4e0ff14905c04db781f381a7e9 Author: Julien Lerouge <jlerouge@apple.com> Date: Sun Jan 10 01:07:22 2010 +0000 Fix nondeterministic behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93093 91177308-0d34-0410-b5e6-96231b3b80d8 commit b66b27420b31735c5cf7e7b035689ed6170f27fc Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 01:04:31 2010 +0000 clean up this xform by using m_Trunc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93092 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc13154dc85bd26c17815527804c78aa708a1809 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 01:00:46 2010 +0000 inline and remove the rest of commonIntCastTransforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93091 91177308-0d34-0410-b5e6-96231b3b80d8 commit e20f3dd45a603f728d13dde43873750c96cefdae Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 10 00:58:42 2010 +0000 Inline the expression type promotion/demotion stuff out of commonIntCastTransforms into the callers, eliminating a switch, and allowing the static predicate methods to be moved down to live next to the corresponding function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93089 91177308-0d34-0410-b5e6-96231b3b80d8 commit 440048c27b6462450387d9dc744064cd3e90d6dc Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 23:25:21 2010 +0000 hopefully unbreak the ocaml bindings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93082 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1192d8ccdbf231d0f3eda9f9397bfc3e5f022e25 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 22:30:40 2010 +0000 add 3 passes which have been added but aren't used afaik. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93080 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b943dd8ffc9684e48e30a306565ae6467c57c17 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 22:27:07 2010 +0000 "In order to ease automatic bindings generation, it would be helpful if boolean values were distinguishable from integers. The attached patch introduces "typedef int LLVMBool;", and uses LLVMBool instead of int throughout the C API, wherever a boolean value is called for." Patch by James Y Knight! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93079 91177308-0d34-0410-b5e6-96231b3b80d8 commit d009f94244e0583126a9a9ca23bdf231b3090119 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Jan 9 19:44:16 2010 +0000 Clarify the requirements for a "tail call" to actually be optimized into a jump. People clearly weren't finding the extra requirements in CodeGenerator.html. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93070 91177308-0d34-0410-b5e6-96231b3b80d8 commit c70bab79d5cb10d92c18942db5f5424f72797dae Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 19:24:49 2010 +0000 fix bogus test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93069 91177308-0d34-0410-b5e6-96231b3b80d8 commit dba1e402d851dcba8d48285c9306febe0d2bd59d Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 19:24:18 2010 +0000 fix bogus test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93068 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fbedd2bbeb4a01472d40d9766c16bc01d357c86 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 19:20:07 2010 +0000 fix PR5983, reject function bodies with no blocks per the grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93067 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12b4c9732917701a648e626fcbd39c86156c15dc Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 19:15:14 2010 +0000 improve documentation for linkonce to be less confusing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7375479e2bd1a4037b5848e6ee117f417d0002b3 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Jan 9 18:56:43 2010 +0000 Fix http://llvm.org/PR5729: x86-64 tail calls were putting their targets into R11, and then asserting that the target was in R9. Since R9 isn't reserved for the target anymore, and is used as an argument, this patch changes the assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8175c3426e34da1fbe54723f5b2bd4ef370ca951 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 18:40:31 2010 +0000 2010 is upon us. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93062 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f2b306981280b43b98cdff2e00baebadbb8a36c Author: Dan Gohman <gohman@apple.com> Date: Sat Jan 9 18:17:45 2010 +0000 Use WriteAsOperand instead of getName() to print loop header names, so that unnamed blocks are handled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 305ce175ae439b529189564849a59d6789cd5ac2 Author: Dan Gohman <gohman@apple.com> Date: Sat Jan 9 17:22:48 2010 +0000 Tighten up the vim LLVM IR syntax highlighting regex for labels, and add a highlighting rule for identifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93056 91177308-0d34-0410-b5e6-96231b3b80d8 commit f235cf58d7574682e14df6827d92ddf2506e1d82 Author: Dan Gohman <gohman@apple.com> Date: Sat Jan 9 17:15:21 2010 +0000 Set the vim auto-indent setting for open braces after case statements to follow LLVM source convention. Before: case X: { stuff; } After: case X: { stuff; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93055 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5f58e5c06081e60b4a8ba938799d9e1dc97da95 Author: David Chisnall <csdavec@swan.ac.uk> Date: Sat Jan 9 16:27:31 2010 +0000 Fixed linking of modules containing aliases to constant bitcasts. Existing behaviour first tried to replace the aliases with the global that they aliased (rather than the bitcast), causing a crash on an assert because the types didn't match. When this was fixed, it then did the same thing creating the new alias (creating an alias with a different type to its aliasee). Linking modules containing aliases to GEPs is still not quite right. GEPs that are equivalent to bitcasts will be replaced by bitcasts, GEPs that are not will just break. Aliases to GEPs that are not equivalent to bitcasts are horribly broken anyway (it might be worth adding an assert when creating the alias to prevent these being created; they just cause problems later). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93052 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2f154bef2486073b253f93bfb96ec95c408af49 Author: Duncan Sands <baldrick@free.fr> Date: Sat Jan 9 08:30:33 2010 +0000 Suppress use of uninitialized variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93046 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c42e1823c0491834a21f08f60b31b21e781594f Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 06:01:36 2010 +0000 only factor from expressions whose uses are empty and whose base is the right expression type. This fixes PR5981. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93045 91177308-0d34-0410-b5e6-96231b3b80d8 commit c807a81409786d58f6a73a018da26fd66aec0790 Author: Dan Gohman <gohman@apple.com> Date: Sat Jan 9 02:13:55 2010 +0000 Revert an earlier change to SIGN_EXTEND_INREG for vectors. The VTSDNode really does need to be a vector type, because TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type, and it needs to be able to distinguish between vectors and scalars. Also, fix some more issues with legalization of vector casts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43bc13b68b86c2136326ff0a245fa065dac9ee7c Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 9 02:02:37 2010 +0000 clean up this code, add a fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 041890c13119d3b398ff4df9644e95bf517a94d3 Author: Devang Patel <dpatel@apple.com> Date: Sat Jan 9 01:44:59 2010 +0000 Delete NamedMDSymTable while destrucing Module. Disable copy ctor and operator= for NamedMDSymTable. Hide typedef that should be public. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93041 91177308-0d34-0410-b5e6-96231b3b80d8 commit 976e43dbca87ed25b2e078948978ea737db514b7 Author: Dale Johannesen <dalej@apple.com> Date: Sat Jan 9 01:24:25 2010 +0000 Add DEBUG_DECLARE. Not used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93040 91177308-0d34-0410-b5e6-96231b3b80d8 commit 459c5a1e2e8f64e3519858e3d5309c9fb3073ec1 Author: Devang Patel <dpatel@apple.com> Date: Sat Jan 9 01:24:03 2010 +0000 NamedMDNode is never used so there is no need to enumerate it here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93039 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a18fe82407938da5ec62ce497217fb044b55918 Author: Julien Lerouge <jlerouge@apple.com> Date: Sat Jan 9 01:06:49 2010 +0000 Fix nondeterministic behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93038 91177308-0d34-0410-b5e6-96231b3b80d8 commit f36c6867337e26f5f6168442255605b12cafbd35 Author: Devang Patel <dpatel@apple.com> Date: Sat Jan 9 01:02:22 2010 +0000 NamedMDNode element is either null or MDNode. Otherwise this is a malformed NamedMDNode record. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 580749d7f096d447d30de5706d7b38d0d587f131 Author: Devang Patel <dpatel@apple.com> Date: Sat Jan 9 00:30:14 2010 +0000 Derive NamedMDNode from Value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53d17bd41e372d6302b8a283f646be7fa17420dc Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Jan 9 00:21:08 2010 +0000 Dan pointed out checking whether a node is dead by comparing its opcode to ISD::DELETED_NODE is not safe. Use a DAGUpdateListener to remove dead nodes from work list instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b8c4f4b010dc5abc8748141f5de17cb0bc74d6b Author: Dale Johannesen <dalej@apple.com> Date: Fri Jan 8 23:51:25 2010 +0000 Add DEBUG_VALUE. Not used yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93030 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c8f4c8af62d1e45c1a24e7d217e796edfe5e9fe Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 8 23:41:50 2010 +0000 Fix a critical bug in 64-bit atomic operation lowering for 32-bit. The results of the cmpxchg8b instructions are being thrown away when it branches back to the top of the checking loop. This means the loop always compares against the old value and this can result in a dead lock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93028 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ee164a6e66a3c0f9495567836990aa210876a0f Author: Eric Christopher <echristo@apple.com> Date: Fri Jan 8 21:42:39 2010 +0000 Grammar thinko. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93027 91177308-0d34-0410-b5e6-96231b3b80d8 commit e169d8bfd07d97c608156c4696e9a418f738fb6c Author: Eric Christopher <echristo@apple.com> Date: Fri Jan 8 21:37:11 2010 +0000 Remove unnecessary dyn_cast and add a comment. Part of a WIP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93026 91177308-0d34-0410-b5e6-96231b3b80d8 commit 632002f4605f3f0e39f15710cf441f556c2b9b03 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 8 19:28:47 2010 +0000 mplement a theoretical fixme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93024 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91cf1207b83e466dfb7381aa324e5c01189e0ed8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 8 19:19:23 2010 +0000 rename CanEvaluateInDifferentType -> CanEvaluateTruncated and simplify it now that it is only used for truncates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ec49f0e24bbdf5053c68b534df66206b866871f Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 8 19:14:57 2010 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93020 91177308-0d34-0410-b5e6-96231b3b80d8 commit e19af54f0e8886ceb55f47b97acc4eefe682a5ea Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 8 19:04:21 2010 +0000 teach instcombine to delete sign extending shift pairs (sra(shl X, C), C) when the input is already sign extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93019 91177308-0d34-0410-b5e6-96231b3b80d8 commit b57b7a0c6f3feb355f11f581b34d49250397a6a4 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 8 19:02:23 2010 +0000 fix PR5978 by peeling the loop so that we avoid shifting the result int by 8 for the first byte. While normally harmless, if the result is smaller than a byte, this shift is invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93018 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c1e23389ba5f7a3ca69a1720ea2db76f3e37984 Author: Duncan Sands <baldrick@free.fr> Date: Fri Jan 8 17:51:48 2010 +0000 Suppress an unused variable warning when assertions are off; remove some trailing whitespace while there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e9676ce83ade2878871f01328687e024ced157c Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 8 17:48:19 2010 +0000 tidy up some stuff duncan pointed out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93007 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c04e69b9f0bfba83df8f3fe13af454e10bc2bf3 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Jan 8 17:41:33 2010 +0000 Minor change, change the order of two "let Inst{...}" stmts within multiclass T2I_bin_ii12rs definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93006 91177308-0d34-0410-b5e6-96231b3b80d8 commit 312d366163543c423e407d7bd5051a89d4431ff3 Author: Eric Christopher <echristo@apple.com> Date: Fri Jan 8 08:24:49 2010 +0000 After further thought revert the patch to make fast-isel avoid putting relocations into the constant pool - this isn't needed for correctness and in the rare occasion it happens would pull us out of fast isel for the block. If fast-isel application startup time ever becomes an issue we can add better support for these addresses instead of bailing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23432d0d8762223b47e8f109ba2bdf8b75e77160 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 8 02:36:12 2010 +0000 ReplaceAllUsesOfValueWith may delete other nodes that the one being replaced. Do not delete dead nodes again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92988 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3d6fff46b5a1832301135850c601a13a0b5c6ac Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Jan 8 01:29:19 2010 +0000 Fix what looks to me obvious instruction definition bugs. 1. CMPXCHG8B and CMPXCHG16B did not specify implicit physical register defs and uses. 2. LCMPXCHG8B is loading 64 bit memory, not 32 bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 134dcfa3d569587348308e8cd8d995e1597752d1 Author: Eric Christopher <echristo@apple.com> Date: Fri Jan 8 00:05:33 2010 +0000 Remove extraneous include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92972 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c4eb989ed9e2cf7e6724b63bcd1cc6f2ef944a0 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Thu Jan 7 23:50:41 2010 +0000 Add assert to check dominance dfs numbers. Compare the dominance information calculated using a dominance tree walk to the information calculated based on DFS numbers, if XDEBUG is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92969 91177308-0d34-0410-b5e6-96231b3b80d8 commit 689b8144d6689b1c08c163d883185f3bdbb1c0bf Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Thu Jan 7 23:50:25 2010 +0000 Remove workaround in PostDominators Remove a FIXME and unify code that was necessary to work around broken updateDFSNumbers(). Before updateDFSNumbers() did not work correctly for post dominators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92968 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bdcc0cf6f202d4c83a7bd3233a46c5d84e9752f Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Thu Jan 7 23:50:06 2010 +0000 Fix DFS number calculation for postdominators The DFS number calculation for postdominators was broken. In the case of multiple exits that form the post dominator root nodes, do not iterate over all exits, but start from the virtual root node. Otherwise bbs, that are not post dominated by any exit but by the virtual root node, will never be assigned a DFS number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92967 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d9ecce309b7d133b6fe6a841dd52980ffb5c273 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 7 23:44:37 2010 +0000 teach ComputeNumSignBits to look through PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92964 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6adf1ba76c4533dbe08142585838b5d72506f0be Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 7 23:42:23 2010 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92963 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce802c07d5d10744bff2b16fd88c46e25a5cf948 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 7 23:41:00 2010 +0000 Enhance instcombine to reason more strongly about promoting computation that feeds into a zext, similar to the patch I did yesterday for sext. There is a lot of room for extension beyond this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c106b561b6d796f1f0e4ef28deb5c677f367857 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 7 21:59:23 2010 +0000 Fix rdar://7517201, a regression introduced by r92849. When folding a and(any_ext(load)) both the any_ext and the load have to have only a single use. This removes the anyext-uses.ll testcase which started failing because it is unreduced and unclear what it is testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92950 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b32b5663d77046c560d61f05468b0dc87b4bb8c Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 7 21:53:27 2010 +0000 factor this code better and reduce nesting at the same time, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92948 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8c38fb2275c52c1a7b206e34a5f6d1b8b096d9e Author: David Greene <greened@obbligato.org> Date: Thu Jan 7 21:43:58 2010 +0000 Revert r92939. These intrinsics get matched to LLVM instructions, so removing at Chris' request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 656988c1575af7f102ecda3b5c5c8322c405a596 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jan 7 20:58:44 2010 +0000 APInt'fy TargetLowering::SimplifySetCC to fix PR5963. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92943 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41caa6c9b6fb1312853324bc3bfc34559ad2c63c Author: David Greene <greened@obbligato.org> Date: Thu Jan 7 19:47:43 2010 +0000 Add some "missing" instrinsics to make the SSE intrinsic set a bit more orthogonal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92939 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8352338331930938b73930737b4fd543e42b35a8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jan 7 19:46:15 2010 +0000 Simplify code. No intended functionality/performance change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92938 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5382bfd8db0236ef99b2b960216afb73befa2db1 Author: Eric Christopher <echristo@apple.com> Date: Thu Jan 7 19:45:14 2010 +0000 If the data requires a relocation then don't attempt to add it to the constant pool for fast-isel. We already don't add it for the normal case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92934 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd05649bf260ba98f9c3e3ae7bc0c8ad0e5af0af Author: Eric Christopher <echristo@apple.com> Date: Thu Jan 7 19:44:05 2010 +0000 We need to put any kind of data with a relocation into a not-readonly segment on darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92933 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb5497752b116baa3397e336a16ab2e9111ba941 Author: Devang Patel <dpatel@apple.com> Date: Thu Jan 7 19:39:36 2010 +0000 Use separate namespace for named metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92931 91177308-0d34-0410-b5e6-96231b3b80d8 commit f106d055dbf1a26a4067c6110a3b8e41534f2bbc Author: Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Date: Thu Jan 7 18:46:52 2010 +0000 Fix occurrence typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92926 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b725deb1d7ed94eb583d92e6acf5d92e641dedf Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 7 17:53:10 2010 +0000 constant materialization could be improved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92921 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4eae42f0c15257ff2cbed2c57b062b6d715c2c7 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jan 7 17:50:57 2010 +0000 Kill dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92920 91177308-0d34-0410-b5e6-96231b3b80d8 commit 405091faf70c7f5cecdf4b76e28cc877adacac53 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jan 7 17:29:08 2010 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8426b4a20e9aea0aae90eaa3ef55564e12d57257 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jan 7 17:27:56 2010 +0000 Use pop_back_val instead of back()+pop_back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92918 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3b7277cf7bfcda19691eebb85c8d20f9e1ccaa9 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Jan 7 13:50:07 2010 +0000 Use a do-while loop instead of while + boolean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92912 91177308-0d34-0410-b5e6-96231b3b80d8 commit 378d545652e3c580e7743c3dc8fa468441150c9d Author: Duncan Sands <baldrick@free.fr> Date: Thu Jan 7 09:05:26 2010 +0000 Correct spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92910 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba1c49f15360dd69858b7ea2c6b3c58aace4f0a9 Author: Duncan Sands <baldrick@free.fr> Date: Thu Jan 7 05:48:42 2010 +0000 Be less stingy as to how many selects and phi nodes we are prepared to look through. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92898 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76476aaaaab38d36caccf3bccf553f5ee459f6f9 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Jan 7 02:24:06 2010 +0000 More trivial optimizations to a function well outside the critical path git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92896 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c106cdb8573b5701646dff97629fb99d59540d7 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 7 01:20:20 2010 +0000 handle ConstantVector while I'm in here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92892 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f9fe1268eb4f437cf4de50dfc7e06e8cd7a30a0 Author: Chris Lattner <sabre@nondot.org> Date: Thu Jan 7 01:16:21 2010 +0000 fix a globalopt crash on 'bullet' (handling evaluation of a store to an element of a vector in a static ctor) which occurs with an unrelated patch I'm testing. Annoyingly, EvaluateStoreInto basically does exactly the same stuff as InsertElement constant folding, but it now handles vectors, and you can't insertelement into a vector. It would be 'really nice' if GEP into a vector were not legal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92889 91177308-0d34-0410-b5e6-96231b3b80d8 commit f26b80901d602701715d3e3fbe37e0feb797b636 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Jan 7 00:54:06 2010 +0000 Fix a minor regression from my dag combiner changes. One more place which needs to look pass truncates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92885 91177308-0d34-0410-b5e6-96231b3b80d8 commit eacfcd677a4dc1df383eb9ff45fde0c40ab8f98b Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Jan 7 00:51:54 2010 +0000 Switch StringRef::edit_distance over to using raw pointers, since both std::vector and llvm::SmallVector have annoying performance tradeoffs. No, I don't expect this to matter, and now it won't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92884 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccaafd35c2650453cf54d46edc6dedc8d2d70bff Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Jan 7 00:51:04 2010 +0000 Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92883 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7cdaa0ff91a8386fbef22a48c85d624391b8cd4 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jan 6 23:54:42 2010 +0000 80 column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92876 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9366a47925207e0030d12df091d6e1cbc5edbf9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jan 6 23:52:46 2010 +0000 Allow double defs after tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92874 91177308-0d34-0410-b5e6-96231b3b80d8 commit aaf7d07332307f7c820f78f2a6ea877b99fa2d98 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jan 6 23:47:07 2010 +0000 Add Target hook to duplicate machine instructions. Some instructions refer to unique labels, and so cannot be trivially cloned with CloneMachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92873 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd8159b018f0d5ac327caefee632f2be39b3b8d1 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jan 6 23:45:18 2010 +0000 Addressing mode 6 (load/store) instructions can't encode an immediate offset for stack references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92871 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7a3afef91f77182a51be83fa01730000bf358d9 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jan 6 22:21:25 2010 +0000 Anti-dependency breaking needs to be careful regarding instructions with multiple register definitions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92864 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f156c4013526c48cb06ed664925b6a7084e9c05 Author: Eric Christopher <echristo@apple.com> Date: Wed Jan 6 20:04:44 2010 +0000 Move the object size intrinsic optimization to inst-combine and make it work for any integer size return type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92853 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bf0c4cd67b385c7290306ae40562c2f84908e60 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 6 19:43:21 2010 +0000 Comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d5cbef24ef9b259a6d57d972bc98b1bda631540 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Jan 6 19:38:29 2010 +0000 Teach dag combine to fold the following transformation more aggressively: (OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92849 91177308-0d34-0410-b5e6-96231b3b80d8 commit deeae7a6f0c289aaaac133ccd0d22ca0a4fddbe0 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Jan 6 17:16:00 2010 +0000 Fix struct/class mismatch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92841 91177308-0d34-0410-b5e6-96231b3b80d8 commit eedb188d34d1a46dd69672f4c6415a373fab9118 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Jan 6 17:00:21 2010 +0000 When parsing function-local metadata, create a function-local MDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92838 91177308-0d34-0410-b5e6-96231b3b80d8 commit a11e87a37e60a5a4c20b8ffc3de0b4675b2510cd Author: Jim Grosbach <grosbach@apple.com> Date: Wed Jan 6 16:48:02 2010 +0000 80 column and whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92837 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39e48e077790523cb83189dcc6880e043968b75c Author: Duncan Sands <baldrick@free.fr> Date: Wed Jan 6 15:37:47 2010 +0000 Fix a README item: have functionattrs look through selects and phi nodes when deciding which pointers point to local memory. I actually checked long ago how useful this is, and it isn't very: it hardly ever fires in the testsuite, but since Chris wants it here it is! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92836 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ba4ba754705f4a8261f5cc206b7550da264b82e Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Jan 6 09:20:39 2010 +0000 Formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92831 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad48c6101e1a05463a319d633b5c792cdcefc8dd Author: Lang Hames <lhames@gmail.com> Date: Wed Jan 6 08:53:34 2010 +0000 Fixed malformed -*- lines in PBQP headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a124104bd575702d3cf747362f2f7aed4e24d5c Author: Duncan Sands <baldrick@free.fr> Date: Wed Jan 6 08:45:52 2010 +0000 Partially address a README by having functionattrs consider calls to memcpy, memset and other intrinsics that only access their arguments to be readnone if the intrinsic's arguments all point to local memory. This improves the testcase in the README to readonly, but it could in theory be made readnone, however this would involve more sophisticated analysis that looks through the memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92829 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40520aaab0accf660fb90961ebb571ae4a53bc5b Author: Duncan Sands <baldrick@free.fr> Date: Wed Jan 6 05:49:26 2010 +0000 This is testing a darwin specific feature, so only turn it on for darwin (it fails on linux). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92826 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0e50c434a117c15a8fa1207c0d771a4d7c30149 Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 6 05:32:15 2010 +0000 tweaks suggested by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ad00c5540f2395f1f1f818fdc8472c94d4ec5b3 Author: Dale Johannesen <dalej@apple.com> Date: Wed Jan 6 02:21:00 2010 +0000 Reenable debug info on PPC. Works well enough to bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92818 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1650604edab7e4dfa06acf9d3d443d10e55020b Author: Dale Johannesen <dalej@apple.com> Date: Wed Jan 6 02:20:18 2010 +0000 Make sure debug info hook gets called when emitting synonyms for PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92817 91177308-0d34-0410-b5e6-96231b3b80d8 commit c936035986b63efc9b4939a00f8c7b6c89a4ee7c Author: Chris Lattner <sabre@nondot.org> Date: Wed Jan 6 01:56:21 2010 +0000 Teach instcombine's sext elimination logic to be more aggressive. Previously, instcombine would only promote an expression tree to the larger type if doing so eliminated two casts. This is because a need to manually do the sign extend after the promoted expression tree with two shifts. Now, we keep track of whether the result of the computation is going to be properly sign extended already. If so, we can unconditionally promote the expression, which allows us to zap more sext's. This implements rdar://6598839 (aka gcc pr38751) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92815 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3949409ec0f7daae0bb00b1de69c8e7d4aa6ef8 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Jan 6 00:29:28 2010 +0000 Add <imp-def> and <imp-kill> operands when replacing virtual sub-register defs and kills. An instruction like this: %reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0 Must be replaced with this when substituting physical registers: %S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92812 91177308-0d34-0410-b5e6-96231b3b80d8 commit a92950a1d89495ff71eeb810afe8a97b91f5d26d Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jan 6 00:23:35 2010 +0000 The previous code could potentially cause a cycle. Allow ordering w.r.t. a 0 order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 395df6e62a71cfe78544c48bb31428913130eb2a Author: Bill Wendling <isanbard@gmail.com> Date: Wed Jan 6 00:09:23 2010 +0000 Only check the ordering if there is an ordering for each nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a6edbd5f2a4ab57f4a7a1599bcdd6fc0656910a Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jan 5 23:48:12 2010 +0000 Add a semi-primitive form of scheduling via the "SDNode ordering" to the bottom-up scheduler. We prefer the lower order number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92806 91177308-0d34-0410-b5e6-96231b3b80d8 commit e890c0582d64784ef5f46687633b771490d09e17 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 23:00:30 2010 +0000 simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92800 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e69f124da5e693c022f26f386cf379aaa8ddbf0 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 22:52:54 2010 +0000 Move this test from test/Transforms/IndVarSimplify to test/CodeGen/X86, as doesn't use -indvars, and it does use llc -march=x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92799 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c782402abd47ff98c20462f0b4323ee21b3e961 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Jan 5 22:39:10 2010 +0000 Don't assign the shift the same type as the variable being shifted. This could result in illegal types for the SHL operator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92797 91177308-0d34-0410-b5e6-96231b3b80d8 commit 577421fcce5123c07142cf8b566f5018104ed7b8 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Jan 5 22:37:28 2010 +0000 Undo r92785, it caused test failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92796 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7812806be7e9d35a22891f10db8c0141fc1913b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 22:30:42 2010 +0000 make this a static function instead of a method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92795 91177308-0d34-0410-b5e6-96231b3b80d8 commit f76867ade835085ac472ee8c2f1bd642f241bc85 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 22:26:32 2010 +0000 Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGen uses several kinds of opcode values which are not declared within that enum. This fixes PR5946. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92794 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1caa0958db19c416203c167b9dc71c9ef518200 Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Jan 5 22:22:14 2010 +0000 Re-add parsing of function-local metadata; this time with testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92793 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45056b1b3b40428cdd2bc868b3e22b08ed7661da Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 22:21:18 2010 +0000 more rearrangement and cleanup, fix my test failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71713e4d7e08616092cf0c5b5c125cd007137b39 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 22:07:33 2010 +0000 cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22c5d59dbbc02e05a9820f8e47677dccae7bc3e9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 22:01:41 2010 +0000 remove two trunc xforms that are subsumed by EvaluateInDifferentType. The only difference is that EvaluateInDifferentType checks to ensure they are profitable before doing them :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92788 91177308-0d34-0410-b5e6-96231b3b80d8 commit f907f09e3beff5f5cdbf73f03f1176b10a192ade Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:54:09 2010 +0000 merge some tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92786 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca9de8db30b09ed84437d208bcce979a4ca54e28 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Jan 5 21:51:46 2010 +0000 Add Rt2 to the asm format string for 32-bit Thumb load/store register dual instructions. Thumb does not have the restriction that t2 = t+1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76efae2ec697bdfda9a990d8dcf7f4274618e2be Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:48:13 2010 +0000 merge cast2 into cast.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e2aa9c6d05ae92967563d4f5ee67b820e49d679 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 5 21:47:32 2010 +0000 Allow null to be an element of NamedMDNode. e.g. !llvm.stuff = !{!0, !1, null} git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92783 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb6543085aa2fd762d8b4f3d7e1e99b5f6076af9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:46:22 2010 +0000 remove useless test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92782 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ec43a964e0ede67b993f0d57d5bfb7e074e20c7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:43:08 2010 +0000 another example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97b05e1f2cdeb9cefbc7a384f84386929110307d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jan 5 21:38:37 2010 +0000 Don't specify CR sub-registers as implicit defs of BL instructions. It is enough to give the super registers CR0, CR1, ..., and specifying the sub-registers as well causes confusion in the liveness computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92778 91177308-0d34-0410-b5e6-96231b3b80d8 commit a861e464d1b2bc60b4af7e816c39c4caa71a38da Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:37:44 2010 +0000 remove a useless negative test, add a rdar # to an xfail that I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92777 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51d53cad7db9e399c42021ee089a80e0a03ca846 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:32:59 2010 +0000 clean up tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92776 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb055724810e5b4d84c0505ba305a5aecfb93513 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:16:30 2010 +0000 just remove this xform which is subsumed by others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92775 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b1ab26cbc910289f76aa19ec6a510e4e6dab8cd Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Jan 5 21:13:46 2010 +0000 Fix comment for CheckDebugInfoIntrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 606a958f8d5d8e3417b6b4f8e14c4c55e90d1a42 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:11:17 2010 +0000 move a trunc-specific transform out of commonIntCastTransforms into visitTrunc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92773 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93ec5843d1fc59fa69c7e3161a7b06634a6cf78c Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 21:08:02 2010 +0000 Restore dump() methods to Loop and MachineLoop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92772 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad813fb581b9cff83a73b9880dcbd76979caf0d4 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jan 5 21:05:54 2010 +0000 Move remaining stuff to the isInteger predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63da1cba0e6d07487bab072e7ee77908f6de5c5b Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 21:04:47 2010 +0000 move a zext specific xform out of commonIntCastTransforms into visitZExt and modernize it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92770 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6a0623e233f3816bb29e604afa10eb584d6cda3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Jan 5 20:59:36 2010 +0000 Remove livein checks from machine code verifier. A phi operand that is implicitly defined in a predecessor becomes an undefined register after phi elimination. This causes a lot of false positives when the verifier is checking if live-in registers are live-out from all predecessors. Removing the verifier checks seems like a better solution than insisting on IMPLICIT_DEF instructions in predecessor blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92769 91177308-0d34-0410-b5e6-96231b3b80d8 commit b422edb4b823f29dd8858b7f737da4a06fda5696 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 20:57:30 2010 +0000 move a trunc-specific xform out of commonIntCastTransforms into visitTrunc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16d493af3fff031e1a79708744aa7379b1373b61 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 20:56:24 2010 +0000 reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92766 91177308-0d34-0410-b5e6-96231b3b80d8 commit 479ee3c9e53cb0c4ace0963cf7541c5a85c58f3f Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Jan 5 20:45:43 2010 +0000 Regenerate git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92763 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59dfe2ddb5972ceff4ead29fa4a9e489b3e1f01d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Jan 5 20:45:13 2010 +0000 Proper deduce z/System LLVM target from target triple when --enable-targets=host is specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92762 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6aa6bf8f7f435c02ff239cd88e1c2f95b19b9708 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 5 20:41:31 2010 +0000 NamedMDNode is a collection MDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92761 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee780ee28aeb83c8fb2138865ff5f9cf824d43d0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jan 5 20:07:06 2010 +0000 Convert a ton of simple integer type equality tests to the new predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92760 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b915ae131104fa253c8e31aa4bb675f267deed3 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jan 5 20:04:48 2010 +0000 Add a new predicate for integer type equality tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92759 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c7426eee32d132c4a02177f159ac66ea9a0f331 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 19:11:42 2010 +0000 Add an !eq() operator to TableGen. It operates on strings only. Use !cast<string>() to compare other types of objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92754 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29773ea81f20037e51adf9e56bd24cb274047534 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 18:24:00 2010 +0000 Add an entry on SmallBitVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92747 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb9dcdd909be81b7e6e7a609e23c9009316a1353 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 18:09:56 2010 +0000 optimize comparisons against cttz/ctlz/ctpop, patch by Alastair Lynn! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92745 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8ddc0968cd2bba6da3ef3138036e036d84217cd Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 17:55:26 2010 +0000 Delete useless trailing semicolons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28bdf411d6ec32297ce6739980ef866a52530312 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 17:50:58 2010 +0000 Nick Lewycky pointed out that this code makes changes unconditionally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92739 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9640cd0439ef4ba5c00ea37abe90703e0acf842 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 17:47:41 2010 +0000 Have TableGen emit code that uses dbgs() rather than errs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a3811590dfe3fd6170d52f93058069df8e2caa3 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 5 16:59:17 2010 +0000 If a scope has only one instruction then first instruction is also the last instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92736 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fbfa9687086a4012cede8a5a2783359368a3098 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 16:31:45 2010 +0000 Set Changed properly after calling DeleteDeadPHIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92735 91177308-0d34-0410-b5e6-96231b3b80d8 commit f67674f4d2952ba521a50341d53f7c3eadd1e43b Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 16:27:25 2010 +0000 Use do+while instead of while for loops which obviously have a non-zero trip count. Use SmallVector's pop_back_val(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92734 91177308-0d34-0410-b5e6-96231b3b80d8 commit e287750464c4fd8cec6c4f69b1a6e92579e4300b Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 16:20:55 2010 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92733 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1457eefb50e703a2714db72d294650b972e5aaae Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 15:45:31 2010 +0000 Make RecursivelyDeleteTriviallyDeadInstructions, RecursivelyDeleteDeadPHINode, and DeleteDeadPHIs return a flag indicating whether they made any changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92732 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5827eb7c9743b407e423ecebe7e0d5600e835d9 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 15:28:21 2010 +0000 Some versions of GCC don't like non-static data members in sizeof in this context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92731 91177308-0d34-0410-b5e6-96231b3b80d8 commit b564a5e38a3d697a2dcdc0fd3c67b5fee589eee5 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 15:04:49 2010 +0000 Add a SmallBitVector class, which mimics BitVector but uses only a single pointer (PointerIntPair) member. In "small" mode, the pointer field is reinterpreted as a set of bits. In "large" mode, the pointer points to a heap-allocated object. Also, give BitVector empty and swap functions. And, add some simple unittests for BitVector and SmallBitVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dc6d30881a65dc537c0c3a5c1c005e1449c2133 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jan 5 13:32:48 2010 +0000 Add newline at EOF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 858baacd9c8cfae680149e4d72dab591a5fd637c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Jan 5 13:12:22 2010 +0000 Avoid going through the LLVMContext for type equality where it's safe to dereference the type pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92726 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e464881096a6ef718ee688d080abd7e701371b0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:54:43 2010 +0000 prune some #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92712 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb72cf3929ba8042b0b230763cee02cdd0c88288 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:50:36 2010 +0000 split and/or/xor out into one overly-large (2000LOC) file. However, I think it does make sense to keep them together, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92711 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae482825f6ac21f924a210234a2e4b6c6a4fa82d Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:45:02 2010 +0000 missed file with previous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92710 91177308-0d34-0410-b5e6-96231b3b80d8 commit d351cbf681772a64c07daeec87855c801bf9d74d Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:44:46 2010 +0000 split instcombine of shifts out to its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1af5dfe4f0862350ab2a35a629d5b63fac6576a6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:42:10 2010 +0000 eliminate getBitCastOperand and simplify some over-complex inbounds stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92708 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2297ce9d1815478d31dac279a7ad3a669f5d7ba Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:32:13 2010 +0000 split call handling out to InstCombineCalls.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92707 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5d0e61248bfc0b9cfb4983065e565c210b07791 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:23:56 2010 +0000 optimize cttz and ctlz when we can prove something about the leading/trailing bits. Patch by Alastair Lynn! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d84c24f92b885713398c90b2dcee259f25403f5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:20:54 2010 +0000 this inline function moved to addsub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92705 91177308-0d34-0410-b5e6-96231b3b80d8 commit d703eac299f29f6268be2618668e57901083542a Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:18:46 2010 +0000 split add/sub out to its own file. Eliminate use of dyn_castNotVal in the X+~X transform. dyn_castNotVal is dramatic overkill for what the xform needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42fae658f2d2901ec44ce0517ce3daf5d71b0895 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:04:23 2010 +0000 all the places we use hasOneUse() we know are instructions, so inline and simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92700 91177308-0d34-0410-b5e6-96231b3b80d8 commit 814855971448ccc6e772c0303d6f042a0cda674e Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 07:01:16 2010 +0000 eliminate AssociativeOpt and its last uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92697 91177308-0d34-0410-b5e6-96231b3b80d8 commit b93a1fd7e5455a00306a7a09fc46c669dd7021d9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 06:59:49 2010 +0000 inline the FoldICmpLogical functor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92695 91177308-0d34-0410-b5e6-96231b3b80d8 commit 026ba2cf2249ae64bebe4eaab7d5aef1403d010a Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Jan 5 06:52:31 2010 +0000 Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ba5f27addb99d481ae5f685d05ffb42cb211871 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 06:29:13 2010 +0000 inline the 'AddRHS' transformation, simplifying things significantly. Eliminate the 'AddMaskingAnd' transformation, it is redundant with this more general code right below it: // A+B --> A|B iff A and B have no bits set in common. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96a816542b98c6dd14b4667aab400745a7b0d5a7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 06:24:06 2010 +0000 remove massive over-genality manifested as a big template that got instantiated. There is no reason for instcombine to try this hard for simple associative optimizations. Next up, eliminate the template completely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92692 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2b8ec3e8c5a05a4bd69a22927c489089c21b421 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 06:09:35 2010 +0000 split mul/div/rem instructions out to their own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92689 91177308-0d34-0410-b5e6-96231b3b80d8 commit eae8d32eaa2fb3119af67221c7bafd3bb8d5857d Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 06:05:07 2010 +0000 clean up header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92688 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79604e01bb64b3bee0d1d0351840057de0617702 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 06:03:12 2010 +0000 split select out to its own file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92687 91177308-0d34-0410-b5e6-96231b3b80d8 commit c025853866d3e56dc2f627a6dda97a9333575256 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 05:57:49 2010 +0000 split out load/store/alloca. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92685 91177308-0d34-0410-b5e6-96231b3b80d8 commit f61c5394db9842cefb9e44f9f9fda7c19e698a2e Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 05:42:08 2010 +0000 reduce indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dad9c196c6bae7a062746c7868a2b75e297f4d8 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 05:36:20 2010 +0000 split vector stuff out to InstCombineVectorOps.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05b3d10412bbe139175225e2cf949e34c80fe2a4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 05:31:55 2010 +0000 split PHI node stuff out to InstCombinePHI.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92682 91177308-0d34-0410-b5e6-96231b3b80d8 commit 766096ee360c85c4fcc6b3b98d2086a661c9c5ea Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 05:21:26 2010 +0000 convert various IntrinsicInst's to use class instead of struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92681 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0a35fed9af18017f2961af9428a1547298db3c4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Jan 5 04:55:35 2010 +0000 fix an infinite loop in reassociate building emacs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92679 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41698a6dfd9977a8ed968c2bc89d8250ea4d9328 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:55:22 2010 +0000 Change this back to errs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92674 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99c71a3dee39e19a3edbd470803924eeb3f9add4 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:53:59 2010 +0000 These should probably be errs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92673 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43c60b5c700d72299f9d1885fa1a6b1920027ae0 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 5 01:47:06 2010 +0000 Delete renaming use of dead dbg intrinsics. Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92672 91177308-0d34-0410-b5e6-96231b3b80d8 commit 531076d281fa2d7f6f21af87a04250d3e8ba913d Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 5 01:46:14 2010 +0000 Use StringRef.startswith(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92671 91177308-0d34-0410-b5e6-96231b3b80d8 commit f851739c54a45d6643904d97c5100325bb85d3d0 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:36:30 2010 +0000 Fix a build error by adding a missing commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95303c43a6cb6fc0aebea1dbd6e86c0382cb7e92 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:34:26 2010 +0000 Fix a build error and change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92669 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff668bd0afa5c8aaf510fc78048e80d7b378ab26 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 01:31:15 2010 +0000 Remove an unneeded svn:ignore property. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92668 91177308-0d34-0410-b5e6-96231b3b80d8 commit d48b9d36ce2411d9fb784811fa3479b434ec528a Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:32 2010 +0000 Enable debug buffering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92667 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f48e8a93bed1a5d72096a27d7dc1561b47c3205 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:21 2010 +0000 Enable debug buffering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92666 91177308-0d34-0410-b5e6-96231b3b80d8 commit 215fdbe5e0022bbfcafad1db0a2e1e5e039279f7 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:18 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92665 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6da905440f801558cb0d8c02b8006e09557c3c07 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:14 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 382d2a453480a0e7f6538e11b2d50c69e1a6e8f1 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:09 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92663 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0529d6db651b0a96d48cca38021e7bfaf5b2a43 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:06 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b306fece97e14dcdc4de5aea270666b25435532 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:04 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92661 91177308-0d34-0410-b5e6-96231b3b80d8 commit 529ac770e9009a1d9de97a61ff8d07822c121587 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:02 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92660 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0a29a72319f76ef7ed6a4f14a5bce833f077dc3 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:30:00 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92659 91177308-0d34-0410-b5e6-96231b3b80d8 commit faaddb09209ce9bb8f1a658f9cbb5f0d17e57e43 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:58 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92658 91177308-0d34-0410-b5e6-96231b3b80d8 commit f67089ae87e5f4296c88caa9bb019d26190efd2c Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:55 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6cce0b1be6f65dc8f24824de8eb148aa405e76b6 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:39 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b37d570f100622830b7241a5eb243b9fff46184 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:36 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15337a687640c9c72d8432c2afdb97cc39d26d24 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:34 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c671aefc167ae8dbe46837005688c6c81327948 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:29 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67301b17b8350759c64aa5547fbe83f1baa60f6e Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:26 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92652 91177308-0d34-0410-b5e6-96231b3b80d8 commit 852dc4d82b4582ed260b39d67f6572796c080c0b Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:23 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92651 91177308-0d34-0410-b5e6-96231b3b80d8 commit 835365cac97924398689e0d69a671ac7b418c055 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:19 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92650 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56882e97c4e97a6e86d7d2a0d80d58777f87ab47 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:14 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73c006972f9bc3832d232f61959b743a189121b4 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:13 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92648 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1d5c5991760fc2994c124126fa74ab392c6d97a Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:08 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92647 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59b924335b7c0b1c5b17d981b4bf3148be8dd628 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:29:03 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52363b09d7378733ef5bd5590b756726800dbf4a Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:58 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92645 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5bedcbea0e754ae0ba67a59b53e27b8dbfdd331 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:53 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59a30016da3daa3f4695b20ab00488e7a9ae072d Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:52 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92643 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3efbfee970d7c1c6d2560c9b4be9c9de67b788a0 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:47 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ce5f8e7404a61aad3ac1bc59a56fb2a60ba5cbf Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:43 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a83d59f3668d34acac46c08cc033307ab4618c5 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:40 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ecd022a2e67c3c1794e8fe4ebc8f25c7d7f8da9 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:37 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92639 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd26a7de77554c3e38d88661013a77efc635ed32 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:32 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22c7c1119b22f529ef2b985877face5791b88829 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:29 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92637 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7d144c6fab0a60928503264f3baf4d17cfbdaa1 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:29 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92636 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2583a55dd3aebdacbbfd99603c13996b4cd3d8d0 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:22 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60bd5f7897b0d386d71a73844fd3883839821c5a Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:17 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4185b0fe17814035e6e28c5c0e93b182d23c9125 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:12 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92633 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9a9a0690f376b5dfaecea0d6349cb59dd29c033 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:10 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92632 91177308-0d34-0410-b5e6-96231b3b80d8 commit adea762453eb41624f37e151d284fc20d3ea721c Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:07 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92631 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ceab92772248e28c3964b7c9245b679c72b23ae Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:07 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92630 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c9ab7a78ba28729d7c8098927c0bb7c8cc7fcd0 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:28:05 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92629 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61317a6a3789541b9dcd6341916ff31d51cc738f Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:59 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92628 91177308-0d34-0410-b5e6-96231b3b80d8 commit a088f76653c57e8157e6743ae486485dc63a47a9 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:54 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d91eb1ee673dc2eb83a82525475b2083efd81be Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:53 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92626 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1bc08c7f8e3a9959c33ff114ec3ad30af55b0d5 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:51 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92625 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64f3b3b649fefc065b7714c977d4360d459a4766 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:47 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92624 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0afa05d4487081749fd2f4a4ff2e16300a52d535 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:44 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92623 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79aa2ea6f0e98b1d6c832eaf0f44abbb23c116d5 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:39 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92622 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba58be830bb1c1b429cf85d401d8b92e66dc1329 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:39 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92621 91177308-0d34-0410-b5e6-96231b3b80d8 commit f25948108fbaecb985ab3a2fbbf7d9fa1916338e Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:33 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8892465cc5cfe8e6f279de9d6246430953e5d21a Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:30 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92619 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0011785b1d262783eda1dcdabac5a3581dc7c0f9 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:26 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92618 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9196a5558243d71d7ed72a838774896b43deff08 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:24 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92617 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35d99dcce0486fca2656a5d8eaa1cf5cc923c530 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:23 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92616 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd461df87ab202fcd702744b79511eaeaf66448b Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:21 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92615 91177308-0d34-0410-b5e6-96231b3b80d8 commit fac2751e262b8306477c6917daeb9ac789e49502 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:19 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79a83e8d8a7d451171e547edf4a0db10bbaf5cf0 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:17 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92613 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc227c754c5faa7c071e58f0d698e73eef797b28 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:15 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92612 91177308-0d34-0410-b5e6-96231b3b80d8 commit d21e9eeed93ebc545767c0376a7f1a175b4f4672 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:11 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92611 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3c9cb59fdf2754f6ff8000d7a5e36c527c504a9 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:09 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92610 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c4e1a2a7ace4fee36c8ba69f4151b95a6548944 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:06 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92609 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd7f741e59d004e03a265b2d7c8f712a62448c37 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:04 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92608 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3c7a47197bede65dccfa27ffa814326aba414d3 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:27:01 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92607 91177308-0d34-0410-b5e6-96231b3b80d8 commit c634876cea513c5a275b638287a51025be46a067 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:57 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92606 91177308-0d34-0410-b5e6-96231b3b80d8 commit e76939b714e55cb85990bcbc6b116374f41404fa Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:54 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92605 91177308-0d34-0410-b5e6-96231b3b80d8 commit 068c60489d7c516ea14920e63d19668c931868af Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:52 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92604 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57ed64508e31f5cbe84a9cf9d647bcf2a1b3c3d7 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:49 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92603 91177308-0d34-0410-b5e6-96231b3b80d8 commit a37114727346745e667dc003990e9afbd3747f88 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:45 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92602 91177308-0d34-0410-b5e6-96231b3b80d8 commit d91e136d7029b08fda45b8787f5072a8a1299f47 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:44 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7564d1640d9e6392eea3411c4225d223754abe2e Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:41 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92600 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0da7f3da989122349e5f88adec40a0f6fa289886 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:39 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92599 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2bbf04af3985f22c4c3a125c92944bc16c4f648 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 01:26:36 2010 +0000 Add an svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92598 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3dd58c22213899ccb75a7c2ca8aa231862c07f9 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:11 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92597 91177308-0d34-0410-b5e6-96231b3b80d8 commit 776d497ebe1a2f564e6347c9868068da15268760 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:09 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92596 91177308-0d34-0410-b5e6-96231b3b80d8 commit b47bdc31a4d95334741afd2f641e1689ebbc6b77 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:05 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92595 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c5fe44145e826545583d327163bb85117b8fab1 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:01 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92594 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4470f146b54d320ec487817e4d5b5db462360ee Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:26:00 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92593 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4629465b6f1e87f2def1f26daafef9920a32c2c2 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:58 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92592 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16fbd3d7b8f99053d375b33f3b59f6d0e0a62fef Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:55 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63a27d7d439ca535de3bae6c706bb7504fe98b3b Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:52 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92590 91177308-0d34-0410-b5e6-96231b3b80d8 commit e745659a1bda8c67da88fe675dc04a8e27f1925d Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:50 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92589 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d52f4500b8ff94b69c24667aab93162158443de Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:47 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92588 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d85752a7d4c66ac62cf4f2ba094020ee70935bf Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:45 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92587 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa4099eb1bf8ab16ba4a8036afd6f161e04ff9d1 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:43 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b268b9ca85f035ffabe5dc1ccbe38bba1a29148 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:41 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92585 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cddd05371227ebd98311b3f3c0f626023d38aab Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:39 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92584 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a0d2ab26242c7480217a853afed4028373dc137 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:20 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92583 91177308-0d34-0410-b5e6-96231b3b80d8 commit cea20bca449b5ea4a839ea4130fd121c300b9c92 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:15 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f2c44e41b585b295ffdbd6d3a2d9e00b62775fc Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:11 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92581 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3a4bf8ebe6d1dd90bb691a8d264bc202d662aa1 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:09 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92580 91177308-0d34-0410-b5e6-96231b3b80d8 commit c104cbb8edc6b851833b551ab17602ac71eebe49 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:04 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92579 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc886fd09a37b8afd503786f00f935a78f5913c8 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:25:00 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92578 91177308-0d34-0410-b5e6-96231b3b80d8 commit f622a561bec3cb20e445fd37689a92ecc2408e09 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:57 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92577 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c5590fb1ca3540b9ed2e5017810ac51a6c893c6 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:54 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92576 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2af6867e420ba87dc4dd29b01e69afab59bfd3c Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:53 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 943eb7e561156c187c8a8456aa5e0d08e20b8980 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:50 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92574 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0d039ffd114fa91fd4df22cd42842370e03cb59 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:48 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92573 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd5f499efa60f305850c1bad00b20404ca628aca Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:45 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3cfe335798a9942af1afab2dcda69cbebfde8994 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:43 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92571 91177308-0d34-0410-b5e6-96231b3b80d8 commit da0fe032fe1e3834cadb2731abf2c1065dd460d1 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:40 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92570 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34f085e22d9996fffa66ee1caed4371e86795d49 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:36 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92569 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac5c2b30d15893827c95c56698990b66e888edf6 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:34 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92568 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc4e392f43d93118dc0d90b38eb533fced2e714d Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:28 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92567 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95ce44444ab8457d0717ecc97cbc0e785f02094e Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:24 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92566 91177308-0d34-0410-b5e6-96231b3b80d8 commit a10627702f4fc7e0e503a8fbc23014da18fd91d8 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:21 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39d140d93435c1d47305d0b1c3b8db7b222b6222 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 01:24:18 2010 +0000 Change SelectCode's argument from SDValue to SDNode *, to make it more clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0596ab962e731ae23fa4c76b8597383ef6c55a01 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:24:08 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92563 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc82e7278d2eff71b8a47a5b7c8db31ee12b02b5 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:23:38 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c9fef71bd4164efec7f46046395b3395c8b3575 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:23:36 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92561 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4714553b53a495261b0ba92705b180368e141129 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 01:23:34 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92560 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6aa30a282356389719971dbc7cdef10b8d2896e3 Author: Devang Patel <dpatel@apple.com> Date: Tue Jan 5 01:10:40 2010 +0000 Remove dead debug info intrinsics. Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start AutoUpgrade simply ignores these intrinsics now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ac796828741a1b2c3e88fc075184a9db2bce949 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 00:44:20 2010 +0000 Remove the SDNPAssociative properties for the flags-producing operators. Eli pointed out that it's not obvious what that would mean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92555 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7f4c5fc8893cd5ec147dcfaecaf617800ee863d Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 00:42:54 2010 +0000 Simplify this code; avoid duplicating the low-level implementation code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92554 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7b35a5f21112194c360dacc622e24916eb38844 Author: Dan Gohman <gohman@apple.com> Date: Tue Jan 5 00:30:22 2010 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92552 91177308-0d34-0410-b5e6-96231b3b80d8 commit f28809f180f22eb4192453cc4e0424f8cd41107d Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Jan 5 00:15:58 2010 +0000 Fix some struct/class specifier mismatches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92550 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3af787f06e5e1666cb524108809b64a51519e821 Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 00:10:05 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92548 91177308-0d34-0410-b5e6-96231b3b80d8 commit b46fdc9d84af01acad41e371d1877bf45b1bdcdd Author: David Greene <greened@obbligato.org> Date: Tue Jan 5 00:03:48 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92547 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7740668041ab6fd7315ca049a0d967ee3c264dc8 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 23:48:20 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92545 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd6aa515da7f9404f1fcc0c07b5c8ebd922639d2 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 23:39:17 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92544 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64fcd6ae4e3e5838f8954d5853031f96fbeb2565 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 23:22:07 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92542 91177308-0d34-0410-b5e6-96231b3b80d8 commit 186652ea7b671784c6987b4eb0a2f4e663f40fb9 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jan 4 23:17:24 2010 +0000 Update CMake LibDeps git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92540 91177308-0d34-0410-b5e6-96231b3b80d8 commit 935e55d50f4cab2e2ca15efc9951a2fb2bb04bc0 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 23:14:46 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92539 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58efec0df55ebc1ad60eb51aba2b2583cf3e55c8 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 23:06:47 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92535 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76a36035fa6480cc945fea7b020758102ec05149 Author: Devang Patel <dpatel@apple.com> Date: Mon Jan 4 23:04:36 2010 +0000 Fix debug_inlined section entries for routines whose names are changed through __asm() extension. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92533 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84aab429d79955e5c13dfeaa210c7aaccaba44eb Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 23:02:10 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 652c5971b72c00ec4e753b1bdb56f80a95a8bbf5 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 22:49:02 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70a291d70d6285c6f0392e9a94c5c89e3f89db20 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 22:41:43 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92528 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0bf334e685123790b89f8bd1d4628a98d1a63b7 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 22:33:16 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92524 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55fa754fbdb50727509d61d3ef0ea39755eb40ca Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Jan 4 22:03:51 2010 +0000 tblgen/OptParser: Use EmitSourceFileHeader. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92521 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3d201c40d3cfd5f7c47db544d0163549b97cd73 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 22:02:01 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92520 91177308-0d34-0410-b5e6-96231b3b80d8 commit f398207f3eafa89375414ee8494a366040131cf9 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Mon Jan 4 21:58:55 2010 +0000 Fix CMake build for InstCombine changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92519 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43d49789c42281da24317ac5fe35aa570a787ec0 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 21:48:34 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c9becc2902dbbd23607546ffa8c3cfd10c7182e Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 21:35:15 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92516 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7948031039206fc69c92a63459b2937ec6918b4 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 21:26:07 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7908cbcbfbc70072231d2a4d3634455f4c3765a0 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 21:23:34 2010 +0000 Make this test more portable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92514 91177308-0d34-0410-b5e6-96231b3b80d8 commit f94a1da1ad4ccfab06440a63d4af16e2368da537 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Jan 4 21:22:48 2010 +0000 Perform this folding as a target specific dag combine: (or (x << c) | (y >> (64 - c))) ==> (shld64 x, y, c) The isel patterns may not catch all the cases if general dag combine has reduced width of source operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92513 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca20adc5b0ede83ed94670f38cab04ed314266dd Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 21:00:54 2010 +0000 Use a pointer type rather than MVT::Other for the ExternalSymbol node used in an inline asm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ded4e05a5295cb0f30fc9706bb9ed5c96b60bb8 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 20:55:05 2010 +0000 Remove some README.txt entries which are now implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92511 91177308-0d34-0410-b5e6-96231b3b80d8 commit 211f193cef4d20bfdda069634ca015a9c16570a4 Author: Devang Patel <dpatel@apple.com> Date: Mon Jan 4 20:54:06 2010 +0000 Remove oversimplified test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92510 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78591841b67f381ad822f76c4d5ce99891688d22 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 20:53:54 2010 +0000 Add some tests and update an existing test to reflect recent x86 isel peeps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e8173fa6f122ddc2680eb974f6618dfae1f3973 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 20:52:50 2010 +0000 A use by operand 1 or 2 of a SELECT is not a FLAGS use. This lets the test-elimination work in more conditional-move cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92508 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfbbad61bac01130af80d78538d3753207debb29 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 20:51:50 2010 +0000 Flags-producing add, and, or, etc. have the same profibility rules as normal add, and, or, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a3828c2f5f39d4cc8b911d98cb246ca2a9afeb2 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 20:51:05 2010 +0000 Add SDNPCommutative and SDNPAssociative to several X86 target nodes. This lets isel fold loads into them in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92506 91177308-0d34-0410-b5e6-96231b3b80d8 commit a48781ef9f52fa184b38ff497ae0912d13c24c4d Author: Devang Patel <dpatel@apple.com> Date: Mon Jan 4 20:44:00 2010 +0000 Fix begin and end markers for nested scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92505 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b792c95e6d4e3139a92e1153685946f1b11f845 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 20:36:57 2010 +0000 Replace some special-case code which probably was buggy with an assertion verifying that the special case does not occur. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92504 91177308-0d34-0410-b5e6-96231b3b80d8 commit cce9d29538cca89df73ca76b8bb7bbd065badf15 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 20:31:55 2010 +0000 Remove the CPAttrParentAsRoot code, which is unused, and inconvenient for a refactoring I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 262378f0fe604903e98b8b9c696f7aa896f054c6 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 19:57:26 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92502 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c6ce780e77241207156775ca4e85489f5e5ff82 Author: Devang Patel <dpatel@apple.com> Date: Mon Jan 4 19:41:13 2010 +0000 The test, derived from optimzed IR, does not mention "bar" in debug info anywhere so the dwarf writer is not expected to emit any debug info for function "bar". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92499 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae758424789f1d19e87bd3d110177ec79271f960 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 19:36:42 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a28ffb27778158d230faa706ba627b3e41099f5 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 19:10:20 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92496 91177308-0d34-0410-b5e6-96231b3b80d8 commit c435b9e36e8ba86654d488d7c3de3caaaf6e0753 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 18:57:15 2010 +0000 Truncate GEP indexes larger than the pointer size down to pointer size when doing this transform if the GEP is not inbounds. No testcase because it is very difficult to trigger this: instcombine already canonicalizes GEP indices to pointer size, so it relies specific permutations of the instcombine worklist. Thanks to Duncan for pointing this possible problem out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92495 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1bb07aa0d9650f11d99de47f1cf9da531b45cac Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 18:48:26 2010 +0000 silence a bogus 'might be used uninit' warning from GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92494 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f3bf4c5544c4857eebf61b1055dd90ef37c58c7 Author: Dan Gohman <gohman@apple.com> Date: Mon Jan 4 18:38:39 2010 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92492 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24f90acb9d46605228ee5448934c4c00f7f0b721 Author: David Greene <greened@obbligato.org> Date: Mon Jan 4 17:47:05 2010 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92490 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee898135b401794d095886f24f04b4bb42d3f25e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Jan 4 10:31:54 2010 +0000 Fix invalid chain folding for memory variant of sdiv / udiv git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92472 91177308-0d34-0410-b5e6-96231b3b80d8 commit e800b08fb8273246ede9495efb76f51df5104755 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 07:59:07 2010 +0000 move some more cast-related stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92471 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3529dd1d9672a47ba64c17314fcff8373bda8b8b Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Jan 4 07:55:25 2010 +0000 80-col violations, trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92470 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b2e6feb96d027ae57c4e2c16d44c81794be97fe Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 07:54:59 2010 +0000 move the [Can]EvaluateInDifferentType functions out to InstCombineCasts.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92469 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bbb8a358a666d66fdbf6870abf3cc9b2ead186d Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 07:53:58 2010 +0000 split 943 lines of instcombine out to a new InstCombineCasts.cpp file. InstructionCombining.cpp is now down to a svelte 9300 lines :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92468 91177308-0d34-0410-b5e6-96231b3b80d8 commit 004eae9138c629055b1d8f0c6a083cc7f64f7585 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 07:37:31 2010 +0000 split instcombine of compares (visit[FI]Cmp) out to a new InstCombineCompares.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92467 91177308-0d34-0410-b5e6-96231b3b80d8 commit 078c8b595c346a58f13c995c56af11d61fdfd099 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 07:19:55 2010 +0000 update cmakefile git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92466 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ef9cadf1ac6f58ce9cfaff94783ecd41a888e79 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 07:17:19 2010 +0000 move the 'SimplifyDemandedFoo' methods out to their own file, cutting 1K lines out of instcombine.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92465 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0108c8c925828fa1020f0b87abe9a2de4a0d972 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Jan 4 07:16:12 2010 +0000 Fix the Emacs mode string. Also trailing whitespace & 80-col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92464 91177308-0d34-0410-b5e6-96231b3b80d8 commit c737bae32e523f6e848986187bdd2a60a0d99461 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 07:12:23 2010 +0000 split the instcombine class definition out to a header shared among the instcombine library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92463 91177308-0d34-0410-b5e6-96231b3b80d8 commit 635eb0cb378a8abe8376fc4f6c75b6f9255d67ee Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 07:02:48 2010 +0000 remove a ton of unneeded LLVMContext stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92462 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3de1b03506fa746783da702a4b2791b8aac5e66d Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 06:30:00 2010 +0000 move InstCombineWorklist out to its own header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92461 91177308-0d34-0410-b5e6-96231b3b80d8 commit b43a92358666cb00a5dfa7ec95197ba9c13a65c4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 06:28:20 2010 +0000 forgot to svn add these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92460 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d4c5c1d1462a330aac5a9067153a20c50c1eb84 Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 06:23:24 2010 +0000 move instcombine to its own library, it's past time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92459 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1bad7405d2d9c24a1cfd27b0fa7938cd795b79b Author: Chris Lattner <sabre@nondot.org> Date: Mon Jan 4 06:03:59 2010 +0000 implement an instcombine xform needed by clang's codegen on the example in PR4216. This doesn't trigger in the testsuite, so I'd really appreciate someone scrutinizing the logic for correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92458 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3a3e6366fa8ad087d355e4e7508b3cd359dd7cf Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 3 18:33:18 2010 +0000 fix PR5930, allowing the asmprinter to emit difference between two labels as a truncate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92455 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a0e9c64aa48fb1137b36930e90d20b744c2e3ab Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 3 18:14:24 2010 +0000 it isn't safe to speculative load from a malloc, it might have returned null, and may not have been big enough in any case. Thanks to Jay Foad for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92452 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a30434516d58591e41031fcbe5122231f2dd74c Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 3 18:10:58 2010 +0000 add PR# git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92451 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32bf9d34a062d5039f8f14498ba0af061461b65b Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 3 18:09:40 2010 +0000 differences between two blockaddress's don't cause a global variable initializer to require relocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30000569c3e23cd39bcdb419d8416935ffdf7c08 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 3 06:58:48 2010 +0000 pull my debug hooks out, I'm done with this xform for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92446 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf48d8953d20dd801bd4eea038ea0b60e969e9a1 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Jan 3 04:39:07 2010 +0000 Small cleanups, refactor some duplicated code into a single method. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74136f9c91a8bc0f19e637e35a18d3f6487e5129 Author: Chris Lattner <sabre@nondot.org> Date: Sun Jan 3 03:03:27 2010 +0000 generalize the previous transformation to handle indexing into arrays of structs and other arrays, so long as all the subsequent indexes are constants. This triggers frequently for stuff like: @divisions = internal constant [29 x [2 x i32]] [[2 x i32] zeroinitializer, [2 x i32] [i32 0, i32 1], [2 x i32] [i32 0, i32 2], [2 x i32] [i32 0, i32 1], [2 x i32] zeroinitializer, [2 x i32] [i32 0, i32 1], [2 x i32] [i32 0, i32 1], [2 x i32] [i32 0, i32 2], [2 x i32] [i32 0, i32 2], [2 x i32] zeroinitializer, [2 x i32] zeroinitializer, [2 x i32] zeroinitializer, [2 x i32] [i32 0, i32 2], [2 x i32] [i32 0, i32 1], [2 x i32] zeroinitializer, [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 1], [2 x i32] [i32 1, i32 1], [2 x i32] [i32 1, i32 2], [2 x i32] [i32 1, i32 1], [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 2], [2 x i32] [i32 1, i32 2], [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 0], [2 x i32] [i32 1, i32 1], [2 x i32] [i32 1, i32 2], [2 x i32] [i32 1, i32 2]], align 32 ; <[29 x [2 x i32]]*> [#uses=50] %623 = getelementptr inbounds [29 x [2 x i32]]* @divisions, i64 0, i64 %619, i64 0 ; <i32*> [#uses=1] %684 = icmp eq i32 %683, 999 also for the "my_defs" table in 'gs', etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92444 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb77a9a904dea843a61ed8da02f44f6a91bb81cd Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Jan 3 00:55:31 2010 +0000 Cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92436 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd10dc6d790610482dd8f95c28a19740df436244 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 22:08:28 2010 +0000 teach instcombine to optimize idioms like A[i]&42 == 0. This occurs in 403.gcc in mode_mask_array, in safe-ctype.c (which is copied in multiple apps) in _sch_istable, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92427 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0fc16e3f995888e1452b115a14a23cc49025ac4 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 21:50:18 2010 +0000 Teach the table lookup optimization to generate range compares when a consequtive sequence of elements all satisfies the predicate. Like the double compare case, this generates better code than the magic constant case and generalizes to more than 32/64 element array lookups. Here are some examples where it triggers. From 403.gcc, most accesses to the rtx_class array are handled, e.g.: @rtx_class = constant [153 x i8] c"xxxxxmmmmmmmmxxxxxxxxxxxxmxxxxxxiiixxxxxxxxxxxxxxxxxxxooxooooooxxoooooox3x2c21c2222ccc122222ccccaaaaaa<<<<<<<<<<<<<<<<<<111111111111bbooxxxxxxxxxxcc2211x", align 32 ; <[153 x i8]*> [#uses=547] %142 = icmp eq i8 %141, 105 @rtx_class = constant [153 x i8] c"xxxxxmmmmmmmmxxxxxxxxxxxxmxxxxxxiiixxxxxxxxxxxxxxxxxxxooxooooooxxoooooox3x2c21c2222ccc122222ccccaaaaaa<<<<<<<<<<<<<<<<<<111111111111bbooxxxxxxxxxxcc2211x", align 32 ; <[153 x i8]*> [#uses=543] %165 = icmp eq i8 %164, 60 Also, most of the 59-element arrays (mode_class/rid_to_yy, etc) optimized before are actually range compares. This lets 32-bit machines optimize them. 400.perlbmk has stuff like this: 400.perlbmk: PL_regkind, even for 32-bit: @PL_regkind = constant [62 x i8] c"\00\00\02\02\02\06\06\06\06\09\09\0B\0B\0D\0E\0E\0E\11\12\12\14\14\16\16\18\18\1A\1A\1C\1C\1E\1F !!!$$&'((((,-.///88886789:;8$", align 32 ; <[62 x i8]*> [#uses=4] %811 = icmp ne i8 %810, 33 @PL_utf8skip = constant [256 x i8] c"\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\01\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\02\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\03\04\04\04\04\04\04\04\04\05\05\05\05\06\06\07\0D", align 32 ; <[256 x i8]*> [#uses=94] %12 = icmp ult i8 %10, 2 etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92426 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19e717578551af76c788b29bde533f88a918180e Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 21:46:33 2010 +0000 theoretically the negate we find could be in a different function, check for this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92425 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9a7a500993dfd7e3be5c44c7aef39b26ea338cc Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 20:20:33 2010 +0000 use enums for the over/underdefined markers for clarity. Switch to using -2/-3 instead of -1/-2 for a future xform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92423 91177308-0d34-0410-b5e6-96231b3b80d8 commit a357b8d54b0c57f6988e66b8fd3a813881f2095b Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 20:07:03 2010 +0000 remove the random sampling framework, which is not maintained anymore. If there is interest, it can be resurrected from SVN. PR4912. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92422 91177308-0d34-0410-b5e6-96231b3b80d8 commit c325c5e72e737d4f1b5ab4595c378bf10358b8a7 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Jan 2 16:14:56 2010 +0000 Fix logic error in previous commit. The != case needs to become an or, not an and. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fd66d7d2bbf26689ad9dd66c6bea5e9f4ed7f1c Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Jan 2 15:25:44 2010 +0000 Optimize pointer comparison into the typesafe form, now that the backends will handle them efficiently. This is the opposite direction of the transformation we used to have here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92418 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea367cca5ae583d07c6df818167c6419fbabbc22 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 09:35:17 2010 +0000 Generalize the previous xform to handle cases where exactly two elements match or don't match with two comparisons. For example, the testcase compiles into: define i1 @test5(i32 %X) { %1 = icmp eq i32 %X, 2 ; <i1> [#uses=1] %2 = icmp eq i32 %X, 7 ; <i1> [#uses=1] %R = or i1 %1, %2 ; <i1> [#uses=1] ret i1 %R } This generalizes the previous xforms when the array is larger than 64 elements (and this case matches) and generates better code for cases where it overlaps with the magic bitshift case. This generalizes more cases than you might expect. For example, 400.perlbmk has: @PL_utf8skip = constant [256 x i8] c"\01\01\01\... %15 = icmp ult i8 %7, 7 403.gcc has: @rid_to_yy = internal constant [114 x i16] [i16 259, i16 260, ... %18 = icmp eq i16 %16, 295 and xalancbmk has a bunch of examples, such as _ZN11xercesc_2_5L15gCombiningCharsE and _ZN11xercesc_2_5L10gBaseCharsE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9780c03743bc6320d89d12b31cb1c84fd146da4f Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 09:22:13 2010 +0000 fix a miscompilation I introduced of cdecl with a late change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92416 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03b9facf565592cf62612707e7e3f2c74471527a Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 08:56:52 2010 +0000 enhance the compare/load/index optimization to work on *any* load from a global with 32/64 elements or less (depending on whether i64 is native on the target), generating a bitshift idiom to determine the result. For example, on test4 we produce: define i1 @test4(i32 %X) { %1 = lshr i32 933, %X ; <i32> [#uses=1] %2 = and i32 %1, 1 ; <i32> [#uses=1] %R = icmp ne i32 %2, 0 ; <i1> [#uses=1] ret i1 %R } This triggers in a number of interesting cases, for example, here's an fp case: @A.3255 = internal constant [4 x double] [double 4.100000e+00, double -3.900000e+00, double -1.000000e+00, double 1.000000e+00], align 32 ; <[4 x double]*> [#uses=7] ... %7 = fcmp olt double %3, 0.000000e+00 In this case we make the slen2_tab global dead, which is nice: @slen2_tab = internal constant [16 x i32] [i32 0, i32 1, i32 2, i32 3, i32 0, i32 1, i32 2, i32 3, i32 1, i32 2, i32 3, i32 1, i32 2, i32 3, i32 2, i32 3], align 32 ; <[16 x i32]*> [#uses=1] ... %204 = icmp eq i32 %46, 0 Perl has a bunch of these, also on the 'Perl_regkind' array: @Perl_yygindex = internal constant [51 x i16] [i16 0, i16 0, i16 0, i16 0, i16 374, i16 351, i16 0, i16 -12, i16 0, i16 946, i16 413, i16 -83, i16 0, i16 0, i16 0, i16 -311, i16 -13, i16 4007, i16 2893, i16 0, i16 0, i16 0, i16 0, i16 0, i16 372, i16 -8, i16 0, i16 0, i16 246, i16 -131, i16 43, i16 86, i16 208, i16 -45, i16 -169, i16 987, i16 0, i16 0, i16 0, i16 0, i16 308, i16 0, i16 -271, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 0], align 32 ; <[51 x i16]*> [#uses=1] ... %1364 = icmp eq i16 %1361, 0 186.crafty really likes this on 64-bit machines, because it triggers on a bunch of globals like this: @white_outpost = internal constant [64 x i8] c"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\02\00\00\00\00\00\04\05\05\04\00\00\00\00\03\06\06\03\00\00\00\00\00\01\01\00\00\00\00\00\00\00\00\00\00\00", align 32 ; <[64 x i8]*> [#uses=2] However the big winner is 403.gcc, which triggers hundreds of times, eliminating all the accesses to the 57-element arrays 'mode_class', mode_unit_size, mode_bitsize, regclass_map, etc. go 64-bit machines :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ebc5d61a24dc66f46dba1db0a6919fd6b21e581 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Jan 2 08:27:23 2010 +0000 Forward -O0 to llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f441ad8ebfa73fa4994319f5b6f7e367b865a7d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Jan 2 08:27:10 2010 +0000 Apparently, it is OK for -MT to be specified several times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92413 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94955a8b4771ae14ff26b9afbb45cb7b3d011141 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 08:20:51 2010 +0000 enhance the previous optimization to work with fcmp in addition to icmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92412 91177308-0d34-0410-b5e6-96231b3b80d8 commit b84aa98afd5a02d8a26e6f38a842dc0cc6507c9c Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 08:12:04 2010 +0000 Teach instcombine to fold compares of loads from constant arrays with variable indices into a comparison of the index with a constant. The most common occurrence of this that I see by far is stuff like: if ("foobar"[i] == '\0') ... which we compile into: if (i == 6), saving a load and materialization of the global address. This also exposes loop trip count information to later passes in many cases. This triggers hundreds of times in xalancbmk, which is where I first noticed it, but it also triggers in many other apps. Here are a few interesting ones from various apps: @must_be_connected_without = internal constant [8 x i8*] [i8* getelementptr inbounds ([3 x i8]* @.str64320, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8]* @.str27283, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8]* @.str71327, i64 0, i64 0), i8* getelementptr inbounds ([4 x i8]* @.str72328, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8]* @.str18274, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8]* @.str11267, i64 0, i64 0), i8* getelementptr inbounds ([3 x i8]* @.str32288, i64 0, i64 0), i8* null], align 32 ; <[8 x i8*]*> [#uses=2] %scevgep.i = getelementptr [8 x i8*]* @must_be_connected_without, i64 0, i64 %indvar.i ; <i8**> [#uses=1] %17 = load ... %18 = icmp eq i8* %17, null ; <i1> [#uses=1] -> icmp eq i64 %indvar.i, 7 @yytable1095 = internal constant [84 x i8] c"\12\01(\05\06\07\08\09\0A\0B\0C\0D\0E1\0F\10\11266\1D: \10\11,-,0\03'\10\11B6\04\17&\18\1945\05\06\07\08\09\0A\0B\0C\0D\0E\1E\0F\10\11*\1A\1B\1C$3+>#%;<IJ=ADFEGH9KL\00\00\00C", align 32 ; <[84 x i8]*> [#uses=2] %57 = getelementptr inbounds [84 x i8]* @yytable1095, i64 0, i64 %56 ; <i8*> [#uses=1] %mode.0.in = getelementptr inbounds [9 x i32]* @mb_mode_table, i64 0, i64 %.pn ; <i32*> [#uses=1] load ... %64 = icmp eq i8 %58, 4 ; <i1> [#uses=1] -> icmp eq i64 %.pn, 35 ; <i1> [#uses=0] @gsm_DLB = internal constant [4 x i16] [i16 6554, i16 16384, i16 26214, i16 32767] %scevgep.i = getelementptr [4 x i16]* @gsm_DLB, i64 0, i64 %indvar.i ; <i16*> [#uses=1] %425 = load %scevgep.i %426 = icmp eq i16 %425, -32768 ; <i1> [#uses=0] -> false git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b7ce57f87d16a0acd0efbbbbd614985f65bc791 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 01:22:23 2010 +0000 constant fold nasty constant expressions formed by llvm-gcc, wrapping up PR3351. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4091917ae511e97c66b4d94602b1aa3457205ab2 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 00:31:05 2010 +0000 remove the instcombine transformations that are inserting nasty pointer to int casts that confuse later optimizations. See PR3351 for details. This improves but doesn't complete fix 483.xalancbmk because llvm-gcc does this xform in GCC's "fold" routine as well. Clang++ will do better I guess. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 910a778224f2b18bfadd8512345b17706d890f30 Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 00:22:15 2010 +0000 allow this to work on linux hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92407 91177308-0d34-0410-b5e6-96231b3b80d8 commit a746511144561cb5a56ae14096499a8dcdf5d10e Author: Chris Lattner <sabre@nondot.org> Date: Sat Jan 2 00:00:03 2010 +0000 Teach codegen to handle: (X != null) | (Y != null) --> (X|Y) != 0 (X == null) & (Y == null) --> (X|Y) == 0 so that instcombine can stop doing this for pointers. This is part of PR3351, which is a case where instcombine doing this for pointers (inserting ptrtoint) is pessimizing code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92406 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b9d28303feab3a9b0b446b189a3f23e8fff72a2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 23:55:04 2010 +0000 rename file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92405 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0903092e4877dcf99741ed478addd9d0afc57ec5 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 23:37:34 2010 +0000 whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92404 91177308-0d34-0410-b5e6-96231b3b80d8 commit f54ff334cb53099a89446a32d22e37019825056a Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 23:09:08 2010 +0000 add a simple instcombine xform, simplify another one to use hasAllZeroIndices() instead of hand rolling a loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92403 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc872393bf81fa6b0a601c6d7b76d1f1fb3b9699 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 22:42:29 2010 +0000 generalize the pointer difference optimization to handle a constantexpr gep on the 'base' side of the expression. This completes comment #4 in PR3351, which comes from 483.xalancbmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f541cf11a4e334ce302282521bbab6605b2076d Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 22:29:12 2010 +0000 teach instcombine to optimize pointer difference idioms involving constant expressions. This is a step towards comment #4 in PR3351. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92401 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6292bc182efcd6d4e11c2b52671f66f8935e712 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 22:12:03 2010 +0000 use 'match' to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34eb10d272168ccc1c93029279578cc5f02c3fa3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 18:34:40 2010 +0000 implement the transform requested in PR5284 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92398 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46e577bf2a6280f34443ebe54086acc3dd98a20d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jan 1 04:41:36 2010 +0000 Fix a warning on gcc 4.4. SelectionDAGBuilder.cpp:4294: warning: suggest explicit braces to avoid ambiguous ‘else’ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92395 91177308-0d34-0410-b5e6-96231b3b80d8 commit 480b7f806a23fc202d62c88d0841ebeed547f4e2 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jan 1 04:41:22 2010 +0000 Trailing whitespace, 80-col violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92394 91177308-0d34-0410-b5e6-96231b3b80d8 commit 305344c00aad44f387608b0e55786a151f42840d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jan 1 04:41:10 2010 +0000 Minor simplifactions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92393 91177308-0d34-0410-b5e6-96231b3b80d8 commit de321fd87cc67481b8605dafc7edf8b59e95bd3c Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jan 1 04:40:54 2010 +0000 Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92392 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90837d9a6ecd25840dc9450638db4953b5a98e72 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jan 1 03:51:02 2010 +0000 Make CheckForSuperfluousOptions handle list form of 'switch_on' correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92391 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ab87cfc39d712753f6d1f9c64d0a67e82744c7d Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jan 1 03:50:51 2010 +0000 Minor simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92390 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9718696a5cd121422f7bb2aef2d704d005ad8205 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Jan 1 03:50:34 2010 +0000 Better error message. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92389 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6391637268da054569126bf1c0eee3a90e87a35a Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 03:32:16 2010 +0000 Teach codegen to lower llvm.powi to an efficient (but not optimal) multiply sequence when the power is a constant integer. Before, our codegen for std::pow(.., int) always turned into a libcall, which was really inefficient. This should also make many gfortran programs happier I'd imagine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92388 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc7a9122a4566bf8ad1eb66dc22064fabda19f91 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 03:26:51 2010 +0000 Make this more likely to generate a libcall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92387 91177308-0d34-0410-b5e6-96231b3b80d8 commit c42f65a4032db2a448aaa7b85dff872c8955f1ea Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 01:54:08 2010 +0000 add missing line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92384 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30095b482545296c2e4d1e25ca7f728104612e28 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 01:52:15 2010 +0000 add a few trivial instcombines for llvm.powi. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92383 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2b7b735f3f8abaa67b644eb410c182c6c257304 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 01:29:26 2010 +0000 update this. To take the next step, llvm.powi should be generalized to work on integers as well and codegen should lower them to branch trees. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92382 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9174de49a24169a0d3d58b6378ec05dbb549060b Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 01:13:15 2010 +0000 When factoring multiply expressions across adds, factor both positive and negative forms of constants together. This allows us to compile: int foo(int x, int y) { return (x-y) + (x-y) + (x-y); } into: _foo: ## @foo subl %esi, %edi leal (%rdi,%rdi,2), %eax ret instead of (where the 3 and -3 were not factored): _foo: imull $-3, 8(%esp), %ecx imull $3, 4(%esp), %eax addl %ecx, %eax ret this started out as: movl 12(%ebp), %ecx imull $3, 8(%ebp), %eax subl %ecx, %eax subl %ecx, %eax subl %ecx, %eax ret This comes from PR5359. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4aed2811219557774a7df9a86529c6d72280be50 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 00:50:00 2010 +0000 test case we alredy get right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fc5712a47212e229d5421c21100a3e5e3cc347f Author: Ted Kremenek <kremenek@apple.com> Date: Fri Jan 1 00:04:49 2010 +0000 Remove old header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 680cc0add1cf3946bd625782d25e5116ae9b6749 Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 00:04:26 2010 +0000 clean up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92377 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7d8b124af9cecb15576e155686447438f07122d Author: Chris Lattner <sabre@nondot.org> Date: Fri Jan 1 00:01:34 2010 +0000 switch from std::map to DenseMap for rank data structures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49b38e9dc18b42fcb62e9e47729f8a2c349ba464 Author: Ted Kremenek <kremenek@apple.com> Date: Thu Dec 31 23:40:17 2009 +0000 Remove derelict serialization code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92374 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd7266b6fa5dafad5e578ce761995dda8263ba78 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 20:34:32 2009 +0000 reuse negates where possible instead of always creating them from scratch. This allows us to optimize test12 into: define i32 @test12(i32 %X) { %factor = mul i32 %X, -3 ; <i32> [#uses=1] %Z = add i32 %factor, 6 ; <i32> [#uses=1] ret i32 %Z } instead of: define i32 @test12(i32 %X) { %Y = sub i32 6, %X ; <i32> [#uses=1] %C = sub i32 %Y, %X ; <i32> [#uses=1] %Z = sub i32 %C, %X ; <i32> [#uses=1] ret i32 %Z } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92373 91177308-0d34-0410-b5e6-96231b3b80d8 commit dabb5f7a839c6ffa02eba804d2ee257a849816ee Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 19:49:01 2009 +0000 we don't need a smallptrset to detect duplicates, the values are sorted, so we can just do a linear scan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a14c94ff032c286735e3d51ad3716292eb02d9c Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 19:34:45 2009 +0000 make reassociate more careful about not leaving around dead mul's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92370 91177308-0d34-0410-b5e6-96231b3b80d8 commit b350027509cee7866483cd4c772c0ba585b81201 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 19:25:19 2009 +0000 remove debug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92369 91177308-0d34-0410-b5e6-96231b3b80d8 commit eef3d7ee13996d710f5af71a4a1791a7bfa64057 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 19:24:52 2009 +0000 teach reassociate to factor x+x+x -> x*3. While I'm at it, fix RemoveDeadBinaryOp to actually do something. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ecba488405762d5bdcb4cfceb50a14728bc9a5d Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 18:40:32 2009 +0000 change reassociate to use SmallVector for its key datastructures instead of std::vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92366 91177308-0d34-0410-b5e6-96231b3b80d8 commit a49b7bd78269db61b5905196c3a42687aa9ea684 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 18:18:46 2009 +0000 change an if to an assert, fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87a70035c511a65fdf87d3c114669553ef70442d Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 18:17:13 2009 +0000 move the rest of the add optimization code out to OptimizeAdd, improve some comments, simplify a bit of code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92363 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35f374a80c2c56df08b8a86049b70c39cfa9aa6a Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 17:51:05 2009 +0000 factor statistic updating better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92362 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3866fd8b0928b0e2a81b931077fb42cc919206ec Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Dec 31 16:27:13 2009 +0000 Silence compiler warning. warning: comparison between signed and unsigned integer expressions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92359 91177308-0d34-0410-b5e6-96231b3b80d8 commit f26331c710d7cb3dc5e2df5f599e0b439b2e0d2e Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 08:33:49 2009 +0000 simple fix for an incorrect factoring which causes a miscompilation, PR5458. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 432f8a4ede7b5b32887a2ae4c7f8cd822feb9de4 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 08:32:22 2009 +0000 merge some more tests in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92353 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1d8cae5d7441a85b5138590f2a19e774efc5a14 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 08:29:56 2009 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92352 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a8f839a3540ae2c6933fa8f850a51b95104e61d Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 08:23:09 2009 +0000 fix refactoro git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67ee6d8a18ce97db9a33a19ffe62c53b3bac264a Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 07:59:34 2009 +0000 factor code out into helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92347 91177308-0d34-0410-b5e6-96231b3b80d8 commit f854201455275fe4ec9b15b8bef96d515990b99f Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 07:48:51 2009 +0000 switch some std::vector's to smallvector. Reduce nesting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92346 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4671c2dcae45396caa118cee1be30d21caac5f6 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 07:33:14 2009 +0000 use more modern datastructures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92344 91177308-0d34-0410-b5e6-96231b3b80d8 commit eca6bc45daaff60fd301ddcb3c94f0810738f2ed Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 07:17:37 2009 +0000 clean up -debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92343 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5f5a55bd2010c450ba3a648ad5e716c840ac606 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Dec 31 04:24:34 2009 +0000 Document the edit-distance algorithm used in StringRef, switch it over to SmallVector, and add a unit test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92340 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a1c423fb9667a46973660d699e342f781ff0e1b Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 03:02:42 2009 +0000 this #include is ok. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92338 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05a0becaf20bf261a03929e63cb10c25a9172406 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 03:02:08 2009 +0000 fix Analysis/DebugInfo.h to not include Metadata.h. Do this by moving one method out of line and eliminating redundant checks from other methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92337 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42dfc1d91651da34013c8ae49382ca10961224ae Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 03:00:49 2009 +0000 add some basic named MD tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92336 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf722229b32c21d5253ce611583938c1272f54de Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 02:33:14 2009 +0000 use early exits to reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92335 91177308-0d34-0410-b5e6-96231b3b80d8 commit c216378f3e025eed5df082c89eb82b28be8e1f34 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 02:31:59 2009 +0000 eliminate another copy of the mdnode printing logic, simplify the one that remains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92334 91177308-0d34-0410-b5e6-96231b3b80d8 commit d256081f4440011f5cb24d08d5112ecf710869c9 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 02:27:30 2009 +0000 random tidying for MDNode printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92333 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d7fac9a02beee58e15c60298a26f5f9670d15c8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 02:23:35 2009 +0000 eliminate a bunch of useless forwarding functions with one caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f23f2e3d4679ea7a9b3f6a79ffbe6015ff95742 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 02:20:11 2009 +0000 make mdnMap type safe, rename accessors for consistency with the rest of llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92331 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a1e1086cfb3e9daffc318b392bf82e2cc59f041 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 02:15:45 2009 +0000 metadata can't be a global var initializer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92330 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1af981f1285805303100ba20190a3f9e9c4f4a2 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 02:13:35 2009 +0000 simplify mdnode printing logic. Now N->dump() only dumps one node instead of all of them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92329 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e50db19cd616dc6705d14b1f85dba6494ce0260 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 02:12:13 2009 +0000 don't unittest mdnode printing, we have disassembler tests for this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92328 91177308-0d34-0410-b5e6-96231b3b80d8 commit d401bb57e7bc85c1c1e2170b3f66989b438246c1 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 01:54:05 2009 +0000 unify two copies of the NamedMDNode printing code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92327 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4dd513c791f8a7dbd1ed28a455740f144d1f2a2 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 01:44:44 2009 +0000 fix printing of function-local metadata to print all the operands of the mdnode, not just operand 0 over and over. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5828cf6c126f0f0c7fbc09fa1db040025598cc5e Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 01:41:14 2009 +0000 simplify printing of mdstring and Argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7811ce3c042b1e10bf9a92978a360ba64916dfc5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 01:36:50 2009 +0000 simplify asmprinting of NamedMDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92324 91177308-0d34-0410-b5e6-96231b3b80d8 commit a643a318f7a73ba97a66bd9bf68de4f7f19c1c7b Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 01:32:41 2009 +0000 Remove #include of metadata.h from intrinsicinst.h. The only method that needs it (DbgValueInst::getValue) has been moved out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92323 91177308-0d34-0410-b5e6-96231b3b80d8 commit 782edc0ad4962d0f22679c264b9ad9aeb43495e5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 01:22:29 2009 +0000 rename "elements" of metadata to "operands". "Elements" are things that occur in types. "operands" are things that occur in values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92322 91177308-0d34-0410-b5e6-96231b3b80d8 commit c79176153244447832fda44fc92602cb19c9da20 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 01:05:46 2009 +0000 Optimize MDNode to coallocate the operand list immediately after the MDNode in memory. This eliminates the operands pointer and saves a new[] per node. Note that the code in DIDerivedType::replaceAllUsesWith is wrong and quite scary. A MDNode should not be RAUW'd with something else: this changes all uses of the mdnode, which may not be debug info related! Debug info should use something non-mdnode for declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67735d43b803531f50ba62a14a19750f3509d640 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 31 00:51:46 2009 +0000 tidy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92320 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0deeb1db6042913943e6b7d60cdd118ef2a9376 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 21:42:11 2009 +0000 do not bother reuniquing mdnodes whose operands drop to null. Doing so can be a huge performance issue when tearing down modules and mdnodes are not guaranteed to be unique anyway. This speeds up: $ time ~/llvm/Release/bin/clang gcc.c -w -S -g from 72 to 35s, where gcc.c is from: http://people.csail.mit.edu/smcc/projects/single-file-programs/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92315 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6729718c58b0778c48378d4a2f9e18778d396aa Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 20:25:09 2009 +0000 remove some misleading comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92311 91177308-0d34-0410-b5e6-96231b3b80d8 commit e63a69745242ce18f887b374f0db666f0f778e4c Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Dec 30 17:23:44 2009 +0000 Implement edit distance for StringRef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92309 91177308-0d34-0410-b5e6-96231b3b80d8 commit 205f53281b573f15e78ce49fdb0f700092ee977b Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 06:00:36 2009 +0000 remove some fixme's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92304 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d0d3555fc441023a92a5a248e6f3d9a5b44a950 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:54:51 2009 +0000 fix two bogus tests that the asmparser now rejects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 252f0e4c82322f10f0cf3e99b2faa00d9ed03f08 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:48:36 2009 +0000 now that instruction metadata is only parsed in one place, eliminate the parser-global MDsOnInst vector and make ParseInstructionMetadata return its result by-ref through an argument like the entire rest of the parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92302 91177308-0d34-0410-b5e6-96231b3b80d8 commit c095b028825a29bad04e198523c3488e779d8c7c Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:44:30 2009 +0000 reimplement ParseOptionalInfo as ParseOptionalCommaAlign, correctly handle the comma case for metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92301 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50bbd7c6b40c7c8a2f0f1f46302b805ff986a146 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:31:19 2009 +0000 rename ParseOptionalCustomMetadata -> ParseInstructionMetadata, and make it non-optional. This fixes the bug where we'd accept and ignore a spurious comma after some instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92300 91177308-0d34-0410-b5e6-96231b3b80d8 commit a834b598af65a2b754df36042a8e7f1886263836 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:27:33 2009 +0000 convert 4 more instructions over. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92299 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0f5db5cb5246de5a9d8f25d81788e837b35398a Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:23:43 2009 +0000 add facilities to start factoring instruction metadata parsing out of each opcode's handler. Change ret over so far. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92298 91177308-0d34-0410-b5e6-96231b3b80d8 commit a36628319feacb86df07dfc1ca6c5e05b764ba74 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:14:00 2009 +0000 reimplement insertvalue/extractvalue metadata handling to not blindly accept invalid input. Actually add a testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92297 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad53f269b62cd83bfa6caf79632016715c44536f Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:04:46 2009 +0000 remove two bogus calls that accepted metadata in the middle of insert/extract value *constant exprs*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 106ec003fa597a1634e0a8f20e7c466497ef04ac Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 05:02:06 2009 +0000 rename NamedOrCustomMD -> MetadataVar to follow conventions of all the rest of the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92295 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7da8c1f859cb6e837e3a44ed6147a1bc4733857 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 04:56:59 2009 +0000 rename lltok::Metadata -> lltok::exclaim. We name tokens after their syntactic form, not their semantic form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 321130761ffd8fb17d1e90824ed5f0711f15e8af Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 04:51:58 2009 +0000 rename MetadataCache -> NumberedMetadata to follow the convention used by other things. Convert it to a vector since it is a dense numbering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92293 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42913ca9f6a8786f8f0c6835e670402f7db5d165 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 04:42:57 2009 +0000 rewrite ParseMDNodeVector to follow the normal patter used in the .ll parser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92292 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8859ed33bc71bf98ea6f8e162ee4359fa1744d94 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 04:15:23 2009 +0000 rename ParseMDNode -> ParseMDNodeID, since it parses !42, not !{... } as you'd expect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92291 91177308-0d34-0410-b5e6-96231b3b80d8 commit e78c594690534be3d922f4c2f59ece9a7da1d186 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 04:13:37 2009 +0000 fix parsing of mdstring values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92290 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5e601df8a3ed005307e6e1194a39446a98d1b83 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 02:20:07 2009 +0000 remove the code added in r90497. It has several major issues and no tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92288 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5a4e14fc3a40fe3a2843a2c0ae2587927677842 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 30 02:11:14 2009 +0000 split t_Metadata into t_MDNode and t_MDString, eliminating some unsafe casting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92287 91177308-0d34-0410-b5e6-96231b3b80d8 commit da5298327ce62bd6d8327e24d5789b52902c4f60 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 22:40:21 2009 +0000 factor code even more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92280 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5a95af25e0603970ceac878057d48682d7cdfed Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 22:35:39 2009 +0000 simplify some code and unbreak the build by not consuming an extra token. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92279 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68c027ce120b4bb4fd519f9f710fe819b728698a Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Dec 29 22:17:06 2009 +0000 remove a really wrong parenthesis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92277 91177308-0d34-0410-b5e6-96231b3b80d8 commit e599a697b4098ccd98f8edc80b4c1503194a5c7e Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 22:01:50 2009 +0000 clean up some really strange code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92275 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d53e97911a01aa7278e301aa3ad41ec5de588df Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 21:53:55 2009 +0000 change ParseMDString and ParseMDNode to take arguments of the right type. This exposed a raft of other problems, which I'll deal with in subsequent patches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92273 91177308-0d34-0410-b5e6-96231b3b80d8 commit 349e4075fbe75fccaa4e94296af269bcd9a866dd Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 21:43:58 2009 +0000 switch to TrackingVH instead of WeakVH, since these can never be RAUW'd and go to null. This also gets us some sorely lacking type safety. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92272 91177308-0d34-0410-b5e6-96231b3b80d8 commit af9ba478bc13ec6132d707b84d218daa8f26fc36 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 21:25:40 2009 +0000 Each instruction is allowed to have *multiple* different metadata objects on them. Though the entire compiler supports this, the asmparser didn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24392c25bc8f9283a50d326eb2b5e9bc24416cb5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 21:17:33 2009 +0000 Do not crash when .ll printing metadata that smells like debug info, but isn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92268 91177308-0d34-0410-b5e6-96231b3b80d8 commit f272fd760f2a623eea02766fb1143f94746f3ca3 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 21:09:57 2009 +0000 fix indentation, fit in 80 cols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92267 91177308-0d34-0410-b5e6-96231b3b80d8 commit 527d14b89e5dde3ec59e4431be4c102383d55edf Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Dec 29 16:57:26 2009 +0000 Replace a few more SmallVectors with arrays. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92265 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7b0ebd1d27261cff8d0c0a0e20ab84d2da81ae8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Dec 29 11:04:52 2009 +0000 Use an array instead of a SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 457576ff0a03b6a73006b4202ae17304125e38c0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 09:32:19 2009 +0000 remove a bunch of unneeded functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92263 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49c94d990cc63b75b1a9a010d818c27ca2a779bb Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 09:22:47 2009 +0000 major cleanups, much of this file was incorrectly indented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92262 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0aad044ccc2d58a1e5a3a704de3f2e85b46706a Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 09:15:46 2009 +0000 one pass of cleanup over DebugInfo.h. Much more is still needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92261 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4d8577e32301f706cf33e6f9401b062870476ab Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 09:12:29 2009 +0000 prune #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92260 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bba08039ac1edd35d89b5a7da3c06317b0a5a73 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 09:01:33 2009 +0000 Final step in the metadata API restructuring: move the getMDKindID/getMDKindNames methods to LLVMContext (and add convenience methods to Module), eliminating MetadataContext. Move the state that it maintains out to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92259 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58d94d4250c8a42d3392e01c3dd9e108e1bc5791 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 08:06:56 2009 +0000 just cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92258 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a21401bf89ad297f30839e65e5c09ad63073f85 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 08:03:58 2009 +0000 remove useless argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92256 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5c30fec467ddaa595605058a29eae086ba5130c Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 07:56:15 2009 +0000 privatize another interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92255 91177308-0d34-0410-b5e6-96231b3b80d8 commit a361a085cb03ab1e951ed341cb3271a8f54f587e Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 07:50:09 2009 +0000 the only call to this function (from clang) has been removed, zap it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9924ee255336099ea7fc66ff6c98e8ce367db9f4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 07:44:16 2009 +0000 remove some unneeded Metadata interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81ffc04666323d8fc0b1a831d63486436dec815f Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 07:28:33 2009 +0000 fix .cpp file to not wrap the entire file in namespace blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92250 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ae0692560544ab40362e7902db0d4933395c1b1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 07:25:48 2009 +0000 tidy up debug info comments, use ->isVoidTy() where reasonable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92249 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4a877b44e61d0e4f3a03219ab430f4c4fbaed94 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 07:12:03 2009 +0000 sink twine.h down out of Value.h. It is annoying that you need to #include Twine.h just to give a twine a default value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92247 91177308-0d34-0410-b5e6-96231b3b80d8 commit 260cabecaaba7c0ce020aab05f08062154205014 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Tue Dec 29 03:24:34 2009 +0000 Extern declaration for unordered.f32 libcall was not being emitted. Fixed that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92242 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2394453af76b7e98b2574613a9af4523ae124805 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 02:53:52 2009 +0000 When doing v1->RAUW(v2), don't do anything to metadata. We don't know why one was replaced with the other. Even in the specific case of debug information, it doesn't make sense to transfer the location over, this will just result in jumbled loc info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92241 91177308-0d34-0410-b5e6-96231b3b80d8 commit 809758b23bf141f89fc0e4bb46b16705babcb217 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 02:46:09 2009 +0000 sink the Instruction::HasMetadata bit into SubclassData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92240 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed71f551254a290c97860a7d8106a26905705dc4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 29 02:14:09 2009 +0000 add a layer of accessors around the Value::SubClassData member, and use a convention (shadowing the setter with private forwarding function) to prevent subclasses from accidentally using it. This exposed some bogosity in ConstantExprs, which was propaging the opcode of the constant expr into the NUW/NSW/Exact field in the getWithOperands/getWithOperandReplaced methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92239 91177308-0d34-0410-b5e6-96231b3b80d8 commit d11da6df1ecf393f637674081b24a631417321ed Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 23:41:32 2009 +0000 This is a major cleanup of the instruction metadata interfaces that I asked Devang to do back on Sep 27. Instead of going through the MetadataContext class with methods like getMD() and getMDs(), just ask the instruction directly for its metadata with getMetadata() and getAllMetadata(). This includes a variety of other fixes and improvements: previously all Value*'s were bloated because the HasMetadata bit was thrown into value, adding a 9th bit to a byte. Now this is properly sunk down to the Instruction class (the only place where it makes sense) and it will be folded away somewhere soon. This also fixes some confusion in getMDs and its clients about whether the returned list is indexed by the MDID or densely packed. This is now returned sorted and densely packed and the comments make this clear. This introduces a number of fixme's which I'll follow up on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7006b38f3ae7c3b5a565ff924b729111807327eb Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 21:56:07 2009 +0000 rearrange some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 343d8d6a1128b42a9bb2ee6ad4c726cea1f3ae2e Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 21:52:41 2009 +0000 add IRBuilder.cpp to cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92233 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9f460d2376ae08b4897c2a16ce16523f3e079c6 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 21:52:06 2009 +0000 remove #include that comes in from ConstantFolder.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46c22854156dc4b4ec23dff224d977e2df55dda1 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 21:50:56 2009 +0000 remove #include of Function.h from IRBuilder git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b342015570ced985595ad672e1b2a63910caf76 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 21:45:40 2009 +0000 move debug info stuff out of line, allowing two #includes to go away from IRBuilder.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24115ad0a861ee64d3e5ed72a54b3932174b2d39 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 21:28:46 2009 +0000 split code that doesn't need to be templated out of IRBuilder into a new non-templated IRBuilderBase class. Move that large CreateGlobalString out of line, eliminating the need to #include GlobalVariable.h in IRBuilder.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88b45f9bec26faf55292c7cb2b2dd13dbf2723ec Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 21:12:29 2009 +0000 rename ivar to be more descriptive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92226 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68d0d0c2d9a9ceaf5d23d83d224235acba505245 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 20:45:51 2009 +0000 rename getMDKind -> getMDKindID, make it autoinsert if an MD Kind doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92225 91177308-0d34-0410-b5e6-96231b3b80d8 commit 093b1167ac64f42f6ac318d821f85c41bc8b2339 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 20:10:43 2009 +0000 rename getHandlerNames to getMDKindNames, simplify its interface and simplify all the clients that use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92224 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf70eda2e1f91cc4a58435342d5d27db1405445f Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 19:49:00 2009 +0000 tidy up and delete a dead smallvector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92223 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
|
|
ae1be98809 |
Update to LLVM upstream r92222.
Squashed commit of the following: commit 4d06dfc51403e0e54eb688a3a9fb1839ea2136a6 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Dec 28 12:27:56 2009 +0000 Add missing include (for inline PATypeHolder::get). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92222 91177308-0d34-0410-b5e6-96231b3b80d8 commit e05a9ea766a0b81c710a044887cfc22d6f36a664 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 09:32:10 2009 +0000 avoid a completely unneeded linear walk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92221 91177308-0d34-0410-b5e6-96231b3b80d8 commit 104369f82cb166e9c446c3e844136811466916b3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 09:24:53 2009 +0000 Eliminate two bits of ugliness in MDNode::replaceElement: eliminate the temporary smallvector, and only do FindNodeOrInsertPos twice if the first one succeeds and we delete a node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92220 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7bbe9111b1caea1c424c73bbba6338eedd96d65 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 09:12:35 2009 +0000 rearrange some methods, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92219 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc1d027f0654706031bf0e6d7c57ede4dfc41373 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 09:10:16 2009 +0000 avoid temporary CallbackVH's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92218 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3716bc64a3ee906a6e40e6847ac915daa01e4919 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 09:07:21 2009 +0000 Rewrite the function-local validation logic for MDNodes (most of r91708). Among other benefits, this doesn't leak the SmallPtrSet, has the verifier code in the verifier pass, actually does the verification at the end, and is considerably simpler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92217 91177308-0d34-0410-b5e6-96231b3b80d8 commit 894c992754b4095a0546181a0701674a3a696477 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 08:48:12 2009 +0000 rename MDNode instance variables to something meaningful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92216 91177308-0d34-0410-b5e6-96231b3b80d8 commit a89d238baa1ac500515df35491d0c7480ec87bf0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 08:30:43 2009 +0000 snip one more #include from Metadata.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92214 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ba716d8d60ff7b6e0e07bce48bcb68bcffa1388 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 08:26:43 2009 +0000 prune #includes more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62a41720e49584820202799556c757518e23d3cf Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 08:24:16 2009 +0000 prune some #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 749a4129c976d4895f231f0fbfddf9c54c17ac1b Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 08:20:46 2009 +0000 Metadata.h doesn't need to include ValueHandle.h anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92211 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c8fe40711f3cf363831d95a63322a5963233f0a Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 08:14:54 2009 +0000 change the strange MetadataContext::getMDs function to expose less irrelevant internal implementation details to clients. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92210 91177308-0d34-0410-b5e6-96231b3b80d8 commit febd655fa44c568fa3a80af56aed9955ff797157 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 08:07:14 2009 +0000 change NamedMDNode to use a pimpl for its operand list instead of making it a declared part of the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92209 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f465e4a2ed122934f187b6e0761c9268a200cb0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 07:57:01 2009 +0000 eliminate the elem_* iterator stuff from NamedMDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92208 91177308-0d34-0410-b5e6-96231b3b80d8 commit da60d2e518af314a29eb38402e70a77b05fc5d32 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 07:41:54 2009 +0000 move ElementVH out of the MDNode class into the MDNode.cpp file. Among other things, this avoids vtable and rtti data for it being splatted in every translation unit that uses it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92207 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2df342071750e4ecc7dfec0fc108efd69967401d Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 28 07:41:18 2009 +0000 move these out of their own timer groups into the 'uncategorized' groups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f6dce81500015dbe2f7763bc88a74df9dc177f7 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Mon Dec 28 04:53:24 2009 +0000 Fixed llc crash for zext (i1 -> i8) loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92201 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f6348092dd3411c4bf41fb146945b6f5f387562 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Mon Dec 28 02:40:33 2009 +0000 Allow targets to specify the return type of libcalls that are generated for floating point comparisons, rather than hard-coding them as i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ab9372471bf169547c6c11eb1432d2c3fa06615 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 02:07:00 2009 +0000 Mark variable used by 'assert' as 'unused'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e0224c4aa4b517723e2e950c00850422a7f083a Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 02:05:36 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39dd182871d4a9068a18d8d84e63983fc3a9d256 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 02:04:53 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92196 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7e76f7cae0da2b59d8e6173723007f69a769f70 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 02:01:06 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83e5f56eb04727ac461cfa6354882bd9649f6f7f Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 02:00:30 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92194 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0077d08de74578e474f611872454275c125a0656 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:57:39 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92193 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9c887a2902d05fa600b59ccda2b22f2af1ed76d Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:54:15 2009 +0000 Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92192 91177308-0d34-0410-b5e6-96231b3b80d8 commit a18ebc30a2abf0fe66b55af79518ed8c4b06f7c6 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:53:00 2009 +0000 Remove dead store and simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92191 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70ef837cf7e36be18d866d67bf374ed62a58f6fb Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:51:30 2009 +0000 Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92190 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6d452859e652c22b193c00abadb48aefc427ef4 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:48:56 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92189 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96d90c5c9b8a19e5e4f902e28430353fda2a2dd0 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:47:48 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92188 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a223745a9f77c21863ca8b2725836092b38977a Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:44:39 2009 +0000 Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92187 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3e9be4e2bd703b642872ad835a93ebf79f8f465 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:42:12 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92186 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94fff552bffee0a421218b26f228ebd0d1f7a7d0 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:41:12 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92185 91177308-0d34-0410-b5e6-96231b3b80d8 commit da097dc64ce517757c11b1345dab55dfa19bb14e Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:36:02 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92184 91177308-0d34-0410-b5e6-96231b3b80d8 commit b537cbf815f7aa6a62504cb9b69ec0402a1313f5 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:34:57 2009 +0000 Mark some debug variables as 'unused' to quiet compiler and analyzer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92183 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc6c4ad2c7f1b207357abbe2f954c4df14b6f455 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:31:11 2009 +0000 Remove dead store. The initial value was never used, but always overridden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92182 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1e55ab7b75ee6d8bc8418f06b36fa77234276a8 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:20:29 2009 +0000 Add an "ATTRIBUTE_UNUSED" macro (and use it). It's for variables which are mainly used in debugging and/or assert situations. It should make the compiler and the static analyzer stop nagging us about them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92181 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89b41234a06c9062f112e6f9f9b2a0311c8166ff Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:02:21 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26af2111a96acb02a4f7dfa6815381a1979336eb Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:01:14 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92179 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8eb19339daa81669e709d65a479c1e837874a5b1 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 28 01:00:12 2009 +0000 Remove dead variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92178 91177308-0d34-0410-b5e6-96231b3b80d8 commit c53dde98400a169d8a2aee60fd9e9749a0f1de3f Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Dec 26 22:58:39 2009 +0000 lit: Add setuptools support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92169 91177308-0d34-0410-b5e6-96231b3b80d8 commit c989d308a138180b0188cbe3d3c89497167a1a0b Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Dec 26 22:58:23 2009 +0000 lit: Sink code into a 'lit' package. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92168 91177308-0d34-0410-b5e6-96231b3b80d8 commit 824050a388d1beb1428686ea886b1ea77d4dee94 Author: Eli Friedman <eli.friedman@gmail.com> Date: Sat Dec 26 20:08:30 2009 +0000 PR5886: Make sure IMUL32m is marked as setting EFLAGS, so scheduling doesn't do illegal stuff around it. No testcase because the issue is very fragile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c5c0b12976c75ccdfd95a241525281e6061908c Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 25 13:50:18 2009 +0000 Avoid assigning to Changed when it won't be used after the return. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92160 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f0db31d8ee1ee48e20755a0fa6d4da5100aade2 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 25 13:45:50 2009 +0000 Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92159 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90cd35e334e96b73cb0e68b126377e8f65d519fc Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 25 13:44:36 2009 +0000 Remove dead store from copy-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92158 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5cc74ccc7b1398736393e1634fa1e37a22ea2c3 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 25 13:39:58 2009 +0000 Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92157 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea340ea46c96dec8ba5dcb655474a3e811e956ca Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 25 13:37:27 2009 +0000 Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92156 91177308-0d34-0410-b5e6-96231b3b80d8 commit 220675b0f99b21cf7cb8a92f77d581708787ac3e Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 25 13:35:40 2009 +0000 Use the 'MadeChange' variable instead of returning 'false' all of the time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92155 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1c4df64381a1795a44ac6f6342a40b024fa07e1 Author: John McCall <rjmccall@apple.com> Date: Thu Dec 24 23:18:09 2009 +0000 Implement support for converting to string at "natural precision", and fix some major bugs in long-precision conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9825c55a5a3a557c54c1af48bfb5954ddfbafc6c Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Dec 24 21:15:37 2009 +0000 Move the two definitions of operator<< into namespace llvm, so they will be found by argument-dependent lookup. As with the previous commit, GCC is allowing ill-formed code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e69877669f44c5efd3b1f989aa32cdb362f3d27 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Dec 24 21:11:45 2009 +0000 Define the new operator<< for sets into namespace std, so that argument-dependent lookup can find it. This is another case where an LLVM bug (not making operator<< visible) was masked by a GCC bug (looking in the global namespace when it shouldn't). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e573a9f0b82197ece967593d38d55799ada0572 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Dec 24 17:49:28 2009 +0000 Don't emit trailing semicolon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92133 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08cdb8a64f60f7737892f16ccab52acd1057d8e1 Author: John McCall <rjmccall@apple.com> Date: Thu Dec 24 12:16:56 2009 +0000 Substantially optimize APFloat::toString() by doing a single large divide to cut the significand down to the desired precision *before* entering the core divmod loop. Makes the overall algorithm logarithmic in the exponent. There's still a lot of room for improvement here, but this gets the performance back down to acceptable-for-diagnostics levels, even for long doubles. negligible, even on long doubles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92130 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7d9cb2b8c27f4785f1d5a50a13fbb74b9a6e028 Author: John McCall <rjmccall@apple.com> Date: Thu Dec 24 08:56:26 2009 +0000 Add accessors for the largest-magnitude, smallest-magnitude, and smallest-normalized-magnitude values in a given FP semantics. Provide an APFloat-to-string conversion which I am quite ready to admit could be much more efficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92126 91177308-0d34-0410-b5e6-96231b3b80d8 commit c77cc1794d1e2f70ad0b1b8ccd5e1661cd1c55c2 Author: John McCall <rjmccall@apple.com> Date: Thu Dec 24 08:52:06 2009 +0000 Set Remainder before Quotient in case Quotient and LHS alias. The new order should be immune to such problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92124 91177308-0d34-0410-b5e6-96231b3b80d8 commit f35785f5df44d1908b82d87c9edd3d2b93f84022 Author: Dale Johannesen <dalej@apple.com> Date: Thu Dec 24 01:10:43 2009 +0000 Testcase for llvm-gcc checkin 92108. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92110 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d0ad3b99ec52705b0256dfd0421344511028b32 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 24 01:07:17 2009 +0000 handle equality memcmp of 8 bytes on x86-64 with two unaligned loads and a compare. On other targets we end up with a call to memcmp because we don't want 16 individual byte loads. We should be able to use movups as well, but we're failing to select the generated icmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92107 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d922b408462129adb924b960e81ac65077fab5a Author: David Greene <greened@obbligato.org> Date: Thu Dec 24 00:39:02 2009 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92099 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a34688bac4bb0ec549e82da03d912282d364492 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 24 00:37:38 2009 +0000 move an optimization for memcmp out of simplifylibcalls and into SDISel. This optimization was causing simplifylibcalls to introduce type-unsafe nastiness. This is the first step, I'll be expanding the memcmp optimizations shortly, covering things that we really really wouldn't want simplifylibcalls to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92098 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55f2a677a444fb3db1cf6b679f261d242b8636d1 Author: David Greene <greened@obbligato.org> Date: Thu Dec 24 00:34:21 2009 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 259191f8260ce170bac8eba3e221c35e93d2778e Author: David Greene <greened@obbligato.org> Date: Thu Dec 24 00:31:35 2009 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92096 91177308-0d34-0410-b5e6-96231b3b80d8 commit 32c864e1d29d12c6156ce242458f4668e5acb211 Author: David Greene <greened@obbligato.org> Date: Thu Dec 24 00:27:55 2009 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92094 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0e0771a5c8a082bffed6d4bcea8d6f41b186bfb Author: David Greene <greened@obbligato.org> Date: Thu Dec 24 00:14:25 2009 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 081d4ccced881523716f5017bf619546a2e7ab43 Author: David Greene <greened@obbligato.org> Date: Thu Dec 24 00:06:26 2009 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92092 91177308-0d34-0410-b5e6-96231b3b80d8 commit b74668684da4ed870af49851ef26b0d526c77401 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:47:53 2009 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a94535216c37f5c33a40b1a88a32a735077c3ff Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:38:28 2009 +0000 Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92088 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff374c2b59fe114b6910a40285deed40230f1208 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:29:28 2009 +0000 Change dbgs() back to errs() as Chris requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92086 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4151dd0bbf6a685586b8fecf4037a7a27456f944 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:27:15 2009 +0000 Change dbgs() back to errs() as Chris requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5878b32788cee3c581890e775e1d8fcc8d55ccc5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 23 23:24:51 2009 +0000 reorder to follow a normal fall-through style, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92084 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa3571123711181442ca28841946762622336a2b Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:23:15 2009 +0000 Clarify how dbgs() operates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92083 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e0a6b7dfd1f5ea140018bf1e30f1924d0a1c87e Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:19:43 2009 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92082 91177308-0d34-0410-b5e6-96231b3b80d8 commit 702481a81b95fed36e43478d719bf0f0deebd262 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:14:41 2009 +0000 Change dbgs() back to errs() for assert messages as Chris requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92081 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6350f81d59920edcfd8b44ac6b66af0c7ff18113 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:09:39 2009 +0000 Change dbgs() back to errs() for assert messages as Chris requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92080 91177308-0d34-0410-b5e6-96231b3b80d8 commit aeeb42419cc76d1fd44b1fe3fd4f4140ee2c3961 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 23 23:03:24 2009 +0000 sizeof(char) is always 1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92079 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5fad3b9406fcfda51c31bd559edd61d7ef44d27 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 23:00:50 2009 +0000 Change dbgs() back to errs() for assert messages as Chris requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92077 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfea7e628a030fc5f15cbdd757ff661b7d834fd8 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 22:59:29 2009 +0000 Change dbgs() back to errs() for assert messages as Chris requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92076 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce4d5136399a6a07388495c762e294986895d926 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 22:58:38 2009 +0000 Remove dump routine and the associated Debug.h from a header. Patch up other files to compensate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92075 91177308-0d34-0410-b5e6-96231b3b80d8 commit 053e91a4308e9fa66c1af1a7019ce45c71606f28 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 22:49:57 2009 +0000 Change dbgs() back to errs() as Chris requested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92073 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a32a9d73bc8035a13c6241433d6e70a2d4290fb Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 22:35:10 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92071 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9561c821ce2afaad4926e2830ed9f30cb27f29d7 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 22:28:01 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92068 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6778bc905cce16db6b5b1be049a42ad1e0c9fddb Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 22:18:14 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92067 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc874baf87b0799d6f6c576b718b33691d7259dd Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 22:10:20 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96a47017353e6883b2484cc5811c72118fbbd404 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 21:58:29 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92063 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce32cf00cc1f35e1d4cc5e00d611bcde720ce9da Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 21:48:18 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01295bc07f8f0a55e3498827a5bfc3ee0a386f50 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Dec 23 21:34:03 2009 +0000 Move kill flags when the same register occurs more than once in a sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a98a2f5a8b106b2abfcb2b1e8b6c2cb49311951 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Dec 23 21:28:42 2009 +0000 Handle undef operands properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92054 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecae21aaf03469b5b0dd06b256425ae03a560b47 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Dec 23 21:28:37 2009 +0000 Make insert position available to MergeOpsUpdate. Rearrange arguments. No functional changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92053 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07be4590c1626617747d7b7922e17273a73e4c17 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Dec 23 21:28:31 2009 +0000 Perform kill flag calculations in new method. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92052 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c119d7d49e4c86b04e942d8ae5ac8721e2ca9a4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Dec 23 21:28:23 2009 +0000 Move repeated code to a new method. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92051 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07cc79a1623ca8414da9255543762abe8a8037d9 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 21:27:29 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92050 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ff267f2711ec600d9458749bef022b8a6476ab4 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 21:16:54 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92048 91177308-0d34-0410-b5e6-96231b3b80d8 commit a80ab14e95be6b6ea2c7fa2b57398b830fe6beb5 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 21:06:14 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92046 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00532a28dca9a915557626b73b4d089108ce85cb Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 20:52:41 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92042 91177308-0d34-0410-b5e6-96231b3b80d8 commit d120239be2123affddcadf85d9ce6cdf75e4f064 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 20:43:58 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92040 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad44e7d5a9e226bf9b3aa54763e83fc51273a969 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 20:34:27 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92039 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a60d180d7fe86436196abb37f8b767da07cd30d Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 20:20:46 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92037 91177308-0d34-0410-b5e6-96231b3b80d8 commit db4dd0d7e4a22a5c0ae0ca9970b649fc5ad0082a Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 23 20:13:44 2009 +0000 Remove an XFAIL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92036 91177308-0d34-0410-b5e6-96231b3b80d8 commit f17f28ba4b1067d125d577d52864810ef7733e61 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 20:10:59 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92035 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa7455dbb5c01cac91b9a254981cb381324a1b9f Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 20:03:58 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13e07bacee394735a7a604ffd4fdaf15b8384c95 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 19:51:44 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92033 91177308-0d34-0410-b5e6-96231b3b80d8 commit d02176108f777e643dd1b34e70675c3c3892fe21 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 19:45:49 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92032 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb782751a0a6c7f4997f8afc75124241b0a07f94 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 19:27:59 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92029 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8323720790f8a7b2ccb57d0ed927c406c7ada2ff Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 19:21:19 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92026 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9177c9c21f5bade02492fdb1b1cae0d772108f21 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 19:15:13 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92024 91177308-0d34-0410-b5e6-96231b3b80d8 commit 514e97429ecef0dd9f8a483e2dbe3dc8de47b73d Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Dec 23 19:12:50 2009 +0000 Alternative fix to make sure that the extern declarations used by DynamicLibrary::SearchForAddressOfSymbol refer to declarations in the global namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92023 91177308-0d34-0410-b5e6-96231b3b80d8 commit afaefaaf3d83a920746492a48e70c7343f2df5e1 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Dec 23 19:04:10 2009 +0000 Revert 92020 until I figure out a more portable fix git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 852b0c0e84467eab2076b2014b54843b15b06b1e Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Dec 23 18:56:27 2009 +0000 Move the extern symbol declarations outside of DynamicLibrary::SearchForAddressOfSymbol and force them to have "C" linkage. Interestingly, GCC treats the block-scoped "extern" declarations we previously had as if they were extern "C" declarations (or, at least, were in the global namespace), so that GCC bug papered over this LLVM bug. Clang and EDG get the linkage correct; this new variant seems to work for both GCC and Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92020 91177308-0d34-0410-b5e6-96231b3b80d8 commit a21b0c41a131b8eaf95cc441e519923a380ea19c Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Dec 23 18:27:13 2009 +0000 Fix another -Wmismatched-tags warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92017 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cc2dbba20994329d71739adc9e54d63e95f37a5 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 18:25:37 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92016 91177308-0d34-0410-b5e6-96231b3b80d8 commit a28b20c236ba2ec1c466f612a84c8b965f60ea81 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 17:55:11 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92013 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc8b5720c49dd593865b6ed1e18928e5e038000e Author: Nuno Lopes <nunoplopes@sapo.pt> Date: Wed Dec 23 17:48:10 2009 +0000 move a few more symbols to .rodata git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92011 91177308-0d34-0410-b5e6-96231b3b80d8 commit d25af07faae782ffd616b13b2d8dadd1e229a0f9 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 17:24:22 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92006 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2531b82af471667ff2ffcab9eb801b77f04ec0f6 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 17:18:22 2009 +0000 Convert debug messages to use dbgs(). Generally this means s/errs/dbgs/g except for certain special cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92005 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa80e75a467dd54a9e2007f29ff99aa8fd42626d Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Dec 23 17:05:07 2009 +0000 Fix struct/class mismatch for LTOModule and LTOCodeGenerator, detected by Clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92004 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5efd48c6c7c43ed1d8eadb79c17260b15f472f38 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Dec 23 17:03:46 2009 +0000 De-bork CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92003 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb6f927871a16e14c3b78ec1382d75fe82197bd4 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 16:39:06 2009 +0000 Provide dbgs(), a circular-buffering debug output stream. By default it simply passes output to errs(). If -debug-buffer-size=N is set N > 0, dbgs() buffers its output until program termination and dumps the last N characters sent to it. This is handy when debugging very large inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92002 91177308-0d34-0410-b5e6-96231b3b80d8 commit 825e4b5c9261d0c2ee58c5a771c1331fbfdc8885 Author: David Greene <greened@obbligato.org> Date: Wed Dec 23 16:08:15 2009 +0000 Add circular_raw_ostream, which buffers its output in a circular queue and outputs it when explicitly flushed. The intent is to use it in situations such as debug output logging where a signal handler can take care of flushing the buffer at program termination. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92001 91177308-0d34-0410-b5e6-96231b3b80d8 commit 236c4bde3fd5143cf9ea997a9863e4a3caaf9210 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Dec 23 12:50:03 2009 +0000 Make it easier to regenerate docs when srcdir != objdir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 388266107e740ca794485b3a585def2883956f6f Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Dec 23 12:49:51 2009 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91999 91177308-0d34-0410-b5e6-96231b3b80d8 commit 509f9240d37ecbdcabf1d3157a6140322030706b Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Dec 23 12:49:41 2009 +0000 Cosmetic issue: more consistent naming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91998 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27d15f58084d6b25bdec9c65eacc2821cb1b9d73 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Dec 23 12:49:30 2009 +0000 Allow (set_option SwitchOption, true). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bb804eb2f89c971a5860a6e0bb0f6f5d58a8ef7 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Dec 23 11:19:09 2009 +0000 Reapply 91904. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91996 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f01e330bad7cb24d966bf9e51cfa8c4afbdb4d1 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Dec 23 10:56:02 2009 +0000 Added missing patterns for subtract instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5316fa5d7262c48b511104e64664f7b8938a5d6b Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Dec 23 10:35:24 2009 +0000 deleting empty file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 391ab2127fb765c0c3fedd0e8db7ac440524353e Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Dec 23 09:46:01 2009 +0000 Reverting back 91904. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91993 91177308-0d34-0410-b5e6-96231b3b80d8 commit f81e44d0fe15207bd331798aee58a3c95c39a4b8 Author: Dale Johannesen <dalej@apple.com> Date: Wed Dec 23 07:32:51 2009 +0000 Use more sensible type for flags in asms. PR 5570. Patch by Sylve`re Teissier (sorry, ASCII only). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91988 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb2367dd4da70f93d7b83b41c6c00d857358b139 Author: Eric Christopher <echristo@apple.com> Date: Wed Dec 23 02:51:48 2009 +0000 Update objectsize intrinsic and associated dependencies. Fix lowering code and update testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25a9b18b58d5c85ad531ca50ac8e81acdf3ffd76 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 23 01:46:40 2009 +0000 really remove the instruction, don't just comment it out git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91976 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e34f628addb0a70b0f28ada176693cd30f9349a Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 23 01:45:04 2009 +0000 completely eliminate the MOV16r0 'instruction'. The only interesting part of this is the divrem changes, which are already tested by CodeGen/X86/divrem.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91975 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a8951e0e3247ddcfa1b0b4486cb77ceb1985a9a Author: Sean Callanan <scallanan@apple.com> Date: Wed Dec 23 01:32:29 2009 +0000 More fixes for Visual C++. Replaced several very small static inline functions with macros. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ef8bc9fb5cb8ea6d404809565bdc7088b85f948 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 23 01:30:26 2009 +0000 stop pattern matching 16-bit zero's of a register to MOV16r0, instead use the appropriate subreggy thing. This generates identical code on some large apps (thanks to Evan's cross class coalescing stuff he did back in july). This means that MOV16r0 can go away completely in the future soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91972 91177308-0d34-0410-b5e6-96231b3b80d8 commit f70c94554077d2291b6867a2f24e1cd40f2337d1 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 23 01:28:19 2009 +0000 Remove superfluous SDNode ordering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2be082890768917e7360194b667a7fdb81b140b3 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Dec 23 00:58:02 2009 +0000 Disable JITTest.FunctionIsRecompiledAndRelinked on ARM where it's not implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91963 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e5b9ec2b938c3eb3ef527f254d7200a720e351c Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 23 00:47:20 2009 +0000 Remove node ordering from inline asm nodes. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91961 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac0bfeb8b0af333e4167dbe6e15ff335ce7b67e1 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 23 00:45:10 2009 +0000 Suppress compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92b889c9eb3ea14a43dcc2ec7ee64d319a3156d3 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 23 00:44:51 2009 +0000 Remove node ordering from VA nodes. It's not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91958 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b4cefa1b947151b3f2178cf3aabec2642e7582b Author: Eric Christopher <echristo@apple.com> Date: Wed Dec 23 00:29:49 2009 +0000 Update docs for bitcode changes. For object size checking we won't work with partial objects so just count the type as a boolean. Update appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91954 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b000faeb29370a0c4cb395368f4d026b74c1db7 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 23 00:28:23 2009 +0000 Revert r91949 r91942 and r91936. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25ae075ab2194cfc445b001c65fa3bf73d65fa93 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Dec 23 00:18:40 2009 +0000 restore 'make update' functionality by not ignoring 'clang' here git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91950 91177308-0d34-0410-b5e6-96231b3b80d8 commit b24f6e8dd614f6e99af0caeedcbb79160d09e09c Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 23 00:05:09 2009 +0000 Finish up node ordering in ExpandNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91949 91177308-0d34-0410-b5e6-96231b3b80d8 commit f55eba02e15f4dce951d3aef8e1e83c2c9fed762 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Dec 22 23:54:54 2009 +0000 Add coalescer asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91945 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6986e5d47b2c955e77994fb40bcd2f6c2f2038e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Dec 22 23:54:44 2009 +0000 Add a SPR register class to the ARM target. Certain Thumb instructions require only SP (e.g. tSTRspi). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91944 91177308-0d34-0410-b5e6-96231b3b80d8 commit daad0b43625ca69376938361b466ef42fbdd9776 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Dec 22 23:47:23 2009 +0000 Partially revert r91626. Materializing extra functions to determine whether they're available_externally broke VMKit, which was relying on the fact that functions would only be materialized when they were first called. We'll have to wait for http://llvm.org/PR5737 to really fix this. I also added a test for one of the F->isDeclaration() calls which wasn't covered by anything else in the test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91943 91177308-0d34-0410-b5e6-96231b3b80d8 commit c969f4b0e7b5df3a854b3d41285a26dc34c4b855 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 23:44:56 2009 +0000 Assign ordering to nodes created in ExpandNode. Only roughly 1/2 of the function is finished. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91942 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14a5e3e29709da3c3297a739a06127f367628bef Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Dec 22 23:18:18 2009 +0000 Fix a crash in JIT::recompileAndRelinkFunction(). It doesn't pass the MCI argument to runJITOnFunction(), which caused a null pointer dereference at every call. Patch by Gianluca Guida! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91939 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ee0a9f4d4ac6941cb03bb0e9bd88520221a0b45 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 22:53:39 2009 +0000 Assign ordering to SDNodes in PromoteNode. Also fixing a subtle bug where BSWAP was using "Tmp1" in the first getNode call instead of Node->getOperand(0). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91936 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7043d80affa413b00d8ec2e205e26772e29c2429 Author: Sean Callanan <scallanan@apple.com> Date: Tue Dec 22 22:51:40 2009 +0000 Removed the "inline" keyword from the disassembler decoder, because the Visual C++ build does not build .c files as C99 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91935 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34879e45cd8129131ce21558aa92cc2f8876574d Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 22:50:29 2009 +0000 rename HexDisassembler -> Disassembler, it works on any input integer encoding (0123, 0b10101, 42, etc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6913818399687ea52e6cce639dcf4e17fbd232c6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 22:47:43 2009 +0000 just discard the debug output from the disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70abd22a14353cb48d63cc24c311343ce2bb5a7a Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Dec 22 22:37:23 2009 +0000 Add testcase for PR5703 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91931 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc48d238c088e790bf368544b45ba3f43b632877 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Dec 22 21:52:27 2009 +0000 Remove minimal CFG sanity checks from verifier. These checks would often trigger on unreachable statements inserted by bugpoint, leading it astray. It would be nice if we could distinguish unreachable blocks from errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91923 91177308-0d34-0410-b5e6-96231b3b80d8 commit f040bcb2c5d8edb446938db365ad2cc031822a9b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Dec 22 21:48:20 2009 +0000 Allow explicit %reg0 operands beyond what the .td file describes. ARM uses these to indicate predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91922 91177308-0d34-0410-b5e6-96231b3b80d8 commit 798c23dcf69e484ae19906869e940bc6b7872117 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 21:35:02 2009 +0000 Allow 0 as an order number. Don't assign an order to formal arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91920 91177308-0d34-0410-b5e6-96231b3b80d8 commit b53da77b6aaf950b6a59166ddaa5541326c4e43b Author: Sean Callanan <scallanan@apple.com> Date: Tue Dec 22 21:12:55 2009 +0000 Fixes to the X86 disassembler: Made LEA memory operands emit only 4 MCInst operands. Made the scale operand equal 1 for instructions that have no SIB byte. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e2dadd738efd7725ad8de7e064c2d67384f7ed4 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Dec 22 20:11:00 2009 +0000 Restore snprintf weirdness for VCPP only git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91918 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42806e669ce6482a6268d64ab4d0b53c07ccea70 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 19:33:28 2009 +0000 Fix the Convert to scalar to not insert dead loads in the store case. The load is needed when we have a small store into a large alloca (at which point we get a load/insert/store sequence), but when you do a full-sized store, this load ends up being dead. This dead load is bad in really large nasty testcases where the load ends up causing mem2reg to insert large chains of dependent phi nodes which only ADCE can delete. Instead of doing this, just don't insert the dead load. This fixes rdar://6864035 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91917 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0798ce7b64a048bb502c7cf954cd89484940e46 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 19:23:33 2009 +0000 fix some fixme's by using twines git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91916 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd628a53c45c84a9b6058a26fb58ac8063d7f937 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Dec 22 18:49:55 2009 +0000 Use proper move instructions. Make the verifier happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e4381a943076f3c22a07729e3e2fc528d13a369 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Dec 22 18:34:19 2009 +0000 Report an error for bad inline assembly, where the value passed for an "indirect" operand is not a pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91913 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8420485b61d066ed0a876a35cf3098769e1905c Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Dec 22 17:47:23 2009 +0000 Remove target attribute break-sse-dep. Instead, do not fold load into sse partial update instructions unless optimizing for size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c794cc4f30e9b35a9d2aec6f5b6e05dce42a2b7 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Tue Dec 22 17:25:11 2009 +0000 Include based on the current path, since we already -I the X86 target's path. Fixes CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91908 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3828a78a14f37cdf98db1a905ea51fdbd03a5b4 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Tue Dec 22 14:25:37 2009 +0000 While converting one of the operands to a memory operand, we need to check if it is Legal and does not result into a cyclic dep. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91904 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dafc1537eed6c94009aca694090c5a7d280d1ea Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 07:03:21 2009 +0000 specify what is invalid about it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91901 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b67a19c78e9d7936eedd0d607dd56a849a5ae88 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 07:01:12 2009 +0000 specify a triple to use, fixing the test on non-x86-64 hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91900 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e0dc43e679050600081a316ea18a09d292d47e8 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 06:58:29 2009 +0000 reject invalid input with a caret, e.g.: simple-tests.txt:16:1: error: invalid instruction 0xff 0xff ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91898 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf24dfc6ea2873cce92ad5c10e8ec8c26e4b40f1 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Dec 22 06:57:14 2009 +0000 Generalize SROA to allow the first index of a GEP to be non-zero. Add a missing check that an array reference doesn't go past the end of the array, and remove some redundant checks for in-bound array and vector references that are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91897 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a30eb39c8801739c9a3cc139ea00a16d38140f9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 06:56:51 2009 +0000 various cleanups, make the disassemble reject lines with too much data on them, for example: addb %al, (%rax) simple-tests.txt:11:5: error: excess data detected in input 0 0 0 0 0 ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91896 91177308-0d34-0410-b5e6-96231b3b80d8 commit e409a0ed6b8c66f9f4f0f3cef584af8d6dd013a0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 06:45:48 2009 +0000 If you thought that it didn't make sense for the disassembler to not produce caret diagnostics, you were right! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91895 91177308-0d34-0410-b5e6-96231b3b80d8 commit d57f7cd43e80255b87f213e58611407add7b335d Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 06:37:58 2009 +0000 rewrite the file parser for the disassembler, implementing support for comments. Also, check in a simple testcase for the disassembler, including a test for r91864 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91894 91177308-0d34-0410-b5e6-96231b3b80d8 commit 713e9712579faccc6f8760586bf6cbb777c5e2ed Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 06:24:00 2009 +0000 don't crash on blank lines, rename some variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91892 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d4f9105490cb5cad700f117ffa1b84c9a3e6b0a Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 06:07:30 2009 +0000 Implement PR5795 by merging duplicated return blocks. This could go further by merging all returns in a function into a single one, but simplifycfg currently likes to duplicate the return (an unfortunate choice!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91890 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d85a53fad48d627c6e4a17771ebcd46cfc4db6e Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 06:04:26 2009 +0000 convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91889 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c85d89d85046de478b62c7448927db2e4b87121 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 04:47:41 2009 +0000 don't run GVN at -O1, GCC doesn't do it's equivalent at that optimization level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91886 91177308-0d34-0410-b5e6-96231b3b80d8 commit 873e26746bd3c642fbc9947a6dcf500c0995f3cb Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 04:25:02 2009 +0000 The phi translated pointer can be computed when returning a partially cached result instead of stored. This reduces memdep memory usage, and also eliminates a bunch of weakvh's. This speeds up gvn on gcc.c-torture/20001226-1.c from 23.9s to 8.45s (2.8x) on a different machine than earlier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91885 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf9d0f9154274adb84a66c0581dd9529f0b83ea1 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 02:10:19 2009 +0000 Add more plumbing. This time in the LowerArguments and "get" functions which return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91880 91177308-0d34-0410-b5e6-96231b3b80d8 commit 919f267795692f9df06fef0ee620411534c819aa Author: Sean Callanan <scallanan@apple.com> Date: Tue Dec 22 02:07:42 2009 +0000 Changed REG_* to MODRM_REG_* to avoid conflicts with symbols in AuroraUX's global namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91879 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42c4404dd4b7162b06f56fd82dc779b0b3d13837 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Dec 22 01:41:37 2009 +0000 Fix some may-be-uninitialized var warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91878 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16ded292991e3e288f1d9deb3e33a5268f1cd6fb Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 01:38:23 2009 +0000 fix unit test that I broke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91877 91177308-0d34-0410-b5e6-96231b3b80d8 commit b22e7af680a571467d80a6b5fd5661525010ded5 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 01:25:10 2009 +0000 Add SDNode ordering to inlined asm and VA functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7581e0c8ad813a3f6c6c0d357b7ced37ed3dfb67 Author: Eric Christopher <echristo@apple.com> Date: Tue Dec 22 01:23:51 2009 +0000 Whitespace fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91875 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1bed4b1cef55bb83753e34e0929c4b10bcc0074 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 01:17:43 2009 +0000 types don't need atomic inc/dec, they are local to an llvmcontext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91873 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05a245f41d40f8be120b7d131a7ce16c17dc47d3 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 01:11:43 2009 +0000 Adding more assignment of ordering to SDNodes. This time in the "call" and generic copy functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91872 91177308-0d34-0410-b5e6-96231b3b80d8 commit a116e5e520689a75baf513fa8d2cba65e0be743a Author: Sean Callanan <scallanan@apple.com> Date: Tue Dec 22 01:11:26 2009 +0000 Fixed library dependencies between the X86 disassembler and X86 codegen that were causing circular symbol dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91871 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc86f8cc6c57cb3329675f4fc8ec868fed7a1fe1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 01:00:32 2009 +0000 avoid calling extractMallocCall when it's obvious we don't have a call. This speeds up memdep ~1.5% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91869 91177308-0d34-0410-b5e6-96231b3b80d8 commit d42a013740b839251387f41e40bad6a80552dae8 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 00:51:57 2009 +0000 comment fix: weakvh -> tracking vh git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91867 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16c7988cb5516a7686c51c2387eb3eef3858893c Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 00:50:32 2009 +0000 Add ordering of SDNodes to LowerCallTo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91866 91177308-0d34-0410-b5e6-96231b3b80d8 commit 437f3c269851340bf66d9f5b64f04df846781e13 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 22 00:44:05 2009 +0000 print pcrel immediates as signed values instead of unsigned so that we get things like this out of the disassembler: 0x100000ecb: callq -96 instead of: 0x100000ecb: callq 4294967200 rdar://7491123 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91864 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b72641d65a254c01921e4f767003279383daba4 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 00:40:51 2009 +0000 Now add ordering to SDNodes created by the massive intrinsic lowering function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91863 91177308-0d34-0410-b5e6-96231b3b80d8 commit f406ec5e612f8958fb8ea7c6b5b129753b0b8064 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 22 00:12:37 2009 +0000 To make things interesting, I added MORE code to set the ordering of SDNodes. This time in the load/store and limited-precision code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91860 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87476f66ef1998ff5d93a2cb413ba10a1413d21b Author: Lang Hames <lhames@gmail.com> Date: Tue Dec 22 00:11:50 2009 +0000 Changed slot index ranges for MachineBasicBlocks to be exclusive of endpoint. This fixes an in-place update bug where code inserted at the end of basic blocks may not be covered by existing intervals which were live across the entire block. It is also consistent with the way ranges are specified for live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c01aa9daf0ba64f48ab7c3ffe81a7c51b2006fa Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 21 23:47:40 2009 +0000 Add more plumbing to assign ordering to SDNodes. Have the "getValue" method assign the ordering when called. Combine some of the ordering assignments to keep things simple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4137a8aa60914101aa1ad7f1a7dfe12c0b35607c Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Dec 21 23:27:57 2009 +0000 Add suggested parentheses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91853 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79479fcf0a878ea487fd745920c106d5c860a723 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 23:15:48 2009 +0000 Add a fastpath to Load GVN to special case when we have exactly one dominating load to avoid even messing around with SSAUpdate at all. In this case (which is very common, we can just use the input value directly). This speeds up GVN time on gcc.c-torture/20001226-1.c from 36.4s to 16.3s, which still isn't great, but substantially better and this is a simple speedup that applies to lots of different cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91851 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8d65d5bf97d41881148b3ce93f634a9ac3903ab Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 21 23:10:19 2009 +0000 More ordering plumbing. This time for GEP. I need to remember to assign orderings to values returned by getValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91850 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe213dba0d5785b3dfa97a22f0d20aaf9982e3f3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 23:04:33 2009 +0000 refactor some code out to a new helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91849 91177308-0d34-0410-b5e6-96231b3b80d8 commit b702ceab37bdb90e32041f6ae1b5085a82abd4c8 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 22:43:03 2009 +0000 improve indentation avoid a pointless conversion from weakvh to trackingvh, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91848 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a33d37c9f1e5ef0c7f5bcdb1c488540d42f3f67 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 21 22:42:14 2009 +0000 Another incremental check-in for assigning ordering to SDNodes. This time for shuffle and insert vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91847 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef4620fe2846df5790119fd45e62e28f6f490b3e Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 21 22:30:11 2009 +0000 Assign ordering to more instructions. Incremental check-in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4852546f88da1386e3f36ad7c0e270f0798a3dea Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 21 21:59:52 2009 +0000 - Add a bit more plumbing assigning an order to SDNodes. - Modify the "dump" method to emit the order of an SDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91845 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29296e63554a23d2e8a7ccc7c1b776dd52346e1c Author: David Greene <greened@obbligato.org> Date: Mon Dec 21 21:21:34 2009 +0000 Fix a bug in !subst where TableGen would go and resubstitute text it had just substituted. This could cause infinite looping in certain pathological cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91843 91177308-0d34-0410-b5e6-96231b3b80d8 commit df70e60850a5c0b905cd23e84e44e677dc6c03e7 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Dec 21 20:19:37 2009 +0000 Remove uber-gross hack. The define _snprintf to snprintf is invalid due to two reasons: 1. Accroding to C++ standard snprintf should be available in std namespace (and __gnu_cxx in case of GCC to). Such ifdef will change all snprintf's to _snprintf's, but won't bring snprintf to all necessary namespaces. Thus e.g. any locale-using code on mingw will yield an error (include this file + string to see the result) 2. MSVCRT's _snprintf does not comply with C99 standard. Standard one is snprintf. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91842 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38150fc924f6aa5ba056d738d8ecd75cbc4f8778 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Dec 21 20:18:49 2009 +0000 Mark FPW as allocable when frame address is taken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 708808ae99856d00af548177ea42e18d4ad32dc8 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 21 19:59:38 2009 +0000 First wave of plumbing for assigning an ordering to SDNodes. This takes care of a lot of the branching instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91838 91177308-0d34-0410-b5e6-96231b3b80d8 commit e35f67f9527538257e684574bdf21392be2c92bf Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Dec 21 19:53:39 2009 +0000 Delete the instruction just before the function terminates for consistency sake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91836 91177308-0d34-0410-b5e6-96231b3b80d8 commit d58e7f8655f246d9bbda9ba4933e1906a5690dc8 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Dec 21 19:34:59 2009 +0000 Place SDNodeOrdering.h in the directory it's used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91834 91177308-0d34-0410-b5e6-96231b3b80d8 commit 962018b8231c524caba670c9dd19427eafd6f1fd Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Dec 21 18:39:47 2009 +0000 Remove special-case SROA optimization of variable indexes to one-element and two-element arrays. After restructuring the SROA code, it was not safe to do this without adding more checking. It is not clear that this special-case has really been useful, and removing this simplifies the code quite a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91828 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f5262f3ef1729d48a3e03f90192c053d27fa1e9 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Dec 21 17:31:59 2009 +0000 XFAIL these tests on powerpc, under the assumption that no one cares. If you care, feel free to fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c6ab9595c06e46bd1670ce7a0a52852d9ff669f Author: Eric Christopher <echristo@apple.com> Date: Mon Dec 21 08:15:29 2009 +0000 Fix setting and default setting of code model for jit. Do this by allowing backends to override routines that will default the JIT and Static code generation to an appropriate code model for the architecture. Should fix PR 5773. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76f683191bd6137f9177dca4686ead7d6944981b Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Dec 21 08:03:16 2009 +0000 A couple minor README updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91823 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7abdd670070ff4c05b8e79c8d393b252e9cbf4d6 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 07:52:40 2009 +0000 improve compatibility with SWIG, patch by James Knight! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 860471ea8a2cf7e68285dd1351c51152518bd8e1 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 07:45:57 2009 +0000 revert r89298, which was committed without a testcase. I think the underlying PHI node insertion issue in SSAUpdate is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91821 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bf5b030a6357c2fb9ee937c0a7b907f9d995052 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 07:16:11 2009 +0000 fix PR5837 by having SSAUpdate reuse phi nodes for the 'GetValueInMiddleOfBlock' case, instead of inserting duplicates. A similar fix is almost certainly needed by the machine-level SSAUpdate implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91820 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8785545bcf2d1e861969bdf0cdc3c506abf7163 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 07:15:15 2009 +0000 add a helper ctor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91819 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccdbd097759b1f3feaa10a39b7cc23341da58dbd Author: Eli Friedman <eli.friedman@gmail.com> Date: Mon Dec 21 06:49:24 2009 +0000 Change StringRef::startswith and StringRef::endswith to versions which are a bit more verbose, but optimize to much shorter code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91817 91177308-0d34-0410-b5e6-96231b3b80d8 commit f171d4bff6fe4500beb60a3525e2c1e3b76d46b7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 06:08:50 2009 +0000 add check lines for min/max tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91816 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c88fd376d17c371454f88795bc0a6bb4b2e30e3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 06:06:10 2009 +0000 really convert this to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91815 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ae148ac3895cc2204d32b84361bbebbb42384fb Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 06:03:05 2009 +0000 give instcombine some helper functions for matching MIN and MAX, and implement some optimizations for MIN(MIN()) and MAX(MAX()) and MIN(MAX()) etc. This substantially improves the code in PR5822 but doesn't kick in much elsewhere. 2 max's were optimized in pairlocalalign and one in smg2000. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91814 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ee8750e43a6c4fd3baf29b50ff2f5144161f7eb Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 05:53:13 2009 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91813 91177308-0d34-0410-b5e6-96231b3b80d8 commit eecd79c9182748a08fa05cb57b410f45a894432a Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 04:04:05 2009 +0000 enhance x-(-A) -> x+A to preserve NUW/NSW. Use the presence of NSW/NUW to fold "icmp (x+cst), x" to a constant in cases where it would otherwise be undefined behavior. Surprisingly (to me at least), this triggers hundreds of the times in a few benchmarks: lencode, ldecode, and 466.h264ref seem to *really* like this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2dce671f9422bce436c74ad48a2b964d08bf2af9 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 03:19:28 2009 +0000 Optimize all cases of "icmp (X+Cst), X" to something simpler. This triggers a bunch in lencode, ldecod, spass, 176.gcc, 252.eon, among others. It is also the first part of PR5822 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91811 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd6df61746f769d9195f057199a9d16a215c2396 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 21 03:11:05 2009 +0000 convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e4b507f989730839d48a1ea77845b3a4d8b3aa9 Author: Lang Hames <lhames@gmail.com> Date: Sat Dec 19 23:32:32 2009 +0000 Fixed use of phi param in SlotIndex constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91790 91177308-0d34-0410-b5e6-96231b3b80d8 commit d452037790a4653227a51c854409e3a151d9ca3d Author: Chris Lattner <sabre@nondot.org> Date: Sat Dec 19 21:29:22 2009 +0000 fix an overly conservative caching issue that caused memdep to cache a pointer as being unavailable due to phi trans in the wrong place. This would cause later queries to fail even when they didn't involve phi trans. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fade252c5089e35a484d16b67dc3193d4744590 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Dec 19 21:27:30 2009 +0000 CMake: Update lib deps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91786 91177308-0d34-0410-b5e6-96231b3b80d8 commit cae7a4ce386dd7b01264acd17fce0453ce671e66 Author: Chris Lattner <sabre@nondot.org> Date: Sat Dec 19 20:56:53 2009 +0000 .llx is no more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91784 91177308-0d34-0410-b5e6-96231b3b80d8 commit d19bb92ed1e9b879ed5ad87ab0021bed0b21d1b9 Author: Chris Lattner <sabre@nondot.org> Date: Sat Dec 19 20:44:43 2009 +0000 fix inconsistent use of tabs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91783 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70c75b50f227c44043294c642734da957925df59 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Dec 19 18:58:49 2009 +0000 Remove unused variable (noticed by clang++). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05e9f7410481592f66c6169923d903f9c592d3c4 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Dec 19 17:11:53 2009 +0000 #if 0 out X86 disassembler for now, it is breaking the build in multiple places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91778 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bdef5b8ec8fd24804c3017e27417788d03c3e3b Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sat Dec 19 13:52:01 2009 +0000 Emit direction operand in binary insns that stores in memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91777 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b40abc73cf4280ee01a3c40ecaab7834aa76796 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sat Dec 19 13:13:29 2009 +0000 Adding a bunch of options to the mcc16 driver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91776 91177308-0d34-0410-b5e6-96231b3b80d8 commit 333f2f2612d193b17a373c2643bf6033719e6998 Author: Nuno Lopes <nunoplopes@sapo.pt> Date: Sat Dec 19 12:07:00 2009 +0000 rename dprintf to dbgpritnf, in order to fix build with glibc (which already defines dprintf in stdio.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91775 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6adb84d954dd57766b7f3dd1454dfe3e05f83b7 Author: Nuno Lopes <nunoplopes@sapo.pt> Date: Sat Dec 19 11:52:18 2009 +0000 fix build and while at it remove a redudant include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91774 91177308-0d34-0410-b5e6-96231b3b80d8 commit d31fb873f66238f8ccd0edd157b1451e83ad796e Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sat Dec 19 11:38:14 2009 +0000 Test cases for changes done in 91768. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91773 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6758957e00103d5df70147ac3552efcf4a28c3b5 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sat Dec 19 08:26:25 2009 +0000 1. In indirect load/store insns , the name of fsr should be emitted as INDF. 2. include standard asmbly headers in generated asmbly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9731ea6739a2acc4c0b437f168dc6769f3808a98 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Sat Dec 19 07:05:23 2009 +0000 Fix a bunch of little errors that Clang complains about when its being pedantic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42becae4234059212beb68cfdd09ddf0e9ff7377 Author: Chris Lattner <sabre@nondot.org> Date: Sat Dec 19 07:01:15 2009 +0000 fix PR5827 by disabling the phi slicing transformation in a case where instcombine would have to split a critical edge due to a phi node of an invoke. Since instcombine can't change the CFG, it has to bail out from doing the transformation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91763 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b827d0d4b3e378a70b894d130235274c56d4697 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Dec 19 06:53:17 2009 +0000 Update my SROA changes in response to review. * change FindElementAndOffset to return a uint64_t instead of unsigned, and to identify the type to be used for that result in a GEP instruction. * move "isa<ConstantInt>" to be first in conditional. * replace some dyn_casts with casts. * add a comment about handling mem intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91762 91177308-0d34-0410-b5e6-96231b3b80d8 commit e38b949bc7db6805bb2a77ca4d6068037cd8c2d5 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Dec 19 04:16:57 2009 +0000 More bzero -> memset that I missed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6861faed9cba02c3a49b856a4e728dce8c1b651d Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Dec 19 04:16:48 2009 +0000 Add missing newlines at EOF (for clang++). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91756 91177308-0d34-0410-b5e6-96231b3b80d8 commit 299fdcebe71c89b3fc73923b44c4f0a9169e340d Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Dec 19 03:31:50 2009 +0000 Use memset instead of bzero, its more portable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91754 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7566a55acf4fe9a69ad17887fea806d846ba7e98 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Sat Dec 19 03:21:36 2009 +0000 Remove spurious semicolon. Thanks, Clang git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a4f32c3c2eba982b658ac52f37f1d667960acea Author: Sean Callanan <scallanan@apple.com> Date: Sat Dec 19 02:59:52 2009 +0000 Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit incarnations), integrated into the MC framework. The disassembler is table-driven, using a custom TableGen backend to generate hierarchical tables optimized for fast decode. The disassembler consumes MemoryObjects and produces arrays of MCInsts, adhering to the abstract base class MCDisassembler (llvm/MC/MCDisassembler.h). The disassembler is documented in detail in - lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime) - utils/TableGen/DisassemblerEmitter.cpp (table emitter) You can test the disassembler by running llvm-mc -disassemble for i386 or x86_64 targets. Please let me know if you encounter any problems with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91749 91177308-0d34-0410-b5e6-96231b3b80d8 commit 232149a85f22b513b690ce6386cc8922b66b659b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Dec 19 02:04:23 2009 +0000 Bump alignment requirements for windows targets to achieve compartibility with vcpp. Based on patch by Michael Beck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91745 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a0bb8172b4327b725fd609028c9f8ceb8086d8d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Dec 19 02:04:00 2009 +0000 Use 4-arg getVTList) variant instead of generic one, when possible git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91744 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3e53b706108ada456d24d6f2090b6a96b153569 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 19 01:47:13 2009 +0000 Delete unused code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a1afd606983941b9db6a41029c238b2df0b520a Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 19 01:46:34 2009 +0000 Fix a spello in a comment that Nick spotted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cae1100652da2ac306c7b9d11446d8e4639b6d7 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 19 01:46:09 2009 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09e76650fe1e6c21a06f0ef7f43b15c1f433e546 Author: Chris Lattner <sabre@nondot.org> Date: Sat Dec 19 01:38:42 2009 +0000 Make some methods const. The only interesting change here is that it changes raw_fd_ostream::preferred_buffer_size to return zero on a scary stat failure instead of setting the stream to an error state. This method really should not mutate the stream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28039a48aebce267d2472eb5e143f19c68354ac9 Author: John McCall <rjmccall@apple.com> Date: Sat Dec 19 00:55:12 2009 +0000 Qualify a bunch of explicit template instantiations to satisfy clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91736 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb0624b1443a68698a41e40e479b6910e6a18a57 Author: John McCall <rjmccall@apple.com> Date: Sat Dec 19 00:51:42 2009 +0000 Put TypesEqual and TypeHasCycleThroughItself in namespace llvm so ADL from the templates in TypesContext.h can find them. Caught by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91735 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3b3032dc132f8386dde8aa6ecbc6c8d92d35876 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Dec 19 00:05:07 2009 +0000 Forgot forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91732 91177308-0d34-0410-b5e6-96231b3b80d8 commit f169e657ed99eca80912bd00c06489556091a826 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 23:42:08 2009 +0000 Eliminate unnecessary LLVMContexts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91729 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a8afc0ed526b8b49af2c089ba600193f8b708c4 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 18 23:32:53 2009 +0000 Changes from review: - Move DisableScheduling flag into TargetOption.h - Move SDNodeOrdering into its own header file. Give it a minimal interface that doesn't conflate construction with storage. - Move assigning the ordering into the SelectionDAGBuilder. This isn't used yet, so there should be no functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a0bb8e3f58a6f09316801bcaf043d34b048605c Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 23:18:03 2009 +0000 Make this comment more precise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91722 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52cda8c8d86f40c6e2cab28f54367bf7c64ba804 Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri Dec 18 21:38:44 2009 +0000 Fix an issue in googletest where a name was used before it was defined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91718 91177308-0d34-0410-b5e6-96231b3b80d8 commit d26b552b438a1b4ba2d60bbf715f0286aa22d780 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 18 21:31:31 2009 +0000 Increase opportunities to optimize (brcond (srl (and c1), c2)). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91717 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a4a08546569962a0a1929d1eda9fd46bffbde75 Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri Dec 18 21:07:18 2009 +0000 Fix gcc warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91715 91177308-0d34-0410-b5e6-96231b3b80d8 commit d59ead6cba177414008b14ccbab2d86cd1e8cf3f Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Dec 18 20:35:38 2009 +0000 Catch more cases of a pointer being marked garbage twice. This helps when debugging some leaks (PR5770 in particular). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91713 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a3d620799aa212d3ef04231e0bace426cb4eb29 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Dec 18 20:14:40 2009 +0000 Reapply 91459 with a simple fix for the problem that broke the x86_64-darwin bootstrap. This also replaces the WeakVH references that Chris objected to with normal Value references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91711 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6e122fd8ed8e60cc79a1fbaef1658fe5aca160a Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Dec 18 20:12:14 2009 +0000 Fix another parallel make race condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e7564c22ba1e674327fc5c92540bb67bedaf292 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Dec 18 20:09:14 2009 +0000 Formalize MDNode's function-localness: - an MDNode is designated as function-local when created, and continues to be even if its operands are modified not to refer to function-local IR - function-localness is designated via lowest bit in SubclassData - getLocalFunction() descends MDNode tree to see if it is consistently function-local Add verification of MDNodes to checks that MDNodes are consistently function-local. Update AsmWriter to use isFunctionLocal(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91708 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80441befe44d1fc2d8c7c26536b4b0e582ccbcfd Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Dec 18 19:59:48 2009 +0000 Fix Win32 Path.inc for API update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91706 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb4a07928cea4c2e4b9406665669c7062018280e Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 18:45:31 2009 +0000 Revert this use of NUW/NSW also. Overflow-undefined multiplication isn't associative either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91701 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd9dd2b40d94c3846795ed176ea5d3b641006625 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Dec 18 16:59:39 2009 +0000 Fix libstdc++ build on ARM linux and part of PR5770. MI was not being used but it was also not being deleted, so it was kept in the garbage list. The memory itself was freed once the function code gen was done. Once in a while the codegen of another function would create an instruction on the same address. Adding it to the garbage group would work once, but when another pointer was added it would cause an assert as "Cache" was about to be pushed to Ts. For a patch that make us detect problems like this earlier, take a look at http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20091214/092758.html With that patch we assert as soon and the new instruction is added to the garbage set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91691 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffb71a4733c04874b5d47320507eea7e6a083791 Author: Tilmann Scheller <tilmann.scheller@googlemail.com> Date: Fri Dec 18 13:00:34 2009 +0000 Fix wrong frame pointer save offset in the 64-bit PowerPC SVR4 ABI. Patch contributed by Ken Werner of IBM! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91681 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2615b51f6c845fc7376f9bf3c773f5d1028e294 Author: Tilmann Scheller <tilmann.scheller@googlemail.com> Date: Fri Dec 18 13:00:15 2009 +0000 Add support for calls through function pointers in the 64-bit PowerPC SVR4 ABI. Patch contributed by Ken Werner of IBM! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91680 91177308-0d34-0410-b5e6-96231b3b80d8 commit e931a13acc5d5dd31e3ec33ccc4b7438e8a5afca Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Dec 18 11:27:26 2009 +0000 Make 'set_option' work with list options. This works now: (set_option "list_opt", ["val_1", "val_2", "val_3"]) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91679 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21e40b731446c720069c0929bdfa590c946232a5 Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri Dec 18 08:22:35 2009 +0000 Optimize icmp of null and select of two constants even if the select has multiple uses. (The construct in question was found in gcc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31d9e33e0d4b4b815ec6002aaab2f280d450c21a Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 18 07:40:29 2009 +0000 On recent Intel u-arch's, folding loads into some unary SSE instructions can be non-optimal. To be precise, we should avoid folding loads if the instructions only update part of the destination register, and the non-updated part is not needed. e.g. cvtss2sd, sqrtss. Unfolding the load from these instructions breaks the partial register dependency and it can improve performance. e.g. movss (%rdi), %xmm0 cvtss2sd %xmm0, %xmm0 instead of cvtss2sd (%rdi), %xmm0 An alternative method to break dependency is to clear the register first. e.g. xorps %xmm0, %xmm0 cvtss2sd (%rdi), %xmm0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91672 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8a33c1c3ea5a45185dbfd0046b79c14f9821b4a Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 03:57:04 2009 +0000 Revert this use of NSW; this one isn't actually safe. NSW addition is not reassociative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91667 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7d9c3baf89ad6e2a3162daf524f1d4d4c9e9090 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 03:25:51 2009 +0000 Eliminte unnecessary uses of <cstdio>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91666 91177308-0d34-0410-b5e6-96231b3b80d8 commit 532e3f52901265414842dbe21e106f9b32c5b182 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 03:10:26 2009 +0000 Add utility routines for NSW multiply. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91664 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbe0132963a2021bcabd9fe92cd0b1c257614ab8 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 02:58:50 2009 +0000 Add utility routines for creating integer negation operators with NSW set. Integer negation only overflows with INT_MIN, but that's an important case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18256c45ce2016abbde91d2c738609dea2225561 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 02:14:37 2009 +0000 Delete an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91659 91177308-0d34-0410-b5e6-96231b3b80d8 commit eadde674855dc5d1e1bee25aa2c621d982b6d8d6 Author: Eric Christopher <echristo@apple.com> Date: Fri Dec 18 02:12:53 2009 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 620156de509db9f3d1a1130c33c680e92b722b3a Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 02:09:29 2009 +0000 Preserve NSW information in more places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91656 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3099793f471d4ca8845cb922da8a7052bd2d619 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 18 01:59:21 2009 +0000 Re-apply 91623 now that I actually know what I was trying to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91655 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf4c33d434849ca17d8624a77c56b94085d84954 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 01:24:09 2009 +0000 Add Loop contains utility methods for testing whether a loop contains another loop, or an instruction. The loop form is substantially more efficient on large loops than the typical code it replaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36dcb6d0219b2c549638bddb9b8c6d46d9877406 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 01:20:44 2009 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91653 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb8c8533ea5b7e620324138fb647b1b968ff5cae Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 01:14:11 2009 +0000 Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91651 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa5054b14df7bdc8da0f9e20c771d7d3b599c8d9 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 01:05:06 2009 +0000 Tidy up this testcase and add test for tailcall optimization with unreachable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91650 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc841d457d517cc8af00f08be3c7bdf803c1eb98 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Dec 18 01:03:29 2009 +0000 Handle ARM inline asm "w" constraints with 64-bit ("d") registers. The change in SelectionDAGBuilder is needed to allow using bitcasts to convert between f64 (the default type for ARM "d" registers) and 64-bit Neon vector types. Radar 7457110. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82dff7d94faf98ea406305388528b0d459987172 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 01:02:18 2009 +0000 Remove "tail" keywords. These calls are not intended to be tail calls. This protects this test from depending on codegen not performing the tail call optimization by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91648 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33922e093855021c4516c58b25d2a97321d7ec9f Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 00:38:08 2009 +0000 Don't pass const pointers by reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91647 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d6a53b925c6331b45c191fd1e8dfa4af3ce2fc8 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 00:28:43 2009 +0000 Update a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91645 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b781ff887e6ce97d55151debf0a6c91f4545344 Author: John McCall <rjmccall@apple.com> Date: Fri Dec 18 00:27:18 2009 +0000 Pass the error string directly to llvm_unreachable instead of the residual (0 && "error"). Rough consensus seems to be that g++ *should* be diagnosing this because the pointer makes it not an ICE in c++03. Everyone agrees that the current standard is silly and null-pointer-ness should not be based on ICE-ness. Excellent fight scene in Act II, denouement weak, two stars. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91644 91177308-0d34-0410-b5e6-96231b3b80d8 commit e28a5aeb1044f710d929732875a68072d157fdb4 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Dec 18 00:11:44 2009 +0000 Add test case for the phi reuse patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8eba23b792b47890c4d973ad6df31fdedfd25088 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 00:06:20 2009 +0000 Reapply LoopStrengthReduce and IVUsers cleanups, excluding the part of 91296 that caused trouble -- the Processed list needs to be preserved for the livetime of the pass, as AddUsersIfInteresting is called from other passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2366772de3db53fc74f19a184140687c2ac7d9bf Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 18 00:03:58 2009 +0000 Add an svn:ignore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91639 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10bd00cf60fd21ca257127ded9684b48aa22abc1 Author: Sean Callanan <scallanan@apple.com> Date: Fri Dec 18 00:01:26 2009 +0000 Instruction fixes, added instructions, and AsmString changes in the X86 instruction tables. Also (while I was at it) cleaned up the X86 tables, removing tabs and 80-line violations. This patch was reviewed by Chris Lattner, but please let me know if there are any problems. * X86*.td Removed tabs and fixed 80-line violations * X86Instr64bit.td (IRET, POPCNT, BT_, LSL, SWPGS, PUSH_S, POP_S, L_S, SMSW) Added (CALL, CMOV) Added qualifiers (JMP) Added PC-relative jump instruction (POPFQ/PUSHFQ) Added qualifiers; renamed PUSHFQ to indicate that it is 64-bit only (ambiguous since it has no REX prefix) (MOV) Added rr form going the other way, which is encoded differently (MOV) Changed immediates to offsets, which is more correct; also fixed MOV64o64a to have to a 64-bit offset (MOV) Fixed qualifiers (MOV) Added debug-register and condition-register moves (MOVZX) Added more forms (ADC, SUB, SBB, AND, OR, XOR) Added reverse forms, which (as with MOV) are encoded differently (ROL) Made REX.W required (BT) Uncommented mr form for disassembly only (CVT__2__) Added several missing non-intrinsic forms (LXADD, XCHG) Reordered operands to make more sense for MRMSrcMem (XCHG) Added register-to-register forms (XADD, CMPXCHG, XCHG) Added non-locked forms * X86InstrSSE.td (CVTSS2SI, COMISS, CVTTPS2DQ, CVTPS2PD, CVTPD2PS, MOVQ) Added * X86InstrFPStack.td (COM_FST0, COMP_FST0, COM_FI, COM_FIP, FFREE, FNCLEX, FNOP, FXAM, FLDL2T, FLDL2E, FLDPI, FLDLG2, FLDLN2, F2XM1, FYL2X, FPTAN, FPATAN, FXTRACT, FPREM1, FDECSTP, FINCSTP, FPREM, FYL2XP1, FSINCOS, FRNDINT, FSCALE, FCOMPP, FXSAVE, FXRSTOR) Added (FCOM, FCOMP) Added qualifiers (FSTENV, FSAVE, FSTSW) Fixed opcode names (FNSTSW) Added implicit register operand * X86InstrInfo.td (opaque512mem) Added for FXSAVE/FXRSTOR (offset8, offset16, offset32, offset64) Added for MOV (NOOPW, IRET, POPCNT, IN, BTC, BTR, BTS, LSL, INVLPG, STR, LTR, PUSHFS, PUSHGS, POPFS, POPGS, LDS, LSS, LES, LFS, LGS, VERR, VERW, SGDT, SIDT, SLDT, LGDT, LIDT, LLDT, LODSD, OUTSB, OUTSW, OUTSD, HLT, RSM, FNINIT, CLC, STC, CLI, STI, CLD, STD, CMC, CLTS, XLAT, WRMSR, RDMSR, RDPMC, SMSW, LMSW, CPUID, INVD, WBINVD, INVEPT, INVVPID, VMCALL, VMCLEAR, VMLAUNCH, VMRESUME, VMPTRLD, VMPTRST, VMREAD, VMWRITE, VMXOFF, VMXON) Added (NOOPL, POPF, POPFD, PUSHF, PUSHFD) Added qualifier (JO, JNO, JB, JAE, JE, JNE, JBE, JA, JS, JNS, JP, JNP, JL, JGE, JLE, JG, JCXZ) Added 32-bit forms (MOV) Changed some immediate forms to offset forms (MOV) Added reversed reg-reg forms, which are encoded differently (MOV) Added debug-register and condition-register moves (CMOV) Added qualifiers (AND, OR, XOR, ADC, SUB, SBB) Added reverse forms, like MOV (BT) Uncommented memory-register forms for disassembler (MOVSX, MOVZX) Added forms (XCHG, LXADD) Made operand order make sense for MRMSrcMem (XCHG) Added register-register forms (XADD, CMPXCHG) Added unlocked forms * X86InstrMMX.td (MMX_MOVD, MMV_MOVQ) Added forms * X86InstrInfo.cpp: Changed PUSHFQ to PUSHFQ64 to reflect table change * X86RegisterInfo.td: Added debug and condition register sets * x86-64-pic-3.ll: Fixed testcase to reflect call qualifier * peep-test-3.ll: Fixed testcase to reflect test qualifier * cmov.ll: Fixed testcase to reflect cmov qualifier * loop-blocks.ll: Fixed testcase to reflect call qualifier * x86-64-pic-11.ll: Fixed testcase to reflect call qualifier * 2009-11-04-SubregCoalescingBug.ll: Fixed testcase to reflect call qualifier * x86-64-pic-2.ll: Fixed testcase to reflect call qualifier * live-out-reg-info.ll: Fixed testcase to reflect test qualifier * tail-opts.ll: Fixed testcase to reflect call qualifiers * x86-64-pic-10.ll: Fixed testcase to reflect call qualifier * bss-pagealigned.ll: Fixed testcase to reflect call qualifier * x86-64-pic-1.ll: Fixed testcase to reflect call qualifier * widen_load-1.ll: Fixed testcase to reflect call qualifier git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20ec3073cae13b5c8a1661dabdfdb97500e6e26c Author: John McCall <rjmccall@apple.com> Date: Thu Dec 17 23:49:16 2009 +0000 Sundry dependent-name fixes flagged by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91636 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ca952ac3fa90cc373192bb96a3ddbdfd71f9f21 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Dec 17 23:45:18 2009 +0000 Revert accidental commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91635 91177308-0d34-0410-b5e6-96231b3b80d8 commit af37dac175cdf3ea8698ecc653c0f4d978a352f0 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Dec 17 23:42:32 2009 +0000 Turn off critical edge splitting for landing pads. The introduction of a non-landing pad basic block as the successor to a block that ends in an unconditional jump will cause block folding to remove the added block as a successor. Thus eventually removing it AND the landing pad entirely. Critical edge splitting is an optimization, so we can safely turn it off when dealing with landing pads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91634 91177308-0d34-0410-b5e6-96231b3b80d8 commit b246171d0203ce94b4403d68fd8aa7eead2c998a Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Dec 17 22:44:34 2009 +0000 Revert r91623 to unbreak the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91632 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf3381db96461b1fd215fae3feaf559e7aeb3f96 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Dec 17 22:42:29 2009 +0000 Allow instcombine to combine "sext(a) >u const" to "a >u trunc(const)". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91631 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9bc1fde05ecc916e64ad0f39feb6c5d14fb5cfe4 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Dec 17 21:35:29 2009 +0000 Don't codegen available_externally functions. Fixes http://llvm.org/PR5735. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 459ca567824a4f39cf8ad280401de1ec15d5bc2b Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Dec 17 21:27:47 2009 +0000 Make the ptrtoint comparison simplification work if one side is a global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91624 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe77cf2b9eda42bd7f805e0f1c853ffae9739c10 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 17 21:23:58 2009 +0000 Remove an unused option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91623 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f109efcd44af6875cd87dc939bbcf2f6777ea9a Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 17 21:23:46 2009 +0000 tabs -> spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91622 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1ff2c77af0c898a7673f1ff16e8ecda1a443357 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Dec 17 21:07:31 2009 +0000 Slightly generalize transformation of memmove(a,a,n) so that it also applies to memcpy. (Such a memcpy is technically illegal, but in practice is safe and is generated by struct self-assignment in C code.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15408333ed53187bf1c886db1756b38c9aac9c6d Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Dec 17 21:02:39 2009 +0000 Make Path use StringRef instead of std::string where possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3da0d8c2d10e49cd7df0e2ba33247580dcf57645 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Dec 17 20:41:01 2009 +0000 Temporarily revert 91337. It's causing testcase failures. $ svn merge -c -91337 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r91337 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91618 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1898b53fca4fe2862b5404a3a80a802620060020 Author: Steve Naroff <snaroff@apple.com> Date: Thu Dec 17 20:39:34 2009 +0000 Fix Windows build breakage... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91617 91177308-0d34-0410-b5e6-96231b3b80d8 commit afb4e48b3b1ab458736885d32d33ff550bb4a503 Author: Ken Dyck <cfe-commits@cs.uiuc.edu> Date: Thu Dec 17 20:09:43 2009 +0000 Introduce EVT::getHalfSizedIntegerVT() for use in ExpandUnalignedStore() in LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple type by one, getHalfSizedIntegerVT() searches for the smallest simple integer type that is at least half the size of the type it is called on. This approach has the advantage that it will continue working if a new value type (such as i24) is added to MVT. Also, in preparation for new value types, remove the assertions that non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and truncstore operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91614 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfb5c54ba03e4b004314dfce5eeec919471a5fb9 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 17 20:00:21 2009 +0000 finish cleaning up StructLayoutMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91612 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3c8e732244684983ee5f9526d71ae636d5823c0 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Dec 17 19:55:06 2009 +0000 This fixes a memory leak in OpaqueType found by Google's internal heapchecker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 878ec1002b2f3232687cd932ef029b403b46feda Author: Eric Christopher <echristo@apple.com> Date: Thu Dec 17 19:07:19 2009 +0000 Fix unused variable warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11f4e3ba76bd0cce3d9e4ad622c294b23b6c0db9 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Dec 17 18:34:24 2009 +0000 Re-revert 91459. It's breaking the x86_64 darwin bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91607 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bbe84e28cb5f73f1a84c487086144b39b257358 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 17 18:03:12 2009 +0000 Remove debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91604 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a461bf3a0e2b3e4cffa9fd3130d5fbcfe1ada8e Author: Jim Grosbach <grosbach@apple.com> Date: Thu Dec 17 17:18:11 2009 +0000 Add more detail for getting started on Windows. Patch from jon.forums at gmail.com git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91603 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f7bbf56080ea6adfaeac4cea32a6934bfeb81ee Author: Ken Dyck <cfe-commits@cs.uiuc.edu> Date: Thu Dec 17 15:31:52 2009 +0000 In LowerEXTRACT_VECTOR_ELT, force an i32 value type for PEXTWR instead of incrementing the simple value type of the 16-bit type, which would give the wrong type if an intemediate MVT (such as i24) were introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91602 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38e52386fcf379c1a97c557bf81c345fd1233a04 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 17 09:39:49 2009 +0000 Revert 91280-91283, 91286-91289, 91291, 91293, 91295-91296. It apparently introduced a non-deterministic behavior in the optimizer somewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75192f45c3fe86b5afe94a303a0cbbe0dbed923c Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Dec 17 07:49:26 2009 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91595 91177308-0d34-0410-b5e6-96231b3b80d8 commit 098d20a0ba341dd7f3db8ffbf3ec908fb60b0be1 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Dec 17 07:49:16 2009 +0000 Add a 'set_option' action for use in OptionPreprocessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91594 91177308-0d34-0410-b5e6-96231b3b80d8 commit 410ace8ad7a9495dc9ab4a111bc220426ecf17fd Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Dec 17 07:48:49 2009 +0000 Refactoring, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91593 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bd5523d989fddfb885d2b4c33058530919b21af Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Dec 17 07:48:34 2009 +0000 s/TokenizeCmdline/TokenizeCmdLine/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91592 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c3da9b61ecc4532780f2503832dd9f1e18f4130 Author: Chandler Carruth <chandlerc@gmail.com> Date: Thu Dec 17 06:35:17 2009 +0000 Update CMake build to include HexDisassembler.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91589 91177308-0d34-0410-b5e6-96231b3b80d8 commit a06cd190d48a95b42f2226fb6bcfbe263ffc2dc3 Author: Eli Friedman <eli.friedman@gmail.com> Date: Thu Dec 17 06:07:04 2009 +0000 Aggressively flip compare constant expressions where appropriate; constant folding in particular expects null to be on the RHS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91587 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c06eac1ead1ee19d5da7f6244fc1eba2ca17240 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Dec 17 05:07:36 2009 +0000 Fix a comment grammaro. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91584 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1d966ed5e666c21c6bef2178778f11b006e8211 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Dec 17 05:05:36 2009 +0000 BIT_CONVERT nodes are used for vector types, too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72af3d737fd75f62999dec911911103f41aba75a Author: Sean Callanan <scallanan@apple.com> Date: Thu Dec 17 01:49:59 2009 +0000 Test harness for the LLVM disassembler. When invoked with -disassemble, llvm-mc now accepts lines of the form 0x00 0x00 and passes the resulting bytes to the disassembler for the chosen (or default) target, printing the result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91579 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d8baee6a05ca3383f39a5745c3c93aeb09aa749 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 17 00:40:05 2009 +0000 Revert this dag combine change: Fold (zext (and x, cst)) -> (and (zext x), cst) DAG combiner likes to optimize expression in the other way so this would end up cause an infinite looping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91574 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ae68e420a7fd0e4bc77674860a3d2fb619a3b15 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Dec 16 23:36:52 2009 +0000 Renamed "tCMNZ" to "tCMNz" to be consistent with other similar namings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91571 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0be22d12589480b482126c2d8eb816a9590d54d8 Author: John McCall <rjmccall@apple.com> Date: Wed Dec 16 20:31:50 2009 +0000 Silence a clang warning about the deprecated (but perfectly reasonable in context) increment-of-bool idiom. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91564 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3fc6a97363135cc1bf0f825a2424b1faf53eb26 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 16 20:10:05 2009 +0000 Reapply r91392, it was only unmasking the bug, and since TOT is still broken having it reverted does no good. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91560 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c9fe58fab7095cbd17c99970631f5c3c9044a94 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 16 20:09:53 2009 +0000 Reapply r91459, it was only unmasking the bug, and since TOT is still broken having it reverted does no good. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91559 91177308-0d34-0410-b5e6-96231b3b80d8 commit 724d7a167ac9c576db2e9217adfbee9ac8cd7b24 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Dec 16 19:44:06 2009 +0000 Mark STREX* as earlyclobber for the success result register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91555 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef786f2f846f89ff2675dd29e74c517d24db0d24 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Dec 16 19:43:02 2009 +0000 Add @earlyclobber TableGen constraint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91554 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e7896b88c383b5c64ddf574995fbafb4105884c Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 16 19:36:42 2009 +0000 Remove superfluous 'extern' variable that was causing a warning with clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91552 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87450c87ff52d57481df9e6263f9a1b68cc8005a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Dec 16 18:55:53 2009 +0000 Reuse lowered phi nodes. Tail duplication produces lots of identical phi nodes in different basic blocks. Teach PHIElimination to reuse the join registers when lowering a phi node that is identical to an already lowered node. This saves virtual registers, and more importantly it avoids creating copies the the coalescer doesn't know how to eliminate. Teach LiveIntervalAnalysis about the phi joins with multiple uses. This patch significantly reduces code size produced by -pre-regalloc-taildup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 903dc204e38ab5efaef573815ac96a6c2028c495 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 16 11:38:03 2009 +0000 Fix one more missing this-> to placate that picky clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91536 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53dee55036da98a51831d75dfc9f704a91cd5f48 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 16 10:56:17 2009 +0000 Revert "Reapply 91184 with fixes and an addition to the testcase to cover the problem", this broke llvm-gcc bootstrap for release builds on x86_64-apple-darwin10. This reverts commit db22309800b224a9f5f51baf76071d7a93ce59c9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91534 91177308-0d34-0410-b5e6-96231b3b80d8 commit e95e6c2b9690abed80c74de593f537d230318a98 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 16 10:56:02 2009 +0000 Revert "Initial work on disabling the scheduler. This is a work in progress, and this", this broke llvm-gcc bootstrap for release builds on x86_64-apple-darwin10. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91533 91177308-0d34-0410-b5e6-96231b3b80d8 commit 325984d0b8274e8b0b891df078f74f8330a24a2e Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 09:32:05 2009 +0000 reapply my strstr optimization. I have reproduced the x86-64 bootstrap miscompile (i386.o miscompares) but it happens both with and without this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91532 91177308-0d34-0410-b5e6-96231b3b80d8 commit a967657dbc081c7a72a734688e073bead60492f5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 09:17:12 2009 +0000 fix more missing this->'s to placate clang++ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1306a7b58af44ff7d4d3d55fb55f05d90dc17b51 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 09:09:54 2009 +0000 Fix a missing this-> that clang++ notices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91530 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb29769774962df2dcb7a31f8bd158a0f6871ceb Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 08:44:24 2009 +0000 now that libsystem no longer uses SmallVector, we can move SmallVectorBase::grow_pod out of line, finally satisfying PR3758. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91529 91177308-0d34-0410-b5e6-96231b3b80d8 commit a01522ef1c2bb894f01f20481aeec71b41760c2a Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 08:40:44 2009 +0000 remove use of SmallVector from Path::makeUnique. Path::makeUnique is not used by anything performance sensitive, so just use std::string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75d7b5b99547063514152db411a60befc99f5302 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 08:35:54 2009 +0000 eliminate an extraneous use of SmallVector in a case where a fixed size buffer is perfectly fine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91527 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ab8c0e1d42d4ee44349b7b1f51e5130b9c12530 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 08:34:40 2009 +0000 factor out the grow() method for all pod implementations into one common function. It is still an inline method, which will be fixed next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91526 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd44d1b21d8f77f7d3015d258383337dc6646780 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Dec 16 08:10:57 2009 +0000 Use different name for argument and field git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91524 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9e74f2cb039a0d6581861171f4c7f42d0880f25 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 08:09:23 2009 +0000 pull destroy_range and uninitialized_copy up to the SmallVectorTemplateBase class, which allows us to statically dispatch on isPodLike instead of dynamically. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91523 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8d02743d04afde76e9bfa7ba918911f40a9b1cb Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 08:05:48 2009 +0000 sink most of the meat in smallvector back from SmallVectorTemplateCommon down into SmallVectorImpl. This requires sprinking a ton of this->'s in, but gives us a place to factor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91522 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59ebf30b613ebf2617a1519fbd0dbc1f2b4aeb13 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Dec 16 07:35:25 2009 +0000 Make this test pass on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3521fb7b3e549c489faebd76084d86a1c30cba8a Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 06:55:45 2009 +0000 substantial refactoring of SmallVector, now most code is in SmallVectorTemplateCommon, and there is a new SmallVectorTemplateBase class in between it and SmallVectorImpl. SmallVectorTemplateBase can be specialized based on isPodLike. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91518 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6b8642f72c98125b56e34469baaed50819ef2a2 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Dec 16 02:52:09 2009 +0000 MDNodes that refer to an instruction are local to a function; in that case, explicitly keep track of the function they are local to git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91497 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa640d3fc7563e889ef2ef93994b4c6ff38933f1 Author: Johnny Chen <johnny.chen@apple.com> Date: Wed Dec 16 02:32:54 2009 +0000 Add encoding bits for some Thumb instructions. Plus explicitly set the top two bytes of Inst to 0x0000 for the benefit of the Thumb decoder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95150a6fa59d69f01bcd481e9bb2dc937c548107 Author: Devang Patel <dpatel@apple.com> Date: Wed Dec 16 02:11:38 2009 +0000 XFAIL on ppc-darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91495 91177308-0d34-0410-b5e6-96231b3b80d8 commit edeb169061593870ac603ab898a58d4db579d162 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 16 00:53:11 2009 +0000 Re-enable 91381 with fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ea083faf048bcaa812098ebdc3f55c0ddcc1687 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 16 00:46:02 2009 +0000 revert my strstr optimization, I'm told it breaks x86-64 bootstrap. Will reapply with a fix when I get a chance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91486 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d25f9bbd3a3106239e6b957c233b598d36576fe Author: Dale Johannesen <dalej@apple.com> Date: Wed Dec 16 00:29:41 2009 +0000 Do better with physical reg operands (typically, from inline asm) in local register allocator. If a reg-reg copy has a phys reg input and a virt reg output, and this is the last use of the phys reg, assign the phys reg to the virt reg. If a reg-reg copy has a phys reg output and we need to reload its spilled input, reload it directly into the phys reg than passing it through another reg. Following 76208, there is sometimes no dependency between the def of a phys reg and its use; this creates a window where that phys reg can be used for spilling (this is true in linear scan also). This is bad and needs to be fixed a better way, although 76208 works too well in practice to be reverted. However, there should normally be no spilling within inline asm blocks. The patch here goes a long way towards making this actually be true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91485 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6bf5b926d84470a0527691b20f60c31f6bf7978 Author: John McCall <rjmccall@apple.com> Date: Wed Dec 16 00:15:28 2009 +0000 Every anonymous namespace is different. Caught by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86dd20e4ab83c6d96b5a526bc95fc0ee6170e4ec Author: John McCall <rjmccall@apple.com> Date: Wed Dec 16 00:13:24 2009 +0000 Explicit template instantiations must happen in the template's immediately enclosing namespace. Caught by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91480 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf525e4cf50311df9aa8ed97d0eaf81a49fa6c3d Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 16 00:08:36 2009 +0000 Helpful comment added. Some code cleanup. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cb7f462c39ffc68a5fe873078c2bb545c44f086 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 16 00:01:27 2009 +0000 Initialize uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d8b6523d77b512dc276857e3e58e1b226856445 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 16 00:00:18 2009 +0000 Initialize uninitialized variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91475 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43a22289bdf5f2e1d884de469b9ab5b849c077b7 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Dec 15 22:42:46 2009 +0000 Change indirect-globals to use a dedicated allocIndirectGV. This lets us remove start/finishGVStub and the BufferState helper class from the MachineCodeEmitter interface. It has the side-effect of not setting the indirect global writable and then executable on ARM, but that shouldn't be necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91464 91177308-0d34-0410-b5e6-96231b3b80d8 commit d91158b66c9ed1337bdad3741a2a1bbb78525d69 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 15 22:42:19 2009 +0000 Some command lines don't like numbers with leading zeros. Remove them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91463 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c03fdc0413fbc193bca3214907aa7827f3a0a11 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Dec 15 22:00:51 2009 +0000 Reapply 91184 with fixes and an addition to the testcase to cover the problem found last time. Instead of trying to modify the IR while iterating over it, I've change it to keep a list of WeakVH references to dead instructions, and then delete those instructions later. I also added some special case code to detect and handle the situation when both operands of a memcpy intrinsic are referencing the same alloca. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91459 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91978076a03bdda4a5c8167436659916e4a31621 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Dec 15 22:00:37 2009 +0000 lit: Improve error when gtest discovery fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91458 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f4f994c3cefa11b5df46f4aaaab86b15d4d4504 Author: Dan Gohman <gohman@apple.com> Date: Tue Dec 15 20:21:44 2009 +0000 Revert 90628, which was incorrect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91448 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51260423ed052b52a4246c7643d33cb7750f3bd0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 15 19:34:20 2009 +0000 Fix GetConstantStringInfo to not look into MDString (it works on real data, not metadata) and fix DbgInfoPrinter to not abuse GetConstantStringInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91444 91177308-0d34-0410-b5e6-96231b3b80d8 commit 465e633b903c1418bcf46021b2b1e02974505c8c Author: Jim Grosbach <grosbach@apple.com> Date: Tue Dec 15 19:28:13 2009 +0000 whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91442 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8287d66aee7d877aaa80a3fb40cc90580e669493 Author: Devang Patel <dpatel@apple.com> Date: Tue Dec 15 19:16:48 2009 +0000 Add support to emit debug info for C++ namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91440 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5b475def3406f1175162574ccbe300f9ab61bfd Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 15 19:14:40 2009 +0000 optimize strstr, PR5783 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91438 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d810c281064e69c6a0cab4f9f43870628628566 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Dec 15 17:24:14 2009 +0000 Added encoding bits for the Thumb ISA. Initial checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7725021a32f9cb0f289b052a953ea77bfcda2bcf Author: Dan Gohman <gohman@apple.com> Date: Tue Dec 15 16:30:09 2009 +0000 Delete an unused function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91432 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
|
|
d58f4f0a0f |
Update to LLVM upstream SVN r91214.
Squashed commit of the following: commit 2fdb8cfc44fb50a50bda26ac7774692a15c00412 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Dec 12 09:25:50 2009 +0000 Fix some CHECK lines which were ignored by accident. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91214 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbfd1ed3c3d611d3d36d6853b99f6d615eaf96f1 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Dec 12 06:18:46 2009 +0000 Revert r91208. Something on Linux prevents the JIT from looking up a symbol defined in the test, and I don't have time tonight to figure it out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91209 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcfc5e88a362367990b85c708d9656c9e9150f5e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Dec 12 05:58:14 2009 +0000 Fix available_externally linkage for globals. It's probably still not supported by emitGlobals, but I don't have a test case for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91208 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37fa76624c9c11ec6745b5b609a8b537f0cd8425 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Dec 12 04:08:32 2009 +0000 Make it easier to use the llvm_unreachable and DEBUG macros without "using namespace llvm" by qualifying their implementations with ::llvm::. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 241896971376c9bf4b5856c44c65084c8bf6e3cb Author: Jim Grosbach <grosbach@apple.com> Date: Sat Dec 12 01:40:06 2009 +0000 Framework for atomic binary operations. The emitter for the pseudo instructions just issues an error for the moment. The front end won't yet generate these intrinsics for ARM, so this is behind the scenes until complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91200 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4407a9dd3a5829f2385c49b2cdbe96c33076c384 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Dec 11 23:47:40 2009 +0000 Revise scalar replacement to be more flexible about handle bitcasts and GEPs. While scanning through the uses of an alloca, keep track of the current offset relative to the start of the alloca, and check memory references to see if the offset & size correspond to a component within the alloca. This has the nice benefit of unifying much of the code from isSafeUseOfAllocation, isSafeElementUse, and isSafeUseOfBitCastedAllocation. The code to rewrite the uses of a promoted alloca, after it is determined to be safe, is reorganized in the same way. Also, when rewriting GEP instructions, mark them as "in-bounds" since all the indices are known to be safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 552423de4ce3985cee3e44d2b34afc81aef5b5b4 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 11 23:26:08 2009 +0000 Delete an unnecessary line. The VTSDNode on a SIGN_EXTEND_REG is never a vector type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91181 91177308-0d34-0410-b5e6-96231b3b80d8 commit f40cec0ee6d37ccce844d771f177f33c929a4b86 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Dec 11 23:01:29 2009 +0000 Lower setcc branchless, if this is profitable. Based on the patch by Brian Lucas! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dd8cadf857bd134ef24aebb48aa22278cedaff1 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 11 21:47:36 2009 +0000 Don't try to move a MBB into the fall-through position if it's a landing pad or branches only to a landing pad. Without this check, the compiler would go into an infinite loop because the branch to a landing pad is an "abnormal" edge which wasn't being taken into account. This is the meat of that fix: if (!PrevBB.canFallThrough() && !MBB->BranchesToLandingPad(MBB)) { The other stuff is simplification of the "branches to a landing pad" code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91161 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9f2c6bf74e416fb21026ef9c779c6c4cdbce9d4 Author: Devang Patel <dpatel@apple.com> Date: Fri Dec 11 21:37:07 2009 +0000 Construct CompileUnits lazily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91159 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d501bd6024424a0d85836f2e61a5fcd3f717d23 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 11 21:31:27 2009 +0000 Implement vector widening, splitting, and scalarizing for SIGN_EXTEND_INREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91158 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6095894e7cd3c7144575ba6e2596bb5a3d3adc0 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Dec 11 20:29:53 2009 +0000 memory barrier instructions by definition have side effects. This prevents the post-RA scheduler from moving them around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 432c8afd5e7ab193fbf348436da8c4d88a780f93 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 11 20:09:21 2009 +0000 Change this to the correct PR number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91148 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10ef46f126972755ae7dac376fc98f26ddd31dfc Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 11 20:05:23 2009 +0000 Make getUniqueExitBlocks's precondition assert more precise, to avoid spurious failures. This fixes PR5758. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c4c4dc0dc9c48f7ec593798916cab05c68ec44b Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 11 19:50:50 2009 +0000 Fix the result type of SELECT nodes lowered from Select instructions with aggregate return values. This fixes PR5754. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91145 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7767af5f34dccb5d093cd46004f2f2687095019c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Dec 11 19:39:55 2009 +0000 Honour setHasCalls() set from isel. This is used in some weird cases like general dynamic TLS model. This fixes PR5723 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e6324988a184400c4a79d684746f91c3c5bfad3 Author: Johnny Chen <johnny.chen@apple.com> Date: Fri Dec 11 19:37:26 2009 +0000 Store Register Exclusive should leave the source register Inst{3-0} unspecified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91143 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7853967b2bec37e6093fa595cc42aabbad964059 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Dec 11 18:52:41 2009 +0000 Update properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91140 91177308-0d34-0410-b5e6-96231b3b80d8 commit efa9046e1673863e2b091556e5c92b834cc4bdf5 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Dec 11 15:30:07 2009 +0000 Simplify this class by removing the result cache. This change removes the DefaultConstructible and CopyAssignable constraints on the template parameter T (the first one). The second template parameter (R) is defaulted to be identical to the first and controls the result type. By specifying it to be (const T&) additionally the CopyConstructible constraint on T can be removed. This allows to use StringSwitch e.g. for llvm::Constant instances. Regarding the other review feedback regarding performance because of taking pointers, this class should be completely optimizable like before, since all methods are inline and the pointer dereferencing and result value caching should be possible behind the scenes by the "as-if" rule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91123 91177308-0d34-0410-b5e6-96231b3b80d8 commit 624ebdda54ecb7db70ffb105148e68dd34940f8e Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 11 10:43:41 2009 +0000 Revert part of r91101 which was causing an infinite loop in the self-hosting build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9039ae61fdf29b92f04b84e85c13d0119fa39268 Author: Duncan Sands <baldrick@free.fr> Date: Fri Dec 11 08:36:17 2009 +0000 Add utility method for determining whether a function argument has the 'nest' attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91109 91177308-0d34-0410-b5e6-96231b3b80d8 commit b880e97295cce0cffac154c7643945435cede34d Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 11 06:02:21 2009 +0000 Tests for 91103 and 91104. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91105 91177308-0d34-0410-b5e6-96231b3b80d8 commit f031da831176f05449c6c0dd32f45f2fca403f2d Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 11 06:01:48 2009 +0000 Add support to 3-addressify 16-bit instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91104 91177308-0d34-0410-b5e6-96231b3b80d8 commit f486334d5c3e5d686f35f5fb9594842a76596496 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 11 06:01:00 2009 +0000 Coalesce insert_subreg undef, x first to avoid phase ordering issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91103 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d2fd87d90f53f74faab9b231809bad929ffdf28 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 11 03:14:18 2009 +0000 Address comments on last patch: - Loosen the restrictions when checking of it branches to a landing pad. - Make the loop more efficient by checking the '.insert' return value. - Do cheaper checks first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91101 91177308-0d34-0410-b5e6-96231b3b80d8 commit 573d1d59306f14c74a519b77e1d677e9a6df3a65 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 11 01:49:14 2009 +0000 A machine basic block may end in an unconditional branch, however it may have more than one successor. Normally, these extra successors are dead. However, some of them may branch to exception handling landing pads. If we remove those successors, then the landing pads could go away if all predecessors to it are removed. Before, it was checking if the direct successor was the landing pad. But it could be the result of jumping through multiple basic blocks to get to it. If we were to only check for the existence of an EH_LABEL in the basic block and not remove successors if it's in there, then it could stop actually dead basic blocks from being removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91092 91177308-0d34-0410-b5e6-96231b3b80d8 commit 437d699dc2b7e690254435cb93d7bbd21bb88217 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Dec 11 01:42:04 2009 +0000 Rough first pass at compare_and_swap atomic builtins for ARM mode. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91090 91177308-0d34-0410-b5e6-96231b3b80d8 commit 307e718947561a527c51e03e38cd77ca1efc6998 Author: Anders Carlsson <andersca@mac.com> Date: Fri Dec 11 01:04:42 2009 +0000 Add qualifiers for calls to member functions in dependent bases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91087 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d47963bc2b99fc828e706072d94b4faab5c6703 Author: Devang Patel <dpatel@apple.com> Date: Thu Dec 10 23:25:41 2009 +0000 If VariableDIe is not created (may be because global was optimzed away) then do not try to use the variable die. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91077 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcd3705bd25d9e1406adc67a11b200f8454d840e Author: Eric Christopher <echristo@apple.com> Date: Thu Dec 10 21:11:40 2009 +0000 Add a test for the fix in revision 91009. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91062 91177308-0d34-0410-b5e6-96231b3b80d8 commit fda100228c44e2ce87a2059d879c3da7f6cf043d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 10 20:59:45 2009 +0000 It's not safe to coalesce a move where src and dst registers have different subregister indices. e.g.: %reg16404:1<def> = MOV8rr %reg16412:2<kill> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91061 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d73e4308d9773535794f2f00ea213981310a6ba Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Dec 10 19:52:22 2009 +0000 Remove a broken, unused header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a8f9a8322f0de194328f3ab2cbf941504015f5f Author: Devang Patel <dpatel@apple.com> Date: Thu Dec 10 19:14:49 2009 +0000 Refactor code that finds context for a given die. Create global variable DIEs after creating subprogram DIEs. This allows function level static variable's to find their context at the time of DIE creation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91055 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37582c3385a5259c279f4da155b7659f4272ff71 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Dec 10 18:35:32 2009 +0000 Add instruction encoding for DMB/DSB git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91053 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f139c19245027f4f367bf09db322e16ceca76f5 Author: Devang Patel <dpatel@apple.com> Date: Thu Dec 10 18:05:33 2009 +0000 Refactor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91051 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0f793a956a6aeff1386647a714c627102bfdc88 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Dec 10 17:48:32 2009 +0000 Also attempt trivial coalescing for live intervals that end in a copy. The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch is more conservative than r90502, and does not break 483.xalancbmk/i686. It still breaks the PowerPC bootstrap, so it is disabled by default, and can be enabled with the -trivial-coalesce-ends option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d9ba4b1d7364823556c97a78142ecd28048e3a3 Author: Edwin Török <edwintorok@gmail.com> Date: Thu Dec 10 10:01:47 2009 +0000 Comparing std::string with NULL is a bad idea, so just check whether its empty. This code was crashing always with oprofile enabled, since it tried to create a StringRef out of NULL, which run strlen on NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91046 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4ea68be726443c35446332dbdeff00f42f7e48b Author: Eric Christopher <echristo@apple.com> Date: Thu Dec 10 00:25:41 2009 +0000 Make sure the immediate dominator isn't NULL through iterations of the loop. We could get to this condition via indirect branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91009 91177308-0d34-0410-b5e6-96231b3b80d8 commit c97c9a0f7c7aa3572a819aef0315a6ddb7a2dfe8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 10 00:11:45 2009 +0000 Fix PR5744, a case where we were getting the pointer size instead of the value size. This only manifested when memdep inprecisely returns clobber, which is do to a caching issue in the PR5744 testcase. We can 'efficiently emulate' this by using '-no-aa' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91004 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba744f662e83517b2b940145a24d6cbb453f52f9 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Dec 10 00:11:09 2009 +0000 Add memory barrier intrinsic support for ARM. Moving towards adding the atomic operations intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91003 91177308-0d34-0410-b5e6-96231b3b80d8 commit e559e790ba60791726da785535d194ca71f47dee Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 10 00:04:46 2009 +0000 allow this to build when the #if 0's are enabled. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90999 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ab68f2d2516ed58e49016dfca15e2ad4bc865e6 Author: Dan Gohman <gohman@apple.com> Date: Wed Dec 9 22:55:01 2009 +0000 Dereference loopHeader after checking for null rather than before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5252e89c88fc55ce4b4842b600031f6ca536dc5d Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 9 22:24:42 2009 +0000 Fix test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90988 91177308-0d34-0410-b5e6-96231b3b80d8 commit e31a26af8b770854d3a630081e74ee52899482b4 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 9 21:00:30 2009 +0000 Optimize splat of a scalar load into a shuffle of a vector load when it's legal. e.g. vector_shuffle (scalar_to_vector (i32 load (ptr + 4))), undef, <0, 0, 0, 0> => vector_shuffle (v4i32 load ptr), undef, <1, 1, 1, 1> iff ptr is 16-byte aligned (or can be made into 16-byte aligned). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90984 91177308-0d34-0410-b5e6-96231b3b80d8 commit eef9c8f43d719d072f7f027510125f45a0e02956 Author: Dan Gohman <gohman@apple.com> Date: Wed Dec 9 18:48:53 2009 +0000 Reuse the Threshold value to size these containers because it's currently somewhat convenient for them to have the same value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90980 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe0be137457e5a2fe51000ed2844f888e9e19b64 Author: Devang Patel <dpatel@apple.com> Date: Wed Dec 9 18:24:21 2009 +0000 Reapply r90858, a cleanup patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 091a1d20fcf979b5f266fa2b085215bc3bfe2d46 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 18:21:46 2009 +0000 fix hte last remaining known (by me) phi translation bug. When we reanalyze clobbers to forward pieces of large stores to small loads, we need to consider the properly phi translated pointer in the store block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90978 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2737cb4b2a2a648f07f3272d932ba564a03a368a Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 18:13:28 2009 +0000 change GetStoreValueForLoad to use IRBuilder, which is cleaner and implicitly constant folds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39d7706d74c6237258b9a78a4aaf841f28c58a1d Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Dec 9 18:05:27 2009 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90975 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e4661381e82fb4d6ba33d57155dcda400280d3a Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 17:27:45 2009 +0000 Add a minor optimization: if we haven't changed the operands of an add, there is no need to scan the world to find the same add again. This invalidates the previous testcase, which wasn't wonderful anyway, because it needed a run of instcombine to permute the use-lists in just the right way to before GVN was run (so it was really fragile). Not a big loss. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90973 91177308-0d34-0410-b5e6-96231b3b80d8 commit de76e8dccddd7578a9d52dd04bcf9ca36da417d8 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Dec 9 17:26:02 2009 +0000 Add note about loadable modules on windows. Patch by Gregory Petrosyan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90972 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13c6e945a6f59aca2d21b46c036521c59d1f61bc Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 17:18:49 2009 +0000 fix PR5733, a case where we'd replace an add with a lexically identical binary operator that wasn't an add. In this case, a xor. Whoops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b4ae24a6d11afa1453e2cfce2c702316ad7e093 Author: David Goodwin <david_goodwin@apple.com> Date: Wed Dec 9 17:18:22 2009 +0000 <rdar://problem/7453528>. Track only physical registers that are valid for the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90970 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1ab6f944f31f5db68788036bb48cc6fef160be6 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 17:17:26 2009 +0000 merge crash-2.ll into crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90969 91177308-0d34-0410-b5e6-96231b3b80d8 commit 179201113b146232ba8ed6cc32c3b7c1b0cdd481 Author: Eric Christopher <echristo@apple.com> Date: Wed Dec 9 08:29:32 2009 +0000 Silence conversion warning from 64 to 32-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90962 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd9feaabf12a8dd559794b5a779d12c9a5e9dfa3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 07:37:07 2009 +0000 change AnalyzeLoadFromClobberingMemInst/AnalyzeLoadFromClobberingStore to require the load ty/ptr to be passed in, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90960 91177308-0d34-0410-b5e6-96231b3b80d8 commit 598abfd68824c718b392e6da1ff78a278b390bdf Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 07:34:10 2009 +0000 change AnalyzeLoadFromClobberingWrite and clients to pass in type and pointer instead of the load. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90959 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca02fc16abf5caf64bf21a3efdad9b52368591c5 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 07:31:04 2009 +0000 enhance NonLocalDepEntry to keep the per-block phi translated address of the query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90958 91177308-0d34-0410-b5e6-96231b3b80d8 commit c831c64f16749af9b1a782ace983aee600d59c43 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 9 07:19:48 2009 +0000 DeltaAlgorithm: Add a virtual destructor and home. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90957 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a957967ec0e908f69717c8887d427eeaee8e5fc Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 07:08:01 2009 +0000 change NonLocalDepEntry from being a typedef for an std::pair to be its own small class. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90956 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75730ab628f309e281beab31cb081b7487579f6e Author: Lang Hames <lhames@gmail.com> Date: Wed Dec 9 05:39:12 2009 +0000 Added a new "splitting" spiller. When a call is placed to spill an interval this spiller will first try to break the interval up into its component values. Single value intervals and intervals which have already been split (or are the result of previous splits) are spilled by the default spiller. Splitting intervals as described above may improve the performance of generated code in some circumstances. This work is experimental however, and it still miscompiles many benchmarks. It's not recommended for general use yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90951 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22a458ae9214261c3e420910fb22ee81c358395d Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 9 03:26:33 2009 +0000 Remove spurious extern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90937 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd96f3416558738874517ad53b30b0fa13fac75f Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Dec 9 02:58:09 2009 +0000 Remove unneeded ';' and a class/struct mismatch (noticed by clang). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90934 91177308-0d34-0410-b5e6-96231b3b80d8 commit 521f16433f6a3ae9e35a47efc577dcb9162a01ef Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 02:43:05 2009 +0000 the code in GVN that tries to forward large loads to small stores is not phi translating, thus it miscompiles really crazy testcases. This is from inspection, I haven't seen this in the wild. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90930 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c61909de5f6f6a721080017aa11ab846b24bdfb Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 02:41:54 2009 +0000 add some aborts to #if 0's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90929 91177308-0d34-0410-b5e6-96231b3b80d8 commit efff322bd17b640f544a1d28c580b59499a28ff8 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 01:59:31 2009 +0000 Switch GVN and memdep to use PHITransAddr, which correctly handles phi translation of complex expressions like &A[i+1]. This has the following benefits: 1. The phi translation logic is all contained in its own class with a strong interface and verification that it is self consistent. 2. The logic is more correct than before. Previously, if intermediate expressions got PHI translated, we'd miss the update and scan for the wrong pointers in predecessor blocks. @phi_trans2 is a testcase for this. 3. We have a lot less code in memdep. We can handle phi translation across blocks of things like @phi_trans3, which is pretty insane :). This patch should fix the miscompiles of 255.vortex, and I tested it with a bootstrap of llvm-gcc, llvm-test and dejagnu of course. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90926 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76ebe86e74ce108a129259fb52663edb0483da9d Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 9 01:53:58 2009 +0000 Teach InferPtrAlignment to infer GV+cst alignment and use it to simplify x86 isl lowering code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90925 91177308-0d34-0410-b5e6-96231b3b80d8 commit ada03e86adc6f39bc024e7e147f4e8a84929c6b2 Author: Devang Patel <dpatel@apple.com> Date: Wed Dec 9 01:46:00 2009 +0000 Remove tests that are not suitable anymore. Plus they are not testing the original bugfixes anymore. These tests were inserted to check bug fixes in code that handled debug info intrinsics. These intrinsics are no longer used and now llvm parser simply ignores old .dbg intrinsics from these dead tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a029cbee8f0bb7d1798aa474bdc46f017ba1871 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 9 01:36:00 2009 +0000 Move isConsecutiveLoad to SelectionDAG. It's not target dependent and it's primary used by selectdag passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90922 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b1d6462fe599fc9e17811b2d6bc8fad77183647 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 01:19:16 2009 +0000 fix a nasty variable that was shadowing the real CurBB but with the wrong value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90920 91177308-0d34-0410-b5e6-96231b3b80d8 commit a711e2664a880bc4b941d2690371cf811167bf95 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 9 01:17:24 2009 +0000 Infer alignment for non-fixed stack object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90919 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3caa135e4a12b56cf586dc4d2a3d89d821b2f46 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 9 01:10:37 2009 +0000 Add const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90918 91177308-0d34-0410-b5e6-96231b3b80d8 commit 684647dabc65cd039ddd73daf25112d1b6a98072 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 9 01:04:59 2009 +0000 Refactor InferAlignment out of DAGCombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90917 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3d7e0b6f0723224cf9db5b12d41d0bc82948782 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 00:56:14 2009 +0000 fix many input tracking bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90915 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb8c775db77dfe0194a6169f437342eacaa46792 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 00:41:28 2009 +0000 when opt crashes, print its command line arguments as a pretty stack trace. Somehow opt was missed when this was added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90912 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa30b76c39c82f6e0973d597511c9a6980a914d4 Author: Dan Gohman <gohman@apple.com> Date: Wed Dec 9 00:28:42 2009 +0000 Fix a typo in a comment, and adjust SmallSet and SmallVector sizes, that Chris noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 604d78539ab4276a96f99287599fe6b341707dc0 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 00:18:13 2009 +0000 fix PHI translation to take the PHI out of the instinputs set and add the translated value back to it if an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90909 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67f80492b9822f893a83641bb204d81e916f8d3e Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 00:10:55 2009 +0000 instructions defined in CurBB may be intermediate nodes of the computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bc7cb6375e49b89417a44bddad4300ec5b2c5ea Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 9 00:01:00 2009 +0000 add dumping and sanity checking support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 096cad10650493a4addf69d3bdf81f2e2c38d943 Author: Dan Gohman <gohman@apple.com> Date: Tue Dec 8 23:59:12 2009 +0000 Put a threshold on the number of users PointerMayBeCaptured examines; fall back to a conservative answer if there are more. This works around some several compile time problems resulting from BasicAliasAnalysis calling PointerMayBeCaptured. The value has been chosen arbitrarily. This fixes rdar://7438917 and may partially address PR5708. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90905 91177308-0d34-0410-b5e6-96231b3b80d8 commit c88612dd681daa28178107881b0526b5ad4b0d1c Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 8 23:42:51 2009 +0000 make sure that PHITransAddr keeps its 'InstInputs' list up to date when instsimplify kicks in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90901 91177308-0d34-0410-b5e6-96231b3b80d8 commit de2d3688d9711628c15ee2b8410fa3e936ca698c Author: Devang Patel <dpatel@apple.com> Date: Tue Dec 8 23:21:45 2009 +0000 Revert 90858 90875 and 90805 for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90898 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e5c8a8cdfc3a0267b026851bf08a9507474578e Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Dec 8 23:06:22 2009 +0000 - Support inline asm 'w' constraint for 128-bit vector types. - Also support the 'q' NEON registers asm code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90894 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d9aeda1a20c306e7639e6df6613d570e793ab00 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Dec 8 19:49:30 2009 +0000 lit: Prevent crash-on-invalid (when run on directory which has no test suite). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90871 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb331cbe3eb64ba46f885189aa8797c3027a69ea Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Dec 8 19:48:01 2009 +0000 Set svn:ignore on tools/clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90870 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58c778873ae2dac1a1c615bf4cab3cd788ec4db9 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Dec 8 19:47:36 2009 +0000 CMake/lit: Add llvm_{unit_,}site_config parameters, and always pass them when running tests from the project files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e56790b2a9d8fbdbbcba5750f646488f1073d9f Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Dec 8 19:34:53 2009 +0000 Revert 90789 for now. It caused massive compile time regression. Post-ra scheduler slowed down dramatically with this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90868 91177308-0d34-0410-b5e6-96231b3b80d8 commit d11c2b3c143afb32f32fcc203190454a63fdd0c1 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Dec 8 18:27:03 2009 +0000 Some superficial cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90866 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb4b0d5499b3b7095b560734f1b47d26187ce644 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Dec 8 18:22:03 2009 +0000 Clean up dead operands left around after SROA replaces a mem intrinsic. I'm not aware that this does anything significant on its own, but it's needed for another patch that I'm working on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90864 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b294d7538f15995e446a6a2dd17965813133cc0 Author: Devang Patel <dpatel@apple.com> Date: Tue Dec 8 15:31:31 2009 +0000 Cleanup. There is no need to supply ModuleCU to addType() as a parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23a55d34fc5a37cc60122ac3db057177f91e2528 Author: Devang Patel <dpatel@apple.com> Date: Tue Dec 8 15:01:35 2009 +0000 Do not try to push dead variable's debug info into namespace info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90857 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8bbaf864380c3d5ea1c21d4fade7cb22fcced25 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Dec 8 13:07:38 2009 +0000 Remove useless calls to c_str(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90855 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35138e397b334bffa8f1c9121fa97f9129880d09 Author: Duncan Sands <baldrick@free.fr> Date: Tue Dec 8 10:10:20 2009 +0000 Teach GlobalOpt to delete aliases with internal linkage (after forwarding any uses). GlobalDCE can also do this, but is only run at -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3147011bdf615c47e44b7ffbc5e94263d42aa6ed Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 8 06:06:26 2009 +0000 fix a typo (and -> add) and fix GetAvailablePHITranslatedSubExpr to not side-effect the current object. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90837 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54518e654b0b98ffeefec0b0958500883ba2832a Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Dec 8 05:45:41 2009 +0000 Remove unnecessary #include "llvm/LLVMContext.h". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90836 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48df1cc8234d91de705451688bb54bbbe161d51a Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 8 05:31:46 2009 +0000 whitespace cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90834 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62d57ae9ef18b9cfaa8c3a977db1ed31694a03d5 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Dec 8 02:49:54 2009 +0000 Removed VC++ compatibility code from DataTypes.h.in. This header file is not used on VC++ builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90829 91177308-0d34-0410-b5e6-96231b3b80d8 commit da3ef8a038a93fa4b4879fd203abd2f9377ab977 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Dec 8 02:40:09 2009 +0000 For VC++, define the ?INT*_C macros only it they are not yet defined. Some compatibility updates like the Boost TR1 compatibility headers define them. Patch contributed by OvermindDL1! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90828 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3caef71dd23157310e52ed947a2fb44579f79db3 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Dec 8 01:03:04 2009 +0000 Reduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra instruction. Patch inspired by Brian Lucas! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90819 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9688c52873170b7096ec6f7e13ddea8cb13ca6d8 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Dec 7 23:11:03 2009 +0000 Watch out for duplicated PHI instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90816 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb900da68f1eef3242a89e4f3f2078bbccb093b3 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Dec 7 23:10:34 2009 +0000 Follow up to 90488. Turn a check into an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90815 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5d28ebb4b6d5cf3f6b15f0a1be3e3e82816b03b Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Dec 7 22:32:38 2009 +0000 Fix the OProfileJITEventListener for StringRef being returned from debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90813 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a8b457e8247f989a5d6d19468fc23e7e48a7118 Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Dec 7 21:54:43 2009 +0000 Rename DIFactory::InsertValue() as DIFactory::InsertDbgValueIntrinsic() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 641f820036ddf1823bf6b175f4bab0034749b537 Author: Devang Patel <dpatel@apple.com> Date: Mon Dec 7 21:41:32 2009 +0000 Add support to emit debug info for c++ style namespaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90805 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03cbedef57d2f8bba7823df2f17ffc29e089ba43 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Dec 7 21:19:33 2009 +0000 Delete code accidentally left behind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90804 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0f617ce7b174a87c19e6f21bcadecc68654ff38 Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 7 19:52:57 2009 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90793 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78a0c48a34b4ae0f766bc94e841018cd9d3557ae Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 7 19:45:30 2009 +0000 add accessor, improve comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ef78de4b1c6169cbee2671bbe2a4291d21231cf Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Dec 7 19:42:22 2009 +0000 Test case for 90787. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90791 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef778032ceda17e7b5209045d28761c5190b5730 Author: David Greene <greened@obbligato.org> Date: Mon Dec 7 19:40:26 2009 +0000 Use FileCheck and set nounwind on calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 654f5abad31952e2e447a598635ba9ce3a582a45 Author: Dan Gohman <gohman@apple.com> Date: Mon Dec 7 19:38:26 2009 +0000 Apply Pekka Jääskeläinen's patch to raise the first virtual register number in order to accomodate targets with more than 1024 registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90789 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2379900d4ebb0568cc18e7102f1d3567f2fabea Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Dec 7 19:36:34 2009 +0000 Introduce the "@llvm.dbg.value" debug intrinsic. The semantics of llvm.dbg.value are that starting from where it is executed, an offset into the specified user source variable is specified to get a new value. An example: call void @llvm.dbg.value(metadata !{ i32 7 }, i64 0, metadata !2) Here the user source variable associated with metadata #2 gets the value "i32 7" at offset 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fc593ad30a6640abdcd0e27aefcfae35eb874f5 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Dec 7 19:16:13 2009 +0000 Simplify a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43f5c616b9938842aebaa8de4451aca52c408f04 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Dec 7 19:15:57 2009 +0000 Throw 'const char*' instead of 'std::string'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 726e81006a54d5ee21372b593b6d0aebed32eade Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 7 19:04:49 2009 +0000 add support for phi translation and incorpation of new expression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90782 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad1cc9c85c6ebd136855b133cfa0397741c2dcbf Author: Dan Gohman <gohman@apple.com> Date: Mon Dec 7 19:04:31 2009 +0000 Don't enable the post-RA scheduler on x86 except at -O3. In its current form, it is too expensive in compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90781 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3fce13cb0bd4c4afcf1c28f788a398df6a560dc Author: Chris Lattner <sabre@nondot.org> Date: Mon Dec 7 18:36:53 2009 +0000 checkpoint of the new PHITransAddr code, still not done and not used by anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90779 91177308-0d34-0410-b5e6-96231b3b80d8 commit e420496fa6dc7f2aa0cbec0a37f61197e5b402bc Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Dec 7 18:26:24 2009 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90776 91177308-0d34-0410-b5e6-96231b3b80d8 commit b045d745c550cdd03ae35f9ea4a9e325cbd50bbb Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Dec 7 18:26:11 2009 +0000 Documentation update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90775 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b292727d8198ca5f85d501a741cb9e69f611038 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Dec 7 18:25:54 2009 +0000 Deprecate 'unpack_values'. Use 'forward_values' + 'comma_separated' instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b6e9d258dcb26f889bfd4c5c0139bfea7421b19 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Dec 7 17:03:21 2009 +0000 Pass '-msse' and friends to llc as '-mattr=+/-'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90771 91177308-0d34-0410-b5e6-96231b3b80d8 commit f77867899cf80b436831429e58bac1f6a1ae66a1 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Dec 7 17:03:05 2009 +0000 Implement 'forward_value' and 'forward_transformed_value'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d52e693236fe83a47e438438a186d337f149ab0 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Dec 7 10:51:55 2009 +0000 Refactoring, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90764 91177308-0d34-0410-b5e6-96231b3b80d8 commit c02f3dca734ac6709bf51d5768ed7b3f97b4a9e7 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Dec 7 10:15:19 2009 +0000 Pre-regalloc tale duplication. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90759 91177308-0d34-0410-b5e6-96231b3b80d8 commit 768358c2b996a799013fb0caa691ffe3b4f6e950 Author: John Mosby <ojomojo@gmail.com> Date: Mon Dec 7 09:06:37 2009 +0000 fixed some typos in method comments, reworded some comments for clarity git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90754 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4aafc85f5a94802c121050ec113973249e295577 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Dec 7 05:29:59 2009 +0000 Fixes the Atomic implementation if compiled by MSVC compiler. sys::cas_flag should be long on this platform, InterlockedAdd() is defined only for the Itanium architecture (according to MSDN). Patch by Michael Beck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18552eb96f80811caa9f48141219ebeb2eadc5b3 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Dec 7 03:07:01 2009 +0000 If BB is empty, insert PHI before end() instead of front(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90744 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7fb83a04b4c05856465db53ad0981a8db72265c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Dec 7 02:28:41 2009 +0000 Some pretty-printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90742 91177308-0d34-0410-b5e6-96231b3b80d8 commit c15c59e7601f48d83728faa47d5bf676ad084383 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Dec 7 02:28:26 2009 +0000 Truncate the arguments of llvm.frameaddress / llvm.returnaddress intrinsics from i32 to platform's largest native type git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71169a722a14e9f381d61253aa8ebafd28f3e5d9 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Dec 7 02:28:10 2009 +0000 Add lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from x86 :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a39d69350dc6cdf4088ee6b1864070e619ef6d3 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Dec 7 02:27:53 2009 +0000 Initial codegen support for MSP430 ISRs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56998002fed819fcf5d9dc28c49287454425506f Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Dec 7 02:27:35 2009 +0000 Add MSP430 interrupt calling conv. No functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57f67276b60064d0bf4c97ad459241377dff7e08 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Dec 7 02:27:08 2009 +0000 Add ability to select hw multiplier mode and select appropriate libcalls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7363a6e009625b257d01c6c1a64653e17e2676cc Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Dec 7 00:27:35 2009 +0000 Fix typos. Thanks to John Tytgat for noticing it! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90728 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7374f702cd95402ff597457c8b3772cf3770ecf Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Dec 6 22:39:50 2009 +0000 Dynamic stack realignment use of sp register as source/dest register in "bic sp, sp, #15" leads to unpredicatble behaviour in Thumb2 mode. Emit the following code instead: mov r4, sp bic r4, r4, #15 mov sp, r4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90724 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cbb985ccdaaf5bc818e25d941a6e31d611deca4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Dec 6 17:17:23 2009 +0000 fix PR5698 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90708 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae4038f66b81c6a6017cac78817aa1c8dadd37d8 Author: Chris Lattner <sabre@nondot.org> Date: Sun Dec 6 16:58:41 2009 +0000 remove extraneous comma clang warns about git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bb632ff31a7a273cd8c7411319b27dd5b532f9f Author: Chris Lattner <sabre@nondot.org> Date: Sun Dec 6 05:29:56 2009 +0000 constant fold loads from memcpy's from global constants. This is important because clang lowers nontrivial automatic struct/array inits to memcpy from a global array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90698 91177308-0d34-0410-b5e6-96231b3b80d8 commit a96e53ae92d46707d04f238679ecb012ff07df99 Author: Chris Lattner <sabre@nondot.org> Date: Sun Dec 6 04:54:31 2009 +0000 add support for forwarding mem intrinsic values to non-local loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90697 91177308-0d34-0410-b5e6-96231b3b80d8 commit d59cb5d5442025e89d4b6c16bf685a6f770d7add Author: Chris Lattner <sabre@nondot.org> Date: Sun Dec 6 04:16:05 2009 +0000 gvn is optimizing this better now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90696 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb00f73e99d788c3cb30168d32e46f6970c93d48 Author: Chris Lattner <sabre@nondot.org> Date: Sun Dec 6 01:57:02 2009 +0000 Handle forwarding local memsets to loads. For example, we optimize this: short x(short *A) { memset(A, 1, sizeof(*A)*100); return A[42]; } to 'return 257' instead of doing the load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90695 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e77e9b0238cff581abc86626cd153f726478804 Author: Chris Lattner <sabre@nondot.org> Date: Sun Dec 6 01:56:22 2009 +0000 Add helper methods for forming shift operations with a constant shift amount. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e1e701a5bb2515de949ee95e457d208cbd36d19 Author: Chris Lattner <sabre@nondot.org> Date: Sun Dec 6 01:47:24 2009 +0000 merge two tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46999ba6514604c021f8ec30df15e47568840c85 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sun Dec 6 00:06:33 2009 +0000 CheckAtomic.cmake: Put all C++ code inside CHECK_CXX_SOURCE_COMPILES. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90685 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac88a7eecd22b24ede69845dd74cae286ff14816 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sat Dec 5 23:19:33 2009 +0000 Fix for atomic intrinsics detection when using MSVC. Patch by Michael Beck! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90683 91177308-0d34-0410-b5e6-96231b3b80d8 commit a182b3f8ba53a7b042461fd206a0807697ae6e85 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 17:56:26 2009 +0000 Remove old DBG_LABEL code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90669 91177308-0d34-0410-b5e6-96231b3b80d8 commit 955748e8b311172018ee5ab478e84b1f663d6547 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 17:51:33 2009 +0000 Remove the unused DisableLegalizeTypes option and related code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90668 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5b718ce82f52d669b9657ec5534f5b37a152637 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Dec 5 07:59:04 2009 +0000 Calling InvalidateEntry during the refinement was breaking the bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90656 91177308-0d34-0410-b5e6-96231b3b80d8 commit b347993aa457ca3c18247735eb301388d1fe2e71 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Dec 5 07:46:49 2009 +0000 Final cleanups: - Privatize a typedef. - Call the InvalidateEntry when refining a type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27cae32667e68db30ebfdee6fa4727696895967f Author: Bill Wendling <isanbard@gmail.com> Date: Sat Dec 5 07:30:23 2009 +0000 Temporarily revert r90502. It was causing the llvm-gcc bootstrap on PPC to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c9f6a6c8f5226419d4b0bac7c0cd5cf3f8d644d Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Dec 5 06:37:52 2009 +0000 Document that memory use intrinsics may also return Def results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90651 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea2236d55ea9e19aaedb6e4402a3be714aed7efd Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Dec 5 06:37:24 2009 +0000 Fix indentation in switch statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90650 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b7bc81e5026c1c950667f0d96f499edc671e49c Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Dec 5 05:00:00 2009 +0000 Generalize this optimization to work on equality comparisons between any two integers that are constant except for a single bit (the same n-th bit in each). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90646 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1151bf0deb01cc4fd87b8a394196f1123c78566 Author: Eric Christopher <echristo@apple.com> Date: Sat Dec 5 02:46:03 2009 +0000 More updates to objectsize intrinsic docs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1792bc68d2991042dceaa55f508a1c6c6a43b58a Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 02:00:34 2009 +0000 Don't print a space before the : between the file name and line number. And separate the directory and file name with a '/'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ea7e173d2eb27dc6a36b0c93c3e48ebea5da821 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Dec 5 01:46:01 2009 +0000 Inline methods which are called only once. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ce8b25281afb6b4b39f9e8442275007de6ef920 Author: Bill Wendling <isanbard@gmail.com> Date: Sat Dec 5 01:43:33 2009 +0000 Refactor some code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90639 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfca6e367887ec0820cf5c664eec4c0714166980 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 01:42:34 2009 +0000 Print newlines after printing labels for debug info, so that the output isn't cluttered with things like "Llabel47:Llabel48: movq (%rsi), %xmm3" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90638 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5b50fbff2c7d0f0e5f225da1c2f3f58299b35da Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 01:29:04 2009 +0000 Don't blindly set the debug location for PHI node copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 581cdf90ade3d318dedde0c645d478ffede09e0d Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 01:27:58 2009 +0000 Make TargetSelectInstruction protected and called from FastISel.cpp instead of SelectionDAGISel.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90636 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01696988ff3c98744cce105372803d4ed903f988 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 00:44:40 2009 +0000 Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor of MachineBasicBlock::canFallThrough(), which is target-independent and more thorough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90634 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc18967dc5cbda59461d704cc1543b4fbd57f592 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 00:32:59 2009 +0000 Simplify this code: don't call AnalyzeBranch before doing simpler checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90633 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ca1ac3967582cd4c02a12054b927adc1e111e52 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 00:27:08 2009 +0000 The debug information for an LLVM Instruction applies to that Instruction and that Instruction only. Implement this by setting the "current debug position" back to Unknown after processing each instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90632 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4698bab134cd68e41ae098168d9fd78e64b69904 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 00:23:29 2009 +0000 Fix this code to use DIScope instead of DICompileUnit, as in r90181. Don't print "SrcLine"; just print the filename and line number, which is obvious enough and more informative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90631 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef92a646d90a7dc618598e7b836638f96238f245 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 00:20:51 2009 +0000 Don't print the debug directory; it's often long and uninteresting. Omit the column number if it is not known. Handle the case of a missing filename better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90630 91177308-0d34-0410-b5e6-96231b3b80d8 commit a45e4926a3f8191749e5796b1829387c729a8a41 Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 00:05:43 2009 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1db628b4bc909ddc0d17ac0b2930cbf00a61191a Author: David Greene <greened@obbligato.org> Date: Sat Dec 5 00:03:24 2009 +0000 Remove an unneeded include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b62af25fd3f6b7b9efd33f31c2db6c806b5cb6c Author: Dan Gohman <gohman@apple.com> Date: Sat Dec 5 00:02:37 2009 +0000 Remove now-redundant llvm-as invocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90626 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2b73bd6b0f0b3271a9d63a9933bafbcba2555fe Author: David Greene <greened@obbligato.org> Date: Fri Dec 4 23:55:07 2009 +0000 Remove an unneeded include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90625 91177308-0d34-0410-b5e6-96231b3b80d8 commit 546f68a11248be2f32331f07c5baccf8d9ebb00d Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 4 23:29:57 2009 +0000 Add testcase for PR4262. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90623 91177308-0d34-0410-b5e6-96231b3b80d8 commit e26680ba1f829b15338f0f128855432c5bfd7210 Author: Dan Gohman <gohman@apple.com> Date: Fri Dec 4 23:19:55 2009 +0000 Print a space between the comment character and the text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6329f4f55dcdfb70f68498843c88b5a73dcd4c03 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 4 23:16:56 2009 +0000 Temporarily revert r72620 because r72619 was reverted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90619 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3df6974d831cc29b86026ce3ee3467eb489ea7f Author: Devang Patel <dpatel@apple.com> Date: Fri Dec 4 23:10:24 2009 +0000 In TAG_subrange_type, uppder bound is zero indexed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90617 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef682b7fdd6c1fc93490a01b7ba4093e4c935771 Author: David Greene <greened@obbligato.org> Date: Fri Dec 4 23:08:02 2009 +0000 Fix a bad merge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 989d418a4e80243a7c1ef377b24129218ba99cd5 Author: David Greene <greened@obbligato.org> Date: Fri Dec 4 23:00:50 2009 +0000 Update the TargetInstrInfo interfaces so hasLoad/StoreFrom/ToStackSlot can return a MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90615 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ef2d0921f1b88f1be8eb8c3380b4e17aee82bae Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Dec 4 22:46:47 2009 +0000 Fix indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11a046f10f723cac2c598dd0a626383c43aecba2 Author: David Greene <greened@obbligato.org> Date: Fri Dec 4 22:46:04 2009 +0000 Use new interfaces to print spill size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 647636ff709918827317acb14e19f1f78731d140 Author: David Greene <greened@obbligato.org> Date: Fri Dec 4 22:38:46 2009 +0000 Have hasLoad/StoreFrom/ToStackSlot return the relevant MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90608 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17bd7fec405d4836c56e7f36d46c89d7a19dc25f Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Dec 4 21:57:37 2009 +0000 Fix up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90603 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcb8eeed72b0f2838ccf134e814aad2feb254192 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Dec 4 21:51:35 2009 +0000 Fix 80-column violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90601 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfd40e5a54cf4299c3ec340152e1ae0350530b37 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Dec 4 21:41:24 2009 +0000 OptParser: Emit HelpText field for option groups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90599 91177308-0d34-0410-b5e6-96231b3b80d8 commit c461971d6dea16b5a464a801979b133746016d2f Author: Bill Wendling <isanbard@gmail.com> Date: Fri Dec 4 21:03:02 2009 +0000 Some code cleanup. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90588 91177308-0d34-0410-b5e6-96231b3b80d8 commit deb54c890a835d61f87054cd0f0fd89929fd7207 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Dec 4 20:07:10 2009 +0000 Avoid creating a metadata slot for all metadata that contains an instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90581 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99298f61d3a280ade30c73faee24fd72e0cdc228 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 4 19:09:10 2009 +0000 Handle recursive PHI's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90575 91177308-0d34-0410-b5e6-96231b3b80d8 commit abf657c53cc476649c440c08edc622f71cbc61ba Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Dec 4 18:29:23 2009 +0000 Fix crasher when N->getElement(n) is NULL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 371fcef75743c634263720bcd3a61a1615b90163 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 4 09:42:45 2009 +0000 Add a pre-regalloc tail duplication pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90567 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6941493d76d1aaaffb2d5d505eef249f9145d07b Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 4 09:23:37 2009 +0000 Don't try to be cute with undef optimization here. Let ProcessImplicitDefs handle it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90566 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4c88cfd8ee8bff54a68d0642d671ea778782e6d Author: Duncan Sands <baldrick@free.fr> Date: Fri Dec 4 08:42:17 2009 +0000 Add note about a subtle bug in this code. Does not effect the main architectures that LLVM targets, because they don't use this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f27b6231b04b85963be239e4b4e38a4ca4ad282 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Dec 4 08:17:07 2009 +0000 Fix typo and add missing include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 078fc85321a73e8e62dac97c35361306ffd0205c Author: Andreas Neustifter <astifter@gmx.at> Date: Fri Dec 4 06:58:24 2009 +0000 Added debug output for inherited passes that are invalidated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90553 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14d122d1e12cccd89611132195c0c884ff20f08c Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Dec 4 06:38:45 2009 +0000 Forward -m32/-m64 to the linker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90548 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6244a12df638a1e891969f5d98c39061a4afedb Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Dec 4 06:38:28 2009 +0000 Support -march/-mtune/-mcpu. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90547 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9c1d1c0c9628ce3b99e16e610ec41affcbaf614 Author: Chris Lattner <sabre@nondot.org> Date: Fri Dec 4 06:29:29 2009 +0000 Fix PR5551 by not ignoring the top level constantexpr when folding a load from constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90545 91177308-0d34-0410-b5e6-96231b3b80d8 commit 264a3832a12498c4cf895d43ca3642faea987617 Author: Chris Lattner <sabre@nondot.org> Date: Fri Dec 4 04:15:36 2009 +0000 add to cmake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90539 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3271997b64f2881fbfb1152031ed2e14337ecba Author: Chris Lattner <sabre@nondot.org> Date: Fri Dec 4 02:12:12 2009 +0000 Small and carefully crafted testcase showing a miscompilation by GVN that I'm working on. This is manifesting as a miscompile of 255.vortex on some targets. No check lines yet because it fails. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90520 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9003793e8d154cb9b14cc2391c46c68f97e2182c Author: Chris Lattner <sabre@nondot.org> Date: Fri Dec 4 02:10:16 2009 +0000 add the start of a class used to handle phi translation in memdep and gvn (this is just a skeleton so far). This will ultimately be used to fix a nasty miscompilation with GVN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1358217bcbc89fe174040d453fbb63f4a2ca79d5 Author: Mike Stump <mrs@apple.com> Date: Fri Dec 4 01:53:15 2009 +0000 Create yet another helper for Invoke. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90514 91177308-0d34-0410-b5e6-96231b3b80d8 commit 634753dbd76b1db3ed7a48af1d1fbc94da3daa93 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Dec 4 01:35:02 2009 +0000 Teach AsmWriter to write inline (not via a global metadata slot) metadata that contains an instruction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90512 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0c7dd2577afbb02d62879c8b6ac4ecd6d372d62 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Dec 4 01:33:04 2009 +0000 Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90511 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdbf27b90f3018b6bb3b66b3f58db960d445ef59 Author: Mike Stump <mrs@apple.com> Date: Fri Dec 4 01:26:26 2009 +0000 Add some helpers for Invoke to mirror CreateCall helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bf11742990180e29ca58bbe8f1149773ec6090a Author: Chris Lattner <sabre@nondot.org> Date: Fri Dec 4 01:03:32 2009 +0000 add an assert to make it really clear what this is doing. Return singularval as a compile time perf optimization to avoid a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88d11c3a214da464deb05eb17922d633e5af77a1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Dec 4 00:16:04 2009 +0000 Also attempt trivial coalescing for live intervals that end in a copy. The coalescer is supposed to clean these up, but when setting up parameters for a function call, there may be copies to physregs. If the defining instruction has been LICM'ed far away, the coalescer won't touch it. The register allocation hint does not always work - when the register allocator is backtracking, it clears the hints. This patch takes care of a few more cases that r90163 missed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90502 91177308-0d34-0410-b5e6-96231b3b80d8 commit 723be602ecdfde30a50c3afe1780575fdf8f0f56 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Dec 4 00:09:05 2009 +0000 - If the reaching definition is an undef and the use is a PHI, add the implicit_def to the end of the source block. - When reaching value is replaced with another, update the cache as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90501 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4285ddbfd5fd218038058a6fdb2366ae3247a99d Author: Devang Patel <dpatel@apple.com> Date: Thu Dec 3 23:46:57 2009 +0000 Insert composite type DIE into the map before processing type fields. This allows fields to find their context DIE from the map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 223c7146f919727a834a1fa5471f25ce169ab2a6 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Dec 3 23:40:58 2009 +0000 Add ParseInlineMetadata() which can parses metadata that refers to an instruction. Extend ParseParameterList() to use this new function so that calls to llvm.dbg.declare can pass inline metadata git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90497 91177308-0d34-0410-b5e6-96231b3b80d8 commit d003075f1b3921f20ac9da8e0310afa4cd9b2f04 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Dec 3 21:55:01 2009 +0000 remove out of date FIXME. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21d9a013924f79957deaa9dac748d722cc40b40a Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 3 21:51:55 2009 +0000 Handle undef values properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 886ea36230307f67689a2f318adf47ec80dd8be4 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 3 21:50:58 2009 +0000 Watch out for PHI instruction with no source operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90488 91177308-0d34-0410-b5e6-96231b3b80d8 commit 505f207509d2814d54c957bd9324c59b332f35ba Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Dec 3 21:47:07 2009 +0000 Fix a comment typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90487 91177308-0d34-0410-b5e6-96231b3b80d8 commit b956e74994c0d0e41f2862e79d96ec699de782de Author: Duncan Sands <baldrick@free.fr> Date: Thu Dec 3 21:37:32 2009 +0000 Fix ExpandShiftWithUnknownAmountBit, which was completely bogus. Pointed out by Javier Martinez (who also provided a patch). Since this logic is not used on (for example) x86, I guess nobody noticed. Tested by generating SHL, SRL, SRA on various choices of i64 for all possible shift amounts, and comparing with gcc. Since I did this on x86-32, I had to force the use of ExpandShiftWithUnknownAmountBit. What I'm saying here is that I don't have a testcase I can add to the repository. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90482 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0afa909ad8d1b108b4ad6925ca6b3a5de2817e2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Dec 3 20:49:10 2009 +0000 Clean up some loop logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 188c85dc4247e23ddaa63e055972253de3901fdb Author: Devang Patel <dpatel@apple.com> Date: Thu Dec 3 19:11:07 2009 +0000 Add support to emit debug info for virtual functions and virtual base classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90474 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96d7b188600be74e1936f6ed871b1d83d017bbf8 Author: Dan Gohman <gohman@apple.com> Date: Thu Dec 3 19:03:18 2009 +0000 Print a newline after the Args: line so that unrelated errs() output doesn't end up on the same line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90473 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e1265d554b730da926b3fee830c38e5dd9eefae Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Dec 3 13:23:03 2009 +0000 Fix MSVC build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90454 91177308-0d34-0410-b5e6-96231b3b80d8 commit e047045d670b654099260d18939e7c997ef382b6 Author: Andreas Neustifter <astifter@gmx.at> Date: Thu Dec 3 12:55:57 2009 +0000 Convert ProfileVerifier to template so it can be used for different types of ProfileInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90451 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2aee46c884e3f2ef217f9c923eeb1f9b303f784 Author: Andreas Neustifter <astifter@gmx.at> Date: Thu Dec 3 12:41:14 2009 +0000 Do not create negative edge weights in ProfileEstimator. Use integer values for weights to prevent rounding errors. Make ProfileEstimator more robust in general CFGs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90449 91177308-0d34-0410-b5e6-96231b3b80d8 commit eee658317491fb9c16588d9490a953cbe099099c Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Dec 3 11:12:42 2009 +0000 Add an implementation of the delta debugging algorithm. - This is a pretty slow / memory intensive implementation, and I will likely change it to an iterative model, but it works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90447 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86f33f89980cab23051ee961585883bb3627d7a8 Author: Andreas Neustifter <astifter@gmx.at> Date: Thu Dec 3 11:00:37 2009 +0000 Use ProfileInfo-API in ProfileInfo Loader and do more assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90446 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c3770a68b8978d3b7ab6abe6176590b8bbbe59e Author: Andreas Neustifter <astifter@gmx.at> Date: Thu Dec 3 09:30:12 2009 +0000 Converted ProfileInfo to template, added more API for ProfileInfo-preserving. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90445 91177308-0d34-0410-b5e6-96231b3b80d8 commit e83c9b214205978873745b7368df84cf9f117996 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 3 08:43:53 2009 +0000 Teach tail duplication to update SSA form. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 112929ef9a90dece270087545a7b173e64dc6245 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 3 07:43:46 2009 +0000 expand note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90429 91177308-0d34-0410-b5e6-96231b3b80d8 commit dddb3a3b9e782e72a9568a31639ede110cf05131 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 3 07:41:54 2009 +0000 add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90428 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea5d5940df6894c2efc4c6ac76700922df97d8b2 Author: Nate Begeman <natebegeman@mac.com> Date: Thu Dec 3 07:11:29 2009 +0000 Don't pull vector sext through both hands of a logical operation, since doing so prevents the fusion of vector sext and setcc into vsetcc. Add a testcase for the above transformation. Fix a bogus use of APInt noticed while tracking this down. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90423 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12fac174a70da350938ffa425d60e5f314ca5a8d Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 3 06:58:32 2009 +0000 fix a build problem with VC++, PR5664, patch by Alp Toker! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 171422980d99d7689b2cac01504b981e87b61905 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Dec 3 06:40:55 2009 +0000 Recognize canonical forms of vector shuffles where the same vector is used for both source operands. In the canonical form, the 2nd operand is changed to an undef and the shuffle mask is adjusted to only reference elements from the 1st operand. Radar 7434842. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ac6732b47ec36df1b6d990a62d21da02fddee2b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Dec 3 05:15:35 2009 +0000 Don't call getValueType() on a null SDValue git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c405b9b2073b226155ef3e928ffa4f07e69607d Author: Owen Anderson <resistor@mac.com> Date: Thu Dec 3 03:43:29 2009 +0000 Fix this crasher, and add a FIXME for a missed optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 615cc8769c570cab6cb910255c0fab10256cf272 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Dec 3 02:31:43 2009 +0000 Fill out codegen SSA updater. It's not yet tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90395 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff1f7f7ab396cf2f68d64a7bc54d04f7dde178ae Author: Bill Wendling <isanbard@gmail.com> Date: Thu Dec 3 01:54:07 2009 +0000 Revert r90371. It was causing build failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90383 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26f2fb73faa4634ef52b931f6581f127c79bc2f2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Dec 3 01:49:56 2009 +0000 Don't hang on to pointers or references after vector::push_back. The MO reference to a MachineOperand can be invalidated by MachineInstr::addOperand. Don't even use it for debugging. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c17063f8a9795289eee9454110f066e225a72bd Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 3 01:46:18 2009 +0000 add a failing testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90380 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1df879dbd07bb4d63e7cc6358ed73263c631c12 Author: Devang Patel <dpatel@apple.com> Date: Thu Dec 3 01:25:38 2009 +0000 Emit method definition DIE at module level (even for methods with inlined functino body at soure level) so that the debugger can invoke it. This fixes many test failures in gdb test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90375 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07af48541ca53034b99a5290bca9b8d45849860c Author: Bill Wendling <isanbard@gmail.com> Date: Thu Dec 3 01:15:46 2009 +0000 Further improvements: refactoring code that does the same thing into one function, converting "dyn_cast" to "cast", asserting the correct things, and other general cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90371 91177308-0d34-0410-b5e6-96231b3b80d8 commit 610e0bd83840b8254dbc2ad0a4ba352eca16a720 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 3 01:10:05 2009 +0000 yay for case insensitive file systems (?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56de6c29b3028dc1d6e5dc203292de7bb44275d5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 3 01:05:45 2009 +0000 fix PR5673 by being more careful about pointers to functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90369 91177308-0d34-0410-b5e6-96231b3b80d8 commit a262eaa4f9eb214d28918a397c07a80b6158bf0b Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 3 00:55:04 2009 +0000 remove some dead std::ostream using code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90366 91177308-0d34-0410-b5e6-96231b3b80d8 commit b44b429549bc4c4f950d56d4f6fa0ba486856cc6 Author: Chris Lattner <sabre@nondot.org> Date: Thu Dec 3 00:50:42 2009 +0000 improve portability to avoid conflicting with std::next in c++'0x. Patch by Howard Hinnant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90365 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56eb10842f19c43f3970f6f6ba2d8b7dbf4807e9 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Dec 3 00:17:12 2009 +0000 This initial code is meant to convert TargetData to use an AbstractTypesUser so that it doesn't have dangling pointers when abstract types are resolved. This modifies it somewhat to address comments: making the "StructLayoutMap" an anonymous structure, calling "removeAbstractTypeUser" when appropriate, and adding asserts where helpful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90362 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33221d9fcccbb6f41d5664fd0b89c9e6f71a0875 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Dec 2 22:19:31 2009 +0000 Fix CMake makefiles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 023a88ee8ad038b8e7686187cee877299cdefbca Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Dec 2 22:02:52 2009 +0000 Skeleton for MachineInstr level SSA updater. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90353 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd6fa9f3032a0781be6c8b4acd8aba62d5b96285 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Dec 2 22:02:20 2009 +0000 Remove unnecessary check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90352 91177308-0d34-0410-b5e6-96231b3b80d8 commit dee452ff502feea9a09247af651d25107748bc0e Author: Jim Grosbach <grosbach@apple.com> Date: Wed Dec 2 19:31:07 2009 +0000 Add MaxStackAlignment.cpp to CMake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90337 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d20ee6d9a35d9498ad170c55ba714b346237a55 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Dec 2 19:30:24 2009 +0000 Factor the stack alignment calculations out into a target independent pass. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5eb5f091ab381b612c271a1683e6e0870394d0c4 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Dec 2 17:15:24 2009 +0000 Don't count PHI instructions toward the limit for tail duplicating a block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3168d8c736130382a1c7b92a452f3707cc69783a Author: Jim Grosbach <grosbach@apple.com> Date: Wed Dec 2 17:06:45 2009 +0000 Move EliminateDuplicatePHINodes() from SimplifyCFG.cpp to Local.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00e637ba6ff6e9749f67cbed852462839d14241b Author: Andreas Neustifter <astifter@gmx.at> Date: Wed Dec 2 15:57:15 2009 +0000 Cheap, mostly strict, stable sorting. This is necessary for tests so the results are comparable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90320 91177308-0d34-0410-b5e6-96231b3b80d8 commit aca44457101e481c0efc60e9e3f8a0c5a53e45aa Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Dec 2 15:33:44 2009 +0000 Silence compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90319 91177308-0d34-0410-b5e6-96231b3b80d8 commit df0f215750690b1c58f76b72f751d5a5c4da46d8 Author: Devang Patel <dpatel@apple.com> Date: Wed Dec 2 15:25:16 2009 +0000 Clarify that DIEString does not keep a copy of the string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90318 91177308-0d34-0410-b5e6-96231b3b80d8 commit f187daf03250b0e1763bf07437d5048f6320789c Author: Owen Anderson <resistor@mac.com> Date: Wed Dec 2 07:35:19 2009 +0000 Cleanup/remove some parts of the lifetime region handling code in memdep and GVN, per Chris' comments. Adjust testcases to match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90304 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc6fccc2682a75a1dcbf8904334bc3b137fdc213 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 2 06:44:58 2009 +0000 factor some code better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90299 91177308-0d34-0410-b5e6-96231b3b80d8 commit 648dc5a2106ef92818f54ef831ac051f7d238264 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 2 06:35:55 2009 +0000 formatting cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90298 91177308-0d34-0410-b5e6-96231b3b80d8 commit 262590904ae923498bc704da374110de14289a2a Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 2 06:05:42 2009 +0000 tidy up, remove dependence on order of evaluation of function args from EmitMemCpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90297 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53f9966b7a5454affde814ceb105c7f26f330617 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 2 05:34:35 2009 +0000 merge sext-2 into sext.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90293 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f7fc4e0d23f3c2feb72d872843465c572774479 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 2 05:32:33 2009 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90292 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79e59484e54d1fb722525de5f7e23101e128e1b8 Author: Chris Lattner <sabre@nondot.org> Date: Wed Dec 2 05:32:16 2009 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90291 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3adb22982168a536036386dc27dd0522f0839658 Author: Mon P Wang <wangmp@apple.com> Date: Wed Dec 2 04:59:58 2009 +0000 Fixed an assertion failure for tracking sext of a vector of integers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69668fe63a3e714b363c251307dc34e243b1d101 Author: Devang Patel <dpatel@apple.com> Date: Tue Dec 1 23:09:02 2009 +0000 Add utility routine to create subprogram definition entry from subprogram declaration entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90282 91177308-0d34-0410-b5e6-96231b3b80d8 commit 920ffac27e66522138cddf6aac63f4965c8103dd Author: Devang Patel <dpatel@apple.com> Date: Tue Dec 1 23:07:59 2009 +0000 Reuse existing subprogram DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90281 91177308-0d34-0410-b5e6-96231b3b80d8 commit b05c79891c16cf8f9b86fc0a35e496f398ec5ebb Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 1 22:51:41 2009 +0000 return more useful error messages by using strerror to format errno instead of returning an ambiguous reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90275 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad60d2d9e46713fde0421b91ebcd0a1369b142e5 Author: Eric Christopher <echristo@apple.com> Date: Tue Dec 1 22:28:41 2009 +0000 Update per Bill's comments. Work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 578f3231d6c9ba6d6bd8c683033748cf4d68b623 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Dec 1 22:25:00 2009 +0000 Fix PR5391: support early clobber physical register def tied with a use (ewwww) - A valno should be set HasRedefByEC if there is an early clobber def in the middle of its live ranges. It should not be set if the def of the valno is defined by an early clobber. - If a physical register def is tied to an use and it's an early clobber, it just means the HasRedefByEC is set since it's still one continuous live range. - Add a couple of missing checks for HasRedefByEC in the coalescer. In general, it should not coalesce a vr with a physical register if the physical register has a early clobber def somewhere. This is overly conservative but that's the price for using such a nasty inline asm "feature". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79affd8fb46d75087c98aa4095dfc207c820d9f1 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Dec 1 21:53:51 2009 +0000 test case for IV-Users simplification loop improvement git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90260 91177308-0d34-0410-b5e6-96231b3b80d8 commit 536fff516dd00816acf36d0b118e391a119e182b Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 1 21:16:01 2009 +0000 rename some variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90258 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39380bfcb91f84d404d5adbf38e4b3916769cd82 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 1 21:15:15 2009 +0000 tidy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69be7878c045ac40c9c847fe8d04f44e51663c04 Author: Dan Gohman <gohman@apple.com> Date: Tue Dec 1 19:20:00 2009 +0000 Add edge source labels to SelectionDAG graphs, now that the graph printing framework omits differentiated edge sources in the case where the labels are empty strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8cb3747a8bb51ba03b38cf87e606e2bb33032d6e Author: Dan Gohman <gohman@apple.com> Date: Tue Dec 1 19:16:15 2009 +0000 Minor cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90253 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bf95848e06bdfa04ec8a28cc22730ae139b9786 Author: Dan Gohman <gohman@apple.com> Date: Tue Dec 1 19:13:27 2009 +0000 Trim an unnecessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 584f5f5e52830802e809b1c03c48de7dcdf87c4a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Dec 1 19:11:36 2009 +0000 Don't default warnings to ON on MSVC, the spew is enough to triple the build time. :/ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67533ab25e3fd9b66779dee173f5cb3cfb93cb99 Author: Devang Patel <dpatel@apple.com> Date: Tue Dec 1 18:13:48 2009 +0000 Clear function specific containers while processing end of a function, even if DW_TAG_subprogram for current function is not found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90247 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0fb7c4e1ae9b7c87037bc6a72adce439d23484c Author: Jim Grosbach <grosbach@apple.com> Date: Tue Dec 1 18:10:36 2009 +0000 Thumb1 exception handling setjmp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90246 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e1b1ad3abeb24f6da12afe63ac7a1074c1e3dbf Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Dec 1 17:37:06 2009 +0000 For VLDM/VSTM (Advanced SIMD), set encoding bits Inst{11-8} to 0b1011. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90243 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a929cf5ff12aac2838d89389e1a90fceb731437 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Dec 1 17:13:31 2009 +0000 Move PHIElimination::isLiveOut method to LiveVariables. We want LiveVariables clients to use methods rather than accessing the getVarInfo data structure directly. That way it will be possible to change the LiveVariables representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90240 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdb7736af562a153a1a3821737ec86876f0a817e Author: Gabor Greif <ggreif@gmail.com> Date: Tue Dec 1 15:53:33 2009 +0000 typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90236 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3798876dfe29818e97cff43cba6785648253867 Author: Gabor Greif <ggreif@gmail.com> Date: Tue Dec 1 12:53:56 2009 +0000 demonstrate usage of Cases() mapping several strings to the same value; remove trailing spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90230 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24dd55c3e41c2d655eefe760c446d9e24e44c287 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Dec 1 09:47:11 2009 +0000 Add relocation model options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90222 91177308-0d34-0410-b5e6-96231b3b80d8 commit 977dffe8fde833b6c312d14b40d619e33d6ba866 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Dec 1 09:19:09 2009 +0000 Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90221 91177308-0d34-0410-b5e6-96231b3b80d8 commit 825f4e1e87f1afff90a026ffe0876eff313bcf56 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Tue Dec 1 08:43:33 2009 +0000 Fix copy paste bug git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90220 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf50d21c781661a1637c48dbe4e2a412764729f3 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 1 07:33:32 2009 +0000 fix 255.vortex again, third time's the charm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90217 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39e844369d0a07edab15cf20037d6da328f8bd6c Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 1 07:30:01 2009 +0000 minimize this a bit more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90216 91177308-0d34-0410-b5e6-96231b3b80d8 commit 488fe85c61807145b2d052a9104ceca80e17df74 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Dec 1 06:51:30 2009 +0000 Forward -save-temps to llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90214 91177308-0d34-0410-b5e6-96231b3b80d8 commit 333b7e1d9e904eff9b98e20984cbd8439b86282f Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 1 06:22:10 2009 +0000 merge 2009-11-29-ReverseMap.ll into crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90212 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0cb431faf56460af265f0d9b92b7d7e49eb75b4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 1 06:04:43 2009 +0000 fix PR5640 by tracking whether a block is the header of a loop more precisely, which prevents us from infinitely peeling the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90211 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a25c251af8588b170f76e7e479cdc947ca924e5 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Dec 1 05:59:55 2009 +0000 Support -[weak_]framework and -F in llvmc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90210 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6cb75ac35fdf87efaf27010947a6b19fae785ff4 Author: Eric Christopher <echristo@apple.com> Date: Tue Dec 1 03:18:26 2009 +0000 Remove the gcc builtins from the intrinsics, we'll lower them explicitly so we can check arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90199 91177308-0d34-0410-b5e6-96231b3b80d8 commit c79abe2ba9e6bd0909b9a00eddb54a8d500ec11c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Dec 1 03:03:00 2009 +0000 Use CFG connectedness as a secondary sort key when deciding the order of copy coalescing. This means that well connected blocks are copy coalesced before the less connected blocks. Connected blocks are more difficult to coalesce because intervals are more complicated, so handling them first gives a greater chance of success. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90194 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b958caea8cf2cd06c543188b32fd3f17bcd5652 Author: Eric Christopher <echristo@apple.com> Date: Tue Dec 1 02:26:01 2009 +0000 Add a soft link so that in an apple style build we can find libLTO.dylib. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90189 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b581b33c31386a16bd1ae4ff121b0908e43c64a Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Dec 1 02:21:51 2009 +0000 Add two CMake flags LLVM_ENABLE_PEDANTIC and LLVM_ENABLE_WERROR, PEDANTIC defaults to ON and WERROR default to off. Also add MSVC warnings. To disable warnings add the flags LLVM_ENABLE_WARNINGS (default on). Patch by Tobias Grosser! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90188 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8bceade9b026d229b621399e196e8376396d0b7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Dec 1 01:56:27 2009 +0000 fix PR5649 by making fib use the JIT instead of the interpreter, patch by Perry Lorier! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90186 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7aaf7b998d0006b775c3e494ea4b6d614f3ef81 Author: Dan Gohman <gohman@apple.com> Date: Tue Dec 1 01:38:10 2009 +0000 Add a comment about A[i+(j+1)]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05837cdf183324700fbe8231a655e9f7101057c6 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 1 00:59:58 2009 +0000 Remove some validation errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90184 91177308-0d34-0410-b5e6-96231b3b80d8 commit d90060edfdeaadf4563de2521221c201924e1790 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Dec 1 00:53:11 2009 +0000 Some formatting and spelling fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90182 91177308-0d34-0410-b5e6-96231b3b80d8 commit af20e7cfb5d44c7a0caad3a152978fcca1f4b438 Author: Dan Gohman <gohman@apple.com> Date: Tue Dec 1 00:45:56 2009 +0000 Devang pointed out that this code should use DIScope instead of DICompileUnit. This code now prints debug filenames successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90181 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e99614c66e92b4f6c26531b8c84e0f42a35c902 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Dec 1 00:44:45 2009 +0000 Fix PR5614: parts of a physical register def may be killed the rest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90180 91177308-0d34-0410-b5e6-96231b3b80d8 commit de4b5d00385da6273b0902e9385928b99aeda670 Author: Devang Patel <dpatel@apple.com> Date: Tue Dec 1 00:13:06 2009 +0000 Test case for r90175. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90176 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf4fad276042adc440ff0d119b9fb67a94814ccf Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Dec 1 00:02:02 2009 +0000 For VMOV (immediate), make some of the encoding bits (cmode and op) unspecified. For VMOVv*i[16,32], op bit is don't care, and some cmode bits vary depending on the immediate values. Ref: Table A7-15 Modified immediate values for Advanced SIMD instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90173 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76b806763b89ea64337bd967614662a72f237191 Author: Devang Patel <dpatel@apple.com> Date: Mon Nov 30 23:56:56 2009 +0000 If pointer type has a name then do not ignore the name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90172 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63c90f69fe61ee5b0ff0ee8acf73274452da933e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Nov 30 23:50:14 2009 +0000 * CMakeLists.txt: Adds warnings flags for g++. Fixes PR 5647. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90170 91177308-0d34-0410-b5e6-96231b3b80d8 commit a86f9f058bf09127b7cf306770c353a6ffc41b3f Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Nov 30 23:48:51 2009 +0000 * cmake/modules/LLVMLibDeps.cmake: Updated library dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90169 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26219b78e2e252a08c7c59aceb05a86751cdf20e Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 30 23:33:53 2009 +0000 Minor whitespace fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90166 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66fe2bca32f043bf5bd15c732c80627621d7abb7 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 30 23:33:37 2009 +0000 Fix a minor inconsistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90165 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ff03c6950bb5ed48831ad9cd6b53fcd9fe7dfa8 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 30 23:30:43 2009 +0000 Fix typos in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90164 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6e14f94aae2689841a94bc7aa059a8771e53867 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Mon Nov 30 22:55:54 2009 +0000 New virtual registers created for spill intervals should inherit allocation hints from the original register. This helps us avoid silly copies when rematting values that are copied to a physical register: leaq _.str44(%rip), %rcx movq %rcx, %rsi call _strcmp becomes: leaq _.str44(%rip), %rsi call _strcmp The coalescer will not touch the movq because that would tie down the physical register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90163 91177308-0d34-0410-b5e6-96231b3b80d8 commit 180e3e4b507427ba5d81408a064adc5a3055557f Author: Bill Wendling <isanbard@gmail.com> Date: Mon Nov 30 22:23:29 2009 +0000 Debug info is disabled on PPC Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90160 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d0daa24dde6984c75c7fe1933653429169418f4 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 30 18:56:45 2009 +0000 Reprioritize tests for tail duplication to be aggressive about indirect branches even when optimizing for code size. Unless we find evidence to the contrary in the future, the special treatment for indirect branches does not have a significant effect on code size, and performance still matters with -Os. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90868102bf6144cae08570ddcb96099d9d63c06d Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 30 18:35:03 2009 +0000 Remove isProfitableToDuplicateIndirectBranch target hook. It is profitable for all the processors where I have tried it, and even when it might not help performance, the cost is quite low. The opportunities for duplicating indirect branches are limited by other factors so code size does not change much due to tail duplicating indirect branches aggressively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bff42e81121019af3ba61a13f087bba6ed37c54 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 30 17:47:19 2009 +0000 Fix some more ARM unified syntax warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49462255e92b03de36a013dd23845d9c8e35821c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Nov 30 15:52:29 2009 +0000 Fix odd declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90138 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf4ea99c2887e55d18206e093bccdc43636c9b1b Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Nov 30 13:34:51 2009 +0000 Fix last DOTGraphTraits problems in CompilationGraph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90136 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9b1114ae03b624deb0ed6e6d1bb26cc2cd2685e Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Nov 30 13:14:13 2009 +0000 Remove forgotten ShortNames in Trie and CompilationGraph git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90135 91177308-0d34-0410-b5e6-96231b3b80d8 commit 810b18c4cc8b022f79f0dd886cc9092a3e4f6d2c Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Nov 30 12:38:47 2009 +0000 Remove ShortNames from getNodeLabel in DOTGraphTraits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90134 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2c3aec2cf16ee6ea233d3ec13a83e71e21523b9 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Nov 30 12:38:13 2009 +0000 Instantiate DefaultDOTGraphTraits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90133 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd748c9df057cd33fe255b9ff81e720518f82cb3 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Nov 30 12:37:39 2009 +0000 Do not point edge heads to source labels If no destination label is available, just point to the node itself instead of pointing to some source label. Source and destination labels are not related in any way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 989dd8528652afdfcf5125f7d206bc0f075861e7 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Nov 30 12:24:40 2009 +0000 Only print edgeSourceLabels if they are not empty Graphviz can layout the graphs better if a node does not contain source ports. Therefore only print the ports if the source ports are useful, that means are not labeled with the empty string "". This patch also simplifies graphs without any edgeSourceLabels e.g. the dominance trees. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d6054ab3ef09773025dbcee2b923913a73a919d Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Nov 30 12:06:37 2009 +0000 Small PostDominatorTree improvements * Do not SEGFAULT if tree entryNode() is NULL * Print function names in dotty printer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90130 91177308-0d34-0410-b5e6-96231b3b80d8 commit e148e0b0e803768e12df1884159f143bf08f6e40 Author: Tobias Grosser <grosser@fim.uni-passau.de> Date: Mon Nov 30 11:55:24 2009 +0000 Remove ":" after BB name in -view-cfg-only git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90129 91177308-0d34-0410-b5e6-96231b3b80d8 commit 767a372b1df0e26fbbe0dd8d3667e85d98c91109 Author: Eric Christopher <echristo@apple.com> Date: Mon Nov 30 08:03:53 2009 +0000 First pass at llvm.objectsize documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90116 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9ae7435b67e6375d2e72cb4bd43955c0a58edad Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 30 07:05:51 2009 +0000 Revert r90107, fixing test/Transforms/GVN/2009-11-29-ReverseMap.ll and the llvm-gcc build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30a3e84e9b7aca47aaee2ed11bc20cf6336bd189 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 30 07:02:18 2009 +0000 Add a testcase for the current llvm-gcc build failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90112 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21c4cada89c23d0c6c943d7044d045c279804c05 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 30 04:23:17 2009 +0000 Remove the 'simple jit' tutorial as it wasn't really being maintained and its material is covered by the Kaleidoscope tutorial. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90111 91177308-0d34-0410-b5e6-96231b3b80d8 commit f950eb5454f482bc93a1d58b179f3e9be707e686 Author: Mon P Wang <wangmp@apple.com> Date: Mon Nov 30 02:42:27 2009 +0000 Add test case for r90108 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90109 91177308-0d34-0410-b5e6-96231b3b80d8 commit c707f3ff7cdb427155b7ca707a3efd2c8b34bcd1 Author: Mon P Wang <wangmp@apple.com> Date: Mon Nov 30 02:42:02 2009 +0000 Added support to allow clients to custom widen. For X86, custom widen vectors for divide/remainder since these operations can trap by unroll them and adding undefs for the resulting vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90108 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1f454174e8ad32da74193471ca079a12c2bb18d Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 30 02:26:29 2009 +0000 reapply r90093 with an addition of keeping the forward and reverse nonlocal memdep maps in synch, this should fix 255.vortex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90107 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfd72282b887511b8d0859777a6ca9851e062a85 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 30 02:23:57 2009 +0000 Fix this test on 64-bit systems which seem to use i64 for gep indices sometimes while 32-bit gcc uses i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90106 91177308-0d34-0410-b5e6-96231b3b80d8 commit f215dece88649838a64b0d7740184713c487cf54 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 30 00:38:56 2009 +0000 Commit r90099 made LLVM simplify one of these constant expressions a little more. Update the syntax we're checking for and filecheckize it too. This will fix the selfhost buildbots but will 'break' the others (sigh) because they're still linked against older LLVM which is emitting less optimized IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90104 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0425dc773b82135ec8b6e5e6a5140c06de86c6ce Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 29 21:40:55 2009 +0000 Teach ConstantFolding to do a better job when folding gep(bitcast). This permits the devirtualization of llvm.org/PR3100#c9 when compiled by clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90099 91177308-0d34-0410-b5e6-96231b3b80d8 commit c04f8adbc1539eb593879d8e0f8977ac5155e605 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Nov 29 21:17:48 2009 +0000 Revert r90089 for now, it's breaking selfhost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90097 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b4ba06f907aac7ef1991e339ff4c262a301047f Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 21:14:59 2009 +0000 revert this patch for now, it causes failures of: LLVM::Transforms/GVN/2009-02-17-LoadPRECrash.ll LLVM::Transforms/GVN/2009-06-17-InvalidPRE.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90096 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02507fdead4d86a04c1c914549b2d2ab295c47c7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 21:09:36 2009 +0000 Fix a really nasty caching bug I introduced in memdep. An entry was being added to the Result vector, but not being put in the cache. This means that if the cache was reused wholesale for a later query that it would be missing this entry and we'd do an incorrect load elimination. Unfortunately, it's not really possible to write a useful testcase for this, but this unbreaks 255.vortex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90093 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7719b59199b6920ada130675f658bf3ec8521cd6 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Nov 29 20:29:30 2009 +0000 Fix two FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90089 91177308-0d34-0410-b5e6-96231b3b80d8 commit eac76e8c39d2f6370692677fdfc59c7d62e29e07 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 29 18:10:39 2009 +0000 Detabify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e73b69d560efe55408748561f294bfed36d7079 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Nov 29 17:42:58 2009 +0000 Remove dead returns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90083 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfd64f93fe4a893fe6ffda056c825d0a9e3f272a Author: Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> Date: Sun Nov 29 17:19:48 2009 +0000 This patch ensures that Path::GetMainExecutable is able to handle the case where realpath() fails. When this occurs we segfault trying to create a std::string from a NULL pointer. Fixes PR5635. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90082 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7143f3420c2832c342182ec8e5b87a4e5a19f99c Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 29 08:30:24 2009 +0000 Fix FileCheck crash when fuzzy scanning starting at the end of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90065 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbbf1b238bc38c26fc4f7b53a26e0d0538880d8a Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 02:57:29 2009 +0000 add testcases for the foo_with_overflow op xforms added recently and fix bugs exposed by the tests. Testcases from Alastair Lynn! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 565b96428b6e7af0b87275a81471c5395fcbdc16 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 02:44:33 2009 +0000 mark all the 'foo with overflow' intrinsics as readnone. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90055 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8aa4c019b5bb50ba9a3a5e2188a64081beb2f02b Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 02:19:52 2009 +0000 update and consolidate the load pre notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90050 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6756dffb3a4685abfaa0455078c4d8f4c33ddc28 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 01:28:58 2009 +0000 add PR# git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90049 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea7509881f1e6d5efaa80638b0a5ab5290c77651 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 01:15:43 2009 +0000 Add a testcase for: void test(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j] = G[j] + G[j+1] + G[j-1]; } which we now compile to one load in the loop: LBB1_2: ## %bb movsd 16(%rsi,%rax,8), %xmm2 incq %rdx addsd %xmm2, %xmm1 addsd %xmm1, %xmm0 movapd %xmm2, %xmm1 movsd %xmm0, 8(%rsi,%rax,8) incq %rax cmpq %rcx, %rax jne LBB1_2 instead of: LBB1_2: ## %bb movsd 8(%rsi,%rax,8), %xmm0 addsd 16(%rsi,%rax,8), %xmm0 addsd (%rsi,%rax,8), %xmm0 movsd %xmm0, 8(%rsi,%rax,8) incq %rax cmpq %rcx, %rax jne LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90048 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96bd9d9931be198b46c3197b67ed02aefc734bd4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 01:04:40 2009 +0000 add a testcase for void test9(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 163e6ab29947e801b555e688e19af8460c8c7903 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 29 00:51:17 2009 +0000 Implement PR5634. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90046 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2dbc3f24619726bb5def46ed36116ed5bbb2ac85 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Nov 28 21:27:49 2009 +0000 Teach memdep to look for memory use intrinsics during dependency queries. Fixes PR5574. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90045 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80c535b9194e1ce2927ca9b55d010a8fcb5833b3 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 28 16:08:18 2009 +0000 reenable load address insertion in load pre. This allows us to handle cases like this: void test(int N, double* G) { long j; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } where G[1] isn't live into the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90041 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c2de2bd49cd56c50c9251f22727a126dea78f43 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 28 15:39:14 2009 +0000 Enhance InsertPHITranslatedPointer to be able to return a list of newly inserted instructions. No functionality change until someone starts using it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90039 91177308-0d34-0410-b5e6-96231b3b80d8 commit c343983d722c5552dea693c85bf62406217dc097 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 28 15:12:41 2009 +0000 implement a FIXME: limit the depth that DecomposeGEPExpression goes the same way that getUnderlyingObject does it. This fixes the 'DecomposeGEPExpression and getUnderlyingObject disagree!' assertion on sqlite3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90038 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed81875b336e7ec36612a2ae49fbbdf7867f08d2 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 28 14:54:10 2009 +0000 enable code to handle un-phi-translatable cases more aggressively: if we don't have an address expression available in a predecessor, then model this as the value being clobbered at the end of the pred block instead of being modeled as a complete phi translation failure. This is important for PRE of loads because we want to see that the load is available in all but this predecessor, and complete phi translation failure results in not getting any information about predecessors. This doesn't do anything until I renable code insertion since PRE now sees that it is available in all but one predecessors, but can't insert the addressing in the predecessor that is missing it to eliminate the redundancy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90037 91177308-0d34-0410-b5e6-96231b3b80d8 commit de0b030de1873764c1f3571b75b5f75125ac35f8 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 22:50:07 2009 +0000 disable value insertion for now, I need to figure out how to inform GVN about the newly inserted values. This fixes PR5631. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90022 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5bef157088fc71eeb2a968272d270cb94169524 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 22:05:15 2009 +0000 Rework InsertPHITranslatedPointer to handle the recursive case, this fixes PR5630 and sets the stage for the next phase of goodness (testcase pending). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3037e0ade3201ff57bc4f486e7dfacc6b7459d47 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 20:25:30 2009 +0000 recursively phi translate bitcast operands too, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90016 91177308-0d34-0410-b5e6-96231b3b80d8 commit e386372015e237a1e98f843920cf8d6449e0b444 Author: Nick Lewycky <nicholas@mxc.ca> Date: Fri Nov 27 19:57:53 2009 +0000 Oops! Fix bug introduced in my recent cleanup change. Thanks to Tobias Grosser for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c40e546d78a7f0cb9e42588afcd8a664a816108 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 19:56:00 2009 +0000 I accidentally implemented this :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90014 91177308-0d34-0410-b5e6-96231b3b80d8 commit d91a9144369b73ed3e066695ad922abc76b5f7de Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 19:11:31 2009 +0000 add support for recursive phi translation and phi translation of add with immediate. This allows us to optimize this function: void test(int N, double* G) { long j; G[1] = 1; for (j = 1; j < N - 1; j++) G[j+1] = G[j] + G[j+1]; } to only do one load every iteration of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90013 91177308-0d34-0410-b5e6-96231b3b80d8 commit f198db016d5b8c1fb5f225f644efb5f5198c2471 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 18:08:30 2009 +0000 add two simple test cases we now optimize (to one load in the loop each) and one we don't (corresponding to the fixme I added yesterday). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90012 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96076f73dbddf62f2bed35458afc5fbd5628a5e2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 17:42:22 2009 +0000 factor some logic out of instcombine into a new SimplifyAddInst method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15aec3314b05e3d68f73fcc95b88fd4b9baad6b3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 17:12:30 2009 +0000 add a deadargelim note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d147914a609049f7cda4a5c5ee8ee8abbde4782 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 16:53:57 2009 +0000 This testcase is actually only partially redundant, and requires the FIXME I added yesterday to be implemented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c800c00ef9a6054218b11e5e1d65205b1297115 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 16:37:41 2009 +0000 fix PR5436 by making the 'simple' case of SRoA not promote out of range array indexes. The "complex" case of SRoA still handles them, and correctly. This fixes a weirdness where we'd correctly avoid transforming A[0][42] if the 42 was too large, but we'd only do it if it was one gep, not two separate ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90007 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ad93b0636e31b90c74c658673130d1b6a4ffd8e Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 16:31:59 2009 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90006 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1da9984b8f8bec04ec77e96ea4b9e1b358f9f4a2 Author: Duncan Sands <baldrick@free.fr> Date: Fri Nov 27 16:04:14 2009 +0000 While this test is testing a problem in the generic part of codegen, the problem only shows for msp430 and pic16 which is why it specifies them using -march. But it is wrong to put such tests in CodeGen/Generic, since not everyone builds these targets. Put a copy of the test in each of the target test directories. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90005 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87598b02a90f8027b59afb1433ae3e828e19c72a Author: Duncan Sands <baldrick@free.fr> Date: Fri Nov 27 13:38:03 2009 +0000 Vector types are no longer required to have a power-of-two length. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90004 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59b538afbdb86d62b1caa0f549401cb1583101fa Author: Duncan Sands <baldrick@free.fr> Date: Fri Nov 27 12:33:22 2009 +0000 These code generator limitations have been removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90003 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
|
|
5518b7d41f |
Merge LLVM upstream r90002
Squashed commit of the following: commit 9dbc06e034aaee26c33551a84ca04d9e114124de Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 08:40:14 2009 +0000 add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90002 91177308-0d34-0410-b5e6-96231b3b80d8 commit a722fabf41a89cb27561345640d46479af4d5baa Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 08:37:22 2009 +0000 reduce nesting, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90001 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e065c4ce2614aec3c57122de80b601fe8349033 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 08:32:52 2009 +0000 limit the recursion depth of GetLinearExpression. This fixes a crash analyzing consumer-lame, which had an "%X = add %X, 1" in unreachable code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 248818e2c5a71ebc4b393506a52f1e78293799f2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 08:25:10 2009 +0000 teach GVN's load PRE to insert computations of the address in predecessors where it is not available. It's unclear how to get this inserted computation into GVN's scalar availability sets, Owen, help? :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36063d789bb3ffd23e346b1d32f0aace6f8c1bce Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 06:42:42 2009 +0000 add some tests for memdep phi translation + PRE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89996 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8eeda9fd32714cf5a68346369d22343ce80e0dc Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 06:36:28 2009 +0000 this test is failing, and is expected to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89995 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05d7bd8ed8e65d45f92c44f9c1b3ea9a40fe9713 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 06:33:09 2009 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89994 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc06fec923d4e2a8f22e45b040615b8bc8473459 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 06:31:55 2009 +0000 rename test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89993 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6766b8a852dd9de4781976cf2df532abceba70a5 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 06:31:14 2009 +0000 Fix phi translation in load PRE to agree with the phi translation done by memdep, and reenable gep translation again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89992 91177308-0d34-0410-b5e6-96231b3b80d8 commit 295a27f1fb3e5ef271e1120bc8ebe18bdc5e1e70 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 05:53:01 2009 +0000 redisable this, my bootstrap worked because it wasn't an optimized build, whoops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89991 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2be6441fdb29f9e5d79e8319a8477c5df22ef780 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 05:19:56 2009 +0000 try again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8cc37e033917c220f8a163d124312f923631abdf Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 01:52:22 2009 +0000 this is causing buildbot failures, disable for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89985 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdfa6e8e96177aac789502e20f297081863a91aa Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 00:35:04 2009 +0000 this (and probably several others) are now done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97791a78617fc5c90d62de15894ac6a2f3e4651b Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 00:34:38 2009 +0000 teach phi translation of GEPs to simplify geps like 'gep x, 0'. This allows us to compile the example from PR5313 into: LBB1_2: ## %bb incl %ecx movb %al, (%rsi) movslq %ecx, %rax movb (%rdi,%rax), %al testb %al, %al jne LBB1_2 instead of: LBB1_2: ## %bb movslq %eax, %rcx incl %eax movb (%rdi,%rcx), %cl movb %cl, (%rsi) movslq %eax, %rcx cmpb $0, (%rdi,%rcx) jne LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89981 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5594a48160450e0a82a5dc59633edc9e862c46d2 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 00:29:05 2009 +0000 factor some instcombine simplifications for getelementptr out to a new SimplifyGEPInst method in InstructionSimplify.h. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89980 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e4b727624fd4aa595f6bec77bb83e73a189119a Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 27 00:07:37 2009 +0000 teach memdep to do trivial PHI translation of GEPs. More to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21b2340ceefa352a63357ae1b26f0a74303e4246 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 23:41:07 2009 +0000 Teach memdep to phi translate bitcasts. This allows us to compile the example in GCC PR16799 to: LBB1_2: ## %bb1 movl %eax, %eax subq %rax, %rdi movq %rdi, (%rcx) movl (%rdi), %eax testl %eax, %eax je LBB1_2 instead of: LBB1_2: ## %bb1 movl (%rdi), %ecx subq %rcx, %rdi movq %rdi, (%rax) cmpl $0, (%rdi) je LBB1_2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89978 91177308-0d34-0410-b5e6-96231b3b80d8 commit 514f5e5b9e56069ce04c8d2aa9fda599591010b2 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 23:32:59 2009 +0000 convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89977 91177308-0d34-0410-b5e6-96231b3b80d8 commit c957c54b4e8307fa2498d55e7f6cbb457ad2da73 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Nov 26 23:19:05 2009 +0000 Fix typo spotted by Gabor Greif. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89976 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66c2c4ebf1c0520ceabf1c3be9d26129ae4ffc97 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 23:18:49 2009 +0000 factor some code out into some helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89975 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9012af4c975acf28f6c88d23d33e5842d6a416ec Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Nov 26 22:54:26 2009 +0000 Clean up file, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89974 91177308-0d34-0410-b5e6-96231b3b80d8 commit b068994837ad30a810301e0bcf5cb249e3cc68e5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 22:48:23 2009 +0000 Add a hack for PR5601, a crash on obsolete syntax that we plan to remove in LLVM 3.0 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65e3484a37d5db9be72ee1f9b6df0b38174b9465 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 22:08:06 2009 +0000 fix crash on Transforms/InstCombine/intrinsics.ll introduced by r89970 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89972 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa787569976fb0cd260c333246f3ec08a202ee1b Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 22:04:42 2009 +0000 Fix PR5471 by removing an instcombine xform. Some pieces of the code generates store to undef and some generates store to null as the idiom for undefined behavior. Since simplifycfg zaps both, don't remove the undefined behavior in instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89971 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b45226d223a0527b42841a3579a3477b160339a Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 21:42:47 2009 +0000 implement a bunch of xforms for overflow intrinsics, based on a patch by Alastair Lynn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89970 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2204a60625dec63703edbdebe4cf5f90460db2e5 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Nov 26 21:38:41 2009 +0000 Rename new TailDuplicationPass to avoid name conflict with the old one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89968 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10211456369f3b23084bcbca76eb3ca54074105f Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 19:25:46 2009 +0000 @test9 is a testcase for r89958. Before 89958, we misanalyzed the first expression as P+4+4*i which we considered to possibly alias P+4*j. Now we correctly analyze the former one as P+1+4*i. @test10 is a sanity test that verfies that we know that P+4+4*i != P+4*i. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89960 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d00688def6b7c358a78b578d0dfd398238512bf Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 18:53:33 2009 +0000 Implement PR1143 (at -m64) by making basicaa look through extensions. We previously already handled it at -m32 because there were no i32->i64 extensions for addressing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89959 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4fb3a8361062e7f26cf2a3e63243f8e790cc3f0 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 18:35:46 2009 +0000 fix two transposed lines duncan caught and add an explanatory comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89958 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8836c5fe676c088a0f9f0600eeaf44e18924471 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 17:14:10 2009 +0000 this todo is resolved. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89957 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd824f5233a7a96e416ed36f05b59d997ed92926 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 17:12:50 2009 +0000 move DecomposeGEPExpression out into ValueTracking.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89956 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1692755c9b104b0ac1209c89dfb549842adb15e8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 17:00:01 2009 +0000 teach GetLinearExpression to be a bit more aggressive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d6d362e41018fa2a787a3fe04d1596bfd8610e7 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 16:52:32 2009 +0000 resolve a fixme. I haven't figured out how to write a testcase to exercise this though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89954 91177308-0d34-0410-b5e6-96231b3b80d8 commit c29d0d5eb1077c274b2c7186c0096201c8bac87c Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 16:42:00 2009 +0000 update status of this. basicaa is much improved now, only missing the one form (in this testcase). Dan, do you consider this example to be important? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89953 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd7537176664464b5ef0a4aa121f0c7bedfac16a Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 16:26:43 2009 +0000 Teach basicaa that x|c == x+c when the c bits of x are clear. This allows us to compile the example in readme.txt into: LBB1_1: ## %bb movl 4(%rdx,%rax), %ecx movl %ecx, %esi imull (%rdx,%rax), %esi imull %esi, %ecx movl %esi, 8(%rdx,%rax) imull %ecx, %esi movl %ecx, 12(%rdx,%rax) movl %esi, 16(%rdx,%rax) imull %ecx, %esi movl %esi, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 instead of: LBB1_1: movl (%rdx,%rax), %ecx imull 4(%rdx,%rax), %ecx movl %ecx, 8(%rdx,%rax) imull 4(%rdx,%rax), %ecx movl %ecx, 12(%rdx,%rax) imull 8(%rdx,%rax), %ecx movl %ecx, 16(%rdx,%rax) imull 12(%rdx,%rax), %ecx movl %ecx, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 GCC (4.2) doesn't seem to be able to eliminate the loads in this testcase either, it generates: L2: movl (%rdx), %eax imull 4(%rdx), %eax movl %eax, 8(%rdx) imull 4(%rdx), %eax movl %eax, 12(%rdx) imull 8(%rdx), %eax movl %eax, 16(%rdx) imull 12(%rdx), %eax movl %eax, 20(%rdx) addl $4, %ecx addq $16, %rdx cmpl $1002, %ecx jne L2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89952 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f2c591e34adfbedadd2276f16f29203b75bc305 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 16:18:10 2009 +0000 teach basicaa that A[i] != A[i+1]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89951 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3124e22ade9d96af8e2cb3b1708ae9da9bee9636 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 16:08:41 2009 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89950 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8200930b6b24a8625e2a49b84e6df1e293c107ca Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 02:17:34 2009 +0000 Change the other half of aliasGEP (which handles GEP differencing) to use DecomposeGEPExpression. This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions method, fixes a miscompilation (@test3) and makes the code more aggressive. In particular, we now handle the @test4 case, which is reduced from the SmallPtrSet constructor. Missing this caused us to emit a variable length memset instead of a fixed size one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89922 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01526336b664739e81f2e14d8a6792dee2e2f619 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 02:16:28 2009 +0000 add a new random feature test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89921 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c689d61206a26a2ec7e5f8ba5ca4d8f67f411e8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 02:14:59 2009 +0000 Generalize DecomposeGEPExpression to exactly handle what Value::getUnderlyingObject does (when TD is around). This allows us to avoid calling DecomposeGEPExpression unless the ultimate alias check we care about passes, speedup up BasicAA a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89920 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8334e9b223221e05f9c12eb3f1122032f1edc7c2 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 02:13:03 2009 +0000 Implement a new DecomposeGEPExpression method, which decomposes a GEP into a list of scaled offsets. Use this to eliminate some previous ad-hoc code which was subtly broken (it assumed all Constant*'s were non-zero, but strange constant express could be zero). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89915 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d8f955b656d9743fa32c087848ee9c26338e6c2 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 02:11:08 2009 +0000 Use GEPOperator more pervasively to simplify code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41ec62554fd2b914d230c270963c3da30047be28 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 01:51:18 2009 +0000 update some notes slightly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89913 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69272603d447a590a78832283bc8c67b1793acaf Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 26 01:50:12 2009 +0000 remove some redundant braces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89912 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72524f2dc0f78d922c585c29e1d0947822e0db25 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 26 00:35:01 2009 +0000 Test for 89905. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b563ac33aadc7fa11ddc7e28b7e2e067436fa00 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 26 00:32:36 2009 +0000 When all defs of a vr are implicit_def, delete all of the defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89905 91177308-0d34-0410-b5e6-96231b3b80d8 commit 810ced7daebe78a8d84b94fac07e320a02cecb71 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Nov 26 00:32:21 2009 +0000 Split tail duplication into a separate pass. This is needed to avoid running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89904 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97658f0fa49d6a3d8fd5f14010589e53474d2ba4 Author: Dale Johannesen <dalej@apple.com> Date: Wed Nov 25 23:50:09 2009 +0000 Test for llvm-gcc checkin 89898. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89899 91177308-0d34-0410-b5e6-96231b3b80d8 commit cacef07c20f9dbeb8568426a4e84d8e45c14fa21 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 25 23:28:01 2009 +0000 Update to reflect recent debugging information encoding changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89896 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5214e0d77ee3b90decf455cea0509ac32286e1a0 Author: Viktor Kutuzov <vkutuzov@accesssoftek.com> Date: Wed Nov 25 22:44:18 2009 +0000 Rollback changes r89516: Added two SubtargetFeatures::AddFeatures methods, which accept a comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89893 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae719525ee29c8611887e5fe0153b81d1f0b56b7 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 25 21:13:39 2009 +0000 ProcessImplicitDefs should watch out for invalidated iterator and extra implicit operands on copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89880 91177308-0d34-0410-b5e6-96231b3b80d8 commit aea35a5ebae86ac620ec0ebfe5ee152b46c343f2 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 25 19:57:14 2009 +0000 Tail duplicate indirect branches for PowerPC, too. With the testcase for pr3120, the "threaded interpreter" runtime decreases from 1788 to 1413 with this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89877 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62b818848c2415d32c82957322cba81948b7f409 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Nov 25 18:26:09 2009 +0000 Avoid some possibly unsafe uses of StringRef::data(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89873 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f75bbe16505f364edb9e7bc96ed6e44694e8723 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 25 17:36:49 2009 +0000 Use StringRef (again) in DebugInfo interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89866 91177308-0d34-0410-b5e6-96231b3b80d8 commit c46ed7f495edb1c8cf3bbf7603c78d06835f0d7d Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 25 17:27:53 2009 +0000 Based on the testcase for pr3120, running on my MacPro with Xeon processors, it is definitely profitable to tail duplicate indirect branches for x86. This is likely to be true to various degrees for all modern x86 processors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89865 91177308-0d34-0410-b5e6-96231b3b80d8 commit eba44ceacbbaa1cdbeb45ac660b50c024a3d1b9c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Nov 25 12:17:58 2009 +0000 Support PIC loading of constant pool entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89863 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ee5871e40d328473ec5b7733968eee6e80dc528 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Wed Nov 25 12:00:34 2009 +0000 Adjust comments to new semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89862 91177308-0d34-0410-b5e6-96231b3b80d8 commit caa136e3c783ed03e83cb951e799614209c53b55 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 25 06:53:08 2009 +0000 Sketch structure for X86 disassembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89850 91177308-0d34-0410-b5e6-96231b3b80d8 commit df5801320dfcdbb02d66d110e91e59590e39ee5d Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Wed Nov 25 06:32:19 2009 +0000 API change Path::isSpecialFile to Path::isRegularFile, improve semantics in regards to comments from 89765 post review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89848 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58f610eff4cf913a5e6026283fe899bd6c6c1f33 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Nov 25 06:04:18 2009 +0000 Perform explicit instantiations in the proper namespace, since Clang diagnoses this ill-formity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89846 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4a14e453252f061df2bf35dbe5d216161b378cb Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Wed Nov 25 05:38:41 2009 +0000 Reverting patch in revision 89758, initial attempt at fixing PR5373 has proven to be bogus. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89844 91177308-0d34-0410-b5e6-96231b3b80d8 commit d262856c12f952f5c258f8b33c09009e09f0153f Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 25 04:46:58 2009 +0000 Add the rest of the build system logic for optional target disassemblers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89841 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e18f26816cf75f2f3173ed51f44b708762414a4 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 25 04:37:28 2009 +0000 Regenerate configure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89840 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b0b0e476d4b9d5e4ffc502962b6057454c1f99d Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 25 04:30:13 2009 +0000 Add CMake and configure logic to create llvm/Config/Disassemblers.defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89839 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d494001c9402f321ee3b539408c82e94771870f Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 25 02:13:23 2009 +0000 Sketch TableGen disassembler emitter, based on patch by Sean Callanan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89833 91177308-0d34-0410-b5e6-96231b3b80d8 commit 421b70020c09398a185cec1bebbcc524ea5fb167 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Nov 25 01:05:25 2009 +0000 Use endianess dependent offsets for load/store of doubles when using two swc/lwc instead of sdc/ldc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65ee191f8d37af9b2c9c44487804b7e71cd7fa94 Author: Dale Johannesen <dalej@apple.com> Date: Wed Nov 25 00:58:21 2009 +0000 Fix compiler warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 649dcac5e84130548fd46c239c12c3f531d64309 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Nov 25 00:47:43 2009 +0000 Only include in the callee saved regs the sub registers to avoid unnecessary save/restore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89823 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15b39c364d7acaab815964e8bb37f4f1883278ee Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Nov 25 00:36:00 2009 +0000 Add proper emission of load/store double to stack slots for mips1 targets! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89821 91177308-0d34-0410-b5e6-96231b3b80d8 commit acdb878fcc4d19f3158b205f0acf2ff1660fc1d5 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 25 00:31:13 2009 +0000 Revert r89803. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89819 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68722a84a011e2e2a8be3b3c6a09a2bbb477d390 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Nov 24 23:35:49 2009 +0000 Refactor target hook for tail duplication as requested by Chris. Make tail duplication of indirect branches much more aggressive (for targets that indicate that it is profitable), based on further experience with this transformation. I compiled 3 large applications with and without this more aggressive tail duplication and measured minimal changes in code size. ("size" on Darwin seems to round the text size up to the nearest page boundary, so I can only say that any code size increase was less than one 4k page.) Radar 7421267. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89814 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9902d09e04bc3d2c1389e4fdabe5efbf14efc9ec Author: Dale Johannesen <dalej@apple.com> Date: Tue Nov 24 22:59:02 2009 +0000 Do not store R31 into the caller's link area on PPC. This violates the ABI (that area is "reserved"), and while it is safe if all code is generated with current compilers, there is some very old code around that uses that slot for something else, and breaks if it is stored into. Adjust testcases looking for current behavior. I've verified that the stack frame size is right in all testcases, whether it changed or not. 7311323. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89811 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0eba4bdd3c9fa5a2f5a82b907439dafe0411358 Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 24 21:38:54 2009 +0000 Enable debug info for ppc-darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89803 91177308-0d34-0410-b5e6-96231b3b80d8 commit c10337d20080fca89c19acd69ae11f4a28e61cc8 Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 24 19:42:17 2009 +0000 Use StringRef instead of std::string in DIEString. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89793 91177308-0d34-0410-b5e6-96231b3b80d8 commit 815c35cdb070cb876d01f3837f56b4d73b87f036 Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 24 19:37:07 2009 +0000 Remove DebugLabelFolder pass. It is not used by dwarf writer anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f2bdd58f2cee41a5de62fe5515642d0371fecf8 Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 24 19:18:41 2009 +0000 Swith to pubtypes section before emitting pub types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89787 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bb856794be3bbdc21e72ea90f8226efce096ebe Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 24 19:03:33 2009 +0000 Remove bogus error handling code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89786 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6901c962de266a478d056a8c5be5c8901ca0896e Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Tue Nov 24 16:29:23 2009 +0000 Fix comments as pre-post review for rev.89765. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89770 91177308-0d34-0410-b5e6-96231b3b80d8 commit f21c0e1a6da8926d0cadc61320c0931485f765ee Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Tue Nov 24 15:19:10 2009 +0000 Provide Path::isSpecialFile interface for PR5568. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89765 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4016f5de54742c18653294b490c28ae55688d15 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Tue Nov 24 11:51:52 2009 +0000 Fix for PR5373, Credit to Jakub Staszak. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89758 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b2b23a3569d8cefb165601454cc1dede80d30d6 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 24 08:06:15 2009 +0000 Enable predication of NEON instructions in Thumb2 mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89748 91177308-0d34-0410-b5e6-96231b3b80d8 commit de17b23e8ab96fee43298f52d643383476994e96 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Nov 24 02:11:14 2009 +0000 Oops. Re-disable JITTest.NoStubs on ARM and PPC since they still use stubs to make far calls work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89733 91177308-0d34-0410-b5e6-96231b3b80d8 commit 003f9445a475809f93a5141770aa871eb1c548b2 Author: Dan Gohman <gohman@apple.com> Date: Tue Nov 24 01:48:15 2009 +0000 Delete some dead and non-obvious code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89729 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec13b4fffb1742d8acd6e07a388b1e54dfd7c1c9 Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 24 01:14:22 2009 +0000 Emit pubtypes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89725 91177308-0d34-0410-b5e6-96231b3b80d8 commit b21c0db31a04aacc19787dd6767983e91f007114 Author: Dale Johannesen <dalej@apple.com> Date: Tue Nov 24 01:09:07 2009 +0000 Make capitalization of names starting "is" more consistent. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89724 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f433ab362f406dc8336ae2445bcfebbd133a8a1 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 24 01:05:23 2009 +0000 Data type suffix must come after predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 115a53c6df56d2befe8c19e602e31ffc2515b93a Author: David Goodwin <david_goodwin@apple.com> Date: Tue Nov 24 00:59:08 2009 +0000 <rdar://problem/6721894>. Allow multiple registers to be renamed together (super and sub) if necessary to break an anti-dependence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89722 91177308-0d34-0410-b5e6-96231b3b80d8 commit a414f36ad4dca3554e1313a4715b3856ac4066b9 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Nov 24 00:44:37 2009 +0000 Materialize global addresses via movt/movw pair, this is always better than doing the same via constpool: 1. Load from constpool costs 3 cycles on A9, movt/movw pair - just 2. 2. Load from constpool might stall up to 300 cycles due to cache miss. 3. Movt/movw does not use load/store unit. 4. Less constpool entries => better compiler performance. This is only enabled on ELF systems, since darwin does not have needed relocations (yet). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89720 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71465ac298b594109d9f6e9c8b4fc97051840a8b Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 24 00:20:27 2009 +0000 80 column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89718 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8f9acf65f39634e24604568f1cab3cca14ff18b Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Nov 23 23:35:19 2009 +0000 * Move stub allocation inside the JITEmitter, instead of exposing a way for each TargetJITInfo subclass to allocate its own stubs. This means stubs aren't as exactly-sized anymore, but it lets us get rid of TargetJITInfo::emitFunctionStubAtAddr(), which lets ARM and PPC support the eager JIT, fixing http://llvm.org/PR4816. * Rename the JITEmitter's stub creation functions to describe the kind of stub they create. So far, all of them create lazy-compilation stubs, but they sometimes get used when far-call stubs are needed. Fixing http://llvm.org/PR5201 will involve fixing this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89715 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf095c3301eabc23c9be57bd86209f98afc4fd13 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 23 23:25:54 2009 +0000 enable iv-users simplification by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89713 91177308-0d34-0410-b5e6-96231b3b80d8 commit c61b56c8b54d3abdf197464c00ea9b3613aa5889 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 23:20:51 2009 +0000 Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used. Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89711 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89acd2fc3e3c28cedeb8f5b5d5d378425b6d2f49 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Nov 23 22:49:00 2009 +0000 Allow more than one stub to be being generated at the same time. It's probably better in the long run to replace the indirect-GlobalVariable system. That'll be done after a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89708 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09c61b35e2c8a6cf9bcdf42f8d07a8ac26238eac Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 23 21:57:23 2009 +0000 Massive refactoring of NEON instructions. Separate opcode from data size specifier suffix, move \t up stream to instruction format, and fix more 80 column violations. This fixes the NEON asm printing so the "predicate" field is printed between the opcode and the data type suffix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d34f97d8b78e04cad93ab4fb27f19963c0b2f70 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 21:30:55 2009 +0000 Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89702 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a271d8ee93e2de1277abaa40fe3614c458905be Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 21:29:08 2009 +0000 Print the debug info line and column in MachineInstr::print even when there's no filename. This situation is apparently fairly common right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d450b25083d0f488b2e797e79eb92172eb2c48d Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 23 21:08:25 2009 +0000 move fconst[sd] to UAL. <rdar://7414913> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89700 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ee642f0b2272dab1086aa3421d1958e63a066f6 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Nov 23 21:00:43 2009 +0000 Partially revert r84730 by removing N2VDup from ARMInstrFormats.td and modifying VDUPLND and VDUPLNQ to derive from N2V instead of N2VDup. VDUPLND and VDUPLNQ now expect op19_18 and op17_16 as the first two args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89699 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b7663763bdc058d678f7d459dfa49cc97d6f4c6 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 23 20:39:53 2009 +0000 update test for 89694 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89695 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66e70cdbb4097df5f9f9341663441fc431015307 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 23 20:35:53 2009 +0000 fold immediate of a + Const into the user as a subtract if it can fit as a negated two-part immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c6fa9a41918f91b9ea6765cfc0eb566e68b2de0 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Nov 23 20:09:13 2009 +0000 Revert r84572 by removing N3VImm from ARMInstrFormats.td now that we can specify {?,?,?,?} as op11_8 for VEXTd and VEXTq. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89693 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3201132cadd122f71500f6cbc88130cfa912af3 Author: Devang Patel <dpatel@apple.com> Date: Mon Nov 23 19:11:20 2009 +0000 Add CreateLocation varinat that accepts MDNode (with a default value). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89689 91177308-0d34-0410-b5e6-96231b3b80d8 commit b125c6e04f2a851b4ed6a361a705816d0374ce4b Author: Devang Patel <dpatel@apple.com> Date: Mon Nov 23 18:43:37 2009 +0000 Revert r89487. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89686 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46f784e7a92f51878af9c6c0cdb8312b2d188303 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Nov 23 18:16:16 2009 +0000 Partially revert r89377 by removing NLdStLN class definition from ARMInstrFormats.td and fixing VLD[234]LN* and VST[234]LN* to derive from NLdSt instead of NLdStLN. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d3b3e40e16069bbc07c2acb20594cfffe406572 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 18:12:11 2009 +0000 Move CopyCatchInfo into FunctionLoweringInfo.cpp too, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89683 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ec2051989d074e3ffef5fe74fed228d61b5f428 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 18:04:58 2009 +0000 Rename SelectionDAGLowering to SelectionDAGBuilder, and rename SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89681 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c1d2c1183243d983ee60d2fa0e30c1aef4981f4 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Nov 23 17:48:17 2009 +0000 Make it clear that the index bit(s) of Vector Get Lane and Vector Set Lane should be left unspecified now that Bob Wilson has fixed pr5470. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89676 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78105759c1482cdea69c13d7bedcd1867c40efad Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 17:46:23 2009 +0000 Move RegsForValue to an anonymous namespace, since it is only used in this file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89675 91177308-0d34-0410-b5e6-96231b3b80d8 commit c073abf312a796da1dd5c567aa92affe77f62e1b Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 17:42:46 2009 +0000 Move some more code out of SelectionDAGBuild.cpp and into FunctionLoweringInfo.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89674 91177308-0d34-0410-b5e6-96231b3b80d8 commit dfaea1cb45cae9e1ca8dd6b3398ab39dbab074d3 Author: David Goodwin <david_goodwin@apple.com> Date: Mon Nov 23 17:34:12 2009 +0000 Minor itinerary fixes for FP instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89672 91177308-0d34-0410-b5e6-96231b3b80d8 commit ead611c1b544ed84281bfb255c2677ad58d63494 Author: Ted Kremenek <kremenek@apple.com> Date: Mon Nov 23 17:26:04 2009 +0000 Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89671 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39a0cdff39ccce6633deb6ca4427a96796fef1b3 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 17:16:22 2009 +0000 Move the FunctionLoweringInfo class and some related utility functions out of SelectionDAGBuild.h/cpp into its own files, to help separate general lowering logic from SelectionDAG-specific lowering logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89667 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4abfe40a9e41146760e8fdc2270abf60540b1e90 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 23 17:07:35 2009 +0000 fix comment, thanks all :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89666 91177308-0d34-0410-b5e6-96231b3b80d8 commit 913c8adf87bf3584d4c9d2fd7ad8beb19e3fcf11 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 23 16:46:41 2009 +0000 use the new isNoAlias method to simplify some code, only do an escaping check if we have a non-constant pointer. Constant pointers can't be local. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89665 91177308-0d34-0410-b5e6-96231b3b80d8 commit 042c6856f5af58f684d6cf7b692b87be1bf36f0a Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 23 16:45:27 2009 +0000 whitespace cleanup, tidying git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ed47b7960f240169bcb847c7cde0b52096a1c2c Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 23 16:44:43 2009 +0000 speed up BasicAA a bit by implementing a long-standing TODO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03c010bff7008ca11acd4576c058b690d8bc6a03 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 23 16:38:54 2009 +0000 add a helper git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68761bbb60a826ebd53c006ee75d90dea55fea88 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 16:24:18 2009 +0000 Move FunctionPassManagerImpl's dumpArguments and dumpPasses calls out of its run function and into its doInitialization method, so that it does the dump once instead of once per function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89660 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f77c3e8551139a6bf4b6460794a9ef6b312ef52 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 16:22:21 2009 +0000 Make ConstantFoldConstantExpression recursively visit the entire ConstantExpr, not just the top-level operator. This allows it to fold many more constants. Also, make GlobalOpt call ConstantFoldConstantExpression on GlobalVariable initializers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89659 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d97a63506213bf48ad9e942b9f689fb78f5eeb0 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 23 16:13:39 2009 +0000 Fix a use of an invalidated iterator in the case where there are multiple adjacent uses of a dead basic block from the same user. This fixes PR5596. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89658 91177308-0d34-0410-b5e6-96231b3b80d8 commit d301b553c36bae9bdd8d41b768f093760cb3f7e9 Author: Duncan Sands <baldrick@free.fr> Date: Mon Nov 23 10:49:03 2009 +0000 I forgot to update the prototype for LLVMBuildIntCast when correcting the body to not pass the name for the isSigned parameter. However it seems that changing prototypes is a big-no-no, so here I revert the previous change and pass "true" for isSigned, meaning this always does a signed cast, which was the previous behaviour assuming the name was not NULL! Some other C function needs to be introduced for the general case of signed or unsigned casts. This hopefully unbreaks the ocaml binding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89648 91177308-0d34-0410-b5e6-96231b3b80d8 commit 951cb61e2fc34e1f6c2324b9613985191e87fe49 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 23 04:52:00 2009 +0000 Start catching LLVMContext misuse in the verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89646 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1df6ea033855b9c8ff66bdfc5f479fe8d2afb272 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 23 03:50:44 2009 +0000 Pull LLVMContext out of PromoteMemToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89645 91177308-0d34-0410-b5e6-96231b3b80d8 commit c11ad4295ebbb1add9f5ab4c406a2c73851341a4 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 23 03:34:29 2009 +0000 Remove LLVMContext and its include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e8bc9ccd4e6d8c9a7f6e4f4ae1a664abcb076a5 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 23 03:29:18 2009 +0000 Remove unused LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89642 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1d0c185a48ffd53cbd5b671008738447d878bc9 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 23 03:26:09 2009 +0000 Remove dead LLVMContext argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89641 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef61f69747de3b32a7edb82ea753091baf605683 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Nov 23 03:17:33 2009 +0000 Reapply r88830 with a bugfix: this transform only applies to icmp eq/ne. This fixes part of PR5438. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89639 91177308-0d34-0410-b5e6-96231b3b80d8 commit b01c8c362988e5a59116d31764300a3abc8982d4 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Nov 23 00:40:39 2009 +0000 CMake: Updated library dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 760e1e5f52d218629214db44d60494f612918086 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Nov 23 00:32:42 2009 +0000 CMake: Do not try to install a target before it is defined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89636 91177308-0d34-0410-b5e6-96231b3b80d8 commit d59ab13c1166497b768f8c05522f4d7abf117deb Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Nov 23 00:21:43 2009 +0000 CMake: generate targets for tools and examples even when LLVM_BUILD_TOOLS or LLVM_BUILD_EXAMPLES are OFF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89635 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca55327ca9c480c28037c6a1a19b72e224ca5604 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 22 22:59:26 2009 +0000 FileCheck, PR5239: Try to find the intended match on failures, but looking for a good nearby fuzzy match. Frequently the input is nearly correct, and just showing the user the a nearby sensible match is enough to diagnose the problem. - The "fuzzyness" is pretty simple and arbitrary, but worked on my three test cases. If you encounter problems, or places you think FileCheck should have guessed but didn't, please add test cases to PR5239. For example, previously FileCheck would report this: -- t.cpp:21:55: error: expected string not found in input // CHECK: define void @_Z2f25f2_s1([[i64_i64_ty]] %a0) ^ <stdin>:19:30: note: scanning from here define void @_Z2f15f1_s1(%1) nounwind { ^ <stdin>:19:30: note: with variable "i64_i64_ty" equal to "%0" -- and now it also reports this: -- <stdin>:27:1: note: possible intended match here define void @_Z2f25f2_s1(%0) nounwind { ^ -- which makes it clear that the CHECK just has an extra ' %a0' in it, without having to check the input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89631 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2e397d1b44bc0eee6ee27bc578e1f54f9bfb599 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 22 22:08:06 2009 +0000 FileCheck: When a string using variable references fails to match, print additional information about the current definitions of the variables used in the string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89628 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd5bbc12814ad7b8c6273e2f0f321e160ee98894 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 22 22:08:00 2009 +0000 SourceMgr: Add ShowLine argument to PrintMessage, to allow suppressing the source line output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 716aea013d24f2b814ced60e799a636f4037ce5f Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 22 22:07:50 2009 +0000 Allow '_' in FileCheck variable names, it is nice to have at least one separate character. - Chris, OK? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 587d488cbfbfdba6a5e9cebff4f6b614856fde58 Author: Jim Grosbach <grosbach@apple.com> Date: Sun Nov 22 20:14:00 2009 +0000 Add getFrameIndexReference() to TargetRegisterInfo, which allows targets to tell debug info which base register to use to reference a frame index on a per-index basis. This is useful, for example, in the presence of dynamic stack realignment when local variables are indexed via the stack pointer and stack-based arguments via the frame pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89620 91177308-0d34-0410-b5e6-96231b3b80d8 commit afc3436c0a1089f70f879e539a464a6ac281ba21 Author: Jim Grosbach <grosbach@apple.com> Date: Sun Nov 22 20:05:32 2009 +0000 Move default FrameReg val to getFrameIndexReference(). Otherwise, debug info can get bogus values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89618 91177308-0d34-0410-b5e6-96231b3b80d8 commit b23f242b6ee5ec88e39ef0d58f7165eed9df7a8c Author: Jim Grosbach <grosbach@apple.com> Date: Sun Nov 22 19:20:36 2009 +0000 80-column cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89612 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed9ebc2d93025f3fed6be267258d1f2abbd7f892 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Nov 22 18:28:04 2009 +0000 Teach MachineBasicBlock::updateTerminator() to handle a failing TII->ReverseBranchCondition(Cond) call. This fixes the MallocBench/cfrac test case regression. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89608 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecc701d1f6585ff576317af22c2f9363865177bd Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 22 18:27:51 2009 +0000 Update doc re: LLVM_BUILD_EXAMPLES. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89607 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1790623d43a92b20bff15ed6d9a4edd44c44ff32 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 22 18:27:43 2009 +0000 Use ExtractElementInst::Create instead of new; patch by Artur Pietrek! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89606 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1017a6d8e59599dad4c0d4f8d34c0fcf3e5b1cd2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 22 16:16:48 2009 +0000 add fixme for dubious code. Duncan, what do you think? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89602 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a639bf8ac9a22b5ed969ac3530cb931ffaf78cc Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 22 16:15:59 2009 +0000 remove a silly condition that doesn't make a lot of sense anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fda168358ac665f2756201cfd7598b6367d7f2e Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 22 16:05:05 2009 +0000 reduce indentation, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89600 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b803758388cc969c52e12e968f22f00eecdc1fb Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 22 16:01:44 2009 +0000 Remove the AliasAnalysis::getMustAliases method, which is dead. The hasNoModRefInfoForCalls isn't worth it as a filter because basicaa provides m/r info and everything chains to it, so remove it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89599 91177308-0d34-0410-b5e6-96231b3b80d8 commit 194cfb2c761c1c7c943527d5e843a070d580fa94 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Sun Nov 22 15:35:28 2009 +0000 Miss two, PR5307. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89596 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5a7ee56626c6c3b0fa8b4393e3c4cf214a5ea50 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Sun Nov 22 15:18:27 2009 +0000 Convert Thumb2 tests to FileCheck for PR5307. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89595 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6ddf7961a5dc35af0202a9877a5c03dfc13509f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Nov 22 15:15:52 2009 +0000 Turns out stuff gets allocated to different registers depending on the subtarget. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89594 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16f1ecc2ab9b1bda31da4ec0900b1d80bf075dc8 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Sun Nov 22 14:23:33 2009 +0000 Convert ARM tests to FileCheck for PR5307. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89593 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bbb84f365f9104e8091e45ac2e11513ef0c09f8 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Nov 22 13:16:36 2009 +0000 Convert test to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89589 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79b7b8a06d35cf5ea601dbd7d2c2ddd6a832bf70 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Sun Nov 22 13:09:48 2009 +0000 Forgot to alter RUN line when converting to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89588 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba92a65cdc5c316f94576e321b19ebf7902420d8 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Sun Nov 22 12:50:05 2009 +0000 Fix for bad FileCheck converts in revision 89584. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89586 91177308-0d34-0410-b5e6-96231b3b80d8 commit bebe181781a0f6464328ab66838e92814345c318 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Sun Nov 22 11:45:44 2009 +0000 Convert a few tests to FileCheck for PR5307. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89584 91177308-0d34-0410-b5e6-96231b3b80d8 commit 537fe619ae0e817ea0c88a00e034f0228be147c2 Author: Bob Wilson <bob.wilson@apple.com> Date: Sun Nov 22 04:24:42 2009 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e9a4bc4dc27a5bb203c14e98ce78df5a8ccd63b Author: Bob Wilson <bob.wilson@apple.com> Date: Sun Nov 22 03:58:57 2009 +0000 Fix pr5470. Tablegen handles template arguments by temporarily setting their values, resolving references to them, and then removing the definitions. If a template argument is set to an undefined value, we need to resolve references to that argument to an explicit undefined value. The current code leaves the reference to the template argument as it is, which causes an assertion failure later when the definition of the template argument is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89581 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00b4eef951eedc4b234dd466069a54430b4d1bb8 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 22 02:38:11 2009 +0000 Remove dead code. While there, also turn a few 'T* ' into 'T *' to match the rest of the file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89577 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5902f6d18693f3a787615a98e7d3e36b8888ce62 Author: Jim Grosbach <grosbach@apple.com> Date: Sun Nov 22 02:32:29 2009 +0000 Generate more correct debug info for frame indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89576 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3aa832bd08262d07a332f8f69359f5d6f8368a08 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 22 01:14:08 2009 +0000 Minor optimization: when doing eq/ne comparions and RHS is a constant - swap operands, this will allow us to fold imm into comparison. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89574 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef4818da6ffd4f013694072800db48b72b7cf9d4 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 22 01:13:54 2009 +0000 Drop unsupported imm operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e56869809bfe5bcfaa3e6bcf7200a228d239007 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 22 01:13:39 2009 +0000 Use 2-byte alignment for functions. 4 bytes are clear overkill here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16cbc57dbb8113d45d2b600c549bb43655a1d9d8 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 22 01:12:49 2009 +0000 Use semicolon as assembler comment string git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89571 91177308-0d34-0410-b5e6-96231b3b80d8 commit eee8617c0f283222d9f2f0d9b24c9ff0b2eb7d9e Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 21 23:34:09 2009 +0000 Revert 89562. We're being sneakier than I was giving us credit for, and this isn't necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 652b7433b68fdc0371902b0211be5030d56056be Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 21 23:12:12 2009 +0000 remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89567 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38a5cd273053ce399fc980317f25fc5b33e4a73a Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Nov 21 22:44:20 2009 +0000 Fix some spelling in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89566 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d18aab483a2b6bb199a9476c1bf4ae2c14a5768 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Nov 21 22:39:27 2009 +0000 Avoid a redundant assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3af6d702411a66e6d02ebfc566083fb78336d5e3 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 21 21:40:08 2009 +0000 Darwin requires a frame pointer for all non-leaf functions to support correct backtraces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67abceccf77faa1bbaab2e22c4d7e173927ee12e Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 21 06:21:52 2009 +0000 Add predicate operand to NEON instructions. Fix lots (but not all) 80 col violations in ARMInstrNEON.td. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89542 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76fe98917d56fbbc1087c2275d3ab3a8ee4abd2b Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 21 06:20:26 2009 +0000 Allow target to disable if-converting predicable instructions. e.g. NEON instructions under ARM mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89541 91177308-0d34-0410-b5e6-96231b3b80d8 commit c50078e7edda4caf0443225ffde587ae36e1a5ad Author: Devang Patel <dpatel@apple.com> Date: Sat Nov 21 02:48:08 2009 +0000 Cosmetic changes, which were long overdue, in DwarfDebug.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89537 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1432b62b04c33ad89f4249ef73f2e73740db18c7 Author: Devang Patel <dpatel@apple.com> Date: Sat Nov 21 02:46:55 2009 +0000 We are not using DBG_STOPPOINT anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89536 91177308-0d34-0410-b5e6-96231b3b80d8 commit c591f900f958babf2e8043084a60f91d4b043836 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 21 02:32:35 2009 +0000 Maintain stylistic consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89535 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8aaa272391a7f5aae92ecf3f64bd94365a57f7a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Nov 21 02:05:31 2009 +0000 Don't leave temporary files in the test directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89531 91177308-0d34-0410-b5e6-96231b3b80d8 commit e79ff41f7b22dc50740c3c87d0e6801e5fae5924 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Nov 21 02:05:21 2009 +0000 Be more clever about calculating live variables through new basic blocks. When splitting a critical edge, the registers live through the edge are: - Used in a PHI instruction, or - Live out from the predecessor, and - Live in to the successor. This allows the coalescer to eliminate even more phi joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 543b8df69c6e1c707e4f16a28665befd53b78da7 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 21 02:01:24 2009 +0000 Allow SmallString to implicitly convert to StringRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4473796bf84fc8f009c250ba74f18c5f54712a48 Author: Eric Christopher <echristo@apple.com> Date: Sat Nov 21 01:01:30 2009 +0000 Add more optimizations for object size checking, enable handling of object size intrinsic and verify return type is correct. Collect various code in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89523 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76c1a107d9e2fb6eec90a3fffc8a39c11a4b0317 Author: Devang Patel <dpatel@apple.com> Date: Sat Nov 21 00:54:03 2009 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89522 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa1ce6a3b1b8d9f6ee587449741239c59f2b107e Author: Dale Johannesen <dalej@apple.com> Date: Sat Nov 21 00:53:23 2009 +0000 When generating a vector the really slow way, via loads and stores, handle the case where the element size is not a valid target type correctly (PPC). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1233f91cb593d825c7efebcb8b3571a502976f23 Author: Devang Patel <dpatel@apple.com> Date: Sat Nov 21 00:31:03 2009 +0000 There is no need to use FoldingSet to unique DIEs. DIEs are created from MDNode, which are already uniqued. And DwarfDebug already uses ValueMaps to find and use existing DIE for a given MDNode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1718fe60e36c17d72fa7b96dcb381fe8586cab0e Author: Viktor Kutuzov <vkutuzov@accesssoftek.com> Date: Sat Nov 21 00:00:02 2009 +0000 Added two SubtargetFeatures::AddFeatures methods, which accept a comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2737ee18866f4e52cc1cd1411d2273d76794374a Author: David Goodwin <david_goodwin@apple.com> Date: Fri Nov 20 23:33:54 2009 +0000 Restructure code to allow renaming of multiple-register groups for anti-dep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89511 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1004f9502ae653e8a4752e606c9136060c218068 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 20 23:31:34 2009 +0000 Enable hoisting load from constant memories. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89510 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffb50c1d0c2d0c999082f02c746a3e6ae3030fcd Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 23:30:32 2009 +0000 Fix a thinko that caused spurious @GOTOFFs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89509 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b9d2a5f2053a53da30f4bc42f18df77646ca3a9 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 23:21:00 2009 +0000 Update for new getBlockAddress signature. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 885793baaed110c848ccfdfb460bbc91774d8981 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 23:18:13 2009 +0000 Target-independent support for TargetFlags on BlockAddress operands, and support for blockaddresses in x86-32 PIC mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89506 91177308-0d34-0410-b5e6-96231b3b80d8 commit b02aec51b2ea2206de1d61e7f9abd59b18daac1c Author: Sean Callanan <scallanan@apple.com> Date: Fri Nov 20 22:28:42 2009 +0000 Recommitting PALIGNR shift width fixes. Thanks to Daniel Dunbar for fixing clang intrinsics: http://llvm.org/viewvc/llvm-project?view=rev&revision=89499 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56187db10c250ffe39acb633bdf719c8fe66a273 Author: Dale Johannesen <dalej@apple.com> Date: Fri Nov 20 22:16:40 2009 +0000 Remove an incorrect overaggressive optimization (PPC specific). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89496 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7c408162231566c5eff408a28585063f152ca27 Author: Sean Callanan <scallanan@apple.com> Date: Fri Nov 20 22:09:28 2009 +0000 Reverting PALIGNR fix until I figure out how this broke the Clang testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89495 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2dbcba3aae7f29b61b6e778d01936f1e99e94ec Author: Sean Callanan <scallanan@apple.com> Date: Fri Nov 20 21:40:28 2009 +0000 Fixed PALIGNR to take 8-bit rotations in all cases. Also fixed the corresponding testcase, and the PALIGNR intrinsic (tested for correctness with llvm-gcc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89491 91177308-0d34-0410-b5e6-96231b3b80d8 commit d90672c248edda0cab8f84db6f9b16fe8fe4b281 Author: Devang Patel <dpatel@apple.com> Date: Fri Nov 20 21:37:22 2009 +0000 Do not hold on to a map slot while new entries may be inserted into the map. Use ValueMap, instead of std::map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 197e2fcd5b2b0a4d391208380dbe71dbcee48e04 Author: David Greene <greened@obbligato.org> Date: Fri Nov 20 21:13:27 2009 +0000 Cleanups. Make things a little more efficient as suggested by Evan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8268f72bb23ff56e4e72260fa1e6575941f46c15 Author: Devang Patel <dpatel@apple.com> Date: Fri Nov 20 21:05:37 2009 +0000 There is no need to emit source location info for DW_TAG_pointer_type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89487 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0379c26c10c7e3090ec806a8333f6d3b5ebf8822 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 20:51:18 2009 +0000 Make Loop::getLoopLatch() work on loops which don't have preheaders, as it may be used in contexts where preheader insertion may have failed due to an indirectbr. Make LoopSimplify's LoopSimplify::SeparateNestedLoop properly fail in the case that it would require splitting an indirectbr edge. These fix PR5502. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89484 91177308-0d34-0410-b5e6-96231b3b80d8 commit 082f11b74a4bc1ed1434757aa57582a4232e8f29 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 20:19:14 2009 +0000 Fix IPSCCP's code for deleting dead blocks to tolerate outstanding blockaddress users. This fixes PR5569. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d5e4247ca66b21f37c9417c865bd715e93ba960 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Nov 20 20:17:30 2009 +0000 Revert "Add some rough optimizations for checking routines.", it buildeth not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89482 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92b73c9b0c67894b541ad7e8aaebb663c73f9864 Author: Eric Christopher <echristo@apple.com> Date: Fri Nov 20 19:57:37 2009 +0000 Add some rough optimizations for checking routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f6bfd4a20638089c8d00a40c2f4cd9e8b63e691 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 20 19:57:15 2009 +0000 Remat VLDRD from constpool. Clean up some instruction property specifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89478 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffd15dce5570f5c05754fc4dd7962ffe27faaac6 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 20 19:55:37 2009 +0000 Add option -licm-const-load to hoist all loads from constant memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89477 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3de86391c62a6519caa0d6ea12197326efbb793 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Nov 20 19:37:38 2009 +0000 The verify() call of CPEIsInRange() isn't right for the assertion check of constant pool ranges, as CPEIsInRange() makes conservative assumptions about the potential alignment changes from branch adjustments. The verification, on the other hand, runs after those branch adjustments are made, so the effects on alignment are known and already taken into account. The sanity check in verify should check the range directly instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89473 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58bb6d922787ef2477a325c7106c95367d034af9 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 19:33:16 2009 +0000 Use stripPointerCasts(). Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89472 91177308-0d34-0410-b5e6-96231b3b80d8 commit d34903a350e0bb37ab31d6cb8449b419535bfe8a Author: David Goodwin <david_goodwin@apple.com> Date: Fri Nov 20 19:32:48 2009 +0000 Remove some old experimental code that is no longer needed. Remove additional, speculative scheduling pass as its cost did not translate into significant performance improvement. Minor tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89471 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff47428dd421e3fa20990dcb4a26a1b8b287ac3b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Nov 20 18:54:59 2009 +0000 More consistent labelling of basic blocks in debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89470 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd91143935f6fc55ba9af90054f1d6dc4d4fcff3 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 17:50:21 2009 +0000 Revert the rule that considers comparisons between two pointers in the same object to be a non-capture; Duncan pointed out a way that such a comparison could be a capture. Make the rule that considers a comparison against null more specific, and only consider noalias return values compared against null. This still supports test/Transforms/GVN/nonescaping-malloc.ll, and is not susceptible to the problem Duncan pointed out with noalias arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89468 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8cb0d95e6125d2c62c76e822e3edf09c6891aae Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Nov 20 17:23:17 2009 +0000 Move the handling of CommaSeparated options into ProvideOption. Makes '--comma-separated val1,val2' mean the same thing as '--comma-separated=val1,val2' (that is, 'val1' and 'val2' are not lumped together as 'val1,val2'). Also declutters the main loop a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89463 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7f89b0b44347e999695b1cafe8ac0d363cb2ba2 Author: Duncan Sands <baldrick@free.fr> Date: Fri Nov 20 13:19:51 2009 +0000 Fix PR5563, an expensive checks failure when running on tests/Transforms/InstCombine/shufflemask-undef.ll. If anyone cares, the use of 2*e here (and the equivalent all over the place in instcombine) seems wrong, though harmless: it should really be twice the length of the input vector. I think shufflevector used to require that the mask have the same length as the input, but I don't think that's true any more. I don't care enough about vectors to do anything about this... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89456 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6888fe797e7b7ee3cd9028cbc8d54aa67a878147 Author: Duncan Sands <baldrick@free.fr> Date: Fri Nov 20 10:45:10 2009 +0000 Fix PR5558, which was caused by a wrong fix for PR3393 (see commit 63048), which was an expensive checks failure due to a bug in the checking. This patch in essence reverts the original fix for PR3393, and refixes it by a tweak to the way expensive checking is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89454 91177308-0d34-0410-b5e6-96231b3b80d8 commit edb2ded475aba1a45d5bc80ded559e9d91bf6f8a Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Nov 20 09:53:25 2009 +0000 Try to work around grep's "Binary file (standard input) matches" complaints seen on ppc buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89452 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b6aa45f821c6991b616a8deb340171a83a6bc0a Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Nov 20 02:52:08 2009 +0000 Fix -march= name for x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89445 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40b0a2e6bb0787bc7c36a8fc79910a33e1a58965 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 02:51:26 2009 +0000 Fix fast-isel to avoid selecting the return instruction if a tail call has been encountered. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89444 91177308-0d34-0410-b5e6-96231b3b80d8 commit 871fc2c9d35287f0feaeb077f4ce892da9436d06 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Nov 20 02:32:06 2009 +0000 Remove verifySizes() since it's not adding much value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89443 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef4c5b2c4971e741cd583f5c351e8328e72e93fa Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 20 02:10:27 2009 +0000 Also CSE non-pic load from constant pools. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89440 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0bb0ae7d0154008e836e31d8f8cf77fa2ebb726 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 02:03:44 2009 +0000 Add an experimental option to run gep-splitting and no-load GVN just before codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89439 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a958d37a1ed34b2160bbdc7371b1d15641acb2d Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 01:34:03 2009 +0000 Simplify this code; it's not necessary to check isIdentifiedObject here because if the results from getUnderlyingObject match, the values must be from the same underlying object, even if we don't know what that object is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 222f68489f8cf17fa316ad1028c285326d830214 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Nov 20 01:17:03 2009 +0000 Add MachineBasicBlock::getName, and use it in place of getBasicBlock()->getName. Fix debug code that assumes getBasicBlock never returns NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89428 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1b77e7c3e5adb80863c97c4d24aa598c5fc1515 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 01:09:34 2009 +0000 Teach getSmallConstantTripMultiple about Shl operators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89426 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69aaa0084163fa280cdae34786d3dd67695753c9 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 20 00:54:03 2009 +0000 Fix codegen of conditional move of immediates. We were not making use of the immediate forms of cmov instructions at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89423 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7c28c8c5c1de49d0b0413f6ff4fada2b80c1ec0 Author: Lang Hames <lhames@gmail.com> Date: Fri Nov 20 00:53:30 2009 +0000 Removed references to LiveStacks from Spiller.* . They're no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e927d7b1f0097ad715d2a4375b2bd7e40dd3c89 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 00:50:47 2009 +0000 Refine the capture tracking rules for comparisons to be more careful about crazy methods of capturing pointers using comparisons. Comparisons of identified objects with null in the default address space are not captures. And, comparisons of two pointers within the same identified object are not captures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f2b0e7a5096767455d0dd6591e2085c518c72c2 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 20 00:43:11 2009 +0000 Use isVoidTy(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2aef1e6b29c5d584bfdb1a1bc1d674f986108771 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Nov 20 00:40:21 2009 +0000 Specify proper arch and triple for 64-bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89418 91177308-0d34-0410-b5e6-96231b3b80d8 commit d45acc97e4b6a2854810c0a8076df3907e7be6e7 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Nov 20 00:32:16 2009 +0000 Testcase for r89415. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fbd6ad19b836a8138007e82176581755e206c7f Author: Eric Christopher <echristo@apple.com> Date: Fri Nov 20 00:21:55 2009 +0000 Update comment to reflect instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ac1d868496cea420332f07cde2d57cf3d9744eb Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 19 23:53:49 2009 +0000 Refine this to only apply to null in the default address space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89411 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef7c365276e64d3ec8f3f8b2b251057186c73bc4 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Nov 19 23:42:58 2009 +0000 Try to fix JITTest.FarCallToKnownFunction on ARM and PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89410 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5619db5fa424bd31f0fb1f4647ef479585a1aba Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Nov 19 23:21:43 2009 +0000 Use CMAKE_DL_LIBS instead of raw library name. Fixes bug 5536. Patch by Tobias Grosser! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89406 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25d6435df004aa2890aee502e67242b158c744e7 Author: David Goodwin <david_goodwin@apple.com> Date: Thu Nov 19 23:12:37 2009 +0000 Fix a couple of problems with maintaining liveness information for antidep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89404 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca890b1973ef53d6c7ece027c037f6de1260cb4b Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 19 23:10:28 2009 +0000 When placing constant islands and adjusting for alignment padding, inline assembly can confuse things utterly, as it's assumed that instructions in inline assembly are 4 bytes wide. For Thumb mode, that's often not true, so the calculations for when alignment padding will be present get thrown off, ultimately leading to out of range constant pool entry references. Making more conservative assumptions that padding may be necessary when inline asm is present avoids this situation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89403 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4f555a862e61afbb08604327f70ced9f9e6b934 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 19 21:57:48 2009 +0000 Extend CaptureTracking to indicate when a value is never stored, even if it is not ultimately captured. Teach BasicAliasAnalysis that a local object address which does not escape and is never stored does not alias with a value resulting from a load. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89398 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3327e8265b77a0ddf6d59dfb891cd311c571ac91 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 19 21:45:22 2009 +0000 Refactor cmov selection code out to a separate function. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 907856d48f376196e91573fa1d9c5c5e87d86d0b Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 19 21:34:07 2009 +0000 Comparing a pointer with null is not a capture. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89389 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba2f80467ebfd343f8fdbe28745d92a5dd9447f3 Author: Duncan Sands <baldrick@free.fr> Date: Thu Nov 19 20:48:14 2009 +0000 Only run this mutex test if threading is enabled. This fixes PR5395. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89385 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9cd9bd206387e98c2897c47b29fd4d31df2f223 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Nov 19 19:42:16 2009 +0000 Place new basic blocks immediately after their predecessor when splitting critical edges in PHIElimination. This has a huge impact on regalloc performance, and we recover almost all of the 10% compile time regression that edge splitting introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89381 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0e65b8d3493b044f266aa620cead7a1c91b3ccf Author: Bill Wendling <isanbard@gmail.com> Date: Thu Nov 19 19:21:09 2009 +0000 Reverting the EH table patches. $ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89279 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/Target/TargetLoweringObjectFile.cpp $ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89270 into '.': G lib/CodeGen/AsmPrinter/DwarfException.cpp G lib/Target/TargetLoweringObjectFile.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89379 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a5dc8bb0dbc4fab3b9594c9a94edcb82e5f6eac Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Nov 19 19:20:17 2009 +0000 Added NLdStLN which is similar to NLdSt with the exception that op7_4 is not fully specified at this level. Subclasses of NLdStLN can specify selective bit(s) for Inst{7-4}, as is done for VLD[234]LN* and VST[234]LN* inside ARMInstrNEON.td. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89377 91177308-0d34-0410-b5e6-96231b3b80d8 commit af9a21d1a69f3b3ef222674d760309001f4827b7 Author: David Greene <greened@obbligato.org> Date: Thu Nov 19 19:09:39 2009 +0000 Fix a small bug. Fix one case we missed to make sure we reserve registers from allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f74e9c0b2a9ca331220ef8d8dd377e46c7a1ee8 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 19 19:00:10 2009 +0000 Enable hoisting of loads from constant memory by default. In cases where they are lowered to instruction sequences more complex than a simple load, such that CodeGen cannot rematerialize them, a reload from a spill slot is likely to be cheaper than the complex sequence. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89374 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6bb9ad2a7a5486e4f375e35d537f1cd45ce3015 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 19 18:53:18 2009 +0000 Use StringRef::min instead of std::min. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49f755b9ed789fa5088c1340e5c9d7b026c89263 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 19 18:23:19 2009 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cc0fd2839a6b5f01cf103317e7dd9cef1058617 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 19 18:22:16 2009 +0000 TableGen/OptParser: When ordering options, make "sentinel" options appear before everything else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89368 91177308-0d34-0410-b5e6-96231b3b80d8 commit 766a36de6e28e0113a56aa51ab00268de0203e42 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Nov 19 17:29:36 2009 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89364 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6c09a5fec44233d337ac34910f2f3e5df2f9939 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Nov 19 17:29:25 2009 +0000 Make example/Hello compile again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89363 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a5f981b1c49eeaa6698480c1b90d6e9382b9568 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 19 16:35:11 2009 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86f092e5f20940eae910c4e60608406134a48831 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 19 16:08:04 2009 +0000 cstdlib is not automatically included with StringRef anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89359 91177308-0d34-0410-b5e6-96231b3b80d8 commit f42d3bbff53b7c8de06a0e23eebaf4a9aac2ff00 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 19 16:04:41 2009 +0000 Reenable Split2 StringRef test with Apple gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89357 91177308-0d34-0410-b5e6-96231b3b80d8 commit c71d1f03e0c46be0eee00263f6b1609fd84bd235 Author: David Greene <greened@obbligato.org> Date: Thu Nov 19 15:55:49 2009 +0000 Add support for spreading register allocation. Add a -linearscan-skip-count argument (default to 0) that tells the allocator to remember the last N registers it allocated and skip them when looking for a register candidate. This tends to spread out register usage and free up post-allocation scheduling at the cost of slightly more register pressure. The primary benefit is the ability to backschedule reloads. This is turned off by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89356 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd629ec8b36ef375f35386a190c4c301dda09f44 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 19 15:48:14 2009 +0000 Remove the now obsolete algorithm include from StringRef.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 449529d5cfab41b1899d04273a326065c4420223 Author: Edwin Török <edwintorok@gmail.com> Date: Thu Nov 19 15:39:50 2009 +0000 Workaround PR5482, because all the gcc versions that I had were miscompiling StringRef: 4.2.4, 4.3.4, 4.4.2. The workaround is to use a local min/max implementation that takes an integer param, and not a reference to integer param (like std::min does). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89352 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02cec4c48f3c3daf922ee0d8aae5621c12ea3e81 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 19 12:17:31 2009 +0000 Unbreak x64 MSVC build. Patch by Nicolas Capens! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89341 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d446e5cc22993e05211b803cea43f09299d7f96 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Thu Nov 19 11:59:00 2009 +0000 Add PS3 Triple class, Credit to John Thompson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89339 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc7bfb11acd970d4cd4da36ae281065b22be5123 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 19 08:16:50 2009 +0000 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89337 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ea6a674a73ae8fdb75e15d692c90a048d7af1e0 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 19 07:18:49 2009 +0000 Unbreak test, Bruno please check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89329 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91fd9e4f6f0cd25369fafa3a81312fba451519cc Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 19 06:57:41 2009 +0000 More consistent thumb1 asm printing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89328 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ec49859a25324df48adf6b899d26b679e7a6ab2 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 19 06:32:27 2009 +0000 Shrink ldr / str [sp, imm0-1024] to 16-bit instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 462517808063f450416dd5693adbc31293e9ba9a Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 19 06:31:26 2009 +0000 Eliminate more * 4 in Thumb1 asm printing for consistency sake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59b2354e6b6079cc6bd912770ad84a681d3082e0 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Nov 19 06:06:13 2009 +0000 - Add sugregister logic to handle f64=(f32,f32). - Support mips1 like load/store of doubles: Instead of: sdc $f0, X($3) Generate: swc $f0, X($3) swc $f1, X+4($3) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31a8a8c2a44d05f0f6d79f2ff57eb06ed02f6952 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Thu Nov 19 05:28:18 2009 +0000 Only use small sections for non linux targets! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e105d8389347468aaa57d612d4d20c0168464ec Author: Lang Hames <lhames@gmail.com> Date: Thu Nov 19 04:15:33 2009 +0000 Added a new Spiller implementation which wraps LiveIntervals::addIntervalsForSpills. All spiller calls in RegAllocLinearScan now go through the new Spiller interface. The "-new-spill-framework" command line option has been removed. To use the trivial in-place spiller you should now pass "-spiller=trivial -rewriter=trivial". (Note the trivial spiller/rewriter are only meant to serve as examples of the new in-place modification work. Enabling them will yield terrible, though hopefully functional, code). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89311 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c00995baf288899fa940756099b2e5710702841 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Thu Nov 19 02:25:50 2009 +0000 autoconf config.* claims to not know about auroraux triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89301 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51d2daf6108cda81a81f3c59e44a836a3f4cc8b7 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 19 02:05:44 2009 +0000 Teach IVUsers to keep things simpler and track loop-invariant strides only for uses inside the loop. This works better with LSR. Disabled behind -simplify-iv-users while benchmarking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89299 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6b28c2ca5ac9fa8b911e5b68fe07ee47bf054ce Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 19 02:03:18 2009 +0000 Eliminate duplicate phi nodes in loops. Loop rotation, for example, can introduce these, and it's beneficial to later passes to clean them up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89298 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba8e8e58a471dd3252b5f7e3da42501e2508f17f Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 19 02:02:10 2009 +0000 Make EliminateDuplicatePHINodes() available as a utility function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89297 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73fb12e94ad66fee4f8a56049b18113f604cee36 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Nov 19 01:33:57 2009 +0000 Test from Dhrystone to make sure that we're not emitting an aligned load for a string that's aligned at 8-bytes instead of 16-bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b6a195cbe09d455be646027b83b039c7fa6b06d Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 19 00:14:53 2009 +0000 Add TOOLALIAS makefile variable; this defines an alternate name for a program which the makefiles will create by symlinking the actual tool to. - For use by clang, where we want to make 'clang++' and alias for clang (which enables C++ support in the driver) - Not sure this is the best approach, alternative suggestions welcome! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89282 91177308-0d34-0410-b5e6-96231b3b80d8 commit 121e71656e195b7fe04fcc6416b69393cf0ef33e Author: Bill Wendling <isanbard@gmail.com> Date: Thu Nov 19 00:09:14 2009 +0000 The "ReadOnlyWithRel" enum seems to apply more to what Darwin does with the EH exception table than DataRel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89279 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc0de436deae8197ed48639ff40595e9fa4e55b3 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 19 00:04:43 2009 +0000 Twine: Stores kinds as uchar instead of bitfield to be friendlier to the optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89278 91177308-0d34-0410-b5e6-96231b3b80d8 commit d7a62cc10ff8a5d40b15d2750b62b1f66e507779 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 18 23:48:57 2009 +0000 There should be no need to keep renumbering blocks during tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89275 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac2a6d3db6062f0f5d4908c62d354981bc75378f Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 18 23:30:38 2009 +0000 Fix buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89274 91177308-0d34-0410-b5e6-96231b3b80d8 commit c40a1de1e088f0e0c8d854cf53247e41bfa6075c Author: Richard Osborne <richard@xmos.com> Date: Wed Nov 18 23:20:42 2009 +0000 Add XCore support for indirectbr / blockaddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89273 91177308-0d34-0410-b5e6-96231b3b80d8 commit eede1cfd80ead986dea190267a853c00eeff63a1 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Nov 18 23:20:09 2009 +0000 De-bork CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89272 91177308-0d34-0410-b5e6-96231b3b80d8 commit da739ea07a1f130adcc9ad3d51e9c895af374dc6 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Nov 18 23:18:46 2009 +0000 Attempt #2: Place the EH table in the __TEXT section on MachO. It saves space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a57a12064094766ae271d09fe365c882d48468b Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 18 22:52:37 2009 +0000 Tail duplication still needs to iterate. Duplicating new instructions onto the tail of a block may make that block a new candidate for duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fda037ed8e65b25550b1b439af1153b40df0739 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 18 22:12:31 2009 +0000 Add another statistic to measure code size due to tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0359a09551cd3dee071945a565def98fa61b48e3 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Nov 18 22:04:44 2009 +0000 Remove spurious @verbatim. Patch by Timo Juhani Lindfors! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89252 91177308-0d34-0410-b5e6-96231b3b80d8 commit d69a01fbd2dcea207cdb20c28de1031556cc4681 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Nov 18 21:54:13 2009 +0000 Not all ASM has # for comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89250 91177308-0d34-0410-b5e6-96231b3b80d8 commit 678387e294c678f1cdc602864e5f590ad6fdf65a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Nov 18 21:33:35 2009 +0000 Fix PR5300. When TwoAddressInstructionPass deletes a dead instruction, make sure that all register kills are accounted for. The 2-addr register does not get special treatment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89246 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e906a43ec271475b7d5c33ea8c354a29e14b92e Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 18 21:29:51 2009 +0000 TableGen: Add initial backend for clang Driver's option parsing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89245 91177308-0d34-0410-b5e6-96231b3b80d8 commit 390afed1012b60baf06eac8904fb72af3ccaedaa Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Nov 18 20:36:57 2009 +0000 Allow the machine verifier to be run outside the PassManager. Verify LiveVariables information when present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89241 91177308-0d34-0410-b5e6-96231b3b80d8 commit c272c74658d1f521d0a67ccdf8155d4566380f75 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Nov 18 20:36:47 2009 +0000 Remove the -early-coalescing option git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89240 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ec5663bc8a70b50a0b7b5e08140577ee1f3957f Author: Lang Hames <lhames@gmail.com> Date: Wed Nov 18 20:31:20 2009 +0000 Fixed the in-place spiller and trivial rewriter, which had been broken by the recent SlotIndexes work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89238 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07fce117258e85a921db78e5656c4039f48829fc Author: Viktor Kutuzov <vkutuzov@accesssoftek.com> Date: Wed Nov 18 20:20:05 2009 +0000 Added getDefaultSubtargetFeatures method to SubtargetFeatures class which returns a correct feature string for given triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89236 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec816259573936142fdc922b8c8fa98e77a3c998 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 18 19:29:37 2009 +0000 Add statistics for tail duplication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89225 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb368aa30f54a1388c341e6f443c9c6f96216fdc Author: David Goodwin <david_goodwin@apple.com> Date: Wed Nov 18 18:39:57 2009 +0000 Add ARMv6 itineraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89218 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecce4b7c8a9afdf9ca01e9c017871492a406ebfe Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 18 18:10:35 2009 +0000 Fix a few places that were missed when we converted to unified syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89214 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1a48f57d4a251f639165b4fa8f5b25de598e6c2 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Nov 18 18:01:35 2009 +0000 Don't require LiveVariables for PHIElimination. Enable critical edge splitting when LiveVariables is available. The -split-phi-edges is now gone, and so is the hack to disable it when using the local register allocator. The PHIElimination pass no longer has LiveVariables as a prerequisite - that is what broke the local allocator. Instead we do critical edge splitting when possible - that is when LiveVariables is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89213 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82262041840cecaa4a3d015d124d166a7b87a995 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 18 17:42:22 2009 +0000 Turn LLVM_BUILD_EXAMPLES off by default in CMake builds, to match Makefiles & Clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89211 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b3f26dbec6c2ca5a680f7d42795408f3a044bee Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 18 17:42:17 2009 +0000 lit: Fix exclude dirs functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89210 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64954241b84be8ee24450c4a27e01e836eee2fa2 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Nov 18 05:43:15 2009 +0000 Fix passing of float arguments through ffi. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19194a2f4d58b62e438b2c28f4b42966931cd397 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 18 03:34:27 2009 +0000 Add a target hook to allow changing the tail duplication limit based on the contents of the block to be duplicated. Use this for ARM Cortex A8/9 to be more aggressive tail duplicating indirect branches, since it makes it much more likely that they will be predicted in the branch target buffer. Testcase coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89187 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3bd9875c4cffb6514b54839c0220cfeccb5b7a9 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Nov 18 01:03:56 2009 +0000 The llvm-gcc front-end and the pass manager use two separate TargetData objects. This is probably not confined to *just* these two things. Anyway, the llvm-gcc front-end may look up the structure layout information for an abstract type. That information will be stored into a table with the FE's TD. Instruction combine can come along and also ask for information on that abstract type, but for a separate TD (the one associated with the pass manager). After the type is refined, the old structure layout information in the pass manager's TD file is out of date. If a new type is allocated in the same space as the old-unrefined type, then the structure type information in the pass manager's TD file will be wrong, but won't know it. Fix this by making the TD's structure type information an abstract type user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89176 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10fd2878665f7ae15848e0d5166a5ea873e2bac8 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 18 00:58:27 2009 +0000 Simplify ComputeMultiple so that it doesn't depend on TargetData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9321a6db532fd0d5437d854e19e8a9fdc1f59290 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Nov 18 00:02:18 2009 +0000 Fix inverted test and add testcase from failing self-host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89167 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39a0f07ef82b6cc70ce87c038620921d87297ced Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 17 22:39:08 2009 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89156 91177308-0d34-0410-b5e6-96231b3b80d8 commit b064d5efec51117f9819c7ffabb60970549025b1 Author: Eric Christopher <echristo@apple.com> Date: Tue Nov 17 21:58:16 2009 +0000 Add ability to set code model within the execution engine builders and creation interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89151 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9007bcee6efaa3d528edd8e47cfeb9a2fe47071a Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Nov 17 21:52:40 2009 +0000 Remove fragile test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89150 91177308-0d34-0410-b5e6-96231b3b80d8 commit e65e2a55c76fd80f137adc6595057cf1a4a4d8fd Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 17 21:37:04 2009 +0000 grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89145 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35ccbb7056c9c20ecc158d701fb3b00fdd795601 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 17 21:24:11 2009 +0000 Enable arm jumpt table adjustment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89143 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05930c4f222e11e44989c1040e7b9912e662ad86 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Nov 17 21:23:49 2009 +0000 Disable -split-phi-edges to unbreak the buildbots git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89142 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82ef39981df3f6d75e2ba52517452ff8df4a8415 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Nov 17 20:46:00 2009 +0000 Never call UpdateTerminator() when AnalyzeBranch would fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89139 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a4f0a3bd881d83fed218587dbe0d1beb885b7a3 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Nov 17 20:38:36 2009 +0000 Forgot to commit test fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89138 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa4af890f3ecfcb21e9a0ce4f21304aec7fa087d Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Nov 17 20:04:59 2009 +0000 Both Darwin as and GNU as violate ARM docs wrt printing of addrmode6 alignment imm (in the same way). Fix asmprinting for non-darwin platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18f204f62c038bf35ed4887486bd051d60224825 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 17 19:19:59 2009 +0000 Add a WriteAsOperand for MachineBasicBlock so MachineLoopInfo dump looks sane. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71faf6a347d7bc9076951bf2e317058024d80697 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 17 19:19:01 2009 +0000 Fix comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89129 91177308-0d34-0410-b5e6-96231b3b80d8 commit 226f307c9fd011e31a1b9194017941265ce644d9 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Nov 17 19:15:50 2009 +0000 Enable -split-phi-edges by default, except when -regalloc=local. The local register allocator doesn't like it when LiveVariables is run. We should also disable edge splitting under -O0, but that has to wait a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89125 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc4c7583e32dcab06bcb54fce793230b7c20eead Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 17 19:05:35 2009 +0000 80-column violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89123 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee140c4ce226ab811c551e85a3302a9e0ba5f301 Author: Viktor Kutuzov <vkutuzov@accesssoftek.com> Date: Tue Nov 17 18:48:27 2009 +0000 Added getArchNameForAssembler method to the Triple class for which returns OS and Vendor independent target assembler arch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89122 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5da4d89ecae4eb432275e4c186811bbb2116a35b Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Nov 17 18:30:09 2009 +0000 Remove a special case for tail merging that seems to be both broken and unnecessary. It is broken because the "isIdenticalTo" check should be negated. If that is fixed, this code causes the CodeGen/X86/tail-opts.ll test to fail, in the dont_merge_oddly function. And, I confirmed that the regression is real -- the generated code is worse. As far as I can tell, that tail-opts.ll test is checking for what this code is supposed to handle and we're doing the right thing anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89121 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6454d6b3a54455960df969ee7d3cb4725df645a Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 17 18:10:11 2009 +0000 Generalize OptimizeLoopTermCond to optimize more loop terminating icmp to use postinc iv. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89116 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b167eeef90ff3d7c5195ce6f2b1acb4478d522c Author: Dan Gohman <gohman@apple.com> Date: Tue Nov 17 18:04:15 2009 +0000 Set MadeChange instead of MadeChangeThisIteration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89114 91177308-0d34-0410-b5e6-96231b3b80d8 commit c77d9a4bdcb38493ce2b210b0e8e306181608657 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Nov 17 17:57:04 2009 +0000 Revert CPU detection code to return "generic" instead of an empty string in case of failure. The x86 target didn't like empty cpu names and broke x86 tests on non-x86 buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89111 91177308-0d34-0410-b5e6-96231b3b80d8 commit f492c7348325f8f039047ab11cd8a44b46cb9a6e Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 17 17:53:56 2009 +0000 Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89110 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9622b2ee6ee8bf9057d5d17bc4b6dc70d8fa874 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Nov 17 17:40:31 2009 +0000 Update a comment, now that tail duplication happens after other branch folding optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89109 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f6474095adef9b9dc65ef94b481785caa086ea7 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Nov 17 17:17:50 2009 +0000 Set Inst{15-12} (Rd/Rt) to 0b1111 (PC) for BR_JTadd, BR_JTr, and BR_JTm to distinguish between them and the more generic instructions (add, mov, and ldr). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89108 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cc7b872e96371d21aeff515d9f94e6c11955a07 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Nov 17 17:06:18 2009 +0000 Perform tail duplication only once, after tail merging is complete. It was too difficult to keep the heuristics for merging and duplication consistent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89105 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47d60dc7125c5c8d2fc0e752b2448792db668751 Author: Nuno Lopes <nunoplopes@sapo.pt> Date: Tue Nov 17 15:35:39 2009 +0000 add Case() with 5 args git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89099 91177308-0d34-0410-b5e6-96231b3b80d8 commit aeb0ef3dba79ca51c55331915e22ad6a3d2e9531 Author: Jay Foad <jay.foad@gmail.com> Date: Tue Nov 17 13:13:59 2009 +0000 Fix HTML formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89093 91177308-0d34-0410-b5e6-96231b3b80d8 commit bed96f986a22dd0d457fc5054733ec85e7ac9061 Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 17 10:54:25 2009 +0000 1. Allow SCCIterator to work with GraphT types that are constant. 2. Allow SCCIterator to work with inverse graphs. 3. Fix an incorrect comment in GraphTraits.h (the type in the comment was given as GraphType* when it is actually const GraphType &). Patch by Patrick Alexander Simmons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18d0288933ba946f480d62c4233028538b8dc7df Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 17 10:20:22 2009 +0000 Make bugpoint pass -load arguments to LLI. This lets one use bugpoint with programs that depend on native shared libraries. Patch by Timo Lindfors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89087 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91bbf5ea7a0dd374f65ba1db5a2e868cfa08065c Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 17 09:55:52 2009 +0000 Revert 89021. It's miscompiling llvm-gcc driver driver at -O0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89082 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e66471c0fac08232fa3464324f2b3e42aec3fcb Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 17 09:51:18 2009 +0000 Re-apply 89011. It's not to be blamed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89081 91177308-0d34-0410-b5e6-96231b3b80d8 commit cff9162abbf0e246c71f29299165c6ee1a6e615a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 17 09:29:59 2009 +0000 "XFAIL" the Split2 StringReft test with Apple gcc, which miscompiles it. - I plan on fixing/workarounding this, but until then I'd like the bots to stay green. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89077 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04af0cbb1d29d16253d4e5d3be8dca4b57ce447e Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 17 09:20:28 2009 +0000 Revert 89011. Buildbot thinks it might be breaking stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89076 91177308-0d34-0410-b5e6-96231b3b80d8 commit 58e64e179fc32f88dc3b1b447c6a2225ed22e55f Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Nov 17 09:17:08 2009 +0000 Remove VISIBILITY_HIDDEN from the classes in this directory. Fixes bug 5507. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89075 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26459c2bf024b2a7dc92ab376679ebc4abf47e61 Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 17 08:34:52 2009 +0000 Following a suggestion of Daniel Dunbar, stop people passing the name as the isSigned bool to CreateIntCast by having this resolve to a call to a private method, rather than by using a gcc attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89067 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee68f45fe77ad7ce3079eb9e8222075dee099f08 Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Nov 17 08:11:44 2009 +0000 Revert r88939. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 928d16d438165dc6459fdde2365d36e64642ed1e Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Nov 17 07:52:09 2009 +0000 Fail less mysteriously; inform the user that their LLVM was not built with libffi support and that the interpreter can't call external functions without it. Patch by Timo Juhani Lindfors! Fixes PR5466. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89062 91177308-0d34-0410-b5e6-96231b3b80d8 commit d06c8c5777c8bda4fac5bebc55324fe5fd7bc6dd Author: Lang Hames <lhames@gmail.com> Date: Tue Nov 17 07:19:50 2009 +0000 Fixed call to wrong constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6171d2bb7ed78f04b91d05998ceef80c86fdbedd Author: Owen Anderson <resistor@mac.com> Date: Tue Nov 17 07:06:10 2009 +0000 Fix a race condition in the Timer class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89056 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9cc7bfa480cba73c84b03353fd134735d8021d4 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Nov 17 01:23:53 2009 +0000 Refactor the code that creates the "dot-label" difference. This may be used in more than one place. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89024 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd75ded296f631b4b59f5461340de1e1a2beae01 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 17 01:21:04 2009 +0000 When moving a block for table jumps, make sure the prior block terminator is analyzable so it can be updated. If it's not, be safe and don't move the block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89022 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3bf51602527c76684b69fb21070cdd4ba50edec3 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Nov 17 01:07:22 2009 +0000 Enable -split-phi-edges by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c1a4c55964f71831f36162320b421ebb82ec56f Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 17 00:55:55 2009 +0000 MOV64rm should be marked isReMaterializable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f9c46ffbb2f96175858d78814fa52a3416ee81e Author: Dan Gohman <gohman@apple.com> Date: Tue Nov 17 00:47:23 2009 +0000 Remove the optimizations that convert BRCOND and BR_CC into unconditional branches or fallthroghes. Instcombine/SimplifyCFG should be simplifying branches with known conditions. This fixes some problems caused by these transformations not updating the MachineBasicBlock CFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89017 91177308-0d34-0410-b5e6-96231b3b80d8 commit dadd6cd96d573649490516c5840139af923d9176 Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 17 00:47:06 2009 +0000 Remove debug info attached with an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89016 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4e00b81b5a07e01722211f03b31a5941d4d731e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Nov 17 00:43:13 2009 +0000 In GlobalVariable::setInitializer, assert that the initializer has the right type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fb3d35636d3bf4700533a22ab2a13f2b98fc9d2 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 17 00:23:22 2009 +0000 A few more instructions that should be marked re-materializable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5df3462936ef55f159ad4cdc28ddaac77790b862 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 17 00:20:26 2009 +0000 Convert to FileCheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89007 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2effb21501a21f1213986797396be850fa3da2eb Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 17 00:03:38 2009 +0000 Convert to FileCheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89002 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5e2ab84cce52357c4b51c35b25cf9b840883a4f Author: Jim Grosbach <grosbach@apple.com> Date: Tue Nov 17 00:00:33 2009 +0000 Cleanup. Missed removing these when converting. Oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89001 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff43a627bcc5f09f467393f4041d8969efe87949 Author: Johnny Chen <johnny.chen@apple.com> Date: Mon Nov 16 23:57:56 2009 +0000 Set Rm bits of BX_RET to 0b1110 (R14); and set condition code bits of BRIND to 0b1110 (ALways). This is so that the disassembler decoder can distinguish among BX_RET, BRIND, and BXr9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89000 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7cbdd85b600e9c24be78eb84de633055226f0dc Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 16 23:49:55 2009 +0000 Fix this test - there don't appear to be any actual Reload Reuses in this testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88998 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d5efd2014e22fb4cf39f54d1832e352a3b585ab Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 16 23:43:42 2009 +0000 Revert r87049, which was the workaround for the regression triggered by the recent FixedStackPseudoSourceValue-related changes, now that the specific bug that affected it is fixed, in r88954. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88997 91177308-0d34-0410-b5e6-96231b3b80d8 commit d99c0dfeddad8a81ef891c6bdd51ad5032fb4418 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Nov 16 23:32:30 2009 +0000 Revert the test from r88984. It relies on being able to mmap 16GB of address space (though it only uses a small fraction of that), and the buildbots disallow that. Also add a comment to the Makefile's ulimit line warning future developers that changing it won't work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ead0f2d62cb30219483230c810f5ad05678ff5d Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 23:19:29 2009 +0000 Convert to FileCheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88991 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16330ea4da1a4eba625c735d6247450b4afe56cd Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 16 22:49:38 2009 +0000 Initialize the new AsmPrinterFlags field to 0, fixing uses of uninitialized memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88985 91177308-0d34-0410-b5e6-96231b3b80d8 commit e233d8a0c6e61da9468080079d7b840a9ee05a72 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Nov 16 22:41:33 2009 +0000 Make X86-64 in the Large model always emit 64-bit calls. The large code model is documented at http://www.x86-64.org/documentation/abi.pdf and says that calls should assume their target doesn't live within the 32-bit pc-relative offset that fits in the call instruction. To do this, we turn off the global-address->target-global-address conversion in X86TargetLowering::LowerCall(). The first attempt at this broke the lazy JIT because it can separate the movabs(imm->reg) from the actual call instruction. The lazy JIT receives the address of the movabs as a relocation and needs to record the return address from the call; and then when that call happens, it needs to patch the movabs with the newly-compiled target. We could thread the call instruction into the relocation and record the movabs<->call mapping explicitly, but that seems to require at least as much new complication in the code generator as this change. To fix this, we make lazy functions _always_ go through a call stub. You'd think we'd only have to force lazy calls through a stub on difficult platforms, but that turns out to break indirect calls through a function pointer. The right fix for that is to distinguish between calls and address-of operations on uncompiled functions, but that's complex enough to leave for someone else to do. Another attempt at this defined a new CALL64i pseudo-instruction, which expanded to a 2-instruction sequence in the assembly output and was special-cased in the X86CodeEmitter's emitInstruction() function. That broke indirect calls in the same way as above. This patch also removes a hack forcing Darwin to the small code model. Without far-call-stubs, the small code model requires things of the JITMemoryManager that the DefaultJITMemoryManager can't provide. Thanks to echristo for lots of testing! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88984 91177308-0d34-0410-b5e6-96231b3b80d8 commit c577b71a6d398d64f3fdc51ffc607ea2882f2cb5 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Nov 16 22:38:00 2009 +0000 Don't build examples by default, use BUILD_EXAMPLES=1 to build them. The only utility of this is testing that we keep the examples up to date, I will just make the buildbots run with this flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88979 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbe77e5158a4729643feac6871dadd08e3f1c4b4 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Nov 16 22:37:52 2009 +0000 Add "Unoptimized" build (NO_DEBUG_SYMBOLS=1 ENABLE_OPTIMIZED=1), for reducing disk space, and increasing battery lifetime. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88978 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c5bade5afd43e2fefe0287dd19d4874f2eac704 Author: Eric Christopher <echristo@apple.com> Date: Mon Nov 16 22:34:32 2009 +0000 Fix unused variables warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d7cd4ecfc39fc323edaf91e1c17d04feec6b728 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 16 21:56:03 2009 +0000 - Check memoperand alignment instead of checking stack alignment. Most load / store folding instructions are not referencing spill stack slots. - Mark MOVUPSrm re-materializable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88974 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cb32c36830adc6833d7e459e3a8a9f784e235bb Author: Devang Patel <dpatel@apple.com> Date: Mon Nov 16 21:53:40 2009 +0000 Revert r88939. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88973 91177308-0d34-0410-b5e6-96231b3b80d8 commit b736b5dd0a3cfd23ad96365beac5bf918805f850 Author: David Greene <greened@obbligato.org> Date: Mon Nov 16 21:52:23 2009 +0000 Fix an expensive-checks error. The Mask and LHSMask may not be of the same size, so don't do the transformation if they're different. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88972 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fcb07aa007c643df80ffaac78ed860fe7c0ceea Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 21:13:22 2009 +0000 Make the pass class name more explicit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88964 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b4b40736acfba22d0befa1badf2b3f851e53c13 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 21:03:58 2009 +0000 make pass name a bit more clear git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88961 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca78b6fa4a7a87aa8823ecf8d97fbb3f6f7730ac Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 16 20:45:50 2009 +0000 Revert 88957. This file uses CodeGenOpt, which is defined in TargetMachine.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88959 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cd155b41f86ccb3019fde539d43798a4019c3b6 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 16 20:41:12 2009 +0000 Remove an unnecessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88957 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8450a9090b38c0faf1401326dd7ec95358e995cc Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 16 20:40:47 2009 +0000 Sink a #include <map> to where it's actually needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88956 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a50988004d9f2614faf8f8de30c7f2f71bffb09 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 16 20:40:06 2009 +0000 Make PseudoSourceValue's classof recognize FixedStackPseudoSourceValueVal, to respect this isa relationship. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88954 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57d7aeffb1f29269aefed5240d6637436676184b Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 16 20:35:59 2009 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 073faa1a39a976617625078b326a004ac2592b97 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 20:04:15 2009 +0000 Convert to FileCheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88947 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae9735e748d6b5095d87744f28b337fb44d4872f Author: Lang Hames <lhames@gmail.com> Date: Mon Nov 16 20:03:13 2009 +0000 Added a testcase for PR5495. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3890bf0cfe614495230a3f3c0aac3a9278f0d844 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Mon Nov 16 19:46:55 2009 +0000 Add configure options for specifying where to look for libstdc++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88943 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcfac37c9ca325ddd39c82eee1b80133328b9544 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 19:46:46 2009 +0000 Convert to FileCheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88942 91177308-0d34-0410-b5e6-96231b3b80d8 commit dceacb2a529c2bcdfd59ed0585684dff24c9054b Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 16 19:33:27 2009 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88940 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac402d8db30d059030a6410a5dbc7bef59c3fa32 Author: Devang Patel <dpatel@apple.com> Date: Mon Nov 16 19:20:48 2009 +0000 Add VISIBILITY_HIDDEN marker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88939 91177308-0d34-0410-b5e6-96231b3b80d8 commit 896373b0146c9a789b003bb7a15618747db484bb Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 18:58:52 2009 +0000 Simplify thumb2 jump table adjustments. Remove unnecessary calculation and usage of block sizes and offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88935 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98f9f85767a7837d985e0dc421ea825f14469378 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 18:55:47 2009 +0000 clarify comment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88933 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4ae3216ba93bd253044cdcbfa7e7645677de6d7 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 16 18:54:08 2009 +0000 Fix some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88932 91177308-0d34-0410-b5e6-96231b3b80d8 commit c81c2552bd5410dee67cbf3cb220fbac2ed3c2ac Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 16 18:08:46 2009 +0000 Whitespace: be consistent with pointer syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88929 91177308-0d34-0410-b5e6-96231b3b80d8 commit d904455c24c3f96288e950109730e5f3c6e6009f Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 16 17:56:13 2009 +0000 Clean up whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88927 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1225c9a6179c4429b4eb7d937ee40dedf39d3de Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 17:24:45 2009 +0000 tbb opt off by default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88921 91177308-0d34-0410-b5e6-96231b3b80d8 commit fad80ae623fc6897ea32966208814e9a4c70802e Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 17:17:48 2009 +0000 back off for a bit. tracking down weirdness git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 313cc22c734cfef8794dbfaf8a4ac9040a5cd9f6 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 16 17:10:56 2009 +0000 Analyze has to be before checking the condition, obviously. Properly construct an iterator for prior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88917 91177308-0d34-0410-b5e6-96231b3b80d8 commit d826aa969474c97c8522d440d82cfc0710f9ae2c Author: Douglas Gregor <doug.gregor@gmail.com> Date: Mon Nov 16 16:56:48 2009 +0000 Make ERROR_IF_USED macro work with GCC <= 4.2, Apple GCCs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88916 91177308-0d34-0410-b5e6-96231b3b80d8 commit a07e9ea3a1a0136632007d2cf93b70e3ebb4dc97 Author: Duncan Sands <baldrick@free.fr> Date: Mon Nov 16 15:28:17 2009 +0000 Make sure that if anyone passes a name by accident for the isSigned parameter of CreateIntCast then they get an error from the compiler (or from the linker with a non-gcc compiler). Another possibility is to flip the order of the DestTy and isSigned parameters, since you should then get a compiler warning if you try to use a char* for a Type*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88913 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e7b993b008be1bcca4cec4803092d876b21595a Author: David Greene <greened@obbligato.org> Date: Mon Nov 16 15:12:23 2009 +0000 Support spill comments. Have the asm printer emit a comment if an instruction is a spill or reload and have the spiller mark copies it introdues so the asm printer can also annotate those. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88911 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ac7ca342ff2b023d6521c6b9a90a883b7947e21 Author: Duncan Sands <baldrick@free.fr> Date: Mon Nov 16 13:15:28 2009 +0000 BuildIntCast takes an additional parameter, isSigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a0789a0d7e1648791c921e87abae3012969fbf4 Author: Duncan Sands <baldrick@free.fr> Date: Mon Nov 16 12:32:28 2009 +0000 CreateIntCast takes an "isSigned" parameter. Pass "true" for it, rather than a name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 871746fa4d93eed8573c219360241a4f1841f5a2 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 16 07:10:36 2009 +0000 Special case FixedStackPseudoSourceValueVal as well. Do we really need to differentiate PseudoSourceValueVal from FixedStackPseudoSourceValueVal at this level? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88902 91177308-0d34-0410-b5e6-96231b3b80d8 commit edf605d92d7e3529548911797e93397b81d1489e Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 16 06:31:49 2009 +0000 Check if subreg index is zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88899 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a4ccce190f441cf2a178dbe4b74abdbf92221fa Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 16 05:52:06 2009 +0000 For some targets, a copy can use a register multiple times, e.g. ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88895 91177308-0d34-0410-b5e6-96231b3b80d8 commit aedc2e9d64b536d329cd406cc1d6551cce9b70fe Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 16 05:44:04 2009 +0000 xfail for now. It has been failing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88892 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3d4e5e6d5b0b8d857c111166e3d0defd860d437 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Nov 16 04:35:29 2009 +0000 Disable ldc1/sdc1 instructions for mips1 targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88887 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ad52d038d3d31c43455d4a072678736bdfdc5f4 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Nov 16 04:33:42 2009 +0000 - Fix a small bug while handling target constant pools (one param was missing). - Add a smarter constant pool loading, instead of: lui $2, %hi($CPI1_0) addiu $2, $2, %lo($CPI1_0) lwc1 $f0, 0($2) Generate: lui $2, %hi($CPI1_0) lwc1 $f0, %lo($CPI1_0)($2) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88886 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00c4cadea398906831e85a9444a2803c7483661d Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 16 03:51:42 2009 +0000 typo spotted by duncan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88884 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d0591c3acd4208faff96f90ddfba096e6c20dc3 Author: Lang Hames <lhames@gmail.com> Date: Mon Nov 16 02:07:31 2009 +0000 Fixes the bug exposed by Anton's test case in PR 5495: Make sure when ProcessImplicitDefs removes a copy which kills its source reg that it removes the copy from said reg's Kills list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88881 91177308-0d34-0410-b5e6-96231b3b80d8 commit 248a854e1e7ba8c2ab6595e24948dabed45c280e Author: Lang Hames <lhames@gmail.com> Date: Mon Nov 16 02:00:09 2009 +0000 Fix for the original bug in PR5495 - Look at uses as well as defs when determining the PHI-copy insert point. - Patch by Andrew Canis! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88880 91177308-0d34-0410-b5e6-96231b3b80d8 commit 860fb5bb3ded49293473d043b5206742c14b3476 Author: Jim Grosbach <grosbach@apple.com> Date: Sun Nov 15 21:45:34 2009 +0000 Detect need for autoalignment of the stack earlier to catch spills more conservatively. eliminateFrameIndex() machinery adjust to handle addr mode 6 (vld1/vst1) used for spills. Fix tests to expect aligned Q-reg spilling git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b93798c0fd881d607fba728f7c138f8def59315 Author: Jim Grosbach <grosbach@apple.com> Date: Sun Nov 15 21:05:07 2009 +0000 set the def of the VLD1q64 properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88873 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c7aff7f75b0277e755005715910cc54058ee8e2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 20:03:53 2009 +0000 disable copying, enforce some invariants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88870 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7178235fa11abb93ec377646da59cd105b97793 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 20:02:12 2009 +0000 teach LVI to infer edge information from switch instructions. This allows JT to eliminate a ton of infeasible edges when handling code like the templates in PatternMatch.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37d31f5b76f2a9175d52c3e05dc032ee142a395e Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 20:01:24 2009 +0000 fix a logic error that would cause LVI-JT to miscompile some conditionals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88868 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84c81704932e9a6ec43dccd9f7337ddf9b586f2a Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 20:00:52 2009 +0000 implement the first stab at caching queries. This isn't correct (because the invalidation logic is missing) but LVI isn't enabled by default anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88867 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56b7f9e99d3085fbe9f56f000c3b8cb8c0d71e8f Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 19:59:49 2009 +0000 refactor a bunch of code forming the new LazyValueInfoCache and LVIQuery classes, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88866 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3e3a5da45bad95d74336408f3bcbf0ef5dfb801 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 19:58:31 2009 +0000 make PRE of loads preserve the alignment of the moved load instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88865 91177308-0d34-0410-b5e6-96231b3b80d8 commit de8ec70490a2344987913332ad11618bb6eb463e Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 19:57:43 2009 +0000 fix a bug handling 'not x' when x is undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88864 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8483451fe05bf3308c3fc1f171f1d95a09e79cec Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 19:56:28 2009 +0000 mark getIntrinsicID() 'readonly'. This allows various classof methods (like DbgDeclareInst's) to shrink substantially. It sucks that we have to pull Compiler.h into such a public header, but at least Compiler.h doesn't pull anything else in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88863 91177308-0d34-0410-b5e6-96231b3b80d8 commit a50e9237b7d8cdeace748653d7f96b9899fe22b7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 19:54:31 2009 +0000 add attributes for readnone/readonly functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88862 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ecb882db35446d5ee649d4d75b5e2de542c8c40 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 15 19:52:43 2009 +0000 add a version of array_pod_sort that takes a custom comparator function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88861 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78799101733621457222fe31d32291664e8aa350 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 15 17:51:23 2009 +0000 Add a complex missed optimization opportunity I came across while investigating bug 5438. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88855 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e3a24525cce403014d8bf531017cf632f6a1a06 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Sun Nov 15 10:18:17 2009 +0000 Add PSP OS Target to Triple, Credit to Bruno Cardoso Lopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88849 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d0c998ab9affd1d2fd66fa94726b3d171ab0303 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 15 08:10:29 2009 +0000 lit: Factor a new OneCommandPerFileTest out of SyntaxCheckTest. - Used for running a single fixed command on a directory of files, with the option of deriving a temporary input file from the test source. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88844 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb7d651805dd1b62eaea656e570ba8da682b8ca1 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 15 07:47:32 2009 +0000 Revert r88830 and r88831 which appear to have caused a selfhost buildbot some grief. I suspect this patch merely exposed a bug else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88841 91177308-0d34-0410-b5e6-96231b3b80d8 commit d71aeb7ade8a57594e422b669b689a9b7e402ed0 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 15 07:22:58 2009 +0000 Remove duplicate implementation of excludes functionality, and support excluding dirnames. Also, add support for the 'unsupported' config property. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88838 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0410a11814d5923395775f889a11b11405dd8f1 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 15 06:16:57 2009 +0000 Correct typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88831 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8e3063c9c13bad8152942da6c362db2180fb6a0 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 15 05:55:17 2009 +0000 Teach instcombine to look for booleans in wider integers when it encounters a zext(icmp). It may be able to optimize that away. This fixes one of the cases in PR5438. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88830 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed6d6e7ec31ebd4b2a7cf8117082bd4395e6bd91 Author: Lang Hames <lhames@gmail.com> Date: Sun Nov 15 04:39:51 2009 +0000 Added an assert to the PBQP allocator to catch infinite cost solutions which might otherwise lead to miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88829 91177308-0d34-0410-b5e6-96231b3b80d8 commit e22eb6b2ec6cb14f8fd750ca0582bb5788da783a Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 15 01:02:09 2009 +0000 lit: Add --repeat=N option, for running each test N times. - Currently just useful for timing, although it could be extended as one (bad) way to deal with flaky tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88827 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fa13439112fd8cec6b2a3ad6b642664e5922068 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 14 22:04:42 2009 +0000 Remove bogus corei7 and atom entries, the family was incorrect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4823e959d80382898b5dcfb7a67f75ec56781516 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 14 21:57:35 2009 +0000 remove xfail git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88817 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8ed2bb105e79bbc6f3347fb2f513127d1abedc7 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 14 21:36:19 2009 +0000 Fill out X86 table, although we are missing lots of names for things. We now properly detect my Xeon box though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88814 91177308-0d34-0410-b5e6-96231b3b80d8 commit d31559cc26ed09e6ea8b7a77d59fa343d9f92795 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 14 21:36:07 2009 +0000 Report the detected host CPU in --version. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88813 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4b383b2502314ea3868c5646d201ba463974752 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 14 21:33:37 2009 +0000 cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37957d5ea068c53cda4586c3391a66b355cadddf Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 14 20:15:03 2009 +0000 Do not merge jump tables this early. Branch folding will do any necessary merges, and until then, it's useful to keep the tables separate for ease of manipulation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b8810510f177de84116be20460126c81b4e2575 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 14 20:10:18 2009 +0000 Cleanup flow, and only update the jump table we're analyzing when replacing a destination MBB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88805 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47387c55bcb1613a65de19780f7fe900253f3c6d Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 14 20:09:13 2009 +0000 Add function to replace a destination MBB in a single jump table git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88804 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c53a0c29398ff20c94d466093405662b50bad47 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Nov 14 19:51:20 2009 +0000 Remove dead variable found by clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88803 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca574ca06afe9019e0a955b4ebd8555fc3622357 Author: Richard Osborne <richard@xmos.com> Date: Sat Nov 14 19:33:35 2009 +0000 Add XCore support for arbitrary-sized aggregate returns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88802 91177308-0d34-0410-b5e6-96231b3b80d8 commit c28999496ea409dae005b6278b5730b6e421d552 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 14 18:01:41 2009 +0000 Temporary disable the error - it seems to be too conservative. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88800 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f5690b2a5307bf3ca135f41ca2a42123026d12e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Nov 14 16:37:18 2009 +0000 Implement DISABLE_INLINE for MSVC. This required changing the position in all forward declaration and patching tblgen to emit it right. Patch by Amine Khaldi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 653ec44e67895e6a844808a07cf98bfcecf46da4 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Nov 14 15:15:39 2009 +0000 This test doesn't work on arm either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88794 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0bb845e635bd183b9526dff7a60f5c8edfd3392 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Nov 14 14:14:58 2009 +0000 Make NORETURN working with MSVC. MSVC only accepts NORETURN in front of the decl so move it there. GCC accepts it both in front and after decls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91c44416fdc2fb7eb5969bd011fcb35862f19125 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 14 10:09:12 2009 +0000 Add llvm::sys::getHostCPUName, for detecting the LLVM name for the host CPU. - This is an initial step towards -march=native support in Clang, and towards eliminating host dependencies in the targets. See PR5389. - Patch by Roman Divacky! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 216b9ea902b6a96fa246f8212aa63df272c832b9 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Nov 14 07:25:54 2009 +0000 Remove LLVMContext from reassociate. It was threaded through every function but ultimately never used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88763 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5461b52004980be0ec9abac2199abb4371dcfb3f Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sat Nov 14 07:22:25 2009 +0000 revert 88761 as it fails builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88762 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bd6558bac94a6e57c6ccb051feed72d7124470a Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sat Nov 14 06:19:49 2009 +0000 Fix debug info crashes for PIC16. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88761 91177308-0d34-0410-b5e6-96231b3b80d8 commit b341c078583a302c2a8c8b99fe41d1cb9ee38e5b Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Nov 14 06:15:14 2009 +0000 Teach BasicAA that a constant expression can't alias memory provably not allocated until runtime (such as an alloca). Patch by Hans Wennborg! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88760 91177308-0d34-0410-b5e6-96231b3b80d8 commit f177bd4187684d81daae0889083f1a17dbea9616 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 14 03:42:17 2009 +0000 Added getSubRegIndex(A,B) that returns subreg index of A to B. Use it to replace broken code in VirtRegRewriter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88753 91177308-0d34-0410-b5e6-96231b3b80d8 commit a88d1acbaefb5416a147dcdd2199bb43ab70983d Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 14 02:55:43 2009 +0000 - Change TargetInstrInfo::reMaterialize to pass in TargetRegisterInfo. - If destination is a physical register and it has a subreg index, use the sub-register instead. This fixes PR5423. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88745 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8d2665eb0e8faf17ba618c946f542c6d9c35e4a Author: Dan Gohman <gohman@apple.com> Date: Sat Nov 14 02:27:51 2009 +0000 Add an option for running GVN with redundant load processing disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1196b1407d835a21fc3b9181c821822b4602ef04 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 14 02:11:32 2009 +0000 Add radar number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5da2b872edfc21b7483158f064a9f98636302c78 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 14 02:09:09 2009 +0000 Fix PR5412: Fix an inverted check and another missing sub-register check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88738 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0c961121927e428d6279512dd45c634aafd1593 Author: Dan Gohman <gohman@apple.com> Date: Sat Nov 14 02:06:30 2009 +0000 Enable the tail call optimization when the caller returns undef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 770b4d6907dab297589a12d3bf89f926c0b400e9 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 14 01:50:00 2009 +0000 When expanding t2STRDi8 r, r to two stores, add kill markers correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88734 91177308-0d34-0410-b5e6-96231b3b80d8 commit 257ed14adea832ee52d55613bd9f8ce3d2a8f43d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Nov 14 00:38:13 2009 +0000 Fix bug in -split-phi-edges. When splitting an edge after a machine basic block with fall-through, we forgot to insert a jump instruction. Fix this by calling updateTerminator() on the fall-through block when relevant. Also be more precise in PHIElimination::isLiveIn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88728 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e3a74162079124f41f7b17b28d8c2e96ce76a16 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Nov 14 00:38:06 2009 +0000 Update MachineDominator information git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f1c0cea5912f6b4297d4557b5d13f5d1d39f522 Author: Lang Hames <lhames@gmail.com> Date: Sat Nov 14 00:02:51 2009 +0000 Added an API to the SlotIndexes pass to allow new instructions to be inserted into the numbering. PreAllocSplitting is now using this API to insert code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88725 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02406c496c6b5242eeb2d3d623d0cf50193f30e7 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 13 23:16:41 2009 +0000 Fix PR5411. Bug in UpdateKills. A reg def partially define its super-registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88719 91177308-0d34-0410-b5e6-96231b3b80d8 commit a974c30e47670933e452a2eaa35ecacbcedae572 Author: Eric Christopher <echristo@apple.com> Date: Fri Nov 13 23:08:47 2009 +0000 Remove extraneous commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88716 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9d5a80c80238bf6b3fce6507ba8a9568bc5b093 Author: Eric Christopher <echristo@apple.com> Date: Fri Nov 13 23:00:14 2009 +0000 Print out something, even if it's non-parseable later when we've got ghost linkage. It's better than aborting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88715 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c29f6d0a24c3dada6f50d47f6ccc90293a9840e Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 13 22:24:13 2009 +0000 Move the FixedStackPseudoSourceValueVal enum value before InstructionVal so that isa<Instructon> doesn't return true for FixedStackPseudoSourceValue values. This fixes a variety of problems, including crashes with -debug and -print-machineinstrs. Also, add a comment to warn about this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88711 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee787d256e654edaad2c585042e60c8cfa761fd3 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Nov 13 21:58:54 2009 +0000 Disable the JITTest.NoStubs test for Darwin PPC. It apparently doesn't implement emitFunctionStubAtAddr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88708 91177308-0d34-0410-b5e6-96231b3b80d8 commit abb5622f9edb5b9a82ac2b0b93031a30c5b358e0 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Nov 13 21:56:15 2009 +0000 Fix PHIElimination optimization that uses MBB->getBasicBlock. The BasicBlock associated with a MachineBasicBlock does not necessarily correspond to the code in the MBB. Don't insert a new IR BasicBlock when splitting critical edges. We are not supposed to modify the IR during codegen, and we should be able to do just fine with a NULL BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fea16565f83b155fcd7edc5faa8ef7b1a7dfea1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Nov 13 21:56:09 2009 +0000 Add MachineFunction::verify() to call the machine code verifier directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88706 91177308-0d34-0410-b5e6-96231b3b80d8 commit c43aee1e131787dcea2d7f32494d80583723e92f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Nov 13 21:56:01 2009 +0000 The instruction pointer %RIP is a reserved register on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14b7fce7a45ed35c18811033e25a200a53ad49e1 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Fri Nov 13 21:55:54 2009 +0000 Fix polarity of a CFG check in machine verifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88704 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5d3935ad09cafa5d8fe40f1b65ab398e4e7b0e4 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 13 21:55:31 2009 +0000 Use .data() instead of .c_str() when nul-termination is not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88703 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c0334d78ba363c2ab2edb2ac7a9f4b340764f1b Author: Devang Patel <dpatel@apple.com> Date: Fri Nov 13 21:45:04 2009 +0000 Do not use value handle to wrap MDNode in DIDescriptor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88700 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca9b04ba02e321977d03e79a5bbd4c95eb23a0d8 Author: David Greene <greened@obbligato.org> Date: Fri Nov 13 21:34:57 2009 +0000 Move DebugInfo checks into EmitComments and remove them from target-specific AsmPrinters. Not all comments need DebugInfo. Re-enable the line numbers comment test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88697 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd6a8e23207f276f915f20cad9f3905a862df5d9 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 13 21:02:15 2009 +0000 When optimizing for size, don't tail-merge unless it's likely to be a code-size win, and not when it's only likely to be code-size neutral, such as when only a single instruction would be eliminated and a new branch would be required. This fixes rdar://7392894. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5cec5f651fae320adef8d66650851fa86587a88d Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 13 20:36:40 2009 +0000 Fix PR5410: LiveVariables lost subreg def: D0<def,dead> = ... ... = S0<use, kill> S0<def> = ... ... D0<def> = The first D0 def is correctly marked dead, however, livevariables should have added an implicit def of S0 or we end up with a use without a def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88690 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6e30350b685bd4c9eddf4a88cb5dac41ee61eb8 Author: David Goodwin <david_goodwin@apple.com> Date: Fri Nov 13 19:52:48 2009 +0000 Allow target to specify regclass for which antideps will only be broken along the critical path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88682 91177308-0d34-0410-b5e6-96231b3b80d8 commit e149835a3e9026a8ee4765e81a67d3961e62fc6c Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Fri Nov 13 18:49:59 2009 +0000 Support fp64 immediate zero, this fixes only part of PR5445 because the testcase is triggering one more bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88674 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3510e118fbdf09887c4b804f1eba0cb62a2d3493 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 13 18:49:38 2009 +0000 Don't let a noalias difference disrupt the tailcall optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88672 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c0d846c1608882657e4adf01703a7bc907baf48 Author: David Greene <greened@obbligato.org> Date: Fri Nov 13 14:42:06 2009 +0000 Remove duplicate APIs and state WRT spill objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87106 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce91e0acd570dd9d2e5ef054cec34e820f1a4f75 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Nov 13 04:55:09 2009 +0000 Distinguish "a," from "a". The first one splits into "a" + "" and the second one into "a" + 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87084 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e78567b46273b04541d5b68e5eb11987b54d8a5 Author: Devang Patel <dpatel@apple.com> Date: Fri Nov 13 02:27:33 2009 +0000 Revert r87059 for now. It is failing clang tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87070 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab9a0687312516700d6aae598e894db4560a48b0 Author: Devang Patel <dpatel@apple.com> Date: Fri Nov 13 02:25:26 2009 +0000 Ignore nameless variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87069 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3d49596b97b7363bb783adb0d02a22e99bc0b48e Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Nov 13 02:18:25 2009 +0000 Switch to smallvector. Also fix issue with using unsigend for MaxSplit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87068 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48fd1e4422178b0f4989d6c06fc8abfb5b9fd12d Author: Dale Johannesen <dalej@apple.com> Date: Fri Nov 13 01:45:18 2009 +0000 Adjust isConstantSplat to allow for big-endian targets. PPC is such a target; make it work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 44b3c3ef7154bcc1a0637b1cf253d14864e96cc3 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Nov 13 01:44:55 2009 +0000 Remove unnecessary llvm.dbg.declare bitcast git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76af158707679cc7764fa8b91f1924a0f3976114 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Nov 13 01:24:40 2009 +0000 Add a new split method to StringRef that puts the substrings in a vector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87058 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08ca9519152539cb987a447473da7bffb0ddada1 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Nov 13 01:19:24 2009 +0000 Block renumbering git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b6f987c42f5224cbba161d8f8705a2085548515 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Nov 13 01:17:22 2009 +0000 use lower case for readability git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87054 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee41cf2347a7798f9ddde2281e72f34b2cc2e916 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Nov 13 01:01:58 2009 +0000 Update test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98c70f7c2db8426127d953589a1f3d2490646137 Author: David Greene <greened@obbligato.org> Date: Fri Nov 13 00:29:53 2009 +0000 Fix a bootstrap failure. Provide special isLoadFromStackSlotPostFE and isStoreToStackSlotPostFE interfaces to explicitly request checking for post-frame ptr elimination operands. This uses a heuristic so it isn't reliable for correctness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87047 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5d9ade2f815552c50c991ffed2128f376e00338 Author: Owen Anderson <resistor@mac.com> Date: Thu Nov 12 23:22:41 2009 +0000 Re-enable this code, since redundant PHIs are now being better nuked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b8472da2572659b4ed6b9c4bef4b71ca2d1626f Author: Bill Wendling <isanbard@gmail.com> Date: Thu Nov 12 23:13:08 2009 +0000 Simplify code a bit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87040 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7354a3e048bb8ca2281d38778368bfbbfb05c2b6 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Nov 12 21:59:20 2009 +0000 Refactor code that checks if it's a call to a "nounwind" function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87036 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17909ebface5a88cea9259ab16689ea4baf7464a Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 21:58:18 2009 +0000 use isInstructionTriviallyDead, as pointed out by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87035 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b5fbf226159fc889516396ec979f408a182c136 Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 21:49:55 2009 +0000 Do some cleanups suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87034 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6cace3a4708a5e41259f53b254a68f2b9e0ca28 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 12 21:26:11 2009 +0000 StringRef(const char*) should not be used to turn null pointers into empty strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fb68ff9424b68ae0d41d9d58372f9075a35b2c1 Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 21:07:54 2009 +0000 Set the ReloadReuse AsmPrinter flag where appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87030 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e820e14feed174af0008f03ae3adc37add9b445 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 12 21:07:02 2009 +0000 Remove my Value.h build fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87029 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cf8534ab3c029dc5d792d8e36357c8028278a67 Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 21:04:19 2009 +0000 Fix a build error by providing a missing enum value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87028 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ba3999a322f98167aab91baf54a4119b1fa518b Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 21:00:03 2009 +0000 Make the MachineFunction argument of getFrameRegister const. This also fixes a build error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87027 91177308-0d34-0410-b5e6-96231b3b80d8 commit 138ae5347fabad22459cd18576e44b630859e389 Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 20:55:29 2009 +0000 Add hasLoadFromStackSlot and hasStoreToStackSlot to return whether a machine instruction loads or stores from/to a stack slot. Unlike isLoadFromStackSlot and isStoreFromStackSlot, the instruction may be something other than a pure load/store (e.g. it may be an arithmetic operation with a memory operand). This helps AsmPrinter determine when to print a spill/reload comment. This is only a hint since we may not be able to figure this out in all cases. As such, it should not be relied upon for correctness. Implement for X86. Return false by default for other architectures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87026 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99182191f2a0ce322f3576a4211d6b6fcaec5a78 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 12 20:53:56 2009 +0000 Attempt to unbreak LLVM build, David G. please check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87025 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3824bc8f0c4ba2970f9100e871692e389351fa55 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 12 20:53:43 2009 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87024 91177308-0d34-0410-b5e6-96231b3b80d8 commit e32637bcbd717a8233de28566aeaa0b2db1d659b Author: Bill Wendling <isanbard@gmail.com> Date: Thu Nov 12 20:51:53 2009 +0000 If there's more than one function operand to a call instruction, be conservative and don't assume that the call doesn't throw. It would be nice if there were a way to determine which is the callee and which is a parameter. In practice, the architecture we care about normally only have one operand for a call instruction (x86 and arm). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87023 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6424ab9738972c0a9d5f588c59645f85782cf68c Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 20:49:22 2009 +0000 Add a bool flag to StackObjects telling whether they reference spill slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87022 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea862b03de56f3746e10b93b4aaea3f5c781fd21 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 12 20:36:59 2009 +0000 Add compare_lower and equals_lower methods to StringRef. Switch all users of StringsEqualNoCase (from StringExtras.h) to it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b11c7069ffa39e6276b66d9dbf91ecd3844f286 Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 20:25:07 2009 +0000 Make FixedStackPseudoSourceValue a first-class PseudoSourceValue by making it visible to clients and adding LLVM-style cast capability. This will be used by AsmPrinter to determine when to emit spill comments for an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 145fd183554981733e64ccce959b8b4ea9b66ed3 Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 20:21:09 2009 +0000 Add AsmPrinter comment flags to machine instructions so that AsmPrinter can emit extra information in comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87018 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ea46c5af1b82dc5af51ced679e665d87129c5ba Author: David Greene <greened@obbligato.org> Date: Thu Nov 12 20:13:34 2009 +0000 Add comment flags so AsmPrinter can output additional information when emitting comments. These flags carry semantic information not otherwise easily derivable from the IR text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87016 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f708fd24678e7f44057dd08643f78dd1541aa5a Author: David Goodwin <david_goodwin@apple.com> Date: Thu Nov 12 19:08:21 2009 +0000 Rename registers to break output dependencies in addition to anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a7ef8dcbe4c986ba7f4267b56d4779567bc91ff Author: Devang Patel <dpatel@apple.com> Date: Thu Nov 12 19:02:56 2009 +0000 "Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28bc2ec029ce31dc4acc3da2a082c407f8a982ef Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 12 18:36:19 2009 +0000 Mark DBG_LABEL, EH_LABEL, and GC_LABEL as not-duplicable, since they really are not duplicable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87009 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3de6e216c54e25c6275e55797087db22d0da82e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 12 17:59:45 2009 +0000 Silence a warning on targets with unsigned chars. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@87002 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b0dd3fed34eb77a58c42aee574e171fe5d983df Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 12 17:25:07 2009 +0000 Update TB[BH] layout optimization. Add support for moving the target block to directly follow the jump table. Move the layout changes to prior to any constant island handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86999 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8ffe253d56acda3d573471d0d97f916ca3f0879 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 12 17:19:09 2009 +0000 Clean up testcase a bit. Simplify case blocks and adjust switch instruction to not take an undefined value as input. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86997 91177308-0d34-0410-b5e6-96231b3b80d8 commit c07cafee23409d04581c2873bcbb58d8f383939a Author: Nuno Lopes <nunoplopes@sapo.pt> Date: Thu Nov 12 15:10:33 2009 +0000 fix crash in my previous patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86987 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e03e8568fcb49eadc7d0baf9640d28fb2e0444f Author: Nuno Lopes <nunoplopes@sapo.pt> Date: Thu Nov 12 14:53:53 2009 +0000 implement shl, ashr, and lshr methods. shl is not fully implemented as it is quite tricky. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86986 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbc070fd1e24e88edc865429c356f5f53de020af Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 12 12:35:27 2009 +0000 Fix typo in run line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86984 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9adc091f450070795e2e1f8f83eead54ca000b55 Author: Gabor Greif <ggreif@gmail.com> Date: Thu Nov 12 09:44:17 2009 +0000 typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86980 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83cd6cbb1c6ad22198d156c6d43b1158eeca4ee8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 07:56:08 2009 +0000 implement a nice little efficiency hack in the inliner. Since we're now running IPSCCP early, and we run functionattrs interlaced with the inliner, we often (particularly for small or noop functions) completely propagate all of the information about a call to its call site in IPSSCP (making a call dead) and functionattrs is smart enough to realize that the function is readonly (because it is interlaced with inliner). To improve compile time and make the inliner threshold more accurate, realize that we don't have to inline dead readonly function calls. Instead, just delete the call. This happens all the time for C++ codes, here are some counters from opt/llvm-ld counting the number of times calls were deleted vs inlined on various apps: Tramp3d opt: 5033 inline - Number of call sites deleted, not inlined 24596 inline - Number of functions inlined llvm-ld: 667 inline - Number of functions deleted because all callers found 699 inline - Number of functions inlined 483.xalancbmk opt: 8096 inline - Number of call sites deleted, not inlined 62528 inline - Number of functions inlined llvm-ld: 217 inline - Number of allocas merged together 2158 inline - Number of functions inlined 471.omnetpp: 331 inline - Number of call sites deleted, not inlined 8981 inline - Number of functions inlined llvm-ld: 171 inline - Number of functions deleted because all callers found 629 inline - Number of functions inlined Deleting a call is much faster than inlining it, and is insensitive to the size of the callee. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86975 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdac8bdcab6df408da67ef9f8a32a6298a8a523c Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 12 07:49:10 2009 +0000 RegScavenger::enterBasicBlock should always reset register state. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86972 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d70200b12f1e1f28c87f18e8cfcad09490dfb10 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 12 07:35:05 2009 +0000 - Teach LSR to avoid changing cmp iv stride if it will create an immediate that cannot be folded into target cmp instruction. - Avoid a phase ordering issue where early cmp optimization would prevent the later count-to-zero optimization. - Add missing checks which could cause LSR to reuse stride that does not have users. - Fix a bug in count-to-zero optimization code which failed to find the pre-inc iv's phi node. - Remove, tighten, loosen some incorrect checks disable valid transformations. - Quite a bit of code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86969 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae466e3c7583e38941203c6de310f4749ccc529e Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 12 07:16:34 2009 +0000 Use table to separate opcode from operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86965 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a2ce50346bc55508a38e13d389bcafab7eb4c29 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 12 07:13:11 2009 +0000 isLegalICmpImmediate should take a signed integer; code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86964 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8d851e5c0812d5b3c93b8180b2e85e50411d6b5 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Nov 12 06:48:09 2009 +0000 CMake: Hopefully unbreak the build by mimicking the changes on the other build system about the new C_INCLUDE_DIRS configure option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86960 91177308-0d34-0410-b5e6-96231b3b80d8 commit 354924df7e9bffc35f8eccff8152c678f17a9885 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Thu Nov 12 05:46:09 2009 +0000 Add the --with-c-include-dirs to llvm's configure. The clang patch is next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86955 91177308-0d34-0410-b5e6-96231b3b80d8 commit 469f048845803a7e0a71fc315e6962f3978ff466 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Nov 12 05:36:09 2009 +0000 CMake: Pass -lm to check_symbol_exists for detecting several math functions like floorf, ceilf, ... Add test for detecting nearbyintf. This change was prompted by test/Transforms/SimplifyLibCalls/floor.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86954 91177308-0d34-0410-b5e6-96231b3b80d8 commit 670358cf61e1f7b5c6753dc2fc08b336634dac1e Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 05:24:05 2009 +0000 use getPredicateOnEdge to fold comparisons through PHI nodes, which implements GCC PR18046. This also gets us 360 more jump threads on 176.gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45dfc9458f8565fd2e9a3974569e6b37e56fa9f5 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 04:57:13 2009 +0000 various fixes to the lattice transfer functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86952 91177308-0d34-0410-b5e6-96231b3b80d8 commit e876ad0cacd6c9809e4924d53a0fa8d2c6d8816e Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 04:37:50 2009 +0000 switch jump threading to use getPredicateOnEdge in one place making the new LVI stuff smart enough to subsume some special cases in the old code. Disable them when LVI is around, the testcase still passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86951 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90fedb1f17790459fdbb555fe278f05e39bf1dac Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 04:36:58 2009 +0000 Add a new getPredicateOnEdge method which returns more rich information for constant constraints. Improve the LVI lattice to include inequality constraints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86950 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04e67d0e2a2d7bcde1028998b06990c935dd95b2 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 12 03:55:33 2009 +0000 Move the utility function UpdateTerminator() from CodePlacementOpt() into MachineBasicBlock so other passes can utilize it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86947 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7ecb28b62f3fd1539b294e07c6cf3ab9b61f1bb Author: Jim Grosbach <grosbach@apple.com> Date: Thu Nov 12 03:28:35 2009 +0000 Revert 86857. It's causing consumer-typeset to fail, and there's a better way to do it forthcoming anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86945 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea644f7a484cc773e729614db11a760b62c857db Author: Eric Christopher <echristo@apple.com> Date: Thu Nov 12 03:12:18 2009 +0000 Use stubs when we have them, otherwise use code we already have, otherwise create a stub. Add a test to make sure we don't create extraneous stubs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86941 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b6922036dab420a5eddf28e887c2e44c6c0f340 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 12 02:52:56 2009 +0000 Add the braces gcc suggested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86933 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b3a128b658b346c36d5e212922b432dcb5b3dfa Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Nov 12 02:08:11 2009 +0000 Add CreateNUWAdd and CreateNUWSub to complement the existing CreateNSWAdd and CreateNSWSub functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86930 91177308-0d34-0410-b5e6-96231b3b80d8 commit d74192e646c8d5fa743cc6b120d4cd5aef19e08a Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 02:04:17 2009 +0000 should not commit when distracted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86929 91177308-0d34-0410-b5e6-96231b3b80d8 commit b53550dee876b4de5472e30c701034694d0e5d24 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 12 01:59:26 2009 +0000 Make the BranchFolderPass class local to BranchFolding.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86928 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52ba84cea50c305d9ce2e0371554b246048f2a7b Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 01:55:20 2009 +0000 We now thread some impossible condition information with LVI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86927 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f14744c3d06ad94c6a47e1258e73d724b81a2b6 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 12 01:51:28 2009 +0000 Minor code cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86926 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a90e1559353cc51cd1acfa8ba7e34e263ae4cd3 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 01:41:34 2009 +0000 with the new code we can thread non-instruction values. This allows us to handle the test10 testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86924 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45404958d705d78cc6068356f8ee293b27b15219 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 01:37:43 2009 +0000 this argument can be an arbitrary value, it doesn't need to be an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2859e1cd581ff16359db8dfa133317715a398fa1 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 01:29:10 2009 +0000 expose edge information and switch j-t to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86920 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2df5c60d9171a173f7bad2e3d53c8c35c85b96d5 Author: Lang Hames <lhames@gmail.com> Date: Thu Nov 12 01:24:08 2009 +0000 Fixed an iteration condition in PreAllocSplitting. This should fix some miscompilations casued by PreAllocSplitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86919 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5133689def7aab253f03da63975c6b0dbe3169a Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 12 01:22:16 2009 +0000 move some stuff into DEBUG's and turn on lazy-value-info for the basic.ll testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86918 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdd18e596e8433c00b9ba325c9ba623ab7f08004 Author: Eric Christopher <echristo@apple.com> Date: Thu Nov 12 01:06:08 2009 +0000 Fix typo, cleanup whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f1c0f3a937b5034b5cbc59b98de5d1208f94313 Author: Devang Patel <dpatel@apple.com> Date: Thu Nov 12 00:50:58 2009 +0000 Do not use StringRef in DebugInfo interface. This allows StringRef to skip controversial if(str) check in constructor. Buildbots, wait for corresponding clang and llvm-gcc FE check-ins! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86914 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08982a392a0eaba71c37087eb53b071aa29b55e8 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 12 00:39:10 2009 +0000 Tail merge at any size when there are two potentials blocks and one can be made to fall through into the other. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86909 91177308-0d34-0410-b5e6-96231b3b80d8 commit d225fdf94c2b6eeed4f5511a134750cf6970b377 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Nov 11 23:17:02 2009 +0000 Don't mark a call as potentially throwing if the function it's calling has the "nounwind" attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86897 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60ee2143d4989e3a6897c10f998b697bd8a41cf2 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Wed Nov 11 23:09:33 2009 +0000 A real solution for the first part of PR5445 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86895 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bc1ebed0e03786c25f380ed0dc397013f17360e Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 22:48:44 2009 +0000 make LazyValueInfo actually to some stuff. This isn't very tested but improves strswitch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86889 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2deeebcd534ee7de0ea3cab6bce2dde77dfc59ce Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 22:31:38 2009 +0000 pass TD into a SimplifyCmpInst call. Add another case that uses LVI info when -enable-jump-threading-lvi is passed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86886 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7bfb8796a10f92b4749d8c2510437693a8722e7 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 21:57:02 2009 +0000 Promote MergePotentialsElt and SameTailElt to be regular classes instead of typedefs for std::pair. This simplifies the type of SameTails, which previously was std::vector<std::pair<std::vector<std::pair<unsigned, MachineBasicBlock *> >::iterator, MachineBasicBlock::iterator> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86885 91177308-0d34-0410-b5e6-96231b3b80d8 commit cec9c63631255076665e2adec25fc785e6945e34 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Wed Nov 11 19:59:24 2009 +0000 x86 users can now return arbitrary sized structs. Structs too large to fit in return registers will be returned through a hidden sret parameter introduced during SelectionDAG construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86876 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36f0ea91aca18d364fde01604ebb6b1de21331b0 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 19:56:05 2009 +0000 Revert this line of 86871. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86875 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b4d683a5818182cbb69cd3e4b2e7a7585cdefc3 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 11 19:55:08 2009 +0000 If doesSupportDebugInformation() is false then do not try to emit dwarf debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47faa8df5d82bb3a11b334b589cf957ebc1e43a5 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 19:49:34 2009 +0000 Check in the changes to this file too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86873 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6638ea7611f1fa8da067372147aa7bbec6d2e562 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 19:48:59 2009 +0000 Add support for tail duplication to BranchFolding, and extend tail merging support to handle more cases. - Recognize several cases where tail merging is beneficial even when the tail size is smaller than the generic threshold. - Make use of MachineInstrDesc::isBarrier to help detect non-fallthrough blocks. - Check for and avoid disrupting fall-through edges in more cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86871 91177308-0d34-0410-b5e6-96231b3b80d8 commit 409558d2c4f941068e3d00eed5e0242ddeb90fba Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Nov 11 19:31:31 2009 +0000 Fix liveness calculation when splitting critical edges during PHI elimination. - Edges are split before any phis are eliminated, so the code is SSA. - Create a proper IR BasicBlock for the split edges. - LiveVariables::addNewBlock now has same syntax as MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out set rather than successor live-in set. This feature still causes some miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86867 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c86b6b0413e8ddf58ffea4a9917a81835606569 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 11 19:08:42 2009 +0000 Reenable StackTracke.cpp test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86861 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1ce565254502ef7472b125abc6918bd67fedcc4 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 11 19:06:06 2009 +0000 Add SetDebugLocation() variant to add debug info location to an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2621469af6386370b3bf8d41f9a76733b7a4e94b Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 11 19:05:52 2009 +0000 Add TargetLowering::isLegalICmpImmediate. It tells LSR what immediate can be folded into target icmp instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86858 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c7d61e9f372f1a6daccb4df389520193d58de67 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Nov 11 19:04:24 2009 +0000 Do jump table adjustment before constant island allocation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fc27d2431b70c05018c84432f6bbc13ea28cf91 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 18:42:28 2009 +0000 Fix indentation level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86856 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a6aa7b82c2ce16ee86ffb5e0ccd3b6007922397 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 18:38:14 2009 +0000 Whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86855 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa4f4fa4cae85ae252660d03d9af0b4ebe596169 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 18:23:17 2009 +0000 Prefix MBB numbers with "BB#" in debug output to make it clear what the numbers mean. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86854 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0045b0723b852027e2a6cf3fe8a0876a7e06280 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 18:18:34 2009 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86853 91177308-0d34-0410-b5e6-96231b3b80d8 commit 333246bfa9cfc484925a0b1487dd316e00a6cf50 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 18:14:02 2009 +0000 Fix a copy+pasto in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40685553381a0c38ff0c6c79d191f9df5caec623 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 18:11:07 2009 +0000 Set isBarrier = 1 on return instructions, as they are control barriers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8112b94b215d777db473b38ece871f3f6ed09032 Author: Dan Gohman <gohman@apple.com> Date: Wed Nov 11 18:07:16 2009 +0000 Use a tab in INT3's asm string, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4adaab13a9902c5c02c85afc051a6f858e003128 Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 17:54:02 2009 +0000 another const prop failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86848 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6b0ee1baa2aeaeaf8334d0c4e2b71ca0872712e Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 17:51:27 2009 +0000 add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86847 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16d2fcb1d839722c7f4458425eaa029faba019a2 Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 17:37:02 2009 +0000 Reject duplicate case values in a switch, PR5450. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86846 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87825dc679818a7b0a12be3832da6a8ed2358578 Author: Duncan Sands <baldrick@free.fr> Date: Wed Nov 11 15:34:13 2009 +0000 Don't trivially delete unused calls to llvm.invariant.start. This allows llvm.invariant.start to be used without necessarily being paired with a call to llvm.invariant.end. If you run the entire optimization pipeline then such calls are in fact deleted (adce does it), but that's actually a good thing since we probably do want them to be zapped late in the game. There should really be an integration test that checks that the llvm.invariant.start call lasts long enough that all passes that do interesting things with it get to do their stuff before it is deleted. But since no passes do anything interesting with it yet this will have to wait for later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86840 91177308-0d34-0410-b5e6-96231b3b80d8 commit 808b980ce8e153f4718b2b9f5210bd9a1aa03e3b Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 11 07:11:02 2009 +0000 Add nounwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86814 91177308-0d34-0410-b5e6-96231b3b80d8 commit 124efd4dc3d0638c2eee94d105b5f2a7a58bf80b Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 05:56:35 2009 +0000 remove the now dead condprop pass, PR3906. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 223f53f58f5b3de1b341e25802920048751aaf15 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Nov 11 05:30:02 2009 +0000 Fix JITTest.ModuleDeletion in -Asserts mode (which turns off JITEmitDebugInfo by default). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86807 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1c54d796895b812ca506547359d1fe6a07dc62f Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 05:25:16 2009 +0000 remove condprop testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86804 91177308-0d34-0410-b5e6-96231b3b80d8 commit c731e6c716e7193f0e3e0da2d5622e4e85c24802 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 11 05:19:11 2009 +0000 Add StringRef::split(StringRef), to complement StringRef::split(char). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86803 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6051856ac7cb0552bf0d1132f37cbb9b65153ae1 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Wed Nov 11 04:10:24 2009 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86802 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e51aebc45d335f03d31525f2c41130cd6068c9a Author: Sandeep Patel <deeppatel1987@gmail.com> Date: Wed Nov 11 03:23:46 2009 +0000 Show command-line args and features passed into backend in debug output. Approved by Evan Cheng. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86797 91177308-0d34-0410-b5e6-96231b3b80d8 commit 046dc77ed41a73b26064791659fed94e7a7ef86a Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 11 03:10:03 2009 +0000 Add missing run line. Devang, please check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86795 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9f2d2426db8ea833e540eeb26ac3e25f1741e4a Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 11 03:09:50 2009 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86794 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ae593cd1381ab2f6aff6eb1309a1a7b5270c8c6 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Nov 11 02:47:19 2009 +0000 The TBB and TBH instructions for Thumb2 are really handy for jump tables, but can only branch forward. To best take advantage of them, we'd like to adjust the basic blocks around a bit when reasonable. This patch puts basics in place to do that, with a super-simple algorithm for backwards jump table targets that creates a new branch after the jump table which branches backwards. Real heuristics for reordering blocks or other modifications rather than inserting branches will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42677804895d83660b0ba380227e0ed1dc1b522f Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 02:08:33 2009 +0000 stub out some LazyValueInfo interfaces, and have JumpThreading start using them in a trivial way when -enable-jump-threading-lvi is passed. enable-jump-threading-lvi will be my playground for awhile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86789 91177308-0d34-0410-b5e6-96231b3b80d8 commit db541c3878dc672baaef7a0f9fa6894b72b3d67a Author: Bill Wendling <isanbard@gmail.com> Date: Wed Nov 11 01:44:22 2009 +0000 Fix test to work on every platform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86786 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5198ca6c3aa6c3c4ba06123da6193f856b5e37fa Author: Bill Wendling <isanbard@gmail.com> Date: Wed Nov 11 01:41:32 2009 +0000 Fix test to work on every platform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01267264dd298b39aaeacb3e97796c87084cd491 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 11 01:41:10 2009 +0000 XFAIL for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c9df2b8d4ebb458bf3bd6088f0b9be26b2abc86 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Nov 11 01:24:59 2009 +0000 Make sure that the exception handling data has the same visibility as the function it's generated for. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86779 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae1135926a1e4e2e3a7f812fad28b66305b271cc Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 11 00:43:14 2009 +0000 Add Triple::str() which returns the contents of the Triple as a string, as a more readable alternative to getTriple(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86773 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce8986f9627a92ccebb067284b3cf4092d737149 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 11 00:31:36 2009 +0000 Do not assume first function scope seen represents current function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 609f3f8a0e727ee25be1f4ef17ab81b5db72fa24 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 11 00:28:53 2009 +0000 Add From arguments to StringRef search functions, and tweak doxyments. Also, add unittests for find_first_of and find_first_not_of. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7eef4c72249fd13ce9e766fc463efa6c44d25c0c Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 11 00:28:38 2009 +0000 llvm-gcc/clang don't (won't?) need this hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86769 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a0948830344dae797979c37dfc904cd932a43be Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 00:27:54 2009 +0000 oops, didn't mean to commit this, no harm, but add a todoops, didn't mean to commit this, no harm, but add a todoo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73c80094c819a5266794496cf39fa4b6a9b39e14 Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 00:22:30 2009 +0000 Stub out a new lazy value info pass, which will eventually vend value constraint information to the optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86767 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a0858228d368aaf25e514c8fbb857c0808c22dc Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 00:21:58 2009 +0000 add a fixme git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86766 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0585b20d136dd5ac675f7664dcb84d76c04ec26 Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 11 00:21:21 2009 +0000 remove redundant foward declaration. This function is already in Analysis/Passes.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53addbf446f848c0f165e5d2cbaca31fff796b36 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 11 00:18:40 2009 +0000 While creating DbgScopes, do not forget parent scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86763 91177308-0d34-0410-b5e6-96231b3b80d8 commit b31ea598704a4e5a07fbe3b9d8b2f4b95f713088 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 11 00:00:21 2009 +0000 Block terminator may be a switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86761 91177308-0d34-0410-b5e6-96231b3b80d8 commit de578195f23510abf1bb3d29994f4835798ee5d2 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 23:54:10 2009 +0000 jump threading does everything that condprop does any more. This passes bootstrap on darwin i386. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86758 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8106001c35356931ca296340ca27253d7c25c51a Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 23:47:45 2009 +0000 add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86756 91177308-0d34-0410-b5e6-96231b3b80d8 commit 759f058d1ef755e2bbfa851797e70a2c90bb93d9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 23:40:49 2009 +0000 I did this a week or two ago git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86754 91177308-0d34-0410-b5e6-96231b3b80d8 commit bad42264107804ba40844000f12d9e0a23ea563b Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 10 23:20:04 2009 +0000 Ignore variable if scope info is not available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86753 91177308-0d34-0410-b5e6-96231b3b80d8 commit 263c64f826938b1d5cdd747317a66898a1ad7031 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Nov 10 23:18:33 2009 +0000 Test this on Darwin only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b8c35b2d8a380c7ce06cce6618bb5875f5c5294 Author: Dale Johannesen <dalej@apple.com> Date: Tue Nov 10 23:16:41 2009 +0000 Emit correct code when making a ConstantPool entry for a vector constant whose component type is not a legal type for the target. (If the target ConstantPool cannot handle this type either, it has an opportunity to merge elements. In practice any target with 8-bit bytes must support i8 *as data*). 7320806 (partial). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90a0fe3bd6043f897285b967b196f6ab26dfdcae Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 10 23:06:00 2009 +0000 Implement support to debug inlined functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86748 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2df0e391758a9c98d063c8e44c0cf1021383a02 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 22:56:15 2009 +0000 in -dot-cfg and -dot-cfg-only, when rendering switch instructions, put the switch value in the successor boxes like we put T/F for branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5df5bb90f8aa6a3f5eab335cf87cdb9f928d6f93 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 22:39:16 2009 +0000 implement a TODO by teaching jump threading about "xor x, 1". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86739 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe96c5f78e17e7562622fe026d641d31f948de1c Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 22:26:15 2009 +0000 move some generally useful functions out of jump threading into libanalysis and transformutils. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86735 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a94dac821f39910b311b206a4b0f23649c826e2 Author: Dan Gohman <gohman@apple.com> Date: Tue Nov 10 22:16:57 2009 +0000 Don't mark conditional branch instructions as control barriers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86732 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7562d076e99129679edb7037d7a6a840448be217 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Nov 10 22:14:04 2009 +0000 Modify how the prologue encoded the "move" information for the FDE. GCC generates a sequence similar to this: __Z4funci: LFB2: mflr r0 LCFI0: stmw r30,-8(r1) LCFI1: stw r0,8(r1) LCFI2: stwu r1,-80(r1) LCFI3: mr r30,r1 LCFI4: where LCFI3 and LCFI4 are used by the FDE to indicate what the FP, LR, and other things are. We generated something more like this: Leh_func_begin1: mflr r0 stw r31, 20(r1) stw r0, 8(r1) Llabel1: stwu r1, -80(r1) Llabel2: mr r31, r1 Note that we are missing the "mr" instruction. This patch makes it more like the GCC output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86729 91177308-0d34-0410-b5e6-96231b3b80d8 commit e940b1d8d14af6d3006f6fbad95b9ff332469df4 Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 10 22:05:35 2009 +0000 Process InlinedAt location info. Update InsertDeclare to return newly inserted llvm.dbg.declare intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b8b05938fb8d9aacc01f526f010580668e028f5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 22:02:09 2009 +0000 fix a crash in SCCP handling extractvalue of an array, pointed out and tracked down by Stephan Reiter! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86726 91177308-0d34-0410-b5e6-96231b3b80d8 commit be9cdbf981991737b49e4474701e820bc881cbfd Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Nov 10 22:01:05 2009 +0000 Teach PHIElimination to split critical edges when -split-phi-edges is enabled. Critical edges leading to a PHI node are split when the PHI source variable is live out from the predecessor block. This help the coalescer eliminate more PHI joins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86725 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e45f87bcb425c0f18e92f80eac28a2dbc6be555 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Tue Nov 10 22:00:56 2009 +0000 Refactoring: Extract method PHIElimination::isLiveOut(). Clean up some whitespace. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86724 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c89abd1e17beb5886a27ec0e45615e0d21de7fb Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 21:45:09 2009 +0000 improve comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86723 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ca174c49440e447ac90ce2cc4c70d950db28cb2 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 21:40:01 2009 +0000 Make jump threading eliminate blocks that just contain phi nodes, debug intrinsics, and an unconditional branch when possible. This reuses the TryToSimplifyUncondBranchFromEmptyBlock function split out of simplifycfg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86722 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a0ab8392c91e1bae7901cedd6a12ba3aee2a1fd Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 10 21:14:05 2009 +0000 Generalize lsr code that optimize loop to count down towards zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86715 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc6409ff5b7c36c6e4fb3c3c03c4766554296a57 Author: Dan Gohman <gohman@apple.com> Date: Tue Nov 10 21:02:18 2009 +0000 Optimize test more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86714 91177308-0d34-0410-b5e6-96231b3b80d8 commit 053fd3c45f72e248641e349197db27d717c2be6e Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Nov 10 19:53:28 2009 +0000 make this handle redefinition of malloc function with different prototype correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86712 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4137d7cdf726c8d94ef376603d909b69037a9e91 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 10 19:48:13 2009 +0000 Change Thumb1 address mode printing, instead of [r0, #2 * 4] Now [r0, #8] This makes Thumb2 assembly more uniform and frankly the scale doesn't add much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 979c7ab12dfb8913593c05cb303b947c5b06d1f8 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 10 19:44:56 2009 +0000 Add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 260558f8510c33aa746818f43259bcdc74597ebc Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 10 19:36:40 2009 +0000 Add defensive break. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95734fc03391268e8791350141b2e4bb4f11bb03 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 10 18:24:37 2009 +0000 Add a monstrous hack to improve X86ISelDAGToDAG compile time. - Force NDEBUG on in any Release build. This drops the compile time to ~100s from ~600s, in Release mode. - This may just be a temporary workaround, I don't know the true nature of the gcc-4.2 compile time performance problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86695 91177308-0d34-0410-b5e6-96231b3b80d8 commit df5999a933bdc33038405dded11d5df3f9dd5ff6 Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 10 18:21:37 2009 +0000 Fix obvious typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86694 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc5d013abcc18fb77376ed402e24d3b8d22252d6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 17:00:47 2009 +0000 clarify logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86689 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e7b7d7c190786cc8844432d23e0bd0beed8c191 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Tue Nov 10 15:30:33 2009 +0000 CMake: Add Darwin-specific linker flags for building loadable modules git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86684 91177308-0d34-0410-b5e6-96231b3b80d8 commit b73594ca0d4eff2cc6ec0d9a7fa234b0a31a2bdf Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 10 13:49:50 2009 +0000 Teach DSE to eliminate useless trampolines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86683 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebb5cc581b2298046a670bfd273ffc3d0e47ac0f Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 10 09:32:10 2009 +0000 Add brackets to make gcc-4.4 happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86681 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb0ae064da8981a29f17d289d341d6fa981e2976 Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 10 09:08:09 2009 +0000 Codegen support for the llvm.invariant/lifetime.start/end intrinsics: just throw them away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86678 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43af76a34cd64afcaf7579be626b0309a6f1cc0d Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Nov 10 08:32:25 2009 +0000 Update computeArraySize() to use ComputeMultiple() to determine the array size associated with a malloc; also extend PerformHeapAllocSRoA() to check if the optimized malloc's arg had its highest bit set, so that it is safe for ComputeMultiple() to look through sext instructions while determining the optimized malloc's array size git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86676 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc57ab9a76f2ed92b1cc169e1feab30b920e6d87 Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Nov 10 08:28:35 2009 +0000 Add ComputeMultiple() analysis function that recursively determines if a Value V is a multiple of unsigned Base git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34d37223ac5283d3e95010a858ffd905d6e79b36 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 07:44:36 2009 +0000 optimize test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86672 91177308-0d34-0410-b5e6-96231b3b80d8 commit d001109874b60167b56116a54c0a08bf935cd062 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 07:23:37 2009 +0000 unify the code that determines whether it is a good idea to change the type of a computation. This fixes some infinite loops when dealing with TD that has no native types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 754b8dd86b9602a6fd2a01ae824d7f6abc3b8da3 Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Nov 10 07:00:43 2009 +0000 Simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86668 91177308-0d34-0410-b5e6-96231b3b80d8 commit f55c62cdb87a0d5bab5dc9a2aff770d6323f5831 Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Nov 10 06:46:40 2009 +0000 Reapply r86359, "Teach dead store elimination that certain intrinsics write to memory just like a store" with bug fixed (partial-overwrite.ll is the regression test). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86667 91177308-0d34-0410-b5e6-96231b3b80d8 commit c006fc03f5592d1eaeef4eb090b0056e2420e9a6 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 05:59:26 2009 +0000 refactor TryToSimplifyUncondBranchFromEmptyBlock out of SimplifyCFG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86666 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc174b18352c1bb89d7871fb4d0de7998472e60f Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Nov 10 02:45:37 2009 +0000 CMake: Support for building llvm loadable modules. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 861f9d4ecfe8412da341a88fd38c5e2ba0ac990e Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 10 02:41:27 2009 +0000 lit: Start documentation testing architecture. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86655 91177308-0d34-0410-b5e6-96231b3b80d8 commit de18cd2603d56c4d99ae5f3659bb133ffa1b07c7 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 10 02:41:17 2009 +0000 lit: Add ExampleTests, for testing lit and demonstrating test suite features. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25869df0693d50591c28c86424341ffc64a2522f Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 10 02:40:21 2009 +0000 lit: Fix bug in --show-suites which accidentally override the list of tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1700ffa4eaeb0f11cdd6d8ef6537ec0cf08ffc5a Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Tue Nov 10 02:35:13 2009 +0000 Fix PR5445 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86651 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70f4e8f2d2740f7233c85726450a253c806ebfff Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 02:04:54 2009 +0000 I misread the parens, not so redundant after all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86648 91177308-0d34-0410-b5e6-96231b3b80d8 commit a66ac18f9e84664d748f52a82d350287b6a0b629 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 01:57:31 2009 +0000 make jump threading recursively simplify expressions instead of doing it just one level deep. On the testcase we go from getting this: F1: ; preds = %T2 %F = and i1 true, %cond ; <i1> [#uses=1] br i1 %F, label %X, label %Y to a fully threaded: F1: ; preds = %T2 br label %Y This changes gets us to the point where we're forming (too many) switch instructions on doug's strswitch testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86646 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0e5b0cbed7a7bb83ef652042d1964d263f3c89f Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 01:56:04 2009 +0000 remove some redundant parens. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86645 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42d0954b5c5a3e29f7e010b48f0f47ea83f6d4a5 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Nov 10 01:45:05 2009 +0000 CMake: Remove unnecessary `unset' which was not supported by old cmake releases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86644 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91f5efc47691a931743775b97103f84879d121e5 Author: Dan Gohman <gohman@apple.com> Date: Tue Nov 10 01:37:57 2009 +0000 Remove an unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86642 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b3225207423344cbac9fa367c077055d0cdeaf9 Author: Dan Gohman <gohman@apple.com> Date: Tue Nov 10 01:36:20 2009 +0000 Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1439df1156885faa7395fba6671731fa12ef6f31 Author: Dan Gohman <gohman@apple.com> Date: Tue Nov 10 01:33:08 2009 +0000 Trim a bunch of unneeded code from this testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86640 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9b70547cbc08570254283673cfe0873fd8c935f Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 01:19:06 2009 +0000 don't invalidate PN, rewrite of this code is in progress anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86639 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d8a0bbc8ec438abd9c9daa1387ac7e2fa2255c0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 01:08:51 2009 +0000 add a new SimplifyInstruction API, which is like ConstantFoldInstruction, except that the result may not be a constant. Switch jump threading to use it so that it gets things like (X & 0) -> 0, which occur when phi preds are deleted and the remaining phi pred was a zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86637 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8154d2e023fe3137363f8bbc9dae2dff7188dccb Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Nov 10 01:02:17 2009 +0000 Fix DenseMap iterator constness. This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86636 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3e46f6405c5b7c3284325514b8f573e197d9b4a Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 10 00:55:12 2009 +0000 factor simplification logic for AND and OR out to InstSimplify from instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a0ca3b82e4e78705e37f2b3d9092bc9767b8306 Author: David Goodwin <david_goodwin@apple.com> Date: Tue Nov 10 00:48:55 2009 +0000 Fixed to address code review. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80ab6551aafc61c32f496dcce7531a4621be653b Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 10 00:43:58 2009 +0000 Fix MemoryBuffer::getSTDIN to *not* return null if stdin is empty, this is a lame API. Also, Stringrefify some more MemoryBuffer functions, and add two performance FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86630 91177308-0d34-0410-b5e6-96231b3b80d8 commit 526dd742a7832e90f52ac99c24a4370d3d98d347 Author: David Goodwin <david_goodwin@apple.com> Date: Tue Nov 10 00:15:47 2009 +0000 Allow targets to specify register classes whose member registers should not be renamed to break anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54c21357f32f867012ff2556b4a7c9be21ffa759 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 23:55:12 2009 +0000 pull a bunch of logic out of instcombine into instsimplify for compare simplification, this handles the foldable fcmp x,x cases among many others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51568464cf57a67ff3d07caae6d47dddc761c614 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 23:34:17 2009 +0000 Pass the (optional) TargetData object to ConstantFoldInstOperands and ConstantFoldCompareInstOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 454d7a02c0d2ca8f3a2ce2b6ba64f7f271a9f391 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 23:31:49 2009 +0000 inline a simple function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86625 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9333562d9551aa8c14a2dc3a463c73a1531dc3c Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 23:28:39 2009 +0000 rename SimplifyCompare -> SimplifyCmpInst and split it into Simplify[IF]Cmp pieces. Add some predicates to CmpInst to determine whether a predicate is fp or int. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86624 91177308-0d34-0410-b5e6-96231b3b80d8 commit af0ec43f7322c579e2abb859bae4cc8075ec8e0a Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 9 23:11:45 2009 +0000 Now that the default is 'enabled,' a separate command line option for ARM is not necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e15fef0c220e7fd35df09834e3ebf761bc6e1c4 Author: Mike Stump <mrs@apple.com> Date: Mon Nov 9 23:10:49 2009 +0000 Add testcase for recent checkin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10381be95c87ab8d2ec9ac2acc7a7b7a75b45ecf Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 23:06:58 2009 +0000 fix ConstantFoldCompareInstOperands to take the LHS/RHS as individual operands instead of taking a temporary array git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86619 91177308-0d34-0410-b5e6-96231b3b80d8 commit b806339fc15e8fa03aedbbebefd7674bca853265 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Nov 9 23:05:44 2009 +0000 Add StringSwitch::Cases overloads, for matching multiple strings to a single value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86618 91177308-0d34-0410-b5e6-96231b3b80d8 commit a337def3a456f08bc01d114efa1bd7f4146a3150 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 23:00:14 2009 +0000 use instructionsimplify instead of a weak clone of ad-hoc folding stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86616 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7b16df9f4ff6e92ad9bd9c70ff9e5d5ce062803 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 9 22:59:01 2009 +0000 Update test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f6ee0a82ccfbdab33acd3fc787c04141ec05449 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 22:57:59 2009 +0000 stub out a new libanalysis "instruction simplify" interface that takes decimated instructions and applies identities to them. This is pretty minimal at this point, but I plan to pull some instcombine logic out into these and similar routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35294ef681cd8a790a015b5e430e62e04634bcba Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Nov 9 22:34:19 2009 +0000 Remove dlsym stubs, with Nate Begeman's permission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86606 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8674f03b85cbf65f4e15902a68e089341b9f1743 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 9 22:32:40 2009 +0000 Enable dynamic stack realignment by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86604 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2610615be6d53b20c12ff4e1e806b4912e5345fd Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 22:32:36 2009 +0000 stub out a new form of BasicBlock::RemovePredecessorAndSimplify which simplifies instruction users of PHIs when the phi is eliminated. This will be moved to transforms/utils after some other refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86603 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65d8800c4b8ae965422e75b0f3309191ae23fbc3 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 9 22:32:03 2009 +0000 Set dynamic stack realignment to real values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86602 91177308-0d34-0410-b5e6-96231b3b80d8 commit de65e53debdf767545ba31e5bb8f2fd7095f9e8f Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 22:28:30 2009 +0000 Remove an unneeded #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86601 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dd119b2f1709f252b0ba64f6966bc2077f14ac8 Author: Mike Stump <mrs@apple.com> Date: Mon Nov 9 22:28:21 2009 +0000 Fix for 64-bit builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86600 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5019fe068d1092dbe9276b45b487fa0db337c70a Author: Bill Wendling <isanbard@gmail.com> Date: Mon Nov 9 21:45:26 2009 +0000 Similar to r86588, but for Darwin this time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86592 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6fb58e1e57b08abe754ef2de14a01012acaaecc5 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Nov 9 21:20:14 2009 +0000 The jump table was being generated before the end label for exception handling was generated. This caused code like this: ## The asm code for the function .section __TEXT,__const .align 2 lJTI11_0: LJTI11_0: .long LBB11_16 .long LBB11_4 .long LBB11_5 .long LBB11_6 .long LBB11_7 .long LBB11_8 .long LBB11_9 .long LBB11_10 .long LBB11_11 .long LBB11_12 .long LBB11_13 .long LBB11_14 Leh_func_end11: ## <---now in the wrong section! The `Leh_func_end11' would then end up in the wrong section, causing the resulting EH frame information to be wrong: __ZL11CheckRightsjPKcbRbRP6NSData.eh: .set Lset500eh,Leh_frame_end11-Leh_frame_begin11 .long Lset500eh ; Length of Frame Information Entry Leh_frame_begin11: .long Leh_frame_begin11-Leh_frame_common .long Leh_func_begin11-. .set Lset501eh,Leh_func_end11-Leh_func_begin11 .long Lset501eh ; FDE address range `Lset501eh' is now something huge instead of the real value. The X86 back-end generates the jump table after the EH information is emitted. Do the same here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86588 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80164f2cd037e165924e023aa3a8b8b9b533e8f7 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 19:38:45 2009 +0000 Print "..." instead of all the uninteresting register clobbers on call instructions. This makes CodeGen dumps significantly less noisy. Example before: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def,dead>, %D1<imp-def,dead>, %D2<imp-def,dead>, %D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>, %D7<imp-def,dead>, %D16<imp-def,dead>, %D17<imp-def,dead>, %D18<imp-def,dead>, %D19<imp-def,dead>, %D20<imp-def,dead>, %D21<imp-def,dead>, %D22<imp-def,dead>, %D23<imp-def,dead>, %D24<imp-def,dead>, %D25<imp-def,dead>, %D26<imp-def,dead>, %D27<imp-def,dead>, %D28<imp-def,dead>, %D29<imp-def,dead>, %D30<imp-def,dead>, %D31<imp-def,dead>, %CPSR<imp-def,dead>, %FPSCR<imp-def,dead> Same example after: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %LR<imp-def,dead>, %CPSR<imp-def,dead>, ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86583 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35b0b02d641f0a7035fc325a0cd1dd91b2358be4 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 19:29:11 2009 +0000 Default-addressspace null pointers don't alias anything. This allows GVN to be more aggressive. Patch by Hans Wennborg! (with a comment added by me) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86582 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1eb5ad3173bac40e253c4bd8346745a0b9d35217 Author: David Goodwin <david_goodwin@apple.com> Date: Mon Nov 9 19:22:17 2009 +0000 Fix dependencies added to model memory aliasing for post-RA scheduling. The dependencies were overly conservative for memory access that are known not to alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86580 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87ec5ad9f1b09e47d8fd16fdd671787052782566 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 19:01:53 2009 +0000 The inbounds keyword isn't relevant to overindexing of static array types. Thanks to Duncan for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86576 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0273f182cb12b8627e629784e04b2e05d982eddd Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 18:59:22 2009 +0000 Fix a comment in a typo that Duncan noticed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86575 91177308-0d34-0410-b5e6-96231b3b80d8 commit c668e25ae2f85eb43d2240723bf86e8d2d827bae Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 18:40:39 2009 +0000 Remove the "special case" for zero-length arrays, and rephrase this paragraph to be more precise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fb4ae554502621f3d5b3945f650e6b5ee66ffc7 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 18:28:24 2009 +0000 Generalize LCSSA to handle loops with exits with predecessors outside the loop. This is needed because with indirectbr it may not be possible for LoopSimplify to guarantee that all loop exit predecessors are inside the loop. This fixes PR5437. LCCSA no longer actually requires LoopSimplify form, but for now it must still have the dependency because the PassManager doesn't know how to schedule LoopSimplify otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86569 91177308-0d34-0410-b5e6-96231b3b80d8 commit af255824880d1a779f31df72f5a52e1419f773f7 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 18:20:38 2009 +0000 Fix an 80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86567 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe7d6aaba103e48c15cbf44070b99562039ae29d Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 18:19:43 2009 +0000 Minor tidiness fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86565 91177308-0d34-0410-b5e6-96231b3b80d8 commit a39e7acd54fdc09f0b8b3db176a4fbf53c1679a1 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 18:18:49 2009 +0000 Constify MachineFunctionAnalysis' TargetMachine reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e2c064bd56e45608c077950636fff02033475f2 Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 17:06:51 2009 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86558 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7740e0f64d3b91e6579b3595340a993da0abc84e Author: Dan Gohman <gohman@apple.com> Date: Mon Nov 9 17:06:23 2009 +0000 Suppress implicit copy ctor and copy assignment for MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a7b8f0a83d0b584cfb5a565011fa500e7260638 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Nov 9 16:38:15 2009 +0000 Use ',' separation in XFAILs, lit doesn't evaluate them as regexs (easy to add, but might as well use the more standard syntax). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86553 91177308-0d34-0410-b5e6-96231b3b80d8 commit d49d0fd052f4f586956ffba0cb5c7b146632c3ef Author: Nuno Lopes <nunoplopes@sapo.pt> Date: Mon Nov 9 15:36:28 2009 +0000 add zextOrTrunc and sextOrTrunc methods, that are similar to the ones in APInt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86549 91177308-0d34-0410-b5e6-96231b3b80d8 commit cdc498061580523723269ee368d6b7adbbb02699 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 9 15:27:51 2009 +0000 Work around assembler not recognizing #0.0 form immediate for vmcp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b35c97ee4fc66ebee2771ddef1dfdc3eff92077 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Nov 9 15:26:40 2009 +0000 CMake: Detect gv, circo, twopi, neato, fdo, dot and dotty. Patch by Arnaud Allard de Grandmaison! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86547 91177308-0d34-0410-b5e6-96231b3b80d8 commit 666eecfd9e3463f981d935d8fb082a3716604f61 Author: Xerxes Ranby <xerxes@zafena.se> Date: Mon Nov 9 14:50:34 2009 +0000 Make lib/Support/Debug.cpp SetCurrentDebugType implementation part of llvm namespace to match function declaration in Debug.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86544 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0273e0a346ffd639eb062e6cc752a2799a29826 Author: Bruno Cardoso Lopes <bruno.cardoso@gmail.com> Date: Mon Nov 9 14:27:49 2009 +0000 Fix PR5149. http://llvm.org/bugs/show_bug.cgi?id=5149 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86543 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0efca5e6470972e944ea2fc546690652eb4a6ea Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 07:12:01 2009 +0000 make this handle redefinition of malloc with different prototype correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69a7075dc8caf9332f5c105577d0ea36a1cfd00e Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 07:07:56 2009 +0000 if a 'with overflow' intrinsic just has the normal result used, simplify it to a normal binop. Patch by Alastair Lynn, testcase by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86524 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48ac7b971f7e6cbd60c4d1c70663cb0d328cacf2 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 9 06:49:37 2009 +0000 Hide a couple of options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86522 91177308-0d34-0410-b5e6-96231b3b80d8 commit a241af8f12c65c26a4a631c3428cc7daefed4318 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 9 06:49:22 2009 +0000 80 col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7452f6a39e6980c100521593a0b9bcee17b5ad3d Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 04:57:04 2009 +0000 fix PR5104: when printing a single character, return the result of putchar in case there is an error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86515 91177308-0d34-0410-b5e6-96231b3b80d8 commit acb19b052cad5c3583209cb708463a17c8dc6217 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 04:47:27 2009 +0000 fix some bogus asserts, PR5049 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86514 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5993faa112338898200ae47e6d9de0071b8ebde3 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 04:18:23 2009 +0000 random tidy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86511 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa188de533488e8238ca4b9346b9deb3b9a5a8af Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 04:15:28 2009 +0000 remove a redundant printout, LinkInArchive prints this as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86510 91177308-0d34-0410-b5e6-96231b3b80d8 commit 073c12c61ebbb3b88b550dc1a2ebf87abcab9927 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 01:38:00 2009 +0000 enhance PHI slicing to handle the case when a slicable PHI is begin used by a chain of other PHIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1675912cad699198af854de0af1bc8f93ca4730f Author: Owen Anderson <resistor@mac.com> Date: Mon Nov 9 00:48:15 2009 +0000 Small cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86499 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd1c8db070a428d72c35335d4a30218e3f24c277 Author: Owen Anderson <resistor@mac.com> Date: Mon Nov 9 00:44:44 2009 +0000 Revert my previous patch to ABCD and fix things the right way. There are two problems addressed here: 1) We need to avoid processing sigma nodes as phi nodes for constraint generation. 2) We need to generate constraints for comparisons against constants properly. This includes our first working ABCD test! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28075886973ba6292e5dc3964aa6206520337741 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 9 00:41:49 2009 +0000 comment typos pointed out by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86497 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2fda536ff4bd38be9f9ebea6ad90ce0b48d0e12 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 9 00:11:35 2009 +0000 Use Unified Assembly Syntax for the ARM backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86494 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57cf21e12d890dd0ac45c9369fb501bbef3a0050 Author: Owen Anderson <resistor@mac.com> Date: Sun Nov 8 22:36:55 2009 +0000 Fix an issue where the ordering of blocks within a function could lead to different constraint graphs being produced. The cause was that we were incorrectly marking sigma instructions as processed after handling the sigma-specific constraints for them, potentially neglecting to process them as normal instructions as well. Unfortunately, the testcase that inspired this still doesn't work because of a bug in the solver, which is next on the list to debug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86486 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6235a52b83705e463a0ba08e28d8a288ac462b43 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 21:51:53 2009 +0000 Add a 'zkill' script, which is more-or-less a fancy (although not necessarily very robust) version of killall. Because I like making shiny new wheels out of spare parts. For use by buildbots when people insist on making cc1 infinite loop. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86484 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ca7390a7c462bb3e7cb11239e22c3ec7b93080b Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 8 21:20:06 2009 +0000 Teach an instcombine to not pull trunc instructions through PHI nodes when both the source and dest are illegal types, since it would cause the phi to grow (for example, we shouldn't transform test14b's phi to a phi on i320). This fixes an infinite loop on i686 bootstrap with phi slicing turned on, so turn it back on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5987b829927111762b6354e379f331a2476c7240 Author: Duncan Sands <baldrick@free.fr> Date: Sun Nov 8 20:55:48 2009 +0000 Revert commit 81144, and add a comment. It caused bugpoint timeouts not to work any more on linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1cd526bc4bb02aec231107278b004f5801e2af4b Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 8 19:23:30 2009 +0000 reapply r8644[3-5] with only the scary part (SliceUpIllegalIntegerPHI) disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86480 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfa5deef8b8798068cda5c4989793d178d6f4a4b Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 17:52:47 2009 +0000 Speculatively revert r8644[3-5], they seem to be leading to infinite loops in llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86478 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5073681095c40377e1086ea5c2d66d5a0e539e2 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 8 15:33:12 2009 +0000 Add and-not (bic) patterns. Based heavily on patch by Brian Lucas! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86471 91177308-0d34-0410-b5e6-96231b3b80d8 commit 185c213be4fda6313031905f207fadb446d155de Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 8 15:32:44 2009 +0000 Move OR patterns upper to all logical stuff. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86470 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3b260e9514d07bd9e9b66a5a907785a1178ff27 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 8 15:32:28 2009 +0000 Some nice peephole patterns. Based on patch by Brian Lucas! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86469 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5d6f65c43ebfb2e77786c70c07987a9e7b12d80 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 8 15:32:11 2009 +0000 Print tab before operand of jcc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86468 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc5c66b384e5ac8089737a40b97a02ae32176142 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 8 14:27:38 2009 +0000 Fix invalid operand updates & implement post-inc memory operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86466 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4bd4ef0b0aee36cf5f4f7b1398722a2a0fe92e7e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 8 12:58:40 2009 +0000 Throw an error when stack realignment stuff fails instead of silent code miscompilation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86463 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9439104f0c4bd0fb348b0739d51ddf01d2ac994 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Nov 8 12:14:54 2009 +0000 It is invalid to infer the value type from the result #0 of the node since the instruction might use the other result of different type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86462 91177308-0d34-0410-b5e6-96231b3b80d8 commit 353ad44681895cd7799966ccafa1e572ca63ec17 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:46:57 2009 +0000 Remove ByteswapSCANFResults, it is dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86458 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c331cc294d08c58407ae962723a85e676b04b28 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:34:14 2009 +0000 NNT: Remove DejaGNU test from NewNightlyTest reports, this aspect of testing is handled by buildbots now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86454 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb3fe4a85b912f48c3b4b2e713d894387b9abc75 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:29:52 2009 +0000 Two small fixes for site.exp for cmake. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86453 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3221d7689547e97fa387f5619fef29a42a8da732 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:08:00 2009 +0000 Derive the right paths to use during testing instead of passing it in via make. Also, fix a few other details of the cmake test target and rename it to 'check'. CMake tests now work for the most part, but there are a handful of failures left due to missing site.exp bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86452 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4dbd965fd3a5175f701f86ccda73bf8271ef6a5 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:07:51 2009 +0000 Switch to using 'lit.site.cfg.in' for the site config template for Unit tests, and generate it for CMake builds as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86451 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0448c48560ce06959994e7a5df6f9ff2e9eac448 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:07:42 2009 +0000 Cleanup some unused RUN lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86450 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7948379df3422b4c9d98c3943a864293d4ff0527 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:07:33 2009 +0000 lit: Hardcode whence seek value, os.SEEK_END isn't always available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a6655647ddb18e15038155a4565ab771fff35a6 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:07:26 2009 +0000 lit: Warn when a test suite contains no tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86448 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7613ba5737a340d3cf88311c7a954625dae0bad1 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 09:07:13 2009 +0000 lit: Drop require_and_and support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86447 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a7f8c576a1490e1b2cc6bc04b5c8333435902bd Author: Lang Hames <lhames@gmail.com> Date: Sun Nov 8 08:49:59 2009 +0000 Moved some ManagedStatics out of the SlotIndexes header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86446 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfdcf999c67b880b0ba6f92b2cd7c3529a216c6c Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 8 08:36:40 2009 +0000 another more interesting test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86445 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9ad9a4948b4d65d68c5614b2e599b94d7ef8831 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 8 08:30:58 2009 +0000 feature test for the new transformation in r86443 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86444 91177308-0d34-0410-b5e6-96231b3b80d8 commit c42200ecbc9761eb2e237f998ebe1408ddc40104 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 8 08:21:13 2009 +0000 teach a couple of instcombine transformations involving PHIs to not turn a PHI in a legal type into a PHI of an illegal type, and add a new optimization that breaks up insane integer PHI nodes into small pieces (PR3451). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86443 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16f6916607396e205984e25c26798f6bf6c4c2c9 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 8 05:45:04 2009 +0000 We don't need to byteswap, the interpreter assumes the program is running native anyways. This fixes a crash using %d and similar in a scanf statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86440 91177308-0d34-0410-b5e6-96231b3b80d8 commit e342f10769875f34a07053cf77ace1ccd9cedd42 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 03:43:06 2009 +0000 lit: Workaround a Win32/subprocess bug when appending. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86437 91177308-0d34-0410-b5e6-96231b3b80d8 commit 377d801fa2f6dbd4a5ccef74224c7be00cad308a Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 03:35:19 2009 +0000 lit: Preserve the PATHEXT variable when running subcommands, this is important on Win32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86436 91177308-0d34-0410-b5e6-96231b3b80d8 commit c97274fc4693cd67b6e4c51ec3baa21f70f039e6 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 8 02:32:01 2009 +0000 Make TargetData::getStringRepresentation spit out native integer types, this gives llvm-gcc generated modules the right data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86435 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbf10b58aa5df695476f2be89db4b92063e1c1b0 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 8 02:23:15 2009 +0000 Remove test. Execution tests are slow and generally not worth it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f36edca3cfe963255d7766cd3f963605cabf32e Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 8 01:04:45 2009 +0000 Fix run line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86429 91177308-0d34-0410-b5e6-96231b3b80d8 commit 543de5cfe67417377df9bf97f94bd27837bc3259 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 8 00:45:29 2009 +0000 Fix the interpreter to not crash due to zeroext/signext git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86428 91177308-0d34-0410-b5e6-96231b3b80d8 commit 322873dbdbca38b44b0f3216dd8a0f91e81da137 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Nov 8 00:34:22 2009 +0000 Prevent warning spew about -fPIC when using CMake generated Xcode project files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86427 91177308-0d34-0410-b5e6-96231b3b80d8 commit bacc516181e4772892c2a61ce0acc17074fedf1e Author: Jim Grosbach <grosbach@apple.com> Date: Sun Nov 8 00:27:19 2009 +0000 Use aligned load/store instructions for spilling Q registers when we know the stack slot is 128 bit aligned git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86425 91177308-0d34-0410-b5e6-96231b3b80d8 commit be9db751021d3849e4cd2590e4e4c7ec4f50b221 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Nov 8 00:15:23 2009 +0000 Refactor code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86423 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8f69491b675eaea14eb21c9cea799c424e9082c Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 7 23:52:27 2009 +0000 Fix CMake reporting of target triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86419 91177308-0d34-0410-b5e6-96231b3b80d8 commit b38d0a0852e059b49987cabec86a05f82d64979f Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 7 23:52:20 2009 +0000 Stop running get_target_triple more than we need to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86418 91177308-0d34-0410-b5e6-96231b3b80d8 commit 630690c2fe8d0efa0a7ea1f54334dd4182c34c18 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 7 23:51:55 2009 +0000 Fix MSVC warning ( | with bool and unsigned int). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86417 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8acf7a18664fd8abcdd979e10354bf5d2b11b400 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Nov 7 23:21:30 2009 +0000 Fix class -> struct tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86416 91177308-0d34-0410-b5e6-96231b3b80d8 commit b13034d606a6e67a8cb78d28574a8f9a5da681bf Author: Nate Begeman <natebegeman@mac.com> Date: Sat Nov 7 23:17:15 2009 +0000 x86 vector shuffle cleanup/fixes: 1. rename the movhp patfrag to movlhps, since thats what it actually matches 2. eliminate the bogus movhps load and store patterns, they were incorrect. The load transforms are already handled (correctly) by shufps/unpack. 3. revert a recent test change to its correct form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e426c27d48dd7f1890bfa71b7566a7cfb05c4e2 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 7 22:00:39 2009 +0000 80-column cleanup of file header comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04d92822f7e9437186a873e4f6335b4c379c5d65 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 7 21:25:39 2009 +0000 Support alignment specifier for NEON vld/vst instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86404 91177308-0d34-0410-b5e6-96231b3b80d8 commit ded7c4a4c0f0df94bd7abfc98a6e0123c5849efe Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Nov 7 21:10:15 2009 +0000 Improve tail call elimination to handle the switch statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86403 91177308-0d34-0410-b5e6-96231b3b80d8 commit 812c299cb8ac1c341552584fbbdfca9a75ffe764 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 7 19:40:04 2009 +0000 t2ldrpci_pic can be used for blockaddress as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07600e1c9abb174d4984f50c79b0e45062e93c8f Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 19:13:17 2009 +0000 temporarily remove these tests, as they are breaking in the buildbot, Eric, please investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86399 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e9f5d0556117a5d0537efa3f018ddd920f899c1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 19:11:46 2009 +0000 make instcombine only rewrite a chain of computation (eliminating some extends) if the new type of the computation is legal or if both the source and dest are illegal. This prevents instcombine from changing big chains of computation into i64 on 32-bit targets for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86398 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b60b1603b3be4b41b2e3a6820fe116835ec7dd9 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 19:07:32 2009 +0000 indicate what the native integer types for the target are. Please verify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86397 91177308-0d34-0410-b5e6-96231b3b80d8 commit 932568fad8ba37fec6fbab9f874d1be2d7623c8f Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 18:53:00 2009 +0000 all targets should be required to declare legal integer types. My plan to make it optional doesn't work out. If you don't want to specify this, don't specify a TD string at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86394 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8055a3c54bc88921ab4b3051a01112710ef9f215 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 18:03:32 2009 +0000 remove empty files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86392 91177308-0d34-0410-b5e6-96231b3b80d8 commit f822a2f4f3b5f91ae0be604b1202622a186ea544 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 17:59:32 2009 +0000 Revert r86359, it is breaking the self host on the llvm-gcc-i386-darwin9 build bot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86391 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0e695bd1f1afe129a7e294b02cdba45629f0c9c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 17:15:25 2009 +0000 First try of the post-inc operands handling... Not fully worked, though :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86386 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6d97be420bb6fe615998154f555b06be9cc1cf5 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 17:15:06 2009 +0000 Add some dummy support for post-incremented loads git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86385 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0e459b4d02c73518bf209236d7e406259e56408e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 17:14:39 2009 +0000 Add 8 bit libcalls and make use of them for msp430 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86384 91177308-0d34-0410-b5e6-96231b3b80d8 commit daa66e5edbb1eba5a6a602200946c5e2f27c3dbd Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 17:13:57 2009 +0000 Add few pseudo-source-values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86383 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c7e166ffb74e4504175767260bd1e23e35f98b7 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 17:13:35 2009 +0000 Initial support for addrmode handling. Tests by Brian Lucas! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86382 91177308-0d34-0410-b5e6-96231b3b80d8 commit c51a65b683d9ae5c0963eaa31cd0cd71241bd536 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 17:12:58 2009 +0000 Some preliminary variable asmprinting git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86381 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4266e28b8b014310ee00746ff5f0e012b111720e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 17:12:38 2009 +0000 Use '.L' for global private prefix (as mspgcc) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86380 91177308-0d34-0410-b5e6-96231b3b80d8 commit db3ab2f46c9e75a41f3ba2021b7537af4bd813f4 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 17:12:21 2009 +0000 Drop old asmprinter stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86379 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59ab8afb46d74604f438d78213a641c038c519b8 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Nov 7 15:20:32 2009 +0000 It turns out that the testcase in question uncovered subreg-handling bug. Add assert in asmprinter to catch such cases and xfail the tests. PR is to be filled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86375 91177308-0d34-0410-b5e6-96231b3b80d8 commit ece4180609c6ec2e21dfef5f27eb9bf7b65351e4 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 09:35:34 2009 +0000 add the ability for TargetData to return information about legal integer datatypes on a given CPU. This is intended to allow instcombine and other transformations to avoid converting big sequences of operations to an inconvenient width, and will help clean up after SRoA. See also "Adding legal integer sizes to TargetData" on Feb 1, 2009 on llvmdev, and PR3451. Comments welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86370 91177308-0d34-0410-b5e6-96231b3b80d8 commit 683309f29784560cf55826b443f44503318876f1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 09:23:04 2009 +0000 more cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2aaa75e234660532df77f2a630509bfee77652d9 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 09:20:54 2009 +0000 add some missing #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86367 91177308-0d34-0410-b5e6-96231b3b80d8 commit 044fe3e5132220650eda5e8f876739fb055455bc Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 09:13:23 2009 +0000 rewrite TargetData to use StringRef/raw_ostream instead of thrashing std::strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86366 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ea9331c67f53b9deb5aa58e0b27c2bddd21a200 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 09:07:01 2009 +0000 prune #include / layering violation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86365 91177308-0d34-0410-b5e6-96231b3b80d8 commit e63aa1f6906831c4a1b8bf2f2bc1ee23a4e3c3c6 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Nov 7 08:51:52 2009 +0000 Make the need-stub variables accurate and consistent. In the case of MachineRelocations, "stub" always refers to a far-call stub or a load-a-faraway-global stub, so this patch adds "Far" to the term. (Other stubs are used for lazy compilation and dlsym address replacement.) The variable was also inconsistent between the positive and negative sense, and the positive sense ("NeedStub") was more demanding than is accurate (since a nearby-enough function can be called directly even if the platform often requires a stub). Since the negative sense causes double-negatives, I switched to "MayNeedFarStub" globally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86363 91177308-0d34-0410-b5e6-96231b3b80d8 commit f36502964777b9941c5a4c531990cc6f2488dc23 Author: Eric Christopher <echristo@apple.com> Date: Sat Nov 7 08:45:53 2009 +0000 Fix a couple of shuffle patterns to use movhlps instead of movhps as the constraint. Changes optimizations so update testcases as appropriate as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69a3bcea684c35eb0a394e0dbcfa97b25b33c0d6 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Nov 7 08:34:40 2009 +0000 Teach dead store elimination that certain intrinsics write to memory just like a store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86359 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09a32aa09eeec1d1894333940228d2d097c10007 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 08:31:52 2009 +0000 remove the win32 tree, it's stale and confusing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86358 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4fddc700e7bb0387a520cbc2acbc01d29eac122 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 08:05:03 2009 +0000 reapply 86289, 86278, 86270, 86267, 86266 & 86264 plus a fix (making pred factoring only happen if threading is guaranteed to be successful). This now survives an X86-64 bootstrap of llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87c965591afc72dca6b805427a322cd5adf40d11 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 07:50:34 2009 +0000 Fix PR5421 by APInt'izing switch lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86354 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5031fbdde50deb47304882f92ce6b893887cd324 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Nov 7 07:42:38 2009 +0000 Oops, FunctionContainsEscapingAllocas is really used to mean two different things. Back out part of r86349 for a moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86353 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10b606f2cf73f5cfb1d50fa48f890c09bec38b59 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Nov 7 07:10:01 2009 +0000 Dust off tail recursion elimination. Fix a fixme by applying CaptureTracking and add a .ll to demo the new capability. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e7dd487592ee788e07b8dc0279293969a0bda07 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Nov 7 06:33:58 2009 +0000 llvmc: Add a '-time' option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86348 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05858c503a855f067a256a31c7e811543765aaec Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Nov 7 06:33:12 2009 +0000 Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86347 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75f7b8dca3aaaf0a4ffacfb4d4edccd80000eb4e Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Nov 7 06:33:01 2009 +0000 80-col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86346 91177308-0d34-0410-b5e6-96231b3b80d8 commit 147f0500f9f9d9e0091dc61347b094334280fd83 Author: Chris Lattner <sabre@nondot.org> Date: Sat Nov 7 06:19:20 2009 +0000 merge cmp1 into cmp0 and filecheckize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86345 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1c6ba05e0a2b1e604f2cae702a60cf8e568d40b Author: Lang Hames <lhames@gmail.com> Date: Sat Nov 7 05:50:28 2009 +0000 Update some globals to use ManagedStatic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86342 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6f60f14e1adc950bfd1529325db1acedf9cf97e Author: Mon P Wang <wangmp@apple.com> Date: Sat Nov 7 04:46:25 2009 +0000 Fix memoizing of CvtRndSatSDNode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86340 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01fa52d302ba6f4939b6907d0ae10fee5d61200c Author: Mon P Wang <wangmp@apple.com> Date: Sat Nov 7 04:07:33 2009 +0000 Fixed Overload table bug noticed by Jakob git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10268e847d84c45a601e68bb02eba4dca773331b Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 7 04:07:30 2009 +0000 Missed this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86331 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca529232f661d674617b7d5e51102cf4ee9a6ffb Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 7 04:04:34 2009 +0000 Refactor code. Fix a potential missing check. Teach isIdentical() about tLDRpci_pic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86330 91177308-0d34-0410-b5e6-96231b3b80d8 commit 626474d3ddba098f44d1a372314418a63c152540 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Nov 7 03:52:02 2009 +0000 - Add TargetInstrInfo::isIdentical(). It's similar to MachineInstr::isIdentical except it doesn't care if the definitions' virtual registers differ. This is used by machine LICM and other MI passes to perform CSE. - Teach Thumb2InstrInfo::isIdentical() to check two t2LDRpci_pic are identical. Since pc relative constantpool entries are always different, this requires it it check if the values can actually the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86328 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80994a152341401f8151ece592fd0a07dd14ae1f Author: Ted Kremenek <kremenek@apple.com> Date: Sat Nov 7 03:26:59 2009 +0000 Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87d0426c569d606dca1d32dc23cae9dee245fc76 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Sat Nov 7 02:11:54 2009 +0000 Add code to check at SelectionDAGISel::LowerArguments time to see if return values can be lowered to registers. Coming soon, code to perform sret-demotion if return values cannot be lowered to registers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86324 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1332dcf1421bd9a7b2e9527056cb1934aea041c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sat Nov 7 01:58:40 2009 +0000 Fix inverted conflict test in -early-coalesce. A non-identity copy cannot be coalesced when the phi join destination register is live at the copy site. Also verify the condition that the PHI join source register is only used in the PHI join. Otherwise the coalescing is invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86322 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbc9debd4e99fc06ef89fdd5817c81bc92ac6a85 Author: Devang Patel <dpatel@apple.com> Date: Sat Nov 7 01:32:59 2009 +0000 Revert following patches to fix llvmgcc bootstrap. 86289, 86278, 86270, 86267, 86266 & 86264 Chris, please take a look. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86321 91177308-0d34-0410-b5e6-96231b3b80d8 commit d139b9495d8e6a18ac8c7d3a7767f7e0db76a673 Author: Johnny Chen <johnny.chen@apple.com> Date: Sat Nov 7 00:54:36 2009 +0000 My previous patch (r84124) for setting the encoding bits 4 and 7 of DPSoRegFrm was wrong and too aggressive in the sense that DPSoRegFrm includes both constant shifts (with Inst{4} = 0) and register controlled shifts (with Inst{4} = 1 and Inst{7} = 0). The 'rr' fragment of the multiclass definitions actually means register/register with no shift, see A8-11. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86319 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1e1f4c9a3c02d44a9ea7f82c986794318b20415 Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Nov 7 00:41:19 2009 +0000 - new SROA mallocs should have the mallocs running-or'ed, not the malloc's bitcast - fix ProcessInternalGlobal() debug output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86317 91177308-0d34-0410-b5e6-96231b3b80d8 commit b035016639fa72a2a698d3f362fff7f9eee4e5ca Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Nov 7 00:36:50 2009 +0000 Fit in 80 columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f287f83693b6f419210d1a3560c45515b9e690c Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Nov 7 00:26:47 2009 +0000 Avoid "ambiguous 'else'" warning from gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86314 91177308-0d34-0410-b5e6-96231b3b80d8 commit 955449e468395f33a2debd72e3e6f8f5a1dc1b46 Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Nov 7 00:16:28 2009 +0000 Re-commit r86077 now that r86290 fixes the 179.art and 175.vpr ARM regressions. Here is the original commit message: This commit updates malloc optimizations to operate on malloc calls that have constant int size arguments. Update CreateMalloc so that its callers specify the size to allocate: MallocInst-autoupgrade users use non-TargetData-computed allocation sizes. Optimization uses use TargetData to compute the allocation size. Now that malloc calls can have constant sizes, update isArrayMallocHelper() to use TargetData to determine the size of the malloced type and the size of malloced arrays. Extend getMallocType() to support malloc calls that have non-bitcast uses. Update OptimizeGlobalAddressOfMalloc() to optimize malloc calls that have non-bitcast uses. The bitcast use of a malloc call has to be treated specially here because the uses of the bitcast need to be replaced and the bitcast needs to be erased (just like the malloc call) for OptimizeGlobalAddressOfMalloc() to work correctly. Update PerformHeapAllocSRoA() to optimize malloc calls that have non-bitcast uses. The bitcast use of the malloc is not handled specially here because ReplaceUsesOfMallocWithGlobal replaces through the bitcast use. Update OptimizeOnceStoredGlobal() to not care about the malloc calls' bitcast use. Update all globalopt malloc tests to not rely on autoupgraded-MallocInsts, but instead use explicit malloc calls with correct allocation sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86311 91177308-0d34-0410-b5e6-96231b3b80d8 commit ab81483d946285672c43aa85f78f912321e95348 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Nov 7 00:13:30 2009 +0000 80-columns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 49c5ea4e4216aa9545345efe476bbc2dc32db9d8 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sat Nov 7 00:00:10 2009 +0000 Give the JITResolver a direct pointer to its JITEmitter, and use that instead of going through the global TheJIT variable. This makes it easier to use features of JITEmitter that aren't in JITCodeEmitter for fixing PR5201. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86305 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7921e58057a3a19e15877cfd18fcbeb828e919f9 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 6 23:52:48 2009 +0000 - Add pseudo instructions tLDRpci_pic and t2LDRpci_pic which does a pc-relative load of a GV from constantpool and then add pc. It allows the code sequence to be rematerializable so it would be hoisted by machine licm. - Add a late pass to break these pseudo instructions into a number of real instructions. Also move the code in Thumb2 IT pass that breaks up t2MOVi32imm to this pass. This is done before post regalloc scheduling to allow the scheduler to proper schedule these instructions. It also allow them to be if-converted and shrunk by later passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86304 91177308-0d34-0410-b5e6-96231b3b80d8 commit d271d8b61f3747846a4ac40f9c49a9b9ca71bc67 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Fri Nov 6 23:45:15 2009 +0000 Honour subreg machine operands during asmprinting git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a14a00bb348755ff7974c56ff8df9845deb68f3 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Nov 6 23:33:28 2009 +0000 Print VMOV (immediate) operands as hexadecimal values. Apple's assembler will not accept negative values for these. LLVM's default operand printing sign extends values, so that valid unsigned values appear as negative immediates. Print all VMOV immediate operands as hex values to resolve this. Radar 7372576. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86301 91177308-0d34-0410-b5e6-96231b3b80d8 commit f676a031cac638f43285ad86a7e6e884a4d399a0 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 23:19:58 2009 +0000 Fix a bug where we'd call SplitBlockPredecessors with a pred in the set only once even if it has multiple edges to BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86299 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9538bb41adbd94f658cbf5fdf7cabe3b4ee5920 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Nov 6 23:06:42 2009 +0000 Fix a broken test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86298 91177308-0d34-0410-b5e6-96231b3b80d8 commit cda028f643df712e635d48b9f19af6e5dad2cd54 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Nov 6 22:38:38 2009 +0000 Fix comment typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86295 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4582d9e08187fb0d75c51ddb139f3ad3a45642d Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Nov 6 22:24:13 2009 +0000 Remove ARMPCLabelIndex from ARMISelLowering. Use ARMFunctionInfo::createConstPoolEntryUId() instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86294 91177308-0d34-0410-b5e6-96231b3b80d8 commit e725b7d6aa1d922f7045b072edc1025ef3622bd0 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Nov 6 21:43:21 2009 +0000 CallInst::CreateMalloc() and CallInst::CreateFree() need to create calls with correct calling convention git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86290 91177308-0d34-0410-b5e6-96231b3b80d8 commit c42f1cb6754214561a0eacb03feea6146ebe6f84 Author: Eli Friedman <eli.friedman@gmail.com> Date: Fri Nov 6 21:24:57 2009 +0000 Remove function left over from other jump threading cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86289 91177308-0d34-0410-b5e6-96231b3b80d8 commit c79bcffd435ca296c8006c50f2b86be1ec45a3a5 Author: Gabor Greif <ggreif@gmail.com> Date: Fri Nov 6 20:10:46 2009 +0000 fix typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86281 91177308-0d34-0410-b5e6-96231b3b80d8 commit d67140691f38c21ee6da9b2d4d3302c31078b6a3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 19:21:48 2009 +0000 Fix a problem discovered on self host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86278 91177308-0d34-0410-b5e6-96231b3b80d8 commit 593376d7428da212386f6f583ca2973b03c13d73 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 18:24:32 2009 +0000 remove more code subsumed by r86264 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86270 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3a1626f2fc865dceffc949662bf31dc37e64a95 Author: Devang Patel <dpatel@apple.com> Date: Fri Nov 6 18:24:05 2009 +0000 Tolerate invalid derived type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86269 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52814ea97e6546388dc2460712ea6233389de475 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 18:22:54 2009 +0000 eliminate some more code subsumed by r86264 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86267 91177308-0d34-0410-b5e6-96231b3b80d8 commit e41dbc99d28bdadb78ae8a6515963ba62814239e Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 18:20:58 2009 +0000 remove now redundant code, r86264 handles this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86266 91177308-0d34-0410-b5e6-96231b3b80d8 commit a00d671e18b86d5366609965dcc181b8995dbc8d Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 18:15:14 2009 +0000 Extend jump threading to support much more general threading predicates. This allows us to jump thread things like: _ZN12StringSwitchI5ColorE4CaseILj7EEERS1_RAT__KcRKS0_.exit119: %tmp1.i24166 = phi i8 [ 1, %bb5.i117 ], [ %tmp1.i24165, %_Z....exit ], [ %tmp1.i24165, %bb4.i114 ] %toBoolnot.i87 = icmp eq i8 %tmp1.i24166, 0 ; <i1> [#uses=1] %tmp4.i90 = icmp eq i32 %tmp2.i, 6 ; <i1> [#uses=1] %or.cond173 = and i1 %toBoolnot.i87, %tmp4.i90 ; <i1> [#uses=1] br i1 %or.cond173, label %bb4.i96, label %_ZN12... Where it is "obvious" that when coming from %bb5.i117 that the 'and' is always false. This triggers a surprisingly high number of times in the testsuite, and gets us closer to generating good code for doug's strswitch testcase. This also make a bunch of other code in jump threading redundant, I'll rip out in the next patch. This survived an enable-checking llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86264 91177308-0d34-0410-b5e6-96231b3b80d8 commit 400718724c2abc7eab43ccf09a4e970a23846017 Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 6 18:03:10 2009 +0000 Use WriteAsOperand to print GlobalAddress MachineOperands. This prints them with the leading '@'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86261 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83e42c7163cc29cf8afd36082164ffb8a2e4b454 Author: Devang Patel <dpatel@apple.com> Date: Fri Nov 6 17:58:12 2009 +0000 Do not bother to emit debug info for nameless global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86259 91177308-0d34-0410-b5e6-96231b3b80d8 commit de46a5b60ea8cf3db0b613172667a7038470c578 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Nov 6 10:58:06 2009 +0000 Pass StringRef by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86251 91177308-0d34-0410-b5e6-96231b3b80d8 commit d71e0318a7639a78ea87cc0f6eabf13358fd4c9e Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 06:33:01 2009 +0000 clang++ points out that this is pointless. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86239 91177308-0d34-0410-b5e6-96231b3b80d8 commit 002e65d73c9060d48f73b259ccfcc483352e859a Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 05:59:53 2009 +0000 remove some more Context arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6070c017ba421c2862fc0c25d9770169e858c7e3 Author: Chris Lattner <sabre@nondot.org> Date: Fri Nov 6 04:27:31 2009 +0000 remove a bunch of extraneous LLVMContext arguments from various APIs, addressing PR5325. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86231 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3209d11ed21bf3bc4e82a55509cfcc17f18fb6e4 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Nov 6 04:12:13 2009 +0000 NewNighlytTest: Fix timestamp format to actually make sense (it was missing the hour). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fa6ca54e53fa3ebee13f92e1c422f8749e7b0f3 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Nov 6 04:12:07 2009 +0000 NewNightlyTest: Add -noclean option, which doesn't run 'make clean' before building LLVM (for testing). Also, switch to always running 'make clean' in the test-suite directories. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59db302d26871b9aae9538e78940474cea811791 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Nov 6 04:12:02 2009 +0000 NewNightlyTest: Unbreak passing the build directory via a positional argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86227 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c419e78067be2b1dd7f9de8cc6db5e827746b3b Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Nov 6 04:11:29 2009 +0000 NewNightlyTest: Add -llvmgccdir as alternative to environment variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86226 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2243fcd787afdb7b7f59f388778ba99d57b6a468 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Nov 6 01:33:24 2009 +0000 Revert r86077 because it caused crashes in 179.art and 175.vpr on ARM git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86213 91177308-0d34-0410-b5e6-96231b3b80d8 commit fabc47c0671013d23e636704db0fb6a34e106615 Author: Devang Patel <dpatel@apple.com> Date: Fri Nov 6 01:30:04 2009 +0000 Do not try to emit debug info entry for dead global variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ffe7349180f102968461625f010f1895afabe3e Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 6 00:19:43 2009 +0000 Don't print a redundant tab for inline asm, and do use the new printKill. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94023e15c7231aa8362d75d5c55961314c3ff796 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Fri Nov 6 00:12:53 2009 +0000 Add a bunch of missing "template" keywords to disambiguate dependent template names. GCC eats this ill-formed code, Clang does not. I already filed PR5404 to improve recovery in this case git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45535af451f897e642dcaeae79b3c8f75c125799 Author: Eric Christopher <echristo@apple.com> Date: Fri Nov 6 00:11:57 2009 +0000 Fix PR5315, original patch by Nicolas Capens! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86203 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbc43963b76f8e54e6cee47defde4868586665fd Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 6 00:04:54 2009 +0000 Factor out the printing of the leading tab into printInlineAsm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86199 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72dec44309783b3651a549f18637d055d54334ae Author: Dan Gohman <gohman@apple.com> Date: Fri Nov 6 00:04:05 2009 +0000 Make printImplicitDef and printKill non-virtual, since they don't need to be overridden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3965ee217f82f6faae5b9bff7a756d2573edbe2c Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 23:53:08 2009 +0000 Use SUBREG_TO_REG instead of INSERT_SUBREG to model x86-64's implicit zero-extend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86196 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b4eb23c3ae503dbfe2f2d14ac14a513d033755c Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 23:34:59 2009 +0000 Teach LSR to avoid calling SplitCriticalEdge on edges with indirectbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86193 91177308-0d34-0410-b5e6-96231b3b80d8 commit cabfc80a201e5153d12f5ba18a6376b5641170b6 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 23:31:40 2009 +0000 Update these tests for the new label names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86192 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff592eced3d70159de10c5a3837e0d0fee7edb8f Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 23:14:35 2009 +0000 Fix the label name generation for address-taken labels to avoid potential problems with name collisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86189 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb99c50b72f2e9eb91d2b8ecf269210e984c98f7 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Nov 5 23:01:30 2009 +0000 Make a few more LLVM headers parsable as standalone headers. Fix some problems with the hidden copy constructors for ImmutableMap/ImmutableSet found by Clang++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86186 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2061a07c64a7bdc784d114c796369a14b557c202 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Nov 5 22:58:04 2009 +0000 Teach lit's SyntaxCheckTest two new tricks: - skip .svn directories - add a set of excluded filenames so we can easily skip tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d1cb01d2bfeba381f2df9e1295403c8f44527d6 Author: Lang Hames <lhames@gmail.com> Date: Thu Nov 5 22:20:57 2009 +0000 Added support for renumbering existing index list elements. Removed some junk from the initial numbering code in runOnMachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 934feaaf81ccedee352186013166f25def61f914 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 21:48:32 2009 +0000 Avoid calling getUniqueExitBlocks from within LoopSimplify, as it depends on loops having dedicated exits, which LoopSimplify can no longer always guarantee. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86181 91177308-0d34-0410-b5e6-96231b3b80d8 commit daf8ec35aa03cc88dc86febffce6daf1f2ba4d53 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 21:47:04 2009 +0000 LoopDeletion depends on loops having dedicated exits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80439603bfcf5cc282adf1d4aa2e2fb0ece52bd2 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 21:14:46 2009 +0000 The introduction of indirectbr meant the introduction of unsplittable critical edges, which means the introduction of loops which cannot be transformed to LoopSimplify form. Fix LoopSimplify to avoid transforming such loops into invalid code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86176 91177308-0d34-0410-b5e6-96231b3b80d8 commit aef6c7a849c4e8bdd07c017aef2dcfb8c019e287 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 21:11:53 2009 +0000 Update various Loop optimization passes to cope with the possibility that LoopSimplify form may not be available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c41ba177e160a4c26c6c9c7c49d27cbecf1a94b Author: David Goodwin <david_goodwin@apple.com> Date: Thu Nov 5 21:06:09 2009 +0000 Fix bug in aggressive antidep breaking; liveness was not updated correctly for regions that do not have antidep candidates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86172 91177308-0d34-0410-b5e6-96231b3b80d8 commit d2691dbecbd79d0e6f4523622a2078ba10c860ef Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 19:44:06 2009 +0000 Teach LoopUnroll how to bail if LoopSimplify can't give it what it needs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11bf599cd4fe54f457b4f23940dbd62bd8a70c17 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 19:43:25 2009 +0000 Call getAnalysis<LoopInfo> the normal way, instead of asking passed-in LoopPassManager for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86163 91177308-0d34-0410-b5e6-96231b3b80d8 commit 406a0d14c0a031fe251e4d63f6713387cdebeb13 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 19:42:20 2009 +0000 InstrTypes.h includes Instruction.h, so it's not necessary to include both. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86162 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c26c5bac5337d59784e0d7bfa8050b1d571a3da Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 19:41:37 2009 +0000 Fix IVUsers to avoid assuming that the loop has a unique backedge. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86161 91177308-0d34-0410-b5e6-96231b3b80d8 commit 967f370d753ef2b39eb89ffea50b1f4601958beb Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 19:33:15 2009 +0000 Delete an unused member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86160 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47927a381cd2049120ca518a5b8a879488129bf6 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 19:21:41 2009 +0000 Factor out the predicate code for loopsimplify form exit blocks into a separate helper function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86159 91177308-0d34-0410-b5e6-96231b3b80d8 commit 355b2a31a057ac8164f0ab4ff0c3b11a38cf0205 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Nov 5 19:03:26 2009 +0000 CMake: Detect dotty. Patch by Arnaud Allard de Grandmaison! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86153 91177308-0d34-0410-b5e6-96231b3b80d8 commit c389f9986beace94d187e24fae9c47c4668d3eed Author: Oscar Fuentes <ofv@wanadoo.es> Date: Thu Nov 5 18:57:56 2009 +0000 CMake: do not test for pthread and dl libraries on Windows (except Cygwin). Fixes PR 5368. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86152 91177308-0d34-0410-b5e6-96231b3b80d8 commit 63e2b7e7ea21976b0922a76e4cd10ebf3a2591ea Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 18:49:11 2009 +0000 Avoid printing a redundant space in SDNode->dump(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86151 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7abf0939c0cf058c89bfdf010ebfa0377fb17034 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 18:47:09 2009 +0000 Remove uninteresting and confusing debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86149 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c2b47ac5ace2e3c08d4e37a6f9813c37ece0407 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Nov 5 18:30:50 2009 +0000 Move llvm::cl::opt's conversion function into the base classes that actually need that conversion function. Silences a Clang++ warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86148 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5013522f6bb58c5591e2681e6e293ed9f3bd76e1 Author: Dan Gohman <gohman@apple.com> Date: Thu Nov 5 18:25:44 2009 +0000 Add an assertion to catch indirectbr in SplitBlockPredecessors. This makes several optimization passes abort in cases where they're currently silently miscompiling code. Remove the indirectbr assertion from SplitEdge. Indirectbr is only a problem for critical edges, and SplitEdge defers to SplitCriticalEdge to handle those, and SplitCriticalEdge has its own assertion for indirectbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 586101f58224a041c3fafb356155e42e16ba793e Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 5 18:19:19 2009 +0000 add a note from PR5313 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68e77880026c35f6dfd89cc28ed98b349751ea8c Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 5 17:51:44 2009 +0000 Declare classes with matched tags, pointed out by a clang++ warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86144 91177308-0d34-0410-b5e6-96231b3b80d8 commit df1353e8583730b5b576097b9c4d0a98d4b4af9b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 5 17:44:22 2009 +0000 Teach SimplifyLibCalls to fold memcmp calls with constant arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86141 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1520cef0c0cc888a54599902add7541a19133b4b Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Nov 5 16:27:33 2009 +0000 lit: Add --param NAME=VALUE option, for test suite specific use (to communicate arbitrary command line arguments to the test suite). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 329f7bafcebcdc487ef8bca808dacd19c0c5594e Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 5 14:33:27 2009 +0000 Do map insert+find in one step. TODO -= 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86133 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf0e40c0133361f1e4f2a96a7bd6cdcc5080a695 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Nov 5 14:32:40 2009 +0000 Path::createDirectoryOnDisk should ignore existing directories on win32 too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86132 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4de7965e718bb1a3fc3b36e233e97246c32c84f8 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Nov 5 13:39:23 2009 +0000 Make two more LLVM headers standalone git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e4fe9d4baccaff88c839d9662b0b503f9d2edd0 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Nov 5 13:30:28 2009 +0000 Make a few headers standalone. Plus, add a missing "template" keyword that Clang diagnoses but GCC does not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22a64b22aaddff70a4563b541467b323ff0b9dd8 Author: Chris Lattner <sabre@nondot.org> Date: Thu Nov 5 05:57:34 2009 +0000 merge a few crash tests into crash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86119 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3b0f27313e3d82ccaee3764a0513fde8e34a4c38 Author: Mon P Wang <wangmp@apple.com> Date: Thu Nov 5 03:19:08 2009 +0000 Reintroduce support for overloading target intrinsics git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86114 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38e9090bf172f4eb48f6ec53f5895160515b84a9 Author: David Goodwin <david_goodwin@apple.com> Date: Thu Nov 5 01:45:50 2009 +0000 Replace std::map.at() with std::map[]. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86102 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36005a2ab57baffb80e841d6d3334c41aa8ddc86 Author: David Goodwin <david_goodwin@apple.com> Date: Thu Nov 5 01:19:35 2009 +0000 Break anti-dependencies using free registers in a round-robin manner to avoid introducing new anti-dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86098 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d112f2efc514158edea9dd883ca2885d91ef999 Author: Lang Hames <lhames@gmail.com> Date: Thu Nov 5 01:18:31 2009 +0000 Tidied some ugliness in the SlotIndex default constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86097 91177308-0d34-0410-b5e6-96231b3b80d8 commit a192bc05ae6122d9b2921cbbb0337db8972961ea Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 5 01:16:59 2009 +0000 Now that code placement optimization pass is run for JIT, make sure it's before pre-emit passes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86092 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3970a4b91a1ffac6bbcb448d4d1f5097014520e0 Author: Devang Patel <dpatel@apple.com> Date: Thu Nov 5 01:13:02 2009 +0000 Use WeakVH while storing metadata in containers. This fixes PR5393. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45a329b627400a8481e9ade2288357391d2f3a25 Author: Lang Hames <lhames@gmail.com> Date: Thu Nov 5 00:52:28 2009 +0000 Removed an assert which was causing significant slowdowns in debug builds. This assert was very conservative to begin with (the error condition is well covered by tests elsewhere in the code) so we won't miss much by removing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86088 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f43c297b8a4825f8ceace47c00c3a2491667839 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Nov 5 00:51:31 2009 +0000 Add -mtriple to llc commands, attempting to fix buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86086 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10aae1b683ac3f55b0f49787927e385cfe2cd706 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Nov 5 00:51:13 2009 +0000 Code refactoring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86085 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a97a7f3749e9be0bf9b91571704a5b671f9dbe6 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Nov 5 00:30:35 2009 +0000 Attempt again to fix buildbot failures: make expected output less specific and compile with -mtriple to specify *-apple-darwin targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86081 91177308-0d34-0410-b5e6-96231b3b80d8 commit c466871dfda63d07da52ca2d87279c33a1db2eca Author: David Goodwin <david_goodwin@apple.com> Date: Thu Nov 5 00:16:44 2009 +0000 Correctly add chain dependencies around calls and unknown-side-effect instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86080 91177308-0d34-0410-b5e6-96231b3b80d8 commit e67ebab906b981bb9534cd7c68fda75cb5ff57c9 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Nov 5 00:03:03 2009 +0000 Update CreateMalloc so that its callers specify the size to allocate: MallocInst-autoupgrade users use non-TargetData-computed allocation sizes. Optimization uses use TargetData to compute the allocation size. Now that malloc calls can have constant sizes, update isArrayMallocHelper() to use TargetData to determine the size of the malloced type and the size of malloced arrays. Extend getMallocType() to support malloc calls that have non-bitcast uses. Update OptimizeGlobalAddressOfMalloc() to optimize malloc calls that have non-bitcast uses. The bitcast use of a malloc call has to be treated specially here because the uses of the bitcast need to be replaced and the bitcast needs to be erased (just like the malloc call) for OptimizeGlobalAddressOfMalloc() to work correctly. Update PerformHeapAllocSRoA() to optimize malloc calls that have non-bitcast uses. The bitcast use of the malloc is not handled specially here because ReplaceUsesOfMallocWithGlobal replaces through the bitcast use. Update OptimizeOnceStoredGlobal() to not care about the malloc calls' bitcast use. Update all globalopt malloc tests to not rely on autoupgraded-MallocInsts, but instead use explicit malloc calls with correct allocation sizes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86077 91177308-0d34-0410-b5e6-96231b3b80d8 commit 71842a96a0af9476bb92a29534509e04f02a835d Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 4 23:48:00 2009 +0000 While calculating original type size for a derived type, handle type variants encoded as DIDerivedType appropriately. This improves bitfield support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86073 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1d76577adf6049e5e7b389bc928d3367e8acbc3 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Nov 4 23:20:40 2009 +0000 Grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86068 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d0336c05ff61c5c2c8592e07c977cf3f9e72e46 Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 4 23:20:12 2009 +0000 improve DSE when TargetData is not around, based on work by Hans Wennborg! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86067 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8db35425f1cc0dfc5275e413a302a03d99a3c038 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Nov 4 23:11:07 2009 +0000 Now that the memory leak from McCat/08-main has been fixed (86056), re-enable aggressive testing of dynamic stack alignment. Note that this is off by default, and enabled for LLCBETA nightly results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86064 91177308-0d34-0410-b5e6-96231b3b80d8 commit 688ef4595d8d624bb968d508432a64a2652176ae Author: Jim Grosbach <grosbach@apple.com> Date: Wed Nov 4 22:41:51 2009 +0000 If a function has no stack frame at all, dynamic realignment isn't necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86057 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6023c439e5e7ed8cfcb63488e411e3f04f2515da Author: Jim Grosbach <grosbach@apple.com> Date: Wed Nov 4 22:41:00 2009 +0000 dynamic stack realignment necessitates scanning the floating point callee- saved instructions even if no stack adjustment for those saves is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d9fe58ac9c54287f9894c61e361af13e6690300 Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 4 22:06:12 2009 +0000 Fix DW_AT_data_member_location for bit-fields. It points to the location of annonymous field that covers respective field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86054 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8cbca94a15e7064ee043b77799d9906d8d4b324 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 4 21:31:18 2009 +0000 Add PowerPC codegen for indirect branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86050 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13d4167715408b029b52ca88437321f306b057df Author: Lang Hames <lhames@gmail.com> Date: Wed Nov 4 21:24:15 2009 +0000 Handle empty/tombstone keys for LiveIndex more cleanly. Check for index sanity when constructing index list entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5791bad4eae891bd0596cdf5b5984e42b15e693f Author: Duncan Sands <baldrick@free.fr> Date: Wed Nov 4 20:50:23 2009 +0000 A value is only assigned to errno if NumRead equals -1, so do not reason based on errno if NumRead has a different value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86046 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e5933ce0a357d34527487908bde7c1d29a0795f Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 4 20:04:11 2009 +0000 Fix broken test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86045 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fc72f071d1541bcc6f6a5d276b728167d53359c Author: Eric Christopher <echristo@apple.com> Date: Wed Nov 4 19:57:50 2009 +0000 Add some options to disable various code gen optimizations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86044 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ff19cf6b084b54e4f04b72f080926a4a37d953c Author: Devang Patel <dpatel@apple.com> Date: Wed Nov 4 19:37:40 2009 +0000 Array element size does not match array size but array is not a bitfield. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86043 91177308-0d34-0410-b5e6-96231b3b80d8 commit a589b3890a92196ca96b3a26e65ddafc52cbe3d5 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Nov 4 19:25:34 2009 +0000 Add test for ARM indirectbr codegen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f251671d1a905be12347721af468b8e31ad9d6e Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Wed Nov 4 19:24:37 2009 +0000 Print out an informative comment for KILL instructions. The KILL pseudo-instruction may survive to the asm printer pass, just like the IMPLICIT_DEF. Print the KILL as a comment instead of just leaving a blank line in the output. With -asm-verbose=0, a blank line is printed, like IMPLICIT?DEF. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86041 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf2c373dfc705dc218ea5dc83e8ddfe3c330702b Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 4 18:57:42 2009 +0000 Fix an iterator invalidation bug that happens when a hashtable resizes in IPSCCP. This fixes PR5394. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86036 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcdde22dbb4894a8b9711ef1f921426a3eb6727a Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 4 08:36:50 2009 +0000 Look for llvm-gcc under /Developer/usr/bin first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86023 91177308-0d34-0410-b5e6-96231b3b80d8 commit a39f127c957d42f0ce408b00fb5c597fb9f766d1 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 4 08:33:14 2009 +0000 RangeIsDefinedByCopyFromReg() should check for subreg_to_reg, insert_subreg, and extract_subreg as a "copy" that defines a valno. Also fixes a typo. These two issues prevent a simple subreg coalescing from happening before. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86022 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93e6ff9686763f528032b5c1e15153672cdde84c Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 4 08:05:20 2009 +0000 move two functions up higher in the file. Delete a useless argument to EmitGEPOffset. Implement some new transforms for optimizing subtracts of two pointer to ints into the same vector. This happens for C++ iterator idioms for example, stringmap takes a const char* that points to the start and end of a string. Once inlined, we want the pointer difference to turn back into a length. This is rdar://7362831. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86021 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ed81a9a308da7f0b05af7887e53b913cdf8128c Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 4 07:57:05 2009 +0000 filecheckize this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2527652d0530076c4fcfc114b4a950bbfeeaa77a Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 4 07:38:48 2009 +0000 The .n suffix must go after the predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86019 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3673807c7cef986331086848ace56e2a7a8a421 Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Nov 4 06:15:28 2009 +0000 The magic for our current brand of .bc files is BC. For older ones it was llvc. When was it ever "llvm"? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f225801184a85aa03ddc3b45da5ad0eda8986ed Author: Chris Lattner <sabre@nondot.org> Date: Wed Nov 4 05:00:12 2009 +0000 make IRBuilder zap "X|0" and "X&-1" when building IR, this happens during bitfield codegen and slows down -O0 compile times by making useless IR. rdar://7362516 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86006 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca58fd8d29aa31703adf240118e6031be84c3808 Author: Daniel Dunbar <daniel@zuster.org> Date: Wed Nov 4 04:32:50 2009 +0000 configure: Add --with-optimize-option, for setting the default value of OPTIMIZE_OPTION. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86005 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3072a0705d8acd8aad61b8591362367c428a3c19 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 4 03:08:57 2009 +0000 Silence implicit conversion warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86000 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6fbcac2b54259df3d1f22fbbb0a0609c51cc5c9 Author: Lang Hames <lhames@gmail.com> Date: Wed Nov 4 01:52:40 2009 +0000 Another spurious friend declaration removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85997 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36b4226099ea59d8a6711a84c19cace000cc37ea Author: Lang Hames <lhames@gmail.com> Date: Wed Nov 4 01:34:22 2009 +0000 Removed an unnecessary friend declaration and some crufty comments from IndexListEntry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85995 91177308-0d34-0410-b5e6-96231b3b80d8 commit c527ba8dbb651bc60d2ea16990283d8e96e249ed Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Nov 4 01:32:06 2009 +0000 Fix CMake makefiles git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94b940d57a3e1cb133733ffa70dd7b3dec8e0d05 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 4 00:42:33 2009 +0000 Fix test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85986 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98fd6060b428475e227274836140601d27016a4f Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Nov 4 00:00:39 2009 +0000 Use ldr.n to workaround a darwin assembler bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85980 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6a717cba117dae9a90a373698f691d9452c9c49 Author: Lang Hames <lhames@gmail.com> Date: Tue Nov 3 23:52:08 2009 +0000 The Indexes Patch. This introduces a new pass, SlotIndexes, which is responsible for numbering instructions for register allocation (and other clients). SlotIndexes numbering is designed to match the existing scheme, so this patch should not cause any changes in the generated code. For consistency, and to avoid naming confusion, LiveIndex has been renamed SlotIndex. The processImplicitDefs method of the LiveIntervals analysis has been moved into its own pass so that it can be run prior to SlotIndexes. This was necessary to match the existing numbering scheme. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85979 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24a1825a08acd458d350140f0706f3cbc5bf6a2e Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Nov 3 23:44:31 2009 +0000 Fix branch folding bug for indirect branches: for a block containing only an unconditional branch (possibly from tail merging), this code is trying to redirect all of its predecessors to go directly to the branch target, but that isn't feasible for indirect branches. The other predecessors (that don't end with indirect branches) could theoretically still be handled, but that is not easily done right now. The AnalyzeBranch interface doesn't currently let us distinguish jump table branches from indirect branches, and this code is currently handling jump tables. To avoid punting on address-taken blocks, we would have to give up handling jump tables. That seems like a bad tradeoff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85975 91177308-0d34-0410-b5e6-96231b3b80d8 commit dca9e5cbeb8369bd4d8a6ea6a3232717884b1e8a Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 23:40:48 2009 +0000 reimplement multiple return value handling in IPSCCP, making it more aggressive an correct. This survives building llvm in 64-bit mode with optimizations and the built llvm passes make check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85973 91177308-0d34-0410-b5e6-96231b3b80d8 commit 276f816673b1257798355cedad6f1529c75af3dd Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 3 23:13:34 2009 +0000 Fix t2Int_eh_sjlj_setjmp. Immediate form of orr is a 32-bit instruction. So it should be 22 bytes instead of 20 bytes long. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85965 91177308-0d34-0410-b5e6-96231b3b80d8 commit eafe7166f828b3444172ff8d3ab2fc1f060d1004 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Nov 3 22:50:10 2009 +0000 Use llvm-gcc on newer Darwins. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85963 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28cf87a1ef35e19850b37d1c86e1e525041bb41a Author: Nuno Lopes <nunoplopes@sapo.pt> Date: Tue Nov 3 22:07:07 2009 +0000 set svn:ignore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85953 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e5ab0bd7db07a568cb543f7c78c1bc5ab70efa5 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 3 21:59:33 2009 +0000 fconsts / fconstd immediate should be proceeded with #. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85952 91177308-0d34-0410-b5e6-96231b3b80d8 commit c09ffd223afb21cb7619530e58969b34fdcf71c0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 21:50:09 2009 +0000 fix broken link git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85951 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6cb4521300b5d215e1363b82cdc2fd443c67088 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 3 21:40:02 2009 +0000 Re-apply 85799. It turns out my code isn't buggy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85947 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4cc5096427898be26afda67e6c1de40a98603000 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 21:26:26 2009 +0000 fix test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85946 91177308-0d34-0410-b5e6-96231b3b80d8 commit 339daf45dbfe2111a16d08e0068b9e3669c6684f Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 21:25:50 2009 +0000 merge a test into ipsccp-basic. running llvm-ld to get one pass is... bad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85945 91177308-0d34-0410-b5e6-96231b3b80d8 commit 996892b9ed838e797c1a870e9839dfcd236a5014 Author: David Goodwin <david_goodwin@apple.com> Date: Tue Nov 3 20:57:50 2009 +0000 Do a scheduling pass ignoring anti-dependencies to identify candidate registers that should be renamed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85939 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5b4c33c8bee18c293e4dbb9ce53d60bb653ad4d Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 20:52:57 2009 +0000 finish half thunk thought git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85937 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb4ea016719ee4d21cd3c0d01f82cd12c346d870 Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Nov 3 20:39:35 2009 +0000 Changes requested (avoid getFunction(), avoid Type creation via isVoidTy(), and avoid redundant isFreeCall cases) in feedback to r85176 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85936 91177308-0d34-0410-b5e6-96231b3b80d8 commit d078dfc911400195d7d2fc6961f5e684dbb1413c Author: David Goodwin <david_goodwin@apple.com> Date: Tue Nov 3 20:15:00 2009 +0000 <rdar://problem/7352605>. When building schedule graph use mayAlias information to avoid chaining loads/stores of spill slots with non-aliased memory ops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85934 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3406e998920033dc225fa89d75e161c2a47c625 Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Nov 3 20:02:35 2009 +0000 Changes (* location in pointer variables, avoiding include, and using APInt::getLimitedValue) based on feedback to r85814 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85933 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9b50cdd8d518c6321aba8b741024fa90d1bef4a Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 19:35:13 2009 +0000 turn IPSCCP back on by default, try #3 or 4? Woo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85929 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59dc8e6f2cea716a6f677d50bd82d96cd45ebc0e Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 19:24:51 2009 +0000 fix an IPSCCP bug I introduced when I changed IPSCCP to start working on functions that don't have local linkage. Basically, we need to be more careful about propagating argument information to functions whose results we aren't tracking. This fixes a miscompilation of LLVMCConfigurationEmitter.cpp when built with an llvm-gcc that has ipsccp enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85923 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3133d382edb595aed9df285f64f32a4ace8044bc Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 3 19:10:22 2009 +0000 Make this code more robust by not thinking we are making progress if zero bytes were read. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85922 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad58bb3530c4ee4c2363217f515e99f700d7e52c Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 3 19:06:07 2009 +0000 Parse debug info attached with insertvalue and extractvalue instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85921 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c7403016afc834b7c310a5676de5ba5dfd1ea2c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Nov 3 18:46:11 2009 +0000 Move subtarget check upper for NEON reg-reg fixup pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85914 91177308-0d34-0410-b5e6-96231b3b80d8 commit f982ca6b74654680fb22828fc1f9573b8ecd634d Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 18:30:31 2009 +0000 mark some constant global const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85910 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11ac7e7b5d9a4c1ede1e3485ad38eb4ca889918c Author: Devang Patel <dpatel@apple.com> Date: Tue Nov 3 18:30:27 2009 +0000 Ignore unnamed variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85909 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85bc7b12e5f602c250d35c681c5639d7a56e1099 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 17:54:12 2009 +0000 xfail this test since daniel turned off ipsccp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85907 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdca138a92bf031f1bd4fb26f0564c4ca97b5658 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 17:03:02 2009 +0000 testcase for r85903 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85906 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d2a9ca1cfb732a273a4707480f7a9b11c22d0f5 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 16:50:11 2009 +0000 fix a subtle bug I introduced when refactoring SCCP. Testcase to follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85903 91177308-0d34-0410-b5e6-96231b3b80d8 commit a092c1232e712b8d40d71910a0bde367875bd31f Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Tue Nov 3 15:29:06 2009 +0000 Make opt default to not adding a target data string and update tests that depend on target data to supply it within the test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85900 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d8f7ca741e223de15b4bc83ddc00033e5da5be1 Author: Kenneth Uildriks <kennethuil@gmail.com> Date: Tue Nov 3 15:25:20 2009 +0000 Added a comment to a function that had none git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85899 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e96e727b2b74ae92c8d3ed6c1c786aca6f513f5 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Nov 3 12:52:50 2009 +0000 Eliminate some temporaries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85896 91177308-0d34-0410-b5e6-96231b3b80d8 commit 594522ab60e8ccebd9339149714422e94e1fdf72 Author: Duncan Sands <baldrick@free.fr> Date: Tue Nov 3 09:40:08 2009 +0000 Run the functionattrs pass after the inliner, and not before. This makes both logical sense (see below) and increases the number of functions marked readnone/readonly by about 1-2% in practice. The number of functions marked nocapture goes up by about 5-10%. The reason it makes sense is shown by the following example: if you run -functionattrs -inline on it, then no attributes are assigned. But if you instead run -inline -functionattrs then @f is marked readnone because the simplifications produced by the inliner eliminate the store. @x = external global i32 define void @w(i1 %b) { br i1 %b, label %write, label %return write: store i32 1, i32 *@x br label %return return: ret void } define void @f() { call void @w(i1 0) ret void } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85893 91177308-0d34-0410-b5e6-96231b3b80d8 commit fab6da0286f9888c0c3a10117bcdbcb4504fe99a Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 3 07:49:22 2009 +0000 Speculatively redisable IPSCCP, I think its still breaking things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85884 91177308-0d34-0410-b5e6-96231b3b80d8 commit 39c2f8441685672f1b501c4fc24c22dba6e19274 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Nov 3 07:26:38 2009 +0000 lit: Update Clang's test style to use XFAIL: and XTARGET: lines that match LLVM's tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85882 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d63848cf8c3a3b885f75dd0be11e5e217c254e9 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 3 07:08:08 2009 +0000 Trim unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85878 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74f8efd28d43839bb2513ad39c93a5ae317c3764 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Nov 3 06:29:56 2009 +0000 For Thumb indirect branches, use "mov pc, reg" which does not switch between ARM/Thumb modes and does not require the low bit of the target address to be set for Thumb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ea4690298176786e7a20f69755e5dadaa4f5e98 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Nov 3 06:29:36 2009 +0000 Fix a funky "declared with greater visibility than the type of its field" warning from gcc by removing VISIBILITY_HIDDEN attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85873 91177308-0d34-0410-b5e6-96231b3b80d8 commit f865754812e17df0cee7e4a1d387bac6603f015b Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 3 05:52:54 2009 +0000 Fix PR5367. QPR_8 is the super regclass of DPR_8 and SPR_8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85871 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ef1ec1295a24dc9ed54952005a3f2cab20165c6 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 3 05:51:39 2009 +0000 Clean up copyRegToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85870 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89947e524969d671c7cb8763fdc333ee02727338 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Nov 3 05:50:57 2009 +0000 Add QPR_8 as a superreg class of SPR_8 and DPR_8. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85869 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7cae17293078de6851d16451c78680666157e05d Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 05:35:19 2009 +0000 remove unneeded checks of isFreeCall git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85866 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6679f518c4388f1b5a580f9cf6d82391a863dfd4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 05:34:51 2009 +0000 remove a check of isFreeCall: the argument to free is already nocapture so the generic call code works fine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85865 91177308-0d34-0410-b5e6-96231b3b80d8 commit a856e3625f4d2486c2968afbbbc1192ae191b88f Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 05:33:46 2009 +0000 remove a isFreeCall check: it is a callinst that can write to memory already. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85863 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53716298997391af4aa6547150f9162a942312ff Author: Ted Kremenek <kremenek@apple.com> Date: Tue Nov 3 04:14:12 2009 +0000 Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85861 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6008c51749687d8525357ae6f75f3deebfbc032c Author: Ted Kremenek <kremenek@apple.com> Date: Tue Nov 3 04:06:58 2009 +0000 Support updating 'llvm_add_target' lists as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85860 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfdce75f068a2af4fc55051c09b80119fc720a81 Author: Ted Kremenek <kremenek@apple.com> Date: Tue Nov 3 04:01:53 2009 +0000 Alphabetize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85859 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a2499a52b50685ed16c51d28550a09d0235dd29 Author: Chris Lattner <sabre@nondot.org> Date: Tue Nov 3 03:42:51 2009 +0000 turn IPSCCP back on now that the iterator invalidation bug is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85858 91177308-0d34-0410-b5e6-96231b3b80d8 commit adcdd9b902b4e48f1231f8a504dd7a6871eb1515 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Nov 3 03:30:51 2009 +0000 Add a couple more target nodes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85857 91177308-0d34-0410-b5e6-96231b3b80d8 commit b00cf59da47c3f365ab2834850876dfccdaf2346 Author: Nate Begeman <natebegeman@mac.com> Date: Tue Nov 3 02:19:31 2009 +0000 Declare sin & cos as readonly so they match the code in SelectionDAGBuild git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85853 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ed3a35a6549891d3a9ef08bcc9caaf21703a537 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Nov 3 01:04:26 2009 +0000 Turn neon reg-reg moves fixup code into separate pass. This should reduce the compile time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3daf4012398a2511b36cf7bd31192f098f9820b9 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Nov 3 00:37:36 2009 +0000 Temporary xfail until PR5367 will be resolved git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85848 91177308-0d34-0410-b5e6-96231b3b80d8 commit b6057985f14be94252b2741f5e8ae338879395a6 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Nov 3 00:24:48 2009 +0000 Revert r85049, it is causing PR5367 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85847 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c9eda2cdfdd2fa0f49365d669d74968e1a925e2 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Nov 3 00:02:05 2009 +0000 Revert previous change to a comment. The BlockAddresses go in the constant pool so they don't get wrapped separately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85844 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd355c46afc286a3d561ac671dba1f057cde8e6f Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 23:25:39 2009 +0000 fix a nasty iterator invalidation bug from my conversion from std::map to DenseMap, exposed on release llvm-gcc bootstrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85840 91177308-0d34-0410-b5e6-96231b3b80d8 commit da8a1abb3dc7f1fde5759ccb0fc0820c4198d94d Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 2 21:49:14 2009 +0000 Revert 85799 for now. It might be breaking llvm-gcc driver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85827 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1da913d170e20cf91fd12f9da5d733f171bcb7d Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 2 20:59:23 2009 +0000 Put BlockAddresses into ARM constant pools. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85824 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7209bfc4cf90c88ce0d1795184e99fe54091c53 Author: Kevin Enderby <enderby@apple.com> Date: Mon Nov 2 20:14:39 2009 +0000 Fix ARMAsmParser::ParseMemoryOffsetReg() where the parameter OffsetRegNum should have been passed as a reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85823 91177308-0d34-0410-b5e6-96231b3b80d8 commit d78dfdfe75fcfb54c65bd312ab31fec89d6741be Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 19:31:10 2009 +0000 revert r8579[56], which are causing unhappiness in buildbot land. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bcc6637fb7f1d7a618c4fc9f981c7ae1d6cead0 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Nov 2 19:11:03 2009 +0000 CMake: Report an error if there is an unknown .cpp file in a source directory. This is useful in case someone who works with the config&make build system forgot to add a file to its CMakeLists.txt. Instead of obtaining undefined references at link time, cmake will complain at configure time on the first build after a svn update. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85817 91177308-0d34-0410-b5e6-96231b3b80d8 commit 529fbeb0c9987e3211c6d44d123c13e6dad5673c Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Nov 2 18:51:28 2009 +0000 Set bit instead of calling pow() to compute 2 << n git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85814 91177308-0d34-0410-b5e6-96231b3b80d8 commit 76356bcc3bdfbdb0470281af5b3505a990cf1e94 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 18:28:45 2009 +0000 typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85812 91177308-0d34-0410-b5e6-96231b3b80d8 commit c264c9eca13f6b368663f98b1cf3c3d23dc7f061 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 18:27:22 2009 +0000 merge 2008-03-10-sret.ll into ipsccp-basic.ll, and upgrade its syntax. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85811 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e5b03000665b0ef55d866a33f88bb8375f96695 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 18:22:51 2009 +0000 disable IPSCCP support for multiple return values, it is buggy, so just disable it until I can fix it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a8ec820614ab5b5a0edef1297cbc4cec4b1c3d9 Author: David Goodwin <david_goodwin@apple.com> Date: Mon Nov 2 17:28:36 2009 +0000 Fix schedule model for BFC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85809 91177308-0d34-0410-b5e6-96231b3b80d8 commit a07d68f6f017c73cbca1222cddd6baf40974974b Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 2 17:10:37 2009 +0000 Hyphenate some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85808 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9374f78f5230bcd68f2e8b24d0b975cb86527e76 Author: David Goodwin <david_goodwin@apple.com> Date: Mon Nov 2 17:06:28 2009 +0000 Chain dependencies used to enforce memory order should have latency of 0 (except for true dependency of Store followed by aliased Load... we estimate that case with a single cycle of latency assuming the hardware will bypass) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85807 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62acbf19235b3b20a24958b973538e35ec6f2d67 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 2 16:59:06 2009 +0000 Add support for BlockAddress values in ARM constant pools. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85806 91177308-0d34-0410-b5e6-96231b3b80d8 commit d737897784e400b7c2642030b362faf42493a398 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Nov 2 16:58:31 2009 +0000 Prune unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85805 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9a615773ca6289058893e18267c9ce4095cb3656 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 2 08:09:49 2009 +0000 Initilize the machine LICM CSE map upon the first time an instruction is hoisted to the loop preheader. Add instructions which are already in the preheader block that may be common expressions of those that are hoisted out. These does get a few more instructions CSE'ed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85799 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ff61c68cde1cf4d785362c21f4a316436d14a22 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 2 07:58:25 2009 +0000 These are done / no longer care. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85798 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9ca3d1e7116200fe9e62cb9397c783d1d653159 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 2 07:51:19 2009 +0000 Add an entry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85797 91177308-0d34-0410-b5e6-96231b3b80d8 commit f386afd11f1c8e56d1afc8ff534bc58a2a3c29ed Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 07:34:29 2009 +0000 now that ip sccp *really* subsumes ipcp, remove ipcp again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29cc27a3e256f969418198dcff1c9b28317890bb Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 07:33:59 2009 +0000 improve IPSCCP to be able to propagate the result of "!mayBeOverridden" function to calls of that function, regardless of whether it has local linkage or has its address taken. Not escaping should only affect whether we make an aggressive assumption about the arguments to a function, not whether we can track the result of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6aed9d422dfd1b2e46a5ae63d95e2c83f5279247 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 2 07:11:54 2009 +0000 Remove an irrelevant and poorly reduced test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85794 91177308-0d34-0410-b5e6-96231b3b80d8 commit 74f9ed2fef57ffe21074042e681c7c000cb4e0a1 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 06:34:04 2009 +0000 don't mark the arguments of prototype overdefined, they will never be queried. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85793 91177308-0d34-0410-b5e6-96231b3b80d8 commit e84f1231eff713701e9d60c4b2b16f3997daa0eb Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 06:28:16 2009 +0000 restore some code I removed in r85788, refactor it into a shared place instead of duplicating it 4 times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85792 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2a4e20894cd1fa7afc1c7586c4b650ff5cd8a56 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 06:17:06 2009 +0000 remove some confused code that dates from when we had "multiple return values" but not "first class aggregates" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85791 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5ffa7c6137334a259426aa4f656a6d28193a459 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 06:11:23 2009 +0000 avoid redundant lookups in BBExecutable, and make it a SmallPtrSet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0148bb29a5f14dfd9c5c94ec7144c0554cd2691f Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 06:06:14 2009 +0000 Use the libanalysis 'ConstantFoldLoadFromConstPtr' function instead of reinventing SCCP-specific logic. This gives us new powers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85789 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6367c3fa7cb3820bc31a40e9195388db37e452a0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 05:55:40 2009 +0000 switch the main 'ValueState' map from being an std::map to being a DenseMap. Doing this required being aware of subtle iterator invalidation issues, but it provides a big speedup. In a release-asserts build, this sped up optimizing 403.gcc from 1.34s -> 0.79s (IPSCCP) and 1.11s -> 0.44s (SCCP). This commit also conflates in a bunch of general cleanups, sorry. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85788 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9a5f772aa33a15e8ae9db61010ea0e347b771ca Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Nov 2 04:44:55 2009 +0000 Unbreak ARMBaseRegisterInfo::copyRegToReg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85787 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9661b6764715959f2b35c795af1dfbe5a92bbb6 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 04:37:17 2009 +0000 fix a bug exposed by moving SRoA earlier which caused a crash building kc++ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85786 91177308-0d34-0410-b5e6-96231b3b80d8 commit aae7a3d378ed2f64bb369ad672439f08fb8e685c Author: Jim Grosbach <grosbach@apple.com> Date: Mon Nov 2 03:46:35 2009 +0000 Missing bit of universal built + hosted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84388f11cf36e91102b33b61b5209318e78445c8 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 03:25:55 2009 +0000 only IPSCCP incoming arguments if the function is executable, this fixes an assertion on the buildbot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 220571cfe77c2beb85bdf42c2e1feded607eea9f Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 03:21:36 2009 +0000 add a new ValueState::getConstantInt() helper, use it to simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85783 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ba3276aeb2caea7729d5d792e01a9800b9208b4 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Nov 2 03:20:57 2009 +0000 Fix malloc.h is deprecated warning on DragonFly BSD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85782 91177308-0d34-0410-b5e6-96231b3b80d8 commit 97489014b43242375a4e5258472ee082a1c786ee Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Nov 2 03:14:31 2009 +0000 Fix for warning seen on DF-BSD, Victor, please fix this to use a shift instead of pow() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85781 91177308-0d34-0410-b5e6-96231b3b80d8 commit b52f700e8ae038dcd38a17112f942f1be298ade2 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 03:03:42 2009 +0000 tidy up some more: remove some extraneous inline specifiers, return harder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e974a781487f7bee54b92a541f3f682ec95e479 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Nov 2 02:55:39 2009 +0000 Apply fix for PR5135, Credit to Andreas Neustifter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85779 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9edab8daff6c1e9d474961b0e7c97cd57dbf2a7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 02:54:24 2009 +0000 eliminate the SCCPSolver::getValueMapping method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85778 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9474d5d76734a90e0d2e92a420e848fb435cc32 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 02:48:17 2009 +0000 fix failures introduced in r85774 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85777 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14513dcc2b5d3dd742deaf0080e0995c865db87f Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 02:47:51 2009 +0000 factor duplicated code into a new DeleteInstructionInBlock function, eliminate temporary (and pointless) smallvector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85776 91177308-0d34-0410-b5e6-96231b3b80d8 commit c879800404e3705403f04009016ced1d92a2c114 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 02:33:50 2009 +0000 Chris used to use '...' instead of proper grammar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85775 91177308-0d34-0410-b5e6-96231b3b80d8 commit adaf73315966fa8ad1c5053e7ac5aa15eed7aabd Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 02:30:06 2009 +0000 remove some extraneous llvmcontext stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85774 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1eb405b598213a9ffe077d4b42c23f055568294e Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 02:20:32 2009 +0000 change LatticeVal to use PointerIntPair to save some space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85773 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69fa3f564d114d4f2b4d953e736373c917c6d640 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 02:06:37 2009 +0000 fix instcombine to only do store sinking when the alignments of the two loads agree. Propagate that onto the new store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85772 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0996a2f36e9fc7a4573e296c84deb012c196ff0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 02:00:18 2009 +0000 merge a test into store.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31cf6ca5aa61e751ceaa6c4555acb592e551d67e Author: Chris Lattner <sabre@nondot.org> Date: Mon Nov 2 01:58:03 2009 +0000 convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85770 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4ae2294dc77422063a9f739b27410c9f0c151e4 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Nov 2 00:25:26 2009 +0000 Add missing end-tag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85769 91177308-0d34-0410-b5e6-96231b3b80d8 commit 614b32b9c179b1e897cd953eb90fd00e374c1728 Author: Bill Wendling <isanbard@gmail.com> Date: Mon Nov 2 00:24:16 2009 +0000 Some formatting changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85768 91177308-0d34-0410-b5e6-96231b3b80d8 commit f817d7bfb1568b67a790dbae0ea05e162b6bc560 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Nov 2 00:12:06 2009 +0000 Handle splats of undefs properly. This includes the testcase for PR5364 as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85767 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9331217b489a204b9264bb424ebf83612e1b29e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Nov 2 00:11:39 2009 +0000 Do not infer the target type for COPY_TO_REGCLASS from dest regclass, this won't work if it can contain several types. Require explicit result type for the node for now. This fixes PR5364. PS: It seems that blackfin usage of copy_to_regclass is completely bogus! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85766 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1853b6e277b38bc8d796951f371cbc5824b21aff Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Nov 2 00:11:06 2009 +0000 64-bit FP loads & stores operate on both NEON and VFP pipelines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85765 91177308-0d34-0410-b5e6-96231b3b80d8 commit eed9c14b562d5c43c787b0a74c99f3adf6238f6b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Nov 2 00:10:38 2009 +0000 Use NEON reg-reg moves, where profitable. This reduces "domain-cross" stalls, when we used to mix vfp and neon code (the former were used for reg-reg moves) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87e4592785576c12930d0ffd65b33c7b7d889fc5 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Nov 1 23:50:04 2009 +0000 Add PseudoSourceValue::mayAlias. It returns true if the object can ever alias any LLVM IR value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85762 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b1f541793e2143762a8f08e65d46bec80fd758e Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 1 22:08:51 2009 +0000 Line this up as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f80251773274b4df99b6b5cbea024feebd9aae3 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Nov 1 22:07:54 2009 +0000 Fix whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ac1b43d80bf7bac148dd5d4ad3dd98054cf9408 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Nov 1 22:04:35 2009 +0000 Fix a couple more places where we are creating ld / st instructions without memoperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3e9fef42389147453ebcbe12543ae9f1c6530f7c Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Nov 1 21:12:51 2009 +0000 Make use of imm12 version of Thumb2 ldr / str instructions more aggressively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66207cc7cda2cfcda69b9ba092279e2357d94a6d Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 20:41:59 2009 +0000 fix two strange things in the default passmgr: 1. we'd run simplifycfg at the very start, even though the per function passes have already cleaned this up. 2. In the main per-function pipeline that is interlaced with inlining etc, we would do instcombine, jump threading, simplifycfg *before* doing SROA. SROA is much more likely to expose opportunities for these passes than they are for SROA, so move SRoA up earlier. also add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85742 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5409d9dbbfaa11af8119b76ea7263c3a5a2271d7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 20:10:11 2009 +0000 merge phi-merge.ll into phi.ll I don't know what Dan wants to do with phi-merge-gep.ll, I'll let him deal with it because instcombine may end up sinking these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52fe1bc4548599673b9040a44fe8e2aad2e65827 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 20:07:07 2009 +0000 when merging two loads, make sure to take the min of their alignment, not the max. This didn't matter until the previous patch because instcombine would refuse to sink loads with differenting alignments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38751f83c7e653378da439fc511928e3a0d3fb72 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 20:04:24 2009 +0000 split load sinking out to its own function, like gep sinking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 310a00f632a2db7665ed388d9268af8e1f3d02f5 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 19:50:13 2009 +0000 fix a bug noticed by inspection: when instcombine sinks loads through phis, it didn't preserve the alignment of the load. This is a missed optimization of the alignment is high and a miscompilation when the alignment is low. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85736 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f50617de31bdfc1138cbd1681bf67e59b5f5252 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 19:29:12 2009 +0000 IPSCCP apparently is not a superset of IPCP, this is bad, but I'll investigate it separately. This unbreaks test/FrontendC/weak_constant.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85735 91177308-0d34-0410-b5e6-96231b3b80d8 commit d05b6010946f8f7554210e983f742eb226500c40 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 19:22:20 2009 +0000 convert to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85734 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ea1608ce43d2a636745a58bd7ef0a8819609b53 Author: Duncan Sands <baldrick@free.fr> Date: Sun Nov 1 19:16:21 2009 +0000 Improve the other instance of the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85733 91177308-0d34-0410-b5e6-96231b3b80d8 commit af5f1d6c07a358b8378b0458c81a473cefcf15cc Author: Duncan Sands <baldrick@free.fr> Date: Sun Nov 1 19:12:43 2009 +0000 Add a missing closing parenthesis, and tweak to fit in 80 columns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85732 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5e2138e1894d150c0f3f830c236028ff5ad0f87 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 19:09:12 2009 +0000 only run GlobalDCE at -O3 and run it late instead of early. GlobalOpt already deletes trivially dead functions/globals, so GlobalDCE only adds values for cycles of dead things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85731 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3f2e8ec4afbba963c09dd4856258dd5cabf59112 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 19:03:42 2009 +0000 cleanups, switch GlobalDCE to SmallPtrSet instead of std::set git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45ad5c40eb868d053ddbd2296a26c02882c6bd37 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 18:57:49 2009 +0000 We currently only run ipsccp at LTO time, which is silly. It subsumes ipconstprop and doesn't take much time. Just run it in its place. This adds a testcase for it, which I plan to expand to cover other "integration" cases, where we expect the optimizer to be able to eliminate various things. Due to phase order issues we've regressed in a number of areas and integration tests are the only way I see to prevent this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85729 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3ce1a63e4891b7c53dbdde5dffb49b45f5672de Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 18:42:03 2009 +0000 remove a bunch of locking from LLVMContextImpl. Since only one thread can be banging on a context at a time, this isn't needed. Owen, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85728 91177308-0d34-0410-b5e6-96231b3b80d8 commit dda0326aa939d3dde36927286257036cd4fcb6d4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 18:17:37 2009 +0000 improve comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85725 91177308-0d34-0410-b5e6-96231b3b80d8 commit 789eb4ae48f61b77b0ee688f12758f8e401358c1 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 18:16:30 2009 +0000 add a comment about why we don't allow inlining indbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85724 91177308-0d34-0410-b5e6-96231b3b80d8 commit adc8e889dc20cad3cfbb3fb8d51e53c5c2b9625c Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Nov 1 18:13:29 2009 +0000 Fix tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85723 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8b101895463b01ac2c4044f2d49c2d624ea2e1a Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 18:11:50 2009 +0000 the verifier shouldn't modify the IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85722 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67127294f701ddec34ccb7a5dc324817be4645e7 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Sun Nov 1 16:42:53 2009 +0000 Reverting 85714, 85715, 85716, which are breaking the build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85717 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37a513fcc2c75f3080c93e6fcd9a97be368337fc Author: Dan Gohman <gohman@apple.com> Date: Sun Nov 1 15:28:36 2009 +0000 Add a function to Passes.h to allow clients to create instances of the ScalarEvolution pass without needing to #include ScalarEvolution.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85716 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47070a3479c96876132aa2ac6d17adde7a860402 Author: Dan Gohman <gohman@apple.com> Date: Sun Nov 1 15:23:35 2009 +0000 Don't #include Pass.h from CallGraph.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85715 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7f59f3af13b5fdee43de653d00598ca5a53bff6 Author: Dan Gohman <gohman@apple.com> Date: Sun Nov 1 15:20:19 2009 +0000 Remove the #include of Pass.h from PassManager.h. This breaks a significant #include dependency, as frontends commonly pull in PassManager.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85714 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f4875062faa6cad24c7ada735dba0877b5da634 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 06:11:53 2009 +0000 teach ipsccp and ipconstprop that a blockaddress doesn't 'take the address' of a function in a way that should prevent ip constprop. This allows clang/test/CodeGen/indirect-goto.c to pass with the new indirect goto lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85709 91177308-0d34-0410-b5e6-96231b3b80d8 commit cab3885bac1d1f297b73a1ea491eeeb870758b27 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 04:57:33 2009 +0000 change llvm::MergeBlockIntoPredecessor to not merge two blocks BB1->BB2 when BB2 has its address taken. Since it ends up doing BB2->rauw(BB1), this can cause the address of the entry block to be taken. Since it is generally undesirable to nuke blocks whose address is taken, even when we can, just unconditionally stop this xform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85708 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2b693f125e133847bd713d09e6d3894dbabe0cb Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 04:23:20 2009 +0000 strengthen an assumption: RevectorBlockTo knows that PredBB ended in an uncond branch because the pass requires BreakCriticalEdges. However, BCE doesn't eliminate critical adges from indbrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85707 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c29feace6d1ac93295c58c29e7c7fb9ae9afc77 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 04:08:01 2009 +0000 fix an issue where the verifier would reject a function whose entry block had its address taken even if the blockaddress was dead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85706 91177308-0d34-0410-b5e6-96231b3b80d8 commit f395da4484452032c224d0d98420bbeb09b56e3b Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 03:42:55 2009 +0000 if CostMetrics says to never duplicate some code, don't unswitch a loop. This prevents unswitching from duplicating indbr's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16e7f57318711bda14e78f61c275bd4d9e3e1f6d Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 03:40:38 2009 +0000 constant fold indirectbr(blockaddress(%bb)) -> br label %bb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 03796eeeb9c2c303c1fa1513ce009882e355bddc Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 03:25:03 2009 +0000 improve x86 codegen support for blockaddress. We now compile the testcase into: _test1: ## @test1 ## BB#0: ## %entry leaq L_test1_bb6(%rip), %rax jmpq *%rax L_test1_bb: ## Address Taken LBB1_1: ## %bb movb $1, %al ret L_test1_bb6: ## Address Taken LBB1_2: ## %bb6 movb $2, %al ret Note, it is very very strange that BlockAddressSDNode doesn't carry around TargetFlags. Dan, please fix this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85703 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1a9f7074f6a2b4e681cd895ab32f9e572bcef2e Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 03:07:53 2009 +0000 pull check for return inst out of loop, never inline a callee that contains an indirectbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85702 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a1444a7e6a2e0e68c72f4aac1f4e638645d9dac Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 03:03:03 2009 +0000 Fix BlockAddress::replaceUsesOfWithOnConstant to correctly maintain the block use count in SubclassData. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85701 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26cc8cd188e185295429c72ccda6fb3b5003d4cf Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 02:46:39 2009 +0000 implement linker support for BlockAddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85700 91177308-0d34-0410-b5e6-96231b3b80d8 commit 620cead9d0a40e874503c5605952c40186d585f0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Nov 1 01:27:45 2009 +0000 Revert 85678/85680. The decision is to stay with the current form of indirectbr, thus we don't need "blockaddr(@func, null)". Eliminate it for simplicity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85699 91177308-0d34-0410-b5e6-96231b3b80d8 commit 538da74ec2d9bb494a7704e195515c8be8b5b373 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 31 23:46:45 2009 +0000 Use cbz and cbnz instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85698 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67420bf16a60b1ae36b4d38187b3dd43e73fee51 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 22:57:36 2009 +0000 vml[as].f32 cause stalls in following advanced SIMD instructions. Avoid using them for scalar floating point operations for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85697 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5859872920b063601b0acf9b30a8c7ed2872be1b Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 22:20:56 2009 +0000 Consolidate test files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85696 91177308-0d34-0410-b5e6-96231b3b80d8 commit c08430d9dfcc194964945f33245042562d740760 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 22:16:14 2009 +0000 Change to use FileCheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85695 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7a7c531a022abcd54f4a15cbf69ad7000fe4b72 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 22:14:17 2009 +0000 Make tests more explicit about which instructions are expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85694 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c3c4f57135e652ad535cc4bb32cedd98ceb2834 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 22:12:44 2009 +0000 Grammar tweak to comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85693 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4790cb4896fbb204ec53b8e170d492e3e2842789 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 31 22:11:15 2009 +0000 Make sure PRE doesn't split crit edges from indirectbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85692 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7306aa658f13e92124c7f3fd0bd6c3dbe7084fa6 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 22:10:38 2009 +0000 Update test to be more explicit about what instruction sequences are expected for each operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 083a3ef68afd72bf97a4330382bc3e653f47559d Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 31 22:04:43 2009 +0000 llvm::SplitEdge should refuse to split an edge from an indirectbr. Fix CodeGenPrepare to not try to split edges from indirectbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85690 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a4ddea811297cd5ab6fef2d4ca9d5b1279be7f0 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 21:52:58 2009 +0000 Update test to be more explicit about what instruction sequences are expected for each operation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85689 91177308-0d34-0410-b5e6-96231b3b80d8 commit f281b470896161c227bf2d1a1be7c1f178b6e46a Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 31 21:51:10 2009 +0000 update the comment above llvm::SplitCriticalEdge, and make it abort on IndirectBrInst as describe in the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85688 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3bddfb18197f4b00b161db0c643e433f79e67e6 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 21:42:19 2009 +0000 Expand 64-bit logical shift right inline git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5480bad7b9ba0a765d937631674f2b65f8eeea1e Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 21:00:56 2009 +0000 Expand 64-bit arithmetic shift right inline git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85685 91177308-0d34-0410-b5e6-96231b3b80d8 commit 70337f0e084c54af2348a7a8aee72a2823c0e5b8 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 20:59:09 2009 +0000 Fix a missing newline in the dwarf output code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57b31659358cd7ae9cd045ec2ce3019b5adc234a Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 20:19:03 2009 +0000 Make -print-machineinstrs more readable. - Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring to unknown physical registers: %physreg10. - Be consistent when referring to known physical registers: %RAX - Be consistent when referring to register 0: %reg0 - Be consistent when printing alignments: align=16 - Print jump table contents. - Don't print host addresses, in general. - and various other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85682 91177308-0d34-0410-b5e6-96231b3b80d8 commit de4f1504bec844ec60a29d3946ff7257da0c3c50 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 20:17:39 2009 +0000 Factor out more code into addCommonCodeGenPasses. The JIT wasn't previously running CodePlacementOpt. Also print headers before each dump in -print-machineinstrs mode, so that it's clear which dump is which. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85681 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4200f2c815159e939351d5d447f7f68fb557e600 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 31 20:13:24 2009 +0000 adjust a couple xforms to work with null bb's in BlockAddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85680 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bc5f36e65090bc44026333e2966b720d0747a0d Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 31 20:08:37 2009 +0000 Make blockaddress(@func, null) be valid, and make 'deleting a basic block with a blockaddress still referring to it' replace the invalid blockaddress with a new blockaddress(@func, null) instead of a inttoptr(1). This changes the bitcode encoding format, and still needs codegen support (this should produce a non-zero value, referring to the entry block of the function would also be quite reasonable). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85678 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12f2dae2e58e01e256f08d511bb1a8b1d46b6a95 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Oct 31 19:54:06 2009 +0000 Force triple; darwin's ASM syntax differs from linux's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85676 91177308-0d34-0410-b5e6-96231b3b80d8 commit 998eacce4edb2421d0b40349057d8c30c1585ade Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 19:38:01 2009 +0000 Expand 64 bit left shift inline rather than using the libcall. For now, this is unconditional. Making it still use the libcall when optimizing for size would be a good adjustment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55d502f2448942052449602527322a8361508307 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Oct 31 19:22:24 2009 +0000 Add missing colons for FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85674 91177308-0d34-0410-b5e6-96231b3b80d8 commit dde39bd81cc82e60c13053190247af4b6486845d Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 19:06:53 2009 +0000 Convert to FileCheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85673 91177308-0d34-0410-b5e6-96231b3b80d8 commit 154b234c6da80515738cb79aee89794f05bfa0a5 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 31 18:00:10 2009 +0000 The universal SDKROOT should only be assigned when hosted. Otherwise the SDKROOT can refer to the target when we're building for the host. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85672 91177308-0d34-0410-b5e6-96231b3b80d8 commit d56c0cb634aa6812916307ad6f6a72e8589864b1 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 31 17:48:31 2009 +0000 add a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85671 91177308-0d34-0410-b5e6-96231b3b80d8 commit 80a0f8f856c40fcf82dafc313f76f2e7a64913c5 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 17:33:01 2009 +0000 Revert r85667. LoopUnroll currently can't call utility functions which auto-update the DominatorTree because it doesn't keep the DominatorTree current while it works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85670 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0afbe771f831d12dccd7813ea2a5e3bdac391b0b Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 16:16:41 2009 +0000 Remove redundant code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85668 91177308-0d34-0410-b5e6-96231b3b80d8 commit 508ac4b7e797df75dfbfb2f9cf06a0d94995ac46 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 16:08:00 2009 +0000 Merge the enhancements from LoopUnroll's FoldBlockIntoPredecessor into MergeBlockIntoPredecessor. This makes SimplifyCFG slightly more aggressive, and makes it unnecessary for LoopUnroll to have its own copy of this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85667 91177308-0d34-0410-b5e6-96231b3b80d8 commit f893ba349f3ac2b2ea4ec3418567d48301650f42 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 15:04:55 2009 +0000 Rename forgetLoopBackedgeTakenCount to forgetLoop, because it clears out more information than just the stored backedge taken count. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85664 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5f0d710707ce7f9247fa70de5552cb11d1dada7 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:54:17 2009 +0000 Replace LoopUnrollPass.cpp's custom code-size estimation code using the new common CodeMetrics code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85663 91177308-0d34-0410-b5e6-96231b3b80d8 commit 590112e91929037815065feb50868b05e272bbcf Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:46:50 2009 +0000 Simplify this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85662 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73ec8db1329e8c2aa1df8f131030d84ce0c07e71 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:39:43 2009 +0000 Remove an unnecessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85661 91177308-0d34-0410-b5e6-96231b3b80d8 commit ffd9e3fc97c59c5f477eccb876fc52cb3c492778 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:38:25 2009 +0000 Update CMakeLists for recent renames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85660 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe18719fbded699e8901b003f31e25378f63928b Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:37:31 2009 +0000 Rename UnrollLoop.cpp to LoopUnroll.cpp, and LoopUnroll.cpp to LoopUnrollPass.cpp, for consistency with other passes which are similarly split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85659 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d54b9847f98e0dfb58e9c7d13af4cb86a5b0812 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:35:41 2009 +0000 Remove CodeGenLICM. It's largely obsoleted by MachineLICM's new ability to unfold loop-invariant loads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85657 91177308-0d34-0410-b5e6-96231b3b80d8 commit fab05d2f984c70bf79e79dc059301bfdafb66378 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:32:25 2009 +0000 Make ScalarEvolutionAliasAnalysis slightly more aggressive, by making an underlying alias call even for non-identified-object values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85656 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2cc8e84a06c9a71a03a322deaf30691ccd0d96c0 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:22:52 2009 +0000 Reapply r85634, with the bug fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c98ce3d0b7bca679abebf6c6e2e9f6de6bbb02e Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:14:04 2009 +0000 When discarding SrcValue information, discard all of it so that code that uses this information knows to behave conservatively. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85654 91177308-0d34-0410-b5e6-96231b3b80d8 commit 509fccf21830e93d117e482fdc5a6b18e183bd3e Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 14:12:53 2009 +0000 Fix 80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6de661ad137c60e288bd4626f5817e39fc695e51 Author: Eric Christopher <echristo@apple.com> Date: Sat Oct 31 09:24:35 2009 +0000 Fix warning with gcc-4.0 and signed/unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85648 91177308-0d34-0410-b5e6-96231b3b80d8 commit 326d7242e283922daf63e607bbc84e1498f76da7 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 31 03:39:36 2009 +0000 It's safe to remat t2LDRpci; Add PseudoSourceValue to load / store's to enable more machine licm. More changes coming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85643 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35f8bdcd86c0281f7b5a040e765a665774ef5b22 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 31 01:28:06 2009 +0000 Revert 85634. It's breaking consumer-typeset (and others). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17d892adad853cc7fea4e64d72e3717903a953cd Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 31 00:15:28 2009 +0000 Add a target triple so that this test behaves consistently across hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61b16fbdaeb7617b779fd0df62b32b40cf68a12c Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 23:59:06 2009 +0000 Add assertion checks here to turn silent miscompiles into aborts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85639 91177308-0d34-0410-b5e6-96231b3b80d8 commit c00047af5603cf63b34c76c740d4a29fd22ff60a Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 23:57:47 2009 +0000 Don't mark registers dead here when processing nodes with MVT::Flag results. This works around a problem affecting targets which rely on MVT::Flag to handle physical register defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5aaaa52b972e9ef90316ecf9cb5b406dd31650f1 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 23:18:27 2009 +0000 Fix the -mattr line for this test so that it passes on hosts that lack SSSE3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85637 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac97988e5d42a2a96b08c49dffa61bbe64119db8 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 23:16:10 2009 +0000 Add a testcase for the recent duplicate PHI elimination changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85636 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08cb4f2aff78d2bb1f44af7616a9117437e1eeb3 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 23:15:43 2009 +0000 Add a comment about a missed opportunity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85635 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14af0e5b2284045a70c71231a4258862e911219d Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 23:15:21 2009 +0000 Optimize around the fact that pred_iterator is slow: instead of sorting PHI operands by the predecessor order, sort them by the order used by the first PHI in the block. This is still suffucient to expose duplicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85634 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13f60e83d6add4d7159c322a7ccc1c36c26a115b Author: Kevin Enderby <enderby@apple.com> Date: Fri Oct 30 22:55:57 2009 +0000 Updates to the ARM target assembler for llvm-mc per review comments from Daniel Dunbar. - Reordered the fields in the ARMOperand Mem struct to make the struct smaller. Making bool's into 1 bit fields and put the MCExpr* fields adjacent to each other. - Fixed a number of places in ARMAsmParser.cpp so they have doxygen comments. - Change the name of ARMAsmParser::ParseRegister() to MaybeParseRegister and added the bool ParseWriteBack parameter. - Changed ARMAsmParser::ParseMemory() to call MaybeParseRegister(). - Added ARMAsmParser::ParseMemoryOffsetReg to factor out parsing the offset of a memory operand. And use it for both parsing both preindexed and post indexing addressing forms in ARMAsmParser::ParseMemory. - Changed the first argument to ParseShift() to a reference. - Changed ParseShift() to check for Rrx first and return to reduce nesting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85632 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17c45db8ddc97c08cb46ad669677bb0c6459f363 Author: Devang Patel <dpatel@apple.com> Date: Fri Oct 30 22:52:47 2009 +0000 If string field is empty then return NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85630 91177308-0d34-0410-b5e6-96231b3b80d8 commit ec080e7b221889a3b1b2616a19e4019295509627 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 30 22:39:36 2009 +0000 if basic blocks are destroyed while there are *just* BlockAddress' hanging around, then zap them. This is analogous to dangling constantexprs hanging off functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 885be9130b4d9bfe1274b018e8b5c6aa667eb12c Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 22:39:04 2009 +0000 Teach SimplifyCFG how to eliminate duplicate PHI nodes within a block. This reduces codesize on a variety of codes by 1-2% on x86-64. It also helps clean up after SSAUpdater. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85626 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fb64e96c8cb775c57cea53171ce0525da9249c5 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 30 22:33:29 2009 +0000 make hasAddressTaken() constant time by storing a refcount in BB's subclass data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85625 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4381e3bc06cb247d7d57658b2c6134c24021d316 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 30 22:22:46 2009 +0000 Add a note about Robert Muth's alternate jump table implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85624 91177308-0d34-0410-b5e6-96231b3b80d8 commit 012d03d39d3cbb8e195b7a9ce50fc9ef6e474ec0 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 22:22:22 2009 +0000 Sort the incoming values in PHI nodes to match the predecessor order. This helps expose duplicate PHIs, which will make it easier for them to be eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85623 91177308-0d34-0410-b5e6-96231b3b80d8 commit f011658a243d918c31627fddaf7ae351f2f19eb6 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 22:18:41 2009 +0000 Fix MachineLICM to use the correct virtual register class when unfolding loads for hoisting. getOpcodeAfterMemoryUnfold returns the opcode of the original operation without the load, not the load itself, MachineLICM needs to know the operand index in order to get the correct register class. Extend getOpcodeAfterMemoryUnfold to return this information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85622 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68e38afb4b538f372b34f6321b020870215f3c26 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 30 22:15:48 2009 +0000 it isn't valid to take the address of the entry block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8bda3570a26c8c3e46a95629adbf495b1144a633 Author: Devang Patel <dpatel@apple.com> Date: Fri Oct 30 22:09:30 2009 +0000 If a type is derived from a derived type then calculate size appropriately. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85619 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce7da4da5b7e55de4dc8dd381391859a2bfac309 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Oct 30 21:33:05 2009 +0000 Build in ARM mode explicitly when on ARM Darwin git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85615 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54f775ff61c8a018900f30560e5de9c419d2cb03 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 30 21:13:59 2009 +0000 Add missing substitution for %llvmgcc_only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85614 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfb983d31495c0c21178f0ea493b149a579b62d2 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Oct 30 20:54:59 2009 +0000 Allow cross target build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d20d17a4707634b1973053699fa027c313c8220 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 30 20:13:25 2009 +0000 Fix a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85610 91177308-0d34-0410-b5e6-96231b3b80d8 commit f036e55b68d46d66e8ee5251861c7331517fba2d Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 30 20:12:24 2009 +0000 Add option to createGVNPass to disable PRE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85609 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a178321e28af8328c1627de479df1064df856b6 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 30 20:03:40 2009 +0000 I forgot to commit this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85608 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6d77da9dfee79811ba7d82f26adda9b5ae20922 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Oct 30 19:53:38 2009 +0000 When cross-building, the CFLAGS and CXXFLAGS are for the target, and don't apply to the build tools. If we want to allow build tool flags input, we should have separate inputs (BUILD_CFLAGS and BUILD_CXXFLAGS, perhaps). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85607 91177308-0d34-0410-b5e6-96231b3b80d8 commit 45795a3646741fea0da9973cad9e4d80e0cfc9a6 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Oct 30 19:52:05 2009 +0000 Remove extraneous comment line git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85606 91177308-0d34-0410-b5e6-96231b3b80d8 commit eebeb09c84a0685a186a5539ee01ac7e8c4315d7 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Oct 30 19:51:32 2009 +0000 update name check for Apple style builds to be more permissive git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85605 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56c480af03aad91c507eed011fd3977e81225e70 Author: Lang Hames <lhames@gmail.com> Date: Fri Oct 30 18:12:09 2009 +0000 Stop the iterator in ValueLiveAt from potentially running off the end of the interval. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85599 91177308-0d34-0410-b5e6-96231b3b80d8 commit eac0e8f344245ea3d5f7d78eac4033e8c64f18ab Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Fri Oct 30 14:33:14 2009 +0000 This fixes functions like void f (int a1, int a2, int a3, int a4, int a5,...) In ARMTargetLowering::LowerFormalArguments if the function has 4 or more regular arguments we used to set VarArgsFrameIndex using an offset of 0, which is only correct if the function has exactly 4 regular arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85590 91177308-0d34-0410-b5e6-96231b3b80d8 commit bf1bacb9000591a608241f87f1e231ae5165156e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Fri Oct 30 11:42:08 2009 +0000 CMake: install .def files from source `include/llvm' directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85587 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9eeeee14b7945c133fdaed19ce62be2a18b0457 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 30 07:23:49 2009 +0000 Rather than having llvm-gcc changing the meaning of OptimizeSize, just make sure loop unswitch is conservative when optimization level is < 3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85581 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f743387c77dd5cdd20a6441e5da8271b52ca233 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 30 05:45:42 2009 +0000 Add ARM codegen for indirect branches. clang/test/CodeGen/indirect-goto.c runs! (unoptimized) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85577 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7a4db28ffff0b028558ab1dc92619f2804b9366 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 02:45:10 2009 +0000 Most stack straces don't need 3 digits worth of levels. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85575 91177308-0d34-0410-b5e6-96231b3b80d8 commit 21d49aa0bac191a9c3dc3b7a6fba8805209d1dff Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 02:13:27 2009 +0000 Don't delete blocks which have their address taken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f38bef9785b0d126ffac7a6dbe9050daff1a786 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 02:08:26 2009 +0000 Mention if a block has its address taken in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85571 91177308-0d34-0410-b5e6-96231b3b80d8 commit b4b367821511e04319a7ac0c59bb8d8f11be3345 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 02:01:10 2009 +0000 Simplify this code and avoid an extra space character in the output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1995be14a415ae124e42dec505a9c5fa6f83a8d1 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 01:45:18 2009 +0000 Add support for BlockAddress static initializers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85562 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8e273feafff0c64aac1587298390f0a91f147af Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 01:38:20 2009 +0000 Add a FIXME comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85559 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65e3b3e189325686c5cb6b38e9cf6446d5fb9952 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 01:34:35 2009 +0000 Add some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85558 91177308-0d34-0410-b5e6-96231b3b80d8 commit 064403ea743b1457fbc71477feeb1b2f8c5cb3b1 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 01:28:02 2009 +0000 Initial x86 support for BlockAddresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85557 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9105751c7ce64082e5769142e14b0c65cd06bb0a Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 01:27:03 2009 +0000 Initial target-independent CodeGen support for BlockAddresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 99ffec19f61ce7ff2a52a524bfa92207eb680e7c Author: Devang Patel <dpatel@apple.com> Date: Fri Oct 30 00:39:25 2009 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85551 91177308-0d34-0410-b5e6-96231b3b80d8 commit 35264272bed55d2ec0b75079b25a11d9af8f74b5 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 00:20:08 2009 +0000 Add a BlockAddress MachineOperand kind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85549 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed56bc7692cc05f851ce4f9331e1af5299b7c97c Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 00:17:14 2009 +0000 Add svn:ignore properties. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85548 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07188d85626733b44f77fbee4b1d23e8faa24624 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 30 00:14:33 2009 +0000 Remove a redundant copy constructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85547 91177308-0d34-0410-b5e6-96231b3b80d8 commit ebb14ff86fe1abf66d63985844fed583fb2044a5 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Oct 30 00:08:40 2009 +0000 Dial back the realignment a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85546 91177308-0d34-0410-b5e6-96231b3b80d8 commit fffff4408557f721ab7ff680bcdcca2c2534aaae Author: David Goodwin <david_goodwin@apple.com> Date: Thu Oct 29 23:30:59 2009 +0000 Between scheduling regions, correctly maintain anti-dep breaking state so that we don't incorrectly rename registers that span these regions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85537 91177308-0d34-0410-b5e6-96231b3b80d8 commit 438d4105eeb47c5bc1c5e5464b47a3df46ff2bbd Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 29 23:30:06 2009 +0000 Remove some unnecessary spaces in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85536 91177308-0d34-0410-b5e6-96231b3b80d8 commit b65e3acb4a07cbc809bc22fbc67675c7233d0f79 Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 29 22:30:23 2009 +0000 Move some code from being emitted as boilerplate duplicated in every *ISelDAGToDAG.cpp to being regular code in SelectionDAGISel.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85530 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2471f2abaa8edb55f5d8252cab8fe08ef09618f Author: David Goodwin <david_goodwin@apple.com> Date: Thu Oct 29 19:17:04 2009 +0000 Fix a couple of bugs in aggressive anti-dep breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85522 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b7a76d7d57c0140e80d5e3f74d929fc909aa8b5 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 29 18:40:06 2009 +0000 Refactor complicated predicate into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85519 91177308-0d34-0410-b5e6-96231b3b80d8 commit befd0170cc6b611f1671310557aaba84feb18a2d Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 29 18:20:34 2009 +0000 First bitcase use may not lead to a dbg.declare intrinsic. Iterate uses until one find's dbg.declare intrinsic. Patch by Sunae Seo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85518 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30afe01e7ef78e1d2c01c924161ebe53bf02a3de Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 29 18:10:34 2009 +0000 Rename usesCustomDAGSchedInserter to usesCustomInserter, and update a bunch of associated comments, because it doesn't have anything to do with DAGs or scheduling. This is another step in decoupling MachineInstr emitting from scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e0e60ac697c23819629d0fb2cc8a04bcfe1cf75 Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 29 17:47:20 2009 +0000 Refactor the code for unfolding a load into a separate function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c91dd9cb7e0acb0b92309cbf8b3c75a469ff18b Author: Bill Wendling <isanbard@gmail.com> Date: Thu Oct 29 17:39:46 2009 +0000 Reapply r85338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85514 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbd28a3a3b8657faad8b2fdbb2d505d63e229121 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Oct 29 12:55:32 2009 +0000 Fix MSVC build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85505 91177308-0d34-0410-b5e6-96231b3b80d8 commit b7f1f1053add0239195844f748833c58565c569a Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Oct 29 07:35:15 2009 +0000 Apply some cleanups. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85498 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c633c5a850ed50e123bd975990e59d0e60d4614 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 29 05:53:32 2009 +0000 add sanity check for indbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f2bbd66a9e049f60c8187a201f18d0df80c2e12 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 29 05:51:50 2009 +0000 just for the hell of it, allow globalopt to statically evaluate static constructors with indirect gotos :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85495 91177308-0d34-0410-b5e6-96231b3b80d8 commit bfa6b8573272eb5396dce856f5259d63f7d5fc48 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 29 05:26:09 2009 +0000 add interpreter support for indirect goto / blockaddress. The interpreter now correctly runs clang's test/CodeGen/indirect-goto.c. The JIT will abort on it until someone feels compelled to implement this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85488 91177308-0d34-0410-b5e6-96231b3b80d8 commit 936e59eb5b9d2d5648249ab6c7b14619ae0662e2 Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Thu Oct 29 05:07:14 2009 +0000 add newline to make cl.exe happy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85483 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfb73b384ae5f97a4796fc91602d50a474c1e1c7 Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Thu Oct 29 04:41:24 2009 +0000 fix 80-col. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85480 91177308-0d34-0410-b5e6-96231b3b80d8 commit c63a779b48206fdcef692203002b990609f5734f Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 29 04:25:46 2009 +0000 greatly improve the LLVM IR bitcode encoding documentation, patch by Peter Housel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29c4d45951c300e27374dabc7470b841a2fcd37a Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Thu Oct 29 03:43:06 2009 +0000 Explicitly convert to double to suppress Visual C++ 2008 build error C2668 pow is ambiguous call to overloaded function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85478 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9823cc9df2fbd6e8bd106e223718996f0a68a1d2 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Oct 29 02:41:21 2009 +0000 To get more thorough testing from llc-beta nightly runs, do dynamic stack realignment regardless of whether it's strictly necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85476 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ba150df4bd9907b5820fb1d805aa8e4e6a0a0b0 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Oct 29 02:33:47 2009 +0000 When the function is doing dynamic stack realignment, the spill slot will be indexed via the stack pointer, even if a frame pointer is present. Update the heuristic to place it nearest the stack pointer in that case, rather than nearest the frame pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85474 91177308-0d34-0410-b5e6-96231b3b80d8 commit 212f9a9d323087354f9fcba897c66db5b517eba9 Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Oct 29 02:04:53 2009 +0000 Sorry to break the build. I was trying to check the WIP file to some local repository, but ended up checking in the llvm repository. Oops! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85470 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8805c02dcf8c349967529d34add7641dc2f261f Author: Johnny Chen <johnny.chen@apple.com> Date: Thu Oct 29 01:45:07 2009 +0000 Minor tweak to forgo the the curly braces for most case blocks, except when declaring local variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85467 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff1a8e5764e4f6a8c471e432a400858e849923b2 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 29 01:21:20 2009 +0000 teach various passes about blockaddress. We no longer crash on any clang tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85465 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12d5a3225f1a26113673727170f9552622525325 Author: Dale Johannesen <dalej@apple.com> Date: Thu Oct 29 01:15:40 2009 +0000 When there is a 2-instruction spill sequence, record the second (store) instruction in SpillSlotToUsesMap consistently. I don't think this matters functionally, but it's cleaner and Evan wants it this way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85463 91177308-0d34-0410-b5e6-96231b3b80d8 commit ef486b10571f71e53fe3281aec3abdb3446c5245 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Oct 29 00:37:35 2009 +0000 Don't put in these EH changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85460 91177308-0d34-0410-b5e6-96231b3b80d8 commit dff406469313119ba79883ea6c3b44e1c0bc5740 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Oct 29 00:34:30 2009 +0000 A switch-on-string-literal construct that is a nice alternative to cascading "ifs" of strcmps/memcmps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85459 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52efc3f5167aeb90927b75fc363b999a0fcd8f80 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 29 00:31:02 2009 +0000 teach ValueMapper about BlockAddress', making bugpoint a lot more useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85458 91177308-0d34-0410-b5e6-96231b3b80d8 commit 15513ab5a548a8e64be4c2f7968c9ae6bd8a1418 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 29 00:28:30 2009 +0000 unindent massive blocks, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6577d404c19a0a80b13e358dd72b0c1b022b06c1 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Oct 29 00:22:16 2009 +0000 Reverting r85338 for now. It's causing a bootstrap failure on PPC darwin9. --- Reverse-merging r85338 into '.': U lib/CodeGen/SimpleRegisterCoalescing.cpp U lib/CodeGen/SimpleRegisterCoalescing.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85454 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41335ea37656dcfa81b37aff1c407df501884e6e Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 29 00:14:44 2009 +0000 Add indirectbr and blockaddress to the vim syntax highlighting file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85451 91177308-0d34-0410-b5e6-96231b3b80d8 commit d50a560f876bc526b57305c5ec1b3478f8cb97b3 Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 29 00:09:08 2009 +0000 Add a hasAddressTaken for BasicBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85449 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30f4c269dd65e2abaaf718261410fd7c768dfc86 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 23:25:00 2009 +0000 add IRBuilder support for IndirectBr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85445 91177308-0d34-0410-b5e6-96231b3b80d8 commit e84c212b3cf2616caf6284d522b5fccdd95cbc8e Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 28 22:10:20 2009 +0000 Reimplement BranchFolding change to avoid tail merging for a 1 instruction common tail, except when the OptimizeForSize function attribute is present. Radar 7338114. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85441 91177308-0d34-0410-b5e6-96231b3b80d8 commit eaa6891fe4fe26bc3a8842ed01be52746a752393 Author: Dale Johannesen <dalej@apple.com> Date: Wed Oct 28 21:56:18 2009 +0000 When we generate spill code, then decide we don't need to spill after all, we weren't handling 2-instruction spill sequences correctly (PPC Altivec). We need to remove the store in this case. Removing the other instruction(s) would be goodness but is not needed for correctness, and isn't done here. 7331562. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85437 91177308-0d34-0410-b5e6-96231b3b80d8 commit 220daf6b5c39b425ef06192ce461538f29efabd6 Author: Eric Christopher <echristo@apple.com> Date: Wed Oct 28 21:32:16 2009 +0000 Make sure we return the right sized type here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85436 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93ab5617a1e187a411418c1ea38b312b6aacf850 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 28 20:46:46 2009 +0000 Revert r85346 change to control tail merging by CodeGenOpt::Level. I'm going to redo this using the OptimizeForSize function attribute. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85426 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d632b6c0cc62539b5316a2861f247515d9c43a1 Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Oct 28 20:18:55 2009 +0000 Extend getMallocArraySize() to determine the array size if the malloc argument is: ArraySize * ElementSize ElementSize * ArraySize ArraySize << log2(ElementSize) ElementSize << log2(ArraySize) Refactor isArrayMallocHelper and delete isSafeToGetMallocArraySize, so that there is only 1 copy of the malloc array determining logic. Update users of getMallocArraySize() to not bother calling isArrayMalloc() as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 071d2cfe3a5a2c1723a41b00b4cb9b831e46bf81 Author: Viktor Kutuzov <vkutuzov@accesssoftek.com> Date: Wed Oct 28 18:55:55 2009 +0000 Fix to pass options from Gold plugin to LTO codegen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85419 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5220b2df6b1a39fbfae239f56acc10e6d8c2915c Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Oct 28 18:37:31 2009 +0000 Teach cmake that mk[sd]temp is defined in stdlib.h on some systems. This fixes parallel build with clang on glibc platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85414 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a8676e226cc62766c4638cb3dcd128f02e9d128 Author: David Goodwin <david_goodwin@apple.com> Date: Wed Oct 28 18:29:54 2009 +0000 Make AntiDepReg.h internal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85412 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea6986525fadfd6488bc28e4ef99004d2b2aa519 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 28 18:26:41 2009 +0000 Add a Thumb BRIND pattern. Change the ARM BRIND assembly to separate the opcode and operand with a tab. Check for these instructions in the usual places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 116b72c4dac37340eff42e02af6e6a0b60252578 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 28 18:19:56 2009 +0000 fconsts and fconstd are obviously re-materializable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85410 91177308-0d34-0410-b5e6-96231b3b80d8 commit b666f8884f79e76357655ae65a0395cc72d06400 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 28 17:33:28 2009 +0000 Cleanup now that frame index scavenging via post-pass is working for ARM and Thumb2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85406 91177308-0d34-0410-b5e6-96231b3b80d8 commit d8c44710c05973817296df4b1800105768d7c2d1 Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 28 16:51:52 2009 +0000 llvm.dbg.global_variables do not exist anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 337ba4f1060c186398363a037327b85fb8b4e1d1 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 15:32:19 2009 +0000 add a new 'SetCurrentDebugType' API (requested by Andrew Haley for JIT stuff) to programmatically control the current debug flavor. While I'm at it, doxygenate Debug.h and clean it up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85395 91177308-0d34-0410-b5e6-96231b3b80d8 commit 927dcecba16c04d82b567cbe00479256465bd5c2 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 28 15:28:02 2009 +0000 Don't call SDNode::isPredecessorOf when it isn't necessary. If the load's chains have no users, they can't be predecessors of the condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85394 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92ebb1fa248a671b76301809137a445f7e9dbb9c Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 28 15:23:36 2009 +0000 Simplify this code: if the unfolded load can't be hoisted, just delete the new instructions and leave the old one in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85393 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9f7a94e94b86030d10671cd6fe07b8c175785b5 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Wed Oct 28 15:04:53 2009 +0000 No newline at end of file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85390 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1595d6896a6d0e096c281b58e691b2c520f8bd92 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Oct 28 13:29:18 2009 +0000 Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85389 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2c7314bc788f2af8bc0016d44129a63164401ac Author: Gabor Greif <ggreif@gmail.com> Date: Wed Oct 28 13:14:50 2009 +0000 use metavariable <result> instead of SSA name %result for consistency git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85388 91177308-0d34-0410-b5e6-96231b3b80d8 commit c0ea767d44bfb0c5a7f2f76552f00509885890cd Author: Gabor Greif <ggreif@gmail.com> Date: Wed Oct 28 13:05:07 2009 +0000 ooops, SSA name should not be part of the link git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85387 91177308-0d34-0410-b5e6-96231b3b80d8 commit 463c934daf5a4d57e798a65c145d8952f9115de3 Author: Gabor Greif <ggreif@gmail.com> Date: Wed Oct 28 09:21:30 2009 +0000 advertise new syntax for unnamed instructions and eliminate confusing double-use of SSA names (work in progress) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85385 91177308-0d34-0410-b5e6-96231b3b80d8 commit c07861ad19e211b9375051ea2e728b7db6ec5029 Author: Owen Anderson <resistor@mac.com> Date: Wed Oct 28 07:05:35 2009 +0000 Treat lifetime begin/end markers as allocations/frees respectively for the purposes for GVN/DSE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85383 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43d273db094c46eefceb6a27748c515aafdee7aa Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Oct 28 07:03:15 2009 +0000 Add ABCD, a generalized implementation of the Elimination of Array Bounds Checks on Demand algorithm which looks at arbitrary branches instead of loop iterations. This is GSoC work by Andre Tavares with only editorial changes applied! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85382 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa281b8ec7167ba67ddcc8d441f6ff1685c83998 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 28 06:55:03 2009 +0000 Give ARMISD::EH_SJLJ_LONGJMP and EH_SJLJ_SETJMP names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85381 91177308-0d34-0410-b5e6-96231b3b80d8 commit e21ca59adea038a61199913e6dbce8621516040c Author: Owen Anderson <resistor@mac.com> Date: Wed Oct 28 06:30:52 2009 +0000 Be more careful about invariance reasoning on "store" queries. Stores still need to depend on Ref and ModRef calls within the invariant region. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85380 91177308-0d34-0410-b5e6-96231b3b80d8 commit 06cd2076d346cfa4aaf012be32eb380b2f4205e9 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 28 06:30:34 2009 +0000 X86 palignr intrinsics immediate field is in bits. ISel must transform it into bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85379 91177308-0d34-0410-b5e6-96231b3b80d8 commit a44701c008b2c54554c42aa0b46b53ceb0a8719f Author: Owen Anderson <resistor@mac.com> Date: Wed Oct 28 06:18:42 2009 +0000 Add trivial support for the invariance intrinsics to memdep. This logic is purely local for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85378 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bd1d9e2f90724ddeb7f095ada51cc276d14125f Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 05:53:48 2009 +0000 add bitcode reader support for blockaddress. We can now fully round trip blockaddress through .ll and .bc files, so add a testcase. There are still a bunch of places in the optimizer and other places that need to be updated to work with these constructs, but at least the basics are in now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85377 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5693a28a5d34f8adeb65c0e4b67c4c811962466 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 05:24:40 2009 +0000 bitcode writer support for blockaddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85376 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67abb53946800619c549c67053d6f344d664ff27 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 05:14:34 2009 +0000 Previously, all operands to Constant were themselves constant. In the new world order, BlockAddress can have a BasicBlock operand. This doesn't permute much, because if you have a ConstantExpr (or anything more specific than Constant) we still know the operand has to be a Constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85375 91177308-0d34-0410-b5e6-96231b3b80d8 commit d22ec1cce22c5be46a150666dd5fc5da06c5ce64 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 04:47:06 2009 +0000 doc bug spotted by apinski git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85372 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4fa8f3294b576c0406061df2778cdc1983693f2c Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 04:12:16 2009 +0000 'static const void *X = &&y' can only be put in the readonly section if a reference to the containing function is valid in the readonly section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85370 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed7cc32565a72f3a40d03cfc7e313515bca7b9e2 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 28 03:44:30 2009 +0000 Rewrite SelectionDAG::isPredecessorOf to be iterative instead of recursive to avoid consuming extraordinary amounts of stack space when processing tall graphs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85369 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bb63f1658aadcc4c7a414e0794d7e75a13fbd6b Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 03:39:23 2009 +0000 full asmparser support for blockaddress. We can now do: $ llvm-as foo.ll -d -disable-output which reads and prints the .ll file. BC encoding is the next project. Testcase will go in once that works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85368 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcbe37f591793786a110d516ed076a7a256561d9 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 03:38:12 2009 +0000 asmprinter support for BlockAddress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85367 91177308-0d34-0410-b5e6-96231b3b80d8 commit 61c4ffe7c0ff88d7f81b2ac7b96382d984ccb5fb Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 03:37:35 2009 +0000 when we tear down a module, we need to be careful to zap BlockAddress values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85366 91177308-0d34-0410-b5e6-96231b3b80d8 commit a1e56d94ca83f00c5370cfb0b660e800356fbb37 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 03:36:44 2009 +0000 basic blocks can now have non-instruction users. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85365 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6efe35213b3fca4fd9df6a35848aadf2e31923c5 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 28 03:21:57 2009 +0000 Teach MachineLICM to unfold loads from constant memory from otherwise unhoistable instructions in order to allow the loads to be hoisted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c7a3ff2b1b7be0f3a3f5a3ca0b01a182b0d2fba Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 28 01:44:26 2009 +0000 Use fconsts and fconstd to materialize small fp constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85362 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0e6778c5f1e124bc15fceeca0c875614a082c79 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 28 01:43:28 2009 +0000 Add a second ValueType argument to isFPImmLegal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85361 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48c10d1e1fdd6f7d2f1ce5a9e2380b281dbe3006 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 28 01:13:53 2009 +0000 Mark dead physregdefs dead immediately. This helps MachineSink and MachineLICM and other things which run before LiveVariables is run. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85360 91177308-0d34-0410-b5e6-96231b3b80d8 commit 114924db349324f455170178d8b1a8d34da8f4c6 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 28 01:12:16 2009 +0000 Allow constants of different types to share constant pool entries if they have compatible encodings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85359 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae9824d9490ac7373fa2cddfe0f65bc8426249eb Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 28 01:08:17 2009 +0000 Remove getIEEEFloatParts and getIEEEDoubleParts. They are not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85358 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd3ac5568dcb981fe9539706bd97f427bb36ff15 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 28 00:55:57 2009 +0000 Update SystemZ to use PSW following the way x86 uses EFLAGS. Besides eliminating a use of MVT::Flag, this is needed for an upcoming CodeGen change. This unfortunately requires SystemZ to switch to the list-burr scheduler, in order to handle the physreg defs properly, however that's what LLVM has available at this time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85357 91177308-0d34-0410-b5e6-96231b3b80d8 commit f061fc84a89aa961b3f5e25dce93fa5ac033c090 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 28 00:37:03 2009 +0000 Add an indirect branch pattern for ARM. Testcase will be coming soon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 523521538fe159fd1bc104a6dddf66432d8c4ef1 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Oct 28 00:28:31 2009 +0000 Fix the ModuleDeletion test on PPC and ARM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85352 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c3800f0172e2fdc0b3b2e78dbaf89b150f4e04f Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 00:19:10 2009 +0000 rename indbr -> indirectbr to appease the residents of #llvm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 746f7fd8f0fa1d3d83dc28ddfc3be561dcf09deb Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 28 00:01:44 2009 +0000 IR support for the new BlockAddress constant kind. This is untested and there is no way to use it, next up: doing battle with asmparser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85349 91177308-0d34-0410-b5e6-96231b3b80d8 commit afe63293c930f39f6f6d4ac6e76da0d3546dfca4 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 27 23:49:38 2009 +0000 Record CodeGen optimization level in the BranchFolding pass so that we can use it to control tail merging when there is a tradeoff between performance and code size. When there is only 1 instruction in the common tail, we have been merging. That can be good for code size but is a definite loss for performance. Now we will avoid tail merging in that case when the optimization level is "Aggressive", i.e., "-O3". Radar 7338114. Since the IfConversion pass invokes BranchFolding, it too needs to know the optimization level. Note that I removed the RegisterPass instantiation for IfConversion because it required a default constructor. If someone wants to keep that for some reason, we can add a default constructor with a hard-wired optimization level. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85346 91177308-0d34-0410-b5e6-96231b3b80d8 commit 043667bb0ce28faf90b72737e91d23b0e4817711 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 27 23:45:55 2009 +0000 Rename lib/VMCore/ConstantsContext.h:ValueMap<> to ConstantUniqueMap<> to avoid colliding with llvm/ADT/ValueMap.h:ValueMap<>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85344 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9e2226cbaa0b634728b3a7a47acd1c11440fccc Author: Bill Wendling <isanbard@gmail.com> Date: Tue Oct 27 23:30:07 2009 +0000 Add new note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85341 91177308-0d34-0410-b5e6-96231b3b80d8 commit 472ebdd60175b884d8ea2f1e77a73bcbe5a9136c Author: Lang Hames <lhames@gmail.com> Date: Tue Oct 27 23:16:58 2009 +0000 Fixed a bug in the coalescer where intervals were occasionally merged despite a real interference. This fixes rdar://problem/7157961. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85338 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe8db6e76137272e242fc806826b15aaa934845b Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 27 22:52:29 2009 +0000 Enable virtual register based frame index scavenging by default for ARM & T2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85335 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53353c479dd5642be973d6d0148ed0723ab27530 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Oct 27 22:48:31 2009 +0000 Move and clarify note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85334 91177308-0d34-0410-b5e6-96231b3b80d8 commit b004ed5cee7a2d006860c017249c16d6331c0758 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 27 22:45:39 2009 +0000 Infrastructure for dynamic stack realignment on ARM. For now, this is off by default behind a command line option. This will enable better performance for vectors on NEON enabled processors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85333 91177308-0d34-0410-b5e6-96231b3b80d8 commit 030a21f58d0164737d9aadb314dc15dd279f7b1f Author: Bill Wendling <isanbard@gmail.com> Date: Tue Oct 27 22:43:24 2009 +0000 Note corrected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85332 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69b37c7dd9ca765240fcb7f5f51c4ada13b8524c Author: Bill Wendling <isanbard@gmail.com> Date: Tue Oct 27 22:40:45 2009 +0000 Modify note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85331 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c4e2231017c5ff51cee8c7de384e7d105883287 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 27 22:39:42 2009 +0000 Revert the API changes from r85295 to make it easier for people to build against both 2.6 and HEAD. The default is still changed to eager jitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85330 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85196b544a2832e3da5024dd2b9559f0791a2f86 Author: Bill Wendling <isanbard@gmail.com> Date: Tue Oct 27 22:34:43 2009 +0000 Add a note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85329 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12236e15007f962c3f9ac9496e10adf86f5bd3e4 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 27 22:16:29 2009 +0000 Factor out redundancy from clone() implementations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85327 91177308-0d34-0410-b5e6-96231b3b80d8 commit b34bcfc17c7c84a3b9be34a99b40f7596c2174cd Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 27 22:10:34 2009 +0000 Update the MachineBasicBlock CFG for an indirect branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85325 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b87f2ae510bb5298482aba49c63c49840b0db7d Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 27 21:56:26 2009 +0000 Add CodeGen support for indirect branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85323 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd9ff122e342300ebbd082b41439c28097d3f632 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:52:54 2009 +0000 typo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24f2e859707fc58040b9d50759a864a6e35eac39 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:49:40 2009 +0000 you can't take the address of the entry block of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bae7b3ef34de55a4a7ae3f88688526c05891509 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:44:20 2009 +0000 improvements from gabor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85320 91177308-0d34-0410-b5e6-96231b3b80d8 commit 117d16b8a7a9c2b631ac36affb6a9dcb33ffcbf7 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:43:39 2009 +0000 make the build build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85319 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64dd7b4a31b939ecea7f037a997d54a92beeadcd Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Oct 27 21:35:42 2009 +0000 Add new APFloat methods that return sign, exp, and mantissa of ieee float and double values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85318 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41fc6ad3dffe415decc911b39388fa20cff73a23 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:27:42 2009 +0000 Random updates to passes for indbr, I need blockaddress before I can do much more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85316 91177308-0d34-0410-b5e6-96231b3b80d8 commit 405a71abced5cc697bff587436dea1bb2a6a18b1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:24:48 2009 +0000 cppbackend support for indbr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85312 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20e88f5303d60d9105a80e24fb70ecc0ecd80856 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:21:06 2009 +0000 CBE support for indbr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85311 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29246b5e51060717e19c0b092ddad5d07237c9be Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:19:13 2009 +0000 fix things pointed out by Dan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85310 91177308-0d34-0410-b5e6-96231b3b80d8 commit d07c83760d225f8bfe864939ce7d8d3fbdde1ea4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 21:01:34 2009 +0000 document the forthcoming blockaddress constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85306 91177308-0d34-0410-b5e6-96231b3b80d8 commit d55c2acab4373802918c5c83eb9fcc7fd0f1349a Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Oct 27 20:51:49 2009 +0000 Similar to r85280, do not clear the "S" bit for RSBri and RSBrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85299 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5278f228d564351a3f0df98a74fad48a892debc Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 27 20:47:17 2009 +0000 Do not held on to DenseMap slot accross map insertion. The insertion may cause the map to grow rending the slot invalid. Use this opportunity to use ValueMap instead of DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85298 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b4d1db83d22c184d42fed3e4863fe6253476a01 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Oct 27 20:45:15 2009 +0000 Set condition code bits of BL and BLr9 to 0b1110 (ALways) to distinguish between BL_pred and BLr9_pred. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85297 91177308-0d34-0410-b5e6-96231b3b80d8 commit dab00f86c61d0de362877671ffb2c835e59b84a1 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 20:42:54 2009 +0000 don't use stdio git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f6ac2f5671ce45a9690e24bd753770111611166 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 27 20:30:28 2009 +0000 Change the JIT to compile eagerly by default as agreed in http://llvm.org/PR5184, and beef up the comments to describe what both options do and the risks of lazy compilation in the presence of threads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1e6c6ebac9fde4ee5c0435affc89ae6f183c011c Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 20:27:24 2009 +0000 fix pasto pointed out by Rafael git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 932c62083ecc46064b3f9209004b359bc451f215 Author: Dale Johannesen <dalej@apple.com> Date: Tue Oct 27 20:12:38 2009 +0000 Add radar number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85290 91177308-0d34-0410-b5e6-96231b3b80d8 commit 972ec94278d281d85525a4a597274d2fdca614a3 Author: Dale Johannesen <dalej@apple.com> Date: Tue Oct 27 20:06:05 2009 +0000 Testcase for llvm-gcc patch 85284. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85287 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28f4d2fb94b9057d8daba2128867fde276a37d1b Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Oct 27 20:05:49 2009 +0000 Rename MallocFreeHelper as MemoryBuiltins git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85286 91177308-0d34-0410-b5e6-96231b3b80d8 commit 408a5e530b3dd17cc789c538a2f3020501a13a59 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Oct 27 20:04:22 2009 +0000 CMake: Install .inc files too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85285 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9693e60eef5eaf6c45a498d2a7a5d05ca85b02e Author: Oscar Fuentes <ofv@wanadoo.es> Date: Tue Oct 27 19:57:29 2009 +0000 Rather than excluding quite some things, and still installing CMakeLists.txt, Makefiles, ... it's better to whitelist what we really want to install. Patch by Ingmar Vanhassel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85282 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6337b551d01bc8239f0bd6440ac82bce2b313f4c Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Oct 27 19:56:55 2009 +0000 Do away with addLegalFPImmediate. Add a target hook isFPImmLegal which returns true if the fp immediate can be natively codegened by target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85281 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66eeb81868889994314fc49be900868351d6f1a8 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 27 19:52:03 2009 +0000 Do not clear the "S" bit for RSCri and RSCrs. They inherit from the "sI" instruction format that already takes care of setting this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85280 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0787286429c486909bd3b01b5dfedacbc2d7394 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 19:13:16 2009 +0000 add enough support for indirect branch for the feature test to pass (assembler,asmprinter, bc reader+writer) and document it. Codegen currently aborts on it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85274 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bf7944abd6a4205d09769377fbcd9240ab416d8 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Oct 27 18:44:24 2009 +0000 Explicitly specify 0b00, i.e, zero rotation, as the rotate filed (Inst{11-10}) for the r/rr fragment of the multiclass AI_unary_rrot/AI_bin_rrot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29cbb4c46ac9a5267d9428959c737c381a5e85e6 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Oct 27 17:59:03 2009 +0000 Add missing testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85266 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68c363b54790d793a5186df06de8853a2ea5e549 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 17:40:49 2009 +0000 change of mind :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85258 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7f42de3ef7ce28ad6c2fa21125c6a9fa39f6024 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Tue Oct 27 17:40:24 2009 +0000 Remove unnecessary gotos to fall-thru successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85257 91177308-0d34-0410-b5e6-96231b3b80d8 commit b320a29fd07bb55461d20676e31cc9314f14001e Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 17:40:19 2009 +0000 rename test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5663974f0438575c0e45d0bcb5ce0391eb5a5f96 Author: Johnny Chen <johnny.chen@apple.com> Date: Tue Oct 27 17:25:15 2009 +0000 Test commit. Added '.' to the comment line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85255 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85c4ec20b82b5a2702e618922d549222366907dc Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 17:08:31 2009 +0000 Type.h doesn't need to #include LLVMContext.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85254 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d15db7cb3b93b99d16ff5d7c0b87ceb0bf02f21 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 17:02:08 2009 +0000 pseudosourcevalue is also still using getGlobalContext(), so it isn't thread safe either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85253 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fd81130b8b6daf7f47f808d2134732b2f9ce116 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 17:01:03 2009 +0000 apparently the X86 JIT isn't fully contextized, it is still using getGlobalContext() :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85252 91177308-0d34-0410-b5e6-96231b3b80d8 commit f8a5f3002aa72cd783cb7f4d976ddfb9da964018 Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Oct 27 16:56:58 2009 +0000 Fix reversed logic spotted by Owen Anderson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96b4e7d1e7d37ecc040b42a836a3d0b7884e839f Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 16:53:54 2009 +0000 trim another #include git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85250 91177308-0d34-0410-b5e6-96231b3b80d8 commit 622f3fc17dbcc235ef8f07f9da803eb0fe9c35bc Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 16:49:53 2009 +0000 remove an unneeded #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85248 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8af43fbca65148054b8b7d218c54ad85c8c4d6aa Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Tue Oct 27 14:54:46 2009 +0000 Convert Analysis tests to FileCheck in regards to PR5307. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85241 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f419e24e13ef1e9090c6e96b18da9bb45338ed1 Author: Rafael Espindola <rafael.espindola@gmail.com> Date: Tue Oct 27 14:09:44 2009 +0000 Correctly align double arguments in the stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d91e27702ced60731f53a71cd0052e30c9cca77 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Tue Oct 27 09:02:49 2009 +0000 80-col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85215 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56724a6b62e4bd778a91d1a44eb9f521fd6c8a78 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 27 06:31:02 2009 +0000 Fix Thumb2 failures by converting them to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85210 91177308-0d34-0410-b5e6-96231b3b80d8 commit e811eeb605587038550284216cec691a85754793 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 27 06:16:45 2009 +0000 Fix the rest of the ARM failures by converting them to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85208 91177308-0d34-0410-b5e6-96231b3b80d8 commit f59fc08fa71a5648f712d7d178a650c817008408 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 27 05:50:28 2009 +0000 Fix some more failures by converting to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85207 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38dfe1cae81f30a9efe49e16700632ffd2987dec Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 05:39:41 2009 +0000 Fix a pretty serious misfeature of the inliner: if it inlines a function with multiple return values it inserts a PHI to merge them all together. However, if the return values are all the same, it ends up with a pointless PHI and this pointless PHI happens to really block SRoA from happening in at least a silly C++ example written by Doug, but probably others. This fixes rdar://7339069. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85206 91177308-0d34-0410-b5e6-96231b3b80d8 commit 468f729300f9ff4fc208650e29470e108b7e6ba0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 05:35:35 2009 +0000 convert to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85205 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8257c409ae7df2cb7641f4194b3df694e8ce552f Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 27 05:30:47 2009 +0000 Convert to FileCheck, fixing failure due to tab change in the process. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85204 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b95748848a137a23419ae1e6b4f92736af70e59 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 27 04:58:10 2009 +0000 lang points out that the comment is out of date with the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85203 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6803121c07be2467ed2dd49192e2f5432ef2ab6 Author: Mike Stump <mrs@apple.com> Date: Tue Oct 27 02:17:51 2009 +0000 Fix VS build, patch by Marius Wachtler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85198 91177308-0d34-0410-b5e6-96231b3b80d8 commit 406f493c3b956f24d4567e59443daafb7d122df9 Author: Mike Stump <mrs@apple.com> Date: Tue Oct 27 02:14:13 2009 +0000 VS build fix, patch by Marius Wachtler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85197 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98d00f20a97fa2774f337d1a56fee66865eb650c Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 27 01:06:51 2009 +0000 Fix OProfileJITEventListener after r85182. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85192 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37115cc04ea3dc2516d34a1b0f8dc262652fbb63 Author: Eric Christopher <echristo@apple.com> Date: Tue Oct 27 00:52:25 2009 +0000 Add objectsize intrinsic and hook it up through codegen. Doesn't do anything than return "I don't know" at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85189 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1db4e53b11822ff3262d6b741974ef78ce04ea4 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Oct 27 00:20:49 2009 +0000 Now VFP instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85186 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1674ea5205cbc47e59849163c5992f3befbd5fb0 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 27 00:11:02 2009 +0000 Add braces to avoid ambiguous else. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85185 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08540a929721efe42893675068f8a5a1767afad5 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Oct 27 00:08:59 2009 +0000 Change Thumb1 and Thumb2 instructions to separate opcode from operands with a tab instead of a space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1291fce6c0a61fb74a124ffd5b2da02c0de6ab4f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 27 00:03:05 2009 +0000 Automatically do the equivalent of freeMachineCodeForFunction(F) when F is being destroyed. This allows users to run global optimizations like globaldce even after some functions have been jitted. This patch also removes the Function* parameter to JITEventListener::NotifyFreeingMachineCode() since it can cause that to be called when the Function is partially destroyed. This change will be even more helpful later when I think we'll want to allow machine code to actually outlive its Function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85182 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43a4c67a86782f5f6ad5d80dbbf29ff23f3faa08 Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Oct 26 23:58:56 2009 +0000 Rename MallocHelper as MallocFreeHelper, since it now also identifies calls to free() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85181 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9a7549471a1194f31d2627c8f0665eb88bb96fc Author: Owen Anderson <resistor@mac.com> Date: Mon Oct 26 23:56:52 2009 +0000 Forgot to commit these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14d033341deef1eacc39efc4f51b132356120405 Author: Owen Anderson <resistor@mac.com> Date: Mon Oct 26 23:55:47 2009 +0000 Add a straight-forward implementation of SCCVN for aggressively eliminating scalar redundancies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85179 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3f9bc403327201a4cbb416f6627d1c54c0fcac8 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Oct 26 23:45:59 2009 +0000 Change ARM asm strings to separate opcode from operands with a tab instead of a space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85178 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6b05409548b99af03ebd6f92fee5337dc7ed0dc4 Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Oct 26 23:44:29 2009 +0000 Remove all references to MallocInst and FreeInst git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85177 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9a7a33126ed4def13851a4d77a442db55ffe307 Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Oct 26 23:43:48 2009 +0000 Remove FreeInst. Remove LowerAllocations pass. Update some more passes to treate free calls just like they were treating FreeInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85176 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2aec46ede15c195de15bdafc25e9760b6d9b5c52 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 26 22:59:12 2009 +0000 Try to get ahead of Johnny Chen and pro-actively add some more ARM encoding bits. Johnny, please review -- I do not have a good track record of getting these right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85173 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67d02c9e078bd68cad7bc12fbc86ceed345aae15 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 26 22:52:03 2009 +0000 Convert a few tests to FileCheck for PR5307. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85171 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccd00e369b68760c043986705ca45bb06e233f1e Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 26 22:42:13 2009 +0000 Fix ARM encoding typo: Opcod3 is not passed to ASuI parent class. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85169 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a308521257a4c8fc6e816bdd4218ade39e1edfe Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 26 22:34:44 2009 +0000 Add more ARM instruction encodings for 's' bit set and "rs" register encoding bits. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85167 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa644ea6cd8b6c4fa5d0442c91267cdfdab43eab Author: David Goodwin <david_goodwin@apple.com> Date: Mon Oct 26 22:31:16 2009 +0000 Allow the aggressive anti-dep breaker to process the same region multiple times. This is necessary because new anti-dependencies are exposed when "current" ones are broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85166 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5f5512bc4ed863d9f616d7da1ff6826bcf3b3b8 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 26 22:18:58 2009 +0000 Simplify this code. LoopDeletion doesn't need to explicit check that the loop exiting block dominates the latch block; if ScalarEvolution can prove that the trip-count is finite, that's sufficient. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85165 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4dcf7c0292231fa38ff5c0ab4a2413c7b0bbb66e Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 26 22:14:22 2009 +0000 Code that checks WillNotOverflowSignedAdd before creating an Add can safely use the NSW bit on the Add. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85164 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20404788e09d71c9c6171a5f4e24f5a9be2d84bd Author: Ted Kremenek <kremenek@apple.com> Date: Mon Oct 26 22:06:01 2009 +0000 Update CMake files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85161 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c576d14840a48ccebdb449dfdb0b7b3b95fbbc0 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 26 21:55:43 2009 +0000 Teach BasicAA how to analyze Select instructions, and make it more aggressive on PHI instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85158 91177308-0d34-0410-b5e6-96231b3b80d8 commit f974aca5c3b657b93fd45aead3fba00100652b23 Author: Julien Lerouge <jlerouge@apple.com> Date: Mon Oct 26 20:01:35 2009 +0000 Remove / use flags that are now set in the Makefile.config. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85149 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3f1ce99a96866828eaeb5f97bf4f423db2a553e Author: Julien Lerouge <jlerouge@apple.com> Date: Mon Oct 26 20:00:35 2009 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85148 91177308-0d34-0410-b5e6-96231b3b80d8 commit c438e2b035300052b147b83dfe48dd8becd92697 Author: Julien Lerouge <jlerouge@apple.com> Date: Mon Oct 26 19:58:44 2009 +0000 Add an autoconf test to check for optional compiler flags like -Wno-missing-field-initializers or -Wno-variadic-macros. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85147 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64948f805fbd7e5d69066d85f8dee30c9d84bf1f Author: David Goodwin <david_goodwin@apple.com> Date: Mon Oct 26 19:41:00 2009 +0000 Define virtual destructor in *.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85146 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8b859600a76b46db61dd5fe6609f66897fe9c07 Author: David Goodwin <david_goodwin@apple.com> Date: Mon Oct 26 19:32:42 2009 +0000 Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85145 91177308-0d34-0410-b5e6-96231b3b80d8 commit 415659a34f7e7c3d0a52f2712fb449a10e0abf0a Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 26 19:12:14 2009 +0000 Check in the experimental GEP splitter pass. This pass splits complex GEPs (more than one non-zero index) into simple GEPs (at most one non-zero index). In some simple experiments using this it's not uncommon to see 3% overall code size wins, because it exposes redundancies that can be eliminated, however it's tricky to use because instcombine aggressively undoes the work that this pass does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85144 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7fcfff2099a6341e2ccb0de4eb0e75431fd40e05 Author: David Goodwin <david_goodwin@apple.com> Date: Mon Oct 26 19:00:47 2009 +0000 Add virtual destructor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85141 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9839c626d35a7ad18d27f53fc5c882fe3bf2bd6 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Oct 26 18:40:24 2009 +0000 Revert r85134, it breaks mingw build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85138 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddabac83a56fa9fda47c8c4ededa6560731b7304 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 26 18:36:40 2009 +0000 Add CreateZExtOrBitCast and CreateSExtOrBitCast to TargetFolder for consistency with ConstantFolder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85137 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7080dc09b5ff61334f9a13c1eec1e0eb9c195556 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 26 18:26:18 2009 +0000 When checking whether a def of an aliased register is dead, ask the machineinstr whether the aliased register is dead, rather than the original register is dead. This allows it to get the correct answer when examining an instruction like this: CALLpcrel32 <ga:foo>, %AL<imp-def>, %EAX<imp-def,dead> where EAX is dead but a subregister of it is still live. This fixes PR5294. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85135 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe8fe92809dd5b4c24a841947213994ffdd21899 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Mon Oct 26 18:22:59 2009 +0000 Make PIC16 overlay a loadable pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85134 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2eb7f43741299f784b492a57d52e86702195b458 Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 26 17:09:00 2009 +0000 Do not use expensive sort(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85130 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59f8286f657aa97d979604e1ed4840dd9956342f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Oct 26 17:01:20 2009 +0000 Some svn:ignore tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85128 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad5789c4fd62e77a8d27c43db98384ed9762dfe7 Author: David Goodwin <david_goodwin@apple.com> Date: Mon Oct 26 16:59:04 2009 +0000 Break anti-dependence breaking out into its own class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85127 91177308-0d34-0410-b5e6-96231b3b80d8 commit 152a24965397e1b3ed7bc62c8a3b3a036b9bf733 Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 26 16:54:35 2009 +0000 Add support to encode type info using llvm::Constant. Patch by Talin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85126 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6122ae09b2869474e1875ea4334c15137edb264 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 26 15:55:24 2009 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85120 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e060dbe83b295208c3a4fce8ea278851d9720f0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 26 15:40:07 2009 +0000 reapply r85085 with a bugfix to avoid infinite looping. All of the 'demorgan' related xforms need to use dyn_castNotVal, not m_Not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85119 91177308-0d34-0410-b5e6-96231b3b80d8 commit a25e81a52a619075c948a7fc1e8ec3f8ef9b09cb Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 26 15:32:57 2009 +0000 Make LSR's OptimizeShadowIV ignore induction variables with negative strides for now, because it doesn't handle them correctly. This fixes a miscompile of SingleSource/Benchmarks/Misc-C++/ray. This problem was usually hidden because indvars transforms such induction variables into negations of canonical induction variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85118 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9919ed02cbeac5498b21825ae4924b140784be08 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Oct 26 04:56:07 2009 +0000 - Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg around. - Relax register scavenging to allow use of partially "not-live" registers. It's common for targets to operate on registers where the top bits are undef. e.g. s0 = d0 = insert_subreg d0<undef>, s0, 1 ... = d0 When the insert_subreg is eliminated by the coalescer, the scavenger used to complain. The previous fix was to keep to insert_subreg around. But that's brittle and it's overly conservative when we want to use the scavenger to allocate registers. It's actually legal and desirable for other instructions to use the "undef" part of d0. e.g. s0 = d0 = insert_subreg d0<undef>, s0, 1 ... s1 = = s1 = d0 We probably need add a "partial-undef" marker on machine operand so the machine verifier would not complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85091 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d4a07e1f97b2822c334fe0a46fabe7135037889 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Oct 26 03:51:32 2009 +0000 Revert 85085. It causes infinite looping during llvm-gcc build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85090 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2fad78bbd23df52f93797656dd8eaee63cc27896 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 26 02:37:56 2009 +0000 Fix gmake check for AuroraUX triple. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85088 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ec7df14990f3bdf92f8e55dcdeeca03d6802602 Author: Chandler Carruth <chandlerc@gmail.com> Date: Mon Oct 26 01:35:46 2009 +0000 Move DataTypes.h to include/llvm/System, update all users. This breaks the last direct inclusion edge from System to Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8 commit f05d95c356337c9a85cc12acde2cdc209ba02a1b Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 26 01:06:31 2009 +0000 Implement PR3266 & PR5276, folding: not (or (icmp, icmp)) -> and(icmp, icmp) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85085 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3a2943bdc41c9f2f973e74d27b965b48e538ea9 Author: Chandler Carruth <chandlerc@gmail.com> Date: Sun Oct 25 23:54:41 2009 +0000 Update the 'svn:ignore' property to remove stale file references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85084 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd2472b097db91e662dfc71bd69a2dc05d289704 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 25 23:47:55 2009 +0000 convert or.ll to filecheck and merge or2 into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85083 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89a222bfd4ba450a0ec169f6ac72a42dbd87cd4c Author: Chandler Carruth <chandlerc@gmail.com> Date: Sun Oct 25 23:41:56 2009 +0000 Remove stale reference to ThreadSupport.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85082 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85ee709efb4af23b7205eaf5b8378dc96ee6a021 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 25 23:22:50 2009 +0000 fix PR5295 where the .ll parser didn't reject a function after a global or global after a function with conflicting names. Update some testcases that were accidentally depending on this behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85081 91177308-0d34-0410-b5e6-96231b3b80d8 commit f756c166ec47173633f631b1be8d2f90e11769d6 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Oct 25 23:11:06 2009 +0000 Suppress -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85078 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79cdc2ecda3b93508190ffef80f49565093260d3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 25 23:06:42 2009 +0000 fix PR5186: the JIT shouldn't try to codegen available_externally functions it should just look them up like declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85077 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f13bfcd9890009dcab9454992134c486fc8a126 Author: Chandler Carruth <chandlerc@gmail.com> Date: Sun Oct 25 22:38:41 2009 +0000 Remove unused includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85074 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20f9924817aba90dc88c43b247671c6542fb523c Author: Jim Grosbach <grosbach@apple.com> Date: Sun Oct 25 19:14:48 2009 +0000 of -> or git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f9656021235a937c7c874487dbbb5780f3b0427 Author: Jim Grosbach <grosbach@apple.com> Date: Sun Oct 25 18:55:46 2009 +0000 80-column cleanup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85064 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27e801cd7ee5ce1b11ed9c2e6fc478747f70cc3c Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sun Oct 25 08:14:11 2009 +0000 Reapply 85006 with a minor fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85052 91177308-0d34-0410-b5e6-96231b3b80d8 commit a45dd92bcde845b4edd7a3495eb8f3fba708a853 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 25 08:01:41 2009 +0000 Add a couple of ARM cross-rc coalescing tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85051 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6a6656d22cb77cd940b25d3aaa7382e73912683 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 25 07:53:48 2009 +0000 Update tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85050 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7da9a9ca5eb152a5d570c29b6b873dda02148925 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 25 07:53:28 2009 +0000 Add ARM getMatchingSuperRegClass to handle S / D / Q cross regclass coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 146c8488a42d45d57f0e25abccb008d7e9b8d135 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 25 07:52:27 2009 +0000 Don't forget subreg indices when folding load / store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85048 91177308-0d34-0410-b5e6-96231b3b80d8 commit 899830995d35fa6878fd6204fce742c90b9d554b Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 25 07:51:47 2009 +0000 Use isIdentityCopy. Fix a bozo bug (flipped condition) in InvalidateRegDef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85047 91177308-0d34-0410-b5e6-96231b3b80d8 commit 381f09782a49e19f142866145947405531b8d2cd Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 25 07:49:57 2009 +0000 Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85046 91177308-0d34-0410-b5e6-96231b3b80d8 commit c319538252bef8bab51638c1cb6ac9beab6e0bf5 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 25 07:48:51 2009 +0000 Do not delete identity insert_subreg even if dest is virtual. Let later passes delete them. This avoids register scavenger complain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85045 91177308-0d34-0410-b5e6-96231b3b80d8 commit a331ec82f78470eeb4c6c1e666d082a64fea5069 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 25 07:47:07 2009 +0000 Add isIdentityCopy to check for identity copy (or extract_subreg, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85044 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5a44ef9fd5f7c3964ad79b94778261175dea5c33 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 25 06:57:41 2009 +0000 Remove includes of Support/Compiler.h that are no longer needed after the VISIBILITY_HIDDEN removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85043 91177308-0d34-0410-b5e6-96231b3b80d8 commit 492d06efde44a4e38a6ed321ada4af5a75494df6 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 25 06:33:48 2009 +0000 Remove VISIBILITY_HIDDEN from class/struct found inside anonymous namespaces. Chris claims we should never have visibility_hidden inside any .cpp file but that's still not true even after this commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62d027dd4b9b60d87f7c617aac1473bf8794a5d2 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 25 06:17:51 2009 +0000 this is done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85041 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e39cf73d44aea2c233909dff6504362a6ccce8e Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 25 06:15:37 2009 +0000 Teach FoldBitCast to be able to handle bitcasts from (e.g.) i128 -> <4 x float>. This allows us to simplify this: union vec2d { double e[2]; double v __attribute__((vector_size(16))); }; typedef union vec2d vec2d; static vec2d a={{1,2}}, b={{3,4}}; vec2d foo () { return (vec2d){ .v = a.v + b.v * (vec2d){{5,5}}.v }; } down to: define %0 @foo() nounwind ssp { entry: %mrv5 = insertvalue %0 undef, double 1.600000e+01, 0 ; <%0> [#uses=1] %mrv6 = insertvalue %0 %mrv5, double 2.200000e+01, 1 ; <%0> [#uses=1] ret %0 %mrv6 } instead of: define %0 @foo() nounwind ssp { entry: %mrv5 = insertvalue %0 undef, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 0), 0 ; <%0> [#uses=1] %mrv6 = insertvalue %0 %mrv5, double extractelement (<2 x double> fadd (<2 x double> fmul (<2 x double> bitcast (<1 x i128> <i128 85174437667405312423031577302488055808> to <2 x double>), <2 x double> <double 3.000000e+00, double 4.000000e+00>), <2 x double> <double 1.000000e+00, double 2.000000e+00>), i32 1), 1 ; <%0> [#uses=1] ret %0 %mrv6 } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85040 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5aa9a3e9ac31b1c800daf8fd9f273ded02d4b75d Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 25 06:08:26 2009 +0000 move FoldBitCast earlier in the file, and use it instead of ConstantExpr::getBitCast in various places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85039 91177308-0d34-0410-b5e6-96231b3b80d8 commit ea55ea084bc578f7e161343561826ae47265fdce Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 25 06:02:57 2009 +0000 refactor FoldBitCast to reduce nesting and to always return a constantexpr instead of returning null on failure. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85038 91177308-0d34-0410-b5e6-96231b3b80d8 commit b0796c6d1dbaef83b400f53bee71f2dff0bff22e Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 25 05:20:17 2009 +0000 Remove ICmpInst::isSignedPredicate which was a reimplementation CmpInst::isSigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 36d0d2030275df7b40226a7979c6d7424955a2f6 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 25 03:50:03 2009 +0000 Sink isTrueWhenEqual from ICmpInst to CmpInst. Add a matching isFalseWhenEqual which is equal to !isTrueWhenEqual for ints but not for floats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85036 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83410aa8c59837bafd2fcab76c33abd14e72b5c1 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Oct 25 03:30:55 2009 +0000 lit: Add --config-prefix option, to override default config file names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85035 91177308-0d34-0410-b5e6-96231b3b80d8 commit 062ddcb23b7e81787c7ae597d851e654049a6c2b Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 25 03:22:00 2009 +0000 Indent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85034 91177308-0d34-0410-b5e6-96231b3b80d8 commit 27f73ebba47a60ebdce7104e2db1991b615c8979 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Oct 25 01:44:24 2009 +0000 Regenerate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85031 91177308-0d34-0410-b5e6-96231b3b80d8 commit 01b49d0c8e25ca4e719179e056be1f12370bf312 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Oct 25 01:44:11 2009 +0000 Document OptionPreprocessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85030 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19e491c408463252d0a5c008a3ec02c9a15c7400 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Oct 25 01:43:50 2009 +0000 Add a test for OptionPreprocessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85029 91177308-0d34-0410-b5e6-96231b3b80d8 commit f20c0915df1dcb44682aa5380b9c88e800985bf4 Author: Daniel Dunbar <daniel@zuster.org> Date: Sun Oct 25 01:37:26 2009 +0000 lit: Allow use of /dev/null in redirects on Windows (replace by a temporary file). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85028 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ef97dcce4891c64bef5ce217341053224a57dc5 Author: Jim Grosbach <grosbach@apple.com> Date: Sun Oct 25 00:45:07 2009 +0000 When the scavenger is looking for a good candidate location to restore from a spill, it should avoid doing so inside the live range of a virtual register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85026 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed2a16a36af4902ada0b3f3866bbe9ec2ac5dcf3 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 23:52:07 2009 +0000 Update these tests to match what Loop::print now prints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85021 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5b5be1642c9ff53eb6c3596519fafa75715acd8 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 23:37:16 2009 +0000 MapValue doesn't needs its LLVMContext argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a175215245c62bf37aaa117703882fcc271e72d Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 23:34:26 2009 +0000 Rename isLoopExit to isLoopExiting, for consistency with the wording used elsewhere - an exit block is a block outside the loop branched to from within the loop. An exiting block is a block inside the loop that branches out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85019 91177308-0d34-0410-b5e6-96231b3b80d8 commit 16be04bcdbbd17ba27ad9f3d3b404b78dc10d4c3 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 23:24:45 2009 +0000 Delete a spurious semicolon. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85018 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6cb04ccc59e4b359a5ede29ba0a8a453b7201527 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 23:23:04 2009 +0000 Make these tests more interesting by using -verify-dom-info and -verify-loop-info, which enable additional (expensive) consistency checks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85017 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3c12364e4fe208d7c08f2b855e56681f66528b2 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 23:19:52 2009 +0000 Rewrite LoopRotation's SSA updating code using SSAUpdater. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85016 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30bb4a4eefbff71da7454822c921cb26b4faccfc Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 24 20:32:49 2009 +0000 lit: Support '>>' redirections when executing scripts internally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85014 91177308-0d34-0410-b5e6-96231b3b80d8 commit 19ca34a85e80831b11e053bcf39ef0975ccb3807 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 24 20:32:43 2009 +0000 Update CMake dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85013 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55e0f3183257cfe642d5d6d7c26f6cc993e99b1a Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 24 20:32:36 2009 +0000 Teach macho-dump to dump UUIDs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85012 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87767b48a2f1945330c282d08851ac1ab0e80d3d Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 20:01:11 2009 +0000 Make DominanceFrontierBase::print's output prettier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85011 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0f9ddd94abcd8400de8a1fa707b874a7a2a04e3 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 19:57:58 2009 +0000 Make DominanceFrontier::addBasicBlock return the iterator for the newly inserted block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85010 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9ec1b66fb1f1560227e44cff952b0ea321022e5 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 24 19:56:23 2009 +0000 Add an explicit keyword. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85009 91177308-0d34-0410-b5e6-96231b3b80d8 commit 937a17362032cec745e3036b3b6cc3ed39b70168 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sat Oct 24 18:19:41 2009 +0000 Revert back 85006 for now as it breaks PIC16 tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c4a7ca6ed4f686dcd23e4f2798d9ee8a3119a60 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Sat Oct 24 18:02:44 2009 +0000 Adding support for placing global objects in shared data memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85006 91177308-0d34-0410-b5e6-96231b3b80d8 commit 90c418ae50b0f979ca2326777bdabdc423cae564 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 24 05:27:19 2009 +0000 various cleanups suggested by Duncan git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84993 91177308-0d34-0410-b5e6-96231b3b80d8 commit e040a936ccd5387a28b4228244f1e99fc6810d3c Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 24 05:22:15 2009 +0000 fix PR5287, a serious regression from my previous patches. Thanks to Duncan for the nice tiny testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84992 91177308-0d34-0410-b5e6-96231b3b80d8 commit 939460818ececec9e225ac70ab473c109300bbad Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Oct 24 04:23:03 2009 +0000 Auto-upgrade free instructions to calls to the builtin free function. Update all analysis passes and transforms to treat free calls just like FreeInst. Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84987 91177308-0d34-0410-b5e6-96231b3b80d8 commit 09549369a6f7976934e21a49befb6d9f46abb56b Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 24 02:07:42 2009 +0000 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84986 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e4c4276b78da64a7b505a83d6d0b107ade85f0e Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Oct 24 00:27:00 2009 +0000 Add some asserts to catch copyRegToReg() fails early git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84983 91177308-0d34-0410-b5e6-96231b3b80d8 commit 852f708684bb34dea4f22b2c46829c49e671e2b7 Author: Jim Grosbach <grosbach@apple.com> Date: Sat Oct 24 00:19:24 2009 +0000 Restrict Thumb1 register allocation to low registers, even for instructions that can access the hi regs. Our prologue and epilogue code doesn't know how to properly handle save/restore of the hi regs, so things go badly when we alloc them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8940d798e7ceec957f1dc2a2862105d4180f3bda Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 23 23:09:19 2009 +0000 Identity copies should not contribute to spill weight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84978 91177308-0d34-0410-b5e6-96231b3b80d8 commit db980fa1680f4a52fbd9c940284df543fcac97b1 Author: Jim Grosbach <grosbach@apple.com> Date: Fri Oct 23 23:07:42 2009 +0000 FIXME no longer applies. R12 and R3 are available for allocation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84977 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ddfe5ce0cc40627e9b10c69b71071b4aef46f52 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Oct 23 22:37:43 2009 +0000 Fix http://llvm.org/PR4822: allow module deletion after a function has been compiled. When functions are compiled, they accumulate references in the JITResolver's stub maps. This patch removes those references when the functions are destroyed. It's illegal to destroy a Function when any thread may still try to call its machine code. This patch also updates r83987 to use ValueMap instead of explicit CallbackVHs and fixes a couple "do stuff inside assert()" bugs from r84522. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84975 91177308-0d34-0410-b5e6-96231b3b80d8 commit b168730cf56bd8e8bf0c4d7f494b79ca135e973d Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Oct 23 21:09:37 2009 +0000 Remove AllocationInst. Since MallocInst went away, AllocaInst is the only subclass of AllocationInst, so it no longer is necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84969 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2a663a0a3b3711679bcbac053b788a3e2ec346a Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Oct 23 20:54:00 2009 +0000 Fix stylistic and documentation problems in ValueMap found by Nick Lewycky and Evan Cheng. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84967 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6530ae50de6d78e90f499b67ee9db01da894ff4a Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 23 17:57:43 2009 +0000 APInt-ify the gep scaling code, so that it correctly handles the case where the scale overflows pointer-sized arithmetic. This fixes PR5281. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84954 91177308-0d34-0410-b5e6-96231b3b80d8 commit af1c05ad386e69449b53582da8f2b94c044e57db Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 23 17:10:01 2009 +0000 Make LoopDeletion check the maximum backedge taken count, rather than the exact backedge taken count, when checking for infinite loops. This allows it to delete loops with multiple exit conditions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84952 91177308-0d34-0410-b5e6-96231b3b80d8 commit a737af39c9cb53e5d3c82eef853b48212e0e5e6f Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 23 07:00:55 2009 +0000 some stuff is done, we still have constantexpr simplification to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84943 91177308-0d34-0410-b5e6-96231b3b80d8 commit b81d5390eef32d58aac471f2d5d3d3f308c8c46b Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 23 06:57:37 2009 +0000 teach libanalysis to simplify vector loads with bitcast sources. This implements something out of Target/README.txt producing: _foo: ## @foo movl 4(%esp), %eax movapd LCPI1_0, %xmm0 movapd %xmm0, (%eax) ret $4 instead of: _foo: ## @foo movl 4(%esp), %eax movapd _b, %xmm0 mulpd LCPI1_0, %xmm0 addpd _a, %xmm0 movapd %xmm0, (%eax) ret $4 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84942 91177308-0d34-0410-b5e6-96231b3b80d8 commit bec079507e277613cbd9cd3e1dd4cde4a5e14f89 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 23 06:50:36 2009 +0000 enhance FoldReinterpretLoadFromConstPtr to handle loads of up to 32 bytes (i256). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84941 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa97251b2ccff460d1c50ef1e954d45c8c1e43d7 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 23 06:23:49 2009 +0000 teach libanalysis to fold int and fp loads from almost arbitrary non-type-safe constant initializers. This sort of thing happens quite a bit for 4-byte loads out of string constants, unions, bitfields, and an interesting endianness check from sqlite, which is something like this: const int sqlite3one = 1; # define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0) # define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1) # define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE) all of these macros now constant fold away. This implements PR3152 and is based on a patch started by Eli, but heavily modified and extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84936 91177308-0d34-0410-b5e6-96231b3b80d8 commit 221f9d4df58002c36af0a128282eb687b30e232c Author: Tanya Lattner <tonic@nondot.org> Date: Fri Oct 23 06:20:06 2009 +0000 Add 2.6 release note. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84934 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb5d7afc9fba2575cc4ee672d30e120f7c5d4d20 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 23 05:58:34 2009 +0000 Update tests for 84931. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84932 91177308-0d34-0410-b5e6-96231b3b80d8 commit 868e7d89bcd9c39376174a0ec12e4f6ea5ec25ff Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 23 05:57:35 2009 +0000 X86 needs critical path anti-dependency breaking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84931 91177308-0d34-0410-b5e6-96231b3b80d8 commit 29a9919606a4790d496a3db568883b080ec57ff1 Author: Dale Johannesen <dalej@apple.com> Date: Fri Oct 23 04:02:51 2009 +0000 Commit fixes for half precision I noted in review, so they don't get lost; I don't think the originator has write access. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84928 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1caa0c6a612427636a06109b999b254bda758b11 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Oct 23 01:37:01 2009 +0000 This is passing on Darwin PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84921 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9167ebd0342cbb558b21d3e96a979087105af3b6 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Oct 23 00:59:10 2009 +0000 Minor code cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84919 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68e0213cf4b9f944a356cf578050cc17f19d1257 Author: Bill Wendling <isanbard@gmail.com> Date: Fri Oct 23 00:01:05 2009 +0000 Neuter stack protectors by only checking character arrays. This is what GCC does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84916 91177308-0d34-0410-b5e6-96231b3b80d8 commit e56e4a63f19ea3b7e40d84704d9b066698722db6 Author: David Goodwin <david_goodwin@apple.com> Date: Thu Oct 22 23:19:17 2009 +0000 Allow the target to select the level of anti-dependence breaking that should be performed by the post-RA scheduler. The default is none. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84911 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2bdf61b5f71e0971bdaa0e4cff9647031c6d8ee Author: Ted Kremenek <kremenek@apple.com> Date: Thu Oct 22 22:16:17 2009 +0000 Use 'waitpid' instead of 'wait'. Basing Program::Wait() on 'wait()' prevents it being correct within a multithreaded context. This address: PR 5277 (Program::Wait is unsafe to call from multiple threads). Note: If waitpid() turns out to be non-portable, we can add more autoconf magic, or look into another solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84903 91177308-0d34-0410-b5e6-96231b3b80d8 commit 50e846dbda3390610f7b414dd14000ebb170c737 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Oct 22 22:11:22 2009 +0000 Try r84890 again (adding ValueMap<>), now that I've tested the compile on gcc-4.4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84902 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6c954193474a76852f5cec1f899b8e4184a15bd0 Author: Eric Christopher <echristo@apple.com> Date: Thu Oct 22 22:06:50 2009 +0000 size_t, not unsigned here to silence a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84900 91177308-0d34-0410-b5e6-96231b3b80d8 commit 65ca6b735393dc7d03990ecbda2a1cb4344183ed Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Oct 22 21:49:41 2009 +0000 Random include cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84898 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d1f0f3101559a0f42c74cc854b2fd8d10e795fa Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Oct 22 20:57:35 2009 +0000 Fix OProfileJITEventListener after r84054 renamed CompileUnit to Scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84895 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9f6aeb72926b953e115d6fac3cbe138f569fb9a5 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Oct 22 20:48:59 2009 +0000 Tidying up some code and comments. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84894 91177308-0d34-0410-b5e6-96231b3b80d8 commit 510cbea6c3ebc7702616d655d4dd1367e17b462a Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Oct 22 20:23:43 2009 +0000 Revert r84890, which broke the linux build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84892 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87ed85965251c3c6dda530e083d5c1aedd3eef54 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Oct 22 20:10:20 2009 +0000 Add a ValueMap<ValueOrSubclass*, T> type. ValueMap<Value*, T> is safe to use even when keys get RAUWed and deleted during its lifetime. By default the keys act like WeakVHs, but users can pass a third template parameter to configure how updates work and whether to do anything beyond updating the map on each action. It's also possible to automatically acquire a lock around ValueMap updates triggered by RAUWs and deletes, to support the ExecutionEngine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84890 91177308-0d34-0410-b5e6-96231b3b80d8 commit b10e68d04e54b6ad9303d84ee1fb6dfbe6c7ddc2 Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 22 19:36:54 2009 +0000 Hide MetadataContext implementation details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84886 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f6f894016256484e5ccdfa0d94cfecb51aaeca9 Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 22 18:55:16 2009 +0000 Fix getMDs() interface such that it does not expose implementation details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84885 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0aa3004c5f4b6d56619a755bab708a5b9c65cc94 Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 22 18:25:28 2009 +0000 Using TrackingVH instead of WeakVH or WeakMetadataVH. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84884 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c14af970afe7672fe152780c81c6b0b2c7eb75d Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 22 17:40:37 2009 +0000 Sort handler names to ensure deterministic behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84878 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ded08a1c38a0b55a33655592d279706977ccc35 Author: Stuart Hastings <stuart@apple.com> Date: Thu Oct 22 17:22:37 2009 +0000 Trying again to tweak the top-level Makefile to facilitate an Apple-style build. Now with Clang-compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84872 91177308-0d34-0410-b5e6-96231b3b80d8 commit df6a663b5b5a592c4dffdea732db0fe0d1453e14 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 22 16:52:21 2009 +0000 Revert 84843. Evan, this was breaking some of the if-conversion tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84868 91177308-0d34-0410-b5e6-96231b3b80d8 commit 310fdba5949e9e67c177aa1335daaf63db34ca7b Author: Duncan Sands <baldrick@free.fr> Date: Thu Oct 22 16:03:32 2009 +0000 Include config.h in order to have HAVE_STDINT_H be defined. In the latest binutils the plugin-api.h needs this - without it the LLVM gold plugin fails to compile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84861 91177308-0d34-0410-b5e6-96231b3b80d8 commit e369d54068dc4c4aaed61abf7ffeabd237719267 Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Thu Oct 22 14:35:57 2009 +0000 Verify that the function and exception table have been allocated before freeing them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84859 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed248f3628f79be217ec9403c66f7bed2e31bde2 Author: Duncan Sands <baldrick@free.fr> Date: Thu Oct 22 12:53:25 2009 +0000 Check that accessing a struct field that occurs before the start of the struct (!) works correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84853 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc1fe3096ec2d5d64ae29cd465594aee276c3f7e Author: Duncan Sands <baldrick@free.fr> Date: Thu Oct 22 10:02:10 2009 +0000 Test handling of record fields with negative offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 812c4346ae2badfb759ba1a0c1187eda28092821 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Oct 22 09:28:49 2009 +0000 Shift art to the right to keep GCC from complaining about multi-line comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84849 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2147b5787db9e84e22c5d008db703ddce3ae9d86 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Oct 22 06:48:32 2009 +0000 Move if-conversion before post-regalloc scheduling so the predicated instruction get scheduled properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84843 91177308-0d34-0410-b5e6-96231b3b80d8 commit de6ba0a0863d45638958b1c0e47aab50c9fbaaa0 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Oct 22 06:47:35 2009 +0000 Load / store multiple was missing opportunites when the load / store bundles are at the end of the bb. Test case is already in, the bug is exposed by subsequent commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84842 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bdc6d5cc22c8e45cbd1c2afec51a7d4c2597a12 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 06:44:07 2009 +0000 move another load optimization from instcombine -> libanalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84841 91177308-0d34-0410-b5e6-96231b3b80d8 commit c352ed0063694702fc056d18bacec36f73761b16 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 06:38:35 2009 +0000 move 'loading i32 from string' optimization from instcombine to libanalysis. Instcombine shrinking... does this even make sense??? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84840 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0527483e95ddd8a4a8019337eba4b1ecf1b90196 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 06:25:11 2009 +0000 Move some constant folding logic for loads out of instcombine into Analysis/ConstantFolding.cpp. This doesn't change the behavior of instcombine but makes other clients of ConstantFoldInstruction able to handle loads. This was partially extracted from Eli's patch in PR3152. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84836 91177308-0d34-0410-b5e6-96231b3b80d8 commit a14a20abbaa4fa993b66ab746dfedad633e3f974 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Oct 22 05:11:00 2009 +0000 Trim more includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84832 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e38eb0b9332d2af9d3d0db0bc94a1fdaa5c709d Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Oct 22 05:08:49 2009 +0000 Trim include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84831 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9fdaa881e8c3af817312d7bd262a07731c6b0fc7 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 04:47:09 2009 +0000 testcase for PR4678 & rdar://7309675 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84830 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e73058aea1ddca356b119286f82c6b4b25d7098 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Oct 22 04:15:24 2009 +0000 Forgot a declaration. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84828 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bb5da04d19ddca55a536ebdc0e3b30f606b5b98 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Oct 22 04:15:07 2009 +0000 Make 'unset_option' work on list options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84827 91177308-0d34-0410-b5e6-96231b3b80d8 commit 62b547a9ebaa6ec2a311748d9f38521ee1175230 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 03:42:27 2009 +0000 fix warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 580b86f11cbb963155f8a7706ede7835c20691ba Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 22 01:01:24 2009 +0000 Fix getHandlerNames() interface. Now it populate clinet supplied small vector with handler names. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84820 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1a226dc19b3cfe39c1c42af2b53463c3b3d160a Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 00:52:28 2009 +0000 llvm-ld doesn't throw. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84819 91177308-0d34-0410-b5e6-96231b3b80d8 commit c343f9666768b6550d56792a76d0a79cb6ed508b Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 00:50:24 2009 +0000 this doesn't use EH either. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96f3f0ea1784565c7f175c709d99fb44737a6077 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 00:46:41 2009 +0000 nothing opt uses can throw, remove the try block and -fexceptions when building opt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84816 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd0702fb9d6f58c3d334b8a8649892b5bc1c9648 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 00:44:10 2009 +0000 Add some command line options for twiddling the default data layout used by opt when a module doesn't specify one. Patch from Kenneth Uildriks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84814 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8776641c8937656b395e6bf9256f90c60c616103 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Oct 22 00:40:00 2009 +0000 Don't generate sbfx / ubfx with negative lsb field. Patch by David Conrad. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84813 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3254b4944c646570b94027cf701136f8a95352e Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 22 00:22:05 2009 +0000 Use StringRef to construct MDString. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84811 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5ed7f070696277cfa62750e4907ba65208ed66f Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 22 00:17:26 2009 +0000 fix PR5262. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84810 91177308-0d34-0410-b5e6-96231b3b80d8 commit fadf5e5953fdd1925c1d71dec4d771ab06b2e186 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Oct 22 00:16:00 2009 +0000 Use special DAG-to-DAG preprocessing to allow mem-mem instructions to be selected. Yay for ASCII graphics! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84808 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcfa3114e0922e6a127cd9e63dce10d98fb77757 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Oct 22 00:15:17 2009 +0000 Fix null pointer dereference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ab984e0f73ee6857fdf9222fb9b836126070b60 Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 22 00:10:15 2009 +0000 Remove meaningless const. Pass StringRef by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84804 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52a7362292fcc0cf59c3d38ce8955b709b8e00e6 Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 22 00:03:58 2009 +0000 Revert the main portion of r31856. It was causing BranchFolding to break up CFG diamonds by banishing one of the blocks to the end of the function, which is bad for code density and branch size. This does pessimize MultiSource/Benchmarks/Ptrdist/yacr2, the benchmark cited as the reason for the change, however I've examined the code and it looks more like a case of gaming a particular branch than of being generally applicable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84803 91177308-0d34-0410-b5e6-96231b3b80d8 commit 625fc8a70dea12493a862ff030cf63e1a3eeec8c Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 21 23:57:35 2009 +0000 Derive metadata hierarchy from Value instead of User. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84801 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3980f9bdc1bef099f011b193282624140d918f4d Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 21 23:41:58 2009 +0000 revert r84754, it isn't the right approach. Edwin, please propose patches for fixes like this instead of committing them directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84799 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1190aa49e2e41435881d3a76052a29a2aff9f632 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 21 23:40:56 2009 +0000 Missing piece of the ARM frame index post-scavenging conditionalization git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84798 91177308-0d34-0410-b5e6-96231b3b80d8 commit 505f7cffe7582df375c43540771e4c4970971848 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Oct 21 23:29:32 2009 +0000 Fix thinko noticed by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84797 91177308-0d34-0410-b5e6-96231b3b80d8 commit d6e39eca79fc5c778baf517f159b7d47e6964818 Author: Dale Johannesen <dalej@apple.com> Date: Wed Oct 21 23:29:12 2009 +0000 Adjust testcases for msasm -> alignstack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ee3e4bf7e162b8daf43c2fd660f67095d00af3a Author: Dale Johannesen <dalej@apple.com> Date: Wed Oct 21 23:28:00 2009 +0000 Rename msasm to alignstack per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 87c2b24e57deea38e8cf572a0c461bfc21296996 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Oct 21 23:27:54 2009 +0000 Remove pointless return; at end of function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84794 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3def926d532e753cab49cc1bacf660f49d626864 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 21 22:59:56 2009 +0000 The spill restore needs to be resolved to the SP/FP just like the spill git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86320274fce17431f8ad60ebd9e89c2e7bcacc04 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 21 22:59:24 2009 +0000 Conditionalize ARM/T2 frame index post-scavenging while working out fixes for a few bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e4759105fdc5ae0f14c0dce471817b59d7db268 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Wed Oct 21 22:55:51 2009 +0000 Simplify code. No intended functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84790 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f92d1399fe9f3df00ed1a0b0e864b2d63dc3cef Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 21 21:57:13 2009 +0000 Use StringRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84786 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b1ec3887477e72d994e996b7e0422777172b7d0 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 21 21:36:27 2009 +0000 Most of the NEON shuffle instructions do not support 64-bit element types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 26c7b903a8f7ab6bf9bb75110a0ff5da74bf41fd Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 21 21:25:09 2009 +0000 Do not use SmallVector to store MDNode elements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11face1c79fa330d0f77be6ddb9357e2846a4dc2 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 21:15:18 2009 +0000 Revert r84764, it breaks mingw build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84783 91177308-0d34-0410-b5e6-96231b3b80d8 commit 002646297951aab37dd7e9a1a205158d20b46196 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Oct 21 21:09:48 2009 +0000 XFAIL this test for PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84782 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1afc8e26bf2580d78e824666534049f5693c09df Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 21 20:44:34 2009 +0000 Improve handling of immediates by splitting 32-bit immediates into two 16-bit immediate operands when they will fit into the using instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84778 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85a066070801c2ab1d8a39dcb0c5033fb188e9d8 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 19:18:28 2009 +0000 Add DAG printing for RMW stuff debugging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84776 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3d275414331b53b0a3ed6490719417c016b3515 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 19:17:55 2009 +0000 RMW preprocessing stuff was incorrect. Grab the stuff from x86 backend and disable some tests until it will be clever enough to handle them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84775 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c040a63f12f348acaa0508f75a58df839bead52 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 19:17:18 2009 +0000 Implement branch folding git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84774 91177308-0d34-0410-b5e6-96231b3b80d8 commit a791a042aabfbed7db07afd1d9475bac2b0f3cf9 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 19:16:49 2009 +0000 Cosmetic changes, no functionality changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84773 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67439f05c61cd2445416d7f4f32c4062827376da Author: Victor Hernandez <vhernandez@apple.com> Date: Wed Oct 21 19:11:40 2009 +0000 Make changes to rev 84292 as requested by Chris Lattner. Most changes are cleanup, but there is 1 correctness fix: I fixed InstCombine so that the icmp is removed only if the malloc call is removed (which requires explicit removal because the Worklist won't DCE any calls since they can have side-effects). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84772 91177308-0d34-0410-b5e6-96231b3b80d8 commit e33f252643208755c07a6b43082f20d05b15af42 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 21 17:54:01 2009 +0000 Fix NEON VST2LN instruction encoding. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84767 91177308-0d34-0410-b5e6-96231b3b80d8 commit e0053d22f825bf4749beaa282a4263e945aebcbc Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 21 17:52:34 2009 +0000 Revert 84732. It was the wrong fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84766 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d4250d2a10ec19f50c06baf6cb12f3fa97b0159 Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 21 17:33:41 2009 +0000 Incorporate various suggestions Chris gave during metadata review. - i < getNumElements() instead of getNumElements() > i - Make setParent() private - Fix use of resizeOperands - Reset HasMetadata bit after removing all metadata attached to an instruction - Efficient use of iterators git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fab1d621d58906aee98e3ab703a0aa3ffd1ffde Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Oct 21 17:27:23 2009 +0000 Build shared lib instead of an archive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84764 91177308-0d34-0410-b5e6-96231b3b80d8 commit 154f22e8e4bafc4013c1f6a516b7a8102669012d Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 21 15:26:21 2009 +0000 Cleanup of frame index scavenging. Better code flow and more accurately handles T2 and ARM use cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84761 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37f42df1740fcc9fbba819648361fb2494ae6bd8 Author: Oscar Fuentes <ofv@wanadoo.es> Date: Wed Oct 21 13:22:20 2009 +0000 Two corrections for docs/CMake.html. Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84759 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81548e7d913da85e324988057f52e83cf16e3714 Author: Edwin Török <edwintorok@gmail.com> Date: Wed Oct 21 10:49:00 2009 +0000 Fix PR5262: when folding select into PHI, make sure all operands are available in the PHI's Basic Block. This uses a conservative approach, because we don't have dominator info in instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84754 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00e8f5a671512a8647a3ac418b9d269e3a77ea63 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Oct 21 10:42:44 2009 +0000 Add a pass to overlay pic16 data sections for function frame and automatic variables. This pass can be invoked by llvm-ld or opt to traverse over the call graph to detect what function frames and their automatic variables can be overlaid. Currently this builds an archive , but needs to be changed to a loadable module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84753 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9da99aa14b010c5fe3f9e52f53636d7c73181b2d Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Wed Oct 21 10:38:59 2009 +0000 Added more options to mcc16 driver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89ef28530fcc03f47245644eb67085b94efd0bac Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 21 08:15:52 2009 +0000 Match more patterns to movt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c56cfc79c02c68bef1c8bc37f8ee7a47c5e2e32 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 21 07:56:02 2009 +0000 Need a comma after imp-use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84749 91177308-0d34-0410-b5e6-96231b3b80d8 commit 745edbe1bd3546db5109e59ea48f8a2a9ba569d8 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Wed Oct 21 06:01:54 2009 +0000 De-bork CMake build git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4334a08e041230c998dcf2f0749f05f3a27e35a1 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 21 05:07:57 2009 +0000 Set comment string, patch by Johnny Chen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10460aa4c6677cee572aee1692649f713e83cfc3 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 21 04:11:19 2009 +0000 make GVN work better when TD is not around: "In the existing code, if the load and the value to replace it with are of different types *and* target data is available, it tries to use the target data to coerce the replacement value to the type of the load. Otherwise, it skips all effort to handle the type mismatch and just feeds the wrongly-typed replacement value to replaceAllUsesWith, which triggers an assertion. The patch replaces it with an outer if checking for type mismatch, and an inner if-else that checks whether target data is available and, if not, returns false rather than trying to replace the load." Patch by Kenneth Uildriks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84739 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34fdb7750482a92c156acf8a4be9d1550386717c Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 21 04:10:24 2009 +0000 tidy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6a77292423d0cc8955e56147b98b7d39c253eefa Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 21 02:27:20 2009 +0000 Fix some more NEON instruction encoding problems. Thanks to Johnny Chen for discovering the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84732 91177308-0d34-0410-b5e6-96231b3b80d8 commit df16f21228cf99bf3e8bd192afa1a8246e70341c Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 21 02:21:34 2009 +0000 Do not remove dead metadata for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84731 91177308-0d34-0410-b5e6-96231b3b80d8 commit 52e0d9d2677019df9209470c4cfcdc0a69365842 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 21 02:15:46 2009 +0000 Leave some NEON instruction encoding bits unspecified instead of setting a default value of zero. This is important for decoding the instructions. Patch by Johnny Chen, with some changes from me, too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84730 91177308-0d34-0410-b5e6-96231b3b80d8 commit 83a8e220504f71e2e88e73d866a4ca4542fc2caa Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Oct 21 02:13:52 2009 +0000 Clarify documentation on multi_val options. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84729 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2155c0a5a49c4bf016e0e335ebf893d132eb7530 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Wed Oct 21 02:13:13 2009 +0000 Implement any_[not_]empty and list versions of switch_on and [not_]empty. Useful for OptionPreprocessor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84728 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb035b45cbad41ccbc6190fdcc6b888528075bc5 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 21 01:44:44 2009 +0000 Revert r84658 and r84691. They were causing llvm-gcc bootstrap to fail. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84727 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30a61c148accb447031985fc98a1213c3bbbc027 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 21 01:10:37 2009 +0000 IPSCCP is missing stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84725 91177308-0d34-0410-b5e6-96231b3b80d8 commit ca24463d2c9df0ab7775a59ada835267a7043953 Author: Bill Wendling <isanbard@gmail.com> Date: Wed Oct 21 00:51:40 2009 +0000 This is passing on Darwin PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84723 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad525150667630fe4c47c88a2da230e283118ae0 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Oct 21 00:43:48 2009 +0000 Delete the MacOSJITEventListener per echristo's request. It was disabled by default and didn't work anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84720 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2810c7f3181a3a11b0c69743a4b15cde9e69c875 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:14:15 2009 +0000 Add note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84713 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd5e1eb3d54f5c045a413152fe63846176aa9bea Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:13:58 2009 +0000 Be crazy and assert in case of unsupported modifier passed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84712 91177308-0d34-0410-b5e6-96231b3b80d8 commit 616b9bb30f255c7531c70f3ece80402e2b0ed882 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:13:42 2009 +0000 Handle external symbols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84711 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9a90ae4863e130386e8e4c23c54468afc54f2f7 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:13:25 2009 +0000 Distinguish between pcrel imm operands and 'normal' ones. Fix fixes gross weirdness of asmprinting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84710 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7199ce5ab3517ffe7d78878bfc78e5ad3fb42054 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:13:05 2009 +0000 Add basic block operands & jump kinds git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84709 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3fcbbcd7945d1216a8572ad0c543ba9c98de3723 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:12:44 2009 +0000 Ignore all implicit reg operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84708 91177308-0d34-0410-b5e6-96231b3b80d8 commit eb85a3f2fa93c04bbe6c5fae910c6cfaf1180984 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:12:27 2009 +0000 Add a workaround for different memops prefixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84707 91177308-0d34-0410-b5e6-96231b3b80d8 commit baffc35d25adf06f1e50d722523376eee7b31152 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:12:08 2009 +0000 Checkpoint MCInst printer. We (almostly) able to print global / JT / constpool entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a50ba5671ff1b454db4f22d8b5d22b4354d272b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:11:44 2009 +0000 Add reg-imm tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84705 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f66de4cb1e6f103f3d7a5bdb4524f30a0de9ee3 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:11:27 2009 +0000 Add simple operand printing stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c7ceed86f92915c5244032d7ed36fe4f31c3904 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:11:08 2009 +0000 Add experimental MSP430 MCInstLowering stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84703 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38640dd53e549765a07a47d02f628aeb39593df7 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:10:47 2009 +0000 Wire up MSP430 printMCInst() method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84702 91177308-0d34-0410-b5e6-96231b3b80d8 commit 425a93824d9237f0130fffad5d433789cbbec63f Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:10:30 2009 +0000 Add MSP430 InstPrinter stub git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84701 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa315908b7d6ca9eef91b45171ca7af5e5b8f6d0 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 21 00:10:00 2009 +0000 Use proper target data git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84700 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38e5be5da7a72d9318370359b20992765ce73152 Author: David Goodwin <david_goodwin@apple.com> Date: Tue Oct 20 22:50:43 2009 +0000 Respect src register allocation requirements when breaking anti-dependencies. Remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84691 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04480acd34c5bf3312e6ddafb36d595788a26f0f Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 20 22:50:27 2009 +0000 Cosmetic changes. s/validName/isValidName/g s/with an Instruction/to an Instruction/g s/RegisterMDKind/registerMDKind/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84689 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38f422c8143b1a7c99796e40e295c677e11fbff9 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Oct 20 22:10:05 2009 +0000 Fix -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 672de0aa03c5943cfdd1e49206326d1955c8b3a1 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Tue Oct 20 21:37:45 2009 +0000 Fix invalid for vector types fneg(bitconvert(x)) => bitconvert(x ^ sign) transform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84683 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4a322f88c5a91a151fc42f6d829e11c90ee38ce Author: Lang Hames <lhames@gmail.com> Date: Tue Oct 20 21:28:22 2009 +0000 Oops. Backing out 84681 - needs to wait for the indexing patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84682 91177308-0d34-0410-b5e6-96231b3b80d8 commit 38f4d15c5884940ea775494bb1e64d5b4b3e9e87 Author: Lang Hames <lhames@gmail.com> Date: Tue Oct 20 21:25:13 2009 +0000 Added some debugging output to pre-alloc splitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84681 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7d7f7fb7fbcf64bc232fe800da0c1f4533485936 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 21:04:26 2009 +0000 add a real testcase for PR4313 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84676 91177308-0d34-0410-b5e6-96231b3b80d8 commit f3eec137dfa3cb5dd54f6d15f9606a91d8f43f99 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 21:00:47 2009 +0000 add a test similar to that needed for PR4313, but that doesn't fail without the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84675 91177308-0d34-0410-b5e6-96231b3b80d8 commit c10dc49d8abaad87a2b82cd9e56e989fd7e1d020 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 20:57:58 2009 +0000 the date on this testcase is wrong, it is unreduced, and it passes without the fix for PR4313. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84674 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ec5024633e3330028b469bd35301da789b77dcc Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 20 20:41:13 2009 +0000 Fix another place that calls Loop::contains a lot to construct a sorted container of the blocks and do efficient lookups. This makes isLoopSimplifyForm much faster on large loops, fixing a significant compile-time issue in builds with assertions enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84673 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82ad352a6a4e1074d64e41fe3e03f70efba30858 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 20:39:43 2009 +0000 merge and filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84672 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55190138d93c8d975d7586f56e7b2bbf4be7cd73 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 20:33:46 2009 +0000 merge two tests and convert to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84671 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ea1568b4728e4de08c89594b232fa9fba80b5d4 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 20 20:31:31 2009 +0000 Disable by default while debugging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84669 91177308-0d34-0410-b5e6-96231b3b80d8 commit b95f0ead66316dc45e05b35edd21ab8069146255 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 20:27:49 2009 +0000 alternate fix for PR5258 which avoids worklist problems, with reduced testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84667 91177308-0d34-0410-b5e6-96231b3b80d8 commit 860507d1bbced055f324e91a18de4f5ddd650a4f Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 20 20:19:50 2009 +0000 add cmd line opt to disable frame index reuse for ARM and T2. debug aid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84664 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5c6665c8637d9483f51c3448941298218748f7eb Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 20 20:06:09 2009 +0000 Restore LoopUnswitch's block-oriented threshold. LoopUnswitch now checks both the estimated code size and the number of blocks when deciding whether to do a non-trivial unswitch. This protects it from some very undesirable worst-case behavior on large numbers of loop-unswitchable conditions, such as in the testcase in PR5259. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84661 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11eb3a6c0dc019c8e69c7853e2d3678940714d30 Author: David Goodwin <david_goodwin@apple.com> Date: Tue Oct 20 19:54:44 2009 +0000 Checkpoint more aggressive anti-dependency breaking for post-ra scheduler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84658 91177308-0d34-0410-b5e6-96231b3b80d8 commit a10c4a8a085bff9a71ee666c2ac214c00dfee9a8 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 20 19:52:35 2009 +0000 Better handle instructions that re-def a scratch register git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84657 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c28699c6e054f2033d93c04c87bf7ad88646bc1 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 20 18:14:49 2009 +0000 Following r84485, add Defs = [EFLAGS] to the 32-bit lock instructions too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84652 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2512e357a856660a1b30766997ae046eaffe21e5 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 20 18:13:21 2009 +0000 Move the Function*->allocated blocks map from the JITMemoryManager to the JITEmitter. I'm gradually making Functions auto-remove themselves from the JIT when they're destroyed. In this case, the Function needs to be removed from the JITEmitter, but the map recording which Functions need to be removed lived behind the JITMemoryManager interface, which made things difficult. This patch replaces the deallocateMemForFunction(Function*) method with a pair of methods deallocateFunctionBody(void *) and deallocateExceptionTable(void *) corresponding to the two startFoo/endFoo pairs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84651 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6caa53a1305c77e42d5099722ea05ab79ea0ab97 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 20 16:33:57 2009 +0000 Register re-use for scavenged frame indices must check for re-deginition of the register in the instruction which kills the scavenged value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84641 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ab7dd082e1d3c2e8b7ee74c56502d5d0287f624 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 20 16:22:37 2009 +0000 Make TranslateX86CC return COND_INVALID instead of aborting when it encounters an OEQ or UNE comparison, and update its callers to check for this return status and recover. This fixes a problem resulting from the LowerOperation hooks being called from LegalizeVectorOps, because LegalizeVectorOps only lowers vectors, so OEQ and UNE comparisons may still be at large. This fixes PR5092. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84640 91177308-0d34-0410-b5e6-96231b3b80d8 commit 73b93c38b8150e9360f1089a0746e277b5ed910a Author: Edwin Török <edwintorok@gmail.com> Date: Tue Oct 20 15:42:00 2009 +0000 Fix PR5258, jump-threading creating invalid PHIs. When an incoming value for a PHI is updated, we must also updated all other incoming values for the same BB to match, otherwise we create invalid PHIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84638 91177308-0d34-0410-b5e6-96231b3b80d8 commit a617464b940cbd549e0fc6600dc3fcdd447f6abe Author: Edwin Török <edwintorok@gmail.com> Date: Tue Oct 20 15:15:09 2009 +0000 Fix PR4313: IPSCCP was not setting the lattice value for the invoke instruction when the invoke had multiple return values: it set the lattice value only on the extractvalue. This caused the invoke's lattice value to remain the default (undefined), and later propagated to extractvalue's operand, which incorrectly introduces undefined behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84637 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdaec7c0cbc5d6abdf7db2561af08f90a9856742 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Oct 20 11:44:38 2009 +0000 Random #include pruning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84632 91177308-0d34-0410-b5e6-96231b3b80d8 commit 02294d8ab2ac257005c9c7dc5c5039ee16d376cc Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Tue Oct 20 09:16:32 2009 +0000 This file is replaeced by PIC16Section.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4736b507e87b7690eeb2dab726367593aea226ef Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Oct 20 07:30:54 2009 +0000 NNT: Implement "config mode", use -config path/to/llvm-config - This runs the nightly test and does all the submission logic, but using the LLVM build specified by the llvm-config. - Useful for, among other things, testing NNT itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 955b7394b5be916e47f93865b099bd57738b4e16 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Oct 20 07:30:46 2009 +0000 NNT: Remove unused BUILDTYPE argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84619 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d01a09e9033c335655d9652b6a609e41d4db8c4 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 06:22:33 2009 +0000 implement some more easy hooks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ec22035cfa3affa2e5e5a026fe228716831a781 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 06:15:28 2009 +0000 Implement some hooks, make printOperand abort if unknown modifiers are present. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6cc1d3464849d68ba734f6ff8f54b934f53e218d Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 05:58:02 2009 +0000 t2MOVi32imm is currently always lowered by the Thumb2ITBlockPass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84611 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56f4502e733d0373166542f85ee641e9df72413e Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Oct 20 05:33:23 2009 +0000 PowerPC ifdef'ing considered more complicated than one might like. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84603 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75b4315d0399ae642397f7deec028adb1802a8bb Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Oct 20 05:15:36 2009 +0000 Wire up the ARM MCInst printer, for llvm-mc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84600 91177308-0d34-0410-b5e6-96231b3b80d8 commit b457c89c5998fb359323bf27c43fa326c1016124 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 20 04:50:37 2009 +0000 Re-apply r84295, with fixes to how the loop "top" and "bottom" blocks are tracked. Instead of trying to manually keep track of these locations while doing complex modifications, just recompute them when they're needed. This fixes a bug in which the TopMBB and BotMBB were not correctly updated, leading to invalid transformations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2894c9052cf5b91ff9d422c31c5aa68eebb869e2 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Oct 20 04:23:20 2009 +0000 Trim unnecessary includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84597 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e3f3cec672df37935f6c651d1135657fdfe5cdd Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 20 04:16:37 2009 +0000 Add getTopBlock and getBottomBlock member functions to MachineLoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84596 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2455d2907541391f396ae4eecd5814aecb6ce4d Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Oct 20 04:09:50 2009 +0000 Correct test for PowerPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84595 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3a4de41a79969ce6e6ac96facfa9d4a01c5e7f1 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Oct 20 02:23:13 2009 +0000 Revert "Tweak top-level Makefile to facilitate Apple-style build.", this is breaking Clang's Apple-style build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84592 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a284bff97818a9da5313655544ee6d22ff77a67 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Oct 20 02:23:05 2009 +0000 NNT: Remove duplicate verbose print. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84591 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86fc0730e6c0f4c2f6fdb0a9296fa4eb2802ef53 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 20 01:32:47 2009 +0000 Now that all ARM subtargets use frame index scavenging, the Thumb1 requires* functions are not needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84587 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f576c1745fb305f8db1f583022e7e4e93706841 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Oct 20 01:31:09 2009 +0000 If the physical register being spilled does not have an interval, spill its sub-registers instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84586 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81d33cdd24ad12950350365eb634134292e357e1 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 20 01:26:58 2009 +0000 Enable post-pass frame index register scavenging for ARM and Thumb2 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84585 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7960fbe0b2679bda3c6db9ebf0c13d0e0f1f8a3b Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 01:11:37 2009 +0000 lower ARM::MOVi32imm properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84583 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5044e84ffc2dfe993b050d96403ec1170645903 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 00:56:16 2009 +0000 add support for external symbols. The mc instprinter can now handle reasonable code like Codegen/ARM/2009-02-27-SpillerBug.ll, producing identical output except for superior formatting of constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84582 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2483d54b25eb8f19ca58419b01918eb5a4a0a1c Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 00:52:47 2009 +0000 get fancy: support basic block operands. Yay for jumps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84579 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37cd7db2c8fa2817637d8b5ecafcc33a167865ed Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 00:46:11 2009 +0000 add supprort for the 'sbit' operand, MOVi apparently has one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84577 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31c1d7b06d5f7ec47ec96d99275faee9624cffd0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 00:42:49 2009 +0000 add support for instruction predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84575 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4eb7345116dbb08a81742416317b707b6c2cb76 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 20 00:40:56 2009 +0000 implement printSORegOperand, add lowering for the nasty and despicable MOVi2pieces :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84573 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8d6989f39c90afddab819efd17372519278e71c Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 20 00:38:19 2009 +0000 Refs: A8-598. Leave Inst{11-8}, which represents the starting byte index of the extracted result in the concatenation of the operands and is left unspecified. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84572 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77ef7774b592306694272b141712dec57a94caab Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 20 00:19:08 2009 +0000 Add missing encoding bits to NLdSt class of instructions. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84570 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6ac9153989bc41f2b4f6b20379870e7caf22b86d Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 23:35:57 2009 +0000 X86 should ignore implicit regs when lowering to MCInst also, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84567 91177308-0d34-0410-b5e6-96231b3b80d8 commit aabf5bee0bd2fc12e02937511e4e28d400c8211e Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 23:31:43 2009 +0000 handle addmode4 modifiers, fix a fixme in printRegisterList by ignoring all implicit regs when lowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84566 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9e0e2a295cd5d167dfe579d2f889f091c5e7f95 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 23:05:23 2009 +0000 simplify by using the twine form of GetOrCreateSymbol git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84565 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07e97529cb7a8e1608ceedefb5ba5fde32cdb74f Author: Oscar Fuentes <ofv@wanadoo.es> Date: Mon Oct 19 23:00:00 2009 +0000 Updated cmake library dependencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 46999f20018606012039e3fe0861ea8d0a632593 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Oct 19 22:57:03 2009 +0000 Enable allocation of R3 in Thumb1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84563 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1ca870b6187d888ca1b83095fc0a37b38a33613 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 22:51:16 2009 +0000 use EmitLabel instead of text emission git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84562 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2743f3605a9fcd16f1045a8d9bcb8950cab0860e Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 22:49:00 2009 +0000 add a twine version of MCContext::GetOrCreateSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84561 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c565d8576a1ceb933301e7437723978ba985553 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 22:33:05 2009 +0000 lower the ARM::CONSTPOOL_ENTRY pseudo op, giving us constant pool entries like: @ BB#1: .align 2 LCPI1_0: .long L_.str-(LPC0+8) Note that proper indentation of the label :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84558 91177308-0d34-0410-b5e6-96231b3b80d8 commit 976a864c9995dced48ffaca18ff68921f0a4d5df Author: Jim Grosbach <grosbach@apple.com> Date: Mon Oct 19 22:27:30 2009 +0000 Adjust the scavenge register spilling to allow the target to choose an appropriate restore location for the spill as well as perform the actual save and restore. The Thumb1 target uses this to make sure R12 is not clobbered while a spilled scavenger register is live there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84554 91177308-0d34-0410-b5e6-96231b3b80d8 commit 817d551945e7ce46b12f8b3d022c7a7a0e90275e Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 22:23:04 2009 +0000 add MCInstLower support for lowering ARM::PICADD, a pseudo op for pic stuffola. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84553 91177308-0d34-0410-b5e6-96231b3b80d8 commit a7d4c7c42ec13195de5096d6d82d68e175a1fde4 Author: Owen Anderson <resistor@mac.com> Date: Mon Oct 19 22:14:22 2009 +0000 Refactor lookup_or_add to contain _MUCH_ less duplicated code. Add support for numbering first class aggregate instructions while we're at it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84547 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8bdad042bc8e9f7c0aad7194ab4c120f38aba01 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 22:09:23 2009 +0000 add register list and hacked up addrmode #4 support, we now get this: _main: stmsp! sp!, {r7, lr} mov r7, sp sub sp, sp, #4 mov r0, #0 str r0, [sp] ldr r0, LCPI1_0 bl _printf ldr r0, [sp] mov sp, r7 ldmsp! sp!, {r7, pc} Note the unhappy ldm/stm because of modifiers being ignored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84546 91177308-0d34-0410-b5e6-96231b3b80d8 commit 965998b0cd1ca7f0e3a389cd2086034fc16a5d2b Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 21:59:25 2009 +0000 revert r84540, fixing build breakage I didn't see because of broken makefile deps :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84544 91177308-0d34-0410-b5e6-96231b3b80d8 commit f1977ef5f64e12407799dbb7b6c113b4b0567db1 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 21:57:05 2009 +0000 add addrmode2 support, getting us up to: _main: stm , mov r7, sp sub sp, sp, #4 mov r0, #0 str r0, [sp] ldr r0, LCPI1_0 bl _printf ldr r0, [sp] mov sp, r7 ldm , git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84543 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9521525ee4beef3f057a4b1921399322c5060f97 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 21:53:00 2009 +0000 add jump tables, constant pools and some trivial global lowering stuff. We can now compile hello world to: _main: stm , mov r7, sp sub sp, sp, #4 mov r0, #0 str r0, ldr r0, bl _printf ldr r0, mov sp, r7 ldm , Almost looks like arm code :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84542 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96a4cb23a20b1c7c67bd04759f2a67bf4f289bbd Author: Victor Hernandez <vhernandez@apple.com> Date: Mon Oct 19 21:47:22 2009 +0000 Malloc calls are marked NoAlias, so the code below the isMalloc() check makes it redundant. Removing the isMalloc() check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84541 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed37b58917e817139e25466c91e36813435fb1f9 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 21:45:31 2009 +0000 pass mangler in as a reference instead of a pointer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84540 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33576323678a64f89b0f2598b54a8a9b6d95b93a Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Mon Oct 19 21:24:28 2009 +0000 More refactoring... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84537 91177308-0d34-0410-b5e6-96231b3b80d8 commit ba9c060b0e2a2bc7cadcbc2bff3a8e025f00213d Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 21:23:15 2009 +0000 reduce #includes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84536 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc309683cabf05c1ec7175ecdaf5ba97a36fb1cc Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 21:21:39 2009 +0000 add printing support for SOImm operands, getting us to: _main: stm , mov r7, sp sub sp, sp, #4 mov r0, #0 str r0, git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84535 91177308-0d34-0410-b5e6-96231b3b80d8 commit b472cd8f456dc9cb9e8071c2ea9e068a07566308 Author: Owen Anderson <resistor@mac.com> Date: Mon Oct 19 21:14:57 2009 +0000 Simplify some code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84533 91177308-0d34-0410-b5e6-96231b3b80d8 commit 799e7c15430c30c25ad374e2022c23b88a27a7fe Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 20:59:55 2009 +0000 wire up some basic printOperand goodness, giving us stuff like this before we abort: _main: stm , mov r7, sp sub sp, sp, mov r0, str r0, git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1526e99433566fb172e9f82340455fbf783963a0 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 20:21:05 2009 +0000 add the files that go with the previous rev git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84531 91177308-0d34-0410-b5e6-96231b3b80d8 commit da6d01a3c6e8fcf1685b7903f966ac6c27cd6c62 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 20:20:46 2009 +0000 wire up skeletal support for having llc print instructions through mcinst lowering -> mcinstprinter, when llc is passed the -enable-arm-mcinst-printer flag. Currently this is very "aborty". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84530 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee99626c6bd31b4c0eea7de52945f514d7b2b0c6 Author: Owen Anderson <resistor@mac.com> Date: Mon Oct 19 20:11:52 2009 +0000 Banish ConstantsLock. It's serving no purpose other than slowing things down at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84529 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd73ff4241505512fbaba4781c019338774893a7 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 19:59:05 2009 +0000 wire up ARM's printMCInst method. Now llvm-mc should be able to produce "something" when printing MCInsts, it will just be missing all the operand info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d01409390c7392f92540fa207556c2acc2ed89b Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 19:56:26 2009 +0000 stub out a minimal ARMInstPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84527 91177308-0d34-0410-b5e6-96231b3b80d8 commit be7efccdb9578e39f224bf36a66c191dd6943e9e Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 19:51:42 2009 +0000 remove strings from instructions who are never asmprinted. All of these "subreg32" modifier instructions are handled explicitly by the MCInst lowering phase. If they got to the asmprinter, they would explode. They should eventually be replace with correct use of subregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84526 91177308-0d34-0410-b5e6-96231b3b80d8 commit e45e6f933f7296f36a21918ef8d59431550c8eda Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Oct 19 18:49:59 2009 +0000 Clean up the JITResolver stub/callsite<->function maps. The JITResolver maps Functions to their canonical stubs and all callsites for lazily-compiled functions to their target Functions. To make Function destruction work, I'm going to need to remove all callsites on destruction, so this patch also adds the reverse mapping for that. There was an incorrect assumption in here that the only stub for a function would be the one caused by needing to lazily compile it, while x86-64 far calls and dlsym-stubs could also cause such stubs, but I didn't look for a test case that the assumption broke. This also adds DenseMapInfo<AssertingVH> so I can use DenseMaps instead of std::maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84522 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c7f8d32d6edd39000fbb2643828d86d2235b139 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:49:14 2009 +0000 simplify code, reducing string thrashing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84521 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9a6f16cfc733a242378b2bd57f744e46f88fed5 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:44:38 2009 +0000 switch hidden gv stubs to use MachineModuleInfoMachO instead of a custom map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84520 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5212138dbd0f9b3f1b0ce4db245fc43f7e29b242 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:38:33 2009 +0000 use MachineModuleInfoMachO for non-lazy gv stubs instead of a private map. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84519 91177308-0d34-0410-b5e6-96231b3b80d8 commit d3a3110595d5ac406334584886588e5c94ea9d78 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:27:56 2009 +0000 convert to filecheck syntax and make a lot more aggressive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84517 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e1e52272a4d8168ae18689877ae1fe7737ced4f Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Mon Oct 19 18:21:09 2009 +0000 Revert r84295, this unbreaks llvm-gcc bootstrap on x86-64/linux git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84516 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43bc0c42b35039d7ad103d3dfd5e075c9fb52a61 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:18:07 2009 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84515 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14f3c57043c80ba21e32c04f4b911872a154fc86 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:11:25 2009 +0000 remove dead map git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 882baf592d34dab3679b411d457b5a36f6b53a22 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:08:02 2009 +0000 don't bother trying to avoid emitting redundant constant pool alignment directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84512 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55112546ec17566bda9c1baece0837b0f8645d43 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:03:41 2009 +0000 remove accidental comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84510 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe284f7efed56c46bae93eb3980924544ec9f513 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 18:03:08 2009 +0000 emit .subsections_via_symbols through MCStreamer instead of textually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84509 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8db78262d2760d34ef451cdde7b20b9177a2f0e Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 17:59:19 2009 +0000 cleanup doFinalization -> EmitEndOfAsmFile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84508 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79caa11f7f8f871914ae6915d84c8548cf194b04 Author: Stuart Hastings <stuart@apple.com> Date: Mon Oct 19 17:53:54 2009 +0000 Tweak top-level Makefile to facilitate Apple-style build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84507 91177308-0d34-0410-b5e6-96231b3b80d8 commit 186a6a5b4f2db03622c216773e841de4255357eb Author: Nate Begeman <natebegeman@mac.com> Date: Mon Oct 19 17:31:16 2009 +0000 PR 5245 - The imediate size target flag was not set on 3A-prefixed SSSE3 instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84506 91177308-0d34-0410-b5e6-96231b3b80d8 commit cd13d085ce8ca450d379abf127ced1cb097cce10 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 19 16:04:50 2009 +0000 Fix SplitBlockPredecessors' LoopInfo updating code to handle the case where a loop's header is being split and it has predecessors which are not contained by the most-nested loop which contains the loop. This fixes PR5235. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84505 91177308-0d34-0410-b5e6-96231b3b80d8 commit d20dd8f42feee188300b2f59ea4a9c0ab4809690 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 19 14:56:05 2009 +0000 Fix a typo in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84504 91177308-0d34-0410-b5e6-96231b3b80d8 commit 988308e1aa1aa43502e9dd353cf50bc409ca5f96 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 19 14:52:05 2009 +0000 Change a few instance variables to be local variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3ceed37700dafc4ba39a17bfc47f9e4c468e6e7a Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 19 14:47:32 2009 +0000 Change instnamer to name arguments "arg" instead of "tmp" for clarity, and to name basic blocks "bb" instead of "BB", for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84502 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5382fb5c471313e455811e52766ff319d5ff389 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:56 2009 +0000 NNT: Add -parallel-test option, which runs llvm-test with ENABLE_PARALLEL_REPORT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84497 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96aab414701203ede877aeac1d4a1875f63022ed Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:50 2009 +0000 NNT: Don't hard code -l3.0 argument to make, this is very server dependent. Users who care can use -compileflags for this. Also, fix make clean call and a few other tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84496 91177308-0d34-0410-b5e6-96231b3b80d8 commit f41928152aad569778c5fd8066da19eaae636fee Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:44 2009 +0000 NNT: Fix refactoro, I dropped the list of all (llvm-test) tests. I'm sure it was named dejagnu_test_list for a good reason. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84495 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2b34e390409e9a8c33f603782d0b6ec4ec26c01 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:38 2009 +0000 NNT: Lift conditional logic out of test steps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84494 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2b9446e3b98f9d9f3f51dc108691768138f21f81 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:31 2009 +0000 NNT: Now that build & test steps are factored out, coalesce all the logic together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84493 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2942b0204853452b8236646b01e50cd1d29af9a6 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:25 2009 +0000 NNT: Sink code for running nightly test into subroutine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84492 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce25dafc1634a23335e133d77c2d0bff89e7b3a6 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:19 2009 +0000 NNT: Tweaks and simplifications. - Split out configure log. - Kill off GetRegexNum. - Fix GetRegex to not return previous match on failure. - Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84491 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2ec0094a0679b9265e1722c6422f2020c9f2ba6 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:13 2009 +0000 NNT: Move build code into subroutine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84490 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4493e94e93c1c26fd70a9aeff21044b01a3f84f8 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:06 2009 +0000 NNT: Move source checkout code into subroutine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3c52ad157a2afc9cf0cdc24d840ec95c4f97b86b Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:20:00 2009 +0000 NNT: Remove .{o,a} size info, this is better tracked elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84488 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6981e023d9d22b1e3e8d46b84da8c32050b25521 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 13:19:53 2009 +0000 NNT: Remove code to track build warnings, the buildbots cover this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84487 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce819f1cfc4fd012a8f7515f57cbe7fd6747c67b Author: Edwin Török <edwintorok@gmail.com> Date: Mon Oct 19 11:00:58 2009 +0000 Fix PR5247, "lock addq" pattern (and other atomics), it DOES modify EFLAGS. LLC was scheduling compares before the adds causing wrong branches to be taken in programs, resulting in misoptimized code wherever atomic adds where used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84485 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0f5a54282ccce79a8d4b2a6b28515bfe86620234 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 09:19:32 2009 +0000 Also check for __POWERPC__ when skipping these tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84482 91177308-0d34-0410-b5e6-96231b3b80d8 commit dce5acc21533ac83a5ba75642c0cfc4c02155937 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 09:19:19 2009 +0000 NNT: Remove hard coded BuildDir and WebDir, users should have to specify these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84481 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ec7b9e26cc036a52125efaa186321d2bbf59c1c Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 09:19:09 2009 +0000 NNT: Remove "CVS Stats", this isn't particularly useful and can be better done by the server or user. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 414cffec0a45ba543ddca53e8a24e8a833f1588a Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 09:18:54 2009 +0000 NNT: Remove now-unused -cvstag argument and CVSROOT code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84479 91177308-0d34-0410-b5e6-96231b3b80d8 commit affc0a59ae87e928f31dc939fe065e3903bd11e4 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 09:18:46 2009 +0000 NNT: Remove -usecvs option, this is very old. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84478 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d2151fa92c53725a76d4679c22e07f54d7dfeac Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 09:18:37 2009 +0000 NNT: Remove -debug argument, it is unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84477 91177308-0d34-0410-b5e6-96231b3b80d8 commit ae3faf16d09e5247aca536bd9b905e37a38a55f2 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 09:18:24 2009 +0000 Regroup NewNightlyTest.pl options git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84476 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0ea0b60777d86112abcbee9b15dd5073f1a366d1 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 07:10:59 2009 +0000 various cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84471 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd0729d4def76cc0a73fad25eeeba48fd045f776 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 05:51:03 2009 +0000 simplify. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84465 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56121b8af3863dafe75a4c6caf57be85d1ff0e78 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 05:34:14 2009 +0000 eliminate md_on_instruction.ll, md_on_instruction2.ll is a superset of it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84464 91177308-0d34-0410-b5e6-96231b3b80d8 commit c6a1c72ff0baf32402308e691695dc40c52d91c4 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 19 05:31:10 2009 +0000 clean up after metadata changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84463 91177308-0d34-0410-b5e6-96231b3b80d8 commit c62ebee717f224491aa4239b567e11c7ac78ea0f Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 03:54:21 2009 +0000 lit: When running Tcl scripts via shell, try harder to find 'bash', but fall back to running them internally if that fails. PR5240. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84462 91177308-0d34-0410-b5e6-96231b3b80d8 commit a4e496517b45bd4ac4181a9c4748552409792a96 Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 03:54:13 2009 +0000 Add link to 'lit' from CommandGuide. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84461 91177308-0d34-0410-b5e6-96231b3b80d8 commit 618232c08a37f39031de8a94fa91bc6a6186373b Author: Daniel Dunbar <daniel@zuster.org> Date: Mon Oct 19 03:53:55 2009 +0000 Teach lit that the .c files in 'test/CodeGen/CellSPU/useful-harnesses' aren't tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84460 91177308-0d34-0410-b5e6-96231b3b80d8 commit 080f8e27b25d17bba69e18e1a8eddaa32288604c Author: Nate Begeman <natebegeman@mac.com> Date: Mon Oct 19 02:17:23 2009 +0000 Add support for matching shuffle patterns with palignr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84459 91177308-0d34-0410-b5e6-96231b3b80d8 commit af4fb5a5cc937dd6aa982e393c6574707913d0ed Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sun Oct 18 22:51:30 2009 +0000 Refactoring, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84450 91177308-0d34-0410-b5e6-96231b3b80d8 commit c91317828c58e9780e7d6b6c127dc87cf61fa1f5 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 18 19:58:47 2009 +0000 Spill slots cannot alias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84432 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e2f5a4d9034c358ba5b077e24b4279d1194e328 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 18 19:57:27 2009 +0000 Turn on post-alloc scheduling for x86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84431 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbbfd5928726deeefc1ae03df8a70aca8a225197 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 18 18:31:31 2009 +0000 Oops. I forgot to change the tests first. Disable post-alloc scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84425 91177308-0d34-0410-b5e6-96231b3b80d8 commit 174e2cf99df2011a0d56e96dcdb32c1ccaf4f464 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 18 18:16:27 2009 +0000 -Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed stack slots and giving them different PseudoSourceValue's did not fix the problem of post-alloc scheduling miscompiling llvm itself. - Apply Dan's conservative workaround by assuming any non fixed stack slots can alias other memory locations. This means a load from spill slot #1 cannot move above a store of spill slot #2. - Enable post-alloc scheduling for x86 at optimization leverl Default and above. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84424 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3820341c59acd9a1d0a664a2ce86745015d8fccb Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 18 06:27:36 2009 +0000 Only fixed stack objects and spill slots should be get FixedStack PseudoSourceValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84411 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66f2cb90e57e03f3f141ae225969c90a00ac2784 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 05:27:44 2009 +0000 remove some nonascii weird stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84410 91177308-0d34-0410-b5e6-96231b3b80d8 commit 234d587487a9c825cef6c5f96a430f69250cbdba Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 05:20:17 2009 +0000 remove a now-pointless regtest git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84409 91177308-0d34-0410-b5e6-96231b3b80d8 commit 708770bbcab0eeaad849b10542fcba56c72d23fc Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 05:09:15 2009 +0000 add some fixme's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84408 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5451359c1e3d61ff28c2dab42cd6fc4b3f802344 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 05:08:07 2009 +0000 punctuate properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84407 91177308-0d34-0410-b5e6-96231b3b80d8 commit 24a2abdaedcac06cea91153c375373e044dfe1ff Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 05:03:41 2009 +0000 remove testcase for dead pass git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84406 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2e4d92851e2a8bc442034b7b8fe1d3bf1d951d2d Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 05:03:00 2009 +0000 fix test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84405 91177308-0d34-0410-b5e6-96231b3b80d8 commit b68e27a04f32573543c23bbcd33518cd9257905a Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 05:02:09 2009 +0000 remove the IndMemRemPass, which only made sense for when malloc/free were intrinsic instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84404 91177308-0d34-0410-b5e6-96231b3b80d8 commit 22a687f687f626a83c0608c45de864d76f503604 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 04:58:34 2009 +0000 fix the other issue with ID's, hopefully really fixing the linux build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84403 91177308-0d34-0410-b5e6-96231b3b80d8 commit a07bed1e7ea771a4cf7e0aba70fd22c812ee3b5a Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 04:55:26 2009 +0000 tighten up test3, add test3a for the converse transform, which isn't happening yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84402 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5b554f7452046589a922493f4a062c133da401f8 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 04:50:18 2009 +0000 tighten test2, add a test that it doesn't get transformed in the invalid edge case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 285e6506294aba9e2738a3d645e1ea93101d1b04 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 18 04:41:36 2009 +0000 Merge tests into modref.ll. Also add a test for r84174 at Chris' behest! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84400 91177308-0d34-0410-b5e6-96231b3b80d8 commit bc8aea94fd079629681425b0d35d296ae687db88 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 04:27:14 2009 +0000 fix some problems with ID definitions, which will hopefully fix the build bots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84399 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82e741607967f2d0f16af4be7d47e91ba62c43a8 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 04:10:40 2009 +0000 add function passes for printing various dominator datastructures accessible through opt. Patch by Tobias Grosser! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84397 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2f3311465b03efa4c14cc46431768a269610077f Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 04:09:11 2009 +0000 make DOTGraphTraits public, patch by Tobias Grosser! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84396 91177308-0d34-0410-b5e6-96231b3b80d8 commit 288dde63a65a687f73227a676c5d6d7a0656a29a Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 18 04:05:53 2009 +0000 add nodes_begin/end/iterator for dominfo, patch by Tobias Grosser! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84395 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3ad8096d8df43b24644d6fdb2485d57d12734ce Author: Jeffrey Yasskin <jyasskin@google.com> Date: Sun Oct 18 02:05:42 2009 +0000 Support GoogleTest's "typed tests" (http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide#Typed_Tests) in lit.py. These tests have names like "ValueMapTest/0.Iteration", which broke when lit.py os.path.join()ed them onto the path and then assumed it could os.path.split() them back off. This patch shifts path components from the testPath to the testName until the testPath exists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84387 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56939cebe60e2fd6ae196570764b8149f8f3b88b Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 18 00:42:07 2009 +0000 Add a couple new testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84385 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb5dd54e60ded55b75c1bfbc873210bc46c4470d Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 17 23:59:51 2009 +0000 replace a useless test with a useful one git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84383 91177308-0d34-0410-b5e6-96231b3b80d8 commit 918fdb719a332177af23aaa94bdb667979205412 Author: Eric Christopher <echristo@apple.com> Date: Sat Oct 17 23:56:18 2009 +0000 More warnings patrol: Another unused argument and more implicit conversions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84382 91177308-0d34-0410-b5e6-96231b3b80d8 commit b07b4b26cdda848985cf1d8e62b9d98fdc35b0f0 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Oct 17 23:52:26 2009 +0000 Fix test/Bindings/Ocaml/vmcore.ml. When IRBuilder::CreateMalloc was removed, LLVMBuildMalloc was reimplemented but with the bug that it didn't insert the resulting instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84374 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4793c939b4b654a0902323f8ae32c46b5169a649 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 17 23:48:54 2009 +0000 inline isGEP away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84373 91177308-0d34-0410-b5e6-96231b3b80d8 commit 844797e20c5a78cdefd967a979a19415398ddd2c Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 23:15:04 2009 +0000 Fix my -Asserts warning fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84372 91177308-0d34-0410-b5e6-96231b3b80d8 commit fec939c71ac163fd0ad235cd7da545cf4472fc3b Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 17 21:53:27 2009 +0000 Teach vm core to more aggressively fold 'trunc' constantexprs, allowing it to simplify the crazy constantexprs in the testcases down to something sensible. This allows -std-compile-opts to completely "devirtualize" the pointers to member functions in the testcase from PR5176. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84368 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9a0841baa2ec61270e133ffbfbe112158ba8a42 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 17 21:51:19 2009 +0000 remove # uses from FileCheck lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84367 91177308-0d34-0410-b5e6-96231b3b80d8 commit 568b8beb18a5e4752307f149e45f71569af60e74 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 17 21:31:19 2009 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 826b38064530cd5a666d7ccddc96465476c4bdeb Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 20:43:42 2009 +0000 Move UnescapeString to a static function for its sole client; its inefficient and broken. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84358 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c5f301e26efb526c76870107210598d5008c4dd Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 20:43:29 2009 +0000 Remove llvm::EscapeString, raw_ostream::write_escaped is much faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84357 91177308-0d34-0410-b5e6-96231b3b80d8 commit f89f4be5637df6ac149e83c3aa7b52bc4e6d7db0 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 20:43:19 2009 +0000 Use raw_ostream::write_escaped instead of EscapeString. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84356 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6af700555f6c97d33872c2bbf316214924247065 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 20:43:08 2009 +0000 Add raw_ostream::write_escaped, for writing escaped strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6d43539e07cc1a865b4f54bedbd0b374e04963a4 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Oct 17 20:09:29 2009 +0000 First draft of the OptionPreprocessor. More to follow... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84352 91177308-0d34-0410-b5e6-96231b3b80d8 commit c53d225e9d93e78dd5ae9f8ee7b6e5fc0bec3e56 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Oct 17 20:08:47 2009 +0000 This variable is never used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84351 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95b99cae40c20a3fa2da3ee0e58e29d4e21701ed Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Oct 17 20:08:30 2009 +0000 Disallow multiple instances of PluginPriority. Several instances of PluginPriority in a single file most probably signifies a programming error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84350 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbe1e4185d46cf2c8bfc2413595490285665e82a Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Sat Oct 17 20:07:49 2009 +0000 -O[0-3] options should be also forwarded to opt and llc. This will require implementing OptionPreprocessor to forbid invalid invocations such as 'llvmc -O1 -O2'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84349 91177308-0d34-0410-b5e6-96231b3b80d8 commit ecae47867f4d466a71600ca7ba1cbca69befc276 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Oct 17 19:43:45 2009 +0000 Emit newlines at the end of instructions too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84348 91177308-0d34-0410-b5e6-96231b3b80d8 commit baa7e86d8243c7fa92e72f97035339bb59412aaf Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 18:21:06 2009 +0000 Move StringMap's string has function into StringExtras.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84344 91177308-0d34-0410-b5e6-96231b3b80d8 commit bd35458c807abf6a887ee7983639d2ebe5a9736b Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 18:11:57 2009 +0000 Remove unnecessary include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84336 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa127ee919bdff5f6363818a10fe7db8d70e0780 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 09:33:00 2009 +0000 Suppress -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84327 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5505bc1c26d335e9a0f22f2c55fcf7544037b2d9 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 17 09:20:14 2009 +0000 Distinquish stack slots from other stack objects. They (and fixed objects) get FixedStack PseudoSourceValues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84326 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96156ef84788d3fdfe445226b4904e3bc37321df Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 17 08:57:09 2009 +0000 Re-arrange some fields. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84324 91177308-0d34-0410-b5e6-96231b3b80d8 commit 766b3658894b467195bc3ecde407f4c31711fe17 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 08:12:36 2009 +0000 Add another required #include for freestanding .h files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84322 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1f99657b2abd791d220018261e21d9f4008708b4 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 17 07:53:04 2009 +0000 Revert 84315 for now. Re-thinking the patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84321 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77e61b46fce5e165ecfedb5666c43b3d2c1dc971 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 17 06:22:26 2009 +0000 Rename getFixedStack to getStackObject. The stack objects represented are not necessarily fixed. Only those will negative frame indices are "fixed." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84315 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1adc252eb5e951fc26ff19d06854d7828f9c5f48 Author: Evan Cheng <evan.cheng@apple.com> Date: Sat Oct 17 06:05:11 2009 +0000 80 col violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84311 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8a5b9f815bc8bcbac451d4d6e9c4f23fc2376683 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 17 05:39:39 2009 +0000 Simplify some code (first hunk) and fix PR5208 (second hunk) by updating the callgraph when introducing a call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 14bff688ddb01a7b6c8dee87934d4535b27e71c0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 17 04:47:42 2009 +0000 check in a bunch of content from TestingGuide. Part of PR5216 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84309 91177308-0d34-0410-b5e6-96231b3b80d8 commit 479d5af531b5f84661180a3dc3435cd3ffeb7942 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 03:28:28 2009 +0000 llvm-as: Simplify, and don't create empty output files with -disable-output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84304 91177308-0d34-0410-b5e6-96231b3b80d8 commit bdd9c1a09a9dd512d440f432ff6ea5152198e545 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 03:28:20 2009 +0000 Reclaim a lost month. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84303 91177308-0d34-0410-b5e6-96231b3b80d8 commit 852942c7c83c65c39e3758423e7251e45067c596 Author: Daniel Dunbar <daniel@zuster.org> Date: Sat Oct 17 03:28:07 2009 +0000 Add required #includes for freestanding .h files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84302 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb39ea144fef229366341ab9636934e73de09b43 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 17 01:37:38 2009 +0000 Delete an obsolete comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84300 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37f513df87ceb54e873adc113a1fcf4af9556833 Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Oct 17 01:18:07 2009 +0000 Remove MallocInst from LLVM Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84299 91177308-0d34-0410-b5e6-96231b3b80d8 commit e2996ee5c9a9e0c05141675726ba67d5484c541e Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 17 00:32:43 2009 +0000 Enhance CodePlacementOpt's unconditional intra-loop branch elimination logic to be more general and understand more varieties of loops. Teach CodePlacementOpt to reorganize the basic blocks of a loop so that they are contiguous. This also includes a fair amount of logic for preserving fall-through edges while doing so. This fixes a BranchFolding-ism where blocks which can't be made to use a fall-through edge and don't conveniently fit anywhere nearby get tossed out to the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84295 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20c851251fd60708146d2ece04972eb6ce4e3deb Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 17 00:28:24 2009 +0000 Add a splice member function which accepts a range instead of a single iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84294 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6203d9d219ba79ef8427a773cc0b2df69e3165f7 Author: Victor Hernandez <vhernandez@apple.com> Date: Sat Oct 17 00:00:19 2009 +0000 Autoupgrade malloc insts to malloc calls. Update testcases that rely on malloc insts being present. Also prematurely remove MallocInst handling from IndMemRemoval and RaiseAllocations to help pass tests in this incremental step. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84292 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d1e0840efbf5ad8d6f9578ff9b7029b0246c3af Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Oct 16 23:12:25 2009 +0000 HeapAllocSRoA also needs to check if malloc array size can be computed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84288 91177308-0d34-0410-b5e6-96231b3b80d8 commit 304ec288964451a72c3f632bc5c6c927337f3b8f Author: Mon P Wang <wangmp@apple.com> Date: Fri Oct 16 22:09:05 2009 +0000 Update tests to use FileCheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84282 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd49010577b9dcf3e3dea49f8412662a4b73f5cc Author: Mon P Wang <wangmp@apple.com> Date: Fri Oct 16 22:07:19 2009 +0000 Add test case for r84279 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84280 91177308-0d34-0410-b5e6-96231b3b80d8 commit e50ac8f2f5743922862162859c658dfb3ca4ab14 Author: Mon P Wang <wangmp@apple.com> Date: Fri Oct 16 22:05:48 2009 +0000 Allow widening of extract subvector git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84279 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18a7d1c9020268e07643101f0944fe4c4febef25 Author: Devang Patel <dpatel@apple.com> Date: Fri Oct 16 21:27:43 2009 +0000 Do not emit name entry for a pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84276 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86e24b01e3cfdd1d2f533df99be1824515b677c5 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 16 21:06:15 2009 +0000 Change createPostRAScheduler so it can be turned off at llc -O1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84273 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5e1dcfc3d1327614ac50f7f6ad8e298a3b90f927 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 16 21:02:20 2009 +0000 Add a CodeGenOpt::Less level to match -O1. It'll be used by clients which do not want post-regalloc scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84272 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2ddf5988322bcade2fc323adf82b95a63db1d2b4 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 16 20:59:35 2009 +0000 Move zext and sext casts fed by loads into the same block as the load, to help SelectionDAG fold them into the loads, unless conditions are unfavorable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84271 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1a2ffff5b616781b32f48ef657bdcf79bef4e2d3 Author: Devang Patel <dpatel@apple.com> Date: Fri Oct 16 18:45:49 2009 +0000 Parse PHI instruction with attached metadata. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84264 91177308-0d34-0410-b5e6-96231b3b80d8 commit a6871afa41a2f40b6c1c3d8ef087c474d999ffc7 Author: Devang Patel <dpatel@apple.com> Date: Fri Oct 16 18:18:03 2009 +0000 If there is not any llvm instruction associated with each lexical scope encoded in debug info then create such scope on demand for variable info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84262 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17c3d2a4a530bc8e63919de919b3b94c425dc499 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Oct 16 18:08:17 2009 +0000 Invert isSafeToGetMallocArraySize check because we return NULL when we don't know the size. Thanks to Duncan Sands for noticing this bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84261 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6201175b20cfea5318be7e5fe1740352310078e3 Author: Victor Hernandez <vhernandez@apple.com> Date: Fri Oct 16 18:07:17 2009 +0000 Invert isSafeToGetMallocArraySize check because we return NULL when we don't know the size. Thanks to Duncan Sands for noticing this bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84260 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9235ce598591f5a1b3909bcfaf7f165c7a401d51 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 16 16:30:58 2009 +0000 Update from Cristina, llvm-gcc doesn't build on the SPARC version of solaris at the moment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84258 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa1562a685ba347b2dae203d2988fc031cce9c2d Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 16:30:02 2009 +0000 Force triple in tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84257 91177308-0d34-0410-b5e6-96231b3b80d8 commit d483c393bc30eceb75bf59dc0ea8778ac7f265b5 Author: Duncan Sands <baldrick@free.fr> Date: Fri Oct 16 15:20:13 2009 +0000 Strip trailing white space. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84256 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31c1be0731372506379290d0329d6ba53d00105d Author: Duncan Sands <baldrick@free.fr> Date: Fri Oct 16 12:18:23 2009 +0000 Check that GVN performs this transform even if the calls themselves are not marked readonly, but only the called functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84253 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8581c1174108faf2b7c8c4f02b7190f35438f762 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Oct 16 10:29:08 2009 +0000 Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 018db6635bdae3d0d7a12a1cab571b7c8c4a4cce Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Fri Oct 16 08:58:34 2009 +0000 Cleaned up some code. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84251 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1302f57663145190ad603a572aeeadb066def866 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 16 06:18:09 2009 +0000 I am no spelling bee. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84250 91177308-0d34-0410-b5e6-96231b3b80d8 commit cae7b0e6150f2fe795277324bb7107dba39a78e7 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 16 06:11:08 2009 +0000 Enable post-alloc scheduling for all ARM variants except for Thumb1. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84249 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57796906e96fa68af19262323496e4b9c038a516 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 16 06:10:34 2009 +0000 If post-alloc scheduler is not enabled, it should return false, not true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84248 91177308-0d34-0410-b5e6-96231b3b80d8 commit 722d96604ba2eed55fc01e166566935979f4739b Author: Zhongxing Xu <xuzhongxing@gmail.com> Date: Fri Oct 16 05:42:28 2009 +0000 Indent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84247 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11891b19a322b2bf91180b7be3d322a280af5f8c Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 16 05:33:58 2009 +0000 Add comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84246 91177308-0d34-0410-b5e6-96231b3b80d8 commit e7a6705ab48692b1c34be80322bc4846bd3c2a74 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 16 05:18:39 2009 +0000 80 column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84244 91177308-0d34-0410-b5e6-96231b3b80d8 commit 05538f12cafe7defa2e94364b8f0efba3ace7483 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 16 03:58:44 2009 +0000 Fix more NEON instruction encodings. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84243 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60a6b65b8c1d4ce983ff3e8813fb5b6d841a947d Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 16 02:13:51 2009 +0000 Add half precision floating point support (float16) to APFloat, patch by Peter Johnson! (PR5195) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84239 91177308-0d34-0410-b5e6-96231b3b80d8 commit 814d6c1a619c09ce2f14ce63a056caad815d515d Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 16 02:06:30 2009 +0000 add haiku support, patch by Paul Davey! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84238 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ea11530adf5179347449057cd5dabfde6e15bcc Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 01:58:23 2009 +0000 MC: Set symbol values in MachO MCStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84236 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9a37ec3deab603bd7691b56104887cb6de8bb22 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 01:58:15 2009 +0000 Minor formatting tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84235 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4e5c1b69df607d4894e005a357d0c90a86aeabc5 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 01:58:03 2009 +0000 MC: Switch assembler API to using MCExpr instead of MCValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84234 91177308-0d34-0410-b5e6-96231b3b80d8 commit 123febf23cf84ced76a714912c4ad4c16712ee9f Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 01:57:52 2009 +0000 MC: Remove unneeded context argument to MCExpr::Evaluate*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84233 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9ce249c9b86d74dec723948d70f533194e750807 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 01:57:39 2009 +0000 MC: Tweak variable assignment diagnostics, and make reassignment of non-absolute variables and symbols invalid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84232 91177308-0d34-0410-b5e6-96231b3b80d8 commit 86cd1e91b877072006f660b7a8baaa96c4e5597a Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 01:34:54 2009 +0000 MC: When parsing a variable reference, substitute absolute variables immediately since they are allowed to be redefined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84230 91177308-0d34-0410-b5e6-96231b3b80d8 commit e824b0813023c66cc8b4cd7c6cf4d7623750f779 Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 01:33:57 2009 +0000 MC: Move assembler variable values from MCContext to MCSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84229 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ad36277631403be640bf9fb0fad79ce7e1f262a Author: Daniel Dunbar <daniel@zuster.org> Date: Fri Oct 16 01:33:11 2009 +0000 MC: Switch MCContext value table to storing MCExprs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84228 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ae95c36f52cdc38b9e68c0db0115fa286657f4c Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 16 00:33:09 2009 +0000 When checking aliases between phi sources and V2, we know the sources are not themselves phi nodes. However, V2 may be. Call aliasCheck with V2 first to potentially eliminate a std::swap call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84226 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8ab1f273514d6d87fa421c9bc8fc819615707dbf Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 15 23:12:05 2009 +0000 Revert svn r80498 and replace it with a different solution. The only problem I can see with the original code was that I forgot that this runs after type legalization and hence the result type will always be i32. (Custom legalization of EXTRACT_VECTOR_ELT is only enabled for vector types with 8- and 16-bit elements.) Regarding the FIXME comment: any information about sign and zero-extension should be captured by separate extension operations. The DAG combiner should handle those to produce either VGETLANEu or VGETLANEs, and that seems to be working now. If there are cases that we're missing, let me know. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84218 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5fcb1d9b141f0d99023b2f804aa82830ba3b30c Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Oct 15 22:36:18 2009 +0000 Dllexport stuff cleanup: 1. Emit external function type information for all COFF targets since it's a feature of object format 2. Emit linker directives only for cygming (since this is ld-specific stuff) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84214 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28d7ecb80c7a6a39039e73f1f3aa8ad91bf05bd3 Author: Sandeep Patel <deeppatel1987@gmail.com> Date: Thu Oct 15 22:25:32 2009 +0000 Branches must be the last instruction in a Thumb2 IT block. Approved by Evan Cheng. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84212 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85f30d7362b1e8543f1988d02548e6f00949c3fe Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 15 21:57:47 2009 +0000 Fix encoding bits for N3VLInt3_QHS multiclass with 8-bit elements. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84206 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6e22392e070a3159fe844aefedbdaad6973e423 Author: Kevin Enderby <enderby@apple.com> Date: Thu Oct 15 21:42:45 2009 +0000 Fix ARM memory operand parsing of post indexing with just a base register, that is just "[Rn]" and no tailing comma with an offset, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84205 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bfd59f06e8d1e8242d8775fe4e15a792394c698 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 15 20:49:47 2009 +0000 Fix a potential performance problem in placing ARM constant pools. In the case where there are no good places to put constants and we fall back upon inserting unconditional branches to make new blocks, allow all constant pool references in range of those blocks to put constants there, even if that means resetting the "high water marks" for those references. This will still terminate because you can't keep splitting blocks forever, and in the bad cases where we have to split blocks, it is important to avoid splitting more than necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84202 91177308-0d34-0410-b5e6-96231b3b80d8 commit 804b26d218ceff164c578c1fdbf8c2a14d52aaf8 Author: Kevin Enderby <enderby@apple.com> Date: Thu Oct 15 20:48:48 2009 +0000 More bits of the ARM target assembler for llvm-mc, code added to parse labels as expressions, code for parsing a few arm specific directives (still needs the MCStreamer calls for these). Some clean up of the operand parsing code and adding some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84201 91177308-0d34-0410-b5e6-96231b3b80d8 commit c70e2907ad8de87b0c1b3756632ac685a927d61e Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Oct 15 20:23:21 2009 +0000 Remove X86Subtarget::IsLinux. It's no longer being used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84200 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8905891e04393b45d9d1857f379027b7ce0d0324 Author: Victor Hernandez <vhernandez@apple.com> Date: Thu Oct 15 20:14:52 2009 +0000 Fix bug where array malloc with unexpected computation of the size argument resulted in MallocHelper identifying the malloc as a non-array malloc. This broke GlobalOpt's optimization of stores of mallocs to global variables. The fix is to classify malloc's into 3 categories: 1. non-array mallocs 2. array mallocs whose array size can be determined 3. mallocs that cannot be determined to be of type 1 or 2 and cannot be optimized getMallocArraySize() returns NULL for category 3, and all users of this function must avoid their malloc optimization if this function returns NULL. Eventually, currently unexpected codegen for computing the malloc's size argument will be supported in isArrayMalloc() and getMallocArraySize(), extending malloc optimizations to those examples. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84199 91177308-0d34-0410-b5e6-96231b3b80d8 commit e62d85d3b7616d5d48dce3683e755eadd5ccb78f Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Oct 15 19:46:34 2009 +0000 Add files Sanjiv forgot. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84196 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac2620eaebfccc759fbd341cfa5cfda563b7a71d Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Thu Oct 15 19:26:25 2009 +0000 Re-apply 84180 with the fixed test case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84195 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1b2cfa4be33b01c9fe32b1dcb7a9ba2298e8e25c Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Oct 15 18:50:52 2009 +0000 Move Blackfin intrinsics into the Target/Blackfin directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84194 91177308-0d34-0410-b5e6-96231b3b80d8 commit 75dbdd10525ae7cb7c2f16ecc7092a667b69556f Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Oct 15 18:50:03 2009 +0000 Report errors correctly for unselected target intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84193 91177308-0d34-0410-b5e6-96231b3b80d8 commit e33a1faef145f2b87ecb308b08245fb6e5fb119d Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Oct 15 18:49:26 2009 +0000 Clean up TargetIntrinsicInfo API. Add pure virtual methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84192 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8ecbbda5f6305de7d163d4bbb453f7a0c13814f Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Oct 15 18:48:58 2009 +0000 Add missing break statements! Thanks to Duncan Sands for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84191 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0b820977c50aba1a967ee0748b687a598166e3b Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Thu Oct 15 18:48:47 2009 +0000 Tablegen target intrinsics from the target main .td file. Fix pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84190 91177308-0d34-0410-b5e6-96231b3b80d8 commit a0d1f50857f0c1fe106159d0333db80c8e038c20 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Thu Oct 15 16:49:16 2009 +0000 Disable another unittest that doesn't work on arm and ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84186 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0522c9e121aafb968248ab057fc722d00d727e45 Author: Daniel Dunbar <daniel@zuster.org> Date: Thu Oct 15 15:02:14 2009 +0000 Revert "Complete Rewrite of AsmPrinter, TargetObjectFile based on new PIC16Section class", it breaks globals.ll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84184 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c138172ed03d189bd006f80aedc51875958d662 Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Thu Oct 15 10:10:43 2009 +0000 Complete Rewrite of AsmPrinter, TargetObjectFile based on new PIC16Section class derived from MCSection. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84180 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89e8a22aa6899efce0b56f864ce6cde83e12a36a Author: Sanjiv Gupta <sanjiv.gupta@microchip.com> Date: Thu Oct 15 09:48:25 2009 +0000 Few changes to comply with new DebugInfo Metadata representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84179 91177308-0d34-0410-b5e6-96231b3b80d8 commit f6fb71472108d47156409bd5c87f91203688e2d4 Author: Duncan Sands <baldrick@free.fr> Date: Thu Oct 15 08:17:44 2009 +0000 The gcc plugin is now called dragonegg.so and no longer llvm.so. Pointed out by Gabor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84177 91177308-0d34-0410-b5e6-96231b3b80d8 commit b42a8b3a5647931071b48055a1278610eb9b7682 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Oct 15 07:11:24 2009 +0000 Teach basicaa about memcpy/memmove/memset. The length argument can be used to improve alias results if constant, and the source pointer can't be modified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84175 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00649ad5ae87a3cf23e087e2fd9c8c8ba17ec431 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Oct 15 06:12:11 2009 +0000 Teach BasicAA to use the size parameter of the memory use marker intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84174 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57d88c38edb3667eb54c26571bcee5d57ae8ef12 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 15 05:52:29 2009 +0000 Be smarter about reusing constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84173 91177308-0d34-0410-b5e6-96231b3b80d8 commit a9cdce8ba7928ac8a5176243fbf847415130f644 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 15 05:10:36 2009 +0000 Fix another problem with ARM constant pools. Radar 7303551. When ARMConstantIslandPass cannot find any good locations (i.e., "water") to place constants, it falls back to inserting unconditional branches to make a place to put them. My recent change exposed a problem in this area. We may sometimes append to the same block more than one unconditional branch. The symptoms of this are that the generated assembly has a branch to an undefined label and running llc with -debug will cause a seg fault. This happens more easily since my change to prevent CPEs from moving from lower to higher addresses as the algorithm iterates, but it could have happened before. The end of the block may be in range for various constant pool references, but the insertion point for new CPEs is not right at the end of the block -- it is at the end of the CPEs that have already been placed at the end of the block. The insertion point could be out of range. When that happens, the fallback code will always append another unconditional branch if the end of the block is in range. The fix is to only append an unconditional branch if the block does not already end with one. I also removed a check to see if the constant pool load instruction is at the end of the block, since that is redundant with checking if the end of the block is in-range. There is more to be done here, but I think this fixes the immediate problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84172 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4269e5fe007052e6216dd91637003c197b91fb6 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 15 04:59:28 2009 +0000 only try to fold constantexpr operands when the worklist is first populated, don't bother every time going around the main worklist. This speeds up a release-asserts opt -std-compile-opts on 403.gcc by about 4% (1.5s). It seems to speed up the most expensive instances of instcombine by ~10%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84171 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee5839b4da5f9aa3e5a2ea25b18733cd4b630e52 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 15 04:13:44 2009 +0000 don't bother calling ConstantFoldInstruction unless there is a use of the instruction (which disqualifies stores, unreachable, etc) and at least the first operand is a constant. This filters out a lot of obvious cases that can't be folded. Also, switch the IRBuilder to a TargetFolder, which tries harder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84170 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f67407416b0c020a4955c9ba5d67b92564dbfc8 Author: Nick Lewycky <nicholas@mxc.ca> Date: Thu Oct 15 00:36:35 2009 +0000 Take advantage of TargetData when available; we know that the atomic intrinsics only dereference the element they point to directly with no pointer arithmetic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84159 91177308-0d34-0410-b5e6-96231b3b80d8 commit cebc72ccbc6215b71808c2be76779ecfee77f0ee Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 15 00:36:22 2009 +0000 Make CodePlacementOpt align loops, rather than loop headers. The header is just the entry block to the loop, and it needn't be at the top of the loop in the code layout. Remove the code that suppressed loop alignment for outer loops, so that outer loops are aligned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84158 91177308-0d34-0410-b5e6-96231b3b80d8 commit d94b8ee12edef4928c7fc762e3c8a4bf7075bdd8 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 14 23:39:27 2009 +0000 When LiveVariables is adding implicit-def to model "partial dead", add the earlyclobber marker if the superreg def has it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84153 91177308-0d34-0410-b5e6-96231b3b80d8 commit b71c46ced3b6452d2d96e06b5fde59910541ccb5 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 14 23:37:31 2009 +0000 Print earlyclobber for implicit-defs as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84152 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ad23fdef67f0088e7b610a6a19149a2a1b16639 Author: Eric Christopher <echristo@apple.com> Date: Wed Oct 14 22:14:18 2009 +0000 One more iteration here and a yet better way to solve it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84150 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67d5877e544e547779e1b3349d9c8f3b56d7474a Author: Eric Christopher <echristo@apple.com> Date: Wed Oct 14 21:45:49 2009 +0000 Fix the unused argument problem here a different way - cast to void. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84147 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4897545e4e21d0dbdc788c5576f4b80071a95d8 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 14 21:43:17 2009 +0000 Fix instruction encoding bits for NEON VPADAL. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84146 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4a567357c7179b5c3c39f21d774578f362a4c033 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 14 21:40:45 2009 +0000 Remove unused variables to fix build warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84144 91177308-0d34-0410-b5e6-96231b3b80d8 commit c2febcd7aeb104f4afd876aa1526195459159f31 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 14 21:22:39 2009 +0000 Make loop not recalc getNumOperands() each time around git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84138 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd7bb43d6a6e61569368046b33fbe2d700d5bc68 Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 14 21:08:09 2009 +0000 Add support to record DbgScope as inlined scope. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84134 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ce93edf8e13e59909f6b87e8532c3961fd2c80d Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 14 21:07:11 2009 +0000 quiet compiler warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84133 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d53c631654d3a04a85738a29ecee83d200cc3c4 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 14 20:39:01 2009 +0000 Delete bogus semicolons. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84132 91177308-0d34-0410-b5e6-96231b3b80d8 commit d9921a052e234642eb7db4f77ae777123d73b62f Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 14 20:31:01 2009 +0000 Inst{11-8} for vshl should be 0b0101, not 0b1111. Refs: A7-17 & A8-750. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84131 91177308-0d34-0410-b5e6-96231b3b80d8 commit 932740916d76b3253cf710e424abf73e525ee5cd Author: Eric Christopher <echristo@apple.com> Date: Wed Oct 14 20:28:33 2009 +0000 Remove a bunch of unused arguments from functions, silencing a warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84130 91177308-0d34-0410-b5e6-96231b3b80d8 commit ede4ff04cde85ad8ed196f0bb6386734c8232f4a Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Oct 14 20:04:41 2009 +0000 The ARM and PowerPC jits are broken in this regard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84128 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3d726a12e19ecf7985a485fc72f3097091b57fa Author: Duncan Sands <baldrick@free.fr> Date: Wed Oct 14 20:01:39 2009 +0000 There seems to be no reason for opt's -S option to be hidden. Make it visible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84127 91177308-0d34-0410-b5e6-96231b3b80d8 commit b289010eda885d07a3d224243e0e7478fa072f5e Author: Nick Lewycky <nicholas@mxc.ca> Date: Wed Oct 14 19:02:13 2009 +0000 Make use of the result of the loads even though that means adding -instcombine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84125 91177308-0d34-0410-b5e6-96231b3b80d8 commit cfb46c5a762f118fbe73fb50eec5be56a1fcd247 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 14 19:00:24 2009 +0000 Set instruction encoding bits 4 and 7 for ARM register-register and register-shifted-register instructions. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84124 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4ff1a619f2a68222def8d30406ceb9f768ad410 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 14 18:32:29 2009 +0000 Refactor code to select NEON VST intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84122 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9d08b8dc372ef97faa5f5e47863f06a3ba8f74d Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 14 17:29:00 2009 +0000 Use isVoidTy() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84118 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ccc85a153111ff9f03ec36b0f78ffdd27e3ff09 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 14 17:28:52 2009 +0000 Refactor code to select NEON VLD intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84117 91177308-0d34-0410-b5e6-96231b3b80d8 commit ad89036441492939570bf8972f93b00b6a358264 Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 14 17:02:49 2009 +0000 Add copyMD to copy metadata from one instruction to another instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84113 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10c6f85c9ba78275c9f6de2ac9ea136200a09d10 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 14 16:46:45 2009 +0000 More refactoring. NEON vst lane intrinsics can share almost all the code for vld lane intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84110 91177308-0d34-0410-b5e6-96231b3b80d8 commit 98e68ba7ff1b12e185eb7fa677683cc00e1e97e1 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 14 16:19:03 2009 +0000 Refactor code for selecting NEON load lane intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84109 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4205cfe3fe4c86814b91248d25f0cf01ecf642b4 Author: Duncan Sands <baldrick@free.fr> Date: Wed Oct 14 16:11:37 2009 +0000 I don't see any point in having both eh.selector.i32 and eh.selector.i64, so get rid of eh.selector.i64 and rename eh.selector.i32 to eh.selector. Likewise for eh.typeid.for. This aligns us with gcc, which always uses a 32 bit value for the selector on all platforms. My understanding is that the register allocator used to assert if the selector intrinsic size didn't match the pointer size, and this was the reason for introducing the two variants. However my testing shows that this is no longer the case (I fixed some bugs in selector lowering yesterday, and some more today in the fastisel path; these might have caused the original problems). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84106 91177308-0d34-0410-b5e6-96231b3b80d8 commit f27a0438aa24fb0ab2e5095fc22525d7e2933033 Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 14 15:21:58 2009 +0000 make instcombine's instruction sinking more aggressive in the presence of PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84103 91177308-0d34-0410-b5e6-96231b3b80d8 commit f693477fe44829276ad0b270fb8856228c6313d8 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Wed Oct 14 11:12:33 2009 +0000 Undo pthread patch from rev. 83930 & 83823. Credit to Paul Davey. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84083 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8407f6b1defd05a0adf914c15c33a273e22819c6 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 14 06:46:26 2009 +0000 Clear VisitedPHIs after use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84080 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9d17125f7a6ac8eb8e679b1fd7c14a0b539d15f9 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 14 06:41:49 2009 +0000 Another BasicAA fix. If a value does not alias a GEP's base pointer, then it cannot alias the GEP. GEP pointer alias rule states this clearly: A pointer value formed from a getelementptr instruction is associated with the addresses associated with the first operand of the getelementptr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84079 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8e004f69769d7fc77faabbb9f67a3e6600c6d1f1 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Wed Oct 14 05:55:03 2009 +0000 AuroraUX needs special Solaris system header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84076 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7292a4ed9741e2456a41808e0dffb57f2f6addad Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 14 05:22:03 2009 +0000 More code clean up based on patch feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84074 91177308-0d34-0410-b5e6-96231b3b80d8 commit f365008a16f295572515fdab85e50a5515313cab Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 14 05:05:02 2009 +0000 Change VisitedPHIs into an instance variable that's freed by each alias() call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84072 91177308-0d34-0410-b5e6-96231b3b80d8 commit 48baab84c72b491fc64ab18b482a135e847ffde8 Author: Evan Cheng <evan.cheng@apple.com> Date: Wed Oct 14 01:45:10 2009 +0000 Replace test with a simpler hand crafted one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84069 91177308-0d34-0410-b5e6-96231b3b80d8 commit a635c3bfa9c12c34afdcbf178c4cc7c9fa82dd0c Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Wed Oct 14 00:44:50 2009 +0000 Provide AuroraUX triple support in configure. Credit to - Paul Davey. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84067 91177308-0d34-0410-b5e6-96231b3b80d8 commit be13ae5c35e4956241f95efabf864e19e53dbdbd Author: Dale Johannesen <dalej@apple.com> Date: Wed Oct 14 00:34:56 2009 +0000 Use llvmgxx for C++ test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84066 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8d6ff0f9d29c7043545bb44c7783f57db6849dbe Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 14 00:28:48 2009 +0000 Fix this test to account for a movl $0 being emitted as an xor now, and convert it to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84065 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b1329794aba9952e3bd68eceb4f501c11cda72d Author: Dale Johannesen <dalej@apple.com> Date: Wed Oct 14 00:10:54 2009 +0000 Testcases for msasm bit (llvm-gcc 84062). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84063 91177308-0d34-0410-b5e6-96231b3b80d8 commit f20cb16e938f29db7c1ab8579efe470db1d724c2 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 14 00:08:59 2009 +0000 Make isSafeToClobberEFLAGS more aggressive. Teach it to scan backwards (for uses marked kill and defs marked dead) a few instructions in addition to forwards. Also, increase the maximum number of instructions to scan, as it appears to help in a fair number of cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84061 91177308-0d34-0410-b5e6-96231b3b80d8 commit d32578ed8fc15abf79d37b9b1f62f0c8fa7ce01d Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 14 00:02:01 2009 +0000 This remat entry is basically done. There are hooks to allow targets to remat non-load instructions as loads, and the remat code now uses the UnmodeledSideEffects flags, MachineMemOperands, and similar things to decide which instructions are valid for rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84060 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60547e8e863ea6b31029e1d2875cd947a320f9d0 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 23:58:05 2009 +0000 Add a few README.txt items. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84059 91177308-0d34-0410-b5e6-96231b3b80d8 commit 815008ee195e15946d9754a8f71fc2a8d194c9c5 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 23:36:36 2009 +0000 Fix resetCachedCostInfo to reset all of the cost information, instead of just the NumBlocks field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84056 91177308-0d34-0410-b5e6-96231b3b80d8 commit 404500c0966b24922b62c6718713afdee5b88b7e Author: Kevin Enderby <enderby@apple.com> Date: Tue Oct 13 23:33:38 2009 +0000 Correct comment about ARM immediates using '#' not '$' and TODO for modifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84055 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc1df34dea6dae98d823f9cf95afbb364201ec97 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 23:28:53 2009 +0000 s/DebugLoc.CompileUnit/DebugLoc.Scope/g s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84054 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3829c8912580d00aaf3c07661de34e4894983db Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 22:56:32 2009 +0000 Check void type before using RAUWd. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84049 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31a5af59b207ac90e75ddd830ff6c2e916b4a7ae Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 13 22:29:24 2009 +0000 More Neon clean-up: avoid the need for custom-lowering vld/st-lane intrinsics by creating TargetConstants during instruction selection instead of during legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84042 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d4c8b383ab4e089c9662cd3f6a0afdb144ecf6f Author: Kevin Enderby <enderby@apple.com> Date: Tue Oct 13 22:19:02 2009 +0000 More bits of the ARM target assembler for llvm-mc to parse immediates. Also fixed a couple of coding style things that crept in. And added more to the temporary hacked up ARMAsmParser::MatchInstruction() method for testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84040 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c11ed7fff8d07010e27d0374a2b9caa8fe95a54 Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Oct 13 22:02:20 2009 +0000 Teach basic AA about PHI nodes. If all operands of a phi NoAlias another value than it's safe to declare the PHI NoAlias the value. Ditto for MustAlias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84038 91177308-0d34-0410-b5e6-96231b3b80d8 commit 648950ff0e202e9ceb550c7c45406378093526f4 Author: Dale Johannesen <dalej@apple.com> Date: Tue Oct 13 21:56:55 2009 +0000 Documentation for the new msasm flag, which is no worse than the rest of the asm documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84037 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5f742e55de300e938ae76643a8e640913fc7a40e Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 13 21:55:24 2009 +0000 NEON VLD/VST are now fully implemented. For operations that expand to multiple instructions, the expansion is done during selection so there is no need to do anything special during legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84036 91177308-0d34-0410-b5e6-96231b3b80d8 commit edad36f13386447e75436d250c8a06fecef7535d Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 21:41:20 2009 +0000 Do not check use_empty() before replaceAllUsesWith(). This gives ValueHandles a chance to get properly updated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84033 91177308-0d34-0410-b5e6-96231b3b80d8 commit f905746744a1a3802e530321aa028fe25fd76d9e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 13 21:32:57 2009 +0000 Keep track of stubs that are created. This fixes PR5162 and probably PR4822 and 4406. Patch by Nick Lewycky! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84032 91177308-0d34-0410-b5e6-96231b3b80d8 commit 07087113c591107ec2b39346a39c160a8e5f1170 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Tue Oct 13 21:17:00 2009 +0000 Add is_same type trait git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84029 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd7bd93b11d18bc0bcb64e8ee5261c5724b25614 Author: Duncan Sands <baldrick@free.fr> Date: Tue Oct 13 21:04:12 2009 +0000 Introduce new convenience methods for sign extending or truncating an SDValue (depending on whether the target type is bigger or smaller than the value's type); or zero extending or truncating it. Use it in a few places (this seems to be a popular operation, but I only modified cases of it in SelectionDAGBuild). In particular, the eh_selector lowering was doing this wrong due to a repeated rather than inverted test, fixed with this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84027 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5ad986e1fb4598bf9a3a4298152da7b2b63ae2a6 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 20:56:38 2009 +0000 Optimizer may remove debug info. This test checks debug info for include headers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84025 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6855b2222d78ecf39a0855bec858c8c395e04538 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 13 20:50:28 2009 +0000 Revise ARM inline assembly memory operands to require the memory address to be in a register. The previous use of ARM address mode 2 was completely arbitrary and inappropriate for Thumb. Radar 7137468. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84022 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2477bfe9a3bdbc1474034214d1cd7ffb014024c8 Author: Dale Johannesen <dalej@apple.com> Date: Tue Oct 13 20:46:56 2009 +0000 Add an "msasm" flag to inline asm as suggested in PR 5125. A little ugliness is accepted to keep the binary file format compatible. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84020 91177308-0d34-0410-b5e6-96231b3b80d8 commit 68ca7fcda8b8b00e70e08b9e34fd7df1bd82ffd3 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 20:45:18 2009 +0000 These tests now pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84019 91177308-0d34-0410-b5e6-96231b3b80d8 commit f7a7fc9585a5dc3afa894b6e5bdfd26fd17eca38 Author: Sandeep Patel <deeppatel1987@gmail.com> Date: Tue Oct 13 20:25:58 2009 +0000 Fix method name in comment, per Bob Wilson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84017 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9b9295d0601de7ee7673efc241a17c42873d08e Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 20:12:23 2009 +0000 Use the new CodeMetrics class to compute code size instead of manually counting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84016 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cb17acf4c2d135199764894ec788fff8f0864b5 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 20:10:10 2009 +0000 Compute a full cost value even when a setjmp call is found. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84015 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41c6d59aec5f3cebb414f951bb2c948aab984778 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 19:58:07 2009 +0000 Split code not specific to Function inlining out into a separate class, named CodeMetrics. Move it to be a non-nested class. Rename RegionInfo back to FunctionInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84013 91177308-0d34-0410-b5e6-96231b3b80d8 commit 958921a663e7b11ad8dcb246924864548d4810e7 Author: David Goodwin <david_goodwin@apple.com> Date: Tue Oct 13 19:16:03 2009 +0000 Add debugging output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84011 91177308-0d34-0410-b5e6-96231b3b80d8 commit 28aff231cfcbf047bcf618c7fb371ac4544ee9f8 Author: Ted Kremenek <kremenek@apple.com> Date: Tue Oct 13 19:08:10 2009 +0000 Provide a mode for ImmutableMap/ImmutableSet to not automatically canonicalize the internal functional AVL trees. This should speedup clients that use ImmutableMap/ImmutableSet but don't require fast comparisons of maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84010 91177308-0d34-0410-b5e6-96231b3b80d8 commit bb4648a936134616f3bef1097520afd80b496970 Author: Sandeep Patel <deeppatel1987@gmail.com> Date: Tue Oct 13 18:59:48 2009 +0000 Add ARMv6T2 SBFX/UBFX instructions. Approved by Anton Korobeynikov. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84009 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4d7aa76bb002aa044467d2c346f3e7435d7b43b Author: Ted Kremenek <kremenek@apple.com> Date: Tue Oct 13 18:57:27 2009 +0000 Update CMake file (lexically order files). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84008 91177308-0d34-0410-b5e6-96231b3b80d8 commit 872bc634b0da92ae0db414daa52a6c221dc71d8a Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 18:51:28 2009 +0000 Do not write empty METADATA_ATTACHMENT record. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84006 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3314e600f24362268b08833d60977509ef4e5a5b Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 18:51:03 2009 +0000 Remove unnecessary assert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84004 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91b676c7280dd85581610d1b0cf57676d977f7e2 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Tue Oct 13 18:50:54 2009 +0000 Update the other CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84003 91177308-0d34-0410-b5e6-96231b3b80d8 commit 88900a0acbfb3cd8cb39475001117ff88a5ea8f5 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 18:49:55 2009 +0000 Parse GEP with attached custom metadata. This happens during libprofile_rt.bca build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84002 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdcd492c1d47bff46fbf2b60c29fdcec939441aa Author: Ted Kremenek <kremenek@apple.com> Date: Tue Oct 13 18:48:07 2009 +0000 Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84001 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd217c030bea3858468768e46c5846115c3186dd Author: Evan Cheng <evan.cheng@apple.com> Date: Tue Oct 13 18:42:04 2009 +0000 Refactor some code. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84000 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0cb01e1e36b59295a907a07b4b40539e87c28069 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 18:37:20 2009 +0000 Commit the removal of this file, which is now moved to lib/Analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83999 91177308-0d34-0410-b5e6-96231b3b80d8 commit fad07189d3c7d121a1dc1473211096a76197177d Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 18:30:07 2009 +0000 Move the InlineCost code from Transforms/Utils to Analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83998 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c8728645b94500b5197da9f2413528becc11a02 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 18:24:11 2009 +0000 Start refactoring the inline cost estimation code so that it can be used for purposes other than inlining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83997 91177308-0d34-0410-b5e6-96231b3b80d8 commit b8a7d3e1a68fce4b087e39e67176fe3c36039bd9 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 18:13:05 2009 +0000 change simplifycfg to not duplicate 'unwind' instructions. Hopefully this will increase the likelihood of common code getting sunk towards the unwind. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83996 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5afeae814f97bea55783376496dc92afaf65f3e0 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 18:10:05 2009 +0000 convert to filecheck git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83995 91177308-0d34-0410-b5e6-96231b3b80d8 commit c5e16eec73040a25df9f8d48ef46eb2884aff798 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 18:08:21 2009 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83994 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f542bfbc4da1bfffed2fcd42c87dedd62780450 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 17:50:43 2009 +0000 Make LoopUnswitch's cost estimation count Instructions, rather than BasicBlocks, so that it doesn't blindly procede in the presence of large individual BasicBlocks. This addresses a class of code-size expansion problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83992 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0b6ea7aacd105e7fbdf5edc18446487cfd03039c Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 17:48:04 2009 +0000 rename ReleaseNotes-2.6.html -> ReleaseNotes.html git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83990 91177308-0d34-0410-b5e6-96231b3b80d8 commit 385cf88d65178e344e1e37468516d4bfeede5131 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 17:47:06 2009 +0000 add Zero git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83988 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2be240354e170f362ec70ba0aa68e1f070d71f9c Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 13 17:42:08 2009 +0000 Make the ExecutionEngine automatically remove global mappings on when their GlobalValue is destroyed. Function destruction still leaks machine code and can crash on leaked stubs, but this is some progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83987 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0bcdc3f719e79dcd849918aa1ee1712801cd8078 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 17:39:29 2009 +0000 don't use dead loads as tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83985 91177308-0d34-0410-b5e6-96231b3b80d8 commit 107176143cbbb5f5546ddc2a16c6a88801130bf0 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 17:35:35 2009 +0000 "there is not any instruction with attached debug info in this module" does not mean "there is no debug info in this module". :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83984 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce7c9ebddf4e1742e71087fae5abf239061475f2 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 13 17:35:30 2009 +0000 Add some ARM instruction encoding bits. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83983 91177308-0d34-0410-b5e6-96231b3b80d8 commit f0976f41d9100957bf1eca01436dc8546d95ee39 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 13 17:29:13 2009 +0000 Fix regression introduced by r83894. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83982 91177308-0d34-0410-b5e6-96231b3b80d8 commit 897be2a525c03c3c2331ac5ef74a2e7483434e4d Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 17:00:54 2009 +0000 Copy metadata when value is RAUW'd. It is debatable whether this is the right approach for custom metadata data in general. However, right now the only custom data user, "dbg", expects this behavior while FE is constructing llvm IR with debug info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83977 91177308-0d34-0410-b5e6-96231b3b80d8 commit b89ac779620ca5fe55c2854dd28fa3b295fb6b69 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 16:32:09 2009 +0000 Disable this test for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83975 91177308-0d34-0410-b5e6-96231b3b80d8 commit b072c755593e95a598b683c12be63c359e274c02 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 13 15:27:23 2009 +0000 Fix a tab. Thanks to Johnny Chen for pointing it out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83973 91177308-0d34-0410-b5e6-96231b3b80d8 commit aa02f165570eee052008e8bd8d706f454ee277b6 Author: Duncan Sands <baldrick@free.fr> Date: Tue Oct 13 09:24:02 2009 +0000 The eh.exception intrinsic only reads from memory, it doesn't write to it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83963 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12e4ccf0ce8e66b23104171e35a4a94c09c94cef Author: Duncan Sands <baldrick@free.fr> Date: Tue Oct 13 09:23:11 2009 +0000 Pacify the compiler (signed with unsigned comparison) by making these constants unsigned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83962 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23f49980e325ac4e698ebc0ed3a0a7e3e298941e Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Oct 13 07:57:33 2009 +0000 Force memory use markers to have a ConstantInt for the size argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83960 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc461aee7449bb8010b6f4946d88afd8e2b05e3e Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Oct 13 07:48:38 2009 +0000 Teach BasicAA a little something about the atomic intrinsics: they can only modify through the pointer they're given. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83959 91177308-0d34-0410-b5e6-96231b3b80d8 commit c888d3594875d75fc81e4cd3b6630b4b88f8054e Author: Nick Lewycky <nicholas@mxc.ca> Date: Tue Oct 13 07:03:23 2009 +0000 Add new "memory use marker" intrinsics. These indicate lifetimes and invariant sections of memory objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83953 91177308-0d34-0410-b5e6-96231b3b80d8 commit c74255d3943b40a2dc36226750cfedf6f4482c72 Author: Daniel Dunbar <daniel@zuster.org> Date: Tue Oct 13 06:47:08 2009 +0000 Fix a -Asserts warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83950 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1b6f5af69b22ab3a9a40458edc4a4dc9dc33c18 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 05:33:26 2009 +0000 remove dead header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83943 91177308-0d34-0410-b5e6-96231b3b80d8 commit d68d06d66398db5439efd49c3a8a44daaebe1d91 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 04:27:02 2009 +0000 remove notcast, it is now dead! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83938 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe2b3c30a3709b51950225038e289b9eacc35a29 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 13 04:25:24 2009 +0000 remove two old and nearly useless tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83937 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c04f26c3e682a28878f7eb58e324892aaee875a Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 13 01:51:29 2009 +0000 XFAIL these tests for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83933 91177308-0d34-0410-b5e6-96231b3b80d8 commit bbf0a780e9c94afc562bafbb40ea0afd6377000f Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 13 01:49:02 2009 +0000 Add a ceilLogBase2 function to APInt. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83932 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1fc5fb659c7acd0415e6f7b02393179303071982 Author: Victor Hernandez <vhernandez@apple.com> Date: Tue Oct 13 01:42:53 2009 +0000 Memory dependence analysis was incorrectly stopping to scan for stores to a pointer at bitcast uses of a malloc call. It should continue scanning until the malloc call, and this patch fixes that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83931 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8cd10be5c1c09b7aa2272e00571540c082834c4a Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Tue Oct 13 01:01:38 2009 +0000 Regenerate configure for rev. 83823 putback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83930 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7e02bc626b03039d40d461df1bb5c3c322a74fef Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 12 23:22:09 2009 +0000 Enable "debug info attached to an instruction" mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83925 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6096157c93259c3484c250b3541e9851dfc55da4 Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 12 23:11:24 2009 +0000 Find enclosing subprogram info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83922 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cd02c5e750dea8637fe300b27a0bf14a53e22bd Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 12 23:10:55 2009 +0000 Set default location for a function if it is not set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83921 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7bbbc7d65719ff18592a21cb2246e7fa68e213d4 Author: Kevin Enderby <enderby@apple.com> Date: Mon Oct 12 22:51:49 2009 +0000 Fix two warnings about unused variables that are only used in assert() calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83917 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1449b8594c0a82f80d198ddadda5d23795cad922 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 12 22:49:05 2009 +0000 Delete a comment that makes no sense to me. The statement that moving a CPE before its reference is only supported on ARM has not been true for a while. In fact, until recently, that was only supported for Thumb. Besides that, CPEs are always a multiple of 4 bytes in size, so inserting a CPE should have no effect on Thumb alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83916 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5286ef78bba77aed8e21685baa8567e63316937 Author: Kevin Enderby <enderby@apple.com> Date: Mon Oct 12 22:39:54 2009 +0000 Fix a problem in the code where ARMAsmParser::ParseShift() second argument should have been a pointer to a reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83915 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dab5a226a623e256b6df9bef3634fa371b63bf6 Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Oct 12 22:25:23 2009 +0000 Make licm debug message readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83908 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96b37b64f271bec34a6a650fa875acff17cb53d5 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 12 21:39:43 2009 +0000 Change CreateNewWater method to return NewMBB by reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83905 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5001730bd4aa9b23daa7861ea3ef08c35e77777 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 12 21:23:15 2009 +0000 Last week, ARMConstantIslandPass was failing to converge for the MultiSource/Benchmarks/MiBench/automotive-susan test. The failure has since been masked by an unrelated change (just randomly), so I don't have a testcase for this now. Radar 7291928. The situation where this happened is that a constant pool entry (CPE) was placed at a lower address than the load that referenced it. There were in fact 2 CPEs placed at adjacent addresses and referenced by 2 loads that were close together in the code. The distance from the loads to the CPEs was right at the limit of what they could handle, so that only one of the CPEs could be placed within range. On every iteration, the first CPE was found to be out of range, causing a new CPE to be inserted. The second CPE had been in range but the newly inserted entry pushed it too far away. Thus the second CPE was also replaced by a new entry, which in turn pushed the first CPE out of range. Etc. Judging from some comments in the code, the initial implementation of this pass did not support CPEs placed _before_ their references. In the case where the CPE is placed at a higher address, the key to making the algorithm terminate is that new CPEs are only inserted at the end of a group of adjacent CPEs. This is implemented by removing a basic block from the "WaterList" once it has been used, and then adding the newly inserted CPE block to the list so that the next insertion will come after it. This avoids the ping-pong effect where CPEs are repeatedly moved to the beginning of a group of adjacent CPEs. This does not work when going backwards, however, because the entries at the end of an adjacent group of CPEs are closer than the CPEs earlier in the group. To make this pass terminate, we need to maintain a property that changes can only happen in some sort of monotonic fashion. The fix used here is to require that the CPE for a particular constant pool load can only move to lower addresses. This is a very simple change to the code and should not cause any significant degradation in the results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83902 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31d9eb561b52a70ac181ad610115e35ab86298dc Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 12 20:45:53 2009 +0000 Another minor clean-up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83897 91177308-0d34-0410-b5e6-96231b3b80d8 commit df5d0b3525506c916e4bb14fc6288ab43415f940 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 12 20:42:35 2009 +0000 allow this testcase to pass with recent changes. The test hasn't been producing any stores at all for a long time, but ".store." was in some IR instruction names until recently. This removal caused the test to start failing. Just make it reject any stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83895 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8454df9db700b63793f4f73f3df6e69d4a54572a Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 12 20:37:23 2009 +0000 Remove redundant parameter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83894 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93312097c5c22dac9e6fa9b2e63ab29708f51ba0 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 12 19:04:03 2009 +0000 Use early exit to reduce indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83874 91177308-0d34-0410-b5e6-96231b3b80d8 commit 688468aa23fe332955436b2acd062fd9bf289f8d Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 12 19:01:12 2009 +0000 Change to return a value by reference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83873 91177308-0d34-0410-b5e6-96231b3b80d8 commit b15413cce529d24d6ae4e52116eac7c56f042023 Author: Bob Wilson <bob.wilson@apple.com> Date: Mon Oct 12 18:52:13 2009 +0000 Add a typedef for an iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83872 91177308-0d34-0410-b5e6-96231b3b80d8 commit f215bb209351a7fa2244cc691ef214b6beaa757e Author: Dale Johannesen <dalej@apple.com> Date: Mon Oct 12 18:49:00 2009 +0000 Revert the kludge in 76703. I got a clean bootstrap of FSF-style PPC, so there is some reason to believe the original bug (which was never analyzed) has been fixed, probably by 82266. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83871 91177308-0d34-0410-b5e6-96231b3b80d8 commit b58870629223e655f015b90de48154b7b837259b Author: Dale Johannesen <dalej@apple.com> Date: Mon Oct 12 18:45:32 2009 +0000 Fix warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83870 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f216b73b69538d39ab7f84c6a0816270bc7f4dd Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 12 18:33:33 2009 +0000 fix validation error pointed out by gabor (and the w3c :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83868 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6608a010f11207afbe01650d9dffa30783b920ec Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 12 18:12:47 2009 +0000 Improve bugpoint doc, patch by Timo Lindfors! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83865 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b3c779a1dfd96ccced1d0e8c6e3f95519ab23cf Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Oct 12 17:43:32 2009 +0000 Fix http://llvm.org/PR5160, to let CallbackVHs modify other ValueHandles on the same Value without breaking things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83861 91177308-0d34-0410-b5e6-96231b3b80d8 commit aee4b899c056aa56539c4ed530e8d7b05da874c3 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Oct 12 16:50:25 2009 +0000 another bunch of <tt>s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83860 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69a9b168a959772b096ef8f7ad53992ec2c663d9 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 12 16:44:10 2009 +0000 Remove a redundant member variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83857 91177308-0d34-0410-b5e6-96231b3b80d8 commit 81be561deccf40f5f3ea1b4bda8c35c6c53cb429 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 12 16:43:44 2009 +0000 Delete some obsolete declarations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83856 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7c765f3562d346774d9988ce5a26e984c7e4da75 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Oct 12 16:40:25 2009 +0000 even more <tt>s git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83854 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c738f5ee6c48df39332389e307de1305903c8e7 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 12 16:36:12 2009 +0000 Don't forget to mark RAX as live-out of the function when arranging for it to hold the address of an sret return value, for x86-64 ABI purposes. Also, fix the test that was originally intended to test this to actually test it, using FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83853 91177308-0d34-0410-b5e6-96231b3b80d8 commit e6acc86c5d19e865476fc4926de6dbb6797ee880 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Oct 12 16:27:44 2009 +0000 more typewriter face git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83852 91177308-0d34-0410-b5e6-96231b3b80d8 commit 55646ef432b266fb169dfec13d0d7ae0d47b5224 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Oct 12 16:13:36 2009 +0000 fix three validation errors, I leave the fourth to sabre :-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83851 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51a2dab0f36873ec09e8b8949dff285af7a0eb16 Author: Gabor Greif <ggreif@gmail.com> Date: Mon Oct 12 16:08:52 2009 +0000 set some options in typewriter font git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83850 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fb9d7e8d4fe8ec08d086e07c83c8c5952cf071a Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Oct 12 14:46:08 2009 +0000 Documentation: Perform automated correction of common typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83849 91177308-0d34-0410-b5e6-96231b3b80d8 commit b26e279e163669d34e45697b2ebe0e1003b7d8f8 Author: Edwin Török <edwintorok@gmail.com> Date: Mon Oct 12 13:37:29 2009 +0000 Fix typo, patch from Timo Juhani Lindfors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83848 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c301a8de25cc35ae384b63fc4560874dd6a27fd Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Mon Oct 12 09:31:55 2009 +0000 Eliminate some redundant llvm-as calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83837 91177308-0d34-0410-b5e6-96231b3b80d8 commit f402dc1c9976e809aec4d4e486e62496c9d92180 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 12 09:01:26 2009 +0000 Missing CHECK: lines makes test exit abnormally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83835 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56b1d0597f0f97824098a34fddfcd936fbda194b Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 12 08:51:28 2009 +0000 FileCheck not CheckFile, oops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83834 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5b320e759bf05872182af0e182a7369c1b7932c Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 12 08:46:47 2009 +0000 Convert InstCombine/call.ll to CheckFile. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83833 91177308-0d34-0410-b5e6-96231b3b80d8 commit 53966cf901cc222b47ffdcb8a6c5ffb293e1680e Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 12 07:18:14 2009 +0000 Convert the rest of the InstCombine tests from notcast to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83828 91177308-0d34-0410-b5e6-96231b3b80d8 commit fef913ffdb15b2fbbb2b7151e135eb3d7fba1ca2 Author: Nick Lewycky <nicholas@mxc.ca> Date: Mon Oct 12 06:32:42 2009 +0000 Remove this part of the test, it never actually tested anything anyways. This unbreaks make check after evocallaghan's changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83827 91177308-0d34-0410-b5e6-96231b3b80d8 commit d0e2835fda304f3250cc4433b4b53d50a072a94f Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 12 06:23:56 2009 +0000 Fix syntax error missed in converting zext.ll test. Convert 2003-11-13-ConstExprCastCall.ll to FileCheck from notcast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83826 91177308-0d34-0410-b5e6-96231b3b80d8 commit 79711e110cdba700bee125d1356c804edad847e4 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 12 06:14:06 2009 +0000 Convert InstCombine tests from notcast to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83825 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4e67c4d7b48ad44a7647ae33fac429025963387 Author: Nate Begeman <natebegeman@mac.com> Date: Mon Oct 12 05:53:58 2009 +0000 More heuristics for Combiner-AA. Still catches all important cases, but compile time penalty on gnugo, the worst case in MultiSource, is down to about 2.5% from 30% git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83824 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c24c914c9726197266242a89c899a43c852bce2 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 12 04:57:20 2009 +0000 Haiku porting patches, Credit to Paul Davey. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83823 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8935700747e6774fc1732c2608c80e533690a0f8 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 12 04:22:44 2009 +0000 Fix PR5087, patch by Jakub Staszak! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83822 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5dd66f99bc3d857188292aebead57d7251f63268 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 12 04:01:02 2009 +0000 add some more hooks to the C bindings, patch by Kenneth Uildriks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83821 91177308-0d34-0410-b5e6-96231b3b80d8 commit cddb07767225ac456e52fd730bc1de8ca0e2b9b2 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Mon Oct 12 04:00:13 2009 +0000 Make ParallelJIT pthreads linking with CMake slightly less broken git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83820 91177308-0d34-0410-b5e6-96231b3b80d8 commit 84354c70bd3d1b20ec40883c6caf06fe26c27807 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 12 04:00:11 2009 +0000 Fix LLVM CMake build system so that it may now work on Solaris and AuroraUX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83819 91177308-0d34-0410-b5e6-96231b3b80d8 commit b5663c7c1eaf8cf8fb1d857780811ea3bf2c7b58 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 12 03:58:40 2009 +0000 populate instcombine's initial worklist more carefully, causing it to visit instructions from the start of the function to the end of the function in the first path. This greatly speeds up some pathological cases (e.g. PR5150). Try #3, this time with some unneeded debug info stuff removed which was causing dead pointers to be added to the worklist. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83818 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92f8d26a987f8fa57ceacd18d0802e7010ad49df Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 23:56:08 2009 +0000 revert r83814 for now, it is making the llvm-gcc bootstrap unhappy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83817 91177308-0d34-0410-b5e6-96231b3b80d8 commit 204c64a7117240e986fc265224e3209455247698 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 23:19:44 2009 +0000 pic16 uses 16 bit pointers, but is 8 bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83815 91177308-0d34-0410-b5e6-96231b3b80d8 commit fab98956ee8bb06aa5357ac0364ed15e949f4d7a Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 23:17:43 2009 +0000 populate instcombine's initial worklist more carefully, causing it to visit instructions from the start of the function to the end of the function in the first path. This greatly speeds up some pathological cases (e.g. PR5150). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83814 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6018f7a47052775c969148546ffde541b69e80ad Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 11 23:10:09 2009 +0000 Fix Makefile to build correctly on Darwin. Patch by Sandeep Patel! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83813 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2012d00dec16d998c3c3c05fb8b59614772ee490 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Oct 11 23:03:53 2009 +0000 Add missed mem-mem move patterns git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83812 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bb755cbeeabe6610220f1867fc08ea9503775a4 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Oct 11 23:03:28 2009 +0000 Add MSP430 mem-mem insts support. Patch by Brian Lucas with some my refinements git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83811 91177308-0d34-0410-b5e6-96231b3b80d8 commit 89f19d1b3a3da269ee5267eab8dad7c07def855b Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 23:02:46 2009 +0000 remove some harmful code that would turn an insertelement on an undef into a shuffle even if it was used by another insertelement. If the visitation order of instcombine was wrong, this would turn a chain of insertelements into a chain of shufflevectors, which was quite painful. Since CollectShuffleElements handles these cases, the code can just be nuked. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83810 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0505cb155a108d6b9ad4c7866be5d012d2f46181 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Oct 11 23:02:38 2009 +0000 Add bunch of MSP430 'feature' tests. Patch by Brian Lucas with some my refinements git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83809 91177308-0d34-0410-b5e6-96231b3b80d8 commit b88a9f6ec39bcd6c3d40072ec2ae2854c9653683 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:54:48 2009 +0000 reduce vec_shuffle2 and merge into vec_shuffle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83807 91177308-0d34-0410-b5e6-96231b3b80d8 commit a2680eb6a3be4623b53e8ab3423973a30bc5ac57 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:52:15 2009 +0000 filecheckize vec_shuffle.ll and merge shuffle.ll into it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83806 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2d94ef475390a3b506202af22be9482ba21f99b4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:45:17 2009 +0000 filecheckize git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83805 91177308-0d34-0410-b5e6-96231b3b80d8 commit bce34da6aa0fafd04739231b1e2c68a2e7d5cb6f Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:44:16 2009 +0000 rename test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83804 91177308-0d34-0410-b5e6-96231b3b80d8 commit df025c2d02814a3263c9f4a5d535c93c44301999 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:42:06 2009 +0000 remove old testcase git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83803 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cb155c0a2e3302ddcb4ecb2c0021f6aafabdaa0 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:39:58 2009 +0000 merge test into shift.ll, this also eliminates awful grepping on -stats output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83802 91177308-0d34-0410-b5e6-96231b3b80d8 commit 31eecb906b881523b8997b5b2f77734b81be8369 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:36:59 2009 +0000 convert to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83801 91177308-0d34-0410-b5e6-96231b3b80d8 commit eefa89c5b8ccf1a50ffeca3493d9608f3c3ae491 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:22:13 2009 +0000 teach instcombine to simplify xor's harder, catching the new testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83799 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4580d45e185e24ae6460f55c8bd825b222881e25 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 22:00:32 2009 +0000 cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83797 91177308-0d34-0410-b5e6-96231b3b80d8 commit cf28e6a58b5cde2d8178206ca9754b4fd6d15d6b Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 21:42:08 2009 +0000 convert xor2 to filecheck, merge in a random regtest git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83796 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3508c5ca5968647a4b5f303bd9cc6d139ffde10f Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 21:36:10 2009 +0000 cleanup, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83795 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4ca76f7f980d23a1d7a82559592838a91eb1fb4f Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 21:29:45 2009 +0000 generalize a transformation even more: we don't care whether the input the the mul is a zext from bool, just that it is all zeros other than the low bit. This fixes some phase ordering issues that would cause us to miss some xforms in mul.ll when the worklist is visited differently. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83794 91177308-0d34-0410-b5e6-96231b3b80d8 commit 291872e65ebb3cf049e50f76fe0cc1b126b2207e Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 21:22:21 2009 +0000 simplify a transformation by making it more general. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83792 91177308-0d34-0410-b5e6-96231b3b80d8 commit 57842c564561b7e696d1fc016ec0c55e6b08bcd4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 21:05:34 2009 +0000 temporarily revert previous patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83791 91177308-0d34-0410-b5e6-96231b3b80d8 commit 54874018d447572ff91ee9a5e1fb22ddc12b73a7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 21:04:37 2009 +0000 populate instcombine's initial worklist more carefully, causing it to visit instructions from the start of the function to the end of the function in the first path. This greatly speeds up some pathological cases (e.g. PR5150). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83790 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb2683a5dda25516ad0c224f0bc5046b8f10f687 Author: Edwin Török <edwintorok@gmail.com> Date: Sun Oct 11 19:58:35 2009 +0000 Remove CleanupDbgInfo, instcombine does this and its not worth duplicating it here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83789 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2734bdb105226b7f4a5cbabee2b730fcbc4ac928 Author: Duncan Sands <baldrick@free.fr> Date: Sun Oct 11 19:40:38 2009 +0000 More DragonEgg verbiage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83788 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c9e52d4836192ce0463bd735667ac9861ba8fe9 Author: Duncan Sands <baldrick@free.fr> Date: Sun Oct 11 19:30:56 2009 +0000 Remove spurious brackets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83787 91177308-0d34-0410-b5e6-96231b3b80d8 commit aeb2b5ba57596a8b077fb2e7878cf63ab2652ca4 Author: Edwin Török <edwintorok@gmail.com> Date: Sun Oct 11 19:15:54 2009 +0000 LICM shouldn't sink/delete debug information. Fix this and add a testcase. For now the metadata of sinked/hoisted instructions is still wrong, but that'll be fixed when instructions will have debug metadata directly attached. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83786 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9cbe2bc74aff10a95b2ee6ed6fb4a47dffee4751 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Oct 11 19:14:21 2009 +0000 Implement 'm' memory operand properly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83785 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c425acb0ed7cbc27602e7b7faa1e6ff755e37b5 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Oct 11 19:14:02 2009 +0000 Implement proper asmprinting for the globals. This eliminates bogus "call" modifier and also adds support for offsets wrt globals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83784 91177308-0d34-0410-b5e6-96231b3b80d8 commit 92edf7f8851ef0b58a0545195d7d749d2c1785f1 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sun Oct 11 19:13:34 2009 +0000 Implement asm printing for inline asm memory operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83783 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8ab34d04b0472a623f3aa7a2da0fce1fdace2ca Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 19:07:23 2009 +0000 add PR5004 as a known problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83782 91177308-0d34-0410-b5e6-96231b3b80d8 commit 711542c40f2d29a3d693a6bf59387c1bae4efd3e Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 19:02:54 2009 +0000 duncan points out that llvm-gcc doesn't do the right thing with -fverbose-asm yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83781 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6178bed87c4874e4760711a68fd4aa50f9a1d588 Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 11 18:53:09 2009 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83780 91177308-0d34-0410-b5e6-96231b3b80d8 commit 42170ac977990187aa1fe8f11b96b5966234c9da Author: Nick Lewycky <nicholas@mxc.ca> Date: Sun Oct 11 18:47:33 2009 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83779 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59be447db438daefb7cdc64feeb2595f474f0be8 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 18:39:58 2009 +0000 when folding duplicate conditions, delete the now-probably-dead instruction tree feeding it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83778 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2c50edbc5a7493d03d1561eeb139a316b582b65d Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 18:21:32 2009 +0000 some notes from Anton git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83777 91177308-0d34-0410-b5e6-96231b3b80d8 commit c1654ea87b71d0c7a965b5fffa05f83ffcc90c3d Author: Gabor Greif <ggreif@gmail.com> Date: Sun Oct 11 11:44:34 2009 +0000 catch some other serial commas that my earlier grep did not spot git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83772 91177308-0d34-0410-b5e6-96231b3b80d8 commit 00ade922bbb18d8e8fca7a4e69bef5b9c5dbe1fe Author: Gabor Greif <ggreif@gmail.com> Date: Sun Oct 11 11:23:40 2009 +0000 eliminate some instances of serial comma. sabre, if you feel strong about this, feel free to revert this rev git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83771 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6486965df5826add65108c0ebdf0a8a530b40b00 Author: Duncan Sands <baldrick@free.fr> Date: Sun Oct 11 11:20:26 2009 +0000 Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83770 91177308-0d34-0410-b5e6-96231b3b80d8 commit 25d7536a03070dc647e4cae021e9fae10111c60c Author: Gabor Greif <ggreif@gmail.com> Date: Sun Oct 11 10:44:44 2009 +0000 apply some tweaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83769 91177308-0d34-0410-b5e6-96231b3b80d8 commit 669766de5f5883fd1e378347017986980a35b527 Author: Gabor Greif <ggreif@gmail.com> Date: Sun Oct 11 10:27:57 2009 +0000 fix some obvious typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83768 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8f506a9c91975bcff3af5a4100f093002a0db636 Author: Duncan Sands <baldrick@free.fr> Date: Sun Oct 11 09:07:15 2009 +0000 Add an outline of the DragonEgg gcc plugin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83765 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6438c58898936351337a02c6f3d89dbefcf8d6c1 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 07:53:15 2009 +0000 implement rdar://7293527, a trivial instcombine that llvm-gcc gets but clang doesn't, because it is implemented in GCC's fold routine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83761 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c7a6448809f6dc46ba73d35edfe8710c9758f64 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 07:51:25 2009 +0000 add a helper for matching "1". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83760 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed90ae261ab94579121d50605807e8b9ad5e9b00 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 07:24:57 2009 +0000 implement a transformation in jump threading that is currently done by condprop, but do it in a much more general form. The basic idea is that we can do a limited form of tail duplication in the case when we have a branch on a phi. Moving the branch up in to the predecessor block makes instruction selection much easier and encourages chained jump threadings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83759 91177308-0d34-0410-b5e6-96231b3b80d8 commit a84c14e849681bc0fcf86529593d9475c0250617 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 07:11:11 2009 +0000 another testcase jump threading shouldn't crash on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83758 91177308-0d34-0410-b5e6-96231b3b80d8 commit 41e44ea0443e3fda16de10d4ac56574ad4cdaae4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 07:10:28 2009 +0000 rename a file, remove a poorly reduced testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83757 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bf9d1b142a7646cc02c22faa44ca229cded4999 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 04:40:21 2009 +0000 restructure some code, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83756 91177308-0d34-0410-b5e6-96231b3b80d8 commit 353c7f9d63875f26c94cd63f9824d33a5a29bd63 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 04:33:43 2009 +0000 factor some code better and move a function, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83755 91177308-0d34-0410-b5e6-96231b3b80d8 commit a5c0a111a8bc2c320b19e042b941a04cc51dbc48 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 04:18:15 2009 +0000 make jump threading on a phi with undef inputs happen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83754 91177308-0d34-0410-b5e6-96231b3b80d8 commit b3fb398811b1fa62ff2262e0f96bca634aa96224 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 04:17:33 2009 +0000 there is no need to run mem2reg after jump threading at LTO time now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83753 91177308-0d34-0410-b5e6-96231b3b80d8 commit 990739315fb919324c69c035ab3ac6e2b00d22d4 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 04:03:22 2009 +0000 fix a bunch of bad formatting, delete the dead ConstantInt::TheTrueVal/TheFalseVal members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83752 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3733adba857257f94b0945022794fb1c1bbefbbb Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 03:55:30 2009 +0000 merge two tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83751 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4f68e0c66398707bce7c1304f09ed42c863337e7 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 03:54:21 2009 +0000 simplify some run lines, convert a test to filecheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83750 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0c5465e27e51577bdee6797f31a9bd5c7545d5c7 Author: Ted Kremenek <kremenek@apple.com> Date: Sun Oct 11 03:10:25 2009 +0000 Update release notes blurb on the static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83749 91177308-0d34-0410-b5e6-96231b3b80d8 commit e98866c4d6898e2502af1f30d1d5ae7cfbd14bc3 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 02:53:37 2009 +0000 rewrite LCSSA to use SSAUpdate, to only return true if it modifies the IR, and to implement the FIXME'd optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83748 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7dd77a530bc7f7e74dc137cf93a7dd04f3829831 Author: Chris Lattner <sabre@nondot.org> Date: Sun Oct 11 01:07:15 2009 +0000 clean up and simplify some code. Don't use setvector when things will be inserted only once, just use vector. Don't compute ExitBlocks unless we need it, change std::sort to array_pod_sort. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83747 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e5ea272663faaaf886a17f77963b5c12bdf8802 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 23:50:30 2009 +0000 switch GVN to use SSAUpdater. Besides removing a lot of complexity from GVN, this also speeds it up, inserts fewer PHI nodes (see the testcase) and allows it to remove more loads (due to fewer PHI nodes standing in the way). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83746 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2daa0fe12d450b31d9b79e66edd08e65623adbbc Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 23:41:48 2009 +0000 add a simple helper method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83745 91177308-0d34-0410-b5e6-96231b3b80d8 commit e4f2c548e29dacb887d3249f35cc881fb1b29bbe Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 23:15:24 2009 +0000 add ability for clients of SSAUpdater to find out about the PHI nodes inserted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83744 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8b04a44b984696613a6469db5927268de2f762f6 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 23:05:42 2009 +0000 clarify git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83743 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7b06de142ad444492acf76879609cc3a99e91d18 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 23:04:12 2009 +0000 remove dead code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83742 91177308-0d34-0410-b5e6-96231b3b80d8 commit af354a777f57a5585a3b210d785db6349539953f Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 23:00:11 2009 +0000 add the ability to get a rewritten value from the middle of a block, not just at the end. Add a big comment explaining when this could be useful (which never happens for jump threading). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83741 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20c6ad636a273a51464d58d8f8bc1c56084e74af Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 22:41:58 2009 +0000 rename GetValueInBlock -> GetValueAtEndOfBlock to better reflect what it does. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83740 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a9bcf02f7e5e0ad89a228f87e19e9e6cf2527d7 Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Sat Oct 10 22:17:47 2009 +0000 It seems that OR operation does not affect status reg at all. Remove impdef of SRW. This fixes PR4779 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83739 91177308-0d34-0410-b5e6-96231b3b80d8 commit b9a5155e6a8ce63a720f7a3451716b18c2d28fa4 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 22:15:25 2009 +0000 fix broken link git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83738 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8767bdca785849ff566f409d4d3801f274686e3a Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 22:13:38 2009 +0000 final changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83737 91177308-0d34-0410-b5e6-96231b3b80d8 commit 835f25302bc50f969d425fd9c2b911113bf61d96 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 22:02:58 2009 +0000 down to 'major changes' git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83736 91177308-0d34-0410-b5e6-96231b3b80d8 commit fdf24e7c757b6ab6fef50461bdc3467230d576b9 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 21:40:13 2009 +0000 more updates git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83735 91177308-0d34-0410-b5e6-96231b3b80d8 commit 69c5440a5bd6d4e6016cf892d6950753f175e4dc Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 21:37:16 2009 +0000 add a link to the GSG for info on how to check out svn trunk git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83734 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7305d116823dc875501092035f458734c0663161 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 21:30:55 2009 +0000 x86 uses 5 operands for most memory refs now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83733 91177308-0d34-0410-b5e6-96231b3b80d8 commit d4f53350fb0367b3b87ce3230083a7709294ba24 Author: Duncan Sands <baldrick@free.fr> Date: Sat Oct 10 20:06:04 2009 +0000 More spelling and grammar tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83728 91177308-0d34-0410-b5e6-96231b3b80d8 commit 08f0add2e589d69edcb270125e86533fcb751e48 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sat Oct 10 19:45:13 2009 +0000 More spelling fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83724 91177308-0d34-0410-b5e6-96231b3b80d8 commit dc5bd2bcab36d8df81d308baefbf36441b676b37 Author: Duncan Sands <baldrick@free.fr> Date: Sat Oct 10 19:30:16 2009 +0000 Spelling fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83722 91177308-0d34-0410-b5e6-96231b3b80d8 commit 10abb752d27135245e6565c347fa7c61a69d3159 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 19:26:21 2009 +0000 more tweaks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83721 91177308-0d34-0410-b5e6-96231b3b80d8 commit ccedda4f3460575743ed25a090ee3904d971ab5a Author: Duncan Sands <baldrick@free.fr> Date: Sat Oct 10 19:16:25 2009 +0000 Remove an inappropriate line in the description of the clang static analyser. Decrease duplication in the text. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83720 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51ead6da49d101c8507fa07b7d1b35dc563abeed Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 19:00:55 2009 +0000 continue decoding chris scribble. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83719 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bb49c3f61f371f06fd85f34fbd886bbf513667a Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 18:40:48 2009 +0000 remove some dead passes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83717 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4d91d4d3e9e2383157ccb0404ae3d6eb432fd54d Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 18:33:13 2009 +0000 checkpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83716 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0fee5c2ba2015f5d738d413b3980ab71a0fdfb74 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 18:26:06 2009 +0000 fix broken anchors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83715 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2caa3dbab217e4ec2efa8ee04fa9de812aac99c8 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 09:09:20 2009 +0000 use a typedef instead of spelling out an insane type. Yay for auto someday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83707 91177308-0d34-0410-b5e6-96231b3b80d8 commit cad6e47254b042d7ee8168c0b19240436f397baa Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 09:05:58 2009 +0000 Change jump threading to use the new SSAUpdater class instead of DemoteRegToStack. This makes it more efficient (because it isn't creating a ton of load/stores that are eventually removed by a later mem2reg), and more slightly more effective (because those load/stores don't get in the way of threading). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83706 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4baac8e63aae277b30891647cb8cc91500035a28 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 09:04:27 2009 +0000 Implement an efficient and fully general SSA update mechanism that works on unstructured CFGs. This implements PR217, our oldest open PR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83705 91177308-0d34-0410-b5e6-96231b3b80d8 commit e8bb5a4841c7f35bdad091ac5e9ffd8515ffcd5a Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 08:27:29 2009 +0000 add some WeakVH::operator='s. Without these, assigning a Value* to a WeakVH was constructing a temporary WeakVH (due to the implicit assignment operator). This avoids that cost. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83704 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0470c8bf65383fcdf8e19fab6350e9dc8992c343 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 08:01:27 2009 +0000 change some static_cast into cast, pointed out by Gabor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83703 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c097ffa6542b236a22d784f35c69c28a54189a0 Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 07:42:42 2009 +0000 add a version of PHINode::getIncomingBlock that takes a raw Use, to complement the version that takes a use_iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83702 91177308-0d34-0410-b5e6-96231b3b80d8 commit 34635fd2a1fa61305f64291b89ad230ad0c1abfb Author: Chris Lattner <sabre@nondot.org> Date: Sat Oct 10 06:22:45 2009 +0000 random tidying git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83701 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5ee5165329daef7db0c6a8a0abc23d344e9e6f9 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 10 01:32:21 2009 +0000 Create a new InstrEmitter class for translating SelectionDAG nodes into MachineInstrs. This is mostly just moving the code from ScheduleDAGSDNodesEmit.cpp into a new class. This decouples MachineInstr emitting from scheduling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83699 91177308-0d34-0410-b5e6-96231b3b80d8 commit e1c0b3bed2a6e94779604ba226ee8721496f20e7 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 10 01:29:16 2009 +0000 Make getMachineNode return a MachineSDNode* instead of a generic SDNode* since it won't do any folding. This will help avoid some inconvenient casting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83698 91177308-0d34-0410-b5e6-96231b3b80d8 commit fe5ef8c515912e0217c2730731f5f0385a14c250 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 10 00:36:09 2009 +0000 Remove a no-longer-necessary #include. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83697 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ef188518b791f048bd10dc1e8d0f62e63086198 Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 10 00:34:18 2009 +0000 Replace X86's CanRematLoadWithDispOperand by calling the target-independent MachineInstr::isInvariantLoad instead, which has the benefit of being more complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83696 91177308-0d34-0410-b5e6-96231b3b80d8 commit 101611d6083ca81b9bcf86d51be4717fbe1edc5a Author: Dan Gohman <gohman@apple.com> Date: Sat Oct 10 00:15:38 2009 +0000 Fix a missing initialization of PostRAScheduler's AA member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83695 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04e1b1d338e24537ab7c42bd0a1f0bf544732080 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 23:33:48 2009 +0000 The ScheduleDAG framework now requires an AliasAnalysis argument, though it isn't needed in the ScheduleDAGSDNodes schedulers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83691 91177308-0d34-0410-b5e6-96231b3b80d8 commit d85c2fe674dcb1b5e8c3bfa740a8e396e1a43290 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 23:31:04 2009 +0000 Update this test; the code is the same but it gets counted as one fewer remat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83690 91177308-0d34-0410-b5e6-96231b3b80d8 commit 78e1a77cde46b7ba5de7d39b3a6db14e058f897c Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 23:28:27 2009 +0000 Mark the LDR instruction with isReMaterializable, as it is rematerializable when loading from an invariant memory location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83688 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a4c09e724bd3ab7c9a1d3a1615894e7bf209179 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 23:27:56 2009 +0000 Factor out LiveIntervalAnalysis' code to determine whether an instruction is trivially rematerializable and integrate it into TargetInstrInfo::isTriviallyReMaterializable. This way, all places that need to know whether an instruction is rematerializable will get the same answer. This enables the useful parts of the aggressive-remat option by default -- using AliasAnalysis to determine whether a memory location is invariant, and removes the questionable parts -- rematting operations with virtual register inputs that may not be live everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83687 91177308-0d34-0410-b5e6-96231b3b80d8 commit 40c80212c1c0be155e7a561f0a18a94856d7eb2f Author: Devang Patel <dpatel@apple.com> Date: Fri Oct 9 22:42:28 2009 +0000 Extract scope information from the variable itself, instead of relying on alloca or llvm.dbg.declare location. While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83684 91177308-0d34-0410-b5e6-96231b3b80d8 commit 43304d30b79b35253613e21f34375a5493f62550 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Fri Oct 9 22:10:27 2009 +0000 ExecutionEngine::clearGlobalMappingsFromModule failed to remove reverse mappings, which could cause errors and assert-failures. This patch fixes that, adds a test, and refactors the global-mapping-removal code into a single place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83678 91177308-0d34-0410-b5e6-96231b3b80d8 commit 04e3e0aec0ee96b3c0c59404d7715aaa97d95eb0 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 22:09:05 2009 +0000 Add a const qualifier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83677 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5c20d7bc7641c093c9630366823584817b1f784 Author: Dale Johannesen <dalej@apple.com> Date: Fri Oct 9 21:42:02 2009 +0000 Use names instead of numbers for some of the magic constants used in inlining heuristics (especially those used in more than one file). No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83675 91177308-0d34-0410-b5e6-96231b3b80d8 commit 60bc0274f8e3cc55dd9332c4f404afee1c675b95 Author: Kevin Enderby <enderby@apple.com> Date: Fri Oct 9 21:12:28 2009 +0000 Added another bit of the ARM target assembler to llvm-mc to parse register lists. Changed ARMAsmParser::MatchRegisterName to return -1 instead of 0 on errors so 0-15 values could be returned as register numbers. Also added the rest of the arm register names to the currently hacked up version to allow more testing. Some changes to ARMAsmParser::ParseOperand to give different errors for things not yet supported and some additions to the hacked ARMAsmParser::MatchInstruction to allow more testing for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83673 91177308-0d34-0410-b5e6-96231b3b80d8 commit e5496f6ba52d5603eb26d72b421c2d8731f4ac24 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 21:02:10 2009 +0000 isTriviallyReMaterializable checks the TargetInstrDesc::isRematerializable flag, so it isn't necessary to do this check in its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83671 91177308-0d34-0410-b5e6-96231b3b80d8 commit f9a38e927ec463018c38d44e71c096032d2bd855 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 20:35:19 2009 +0000 Fix the x86 test-shrink optimization so that it doesn't shrink comparisons when one of the bits being tested would end up being the sign bit in the narrower type, and a signed comparison is being performed, since this would change the result of the signed comparison. This fixes PR5132. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83670 91177308-0d34-0410-b5e6-96231b3b80d8 commit ff57ca95835abff5340b955ef0277117c35439db Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 9 20:20:54 2009 +0000 Merge a bunch of NEON tests into larger files so they run faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83667 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7973eb023472b13237076954240d915c30c2c69 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 18:10:05 2009 +0000 Add basic infrastructure and x86 support for preserving MachineMemOperand information when unfolding memory references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83656 91177308-0d34-0410-b5e6-96231b3b80d8 commit fb8127571e3f12f3c71b90f92b561ba34b4c0582 Author: Devang Patel <dpatel@apple.com> Date: Fri Oct 9 17:51:49 2009 +0000 Check invalid debug info for enums. This may happen when underlyng enum is optimized away. Eventually DwarfChecker will clean this up during llvm verification stage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83655 91177308-0d34-0410-b5e6-96231b3b80d8 commit 66037312be7232178d30cfcab772f4e8e330ff5c Author: Jim Grosbach <grosbach@apple.com> Date: Fri Oct 9 17:33:33 2009 +0000 when previous scratch register is killed, flag the value as no longer tracking git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83653 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20399e118dce04d516184b0d75e64ce701101f3d Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 9 17:20:46 2009 +0000 Convert some ARM tests with lots of greps to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83651 91177308-0d34-0410-b5e6-96231b3b80d8 commit f5ceadfdacd1076a9449ec317dc8c6f7f621ca62 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 16:35:06 2009 +0000 Revert r83606 and add comments explaining why it isn't safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83649 91177308-0d34-0410-b5e6-96231b3b80d8 commit 13eff6afac77654d75c584382caf1ae89295168d Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Fri Oct 9 13:17:57 2009 +0000 As it turns out, the bug fixes in GC codegen did not make it to llvm-2.6. Remove the precise garbage collection feature. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83638 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0dcee36aa05b0bec97f63996fcb9f34626e86118 Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Fri Oct 9 10:17:14 2009 +0000 80-columns! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83628 91177308-0d34-0410-b5e6-96231b3b80d8 commit 12c0e568a1c2bc53ada189e7e846c8fc6f0fea4a Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Fri Oct 9 10:13:08 2009 +0000 Add initial information on VMKit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83627 91177308-0d34-0410-b5e6-96231b3b80d8 commit 896d258c97e62cda9273af7c16420116652a4520 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 9 06:36:25 2009 +0000 more random updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83625 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1aa3e5f0fe657b868ff72e8bab8db7359e1bc98 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 9 06:31:25 2009 +0000 Give Dan and my recent changes, machine LICM is now code size neutral. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83624 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0d60110630c3869e7a8f0dbeb8a1228856425760 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 9 06:24:25 2009 +0000 checkpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83623 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3dd21c11a02af6dede438855f9b433be3dfb1abc Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 9 06:21:52 2009 +0000 Fix a logic error that caused non-rematable loop invariants loads to be licm'ed out of loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83622 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6e6d33cba1b2c637e02dbb91639ce9832b77c0a0 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 9 05:55:04 2009 +0000 checkpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83621 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3a22d57b59002c06bcc397a2d0896880748da5d6 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Oct 9 05:45:38 2009 +0000 Slight rewording. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83620 91177308-0d34-0410-b5e6-96231b3b80d8 commit 731bacfd51b94138ba08e635eff3ca6fdcbac118 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Oct 9 05:45:21 2009 +0000 Omit the 'out_file_index != -1' check when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83619 91177308-0d34-0410-b5e6-96231b3b80d8 commit 220acf8eeb24372c18be5fcb09801f990dffe4c7 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Oct 9 05:45:01 2009 +0000 Use llvm-as only for compiling .ll -> .bc. llc can compile .ll files directly these days. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83618 91177308-0d34-0410-b5e6-96231b3b80d8 commit abdc3b88031c863d2f74d104127686a5a69af598 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 9 05:31:56 2009 +0000 Commit one last NEON test to use FileCheck. That's all of them now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83617 91177308-0d34-0410-b5e6-96231b3b80d8 commit cb2151d7341f051c8a01aa098bf2eda3379e9234 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 9 05:14:48 2009 +0000 Convert more NEON tests to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83616 91177308-0d34-0410-b5e6-96231b3b80d8 commit 401ec6d06b636887ac3d25016aea353151394e54 Author: Chris Lattner <sabre@nondot.org> Date: Fri Oct 9 05:01:15 2009 +0000 update clang section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83615 91177308-0d34-0410-b5e6-96231b3b80d8 commit cbaa50309d57421f5bdd4d90a94a36b88444fb73 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Oct 9 04:15:52 2009 +0000 Raise the limit on built-in plugins in llvmc to 10. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83614 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5bdb7471aa50c84fdbe958fe5b2a2e0ca20fe930 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Fri Oct 9 02:40:01 2009 +0000 Reconfigure automatically when Base.td.in is changed. Thanks to Chris for heads-up! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83613 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9b4ac5427138629eb3cf8419fcf059b1b8848f91 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 9 01:17:11 2009 +0000 Reset kill markers after live interval is reconstructed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83608 91177308-0d34-0410-b5e6-96231b3b80d8 commit afa08b51a65fd3e945cb752281f7ad5f02c4fa29 Author: Evan Cheng <evan.cheng@apple.com> Date: Fri Oct 9 00:57:38 2009 +0000 Indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83607 91177308-0d34-0410-b5e6-96231b3b80d8 commit 837b52307f0cc56172a43dab64d2fbcfe1bd5d5f Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 00:41:22 2009 +0000 Preserve HasNSW and HasNUW when constructing SCEVs for Add and Mul instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83606 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa77a95f69eb7ebf8ad5eec689ab92f2f8961f64 Author: Dale Johannesen <dalej@apple.com> Date: Fri Oct 9 00:11:32 2009 +0000 When considering whether to inline Callee into Caller, and that will make Caller too big to inline, see if it might be better to inline Caller into its callers instead. This situation is described in PR 2973, although I haven't tried the specific case in SPASS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83602 91177308-0d34-0410-b5e6-96231b3b80d8 commit c9afeb35476d80a581127cd6e46b62a75727de30 Author: Dan Gohman <gohman@apple.com> Date: Fri Oct 9 00:10:36 2009 +0000 Add the ability to track HasNSW and HasNUW on more kinds of SCEV expressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83601 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7692e0185faaab4a68386afc362d95be591b455 Author: Bob Wilson <bob.wilson@apple.com> Date: Fri Oct 9 00:01:36 2009 +0000 Add codegen support for NEON vst4lane intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83600 91177308-0d34-0410-b5e6-96231b3b80d8 commit dbffb21337be67595a47585d60e8dda083038601 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 23:51:31 2009 +0000 Add codegen support for NEON vst3lane intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83598 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18e94a7a1d02201407370ce9f73be9798bd4b7cc Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 23:38:24 2009 +0000 Add codegen support for NEON vst2lane intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83596 91177308-0d34-0410-b5e6-96231b3b80d8 commit e76c59427191dff2450a644ad14db0a8d973b18e Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 23:33:03 2009 +0000 Convert more NEON tests to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83595 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7a8c6dfd8b82ead296bebcb567580cf08c5d449d Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 22:53:57 2009 +0000 Add codegen support for NEON vld4lane intrinsics with 128-bit vectors. Also fix some copy-and-paste errors in previous changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83590 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9e95fbdc67767a5b924b05be00174db40a0cce57 Author: Evan Cheng <evan.cheng@apple.com> Date: Thu Oct 8 22:42:35 2009 +0000 Remove code that makes no sense. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83589 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7f38db881ebc7e8d6e3723f74306fc179bc6a26d Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 22:33:53 2009 +0000 Convert more NEON tests to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83587 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47a1ff630bcc4c6ad5fc198b0b1fe9f7cd07a85c Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 22:27:33 2009 +0000 Add codegen support for NEON vld3lane intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83585 91177308-0d34-0410-b5e6-96231b3b80d8 commit 872cba53706d4b15c7d44ee586495daaf9acb850 Author: Douglas Gregor <doug.gregor@gmail.com> Date: Thu Oct 8 21:24:34 2009 +0000 Update CMake build yet again after a source file was removed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83575 91177308-0d34-0410-b5e6-96231b3b80d8 commit ee60911ca1e826c45202025244f0d1d273d1c2c0 Author: Bill Wendling <isanbard@gmail.com> Date: Thu Oct 8 20:52:51 2009 +0000 It's possible for a global variable to be optimized out of a metadata object. So we should allow a "null" with this dyn_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83573 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c196ef25d4afaf139cf282e439df7afa2c4e6ad Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Thu Oct 8 20:43:22 2009 +0000 Use lower16 / upper16 imm modifiers to asmprint 32-bit imms splitted via movt/movw pair. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83572 91177308-0d34-0410-b5e6-96231b3b80d8 commit f57e106e4ef58a165435aef6683db98b559f594b Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 8 20:41:17 2009 +0000 Clear variable debug info map at the end of the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83571 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5687d8a26c08d089c60df2c92d048ab85bcdb2b9 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 18:56:10 2009 +0000 Add codegen support for NEON vld2lane intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83568 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5642cc9b885987140f2f385af99fd6ad3ff47845 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 18:52:56 2009 +0000 Clean up some unnecessary initializations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83566 91177308-0d34-0410-b5e6-96231b3b80d8 commit 67902736c48e80706297e3141221c4951a15dabc Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 18:51:31 2009 +0000 Clean up a comment (indentation was wrong). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83565 91177308-0d34-0410-b5e6-96231b3b80d8 commit fcaa4cff1b4f3a5b7a731c6e591f345ce5fcdbc1 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 18:49:46 2009 +0000 Add a SelectionDAG getTargetInsertSubreg convenience function, similar to getTargetExtractSubreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83564 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6882dff7faafcef6f4099c22fcb8f1720b021720 Author: Devang Patel <dpatel@apple.com> Date: Thu Oct 8 18:48:03 2009 +0000 Do not record line number to implicitly mark start of function if function has arguments. Extra line number entries trip gdb in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83563 91177308-0d34-0410-b5e6-96231b3b80d8 commit 37f93448e6320e093f256f4884200656a3441f03 Author: Richard Osborne <richard@xmos.com> Date: Thu Oct 8 17:14:57 2009 +0000 Add missing names for the XCore specific LADD and LSUB nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83556 91177308-0d34-0410-b5e6-96231b3b80d8 commit 130a245ddcec93d0105d56a5490bf15261fc5775 Author: Dan Gohman <gohman@apple.com> Date: Thu Oct 8 17:00:02 2009 +0000 Add a form of addPreserved which takes a string argument, to allow passes to declare that they preserve other passes without needing to pull in additional header file or library dependencies. Convert MachineFunctionPass and CodeGenLICM to make use of this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83555 91177308-0d34-0410-b5e6-96231b3b80d8 commit 59a302773ef641214008b3fca3d18a6227e06f5d Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 8 16:01:33 2009 +0000 some updates from users of llvm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83551 91177308-0d34-0410-b5e6-96231b3b80d8 commit c3a9f20fbd8ce4f486a775c526f6915da438072e Author: Richard Osborne <richard@xmos.com> Date: Thu Oct 8 15:38:17 2009 +0000 Add some peepholes for signed comparisons using ashr X, X, 32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83549 91177308-0d34-0410-b5e6-96231b3b80d8 commit 169c7013404386716ee4fa02d8c88286a15b598c Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 8 07:01:46 2009 +0000 all content split into sections, still much work to be done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83532 91177308-0d34-0410-b5e6-96231b3b80d8 commit 019ef5c94bf984de5c7ed18e3cd8174199cae615 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 8 06:42:44 2009 +0000 remove LoopVR pass. According to Nick: "LoopVR's logic was copied into ScalarEvolution::getUnsignedRange and ::getSignedRange. Please delete LoopVR." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83531 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6aaf6907619d567b988c88dc787974141d093fa0 Author: Chris Lattner <sabre@nondot.org> Date: Thu Oct 8 06:27:53 2009 +0000 checkpoint, this is still not comprehendible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83530 91177308-0d34-0410-b5e6-96231b3b80d8 commit 96c75278165e3401271e659bb9375c0b0cb76241 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Oct 8 06:03:38 2009 +0000 Unbreak the build. Forgot about the need to reconfigure after modifying Base.td.in.... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83529 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c70c0aaa6bcd91504049046a85ef1320be6e442 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 06:02:10 2009 +0000 Convert more NEON tests to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83528 91177308-0d34-0410-b5e6-96231b3b80d8 commit 94b5d43b15023b4757c1b08838104c6a14438e45 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 05:18:18 2009 +0000 Add codegen support for NEON vst4 intrinsics with <1 x i64> vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83526 91177308-0d34-0410-b5e6-96231b3b80d8 commit 18c78e698719eea38d06de611575087e084e1dfc Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Oct 8 04:40:28 2009 +0000 Make the Base plugin understand -MF and -MT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83525 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1c7d766abfd5bdebe8e27baf0e92fe4c11e2dcc9 Author: Mikhail Glushenkov <foldr@codedgers.com> Date: Thu Oct 8 04:40:08 2009 +0000 Input files should go before all other options. Important, for example, when calling 'gcc a.o b.o c.o -lD -lE -lF'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83524 91177308-0d34-0410-b5e6-96231b3b80d8 commit 508ceee8273f7a4f579c60fd9e1ad2fee9f40241 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Oct 8 01:50:26 2009 +0000 Cleanup up unused R3LiveIn tracking. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83522 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4820d98aaad1442bfb4efb104a2ac91b64bc3a36 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Oct 8 01:46:59 2009 +0000 Re-enable register scavenging in Thumb1 by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83521 91177308-0d34-0410-b5e6-96231b3b80d8 commit 51d82f19af9992ec249e8494031365864defd035 Author: Jim Grosbach <grosbach@apple.com> Date: Thu Oct 8 01:09:45 2009 +0000 bugfix. The target may use virtual registers that aren't tracked for re-use but are allocated by the scavenger. The re-use algorithm needs to watch for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83519 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7200e5d850492bc316cf1cef72cfff01fb88fdb5 Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 00:28:28 2009 +0000 Add codegen support for NEON vst3 intrinsics with <1 x i64> vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83518 91177308-0d34-0410-b5e6-96231b3b80d8 commit dd43d1eec2d82eb61329b5940fc2c7f4165cd9ed Author: Bob Wilson <bob.wilson@apple.com> Date: Thu Oct 8 00:21:01 2009 +0000 Add codegen support for NEON vst2 intrinsics with <1 x i64> vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83513 91177308-0d34-0410-b5e6-96231b3b80d8 commit 17091f035fcfa8a12b319146d199c043fbc59fce Author: Jeffrey Yasskin <jyasskin@google.com> Date: Thu Oct 8 00:12:24 2009 +0000 In instcombine's debug output, avoid printing ADD for instructions that are already on the worklist, and print Visited when an instruction is about to be visited. Net, on one input, this reduced the output size by at least 9x. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83510 91177308-0d34-0410-b5e6-96231b3b80d8 commit 7ce4750b6014e38275dcf2878b6ca15a7111ac6d Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 23:54:04 2009 +0000 Add codegen support for NEON vld4 intrinsics with <1 x i64> vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83508 91177308-0d34-0410-b5e6-96231b3b80d8 commit d48ca59eb7bd0af0e294c309b403f7bd72fdab0a Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 23:47:21 2009 +0000 Convert more NEON tests to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83507 91177308-0d34-0410-b5e6-96231b3b80d8 commit da8caccf975ceec8914586e3f0ae7e46a228e640 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 23:39:57 2009 +0000 Add codegen support for NEON vld3 intrinsics with <1 x i64> vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83506 91177308-0d34-0410-b5e6-96231b3b80d8 commit ed8f6834c213d06f4b31cf1747d8900d346b461f Author: Jeffrey Yasskin <jyasskin@google.com> Date: Wed Oct 7 23:22:42 2009 +0000 Fix the OProfile part of PR5018. This fixes --without-oprofile, makes it the default, and works around a broken libopagent on some Debian systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83503 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c3be587276cc116d834bf213f80149e40add2b9 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 22:57:01 2009 +0000 Add codegen support for NEON vld2 intrinsics with <1 x i64> vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83502 91177308-0d34-0410-b5e6-96231b3b80d8 commit c7d2c5396f2876ed2ac8e5c3b65291a769a90767 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 7 22:49:41 2009 +0000 reverting thumb1 scavenging default due to test failure while I figure out what's up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83501 91177308-0d34-0410-b5e6-96231b3b80d8 commit bcd68c3cde6340d81b205a97d9855c55c131150b Author: Chris Lattner <sabre@nondot.org> Date: Wed Oct 7 22:49:30 2009 +0000 second half of lazy liveness removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83500 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1bf03f7398acced77fdf5dcc70543c47f550e956 Author: Dale Johannesen <dalej@apple.com> Date: Wed Oct 7 22:47:20 2009 +0000 Fix handling of x86 'R' constraint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83499 91177308-0d34-0410-b5e6-96231b3b80d8 commit c85628e8a290be582bf9c9845aedc29ac8dac99e Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 22:30:19 2009 +0000 Convert more NEON tests to use FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83497 91177308-0d34-0410-b5e6-96231b3b80d8 commit ce7bfc50779b980e76e470733c72c25c82a5c0bf Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 7 22:26:31 2009 +0000 Enable thumb1 register scavenging by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83496 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d57f4b9260b0e0133e79e4fad874dfaf1739975 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 7 22:26:14 2009 +0000 Enable thumb1 register scavenging by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83494 91177308-0d34-0410-b5e6-96231b3b80d8 commit 47b9a3a81764a9db2834279dd716127112d0ca72 Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 7 22:04:08 2009 +0000 Extract subprogram and compile unit information from the debug info attached to an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83491 91177308-0d34-0410-b5e6-96231b3b80d8 commit b172116673cb33453971b6308941bc7cbd2f624c Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 21:53:04 2009 +0000 Add some instruction encoding bits for NEON load/store instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83490 91177308-0d34-0410-b5e6-96231b3b80d8 commit c8d0f170e091f38e57a5889655d2e14497c20563 Author: Eric Christopher <echristo@apple.com> Date: Wed Oct 7 21:14:25 2009 +0000 80-column and whitespace fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83489 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0479a8535055d21c086964c753787a62f8688cb0 Author: Kevin Enderby <enderby@apple.com> Date: Wed Oct 7 20:57:20 2009 +0000 Fixed MCSectionMachO::ParseSectionSpecifier to allow an attribute of "none" so that a symbol stub section with no attributes can be parsed as in: .section __TEXT,__picsymbolstub4,symbol_stubs,none,16 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83488 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa506f44c225410cb1592fb48bbb9e1a85bba76b Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 20:51:42 2009 +0000 Convert test to FileCheck. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83487 91177308-0d34-0410-b5e6-96231b3b80d8 commit 931c76b4c08ea058d90f9fd5f5a59aea52010c0d Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 20:49:18 2009 +0000 Add codegen support for NEON vst4 intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83486 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2a85bd13a0155cef6081a7f78e4b59c70ba8f5b4 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 20:30:08 2009 +0000 Add codegen support for NEON vst3 intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83484 91177308-0d34-0410-b5e6-96231b3b80d8 commit a3330a871867e32033b8e0ea4134517d0ff62b9d Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 7 19:08:36 2009 +0000 grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83483 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fa67d35b87341e9990fb7b3a26e3de7e76c0e64 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 18:47:39 2009 +0000 Add codegen support for NEON vst2 intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83482 91177308-0d34-0410-b5e6-96231b3b80d8 commit b1355fe89fe28726ead6203e1b1f6e43f3292a81 Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 7 18:44:24 2009 +0000 add initializers for clarity. Add missing assignment of PrevLastUseOp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83481 91177308-0d34-0410-b5e6-96231b3b80d8 commit fd4a856fb7ad8ccf886eebd9a1575be404ada2f9 Author: Owen Anderson <resistor@mac.com> Date: Wed Oct 7 18:40:17 2009 +0000 Remove LazyLiveness from the tree. It doesn't work right now, and I'm not going to have the time to finish it any time soon. If someone's interested it, they can resurrect it from SVN history. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83480 91177308-0d34-0410-b5e6-96231b3b80d8 commit 004a2e16d3ac693fad8bbd5a6798406653f672ba Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 18:09:32 2009 +0000 Add codegen support for NEON vld4 intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83479 91177308-0d34-0410-b5e6-96231b3b80d8 commit 308327301d99c310723d2ac204dc1fc513f89243 Author: Kevin Enderby <enderby@apple.com> Date: Wed Oct 7 18:01:35 2009 +0000 Add another bit of the ARM target assembler to llvm-mc to parse registers with writeback, things like "sp!", etc. Also added some more stuff to the temporarily hacked methods ARMAsmParser::MatchRegisterName and ARMAsmParser::MatchInstruction to allow more parser testing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83477 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c1b793895e57d2696e6c84215f63bfd699e222e Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 7 17:47:20 2009 +0000 Replace some code for aggressive-remat with MachineInstr::isInvariantLoad, and teach it how to recognize invariant physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83476 91177308-0d34-0410-b5e6-96231b3b80d8 commit eef78170dfb5ee4137742e94dbb0253cdda451f8 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 7 17:38:06 2009 +0000 Replace TargetInstrInfo::isInvariantLoad and its target-specific implementations with a new MachineInstr::isInvariantLoad, which uses MachineMemOperands and is target-independent. This brings MachineLICM and other functionality to targets which previously lacked an isInvariantLoad implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83475 91177308-0d34-0410-b5e6-96231b3b80d8 commit d5ce7033ba2445d8fd13504e422afeeffb61c3d3 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 7 17:36:00 2009 +0000 Add a few simple MachineVerifier checks for MachineMemOperands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83474 91177308-0d34-0410-b5e6-96231b3b80d8 commit a8b4362ee4e3a8442c18c5c951594a018cb7a682 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 17:24:55 2009 +0000 Add codegen support for NEON vld3 intrinsics with 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83471 91177308-0d34-0410-b5e6-96231b3b80d8 commit 520f5611addbb5e14f6c0140155c94690e421414 Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 17:23:09 2009 +0000 Rearrange code for selecting vld2 intrinsics. No functionality change. This is just to be more consistent with the forthcoming code for vld3/4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83470 91177308-0d34-0410-b5e6-96231b3b80d8 commit 23e40bb47e44e9c84d3597d5ab6728e7656acbdf Author: Bob Wilson <bob.wilson@apple.com> Date: Wed Oct 7 17:19:13 2009 +0000 Add tests for vld2 of 128-bit vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83468 91177308-0d34-0410-b5e6-96231b3b80d8 commit b67fb2b7be5c577e88578d240998a7ed3bf210db Author: Jim Grosbach <grosbach@apple.com> Date: Wed Oct 7 17:12:56 2009 +0000 Add register-reuse to frame-index register scavenging. When a target uses a virtual register to eliminate a frame index, it can return that register and the constant stored there to PEI to track. When scavenging to allocate for those registers, PEI then tracks the last-used register and value, and if it is still available and matches the value for the next index, reuses the existing value rather and removes the re-materialization instructions. Fancier tracking and adjustment of scavenger allocations to keep more values live for longer is possible, but not yet implemented and would likely be better done via a different, less special-purpose, approach to the problem. eliminateFrameIndex() is modified so the target implementations can return the registers they wish to be tracked for reuse. ARM Thumb1 implements and utilizes the new mechanism. All other targets are simply modified to adjust for the changed eliminateFrameIndex() prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83467 91177308-0d34-0410-b5e6-96231b3b80d8 commit faad9ce705c2531b896c96c880137fdba93f96e6 Author: Devang Patel <dpatel@apple.com> Date: Wed Oct 7 16:37:55 2009 +0000 Do not assume that the module is set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83462 91177308-0d34-0410-b5e6-96231b3b80d8 commit f57115c4bc5ab3acb1c2fafae53e340c9591a924 Author: Edwin Török <edwintorok@gmail.com> Date: Wed Oct 7 09:23:56 2009 +0000 Add a comment explaining how DenseMap::insert works, because it is not intuitive. It does NOT update the value if the key is already in the map, it also returns false if the key is already in the map, regardless if the value matched. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83458 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1d7579c137eb7b85a3e40f4b89c1d73c4d29dea3 Author: Edwin Török <edwintorok@gmail.com> Date: Wed Oct 7 09:22:55 2009 +0000 Add PR to this FIXME, looks like I didn't commit this change after all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83457 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9657ce5edd48f028aa8f8e07ce043aad5dd24e6b Author: Duncan Sands <baldrick@free.fr> Date: Wed Oct 7 07:35:19 2009 +0000 Make getPointerTo return a const PointerType* rather than an unqualified PointerType* because it seems more correct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83454 91177308-0d34-0410-b5e6-96231b3b80d8 commit d1f241ac09c5f93dd0f967eeb75172b7ff27d874 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 7 03:00:18 2009 +0000 INTRINSIC_W_CHAIN and INTRINSIC_VOID do not use MemSDNode. They may access memory, but they don't carry a MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83449 91177308-0d34-0410-b5e6-96231b3b80d8 commit b656c2722d3d782e893fccb11f0be2c9fbf4b31a Author: Eric Christopher <echristo@apple.com> Date: Wed Oct 7 00:54:08 2009 +0000 Add FreeInst to the "is a call" check for Insts that are calls, but not intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83441 91177308-0d34-0410-b5e6-96231b3b80d8 commit e725a19617ce125a02ad9c96279a68fbb0459240 Author: Dan Gohman <gohman@apple.com> Date: Wed Oct 7 00:33:10 2009 +0000 Fix this comment. The loop header is the loop entry point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83437 91177308-0d34-0410-b5e6-96231b3b80d8 commit f68604a29b3058546a6ec8d7f244523d59893a3b Author: Anton Korobeynikov <asl@math.spbu.ru> Date: Wed Oct 7 00:06:35 2009 +0000 Add PseudoSourceValues for constpool stuff on ELF (Darwin should use something similar) and register spills. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83435 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9081aa6d5f1ab9e2ec8d14ec71c5b2bc3bbbf9cb Author: Eric Christopher <echristo@apple.com> Date: Wed Oct 7 00:02:18 2009 +0000 While we still have a MallocInst treat it as a call like any other for inlining. When MallocInst goes away this code will be subsumed as part of calls and work just fine... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83434 91177308-0d34-0410-b5e6-96231b3b80d8 commit 91e27daccce0af4bff6f9299fa52c8cbbeab5ce1 Author: Kevin Enderby <enderby@apple.com> Date: Tue Oct 6 22:26:42 2009 +0000 Added bits of the ARM target assembler to llvm-mc to parse some load instruction operands. Some parsing of arm memory operands for preindexing and postindexing forms including with register controled shifts. This is a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83424 91177308-0d34-0410-b5e6-96231b3b80d8 commit e9829cafca9811fa616f8046ce384b797814fa67 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 6 22:01:59 2009 +0000 Add codegen support for NEON vld2 operations on quad registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83422 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3360945de1c4c74c224806f22405ad8081b29701 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 6 22:01:15 2009 +0000 Use copyRegToReg hook to copy registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83421 91177308-0d34-0410-b5e6-96231b3b80d8 commit 233b35a9018db719a4538efa59b00ba8c7582688 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 6 21:45:26 2009 +0000 r83391 was completely broken since Twines keep references to their inputs, and some of the inputs were temporaries. Here's a real fix for the miscompilation. Thanks to sabre for pointing out the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83417 91177308-0d34-0410-b5e6-96231b3b80d8 commit fc6baa536fe873f258c8aef5cb170d1d4b67f0c4 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 6 21:16:19 2009 +0000 Update NEON struct names to match llvm-gcc changes. (This is not required for correctness but might help with sanity.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83415 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3443c216b30567ecf229ce43fe31ecb60e5e7ed3 Author: Bob Wilson <bob.wilson@apple.com> Date: Tue Oct 6 20:18:46 2009 +0000 Fix a comment typo. Patch by Johnny Chen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83407 91177308-0d34-0410-b5e6-96231b3b80d8 commit 870fd046ae63c0ff664ba52054d8c6dd7debaf33 Author: Nicolas Geoffray <nicolas.geoffray@lip6.fr> Date: Tue Oct 6 19:55:53 2009 +0000 Bugfix for the CommaSeparated option. The original code was adding the whole string at the end of the list, instead of the last comma-separated string. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83405 91177308-0d34-0410-b5e6-96231b3b80d8 commit b814315fa8e7762d1d8ce33513e001f3df900245 Author: Ted Kremenek <kremenek@apple.com> Date: Tue Oct 6 19:45:38 2009 +0000 Update CMake file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83404 91177308-0d34-0410-b5e6-96231b3b80d8 commit abf70f8384290d8a2f26d494c27f20cefd1fed60 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 6 19:06:16 2009 +0000 Fix illegal cross-type aliasing. Found by baldrick on a newer gcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83401 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0feae424692b07197998bd7a451d8da44fd0ac9a Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 18:37:31 2009 +0000 Add support to handle debug info attached to an instruction. This is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83400 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4c45a0c48614b2387855cee4f1e3f99013344ecf Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 6 17:43:57 2009 +0000 Make LLVMContext's pImpl member const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83393 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fda434b0d4932d63b21ce3b5dd72c18e855da26 Author: Dan Gohman <gohman@apple.com> Date: Tue Oct 6 17:38:38 2009 +0000 Instead of printing unnecessary basic block labels as labels in verbose-asm mode, print comments instead. This eliminates a non-comment difference between verbose-asm mode and non-verbose-asm mode. Also, factor out the relevant code out of all the targets and into target-independent code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83392 91177308-0d34-0410-b5e6-96231b3b80d8 commit c28187ff2fb70821affaa8b0a58b2a350af7b795 Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 6 17:25:50 2009 +0000 Fix PR5112, a miscompilation on gcc-4.0.3. Patch by Collin Winter! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83391 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6f9e3d8c96438bfdc3953f3f85a44753e3bcf652 Author: Chris Lattner <sabre@nondot.org> Date: Tue Oct 6 16:59:46 2009 +0000 remove predicate simplifier, it never got the last bugs beaten out of it, and jump threading, condprop and gvn are now getting most of the benefit. This was approved by Nicholas and Nicolas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83390 91177308-0d34-0410-b5e6-96231b3b80d8 commit f4a940b7700547f0f96469c52d155d15c97306ac Author: Richard Osborne <richard@xmos.com> Date: Tue Oct 6 16:17:57 2009 +0000 Remove xs1b predicate since it is no longer needed to differentiate betweem xs1a and xs1b. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83383 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1163f506d4d4cf143812d4b729ab43524f043a66 Author: Richard Osborne <richard@xmos.com> Date: Tue Oct 6 16:01:09 2009 +0000 Remove xs1a subtarget. xs1a is a preproduction device used in early development boards which is no longer supported in the XMOS toolchain. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83381 91177308-0d34-0410-b5e6-96231b3b80d8 commit d90b176bd923fef57b155202ce529076f3b4c587 Author: Richard Osborne <richard@xmos.com> Date: Tue Oct 6 15:41:52 2009 +0000 Default to the xs1b subtarget git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83380 91177308-0d34-0410-b5e6-96231b3b80d8 commit f2519d6193d736ee7f2b9cc24e0143cfa933f79e Author: Duncan Sands <baldrick@free.fr> Date: Tue Oct 6 15:40:36 2009 +0000 Introduce and use convenience methods for getting pointer types where the element is of a basic builtin type. For example, to get an i8* use getInt8PtrTy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83379 91177308-0d34-0410-b5e6-96231b3b80d8 commit 33b6450f08ca9ef6306adbd8cdb24145bf9a2202 Author: Jim Grosbach <grosbach@apple.com> Date: Tue Oct 6 15:03:44 2009 +0000 grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83378 91177308-0d34-0410-b5e6-96231b3b80d8 commit f434889fb46c722f22c99a827ccc026f6271e3cd Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 03:15:38 2009 +0000 Fix cut-n-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83367 91177308-0d34-0410-b5e6-96231b3b80d8 commit de8d48befd3a916c3389898c67a4f4adfa61fe78 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 03:04:58 2009 +0000 Update processDebugLoc() to handle requests to process debug info, before and after emitting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83364 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5450fc15cb5de674d4e5203ab9ace59d3d6c38e5 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 02:19:11 2009 +0000 Update processDebugLoc() so that it can be used to process debug info before and after printing an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83363 91177308-0d34-0410-b5e6-96231b3b80d8 commit ac35dcf9887f9e7883745876525c2a7dc39bf8d4 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 02:01:32 2009 +0000 Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83362 91177308-0d34-0410-b5e6-96231b3b80d8 commit 393a46deb66be6885fd064a38e650bed859af5a1 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 01:50:42 2009 +0000 Add utility routine to set begin and end labels for DbgScopes. This will be used by processDebugLoc(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83361 91177308-0d34-0410-b5e6-96231b3b80d8 commit 77354f12a0fd1882f4ec787e0a4309c2aaeae819 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 01:31:35 2009 +0000 Remove unintentional function decl. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83356 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8413999c15ade93fff73f9e43738f1dfd885ba70 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 01:26:37 2009 +0000 Add utility routine to collect variable debug info. This is not yet used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83355 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5d3b7ca3aa24f7b0f1edc18c8f72d9bf1a84169c Author: Jeffrey Yasskin <jyasskin@google.com> Date: Tue Oct 6 00:35:55 2009 +0000 Fix http://llvm.org/PR5116 by rolling back r60822. This passes `make unittests check-lit` on both x86-64 Linux and x86-32 Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83353 91177308-0d34-0410-b5e6-96231b3b80d8 commit 93d2e89b3e82de8ab53b252b5f86de4e3b6980b6 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 00:09:08 2009 +0000 Set default location for the function if it is not already set. This code is not yet enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83349 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95d477eff9aa5b68b022546565f0a41eee38cb89 Author: Devang Patel <dpatel@apple.com> Date: Tue Oct 6 00:03:14 2009 +0000 Existence of a compile unit for input source file is a good indicator to check debug info's presence in a module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83348 91177308-0d34-0410-b5e6-96231b3b80d8 commit 186ee5cfbdf8c08394250e41d4bd6493999d56a1 Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 5 23:59:00 2009 +0000 If subprogram die is not available then construct new one. This can happen if debug info is processed lazily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83347 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8c62b1e8b968a5a02d52913d3f4957e7a307bd5e Author: Jeffrey Yasskin <jyasskin@google.com> Date: Mon Oct 5 23:51:08 2009 +0000 Add a test for http://llvm.org/PR3043. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83346 91177308-0d34-0410-b5e6-96231b3b80d8 commit 695c8b08cab0e2844ddc14e3e7f87916fd90fdc6 Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 5 23:40:42 2009 +0000 Adjust context for the global variables that are not at file scope, e.g. void foo() { static int bar = 42; } Here, foo's DIE is parent of bar's DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83344 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6bd5cc8a280aee4124ba96c146ea9672ae8a9712 Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 5 23:22:08 2009 +0000 Set address while constructing DIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83343 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4b1adaa251c9e496d2e1be180dd83da49a001548 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 5 23:05:32 2009 +0000 CMake misses a check for sbrk on NetBSD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83341 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2bffa8f29fe36f76343f7bf82beefa5ef505b3fe Author: Evan Phoenix <evan@fallingsnow.net> Date: Mon Oct 5 22:53:52 2009 +0000 Extend ConstantFolding to understand signed overflow variants git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83338 91177308-0d34-0410-b5e6-96231b3b80d8 commit adf4cf604eeca26d6a854945893fa6c264e02900 Author: Jim Grosbach <grosbach@apple.com> Date: Mon Oct 5 22:30:23 2009 +0000 In Thumb1, the register scavenger is not always able to use an emergency spill slot. When frame references are via the frame pointer, they will be negative, but Thumb1 load/store instructions only allow positive immediate offsets. Instead, Thumb1 will spill to R12. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83336 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1567166b9fe417a0656f9fcb2a18b35d915c34c3 Author: Evan Phoenix <evan@fallingsnow.net> Date: Mon Oct 5 22:29:11 2009 +0000 First test commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83334 91177308-0d34-0410-b5e6-96231b3b80d8 commit 72c9ef41f51bf3a71ce5d44001d944e4223679f3 Author: Edwin Török <edwintorok@gmail.com> Date: Mon Oct 5 21:15:43 2009 +0000 Don't treat malloc calls with non-matching prototype as malloc. Fixes second part of PR5130, miscompilation in FreeBSD kernel, where malloc takes 3 params, and *does* initialize memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83324 91177308-0d34-0410-b5e6-96231b3b80d8 commit ddaf8eb6dc30ea98c9f28eefa779a70d14114fd7 Author: Edward O'Callaghan <eocallaghan@auroraux.org> Date: Mon Oct 5 18:43:19 2009 +0000 No newline at end of files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83318 91177308-0d34-0410-b5e6-96231b3b80d8 commit 946d0aef89afb5752d65e1900532c2afdc0cd700 Author: Devang Patel <dpatel@apple.com> Date: Mon Oct 5 18:03:19 2009 +0000 Gracefully handle various scopes while recording source line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83317 91177308-0d34-0410-b5e6-96231b3b80d8 commit f49f7b0e07de54727532f40a75be162878b882c7 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 5 16:36:26 2009 +0000 Remove an unnnecessary LLVMContext argument in ConstantFoldLoadThroughGEPConstantExpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83311 91177308-0d34-0410-b5e6-96231b3b80d8 commit 3af2d41b3ea4d448dffb3761ea0339e7025ec447 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 5 16:31:55 2009 +0000 Use Use::operator= instead of Use::set, for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83310 91177308-0d34-0410-b5e6-96231b3b80d8 commit 6421f8134ceb2bb306e98dda770afc317fcbff42 Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 5 15:52:08 2009 +0000 Remove explicit enum integer values. They don't appear to be needed, and they make it less convenient to add new entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83308 91177308-0d34-0410-b5e6-96231b3b80d8 commit a93849c7f7d379b51fa23747f75afa5252fe3eae Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 5 15:42:08 2009 +0000 Add RIP to GR64_NOREX. This fixed a MachineVerifier error when RIP is used in an operand which requires GR64_NOREX. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83307 91177308-0d34-0410-b5e6-96231b3b80d8 commit 290c17ca7b6f528a6780647273e9b9169a58d9eb Author: Dan Gohman <gohman@apple.com> Date: Mon Oct 5 15:23:17 2009 +0000 Fix a name in a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83306 91177308-0d34-0410-b5e6-96231b3b80d8 commit 807767e1e711d943b51e579413858adbbc6e9807 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 07:07:29 2009 +0000 callgraph changes came after the 2.6 branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83299 91177308-0d34-0410-b5e6-96231b3b80d8 commit 82cdc06a6626e9a9fae300fafaeae9702ffb3808 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 05:54:46 2009 +0000 strength reduce a ton of type equality tests to check the typeid (Through the new predicates I added) instead of going through a context and doing a pointer comparison. Besides being cheaper, this allows a smart compiler to turn the if sequence into a switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83297 91177308-0d34-0410-b5e6-96231b3b80d8 commit 4509b017dfea39a23da470417d3abbeab298b79f Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 05:48:40 2009 +0000 add more type predicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83296 91177308-0d34-0410-b5e6-96231b3b80d8 commit 2825098ca09e0a7a620fafe8fe422071c1ff3291 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 05:26:04 2009 +0000 teach the optimizer how to constant fold uadd/usub intrinsics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83295 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc5e4678c9bc6558c66c0e42cc61b14ce68cc984 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 05:06:24 2009 +0000 simplify this code a bunch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83294 91177308-0d34-0410-b5e6-96231b3b80d8 commit db63a6816974cca1962bce6a84d5baa7b51cdd1e Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 05:05:57 2009 +0000 add some helper functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83293 91177308-0d34-0410-b5e6-96231b3b80d8 commit 5fd5ce6e5f28b20073b61cfcaa684418bda852ae Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 05:00:35 2009 +0000 code simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83292 91177308-0d34-0410-b5e6-96231b3b80d8 commit f68c8b637b794fc2a98b75b41077ae21901243cc Author: Evan Cheng <evan.cheng@apple.com> Date: Mon Oct 5 02:51:06 2009 +0000 Move implicit and paralle to a separate codegen specific section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83291 91177308-0d34-0410-b5e6-96231b3b80d8 commit 95ac4ebe1d2951233c5e2dad1e9873258b890f3f Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 02:47:47 2009 +0000 instcombine shouldn't delete all null checks for mallocs. This fixes PR5130. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83290 91177308-0d34-0410-b5e6-96231b3b80d8 commit d511acce19f3f29ab933a90e0f1972d31685fd40 Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 02:35:05 2009 +0000 stop MachineFunctionPass from claiming that it preserves LoopDependence info, which causes dependence info to be linked into lli. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83289 91177308-0d34-0410-b5e6-96231b3b80d8 commit afb1c45acace0b0f6fe0aaae1cf08ac6ad93091a Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 02:29:51 2009 +0000 remove llvm-db: it is completely broken and if anyone wants to do a debugger, they should not base it on llvm-db (which not following almost any "best practices"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83288 91177308-0d34-0410-b5e6-96231b3b80d8 commit b2d434792c8ef1d97da45acc4266b873c71b837e Author: Chris Lattner <sabre@nondot.org> Date: Mon Oct 5 02:12:39 2009 +0000 add some completely unformated and probably incoherent notes about things I saw while reading all the commits between the 2.5 and 2.6 release branches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83287 91177308-0d34-0410-b5e6-96231b3b80d8 commit fa289966b6b7ae54a3c17822f5155d0588783342 Author: Owen Anderson <resistor@mac.com> Date: Sun Oct 4 18:49:55 2009 +0000 Do away with the strange use of BitVectors in SSI, and just use normal sets. This makes the code much more C++/LLVM-ish. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83286 91177308-0d34-0410-b5e6-96231b3b80d8 commit cc0aeb29f77c1d84341f2843edf6c0f78642f125 Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Oct 4 18:18:39 2009 +0000 Whitespace and formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83285 91177308-0d34-0410-b5e6-96231b3b80d8 commit 20bf333554b755a1f1633e0ee0517ac6ec7ca5fa Author: Jakob Stoklund Olesen <stoklund@2pi.dk> Date: Sun Oct 4 17:54:36 2009 +0000 Remove trailing whitespace from build output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83284 91177308-0d34-0410-b5e6-96231b3b80d8 commit 11a021db1a24a060fbd14a383a0da3cb7ec439eb Author: Owen Anderson <resistor@mac.com> Date: Sun Oct 4 17:52:13 2009 +0000 Fix a typo in the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83283 91177308-0d34-0410-b5e6-96231b3b80d8 commit de650865a291a022b69a1b2b9e6e554073915e5b Author: Owen Anderson <resistor@mac.com> Date: Sun Oct 4 17:47:39 2009 +0000 SSI needs to require DT and DF transitively, since it uses them outside of its runOnFunction. Similarly, it can be marked setPreservesAll, since it does no work in its runOnFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83282 91177308-0d34-0410-b5e6-96231b3b80d8 commit 85cf4cfee00f555cc782773fe9c1241b038a24cd Author: Oscar Fuentes <ofv@wanadoo.es> Date: Sun Oct 4 06:24:57 2009 +0000 CMake: remove .so file extension from library names when building dependency info. Patch by Peter Collingbourne! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83275 91177308-0d34-0410-b5e6-96231b3b80d8 commit 9c46ca5cfeec9bc6fe2d8ddc14dfefa66151189c Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 4 06:13:54 2009 +0000 Allow -inline-threshold override default threshold even if compiling to optimize for size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83274 91177308-0d34-0410-b5e6-96231b3b80d8 commit 763375a457d612e0300d71f78850f9bcf6e14650 Author: Evan Cheng <evan.cheng@apple.com> Date: Sun Oct 4 05:25:42 2009 +0000 Rename enum NumOccurrences to NumOccurrencesFlag since there is a member named NumOccurrences. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83273 91177308-0d34-0410-b5e6-96231b3b80d8 commit 1ec15365c18c2cd9a5f73ec27e356dcbcfb7212f Author: Nick Lewycky <nicholas@mxc.ca> Date: Sat Oct 3 19:30:43 2009 +0000 Requires element types in a constant initializer to match the element types of of the constant. This reverts r6544 and r7428. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83270 91177308-0d34-0410-b5e6-96231b3b80d8 commit 8af7b535e3d97a9edb29b0ce3e6c4a4529b081a8 Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Oct 3 04:44:16 2009 +0000 Add a comment to describe letters used in multiclass name suffixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83257 91177308-0d34-0410-b5e6-96231b3b80d8 commit 64c60918f15571fbb4dabdfa074c2bcdc0b9296d Author: Bob Wilson <bob.wilson@apple.com> Date: Sat Oct 3 04:41:21 2009 +0000 Fix encoding problem for VMLS instruction. Thanks to Johnny Chen for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83256 91177308-0d34-0410-b5e6-96231b3b80d8 commit ead9d35fa9885422f4d1168f9261c63e194b21ff Author: Lang Hames <lhames@gmail.com> Date: Sat Oct 3 04:31:31 2009 +0000 Oops. Renamed remaining MachineInstrIndex references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83255 91177308-0d34-0410-b5e6-96231b3b80d8 commit 0a6f4525040fd90996d1391cef8b24284b817ed3 Author: Lang Hames <lhames@gmail.com> Date: Sat Oct 3 04:21:37 2009 +0000 Renamed MachineInstrIndex to LiveIndex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83254 91177308-0d34-0410-b5e6-96231b3b80d8 commit c4ab6051f82185a6cbb90a9269924510c4ee1064 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Oct 2 19:52:33 2009 +0000 Try to fix unit test linking on linux ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83252 91177308-0d34-0410-b5e6-96231b3b80d8 commit 56656b73ef40540b43ebb537846f1ab09b7bcb3b Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Oct 2 19:36:31 2009 +0000 MingW build fixes - MingW needs -lpsapi (in ${LIBS}) linked after -lLLVMSystem. Noticed by Ronald Pijnacker! - Some parts of the System library must be build with exceptions on windows. Based on a patch by Jay Foad! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83251 91177308-0d34-0410-b5e6-96231b3b80d8 commit e3901ce4809ad26b8173855549cc5adbe7b29b56 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Fri Oct 2 15:59:52 2009 +0000 Fix a use-after-free in post-ra-scheduling. MI->addOperand invalidates references to it's operands, avoid touching the operand after a new one was added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83249 91177308-0d34-0410-b5e6-96231b3b80d8 commit 30aa6a6b4bc96797d71e8c3cd542973a198124b5 Author: Edwin Török <edwintorok@gmail.com> Date: Fri Oct 2 09:30:03 2009 +0000 Fix make rule when objdir is inside srcdir. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83243 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
|
|
8771ff1860 | rename libclamav/{llvm->c++} |