[all-commits] [llvm/llvm-project] f2cb9c: Fix missing memcpy, memmove and memset tail calls

Sanne Wouda via All-commits all-commits at lists.llvm.org
Thu Oct 31 09:13:48 PDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f2cb9c0eabc132152b5b3ad4c87a5a02345a883d
      https://github.com/llvm/llvm-project/commit/f2cb9c0eabc132152b5b3ad4c87a5a02345a883d
  Author: Sanne Wouda <Sanne.Wouda at arm.com>
  Date:   2019-10-31 (Thu, 31 Oct 2019)

  Changed paths:
    M llvm/lib/CodeGen/Analysis.cpp
    A llvm/test/CodeGen/AArch64/tailcall-bitcast-memcpy.ll

  Log Message:
  -----------
  Fix missing memcpy, memmove and memset tail calls

Summary:
If a wrapper around one of the mem* stdlib functions bitcasts the returned
pointer value before returning it (e.g. to a wchar_t*), LLVM does not emit a
tail call.

Add a check for this scenario so that we emit a tail call.

Reviewers: wmi, mkuper, ramred01, dmgreen

Reviewed By: wmi, dmgreen

Subscribers: hiraditya, sanwou01, javed.absar, lebedev.ri, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D59078




More information about the All-commits mailing list