Skip to content
  1. Jun 03, 2013
  2. Jun 02, 2013
  3. Jun 01, 2013
  4. May 31, 2013
    • Arnold Schwaighofer's avatar
      LoopVectorize: Change API call to get the backedge taken count · 7b1b4db3
      Arnold Schwaighofer authored
      Use ScalarEvolution's getBackedgeTakenCount API instead of getExitCount since
      that is really what we want to know. Using the more specific getExitCount was
      safe because we made sure that there is only one exiting block.
      
      No functionality change.
      
      llvm-svn: 183047
      7b1b4db3
    • Quentin Colombet's avatar
      Loop Strength Reduce: Scaling factor cost. · bf490d4a
      Quentin Colombet authored
      Account for the cost of scaling factor in Loop Strength Reduce when rating the
      formulae. This uses a target hook.
      
      The default implementation of the hook is: if the addressing mode is legal, the
      scaling factor is free.
      
      <rdar://problem/13806271>
      
      llvm-svn: 183045
      bf490d4a
    • Rafael Espindola's avatar
      Rename COFFYaml.h to COFFYAML.h for consistency. · 3f1c99a6
      Rafael Espindola authored
      llvm-svn: 183042
      3f1c99a6
    • Rafael Espindola's avatar
      Don't allocate temporary string for section data. · a3310e0b
      Rafael Espindola authored
      llvm-svn: 183040
      a3310e0b
    • Arnold Schwaighofer's avatar
      LoopVectorize: PHIs with only outside users should prevent vectorization · 70a9be52
      Arnold Schwaighofer authored
      We check that instructions in the loop don't have outside users (except if
      they are reduction values). Unfortunately, we skipped this check for
      if-convertable PHIs.
      
      Fixes PR16184.
      
      llvm-svn: 183035
      70a9be52
    • Benjamin Kramer's avatar
      NVPTX: Don't even create a regalloc if we're not going to use it. · fae7ff12
      Benjamin Kramer authored
      Fixes a leak found by valgrind.
      
      llvm-svn: 183031
      fae7ff12
    • Quentin Colombet's avatar
      Modify how the formulae are rated in Loop Strength Reduce. · 8aa7abe2
      Quentin Colombet authored
      Namely, check if the target allows to fold more that one register in the
      addressing mode and if yes, adjust the cost accordingly.
      
      Prior to this commit, reg1 + scale * reg2 accesses were artificially preferred
      to reg1 + reg2 accesses. Indeed, the cost model wrongly assumed that reg1 + reg2
      needs a temporary register for the computation, whereas it was correctly
      estimated for reg1 + scale * reg2.
      
      <rdar://problem/13973908>
      
      llvm-svn: 183021
      8aa7abe2
    • Ahmed Bougacha's avatar
      Add a way to define the bit range covered by a SubRegIndex. · f1ed334d
      Ahmed Bougacha authored
      NOTE: If this broke your out-of-tree backend, in *RegisterInfo.td, change
      the instances of SubRegIndex that have a comps template arg to use the
      ComposedSubRegIndex class instead.
      
      In TableGen land, this adds Size and Offset attributes to SubRegIndex,
      and the ComposedSubRegIndex class, for which the Size and Offset are
      computed by TableGen. This also adds an accessor in MCRegisterInfo, and
      Size/Offsets for the X86 and ARM subreg indices.
      
      llvm-svn: 183020
      f1ed334d
    • Kai Nacke's avatar
      Remove useless code from transitioning to new EH scheme · e1823b6b
      Kai Nacke authored
      Removes all uses of the variable UsesNewEH. Simply return false in case that no
      resume instructions were found.
      
      llvm-svn: 183016
      e1823b6b
    • Tim Northover's avatar
      ARM: permit upper-case BE/LE on setend instruction · 4d141440
      Tim Northover authored
      Patch by Amaury de la Vieuville.
      
      llvm-svn: 183012
      4d141440
    • Tim Northover's avatar
      ARM: add fstmx and fldmx instructions for assembly · 4173e29a
      Tim Northover authored
      These instructions are deprecated oddities, but we still need to be able to
      disassemble (and reassemble) them if and when they're encountered.
      
      Patch by Amaury de la Vieuville.
      
      llvm-svn: 183011
      4173e29a
    • Rafael Espindola's avatar
      Simplify multiplications by vectors whose elements are powers of 2. · 65281bf3
      Rafael Espindola authored
      Patch by Andrea Di Biagio.
      
      llvm-svn: 183005
      65281bf3
    • Tim Northover's avatar
      ARM: fix VEXT encoding corner case · 1bb672da
      Tim Northover authored
      The disassembly of VEXT instructions was too lax in the bits checked. This
      fixes the case where the instruction affects Q-registers but a misaligned lane
      was specified (should be UNDEFINED).
      
      Patch by Amaury de la Vieuville
      
      llvm-svn: 183003
      1bb672da
    • Richard Sandiford's avatar
      [SystemZ] Don't use LOAD and STORE REVERSED for volatile accesses · 30efd87f
      Richard Sandiford authored
      Unlike most -- hopefully "all other", but I'm still checking -- memory
      instructions we support, LOAD REVERSED and STORE REVERSED may access
      the memory location several times.  This means that they are not suitable
      for volatile loads and stores.
      
      This patch is a prerequisite for better atomic load and store support.
      The same principle applies there: almost all memory instructions we
      support are inherently atomic ("block concurrent"), but LOAD REVERSED
      and STORE REVERSED are exceptions.
      
      Other instructions continue to allow volatile operands.  I will add
      positive "allows volatile" tests at the same time as the "allows atomic
      load or store" tests.
      
      llvm-svn: 183002
      30efd87f
    • Justin Holewinski's avatar
      [NVPTX] Re-enable support for virtual registers in the final output · dbb3b2f4
      Justin Holewinski authored
      Now that 3.3 is branched, we are re-enabling virtual registers to help
      iron out bugs before the next release. Some of the post-RA passes do
      not play well with virtual registers, so we disable them for now. The
      needed functionality of the PrologEpilogInserter pass is copied to a
      new backend-specific NVPTXPrologEpilog pass.
      
      The test for this commit is not breaking the existing tests.
      
      llvm-svn: 182998
      dbb3b2f4
    • Evgeniy Stepanov's avatar
      [msan] Handle mixed track-origins and keep-going settings (llvm part). · 888385e4
      Evgeniy Stepanov authored
      Before this change, each module defined a weak_odr global __msan_track_origins 
      with a value of 1 if origin tracking is enabled, 0 if disabled. If there are 
      modules with different values, any of them may win. If 0 wins, and there is at 
      least one module with 1, the program will most likely crash.
      
      With this change, __msan_track_origins is only emitted if origin tracking is 
      on. Then runtime library detects if there is at least one module with origin 
      tracking, and enables runtime support for it.
      
      llvm-svn: 182997
      888385e4
    • Tim Northover's avatar
      X86: change MOV64ri64i32 into MOV32ri64 · d4736d67
      Tim Northover authored
      The MOV64ri64i32 instruction required hacky MCInst lowering because it was
      allocated as setting a GR64, but the eventual instruction ("movl") only set a
      GR32. This converts it into a so-called "MOV32ri64" which still accepts a
      (appropriate) 64-bit immediate but defines a GR32. This is then converted to
      the full GR64 by a SUBREG_TO_REG operation, thus keeping everyone happy.
      
      llvm-svn: 182991
      d4736d67
    • Andrew Trick's avatar
      Fix ScalarEvolution::ComputeExitLimitFromCond for 'or' conditions. · 5b245a16
      Andrew Trick authored
      Fixes PR16130 - clang produces incorrect code with loop/expression at -O2.
      
      This is a 2+ year old bug that's now holding up the release. It's a
      case where we knowingly made aggressive assumptions about undefined
      behavior. These assumptions are wrong when SCEV is computing a
      subexpression that does not directly control the branch. With this
      fix, we avoid making assumptions in those cases but still optimize the
      common case. SCEV's trip count computation for exits controlled by
      'or' expressions is now analagous to the trip count computation for
      loops with multiple exits. I had already fixed the multiple exit case
      to be conservative.
      
      llvm-svn: 182989
      5b245a16
Loading