Skip to content
  1. Nov 08, 2011
    • Jakob Stoklund Olesen's avatar
      Clear old DomainValue after merging. · 12058818
      Jakob Stoklund Olesen authored
      The old value may still be referenced by some live-out list, and we
      don't wan't to collapse those instructions twice.
      
      This fixes the "Can only swizzle VMOVD" assertion in some armv7 SPEC
      builds.
      
      <rdar://problem/10413292>
      
      llvm-svn: 144117
      12058818
    • Jakob Stoklund Olesen's avatar
      Kill and collapse outstanding DomainValues. · a70e9417
      Jakob Stoklund Olesen authored
      DomainValues that are only used by "don't care" instructions are now
      collapsed to the first possible execution domain after all basic blocks
      have been processed.  This typically means the PS domain on x86.
      
      For example, the vsel_i64 and vsel_double functions in sse2-blend.ll are
      completely collapsed to the PS domain instead of containing a mix of
      execution domains created by isel.
      
      llvm-svn: 144037
      a70e9417
  2. Nov 07, 2011
  3. Sep 28, 2011
  4. Aug 06, 2010
  5. May 26, 2010
  6. Apr 13, 2010
  7. Apr 07, 2010
  8. Apr 06, 2010
  9. Apr 04, 2010
  10. Mar 31, 2010
  11. Mar 30, 2010
  12. Mar 25, 2010
    • Daniel Dunbar's avatar
      Fix -Asserts warning, again. · d919276b
      Daniel Dunbar authored
      llvm-svn: 99542
      d919276b
    • 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
  13. Mar 24, 2010
Loading