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.