Skip to content
  1. Jan 18, 2015
  2. Jan 17, 2015
    • Chandler Carruth's avatar
      [PM] Remove a dead field. · 24fd029a
      Chandler Carruth authored
      This was dead even before I refactored how we initialized it, but my
      refactoring made it trivially dead and it is now caught by a Clang
      warning. This fixes the warning and should clean up the -Werror bot
      failures (sorry!).
      
      llvm-svn: 226376
      24fd029a
    • Chandler Carruth's avatar
      [PM] Split the LoopInfo object apart from the legacy pass, creating · 4f8f307c
      Chandler Carruth authored
      a LoopInfoWrapperPass to wire the object up to the legacy pass manager.
      
      This switches all the clients of LoopInfo over and paves the way to port
      LoopInfo to the new pass manager. No functionality change is intended
      with this iteration.
      
      llvm-svn: 226373
      4f8f307c
  3. Jan 15, 2015
    • Chandler Carruth's avatar
      [PM] Separate the TargetLibraryInfo object from the immutable pass. · b98f63db
      Chandler Carruth authored
      The pass is really just a means of accessing a cached instance of the
      TargetLibraryInfo object, and this way we can re-use that object for the
      new pass manager as its result.
      
      Lots of delta, but nothing interesting happening here. This is the
      common pattern that is developing to allow analyses to live in both the
      old and new pass manager -- a wrapper pass in the old pass manager
      emulates the separation intrinsic to the new pass manager between the
      result and pass for analyses.
      
      llvm-svn: 226157
      b98f63db
    • David Majnemer's avatar
      SimplifyIndVar: Remove unused variable · f0982d0a
      David Majnemer authored
      OtherOperandIdx is not used anymore, remove it to silence warnings.
      
      llvm-svn: 226138
      f0982d0a
    • NAKAMURA Takumi's avatar
      24ebfcb6
    • Chandler Carruth's avatar
      [PM] Move TargetLibraryInfo into the Analysis library. · 62d4215b
      Chandler Carruth authored
      While the term "Target" is in the name, it doesn't really have to do
      with the LLVM Target library -- this isn't an abstraction which LLVM
      targets generally need to implement or extend. It has much more to do
      with modeling the various runtime libraries on different OSes and with
      different runtime environments. The "target" in this sense is the more
      general sense of a target of cross compilation.
      
      This is in preparation for porting this analysis to the new pass
      manager.
      
      No functionality changed, and updates inbound for Clang and Polly.
      
      llvm-svn: 226078
      62d4215b
    • Sanjoy Das's avatar
      Fix PR22222 · 8c252bde
      Sanjoy Das authored
      The bug was introduced in r225282. r225282 assumed that sub X, Y is
      the same as add X, -Y. This is not correct if we are going to upgrade
      the sub to sub nuw. This change fixes the issue by making the
      optimization ignore sub instructions.
      
      Differential Revision: http://reviews.llvm.org/D6979
      
      llvm-svn: 226075
      8c252bde
  4. Jan 14, 2015
  5. Jan 13, 2015
  6. Jan 12, 2015
  7. Jan 09, 2015
  8. Jan 08, 2015
    • Duncan P. N. Exon Smith's avatar
      Utils: Keep distinct MDNodes distinct in MapMetadata() · 953e1a48
      Duncan P. N. Exon Smith authored
      Create new copies of distinct `MDNode`s instead of following the
      uniquing `MDNode` logic.
      
      Just like self-references (or other cycles), `MapMetadata()` creates a
      new node.  In practice most calls use `RF_NoModuleLevelChanges`, in
      which case nothing is duplicated anyway.
      
      Part of PR22111.
      
      llvm-svn: 225476
      953e1a48
  9. Jan 06, 2015
    • Sanjoy Das's avatar
      This patch teaches IndVarSimplify to add nuw and nsw to certain kinds · 7c0ce266
      Sanjoy Das authored
      of operations that provably don't overflow. For example, we can prove
      %civ.inc below does not sign-overflow. With this change,
      IndVarSimplify changes %civ.inc to an add nsw.
      
        define i32 @foo(i32* %array, i32* %length_ptr, i32 %init) {
         entry:
          %length = load i32* %length_ptr, !range !0
          %len.sub.1 = sub i32 %length, 1
          %upper = icmp slt i32 %init, %len.sub.1
          br i1 %upper, label %loop, label %exit
        
         loop:
          %civ = phi i32 [ %init, %entry ], [ %civ.inc, %latch ]
          %civ.inc = add i32 %civ, 1
          %cmp = icmp slt i32 %civ.inc, %length
          br i1 %cmp, label %latch, label %break
        
         latch:
          store i32 0, i32* %array
          %check = icmp slt i32 %civ.inc, %len.sub.1
          br i1 %check, label %loop, label %break
        
         break:
          ret i32 %civ.inc
        
         exit:
          ret i32 42
        }
      
      Differential Revision: http://reviews.llvm.org/D6748
      
      llvm-svn: 225282
      7c0ce266
  10. Jan 05, 2015
Loading