[LLVMdev] Redundant Add Operation in Code Generation?

Ryan Taylor ryta1203 at gmail.com
Wed Oct 17 13:22:56 PDT 2012


I'm curious why I am seeing this:

  *%uglygep18.sum = add i32 %lsr_iv8, %tmp45*
  %scevgep19 = getelementptr i8* %parBits_017, i32 %uglygep18_sum
  %scevgep1920 = bitcast i8* %scevgep19 to i16*
  %tmp78 = load i16* %scevgep1920, align 2
 * %uglygep14.sum = add i32 %lsr_iv8, %tmp45*
  %scevgep15 = getelementptr i8* %extIn_013, i32 %uglygep14_sum
  %scevgep1516 = bitcast i8* %scevgep15 to i16*
  %tmp79 = load i16* %scevgep1516, align 2
  %conv93.i.i = sext i16 %tmp79 to i32
  *%uglygep.sum = add i32 %lsr_iv8, %tmp45*
  %scevgep11 = getelementptr i8* %sysBits_010, i32 %uglygep_sum

You can see here that "add i32 %lsr_iv8, %tmp45" is done multiple times,
appearing that there are two redundant add operations that are not needed
yet are generated?

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121017/5abebfc6/attachment.html>


More information about the llvm-dev mailing list