1. 27 May, 2008 1 commit
  2. 26 May, 2008 39 commits
    • rs6000.c (rs6000_legitimize_tls_address): Generate new tls_gd_* and tls_ld_*… · 02135bc1
      rs6000.c (rs6000_legitimize_tls_address): Generate new tls_gd_* and tls_ld_* insns instead of an insn sequence.
      
      2008-05-26  Steven Bosscher  <stevenb.gcc@gmail.com>
      
      	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Generate
      	new tls_gd_* and tls_ld_* insns instead of an insn sequence.
      	* config/rs6000/rs6000.md (TLSmode, tls_abi_suffix, tls_insn_suffix,
      	tls_sysv_suffix): New mode and mode attribute iterators.
      	(tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64): Remove.
      	(lts_gd_aix*, tls_gd_sysv*, tls_ld_aix*, tls_ld_sysv*): New patterns.
      	(tls_dtprel_*, tls_dtprel_ha_*, tls_dtprel_lo_*, tls_got_dtprel_*,
      	tls_tprel_*, tls_tprel_ha_*, tls_tprel_lo_*, tls_got_tprel_*,
      	tls_tls_*): Merge 32 bit and 64 bit variants using aforementioned
      	iterators.
      
      From-SVN: r135961
      Steven Bosscher committed
    • cpp.c (cpp_define_builtins): Fixed warning about comment. · 273d8a65
      2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
      
      	* cpp.c (cpp_define_builtins): Fixed warning about comment.
      
      From-SVN: r135958
      Daniel Franke committed
    • cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros, added FIXME instead. · 3c2a68b3
      2008-05-26  Daniel Franke  <franke.daniel@gmail.com>
      
              * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
              added FIXME instead.
      
      From-SVN: r135956
      Daniel Franke committed
    • cmath (pow(float, int), [...]): Do not define in C++0x mode, per DR 550. · 774c3d86
      2008-05-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/c_global/cmath (pow(float, int), pow(double, int),
      	pow(long double, int)): Do not define in C++0x mode, per DR 550.
      	* include/tr1_impl/cmath (pow): Do not bring in unconditionally
      	from namespace std.
      	* include/tr1/cmath (pow(double, double), pow(float, float),
      	pow(long double, long double), pow(_Tp, _Up)): Define.
      	* include/tr1/complex (pow): Do not bring in from namespace std.
      	(pow(const std::complex<_Tp>&, int), pow(const std::complex<_Tp>&,
      	const _Tp&), pow(const _Tp&, const std::complex<_Tp>&),
      	pow(const std::complex<_Tp>&, const std::complex<_Tp>&)): Define.
      	* include/tr1_impl/complex (pow(const std::complex<_Tp>&,
      	const _Up&), pow(const _Tp&, const std::complex<_Up>&),
      	pow(const std::complex<_Tp>&, const std::complex<_Up>&)): Always
      	define.
      	* doc/xml/manual/intro.xml: Add an entry for DR 550.
      	* testsuite/26_numerics/headers/cmath/dr550.cc: New.
      	* testsuite/tr1/8_c_compatibility/cmath/overloads.cc: Adjust.
      
      From-SVN: r135955
      Paolo Carlini committed
    • re PR tree-optimization/36329 (latent problem with tree inlining) · ba977e1a
      	PR tree-optimization/36329
      	* tree.h (CALL_CANNOT_INLINE_P): Add access check.
      	* tree-gimple.h (CALL_STMT_CANNOT_INLINE_P): New macro.
      	* cgraphbuild.c (initialize_inline_failed): Use the latter
      	macro in lieu of the former.
      	* ipa-inline.c (cgraph_mark_inline): Likewise.
      	(cgraph_decide_inlining_of_small_function): Likewise.
      	(cgraph_decide_inlining): Likewise.
      	(cgraph_decide_inlining_incrementally): Likewise.
      
      From-SVN: r135954
      Eric Botcazou committed
    • avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs()) instead of pm_lo8/pm_hi8… · 4d492420
      avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs()) instead of pm_lo8/pm_hi8 to makes this call working on avr6.
      
      	* config/avr/avr.md ("call_prologue_saves"): Use hi8(gs())/lo8(gs())
      	instead of pm_lo8/pm_hi8 to makes this call working on avr6.
      	* config/avr/avr.c (expand_prologue): Tune "call_prologue" 
      	optimization for 'avr6' architecture.
      
      Co-Authored-By: Anatoly Sokolov <aesok@post.ru>
      
      From-SVN: r135953
      Tristan Gingold committed
    • re PR target/34932 ([avr] ICE in reload) · 319a58c6
      PR target/34932
      * config/avr/avr.md (*addhi3_zero_extend2): Remove.
      
      From-SVN: r135952
      Andy Hutchinson committed
    • Resync. · 094d7cfa
      From-SVN: r135951
      Arnaud Charlet committed
    • tree_io.ads (ASIS_Version_Number): Update because of the changes made in front-end · 912c0b93
      2008-05-26  Sergey Rybin  <rybin@adacore.com>
      
      	* tree_io.ads (ASIS_Version_Number): Update because of the changes
      	made in front-end
      
      From-SVN: r135950
      Sergey Rybin committed
    • * sem_attr.adb: Add some ??? comments for previous change · edde779b
      From-SVN: r135949
      Arnaud Charlet committed
    • * s-vaflop.ads: Add comments for previous change · 45c87b72
      From-SVN: r135948
      Arnaud Charlet committed
    • s-vaflop-vms-alpha.adb: Remove System.IO use clause... · 3a5ab1fd
      2008-05-26  Doug Rupp  <rupp@adacore.com>
      
      	* s-vaflop-vms-alpha.adb:
      	Remove System.IO use clause, to prevent spurious ambiguities when
      	package is access through rtsfind.
      
      From-SVN: r135947
      Doug Rupp committed
    • * exp_vfpt.ads: Add ??? comment for last change · 6e96b543
      From-SVN: r135946
      Arnaud Charlet committed
    • * exp_vfpt.adb: Minor reformatting · fda528a8
      From-SVN: r135945
      Arnaud Charlet committed
    • * exp_ch6.adb: Add ??? comment for previous change · 2acde248
      From-SVN: r135944
      Arnaud Charlet committed
    • tree-ssa-sccvn.c (expr_has_constants): Declare. · 26fa9076
      2008-05-26  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-sccvn.c (expr_has_constants): Declare.
      	(visit_reference_op_load): Initialize VN_INFO->has_constants
      	properly.
      
      From-SVN: r135943
      Richard Guenther committed
    • s-casi16.adb (Uhalf): Rewrite it as integer with small alignment. · 6054bf2a
      2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
      
      	* s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
      	(Compare_Array_S16): Adjust for above change.
      	* s-casi32.adb (Uword): Likewise.
      	(Compare_Array_S32): Likewise.
      	* s-casi64.adb (Uword): Likewise.
      	(Compare_Array_S64): Likewise.
      	* s-caun16.adb (Uhalf): Likewise.
      	(Compare_Array_U16): Likewise.
      	* s-caun32.adb (Uword): Likewise.
      	(Compare_Array_U32): Likewise.
      	* s-caun64.adb (Uword): Likewise.
      	(Compare_Array_U64): Likewise.
      
      From-SVN: r135942
      Eric Botcazou committed
    • exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for No_Default_Initialization... · 1ce1f005
      2008-05-26  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
      	No_Default_Initialization, which is now delayed until the freeze point
      	of the object. Add a comment about deferral of the check.
      	
      	* freeze.adb (Freeze_Entity): The check for No_Default_Initialization
      	on objects is moved here.
      
      From-SVN: r135941
      Gary Dismukes committed
    • Resync. · 9019f3fc
      From-SVN: r135940
      Arnaud Charlet committed
    • * gnat.dg/specs/array_no_def_init.ads: New test. · 4f2b873a
      From-SVN: r135939
      Arnaud Charlet committed
    • exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy init proc entity when... · c5ecf679
      2008-05-26  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
      	init proc entity when there is actual default initialization associated
      	with the component type, to avoid spurious errors on objects of scalar
      	array types that are marked Is_Public when No_Default_Initialization
      	applies.
      
      From-SVN: r135938
      Gary Dismukes committed
    • 2008-05-26 Doug Rupp <rupp@adacore.com> · c986420e
      	* s-vaflop.adb:
      	(Return_D, Return_F, Return_G): New functions.
      
      	* s-vaflop.ads:
      	(Return_D, Return_F, Return_G): New functions.
      
      	* exp_vfpt.adb:
      	(Expand_Vax_Foreign_Return): New procedure
      
      	* exp_vfpt.ads:
      	(Expand_Vax_Foreign_Return): New procedure
      
      	* rtsfind.ads:
      	(RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
      	(RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
      
      	* exp_ch6.adb:
      	Import Exp_Vfpt
      	(Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
      
      	* s-vaflop-vms-alpha.adb:
      	(Return_D, Return_F, Return_G): New functions.
      
      From-SVN: r135937
      Doug Rupp committed
    • sem_attr.adb: (Resolve_Attribute, case 'address): S (A .. · a66996b3
      2008-05-26  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_attr.adb:
      	(Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
      	converted to S (A)'address only if A .. B is known to be a non-null
      	range.
      
      From-SVN: r135936
      Ed Schonberg committed
    • 2008-05-26 Thomas Quinot <quinot@adacore.com> · d693e39d
      	* rtsfind.ads, rtsfind.adb:
      	(RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
      	(Check_RPC): Support per-PCS-kind API versioning.
      	
      	exp_dist.ads, exp_dist.adb:
      	(Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
      	(PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
      	 library function Get_RACW.
      	(PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
      	library function Get_Reference.
      	(PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
      	through an intermediate Any.
      	(PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
      	going through an intermediate Any.
      	
      	* sem_dist.adb: Minor reformatting.
      
      From-SVN: r135932
      Thomas Quinot committed
    • re PR middle-end/36253 (Caller-save stack slot may not have proper alignment) · 76fe54f0
      2008-05-26  H.J. Lu  <hongjiu.lu@intel.com>
      
      	PR middle-end/36253
      	* caller-save.c (insert_restore): Verify alignment of spill
      	space.
      	(insert_save): Likewise.
      
      	* cfgexpand.c (LOCAL_ALIGNMENT): Removed.
      
      	* defaults.h (LOCAL_ALIGNMENT): New. Provide default.
      	(STACK_SLOT_ALIGNMENT): Likewise.
      
      	* function.c (LOCAL_ALIGNMENT): Removed.
      	(get_stack_local_alignment): New.
      	(assign_stack_local): Use it.  Set alignment on stack slot.
      	(assign_stack_temp_for_type): Use get_stack_local_alignment.
      
      	* config/i386/i386.h (LOCAL_ALIGNMENT): Updated.
      	(STACK_SLOT_ALIGNMENT): New.
      
      	* config/i386/i386.c (ix86_local_alignment): Handle caller-save
      	stack slot in XFmode.
      
      	* doc/tm.texi (STACK_SLOT_ALIGNMENT): New.
      
      From-SVN: r135927
      H.J. Lu committed
    • * gnat.dg/pak.ad[sb]: New test. · e94a8385
      From-SVN: r135926
      Arnaud Charlet committed
    • Resync. · ad89bc8d
      From-SVN: r135925
      Arnaud Charlet committed
    • exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on condition for assignment to temporary. · 4babc15d
      2008-05-26  Thomas Quinot  <quinot@adacore.com>
      
      	* exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
      	condition for assignment to temporary.
      
      From-SVN: r135924
      Thomas Quinot committed
    • einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias. · ce2b6ba5
      2008-05-26  Javier Miranda  <miranda@adacore.com>
      
      	* einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
      	(Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
      	(Is_Internal): Adding documentation on internal entities that have
       	attribute Interface_Alias (old attribute Abstract_Interface_Alias)
      
      	* einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
      	(Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
       	Added assertion to force entities with this attribute to have
       	attribute Is_Internal set to True.
      	(Next_Tag_Component): Simplify assertion using attribute Is_Tag.
      
      	* sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
       	renamed as Derive_Progenitor_Subprograms. In addition, its code is
       	a new implementation.
      	(Add_Interface_Tag_Components): Remove special management of
      	synchronized interfaces.
      	(Analyze_Interface_Declaration): Minor reformating
      	(Build_Derived_Record_Type): Minor reformating
      	(Check_Abstract_Overriding): Avoid reporting error in case of abstract
       	predefined primitive inherited from interface type because the body of
       	internally generated predefined primitives of tagged types are generated
       	later by Freeze_Type
      	(Derive_Subprogram): Avoid generating an internal name if the parent
       	subprogram overrides an interface primitive.
      	(Derive_Subprograms): New implementation that keeps separate the
       	management of tagged types not implementing interfaces, from tagged
       	types that implement interfaces.
      	(Is_Progenitor): New implementation.
      	(Process_Full_View): Add documentation
      	(Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
       	by call to Derive_Progenitor_Subprograms.
      
      	* sem_ch6.ads (Is_Interface_Conformant): New subprogram.
      	(Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
       	Skip_Controlling_Formals.
      
      	* sem_ch6.adb (Is_Interface_Conformant): New subprogram.
      	(Check_Conventions): New implementation. Remove local subprogram
       	Skip_Check. Remove formal Search_From of routine Check_Convention.
      	(Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
       	Skip_Controlling_Formals.
      	(New_Overloaded_Entity): Enable addition of predefined dispatching
       	operations.
      
      	* sem_disp.ads
      	(Find_Primitive_Covering_Interface): New subprogram.
      
      	* sem_disp.adb (Check_Dispatching_Operation): Disable registering
       	the task body procedure as a primitive of the corresponding tagged
       	type.
      	(Check_Operation_From_Private_Type): Avoid adding twice an entity
       	to the list of primitives.
      	(Find_Primitive_Covering_Interface): New subprogram.
      	(Override_Dispatching_Operation): Add documentation.
      
      	* sem_type.adb (Covers): Minor reformatings
      
      	* sem_util.ads (Collect_Abstract_Interfaces): Renamed as
      	Collect_Interfaces.
       	Rename formal.
      	(Has_Abstract_Interfaces): Renamed as Has_Interfaces.
      	(Implements_Interface): New subprogram.
      	(Is_Parent): Removed.
      	(Primitive_Names_Match): New subprogram.
      	(Remove_Homonym): Moved here from Derive_Interface_Subprograms.
      	(Ultimate_Alias): New subprogram.
      
      	* sem_util.adb (Collect_Abstract_Interfaces): Renamed as
      	Collect_Interfaces.
       	Remove special management for synchronized types. Rename formal. Remove
       	internal subprograms Interface_Present_In_Parent and Add_Interface.
      	(Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
       	on non-record types by code to return false in such case.
      	(Implements_Interface): New subprogram.
      	(Is_Parent): Removed. No special management is now required for
       	synchronized types covering interfaces.
      	(Primitive_Names_Match): New subprogram.
      	(Remove_Homonym): Moved here from Derive_Interface_Subprograms.
      	(Ultimate_Alias): New subprogram.
      
      	* exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
       	Add internal entities associated with secondary dispatch tables to
       	the list of tagged type primitives that are not interfaces.
      	(Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
      	(Make_Predefined_Primitive_Specs): Code reorganization to improve
       	the management of predefined equality operator. In addition, if
       	the type has an equality function corresponding with a primitive
       	defined in an interface type, the inherited equality is abstract
       	as well, and no body can be created for it.
      
      	* exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
       	exp_util to exp_disp.
      	(Is_Predefined_Interface_Primitive): New subprogram. Returns True if
       	an entity corresponds with one of the predefined primitives required
       	to implement interfaces.
      	Update copyright notice.
      
      	* exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
       	final check on abstract subprograms all the primitives associated with
       	interface primitives because they must be visible in the public and
       	private part.
      	(Write_DT): Use Find_Dispatching_Type to locate the name of the
      	interface type. This allows the use of this routine, for debugging
      	purposes, when the tagged type is not fully decorated.
      	(Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
       	Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
      	(Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
       	entity corresponds with one of the predefined primitives required to
       	implement interfaces.
      
      	* exp_util.adb (Find_Interface_ADT): New implementation
      	(Find_Interface): Removed.
      
      	* sprint.adb (Sprint_Node_Actual): Generate missing output for the
       	list of interfaces associated with nodes
      	N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
      
      From-SVN: r135923
      Javier Miranda committed
    • i386.md (allocate_stack_worker_64): Make sure argument operand in rax isn't removed. · e5f005e1
      2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
      
      	PR/36321
      	* config/i386/i386.md (allocate_stack_worker_64): Make sure argument operand in
      	rax isn't removed.
      
      2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
      
      	* gcc-c.torture/execute/pr36321.c: New.
      
      From-SVN: r135921
      Kai Tietz committed
    • Resync. · c878b2ef
      From-SVN: r135920
      Arnaud Charlet committed
    • * sem_ch3.adb: Minor reformatting · 82d2af1b
      From-SVN: r135919
      Arnaud Charlet committed
    • exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint checks on the upper bound if... · e886436a
      2008-05-26  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
      	checks on the upper bound if the index type is a modular type, to
      	prevent wrap-around computations when size is close to upper bound of
      	type.
      
      From-SVN: r135918
      Ed Schonberg committed
    • Resync. · 39281edf
      From-SVN: r135917
      Arnaud Charlet committed
    • exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting. · 8cea7b64
      2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
      	Generate a tag check when the result subtype of a function, defined by
      	an access definition, designates a specific tagged type.
      	(Make_Tag_Check): New routine.
      
      From-SVN: r135916
      Hristian Kirtchev committed
    • * sinfo.ads: Minor reformatting · 41def521
      From-SVN: r135915
      Arnaud Charlet committed
    • sem_ch12.adb (Remove_Parent): Use specification of instance to retrieve generic parent... · 847ec40a
      2008-05-26  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Remove_Parent): Use specification of instance
      	to retrieve generic parent,
      	to handle properly the case where the instance is a child unit.
      	Add guard to handle properly wrapper packages.
      	Minor reformatting
      
      From-SVN: r135914
      Ed Schonberg committed
    • re PR middle-end/36300 (Incorrect type used for inlined expression) · fcb4587e
      2008-05-26  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/36300
      	* fold-const.c (extract_muldiv_1): Use TYPE_OVERFLOW_WRAPS,
      	not TYPE_UNSIGNED.  Use TYPE_PRECISION instead of GET_MODE_SIZE.
      
      	* gcc.dg/pr36300-1.c: New testcase.
      	* gcc.dg/pr36300-2.c: Likewise.
      
      From-SVN: r135913
      Richard Guenther committed
    • * ceinfo.adb, csinfo.adb: Remove warnings. Update headers. · d6ca724c
      From-SVN: r135912
      Arnaud Charlet committed