[llvm] r293799 - [IPSCCP] Don't propagate return values of functions marked as noinline.

Friedman, Eli via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 1 16:06:00 PST 2017


On 2/1/2017 10:52 AM, Davide Italiano via llvm-commits wrote:
> Author: davide
> Date: Wed Feb  1 12:52:20 2017
> New Revision: 293799
>
> URL: http://llvm.org/viewvc/llvm-project?rev=293799&view=rev
> Log:
> [IPSCCP] Don't propagate return values of functions marked as noinline.
>
> This tries to address what Hal defined (in the post-commit review of
> r293727) a long-standing problem with noinline, where we end up
> de facto inlining trivial functions e.g.
>
> __attribute__((noinline)) int patatino(void) { return 5; }
>
> because of return value propagation.

I'm not really following why this is a problem in the first place... 
noinline doesn't mean "don't do any interprodedural optimizations". And 
if we did want it to mean that, we should do it in a more principled 
manner than scattering checks across each individual pass.

-Eli

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project



More information about the llvm-commits mailing list