[LLVMdev] remove redundant load by GVN() does not work
Xiangyang Guo
xguo6 at ncsu.edu
Sun Apr 19 07:34:13 PDT 2015
Thanks, Daniel. basicaa works.
Regards
Xiangyang
On Sun, Apr 19, 2015 at 1:56 AM, Daniel Berlin <dberlin at dberlin.org> wrote:
> Add basicaa. Without aa, it won't touch these
>
> On Sat, Apr 18, 2015, 8:33 PM Xiangyang Guo <xguo6 at ncsu.edu> wrote:
>
>> Hi,
>>
>> Assume I have the following code. The first four instructions in each BB
>> does the same thing. So I think GVN() can remove the redundant code.
>> However, after I apply GVN to my module by "Passes.add(createGVNPass())"
>> and "Passes.run(*myModule)". It seems GVN does not remove the redundant
>> instructions. Can anyone give me a hint what's going on here? Any hint is
>> appreciable.
>>
>> *********************************************************************
>> cond_3: ; preds = %cond_1_else
>> %a1 = load i32** @a
>> %v41 = load i32* %v4
>> %6 = getelementptr i32* %a1, i32 %v41
>> %7 = load i32* %6
>> %8 = icmp slt i32 %7, 1
>> br i1 %8, label %cond_4, label %cond_4_else
>>
>> cond_4_else: ; preds = %cond_3
>> %a2 = load i32** @a
>> %v42 = load i32* %v4
>> %9 = getelementptr i32* %a2, i32 %v42
>> %10 = load i32* %9
>> %11 = icmp sgt i32 %10, %v6_int_34
>> br i1 %11, label %cond_4, label %cond_4_else1
>>
>> cond_4_else1: ; preds = %cond_4_else
>> %a3 = load i32** @a
>> %v43 = load i32* %v4
>> %12 = getelementptr i32* %a3, i32 %v43
>> %13 = load i32* %12
>> %v5_int_42 = srem i32 %v2_int_.0, %13
>> %14 = icmp eq i32 %v5_int_42, 0
>> br i1 %14, label %cond_4_else2, label %cond_4
>>
>> ************************************************************************
>> (I change the variable's name a little bit for the first four
>> instructions in each BB because the name of variables in my original IR has
>> a long.)
>>
>> Regards
>>
>> Xiangyang
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150419/bce2fccd/attachment.html>
More information about the llvm-dev
mailing list