[all-commits] [llvm/llvm-project] f5f377: [IRSim][IROutliner] Adding support for recognizing...
Andrew Litteken via All-commits
all-commits at lists.llvm.org
Tue Jan 25 13:21:28 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f5f377d1fca8ecb4ec5bd2bca656e7c719727404
https://github.com/llvm/llvm-project/commit/f5f377d1fca8ecb4ec5bd2bca656e7c719727404
Author: Andrew Litteken <andrew.litteken at gmail.com>
Date: 2022-01-25 (Tue, 25 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
M llvm/test/Transforms/IROutliner/illegal-indirect-calls.ll
A llvm/test/Transforms/IROutliner/legal-indirect-calls.ll
A llvm/test/Transforms/IROutliner/outlining-call-and-indirect.ll
A llvm/test/Transforms/IROutliner/outlining-calls-names-must-match.ll
M llvm/test/Transforms/IROutliner/outlining-calls.ll
M llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
Log Message:
-----------
[IRSim][IROutliner] Adding support for recognizing and outlining indirect function calls, and function calls with different names, but the same type
The outliner currently requires that function calls not be indirect calls, and have that the function name, and function type must match, as well as other attributes such as calling conventions. This patch treats called functions as values, and just another operand, and named function calls as constants. This allows functions to be treated like any other constant, or input and output into the outlined functions.
There are also debugging flags added to enforce the old behaviors where indirect calls not be allowed, and to enforce the old rule that function calls names must also match.
Reviewers: paquette, jroelofs
Differential Revision: https://reviews.llvm.org/D109448
More information about the All-commits
mailing list