Messages in this thread | | | Subject | Re: [PATCH] powerpc: workaround clang codegen bug in dcbz | From | Christophe Leroy <> | Date | Tue, 30 Jul 2019 07:31:23 +0200 |
| |
Le 29/07/2019 à 22:32, Nathan Chancellor a écrit : > On Mon, Jul 29, 2019 at 01:25:41PM -0700, Nick Desaulniers wrote: >> Commit 6c5875843b87 ("powerpc: slightly improve cache helpers") exposed >> what looks like a codegen bug in Clang's handling of `%y` output >> template with `Z` constraint. This is resulting in panics during boot >> for 32b powerpc builds w/ Clang, as reported by our CI. >> >> Add back the original code that worked behind a preprocessor check for >> __clang__ until we can fix LLVM. >> >> Further, it seems that clang allnoconfig builds are unhappy with `Z`, as >> reported by 0day bot. This is likely because Clang warns about inline >> asm constraints when the constraint requires inlining to be semantically >> valid. >> >> Link: https://bugs.llvm.org/show_bug.cgi?id=42762 >> Link: https://github.com/ClangBuiltLinux/linux/issues/593 >> Link: https://lore.kernel.org/lkml/20190721075846.GA97701@archlinux-threadripper/ >> Debugged-by: Nathan Chancellor <natechancellor@gmail.com> >> Reported-by: Nathan Chancellor <natechancellor@gmail.com> >> Reported-by: kbuild test robot <lkp@intel.com> >> Suggested-by: Nathan Chancellor <natechancellor@gmail.com> >> Signed-off-by: Nick Desaulniers <ndesaulniers@google.com> >> --- >> Alternatively, we could just revert 6c5875843b87. It seems that GCC >> generates the same code for these functions for out of line versions. >> But I'm not sure how the inlined code generated would be affected. > > For the record: > > https://godbolt.org/z/z57VU7 > > This seems consistent with what Michael found so I don't think a revert > is entirely unreasonable.
Your example functions are too simple to show anything. The functions takes only one parameter so of course GCC won't use two registers allthough given the opportunity.
Christophe
> > Either way: > > Reviewed-by: Nathan Chancellor <natechancellor@gmail.com> >
| |