Skip to content
  1. May 20, 2012
  2. May 19, 2012
  3. May 18, 2012
    • Jakob Stoklund Olesen's avatar
      Move all work list processing to copyCoalesceWorkList(). · b686a2ce
      Jakob Stoklund Olesen authored
      This will make it possible to filter out erased instructions later.
      
      llvm-svn: 157073
      b686a2ce
    • Nuno Lopes's avatar
      allow LazyValueInfo::getEdgeValue() to reason about multiple edges from the... · ac59380d
      Nuno Lopes authored
      allow LazyValueInfo::getEdgeValue() to reason about multiple edges from the same switch instruction by doing union of ranges (which may still be conservative, but it's more aggressive than before)
      
      llvm-svn: 157071
      ac59380d
    • Jim Grosbach's avatar
      Refactor data-in-code annotations. · 4b63d2ae
      Jim Grosbach authored
      Use a dedicated MachO load command to annotate data-in-code regions.
      This is the same format the linker produces for final executable images,
      allowing consistency of representation and use of introspection tools
      for both object and executable files.
      
      Data-in-code regions are annotated via ".data_region"/".end_data_region"
      directive pairs, with an optional region type.
      
      data_region_directive := ".data_region" { region_type }
      region_type := "jt8" | "jt16" | "jt32" | "jta32"
      end_data_region_directive := ".end_data_region"
      
      The previous handling of ARM-style "$d.*" labels was broken and has
      been removed. Specifically, it didn't handle ARM vs. Thumb mode when
      marking the end of the section.
      
      rdar://11459456
      
      llvm-svn: 157062
      4b63d2ae
    • Eric Christopher's avatar
      Remove duplicate code that we could just fallthrough to. · e2b36ce2
      Eric Christopher authored
      llvm-svn: 157060
      e2b36ce2
    • Jakob Stoklund Olesen's avatar
      Simplify RegisterCoalescer::copyCoalesceInMBB(). · b954b91a
      Jakob Stoklund Olesen authored
      It is no longer necessary to separate VirtCopies, PhysCopies, and
      ImpDefCopies. Implicitly defined copies are extremely rare after we
      added the ProcessImplicitDefs pass, and physical register copies are not
      joined any longer.
      
      llvm-svn: 157059
      b954b91a
    • Eric Christopher's avatar
      Add support for the mips 'x' inline asm modifier. · 9ca26cfb
      Eric Christopher authored
      Patch by Jack Carter.
      
      llvm-svn: 157057
      9ca26cfb
    • Jakob Stoklund Olesen's avatar
      Remove support for PhysReg joining. · d78d7b05
      Jakob Stoklund Olesen authored
      This has been disabled for a while, and it is not a feature we want to
      support. Copies between physical and virtual registers are eliminated by
      good hinting support in the register allocator. Joining virtual and
      physical registers is really a form of register allocation, and the
      coalescer is not properly equipped to do that. In particular, it cannot
      backtrack coalescing decisions, and sometimes that would cause it to
      create programs that were impossible to register allocate, by exhausting
      a small register class.
      
      It was also very difficult to keep track of the live ranges of aliasing
      registers when extending the live range of a physreg. By disabling
      physreg joining, we can let fixed physreg live ranges remain constant
      throughout the register allocator super-pass.
      
      One type of physreg joining remains: A virtual register that has a
      single value which is a copy of a reserved register can be merged into
      the reserved physreg. This always lowers register pressure, and since we
      don't compute live ranges for reserved registers, there are no problems
      with aliases.
      
      llvm-svn: 157055
      d78d7b05
    • Stepan Dyatkovskiy's avatar
      Recommited reworked r156804: · b638ee0e
      Stepan Dyatkovskiy authored
      SelectionDAGBuilder::Clusterify : main functinality was replaced with CRSBuilder::optimize, so big part of Clusterify's code was reduced.
      
      llvm-svn: 157046
      b638ee0e
    • Craig Topper's avatar
      Simplify code a bit. No functional change intended. · 0cf4038c
      Craig Topper authored
      llvm-svn: 157044
      0cf4038c
    • Craig Topper's avatar
      Simplify handling of v16i8 shuffles and fix a missed optimization. · 92db928e
      Craig Topper authored
      llvm-svn: 157043
      92db928e
    • Evan Cheng's avatar
      Teach two-address pass to update the "source" map so it doesn't perform a · 22d405f5
      Evan Cheng authored
      non-profitable commute using outdated info. The test case would still fail
      because of poor pre-RA schedule. That will be fixed by MI scheduler.
      
      rdar://11472010
      
      llvm-svn: 157038
      22d405f5
    • Eric Christopher's avatar
      Clarify comment. · 5d5338fb
      Eric Christopher authored
      llvm-svn: 157033
      5d5338fb
Loading