[Bug target/95134] Add a target option to avoid libcall
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95134 Richard Biener changed: What|Removed |Added Resolution|--- |WONTFIX Status|NEW |RESOLVED --- Comment #6 from Richard Biener --- As decided by Uros (I agree).
[Bug target/95134] Add a target option to avoid libcall
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95134 H.J. Lu changed: What|Removed |Added Resolution|WONTFIX |--- Status|RESOLVED|NEW Assignee|unassigned at gcc dot gnu.org |hjl.tools at gmail dot com --- Comment #5 from H.J. Lu --- Created attachment 48538 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48538&action=edit A patch to add -mavoid-libcall The -mgeneral-regs-only option generates code that uses only the general-purpose registers. It prevents the compiler from using vector registers. But GCC may still generate calls to memcpy, memmove, memset and memcmp library functions. In the GNU C library, these library functions are implementated with vector registers, which makes the -mgeneral-regs-only option less effective. The new -mavoid-libcall option expands memcpy, memmove and memset into REP MOVSB and REP STOSB sequence. This option can be further enhanced with a cmpmem pattern to expand memcmp into REP CMPSB sequence in the future.
[Bug target/95134] Add a target option to avoid libcall
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95134 --- Comment #4 from Andrew Pinski --- https://gcc.gnu.org/onlinedocs/gcc-4.0.4/gcc/Standards.html#index-ffreestanding-58
[Bug target/95134] Add a target option to avoid libcall
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95134 Andrew Pinski changed: What|Removed |Added Resolution|--- |WONTFIX Status|REOPENED|RESOLVED --- Comment #3 from Andrew Pinski --- (In reply to H.J. Lu from comment #2) > Since -ffreestanding can generate libcall, we should add a target option to > avoid libcall. -minline-all-stringops -mmemcpy-strategy= -mmemset-strategy= From https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Standards.html#index-ffreestanding : "Most of the compiler support routines used by GCC are present in libgcc, but there are a few exceptions. GCC requires the freestanding environment provide memcpy, memmove, memset and memcmp. Finally, if __builtin_trap is used, and the target does not implement the trap pattern, then GCC emits a call to abort. "
[Bug target/95134] Add a target option to avoid libcall
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95134 H.J. Lu changed: What|Removed |Added Summary|-ffreestanding should avoid |Add a target option to |libcall |avoid libcall Status|RESOLVED|REOPENED Ever confirmed|0 |1 Last reconfirmed||2020-05-14 Resolution|WONTFIX |--- --- Comment #2 from H.J. Lu --- Since -ffreestanding can generate libcall, we should add a target option to avoid libcall.