llvm-project/llvm/lib/Transforms
Bob Haarman a78ab77b6b remove inalloca parameters in globalopt and simplify argpromotion
Summary:
Inalloca parameters require special handling in some optimizations.
This change causes globalopt to strip the inalloca attribute from
function parameters when it is safe to do so, removes the special
handling for inallocas from argpromotion, and replaces it with a
simple check that causes argpromotion to skip functions that receive
inallocas (for when the pass is invoked on code that didn't run
through globalopt first). This also avoids a case where argpromotion
would incorrectly try to pass an inalloca in a register.

Fixes PR41658.

Reviewers: rnk, efriedma

Reviewed By: rnk

Subscribers: llvm-commits

Tags: #llvm

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

llvm-svn: 359743
2019-05-02 00:37:36 +00:00
..
AggressiveInstCombine Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Coroutines [CallSite removal] Move the legacy PM, call graph, and some inliner 2019-04-19 05:59:42 +00:00
Hello Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IPO remove inalloca parameters in globalopt and simplify argpromotion 2019-05-02 00:37:36 +00:00
InstCombine [InstCombine] Limit a vector demanded elts rule which was producing invalid IR. 2019-04-30 23:09:26 +00:00
Instrumentation [PGO][CHR] A bug fix. 2019-05-01 22:49:52 +00:00
ObjCARC [ObjC][ARC] Let ARC optimizer bail out if the number of pointer states 2019-04-25 19:42:55 +00:00
Scalar [LoopSimplifyCFG] Suppress expensive DomTree verification 2019-04-29 13:29:55 +00:00
Utils [SimplifyLibCalls] Clean up code (NFC) 2019-04-30 18:35:38 +00:00
Vectorize Enable LoopVectorization by default. 2019-04-25 04:49:48 +00:00
CMakeLists.txt Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00