Skip to content
  1. Nov 17, 2010
    • Evan Cheng's avatar
      Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, · 7f8ab6ee
      Evan Cheng authored
      and xor. The 32-bit move immediates can be hoisted out of loops by machine
      LICM but the isel hacks were preventing them.
      
      Instead, let peephole optimization pass recognize registers that are defined by
      immediates and the ARM target hook will fold the immediates in.
      
      Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ
      instructions if there are multiple uses. This happens when the 'and' is live
      out, machine sink would have sinked the computation and that ends up pessimizing
      code. The peephole pass would recognize situations where the 'and' can be
      toggled to define CPSR and eliminate the comparison anyway.
      
      2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking
      important optimizations.
      
      rdar://8663787, rdar://8241368
      
      llvm-svn: 119548
      7f8ab6ee
  2. Nov 16, 2010
  3. Nov 08, 2010
  4. Oct 18, 2010
  5. Oct 08, 2010
  6. Aug 31, 2010
  7. Aug 24, 2010
  8. Aug 14, 2010
    • Jim Grosbach's avatar
      Add a local stack object block allocation pass. This is still an · a030fa52
      Jim Grosbach authored
      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
      
      llvm-svn: 111059
      a030fa52
  9. Aug 13, 2010
  10. Aug 10, 2010
  11. Aug 06, 2010
    • Bill Wendling's avatar
      Add the Optimize Compares pass (disabled by default). · 7de9d52c
      Bill Wendling authored
      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.
      
      llvm-svn: 110423
      7de9d52c
  12. Aug 05, 2010
  13. Aug 04, 2010
  14. Jul 29, 2010
  15. Jul 24, 2010
  16. Jul 22, 2010
  17. Jul 10, 2010
  18. Jul 09, 2010
    • Bob Wilson's avatar
      --- Reverse-merging r107947 into '.': · 6586e9b2
      Bob Wilson authored
      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
      
      llvm-svn: 107987
      6586e9b2
    • Dan Gohman's avatar
      Re-apply bottom-up fast-isel, with fixes. Be very careful to avoid emitting · 0b5aa1cd
      Dan Gohman authored
      a DBG_VALUE after a terminator, or emitting any instructions before an EH_LABEL.
      
      llvm-svn: 107943
      0b5aa1cd
  19. Jul 08, 2010
  20. Jul 07, 2010
  21. Jul 01, 2010
  22. Jun 25, 2010
  23. May 28, 2010
  24. May 26, 2010
  25. May 23, 2010
  26. May 18, 2010
  27. May 14, 2010
  28. Apr 19, 2010
  29. Apr 17, 2010
  30. Apr 12, 2010
  31. Apr 07, 2010
  32. Apr 04, 2010
  33. Mar 13, 2010
    • Chris Lattner's avatar
      rearrange MCContext ownership. Before LLVMTargetMachine created it · e468f88b
      Chris Lattner authored
      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.
      
      llvm-svn: 98450
      e468f88b
Loading