aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJie Zhang <jie.zhang@analog.com>2007-08-29 09:13:16 +0000
committerJie Zhang <jiez@gcc.gnu.org>2007-08-29 09:13:16 +0000
commite874e49fdf1e637d510c38b8ca031f6843e3c878 (patch)
treed03ac27538629c3e70d0e5cbc738847ef8fe0f59
parent1509835994cc7520387a2e8b81a6373a734329fb (diff)
downloadgcc-e874e49fdf1e637d510c38b8ca031f6843e3c878.zip
gcc-e874e49fdf1e637d510c38b8ca031f6843e3c878.tar.gz
gcc-e874e49fdf1e637d510c38b8ca031f6843e3c878.tar.bz2
bfin.opt (minline-plt): Add.
* config/bfin/bfin.opt (minline-plt): Add. * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit call to global functions. * doc/invoke.texi (Option Summary): Mention -minline-plt. (Blackfin Options): Document -minline-plt. From-SVN: r127886
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/bfin/bfin.c5
-rw-r--r--gcc/config/bfin/bfin.opt4
-rw-r--r--gcc/doc/invoke.texi7
4 files changed, 22 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9e2f445..49c6def 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2007-08-28 Jie Zhang <jie.zhang@analog.com>
+
+ * config/bfin/bfin.opt (minline-plt): Add.
+ * config/bfin/bfin.c (bfin_expand_call): Inline PLT when emit
+ call to global functions.
+ * doc/invoke.texi (Option Summary): Mention -minline-plt.
+ (Blackfin Options): Document -minline-plt.
+
2007-08-28 Nathan Sidwell <nathan@codesourcery.com>
* config/m68k/m68k.c (m68k_get_function_kind): Assert we're never
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 2d27c32..b34e130 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -1880,7 +1880,10 @@ bfin_expand_call (rtx retval, rtx fnaddr, rtx callarg1, rtx cookie, int sibcall)
if (TARGET_FDPIC)
{
if (GET_CODE (callee) != SYMBOL_REF
- || bfin_longcall_p (callee, INTVAL (cookie)))
+ || bfin_longcall_p (callee, INTVAL (cookie))
+ || (GET_CODE (callee) == SYMBOL_REF
+ && !SYMBOL_REF_LOCAL_P (callee)
+ && TARGET_INLINE_PLT))
{
rtx addr = callee;
if (! address_operand (addr, Pmode))
diff --git a/gcc/config/bfin/bfin.opt b/gcc/config/bfin/bfin.opt
index 2871cbf..56d37b5 100644
--- a/gcc/config/bfin/bfin.opt
+++ b/gcc/config/bfin/bfin.opt
@@ -72,6 +72,10 @@ mfdpic
Target Report Mask(FDPIC)
Enable Function Descriptor PIC mode
+minline-plt
+Target Report Mask(INLINE_PLT)
+Enable inlining of PLT in function calls
+
mstack-check-l1
Target Report Mask(STACK_CHECK_L1)
Do stack checking using bounds in L1 scratch memory
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 8279e59..1c12d20 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -450,7 +450,7 @@ Objective-C and Objective-C++ Dialects}.
-mstack-check-l1 -mid-shared-library -mno-id-shared-library @gol
-mshared-library-id=@var{n} -mleaf-id-shared-library @gol
-mno-leaf-id-shared-library -msep-data -mno-sep-data -mlong-calls @gol
--mno-long-calls -mfast-fp}
+-mno-long-calls -mfast-fp -minline-plt}
@emph{CRIS Options}
@gccoptlist{-mcpu=@var{cpu} -march=@var{cpu} -mtune=@var{cpu} @gol
@@ -8618,6 +8618,11 @@ function calls via function pointers.
Link with the fast floating-point library. This library relaxes some of
the IEEE floating-point standard's rules for checking inputs against
Not-a-Number (NAN), in the interest of performance.
+
+@item -minline-plt
+@opindex minline-plt
+Enable inlining of PLT entries in function calls to functions that are
+not known to bind locally. It has no effect without @option{-mfdpic}.
@end table
@node CRIS Options