diff options
author | Jie Zhang <jie.zhang@analog.com> | 2007-08-29 09:13:16 +0000 |
---|---|---|
committer | Jie Zhang <jiez@gcc.gnu.org> | 2007-08-29 09:13:16 +0000 |
commit | e874e49fdf1e637d510c38b8ca031f6843e3c878 (patch) | |
tree | d03ac27538629c3e70d0e5cbc738847ef8fe0f59 /gcc | |
parent | 1509835994cc7520387a2e8b81a6373a734329fb (diff) | |
download | gcc-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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.c | 5 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.opt | 4 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 7 |
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 |