On Tue, Jun 20, 2023 at 10:51:25AM +0530, Naveen N Rao wrote: > Christophe Leroy wrote: > > This reverts commit 1e688dd2a3d6759d416616ff07afc4bb836c4213. > > > > That commit aimed at optimising the code around generation of > > WARN_ON/BUG_ON but this leads to a lot of dead code erroneously > > generated by GCC. > > > > text data bss dec hex filename > > 9551585 3627834 224376 13403795 cc8693 vmlinux.before > > 9535281 3628358 224376 13388015 cc48ef vmlinux.after > > > > Once this change is reverted, in a standard configuration (pmac32 + > > function tracer) the text is reduced by 16k which is around 1.7% > > Aneesh recently reported a build failure due to the use of 'asm goto' in > WARN_ON(). We were able to root-cause it to the use of 'asm goto' with two > config options: CONFIG_CC_OPTIMIZE_FOR_SIZE and > CONFIG_DEBUG_SECTION_MISMATCH.
FWIW; I recently had clang-powerpc report a very dodgy build error that was due to a combination of these asm-goto and the usage of __cleanup__. For some reason the label of the asm-goto crossed over the __cleanup__ variable declaration -- which is not valid, but also was completely insane for that's not what the code called for. https://lkml.kernel.org/r/20230610082005.gb1370...@hirez.programming.kicks-ass.net But in my book that's a compiler issue, not a kernel issue and I'd be hesitant to pull the asm-goto use just for that.