* [patch] Fixed-point patch 9/10
@ 2007-08-02 0:25 Fu, Chao-Ying
2007-09-11 19:48 ` Fu, Chao-Ying
0 siblings, 1 reply; 8+ messages in thread
From: Fu, Chao-Ying @ 2007-08-02 0:25 UTC (permalink / raw)
To: gcc-patches; +Cc: Thekkath, Radhika, Stephens, Nigel, Mark Mitchell
[-- Attachment #1: Type: text/plain, Size: 1559 bytes --]
Hi,
Here is the patch #9. Please review it. Thanks!
> 1. Merge in machine modes to support signed and unsigned
> fract and accum modes. Handle scalar and vector modes.
DONE!
> 2. Merge in fixed-value.h and fixed-value.c to handle fixed-point values.
(fixed-value.diff)
> 3. Merge in TREE structures for fixed-point types and constants.
(tree.diff)
> 4. Merge in C front-end changes to parse _Sat, _Fract and _Accum.
(c-parser.diff)
> 5. Merge in RTL structures for fixed-point constants and operators.
(rtl.diff)
> 6. Merge in libcpp to parse fixed-point constants.
(cpp.diff)
> 7. Merge in changes to support "case" of FIXED_POINT_TYPE, FIXED_CST,
> and CONST_FIXED in .c and .h files.
(changes.diff)
> 8. Merge in the MIPS backend that supports fixed-point instructions.
(mips.diff)
> 9. Merge in configure/build system changes for the runtime library.
(libgcc.diff)
> 10. Merge in testsuite (from gcc.dg/fixed-point) that only run
> when the compiler is configured to enable fixed-point.
Regards,
Chao-ying
gcc/ChangeLog
2007-08-01 Chao-ying Fu <fu@mips.com>
* config/fixed-bit.h: New file.
* config/fixed-bit.c: New file.
* doc/libgcc.texi (Fixed-point fractional library routines): New node.
libgcc/ChangeLog
2007-08-01 Chao-ying Fu <fu@mips.com>
* fixed-obj.mk: New file to support fine-grain fixed-point functions.
* Makefile.in (fixed_point): Define.
Check if fixed_point is yes to build support functions.
* configure.ac: Check for fixed_point support.
* configure: Regenerated.
[-- Attachment #2: libgcc.diff.gz --]
[-- Type: application/x-gzip, Size: 21691 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [patch] Fixed-point patch 9/10
2007-08-02 0:25 [patch] Fixed-point patch 9/10 Fu, Chao-Ying
@ 2007-09-11 19:48 ` Fu, Chao-Ying
2007-09-12 7:00 ` Mark Mitchell
0 siblings, 1 reply; 8+ messages in thread
From: Fu, Chao-Ying @ 2007-09-11 19:48 UTC (permalink / raw)
To: Mark Mitchell, Richard Sandiford, gcc-patches
Cc: Thekkath, Radhika, Stephens, Nigel
Hi,
>
> gcc/ChangeLog
> 2007-08-01 Chao-ying Fu <fu@mips.com>
>
> * config/fixed-bit.h: New file.
> * config/fixed-bit.c: New file.
> * doc/libgcc.texi (Fixed-point fractional library
> routines): New node.
>
> libgcc/ChangeLog
> 2007-08-01 Chao-ying Fu <fu@mips.com>
>
> * fixed-obj.mk: New file to support fine-grain
> fixed-point functions.
> * Makefile.in (fixed_point): Define.
> Check if fixed_point is yes to build support functions.
> * configure.ac: Check for fixed_point support.
> * configure: Regenerated.
>
Is there any status update for this patch (9/10)?
http://gcc.gnu.org/ml/gcc-patches/2007-08/msg00099.html
One issue that we want to mention is that
building this fixed-point libgcc library requires GNU make 3.81,
due to code in Makefile.in:
Ex:
+# Generate permutations of generic function name and mode
+$(foreach name,$(fixed-func-names),\
+ $(foreach mode,$(fixed-fract-modes),\
+ $(eval $(call fixed-arith,$(name),$(mode)))))
This "make version" issue will affect all MIPS targets, because
fixed-point is enabled by default for MIPS.
Can we ask people to move to "GNU make 3.81"?
Or do you have any suggestion?
Thanks a lot!
Regards,
Chao-ying
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [patch] Fixed-point patch 9/10
2007-09-11 19:48 ` Fu, Chao-Ying
@ 2007-09-12 7:00 ` Mark Mitchell
2007-09-12 14:19 ` Joseph S. Myers
2007-09-12 19:15 ` Fu, Chao-Ying
0 siblings, 2 replies; 8+ messages in thread
From: Mark Mitchell @ 2007-09-12 7:00 UTC (permalink / raw)
To: Fu, Chao-Ying
Cc: Richard Sandiford, gcc-patches, Thekkath, Radhika, Stephens, Nigel
Fu, Chao-Ying wrote:
> Is there any status update for this patch (9/10)?
> http://gcc.gnu.org/ml/gcc-patches/2007-08/msg00099.html
Wow, that's a lot of routines. :-) I'm going to trust you that the
implementations of the various routines are OK. How many of those
routines are actually necessary on a MIPS processor that supports
fixed-point? Do almost all of them get eliminated from libgcc?
I'm a little worried about how much bigger this will make libgcc, but if
it only affects targets configured with fixed-point emulation, then I'm
not so worried. (I suspect that most people will either used a
fixed-point processor, or will not even turn on the emulation.)
> One issue that we want to mention is that
> building this fixed-point libgcc library requires GNU make 3.81,
> due to code in Makefile.in:
Thank you for pointing this out. The make code you've written looks
very tidy. However, I don't think we can require GNU make 3.81 at this
point. I think it would be reasonable to require that for GCC 4.4, but
I think it's a bit late in the game to require that for 4.3. In any
case, it's not a decision I can make unilaterally. Is it possible to do
what you need to do with an older version of GNU make? (I can't
remember what the oldest supported version of GNU make is for GCC.)
Thanks,
--
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [patch] Fixed-point patch 9/10
2007-09-12 7:00 ` Mark Mitchell
@ 2007-09-12 14:19 ` Joseph S. Myers
2007-09-12 19:15 ` Fu, Chao-Ying
1 sibling, 0 replies; 8+ messages in thread
From: Joseph S. Myers @ 2007-09-12 14:19 UTC (permalink / raw)
To: Mark Mitchell
Cc: Fu, Chao-Ying, Richard Sandiford, gcc-patches, Thekkath, Radhika,
Stephens, Nigel
On Tue, 11 Sep 2007, Mark Mitchell wrote:
> Thank you for pointing this out. The make code you've written looks
> very tidy. However, I don't think we can require GNU make 3.81 at this
> point. I think it would be reasonable to require that for GCC 4.4, but
> I think it's a bit late in the game to require that for 4.3. In any
> case, it's not a decision I can make unilaterally. Is it possible to do
> what you need to do with an older version of GNU make? (I can't
> remember what the oldest supported version of GNU make is for GCC.)
The required version documented in install.texi is 3.79.1 or later.
With make there's also the issue that 3.81 has a POSIX-compatibility fix
that breaks building some software relying on the old behavior (such as
old versions of GCC, see bug 26764/27334). (There are also some other
incompatible changes, but I think they are less important in practice.)
This does mean that make upgrades are not completely safe, although not so
problematic as flex upgrades (where newer versions introduce gratuitous
POSIX-incompatibilities, see previous discussions) may be.
--
Joseph S. Myers
joseph@codesourcery.com
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [patch] Fixed-point patch 9/10
2007-09-12 7:00 ` Mark Mitchell
2007-09-12 14:19 ` Joseph S. Myers
@ 2007-09-12 19:15 ` Fu, Chao-Ying
2007-09-15 2:15 ` Fu, Chao-Ying
1 sibling, 1 reply; 8+ messages in thread
From: Fu, Chao-Ying @ 2007-09-12 19:15 UTC (permalink / raw)
To: Mark Mitchell
Cc: Richard Sandiford, gcc-patches, Thekkath, Radhika, Stephens, Nigel
Mark Mitchell wrote:
> > Is there any status update for this patch (9/10)?
> > http://gcc.gnu.org/ml/gcc-patches/2007-08/msg00099.html
>
> Wow, that's a lot of routines. :-) I'm going to trust you that the
> implementations of the various routines are OK. How many of those
> routines are actually necessary on a MIPS processor that supports
> fixed-point? Do almost all of them get eliminated from libgcc?
MIPS processors can support most of add, sub, mul patterns with or without
saturating. For division, shift, compare, negation, and conversions among
fixed-point, integer, and floating-point types, libgcc routines are needed.
Conversion routines are the biggest portion in libgcc, because
we convert between so many different machine modes to cover
all cases.
>
> I'm a little worried about how much bigger this will make
> libgcc, but if
> it only affects targets configured with fixed-point
> emulation, then I'm
> not so worried. (I suspect that most people will either used a
> fixed-point processor, or will not even turn on the emulation.)
>
> > One issue that we want to mention is that
> > building this fixed-point libgcc library requires GNU make 3.81,
> > due to code in Makefile.in:
>
> Thank you for pointing this out. The make code you've written looks
> very tidy. However, I don't think we can require GNU make
> 3.81 at this
> point. I think it would be reasonable to require that for
> GCC 4.4, but
> I think it's a bit late in the game to require that for 4.3. In any
> case, it's not a decision I can make unilaterally. Is it
> possible to do
> what you need to do with an older version of GNU make? (I can't
> remember what the oldest supported version of GNU make is for GCC.)
>
I will check with Nigel to see if we can change Makefile.in for
GNU Make 3.79.1. Thanks a lot!
Regards,
Chao-ying
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [patch] Fixed-point patch 9/10
2007-09-12 19:15 ` Fu, Chao-Ying
@ 2007-09-15 2:15 ` Fu, Chao-Ying
2007-09-17 21:37 ` Mark Mitchell
0 siblings, 1 reply; 8+ messages in thread
From: Fu, Chao-Ying @ 2007-09-15 2:15 UTC (permalink / raw)
To: Mark Mitchell, gcc-patches
Cc: Richard Sandiford, Thekkath, Radhika, Stephens, Nigel
[-- Attachment #1: Type: text/plain, Size: 1588 bytes --]
Hi,
> > Thank you for pointing this out. The make code you've written looks
> > very tidy. However, I don't think we can require GNU make
> > 3.81 at this
> > point. I think it would be reasonable to require that for
> > GCC 4.4, but
> > I think it's a bit late in the game to require that for 4.3. In any
> > case, it's not a decision I can make unilaterally. Is it
> > possible to do
> > what you need to do with an older version of GNU make? (I can't
> > remember what the oldest supported version of GNU make is for GCC.)
> >
>
> I will check with Nigel to see if we can change Makefile.in for
> GNU Make 3.79.1. Thanks a lot!
>
We change Makefile.in for GNU Make 3.79.1. Please check the updated patch.
We add an external shell script to generate the necessary lists to build
fixed-point functions. Is this updated patch ok? Thanks a lot!
Regards,
Chao-ying
gcc/ChangeLog
2007-09-14 Chao-ying Fu <fu@mips.com>
Nigel Stephens <nigel@mips.com>
* config/fixed-bit.h: New file.
* config/fixed-bit.c: New file.
* doc/libgcc.texi (Fixed-point fractional library routines): New node.
libgcc/ChangeLog
2007-09-14 Chao-ying Fu <fu@mips.com>
Nigel Stephens <nigel@mips.com>
* fixed-obj.mk: New file to support fine-grain fixed-point functions.
* Makefile.in (fixed_point): Define.
Check if fixed_point is yes to build support functions.
* configure.ac: Check for fixed_point support.
* configure: Regenerated.
* gen-fixed.sh: New file to generate lists of fixed-point labels,
funcs, modes, from, to.
[-- Attachment #2: libgcc.diff.gz --]
[-- Type: application/x-gzip, Size: 22966 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [patch] Fixed-point patch 9/10
2007-09-15 2:15 ` Fu, Chao-Ying
@ 2007-09-17 21:37 ` Mark Mitchell
2007-09-17 23:11 ` Fu, Chao-Ying
0 siblings, 1 reply; 8+ messages in thread
From: Mark Mitchell @ 2007-09-17 21:37 UTC (permalink / raw)
To: Fu, Chao-Ying
Cc: gcc-patches, Richard Sandiford, Thekkath, Radhika, Stephens, Nigel
Fu, Chao-Ying wrote:
> gcc/ChangeLog
> 2007-09-14 Chao-ying Fu <fu@mips.com>
> Nigel Stephens <nigel@mips.com>
>
> * config/fixed-bit.h: New file.
> * config/fixed-bit.c: New file.
> * doc/libgcc.texi (Fixed-point fractional library routines): New node.
>
> libgcc/ChangeLog
> 2007-09-14 Chao-ying Fu <fu@mips.com>
> Nigel Stephens <nigel@mips.com>
>
> * fixed-obj.mk: New file to support fine-grain fixed-point functions.
> * Makefile.in (fixed_point): Define.
> Check if fixed_point is yes to build support functions.
> * configure.ac: Check for fixed_point support.
> * configure: Regenerated.
> * gen-fixed.sh: New file to generate lists of fixed-point labels,
> funcs, modes, from, to.
This version is OK. Thank you for the rework on the Makefile parts.
Doing it within Make itself is clearly better -- we just can't do it yet.
Thanks,
--
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [patch] Fixed-point patch 9/10
2007-09-17 21:37 ` Mark Mitchell
@ 2007-09-17 23:11 ` Fu, Chao-Ying
0 siblings, 0 replies; 8+ messages in thread
From: Fu, Chao-Ying @ 2007-09-17 23:11 UTC (permalink / raw)
To: Mark Mitchell, gcc-patches
Cc: Richard Sandiford, Thekkath, Radhika, Stephens, Nigel
Mark Mitchell wrote:
>
> > gcc/ChangeLog
> > 2007-09-14 Chao-ying Fu <fu@mips.com>
> > Nigel Stephens <nigel@mips.com>
> >
> > * config/fixed-bit.h: New file.
> > * config/fixed-bit.c: New file.
> > * doc/libgcc.texi (Fixed-point fractional library
> routines): New node.
> >
> > libgcc/ChangeLog
> > 2007-09-14 Chao-ying Fu <fu@mips.com>
> > Nigel Stephens <nigel@mips.com>
> >
> > * fixed-obj.mk: New file to support fine-grain
> fixed-point functions.
> > * Makefile.in (fixed_point): Define.
> > Check if fixed_point is yes to build support functions.
> > * configure.ac: Check for fixed_point support.
> > * configure: Regenerated.
> > * gen-fixed.sh: New file to generate lists of
> fixed-point labels,
> > funcs, modes, from, to.
>
> This version is OK. Thank you for the rework on the Makefile parts.
> Doing it within Make itself is clearly better -- we just
> can't do it yet.
>
> Thanks,
This patch (9/10) is applied. Thanks a lot!
NOTE: For MIPS targets, if you think it takes too long to compile libgcc,
you could disable the fixed-point extension by "--disable-fixed-point"
when configuring gcc. Thanks!
Regards,
Chao-ying
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2007-09-17 22:30 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-02 0:25 [patch] Fixed-point patch 9/10 Fu, Chao-Ying
2007-09-11 19:48 ` Fu, Chao-Ying
2007-09-12 7:00 ` Mark Mitchell
2007-09-12 14:19 ` Joseph S. Myers
2007-09-12 19:15 ` Fu, Chao-Ying
2007-09-15 2:15 ` Fu, Chao-Ying
2007-09-17 21:37 ` Mark Mitchell
2007-09-17 23:11 ` Fu, Chao-Ying
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).