[Bug c/87210] [RFE] introduce build time options to zero initialize automatic stack variables
qinzhao at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri May 15 20:44:27 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87210
--- Comment #6 from qinzhao at gcc dot gnu.org ---
So, based on the previous discussion on the LLVM option
-ftrivial-auto-var-init=[uninitialized|pattern|zero]
we can see:
-ftrivial-auto-var-init=pattern
might not be a good idea due to the following:
1. performance data is not good;
2. doesn't really help improve the general situation. People see it as a
debugging tool, not a "improve code quality and improve the life of kernel
developers" tool. (Per Linus)
On the other hand,
-ftrivial-auto-var-init=zero
might be helpful to improve code quality and improve the life fo kernel
developers.
At the same time, a new variable attribute might be needed at the same time
along with -ftrivial-auto-var-init=zero:
__attribute((uninitialized)
to mark variables that are uninitialized intentionally for performance purpose.
In a summary, in GCC, we should provide:
1. add a new GCC option: -ftrivial-auto-var-init to initialize trivial auto
variable to zero.
2. provide a new attribute for variable: __attribute((uninitialized) to mark
variables that are uninitialized intentionally for performance purpose.
More information about the Gcc-bugs
mailing list