[llvm-dev] Missed strlen optimizations

Dávid Bolvanský via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 20 10:24:38 PDT 2018


Maybe nicer..
auto i = Src->uses().begin();
std::advance(i, Src->getNumUses() - 1);
i->getUser()->dump();

2018-04-20 19:19 GMT+02:00 Dávid Bolvanský <david.bolvansky at gmail.com>:

>   Use *last = nullptr;
>   for (Use &U : Src->uses())
>       last = &U;
>   last->getUser()->dump();
>
>
> Or any better solution?
>
> 2018-04-20 19:19 GMT+02:00 Dávid Bolvanský <david.bolvansky at gmail.com>:
>
>> Is:
>>
>>
>> 2018-04-20 18:07 GMT+02:00 Dávid Bolvanský <david.bolvansky at gmail.com>:
>>
>>> Hello,
>>>
>>> Code: https://godbolt.org/g/EG4Wi6
>>>
>>> unsigned fff3(void) {
>>>     char buf[10] = "";
>>>     return strlen(buf);
>>> }
>>>
>>> Since we are memset-ing before strlen call, we could replace strlen with
>>> just 0.
>>>
>>> Has LLVM any API to get "last instruction before strlen" which modifies
>>> strlen argument "buf"? So we can check "yes, it is memset there, replace
>>> strlen with zero" ?
>>>
>>>
>>> Thanks
>>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180420/d0f4c45f/attachment.html>


More information about the llvm-dev mailing list