6 Commits

Author SHA1 Message Date
Jay Foad
f0c173a27b [AMDGPU] Make printf lowering faster when there are no printfs
Summary:
Printf lowering unconditionally visited every instruction in the module.
To make it faster in the common case where there are no printfs, look up
the printf function (if any) and iterate over its users instead.

Reviewers: rampitec, kzhuravl, alex-t, arsenm

Subscribers: jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@373433 91177308-0d34-0410-b5e6-96231b3b80d8
2019-10-02 08:44:15 +00:00
Simon Pilgrim
a5d8a62b00 AMDGPUPrintfRuntimeBinding - silence static analyzer null dereference warnings. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@372501 91177308-0d34-0410-b5e6-96231b3b80d8
2019-09-22 13:01:49 +00:00
Teresa Johnson
ef512ca8e6 Change TargetLibraryInfo analysis passes to always require Function
Summary:
This is the first change to enable the TLI to be built per-function so
that -fno-builtin* handling can be migrated to use function attributes.
See discussion on D61634 for background. This is an enabler for fixing
handling of these options for LTO, for example.

This change should not affect behavior, as the provided function is not
yet used to build a specifically per-function TLI, but rather enables
that migration.

Most of the changes were very mechanical, e.g. passing a Function to the
legacy analysis pass's getTLI interface, or in Module level cases,
adding a callback. This is similar to the way the per-function TTI
analysis works.

There was one place where we were looking for builtins but not in the
context of a specific function. See FindCXAAtExit in
lib/Transforms/IPO/GlobalOpt.cpp. I'm somewhat concerned my workaround
could provide the wrong behavior in some corner cases. Suggestions
welcome.

Reviewers: chandlerc, hfinkel

Subscribers: arsenm, dschuff, jvesely, nhaehnle, mehdi_amini, javed.absar, sbc100, jgravelle-google, eraman, aheejin, steven_wu, george.burgess.iv, dexonsmith, jfb, asbirlea, gchatelet, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@371284 91177308-0d34-0410-b5e6-96231b3b80d8
2019-09-07 03:09:36 +00:00
Stanislav Mekhanoshin
ae4f6e8d53 [AMDGPU] Fix msan failure in printf lowering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368645 91177308-0d34-0410-b5e6-96231b3b80d8
2019-08-13 01:07:27 +00:00
Stanislav Mekhanoshin
8d482fe28a [AMDGPU] removed unused functions from printf lowering
Differential Revision: https://reviews.llvm.org/D66117

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368633 91177308-0d34-0410-b5e6-96231b3b80d8
2019-08-12 23:32:35 +00:00
Stanislav Mekhanoshin
edb506d79d [AMDGPU] Printf runtime binding pass
This pass is a port of the according pass from the HSAIL compiler.
It parses printf calls and setup runtime printf buffer.
After that it copies printf arguments to the buffer and fills in
module metadata for runtime.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368592 91177308-0d34-0410-b5e6-96231b3b80d8
2019-08-12 17:12:29 +00:00