Skip to content
  1. Mar 17, 2012
  2. Feb 04, 2012
    • Andrew Trick's avatar
      TargetPassConfig: confine the MC configuration to TargetMachine. · f8ea108c
      Andrew Trick authored
      Passes prior to instructon selection are now split into separate configurable stages.
      Header dependencies are simplified.
      The bulk of this diff is simply removal of the silly DisableVerify flags.
      
      Sorry for the target header churn. Attempting to stabilize them.
      
      llvm-svn: 149754
      f8ea108c
  3. Feb 03, 2012
    • Andrew Trick's avatar
      Added TargetPassConfig. The first little step toward configuring codegen passes. · ccb67365
      Andrew Trick authored
      Allows command line overrides to be centralized in LLVMTargetMachine.cpp.
      LLVMTargetMachine can intercept common passes and give precedence to command line overrides.
      Allows adding "internal" target configuration options without touching TargetOptions.
      Encapsulates the PassManager.
      Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs.
      Allows modifying the target configuration hooks without rebuilding the world.
      
      llvm-svn: 149672
      ccb67365
    • Andrew Trick's avatar
      whitespace · 808a7a6c
      Andrew Trick authored
      llvm-svn: 149671
      808a7a6c
  4. Feb 02, 2012
    • Andrew Trick's avatar
      Instruction scheduling itinerary for Intel Atom. · 8523b16f
      Andrew Trick authored
      Adds an instruction itinerary to all x86 instructions, giving each a default latency of 1, using the InstrItinClass IIC_DEFAULT.
      
      Sets specific latencies for Atom for the instructions in files X86InstrCMovSetCC.td, X86InstrArithmetic.td, X86InstrControl.td, and X86InstrShiftRotate.td. The Atom latencies for the remainder of the x86 instructions will be set in subsequent patches.
      
      Adds a test to verify that the scheduler is working.
      
      Also changes the scheduling preference to "Hybrid" for i386 Atom, while leaving x86_64 as ILP.
      
      Patch by Preston Gurd!
      
      llvm-svn: 149558
      8523b16f
  5. Dec 20, 2011
  6. Dec 02, 2011
    • Nick Lewycky's avatar
      Move global variables in TargetMachine into new TargetOptions class. As an API · 50f02cb2
      Nick Lewycky authored
      change, now you need a TargetOptions object to create a TargetMachine. Clang
      patch to follow.
      
      One small functionality change in PTX. PTX had commented out the machine
      verifier parts in their copy of printAndVerify. That now calls the version in
      LLVMTargetMachine. Users of PTX who need verification disabled should rely on
      not passing the command-line flag to enable it.
      
      llvm-svn: 145714
      50f02cb2
  7. Nov 16, 2011
  8. Jul 20, 2011
  9. Jul 19, 2011
  10. Jun 30, 2011
  11. Jan 10, 2011
  12. Nov 15, 2010
  13. Oct 03, 2010
  14. May 11, 2010
  15. Apr 17, 2010
    • Dan Gohman's avatar
      Use const qualifiers with TargetLowering. This eliminates several · 21cea8ac
      Dan Gohman authored
      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.
      
      llvm-svn: 101635
      21cea8ac
  16. Mar 25, 2010
    • Jakob Stoklund Olesen's avatar
      Add a late SSEDomainFix pass that twiddles SSE instructions to avoid domain crossings. · 49e121d5
      Jakob Stoklund Olesen authored
      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.
      
      llvm-svn: 99524
      49e121d5
  17. Mar 24, 2010
  18. Feb 15, 2010
    • Anton Korobeynikov's avatar
      Preliminary patch to improve dwarf EH generation - Hooks to return Personality... · ae4ccc10
      Anton Korobeynikov authored
      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
      
      llvm-svn: 96285
      ae4ccc10
  19. Feb 02, 2010
  20. Jan 18, 2010
  21. Jan 16, 2010
    • Bill Wendling's avatar
      Retrying r91337: · bf5cfa1a
      Bill Wendling authored
      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.
      
      llvm-svn: 93616
      bf5cfa1a
  22. Dec 21, 2009
  23. Aug 12, 2009
  24. Aug 03, 2009
  25. Jul 16, 2009
  26. Jul 15, 2009
    • Daniel Dunbar's avatar
      Reapply TargetRegistry refactoring commits. · e833810a
      Daniel Dunbar authored
      --- Reverse-merging r75799 into '.':
       U   test/Analysis/PointerTracking
      U    include/llvm/Target/TargetMachineRegistry.h
      U    include/llvm/Target/TargetMachine.h
      U    include/llvm/Target/TargetRegistry.h
      U    include/llvm/Target/TargetSelect.h
      U    tools/lto/LTOCodeGenerator.cpp
      U    tools/lto/LTOModule.cpp
      U    tools/llc/llc.cpp
      U    lib/Target/PowerPC/PPCTargetMachine.h
      U    lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
      U    lib/Target/PowerPC/PPCTargetMachine.cpp
      U    lib/Target/PowerPC/PPC.h
      U    lib/Target/ARM/ARMTargetMachine.cpp
      U    lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
      U    lib/Target/ARM/ARMTargetMachine.h
      U    lib/Target/ARM/ARM.h
      U    lib/Target/XCore/XCoreTargetMachine.cpp
      U    lib/Target/XCore/XCoreTargetMachine.h
      U    lib/Target/PIC16/PIC16TargetMachine.cpp
      U    lib/Target/PIC16/PIC16TargetMachine.h
      U    lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp
      U    lib/Target/Alpha/AlphaTargetMachine.cpp
      U    lib/Target/Alpha/AlphaTargetMachine.h
      U    lib/Target/X86/X86TargetMachine.h
      U    lib/Target/X86/X86.h
      U    lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
      U    lib/Target/X86/AsmPrinter/X86AsmPrinter.cpp
      U    lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h
      U    lib/Target/X86/X86TargetMachine.cpp
      U    lib/Target/MSP430/MSP430TargetMachine.cpp
      U    lib/Target/MSP430/MSP430TargetMachine.h
      U    lib/Target/CppBackend/CPPTargetMachine.h
      U    lib/Target/CppBackend/CPPBackend.cpp
      U    lib/Target/CBackend/CTargetMachine.h
      U    lib/Target/CBackend/CBackend.cpp
      U    lib/Target/TargetMachine.cpp
      U    lib/Target/IA64/IA64TargetMachine.cpp
      U    lib/Target/IA64/AsmPrinter/IA64AsmPrinter.cpp
      U    lib/Target/IA64/IA64TargetMachine.h
      U    lib/Target/IA64/IA64.h
      U    lib/Target/MSIL/MSILWriter.cpp
      U    lib/Target/CellSPU/SPUTargetMachine.h
      U    lib/Target/CellSPU/SPU.h
      U    lib/Target/CellSPU/AsmPrinter/SPUAsmPrinter.cpp
      U    lib/Target/CellSPU/SPUTargetMachine.cpp
      U    lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp
      U    lib/Target/Mips/MipsTargetMachine.cpp
      U    lib/Target/Mips/MipsTargetMachine.h
      U    lib/Target/Mips/Mips.h
      U    lib/Target/Sparc/AsmPrinter/SparcAsmPrinter.cpp
      U    lib/Target/Sparc/SparcTargetMachine.cpp
      U    lib/Target/Sparc/SparcTargetMachine.h
      U    lib/ExecutionEngine/JIT/TargetSelect.cpp
      U    lib/Support/TargetRegistry.cpp
      
      llvm-svn: 75820
      e833810a
    • Stuart Hastings's avatar
      Revert 75762, 75763, 75766..75769, 75772..75775, 75778, 75780, 75782 to repair... · 338191cd
      Stuart Hastings authored
      Revert 75762, 75763, 75766..75769, 75772..75775, 75778, 75780, 75782 to repair broken LLVM-GCC build.
      Will revert 75770 in the llvm-gcc trunk.
      
      llvm-svn: 75799
      338191cd
    • Daniel Dunbar's avatar
      863e587d
    • Daniel Dunbar's avatar
      Provide TargetMachine implementations with reference to Target they were created · 6db8134e
      Daniel Dunbar authored
      from.
       - This commit is almost entirely propogating the reference through the
         TargetMachine subclasses' constructor calls.
      
      llvm-svn: 75778
      6db8134e
    • Daniel Dunbar's avatar
      Register Target's TargetMachine and AsmPrinter in the new registry. · b22f50e4
      Daniel Dunbar authored
       - This abuses TargetMachineRegistry's constructor for now, this will get
         cleaned up in time.
      
      llvm-svn: 75762
      b22f50e4
  27. Jul 14, 2009
    • David Greene's avatar
      · a31f96cf
      David Greene authored
      Have asm printers use formatted_raw_ostream directly to avoid a
      dynamic_cast<>.
      
      llvm-svn: 75670
      a31f96cf
  28. Jul 06, 2009
  29. Jul 01, 2009
  30. Jun 27, 2009
  31. May 30, 2009
Loading