[llvm-commits] [PATCH 0/3] Start moving lib call simplifications to instcombine

Eric Christopher echristo at gmail.com
Mon Oct 8 10:48:48 PDT 2012


ENOPATCH.

-eric

On Mon, Oct 8, 2012 at 8:25 AM, Meador Inge <meadori at codesourcery.com> wrote:
> Hi All,
>
> This patch set is the first stage in migrating the library call simplication
> optimizations from the simplify-libcalls pass to instcombine.  The general
> outline of the migration was described before here [1].
>
> The first patch implements the new LibCallSimplifier utility class and adds
> the fortified library call simplifiers to the implementation.  This patch has
> already been posted once [2] and the review feedback from Eric Christopher
> has been fixed.  I also did some LLVM coding convention clean ups.
>
> The second two patches migrate library call simplifier optimizations from
> the old LibCallSimplifier class to the new one along with covering test cases.
>
> My plan going forward is to migrate each optimization from the old
> LibCallSimplifier class to the new one in the same manner as I have done
> in patches 2 and 3.  After this patch series gets approved I will just
> start committing the remaining migrations without waiting for an explicit
> OK.
>
> OK?
>
> [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-August/052283.html
> [2] http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121001/152462.html
>
> Meador Inge (3):
>   Implement new LibCallSimplifier class
>   instcombine: Migrate strcat and strncat optimizations
>   instcombine: Migrate strchr and strrchr optimizations
>
>  include/llvm/Transforms/Utils/SimplifyLibCalls.h   |   43 ++
>  lib/Transforms/InstCombine/InstCombine.h           |    2 +
>  lib/Transforms/InstCombine/InstCombineCalls.cpp    |   40 +-
>  .../InstCombine/InstructionCombining.cpp           |    3 +
>  lib/Transforms/Scalar/SimplifyLibCalls.cpp         |  191 --------
>  lib/Transforms/Utils/CMakeLists.txt                |    1 +
>  lib/Transforms/Utils/SimplifyLibCalls.cpp          |  481 ++++++++++++++++++++
>  test/Transforms/InstCombine/strcat-1.ll            |   38 ++
>  test/Transforms/InstCombine/strcat-2.ll            |   32 ++
>  test/Transforms/InstCombine/strcat-3.ll            |   22 +
>  test/Transforms/InstCombine/strchr-1.ll            |   54 +++
>  test/Transforms/InstCombine/strchr-2.ll            |   21 +
>  test/Transforms/InstCombine/strncat-1.ll           |   37 ++
>  test/Transforms/InstCombine/strncat-2.ll           |   53 +++
>  test/Transforms/InstCombine/strncat-3.ll           |   22 +
>  test/Transforms/InstCombine/strrchr-1.ll           |   54 +++
>  test/Transforms/InstCombine/strrchr-2.ll           |   21 +
>  test/Transforms/SimplifyLibCalls/StrCat.ll         |   33 --
>  test/Transforms/SimplifyLibCalls/StrChr.ll         |   26 --
>  test/Transforms/SimplifyLibCalls/StrNCat.ll        |   31 --
>  test/Transforms/SimplifyLibCalls/StrRChr.ll        |   23 -
>  21 files changed, 888 insertions(+), 340 deletions(-)
>  create mode 100644 include/llvm/Transforms/Utils/SimplifyLibCalls.h
>  create mode 100644 lib/Transforms/Utils/SimplifyLibCalls.cpp
>  create mode 100644 test/Transforms/InstCombine/strcat-1.ll
>  create mode 100644 test/Transforms/InstCombine/strcat-2.ll
>  create mode 100644 test/Transforms/InstCombine/strcat-3.ll
>  create mode 100644 test/Transforms/InstCombine/strchr-1.ll
>  create mode 100644 test/Transforms/InstCombine/strchr-2.ll
>  create mode 100644 test/Transforms/InstCombine/strncat-1.ll
>  create mode 100644 test/Transforms/InstCombine/strncat-2.ll
>  create mode 100644 test/Transforms/InstCombine/strncat-3.ll
>  create mode 100644 test/Transforms/InstCombine/strrchr-1.ll
>  create mode 100644 test/Transforms/InstCombine/strrchr-2.ll
>  delete mode 100644 test/Transforms/SimplifyLibCalls/StrCat.ll
>  delete mode 100644 test/Transforms/SimplifyLibCalls/StrChr.ll
>  delete mode 100644 test/Transforms/SimplifyLibCalls/StrNCat.ll
>  delete mode 100644 test/Transforms/SimplifyLibCalls/StrRChr.ll
>
> --
> 1.7.10.2 (Apple Git-33)
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list