This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/82012] [8 Regression] libitm build fails for s390x-linux-gnu
- From: "krebbel at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 30 Aug 2017 08:24:09 +0000
- Subject: [Bug target/82012] [8 Regression] libitm build fails for s390x-linux-gnu
- Auto-submitted: auto-generated
- References: <bug-82012-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82012
--- Comment #7 from Andreas Krebbel <krebbel at gcc dot gnu.org> ---
(In reply to rguenther@suse.de from comment #6)
...
> IPA computes this for us, but only somewhat as it looks for FP expressions
> only (hopefully taking all inline asm as containing FP expressions) but
> not disallowing FP value loads/stores. See i386.c:ix86_can_inline_p:
>
> else if (caller_opts->x_ix86_fpmath != callee_opts->x_ix86_fpmath
> /* If the calle doesn't use FP expressions differences in
> ix86_fpmath can be ignored. We are called from FEs
> for multi-versioning call optimization, so beware of
> ipa_fn_summaries not available. */
> && (! ipa_fn_summaries
> || ipa_fn_summaries->get
> (cgraph_node::get (callee))->fp_expressions))
>
> this means the RA would have to load/store to non-FPR registers
> which is what soft-float should guarantee. I think even FP expressions
> should work, dispatching to soft-float routines? So IPA should
> compute a inline_asm flag (but even that would need to name FPRs
> in the constraints explicitely to be a problem I guess).
-msoft-float is supposed to prevent any use of FPRs. With -mhard-float FPRs
might be used as spill slots also for integer expressions and we also emit
FPR<->GPR loads in the function prologue and epilogue in order to avoid
allocating stack if not necessary. These case would probably not be catched by
the IPA fp accounting - right?!
...
> > So for S/390 I currently would tend to always allow inlining regardless of the
> > target attributes hoping that the majority of problems would be catched (with
> > obscure error messages mostly).
>
> ICEs you mean, or assembler errors.
>
> On x86 we avoid the inlining to not run into obscure ICEs (but got hit
> with inline failure errors with -flto due to the "bugs").
Ok, I'll try to do the same for s390. Thanks!