]> git.ipfire.org Git - thirdparty/gcc.git/commit
tree-optimization/105801 - CCP and .DEFERRED_INIT
authorRichard Biener <rguenther@suse.de>
Tue, 13 Dec 2022 13:24:02 +0000 (14:24 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 13 Dec 2022 13:36:02 +0000 (14:36 +0100)
commit8f4634fb82d5670183d0ee42de9dae3b55ab5087
tree6cbcf2f4ba649ad9d793c0a08d5f590951fe74f1
parentedc676cfe8988c62c81b0df224c7fe82583012b1
tree-optimization/105801 - CCP and .DEFERRED_INIT

This makes sure we treat .DEFERRED_INIT as producing UNDEFINED so
we can continue optimizing uninitialized uses the same as without
-ftrivial-auto-var-init=zero.  For the testcase this means we
catch the return 1 optimization opportunity at CCP rather than
only at FRE which already does the right thing here.

PR tree-optimization/105801
* tree-ssa-ccp.cc (likely_value): .DEFERRED_INIT produces
UNDEFINED.
* doc/invoke.texi (ftrivial-auto-var-init): Explicitely
mention we treat variables without an initializer as
undefined also for optimization purposes.

* gcc.dg/tree-ssa/ssa-ccp-43.c: New testcase.
gcc/doc/invoke.texi
gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-43.c [new file with mode: 0644]
gcc/tree-ssa-ccp.cc