[SLC] Optimize mempcpy_chk to mempcpy
authorDávid Bolvanský <david.bolvansky@gmail.com>
Mon, 5 Oct 2020 20:16:59 +0000 (22:16 +0200)
committerDávid Bolvanský <david.bolvansky@gmail.com>
Mon, 5 Oct 2020 20:18:36 +0000 (22:18 +0200)
commit3f1fd59de3002e3d5a4eca98cd49c45755ab0110
treeca759e6e33661a365058be118cbe9f407988edc1
parenta506a66bd90cb15885833012fb2c2b7873bff541
[SLC] Optimize mempcpy_chk to mempcpy

As reported in PR46735:

void* f(void *d, const void *s, size_t l)
{
    return __builtin___mempcpy_chk(d, s, l, __builtin_object_size(d, 0));
}

This can be optimized to `return mempcpy(d, s, l);`.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D86019
llvm/include/llvm/Analysis/TargetLibraryInfo.def
llvm/include/llvm/Transforms/Utils/BuildLibCalls.h
llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
llvm/lib/Analysis/TargetLibraryInfo.cpp
llvm/lib/Transforms/Utils/BuildLibCalls.cpp
llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
llvm/test/Transforms/InstCombine/fortify-folding.ll