On Mar 9, 2012, at 13:14, Anna Zaks wrote:
> Author: zaks
> Date: Fri Mar 9 15:14:01 2012
> New Revision: 152440
>
> URL: http://llvm.org/viewvc/llvm-project?rev=152440&view=rev
> Log:
> [analyzer] Add support for NoRedundancy inlining mode.
>
> We do not reanalyze a function, which has already been analyzed as an
> inlined callee. As per PRELIMINARY testing, this gives over
> 50% run time reduction on some benchmarks without decreasing of the
> number of bugs found.
I might be missing something, but isn't this straight-up incorrect? Example:
void doSomethingStupid(bool shouldCrash);
void analyzeMeFirst() {
doSomethingStupid(false);
}
void doSomethingStupid(bool shouldCrash) {
if (!shouldCrash) return;
void *p;
free(p); // this branch is pruned when doSomethingStupid is inlined
}
(Even if this particular example works, I feel like there's a similar problem
here somewhere.)
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits