diff options
author | Qing Zhao <qing.zhao@oracle.com> | 2018-07-27 01:56:57 +0000 |
---|---|---|
committer | Qing Zhao <qinzhao@gcc.gnu.org> | 2018-07-27 01:56:57 +0000 |
commit | 3d592d2d56ccd3298ea0121de16615d27b9fb659 (patch) | |
tree | 7569ec1c9cef4945253f54093bf81810b0498774 /gcc/builtins.c | |
parent | 543f1a04223f839421cc170f60d8c178e2d4f1ad (diff) | |
download | gcc-3d592d2d56ccd3298ea0121de16615d27b9fb659.zip gcc-3d592d2d56ccd3298ea0121de16615d27b9fb659.tar.gz gcc-3d592d2d56ccd3298ea0121de16615d27b9fb659.tar.bz2 |
Disable strcmp/strncmp/memcmp inlining when optimization
level is lower than 2 or Os
From-SVN: r263028
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r-- | gcc/builtins.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index aa3e0d8..c659611 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -6854,6 +6854,11 @@ inline_expand_builtin_string_cmp (tree exp, rtx target) unsigned HOST_WIDE_INT length = 0; bool is_ncmp = (fcode == BUILT_IN_STRNCMP || fcode == BUILT_IN_MEMCMP); + /* Do NOT apply this inlining expansion when optimizing for size or + optimization level below 2. */ + if (optimize < 2 || optimize_insn_for_size_p ()) + return NULL_RTX; + gcc_checking_assert (fcode == BUILT_IN_STRCMP || fcode == BUILT_IN_STRNCMP || fcode == BUILT_IN_MEMCMP); |