Skip to content
  1. Oct 16, 2013
    • Tom Stellard's avatar
      R600: Fix a crash in the AMDILCFGStructurizer · b34186ae
      Tom Stellard authored
      We were calling llvm_unreachable() when failing to optimize the
      branch into if case.  However, it is still possible for us
      to structurize the CFG by duplicating blocks even if this optimization
      fails.
      
      Reviewed-by: Vincent Lejeune<vljn at ovi.com>
      llvm-svn: 192813
      b34186ae
    • Tom Stellard's avatar
      R600: Remove some dead code from the AMDILCFGStructurizer · 69f86d19
      Tom Stellard authored
      Reviewed-by: Vincent Lejeune<vljn at ovi.com>
      llvm-svn: 192812
      69f86d19
    • Chad Rosier's avatar
      Fix comment. · f2b25455
      Chad Rosier authored
      llvm-svn: 192805
      f2b25455
    • Rafael Espindola's avatar
      Assert on duplicate registration. Don't depend on function pointer equality. · 40a3d018
      Rafael Espindola authored
      Before this patch we would assert when building llvm as multiple shared
      libraries (cmake's BUILD_SHARED_LIBS). The problem was the line
      
      if (T.AsmStreamerCtorFn == Target::createDefaultAsmStreamer)
      
      which returns false because of -fvisibility-inlines-hidden. It is easy
      to fix just this one case, but I decided to try to also make the
      registration more strict. It looks like the old logic for ignoring
      followup registration was just a temporary hack that outlived its
      usefulness.
      
      This patch converts the ifs to asserts, fixes the few cases that were
      registering twice and makes sure all the asserts compare with null.
      
      Thanks for Joerg for reporting the problem and reviewing the patch.
      
      llvm-svn: 192803
      40a3d018
    • Chad Rosier's avatar
      [AArch64] Add support for NEON scalar signed saturating accumulated of unsigned · 178b1cef
      Chad Rosier authored
      value and unsigned saturating accumulate of signed value instructions.
      
      llvm-svn: 192800
      178b1cef
    • Richard Sandiford's avatar
      [SystemZ] Handle extensions in RxSBG optimizations · 3e382972
      Richard Sandiford authored
      The input to an RxSBG operation can be narrower as long as the upper bits
      are don't care.  This fixes a FIXME added in r192783.
      
      llvm-svn: 192790
      3e382972
    • Richard Sandiford's avatar
      [SystemZ] Improve handling of SETCC · f722a8e3
      Richard Sandiford authored
      We previously used the default expansion to SELECT_CC, which in turn would
      expand to "LHI; BRC; LHI".  In most cases it's better to use an IPM-based
      sequence instead.
      
      llvm-svn: 192784
      f722a8e3
    • Rafael Espindola's avatar
      Add a MCAsmInfoELF class and factor some code into it. · 43c4e24f
      Rafael Espindola authored
      We had a MCAsmInfoCOFF, but no common class for all the ELF MCAsmInfos before.
      
      llvm-svn: 192760
      43c4e24f
    • Rafael Espindola's avatar
      Move .ident handling to MCStreamer. · 5645bade
      Rafael Espindola authored
      No functionality change, but exposes the API so that codegen can use it too.
      
      Patch by Katya Romanova.
      
      llvm-svn: 192757
      5645bade
    • Matt Arsenault's avatar
      Fix typo · 22658065
      Matt Arsenault authored
      llvm-svn: 192752
      22658065
    • Matt Arsenault's avatar
      Fix missing C++ mode thing in header · df90c02e
      Matt Arsenault authored
      llvm-svn: 192751
      df90c02e
    • Andrew Trick's avatar
      Enable MI Sched for x86. · e97d8d6d
      Andrew Trick authored
      This changes the SelectionDAG scheduling preference to source
      order. Soon, the SelectionDAG scheduler can be bypassed saving
      a nice chunk of compile time.
      
      Performance differences that result from this change are often a
      consequence of register coalescing. The register coalescer is far from
      perfect. Bugs can be filed for deficiencies.
      
      On x86 SandyBridge/Haswell, the source order schedule is often
      preserved, particularly for small blocks.
      
      Register pressure is generally improved over the SD scheduler's ILP
      mode. However, we are still able to handle large blocks that require
      latency hiding, unlike the SD scheduler's BURR mode. MI scheduler also
      attempts to discover the critical path in single-block loops and
      adjust heuristics accordingly.
      
      The MI scheduler relies on the new machine model. This is currently
      unimplemented for AVX, so we may not be generating the best code yet.
      
      Unit tests are updated so they don't depend on SD scheduling heuristics.
      
      llvm-svn: 192750
      e97d8d6d
    • Vincent Lejeune's avatar
      R600/SI: Remove some leftover MI dump call · 5d6c2c31
      Vincent Lejeune authored
      llvm-svn: 192743
      5d6c2c31
  2. Oct 15, 2013
  3. Oct 14, 2013
Loading