Skip to content
  1. Jun 08, 2013
    • Shuxin Yang's avatar
      Fix an assertion in MemCpyOpt pass. · bd254f26
      Shuxin Yang authored
        The MemCpyOpt pass is capable of optimizing:
            callee(&S); copy N bytes from S to D.
          into:
            callee(&D);
      subject to some legality constraints. 
      
        Assertion is triggered when the compiler tries to evalute "sizeof(typeof(D))",
      while D is an opaque-typed, 'sret' formal argument of function being compiled.
      i.e. the signature of the func being compiled is something like this:
        T caller(...,%opaque* noalias nocapture sret %D, ...)
      
        The fix is that when come across such situation, instead of calling some
      utility functions to get the size of D's type (which will crash), we simply
      assume D has at least N bytes as implified by the copy-instruction.
      
      rdar://14073661 
      
      llvm-svn: 183584
      bd254f26
  2. Jun 07, 2013
  3. Jun 06, 2013
  4. Jun 05, 2013
  5. Jun 04, 2013
    • David Majnemer's avatar
      IndVarSimplify: check if loop invariant expansion can trap · 29130c5e
      David Majnemer authored
      IndVarSimplify is willing to move divide instructions outside of their
      loop bodies if they are invariant of the loop.  However, it may not be
      safe to expand them if we do not know if they can trap.
      
      Instead, check to see if it is not safe to expand the instruction and
      skip the expansion.
      
      This fixes PR16041.
      
      Testcase by Rafael Ávila de Espíndola.
      
      llvm-svn: 183239
      29130c5e
    • Rafael Espindola's avatar
      Second part of pr16069 · a5e536ab
      Rafael Espindola authored
      The problem this time seems to be a thinko. We were assuming that in the CFG
      
      A
      | \
      |  B
      | /
      C
      
      speculating the basic block B would cause only the phi value for the B->C edge
      to be speculated. That is not true, the phi's are semantically in the edges, so
      if the A->B->C path is taken, any code needed for A->C is not executed and we
      have to consider it too when deciding to speculate B.
      
      llvm-svn: 183226
      a5e536ab
    • Hans Wennborg's avatar
      Typo: s/caes/cases/ in SimplifyCFG · 5cf30be6
      Hans Wennborg authored
      llvm-svn: 183219
      5cf30be6
    • Nick Lewycky's avatar
      Delete dead safety check. · 688d668e
      Nick Lewycky authored
      llvm-svn: 183167
      688d668e
  6. Jun 03, 2013
  7. Jun 01, 2013
  8. May 31, 2013
  9. May 30, 2013
  10. May 29, 2013
  11. May 28, 2013
    • Paul Redmond's avatar
      Add support for llvm.vectorizer metadata · 5fdf836b
      Paul Redmond authored
      - llvm.loop.parallel metadata has been renamed to llvm.loop to be more generic
        by making the root of additional loop metadata.
        - Loop::isAnnotatedParallel now looks for llvm.loop and associated
          llvm.mem.parallel_loop_access
        - document llvm.loop and update llvm.mem.parallel_loop_access
      - add support for llvm.vectorizer.width and llvm.vectorizer.unroll
        - document llvm.vectorizer.* metadata
        - add utility class LoopVectorizerHints for getting/setting loop metadata
        - use llvm.vectorizer.width=1 to indicate already vectorized instead of
          already_vectorized
      - update existing tests that used llvm.loop.parallel and
        llvm.vectorizer.already_vectorized
      
      Reviewed by: Nadav Rotem
      
      llvm-svn: 182802
      5fdf836b
    • James Molloy's avatar
      Extend RemapInstruction and friends to take an optional new parameter, a ValueMaterializer. · f6f121e2
      James Molloy authored
      Extend LinkModules to pass a ValueMaterializer to RemapInstruction and friends to lazily create Functions for lazily linked globals. This is a big win when linking small modules with large (mostly unused) library modules.
      
      llvm-svn: 182776
      f6f121e2
    • Evgeniy Stepanov's avatar
      [msan] Fix argument shadow alignment. · fca01233
      Evgeniy Stepanov authored
      llvm-svn: 182771
      fca01233
  12. May 25, 2013
  13. May 24, 2013
Loading