Skip to content
  1. Aug 01, 2012
  2. Jul 31, 2012
  3. Jul 30, 2012
  4. Jul 29, 2012
  5. Jul 28, 2012
  6. Jul 27, 2012
  7. Jul 26, 2012
    • Jakob Stoklund Olesen's avatar
      Use an otherwise unused variable. · 35400b1d
      Jakob Stoklund Olesen authored
      llvm-svn: 160798
      35400b1d
    • Jakob Stoklund Olesen's avatar
      Start scaffolding for a MachineTraceMetrics analysis pass. · f9029fef
      Jakob Stoklund Olesen authored
      This is still a work in progress.
      
      Out-of-order CPUs usually execute instructions from multiple basic
      blocks simultaneously, so it is necessary to look at longer traces when
      estimating the performance effects of code transformations.
      
      The MachineTraceMetrics analysis will pick a typical trace through a
      given basic block and provide performance metrics for the trace. Metrics
      will include:
      
      - Instruction count through the trace.
      - Issue count per functional unit.
      - Critical path length, and per-instruction 'slack'.
      
      These metrics can be used to determine the performance limiting factor
      when executing the trace, and how it will be affected by a code
      transformation.
      
      Initially, this will be used by the early if-conversion pass.
      
      llvm-svn: 160796
      f9029fef
    • Dan Gohman's avatar
      Add a floor intrinsic. · 0b3d7829
      Dan Gohman authored
      llvm-svn: 160791
      0b3d7829
  8. Jul 25, 2012
    • Manman Ren's avatar
      Disable rematerialization in TwoAddressInstructionPass. · cc1dc6dc
      Manman Ren authored
      It is redundant; RegisterCoalescer will do the remat if it can't eliminate
      the copy. Collected instruction counts before and after this. A few extra
      instructions are generated due to spilling but it is normal to see these kinds
      of changes with almost any small codegen change, according to Jakob.
      
      This also fixed rdar://11830760 where xor is expected instead of movi0.
      
      llvm-svn: 160749
      cc1dc6dc
    • Jakob Stoklund Olesen's avatar
      Preserve 2-addr constraints in ConnectedVNInfoEqClasses. · cef9a618
      Jakob Stoklund Olesen authored
      When a live range splits into multiple connected components, we would
      arbitrarily assign <undef> uses to component 0. This is wrong when the
      use is tied to a def that gets assigned to a different component:
      
        %vreg69<def> = ADD8ri %vreg68<undef>, 1
      
      The use and def must get the same virtual register.
      
      Fix this by assigning <undef> uses to the same component as the value
      defined by the instruction, if any:
      
        %vreg69<def> = ADD8ri %vreg69<undef>, 1
      
      This fixes PR13402. The PR has a test case which I am not including
      because it is unlikely to keep exposing this behavior in the future.
      
      llvm-svn: 160739
      cef9a618
    • Jakob Stoklund Olesen's avatar
      Verify two-address constraints more carefully. · c6fd3dee
      Jakob Stoklund Olesen authored
      Include <undef> operands and virtual registers after leaving SSA form.
      
      llvm-svn: 160734
      c6fd3dee
  9. Jul 24, 2012
Loading