Skip to content
  1. May 08, 2013
  2. May 07, 2013
  3. May 06, 2013
  4. May 05, 2013
  5. May 02, 2013
  6. May 01, 2013
  7. Apr 30, 2013
    • Hal Finkel's avatar
      LocalStackSlotAllocation improvements · 7153251a
      Hal Finkel authored
      First, taking advantage of the fact that the virtual base registers are allocated in order of the local frame offsets, remove the quadratic register-searching behavior. Because of the ordering, we only need to check the last virtual base register created.
      
      Second, store the frame index in the FrameRef structure, and get the frame index and the local offset from this structure at the top of the loop iteration. This allows us to de-nest the loops in insertFrameReferenceRegisters (and I think makes the code cleaner). I also moved the needsFrameBaseReg check into the first loop over instructions so that we don't bother pushing FrameRefs for instructions that don't want a virtual base register anyway.
      
      Lastly, and this is the only functionality change, avoid the creation of single-use virtual base registers. These are currently not useful because, in general, they end up replacing what would be one r+r instruction with an add and a r+i instruction. Committing this removes the XFAIL in CodeGen/PowerPC/2007-09-07-LoadStoreIdxForms.ll
      
      Jim has okayed this off-list.
      
      llvm-svn: 180799
      7153251a
    • Bill Wendling's avatar
      Emit the TLS initialization function pointers into the correct section. · fb7e32eb
      Bill Wendling authored
      The `llvm.tls_init_funcs' (created by the front-end) holds pointers to the TLS
      initialization functions. These need to be placed into the correct section so
      that they are run before `main()'.
      
      <rdar://problem/13733006>
      
      llvm-svn: 180737
      fb7e32eb
  8. Apr 27, 2013
    • Andrew Trick's avatar
      Generalize the MachineTraceMetrics public API. · 85058af6
      Andrew Trick authored
      Naturally, we should be able to pass in extra instructions, not just
      extra blocks.
      
      llvm-svn: 180667
      85058af6
    • Eric Christopher's avatar
      Use the target triple from the target machine rather than the module · 203e12bf
      Eric Christopher authored
      to determine whether or not we're on a darwin platform for debug code
      emitting.
      
      Solves the problem of a module with no triple on the command line
      and no triple in the module using non-gdb ok features on darwin. Fix
      up the member-pointers test to check the correct things for cross
      platform (DW_FORM_flag is a good prefix).
      
      Unfortunately no testcase because I have no ideas how to test something
      without a triple and without a triple in the module yet check
      precisely on two platforms. Ideas welcome.
      
      llvm-svn: 180660
      203e12bf
  9. Apr 26, 2013
  10. Apr 25, 2013
  11. Apr 24, 2013
    • Andrew Trick's avatar
      MI Sched: eliminate local vreg copies. · 85a1d4cb
      Andrew Trick authored
      For now, we just reschedule instructions that use the copied vregs and
      let regalloc elliminate it. I would really like to eliminate the
      copies on-the-fly during scheduling, but we need a complete
      implementation of repairIntervalsInRange() first.
      
      The general strategy is for the register coalescer to eliminate as
      many global copies as possible and shrink live ranges to be
      extended-basic-block local. The coalescer should not have to worry
      about resolving local copies (e.g. it shouldn't attemp to reorder
      instructions). The scheduler is a much better place to deal with local
      interference. The coalescer side of this equation needs work.
      
      llvm-svn: 180193
      85a1d4cb
    • Andrew Trick's avatar
      Register Coalescing: add a flag to disable rescheduling. · 608a698c
      Andrew Trick authored
      When MachineScheduler is enabled, this functionality can be
      removed. Until then, provide a way to disable it for test cases and
      designing MachineScheduler heuristics.
      
      llvm-svn: 180192
      608a698c
    • Andrew Trick's avatar
      MI Sched: regpressure tracing. · 7c791a3d
      Andrew Trick authored
      llvm-svn: 180191
      7c791a3d
Loading