[PATCH] D18777: [ValueTracking] An improvement to IR ValueTracking on Non-negative Integers

Li Huang via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 4 17:20:52 PDT 2016


lihuang created this revision.
lihuang added reviewers: mbodart, reames, sanjoy.
lihuang added a subscriber: llvm-commits.

An improvement to IR ValueTracking on Non-negative Integers.

Current IR ValueTracking does not recognize the cases below, thus hiding optimization opportunities.

     1. Induction variable starting from a non-negative integer and incrementing in each iteration is known to be non-negative.
     2. Result of left shifting a non-negative integer with nsw flag is known to be non-negative.

This change is a small improvement to computeKnownBits on PHI node and Shift. 

Patch by Ruben Perez.  

http://reviews.llvm.org/D18777

Files:
  lib/Analysis/ValueTracking.cpp
  lib/Transforms/Scalar/IndVarSimplify.cpp
  test/Analysis/ValueTracking/shift-nsw.ll
  test/Transforms/BBVectorize/loop1.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18777.52635.patch
Type: text/x-patch
Size: 7038 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160405/5a28a678/attachment.bin>


More information about the llvm-commits mailing list