Skip to content
  1. Jan 01, 2014
  2. Dec 31, 2013
  3. Dec 30, 2013
  4. Dec 29, 2013
  5. Dec 28, 2013
    • Saleem Abdulrasool's avatar
      ARM IAS: handle errors more appropriately · 0c4b1026
      Saleem Abdulrasool authored
      Directive parsers must return false if the target assembler is interested in
      handling the directive.  The Error member function returns true always.  Using
      the 'return Error()' pattern would incorrectly indicate to the general parser
      that the target was not interested in the directive, when in reality it simply
      encountered a badly formed directive or some other error.  This corrects the
      behaviour to ensure that the parser behaves appropriately.
      
      llvm-svn: 198132
      0c4b1026
    • Andrew Trick's avatar
      New machine model for cortex-a9. Schedule for resources and latency. · 3ca67d64
      Andrew Trick authored
      Schedule more conservatively to account for stalls on floating point
      resources and latency. Use the AGU resource to model latency stalls
      since it's shared between FP and LD/ST instructions. This might not be
      completely accurate but should work well in practice.
      
      llvm-svn: 198125
      3ca67d64
    • Andrew Trick's avatar
      The Cortex-A9 machine model is incomplete. Mark it as such. · 03b22e39
      Andrew Trick authored
      Many vector operations never had itineraries. Since the new machine
      model was a mapping from existing itinerary classes, we don't have a
      model for these. We still want to migrate A9 even though no one has
      invested in a complete model, so mark it incomplete to avoid the
      scheduler asserting.
      
      llvm-svn: 198123
      03b22e39
    • Andrew Trick's avatar
      Factor MI-Sched in preparation for post-ra scheduling support. · d7f890ed
      Andrew Trick authored
      Factor the MachineFunctionPass into MachineSchedulerBase.
      
      Split the DAG class into ScheduleDAGMI and SchedulerDAGMILive.
      
      llvm-svn: 198119
      d7f890ed
    • Craig Topper's avatar
      bf096926
    • Craig Topper's avatar
      Minor indentation fix to match other switch statements. Change... · e829fe42
      Craig Topper authored
      Minor indentation fix to match other switch statements. Change llvm_unreachable text to match similar places.
      
      llvm-svn: 198116
      e829fe42
    • Andrea Di Biagio's avatar
      [X86] Teach the backend how to fold target specific dag node for packed · eaceba0e
      Andrea Di Biagio authored
      vector shift by immedate count (VSHLI/VSRLI/VSRAI) into a build_vector when
      the vector in input to the shift is a build_vector of all constants or UNDEFs.
      
      Target specific nodes for packed shifts by immediate count are in
      general introduced by function 'getTargetVShiftByConstNode' (in
      X86ISelLowering.cpp) when lowering shift operations, SSE/AVX immediate
      shift intrinsics and (only in very few cases) SIGN_EXTEND_INREG dag
      nodes.
      
      This patch adds extra rules for simplifying vector shifts inside
      function 'getTargetVShiftByConstNode'.
      
      Added file test/CodeGen/X86/vec_shift5.ll to verify that packed
      shifts by immediate are correctly folded into a build_vector when the
      input vector to the shift dag node is a vector of constants or undefs.
      
      llvm-svn: 198113
      eaceba0e
    • Saleem Abdulrasool's avatar
      ARMAsmParser: fix typo in comment · 83e3770a
      Saleem Abdulrasool authored
      llvm-svn: 198095
      83e3770a
    • Chandler Carruth's avatar
      Disable transforms that introduce calls to exp10*() on Linux due to · f5689f83
      Chandler Carruth authored
      widespread glibc bugs.
      
      The glibc implementation of exp10 has a very serious precision bug in
      version 2.15 (and older versions). This is still very widely used (the
      current Ubuntu LTS for example uses it) and so it isn't reasonable to
      make transforms that produce these functions. This fixes many
      miscompiles introduced when we started transforming pow(10.0, ...) into
      exp10, and it may have fixed other latent miscompiles where exp10
      provided sufficient precision but exp10f did not.
      
      This is all really horrible. The primary bug has been fixed for over
      a year and glibc 2.18 works correctly for the test cases I have, but it
      will be 2017 before the LTS using 2.15 is no longer supported by Ubuntu
      (and thus reasonable for folks to be relying on). =[ We're either going
      to need to live without these optimizations, or find a way to switch
      behavior more dynamically than using simply the fact that the OS is
      "Linux".
      
      To make matters worse, there appears to be significant testing and
      fixing of numerous other bugs in the exp10 family of functions right now
      in glibc. While those haven't been causing problems I've seen in the
      wild, it gives me concerns that we may need to wait until an even later
      release of glibc before we can reliably transform code into exp10.
      
      llvm-svn: 198093
      f5689f83
  6. Dec 26, 2013
Loading