[all-commits] [llvm/llvm-project] 3785c1: [IRSim][IROutliner] Allowing Intrinsic Calls to be...

Andrew Litteken via All-commits all-commits at lists.llvm.org
Fri Jan 28 11:52:49 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3785c1d05501775629c1b943459b97eab6c739ec
      https://github.com/llvm/llvm-project/commit/3785c1d05501775629c1b943459b97eab6c739ec
  Author: Andrew Litteken <andrew.litteken at gmail.com>
  Date:   2022-01-28 (Fri, 28 Jan 2022)

  Changed paths:
    M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
    M llvm/include/llvm/Transforms/IPO/IROutliner.h
    M llvm/lib/Analysis/IRSimilarityIdentifier.cpp
    M llvm/lib/Transforms/IPO/IROutliner.cpp
    A llvm/test/Transforms/IROutliner/different-intrinsics.ll
    M llvm/test/Transforms/IROutliner/illegal-memcpy.ll
    M llvm/test/Transforms/IROutliner/illegal-memmove.ll
    M llvm/test/Transforms/IROutliner/illegal-memset.ll
    M llvm/test/Transforms/IROutliner/illegal-vaarg.ll
    A llvm/test/Transforms/IROutliner/outline-memcpy.ll
    A llvm/test/Transforms/IROutliner/outline-memmove.ll
    A llvm/test/Transforms/IROutliner/outline-memset.ll
    A llvm/test/Transforms/IROutliner/outline-vaarg-intrinsic.ll
    M llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp

  Log Message:
  -----------
  [IRSim][IROutliner] Allowing Intrinsic Calls to be Used in Similarity Matching and Outlined Regions

Due to some complications with lifetime, and assume-like intrinsics, intrinsics were not included as outlinable instructions. This patch opens up most intrinsics, excluding lifetime and assume-like intrinsics, to be outlined. For similarity, it is required that the intrinsic IDs, and the intrinsics names match exactly, as well as the function type. This puts intrinsics in a different class than normal call instructions (https://reviews.llvm.org/D109448), where the name will no longer have to match.

This also adds an additional command line flag debug option to disable outlining intrinsics.

Recommit of: 8de76bd569732acae6a10fdcb0152a49f7d4cd39
Adds extra checking of intrinsic function calls names to avoid taking the address of intrinsic calls when extracting function calls.

Reviewers: paquette, jroelofs

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




More information about the All-commits mailing list