Skip to content
  1. Apr 10, 2009
  2. Apr 09, 2009
  3. Apr 08, 2009
    • Rafael Espindola's avatar
      Re-apply 68552. · 3b2df10c
      Rafael Espindola authored
      Tested by bootstrapping llvm-gcc and using that to build llvm.
      
      llvm-svn: 68645
      3b2df10c
    • Bob Wilson's avatar
      Fix PR3795: Apply Dan's suggested fix for · 866c174f
      Bob Wilson authored
      ARMTargetLowering::isLegalAddressingMode.
      
      llvm-svn: 68619
      866c174f
    • Rafael Espindola's avatar
      Avoid a hard coded constant. · d173f423
      Rafael Espindola authored
      llvm-svn: 68603
      d173f423
    • Sanjiv Gupta's avatar
      Emit .line debug directives for stoppoints. The debug location is retrieved by... · 44ea053a
      Sanjiv Gupta authored
      Emit .line debug directives for stoppoints. The debug location is retrieved by the MachineInstr itself, rather than by custom handling the DBG_STOPPOINT nodes.
      
      llvm-svn: 68602
      44ea053a
    • Sanjiv Gupta's avatar
      Handle indirect function calls. · 4b489c75
      Sanjiv Gupta authored
      Every function has the address of its frame in the beginning of code section.
      The frame address is retrieved and used to pass arguments.
      
      llvm-svn: 68597
      4b489c75
    • Dan Gohman's avatar
      Implement support for using modeling implicit-zero-extension on x86-64 · ad3e549a
      Dan Gohman authored
      with SUBREG_TO_REG, teach SimpleRegisterCoalescing to coalesce
      SUBREG_TO_REG instructions (which are similar to INSERT_SUBREG
      instructions), and teach the DAGCombiner to take advantage of this on
      targets which support it. This eliminates many redundant
      zero-extension operations on x86-64.
      
      This adds a new TargetLowering hook, isZExtFree. It's similar to
      isTruncateFree, except it only applies to actual definitions, and not
      no-op truncates which may not zero the high bits.
      
      Also, this adds a new optimization to SimplifyDemandedBits: transform
      operations like x+y into (zext (add (trunc x), (trunc y))) on targets
      where all the casts are no-ops. In contexts where the high part of the
      add is explicitly masked off, this allows the mask operation to be
      eliminated. Fix the DAGCombiner to avoid undoing these transformations
      to eliminate casts on targets where the casts are no-ops.
      
      Also, this adds a new two-address lowering heuristic. Since
      two-address lowering runs before coalescing, it helps to be able to
      look through copies when deciding whether commuting and/or
      three-address conversion are profitable.
      
      Also, fix a bug in LiveInterval::MergeInClobberRanges. It didn't handle
      the case that a clobber range extended both before and beyond an
      existing live range. In that case, multiple live ranges need to be
      added. This was exposed by the new subreg coalescing code.
      
      Remove 2008-05-06-SpillerBug.ll. It was bugpoint-reduced, and the
      spiller behavior it was looking for no longer occurrs with the new
      instruction selection.
      
      llvm-svn: 68576
      ad3e549a
    • Bill Wendling's avatar
      Temporarily revert r68552. This was causing a failure in the self-hosting LLVM · 4aa25b79
      Bill Wendling authored
      builds.
      
      --- Reverse-merging (from foreign repository) r68552 into '.':
      U    test/CodeGen/X86/tls8.ll
      U    test/CodeGen/X86/tls10.ll
      U    test/CodeGen/X86/tls2.ll
      U    test/CodeGen/X86/tls6.ll
      U    lib/Target/X86/X86Instr64bit.td
      U    lib/Target/X86/X86InstrSSE.td
      U    lib/Target/X86/X86InstrInfo.td
      U    lib/Target/X86/X86RegisterInfo.cpp
      U    lib/Target/X86/X86ISelLowering.cpp
      U    lib/Target/X86/X86CodeEmitter.cpp
      U    lib/Target/X86/X86FastISel.cpp
      U    lib/Target/X86/X86InstrInfo.h
      U    lib/Target/X86/X86ISelDAGToDAG.cpp
      U    lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
      U    lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp
      U    lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h
      U    lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h
      U    lib/Target/X86/X86ISelLowering.h
      U    lib/Target/X86/X86InstrInfo.cpp
      U    lib/Target/X86/X86InstrBuilder.h
      U    lib/Target/X86/X86RegisterInfo.td
      
      llvm-svn: 68560
      4aa25b79
  4. Apr 07, 2009
    • Rafael Espindola's avatar
      Reduce code duplication on the TLS implementation. · 1edda067
      Rafael Espindola authored
      This introduces a small regression on the generated code
      quality in the case we are just computing addresses, not
      loading values.
      
      Will work on it and on X86-64 support.
      
      llvm-svn: 68552
      1edda067
    • Jim Grosbach's avatar
      PR2985 / <rdar://problem/6584986> · fde2110a
      Jim Grosbach authored
      When compiling in Thumb mode, only the low (R0-R7) registers are available
      for most instructions. Breaking the low registers into a new register class
      handles this. Uses of R12, SP, etc, are handled explicitly where needed
      with copies inserted to move results into low registers where the rest of
      the code generator can deal with them.
      
      llvm-svn: 68545
      fde2110a
  5. Apr 06, 2009
  6. Apr 03, 2009
  7. Apr 02, 2009
  8. Apr 01, 2009
  9. Mar 31, 2009
Loading