This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][RFC] Always require a 64bit HWI


On Wed, 30 Apr 2014, Richard Biener wrote:

> On Tue, 29 Apr 2014, Jeff Law wrote:
> 
> > On 04/29/14 05:21, Richard Biener wrote:
> > > 
> > > The following patch forces the availability of a 64bit HWI
> > > (without applying the cleanups that result from this).  I propose
> > > this exact patch for a short time to get those that are affected
> > > and do not want to be affected scream.
> > > 
> > > But honestly I don't see any important host architecture that
> > > not already requires a 64bit HWI.
> > > 
> > > Another concern is that the host compiler may not provide a
> > > 64bit type.  I'm not sure that this is an issue nowadays
> > > (even though C++98 doesn't have 'long long', so it's maybe
> > > more an issue now with C++ than it was previously with
> > > requiring C89).  But given that it wasn't an issue for
> > > the existing 64bit HWI requiring host archs it shouldn't
> > > be an issue now.
> > > 
> > > The benefit of this change is obviously the cleanup that
> > > can result from it - especially getting rid of code
> > > generation dependences on the host (!need_64bit_hwi
> > > doesn't mean we force a 32bit hwi).  As followup
> > > we can replace HOST_WIDE_INT and its friends with
> > > int64_t variants and appear less confusing to
> > > newcomers (and it's also less characters to type! yay!).
> > > 
> > > We'd still retain HOST_WIDEST_FAST_INT, and as Kenny
> > > said elsewhere wide-int should internally operate on that,
> > > not on the eventually slow int64_t.  But that's a separate
> > > issue.
> > > 
> > > So - any objections?
> > > 
> > > Thanks,
> > > Richard.
> > > 
> > > 2014-04-29  Richard Biener  <rguenther@suse.de>
> > > 
> > > 	libcpp/
> > > 	* configure.ac: Always set need_64bit_hwint to yes.
> > > 	* configure: Regenerated.
> > > 
> > > 	* config.gcc: Always set need_64bit_hwint to yes.
> > No objections.  The requirement for 64 bit HWINT traces its origins back to
> > the MIPS R5900 target IIRC.  It's probably well past the time when we should
> > just bite the bullet and make HWINT 64 bits across the board.
> > 
> > If the host compiler doesn't support 64-bit HWINT, then it seems to me the
> > host compiler can be used to bootstrap 4.9, which can then be used to
> > bootstrap more modern GCCs.
> > 
> > And like you I suspect it's really not going to be an issue in practice.
> 
> I realized I forgot to copy gcc-patches, so done now (patch copied
> below again for reference).
> 
> I propose to apply the patch after the wide-int merge for a short
> period of time and then followup with a patch to remove the
> need_64bit_hwint code (I'll make sure to send that out for review
> before applying this one).
> 
> Testing coverage for non-64bit hwi configs is really low these
> days (I know of only 32bit hppa-*-* that is still built and
> tested semi-regularly - Dave, I suppose the host compiler
> has a 64bit long long type there, right?).

I have now applied the patch (as it is said to fix wide-int merge
fallout).  The plan is to go forward with cleanups that are
possible after this throughout stage1 (I sent the first cleanup
patch already, but further ones should wait until we released
4.9.1 to not make backports harder than necessary).

Richard.

> Thanks,
> Richard.
> 
> 2014-04-29  Richard Biener  <rguenther@suse.de>
> 
> 	libcpp/
> 	* configure.ac: Always set need_64bit_hwint to yes.
> 	* configure: Regenerated.
> 
> 	* config.gcc: Always set need_64bit_hwint to yes.
> 
> Index: libcpp/configure.ac
> ===================================================================
> --- libcpp/configure.ac	(revision 209890)
> +++ libcpp/configure.ac	(working copy)
> @@ -200,7 +200,7 @@ case $target in
>  	tilegx*-*-* | tilepro*-*-* )
>  		need_64bit_hwint=yes ;;
>  	*)
> -		need_64bit_hwint=no ;;
> +		need_64bit_hwint=yes ;;
>  esac
>  
>  case $need_64bit_hwint:$ac_cv_sizeof_long in
> Index: gcc/config.gcc
> ===================================================================
> --- gcc/config.gcc	(revision 209890)
> +++ gcc/config.gcc	(working copy)
> @@ -233,7 +233,7 @@ gnu_ld="$gnu_ld_flag"
>  default_use_cxa_atexit=no
>  default_gnu_indirect_function=no
>  target_gtfiles=
> -need_64bit_hwint=
> +need_64bit_hwint=yes
>  need_64bit_isa=
>  native_system_header_dir=/usr/include
>  target_type_format_char='@'
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]