diff options
author | Hongyu Wang <hongyu.wang@intel.com> | 2023-07-06 14:22:52 +0800 |
---|---|---|
committer | Hongyu Wang <hongyu.wang@intel.com> | 2023-07-06 16:32:57 +0800 |
commit | 6ded65b8e6c55a9280e381775a64b2c282df6207 (patch) | |
tree | 1211f57a5d9bda255635a8f8b11006eb4fc6e50f /gcc/doc | |
parent | 9f4f833455bb35c11d03e93f802604ac7cd8b740 (diff) | |
download | gcc-6ded65b8e6c55a9280e381775a64b2c282df6207.zip gcc-6ded65b8e6c55a9280e381775a64b2c282df6207.tar.gz gcc-6ded65b8e6c55a9280e381775a64b2c282df6207.tar.bz2 |
i386: Update document for inlining rules
gcc/ChangeLog:
* doc/extend.texi: Move x86 inlining rule to a new subsubsection
and add description for inling of function with arch and tune
attributes.
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/extend.texi | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index d1b018e..d701b4d 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -7243,11 +7243,6 @@ Prefer 256-bit vector width for instructions. Prefer 512-bit vector width for instructions. @end table -On the x86, the inliner does not inline a -function that has different target options than the caller, unless the -callee has a subset of the target options of the caller. For example -a function declared with @code{target("sse3")} can inline a function -with @code{target("sse2")}, since @code{-msse3} implies @code{-msse2}. @end table @cindex @code{indirect_branch} function attribute, x86 @@ -7361,6 +7356,20 @@ counterpart to option @option{-mno-direct-extern-access}. @end table +@subsubsection Inlining rules +On the x86, the inliner does not inline a +function that has different target options than the caller, unless the +callee has a subset of the target options of the caller. For example +a function declared with @code{target("sse3")} can inline a function +with @code{target("sse2")}, since @code{-msse3} implies @code{-msse2}. + +Besides the basic rule, when a function specifies +@code{target("arch=@var{ARCH}")} or @code{target("tune=@var{TUNE}")} +attribute, the inlining rule will be different. It allows inlining of +a function with default @option{-march=x86-64} and +@option{-mtune=generic} specified, or a function that has a subset +of ISA features and marked with always_inline. + @node Xstormy16 Function Attributes @subsection Xstormy16 Function Attributes |