Bernd Schmidt [Thu, 24 Jun 2010 23:30:28 +0000 (23:30 +0000)]
ira-int.h (struct live_range, [...]): Renamed from struct ira_allocno_live_range and allocno_live_range_t...
* ira-int.h (struct live_range, live_range_t): Renamed from struct
ira_allocno_live_range and allocno_live_range_t; all uses changed.
* ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
All uses changed.
Bernd Schmidt [Thu, 24 Jun 2010 23:27:09 +0000 (23:27 +0000)]
ira-build.c (merge_hard_reg_conflicts): New function.
* ira-build.c (merge_hard_reg_conflicts): New function.
(create_cap_allocno, copy_info_to_removed_store_destinations,
propagate_some_info_from_allocno, propagate_allocno_info): Use it.
(move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
(remove_unnecessary_allocnos, remove_low_level_allocnos)
copy_nifo_to_removed_store_destination): Use them.
* ira-lives.c (make_hard_regno_born): New function, split out of
make_regno_born.
(make_allocno_born): Likewise.
(make_hard_regno_dead): New function, split out of make_regno_dead.
(make_allocno_dead): Likewise.
(inc_register_pressure): New function, split out of set_allocno_live.
(dec_register_pressure): New function, split out of clear_allocno_live.
(mark_pseudo_regno_live): New function, split out of mark_reg_live.
(mark_hard_reg_live): Likewise. Use inc_register_pressure.
(mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
(mark_hard_reg_dead): Likewise. Use dec_register_pressure.
(make_pseudo_conflict): Use mark_pseudo_regno_dead and
mark_pseudo_regno_live.
(process_bb_node_lives): Use mark_pseudo_regno_live,
make_hard_regno_born and make_allocno_dead.
(make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
set_allocno_live, clear_allocno_live): Delete functions.
Anatoly Sokolov [Wed, 23 Jun 2010 19:18:10 +0000 (23:18 +0400)]
decl.c (java_init_decl_processing): Use double_int_to_tree instead of build_int_cst_wide.
/java
* decl.c (java_init_decl_processing): Use double_int_to_tree instead
of build_int_cst_wide.
* boehm.c (set_bit): Remove.
(mark_reference_fields): Use double_int type for 'mask' argument.
Use double_int_setbit instead of set_bit.
(get_boehm_type_descriptor): Use double_int_setbit instead of
set_bit. Use double_int_to_tree instead of build_int_cst_wide.
Uros Bizjak [Wed, 23 Jun 2010 19:02:42 +0000 (21:02 +0200)]
i386 (mov<mode>): Macroize expander from mov{sf,df,xf} using X87MODEF mode iterator.
* config/i386/i386 (mov<mode>): Macroize expander from mov{sf,df,xf}
using X87MODEF mode iterator.
(pushsf splitter): Macroize splitter using P mode iterator.
(*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
mode iterator.
(*movxf_internal): Rename from *movxf_integer.
(*movxf_internal_nointeger): Rename from *movxf_nointeger.
(*movdf_internal_rex64): Rename from *movdf_integer_rex64.
(*movdf_internal): Rename from *movdf_integer.
(*movdf_internal_nointeger): Rename from *movdf_nointeger.
(*movsf_internal): Rename from *movdf_1.
H.J. Lu [Wed, 23 Jun 2010 14:11:23 +0000 (14:11 +0000)]
Split AVX vec_extract_lo_XXX and 128bit to 256bit cast.
Remove 256bit to 128bit cast.
2010-06-23 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
and CODE_FOR_vec_extract_lo_v4df.
Arnaud Charlet [Wed, 23 Jun 2010 12:44:34 +0000 (14:44 +0200)]
[multiple changes]
2010-06-23 Thomas Quinot <quinot@adacore.com>
* exp_attr.adb (Expand_Access_To_Protected_Op): When rewriting a
reference to a protected subprogram outside of the protected's scope,
ensure the corresponding external subprogram is frozen before the
reference.
Arnaud Charlet [Wed, 23 Jun 2010 10:21:23 +0000 (12:21 +0200)]
[multiple changes]
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Check_Constant_Address_Clauses): Do not check legality
of address clauses if if Ignore_Rep_Clauses is active.
* freeze.adb (Check_Address_Clause): If Ignore_Rep_Clauses is active,
remove address clause from tree so that it does not reach the backend.
2010-06-23 Arnaud Charlet <charlet@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Do not
expand 'Valid from user code in CodePeer mode, will be handled by the
back-end directly.
2010-06-23 Bob Duff <duff@adacore.com>
* g-comlin.ads: Minor comment improvements.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Uses_SS): The expression that initializes a controlled
component of a record type may be a user-defined operator that is
rewritten as a function call.
Arnaud Charlet [Wed, 23 Jun 2010 09:53:24 +0000 (11:53 +0200)]
[multiple changes]
2010-06-23 Eric Botcazou <ebotcazou@adacore.com>
* exp_ch11.adb (Expand_Local_Exception_Handlers): Propagate the end
label to the new sequence of statements. Set the sloc of the raise
statement onto the new goto statements.
2010-06-23 Robert Dewar <dewar@adacore.com>
* a-stuten.ads, a-stuten.adb: New files.
* impunit.adb: Add engtry for Ada.Strings.UTF_Encoding (a-stuten.ads)
* Makefile.rtl: Add entry for a-stuten (Ada.Strings.UTF_Encoding)
2010-06-23 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Add documentation of -gnat12 switch
Add documentation of -gnatX switch.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* inline.ads: Include the current Ada_Version in the info for pending
instance bodies, so that declaration and body are compiled with the
same Ada_Version.
* inline.adb: Move with_clause for Opt to spec.
* sem_ch12.adb (Analyze_Package_Instantiation,
Analyze_Subprogram_Instantiation): Save current Ada_Version in
Pending_Instantiation information.
(Instantiate_Package_Body, Instantiate_Subprogram_Body,
Inline_Package_Body): Use the Ada_Version present in the body
information.
2010-06-23 Robert Dewar <dewar@adacore.com>
* usage.adb: Add documentation for -gnat12 switch.
* errout.ads: Add VMS alias entry for -gnat12 switch
* gnat_rm.texi: Add documentation for pragma Ada_12 and Ada_2012
Add documentation for pragma Extensions_Allowed.
* opt.ads: Add entry for Ada 2012 mode.
* sem_ch4.adb, par-ch3.adb, par-ch4.adb: Use new Ada 2012 mode for 2012
features.
* sem_prag.adb, par-prag.adb: Add processing for pragma Ada_12 and
Ada_2012.
* sem_ch13.adb: Add handling for Ada 2012 mode.
* snames.ads-tmpl: Add entries for pragma Ada_2012 and Ada_12.
* switch-c.adb: Add handling for -gnat12 switch.
Implement -gnat2005 and -gnat2012.
* usage.adb: Add documentation for -gnat12 switch.
* vms_data.ads: Add /12 switch for Ada 2012 mode.
Arnaud Charlet [Wed, 23 Jun 2010 09:23:47 +0000 (11:23 +0200)]
[multiple changes]
2010-06-23 Robert Dewar <dewar@adacore.com>
* sem_ch5.adb (Process_Bounds): Remove some junk initializations.
* sem_res.adb: Add comments.
* sem_util.adb: Minor reformatting. Add comments.
Change increment on Actuals_In_Call table.
* opt.ads: Minor: add 'constant'.
2010-06-23 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Make_DT): Initialize the Size_Func component of the
TSD to Null_Address if No_Dispatching_Calls is active.
2010-06-23 Vincent Celier <celier@adacore.com>
* a-comlin.ads: Indicate that use of this package is not supported
during the elaboration of an auto-initialized Stand-Alone Library.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb (Is_Possibly_Misaligned_Object): Do not rely on an
alignment clause on a record type to determine if a component may be
misaligned. The decision must be taken in the back-end where target
alignment information is known.
2010-06-23 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Enable some restrictions
systematically in CodePeer mode to simplify generated code.
* restrict.adb (Check_Restriction): Do nothing in CodePeer mode.
* exp_ch4.adb (Expand_N_Allocator): Generate proper code when
No_Task_Hierarchy is set instead of crasshing.
Arnaud Charlet [Wed, 23 Jun 2010 09:14:55 +0000 (11:14 +0200)]
[multiple changes]
2010-06-23 Thomas Quinot <quinot@adacore.com>
* sem_util.adb: Minor code cleanup: test for proper entity instead of
testing just Chars attribute when checking whether a given scope is
System.
* exp_ch4.adb, einfo.adb: Minor reformatting.
2010-06-23 Vincent Celier <celier@adacore.com>
PR ada/44633
* switch-m.adb (Normalize_Compiler_Switches): Take into account
switches -gnatB, -gnatD=nn, -gnatG (incuding -gnatG=nn), -gnatI,
-gnatl=file, -gnatS, -gnatjnn, -gnateI=nn and -gnatWx.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Membership_Op): If left operand is a mixed mode
operation with a universal real operand, and the right operand is a
range with universal bounds, find unique fixed point that may be
candidate, and warn appropriately.
Arnaud Charlet [Wed, 23 Jun 2010 09:08:31 +0000 (11:08 +0200)]
[multiple changes]
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve_Intrinsic_Operator): Add guards to handle
properly the rare cases where VMS operators are visible through
Extend_System, but the default System is being used and Address is a
private type.
* sem_util.adb: Widen predicate Is_VMS_Operator.
2010-06-23 Vincent Celier <celier@adacore.com>
* switch-m.adb (Normalize_Compiler_Switches): Take into account -gnatC
and -gnateS.
Arnaud Charlet [Wed, 23 Jun 2010 09:01:32 +0000 (11:01 +0200)]
[multiple changes]
2010-06-23 Olivier Hainque <hainque@adacore.com>
* einfo.adb (Has_Foreign_Convention): Consider Intrinsic with
Interface_Name as foreign. These are GCC builtin imports for
which Ada specific processing doesn't apply.
2010-06-23 Thomas Quinot <quinot@adacore.com>
* sem_ch12.adb: Minor reformatting.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Is_VMS_Operator): Use scope of system extension to
determine whether an intrinsic subprogram is VMS specific.
Arnaud Charlet [Wed, 23 Jun 2010 08:53:09 +0000 (08:53 +0000)]
xr_tabls.adb, [...]: Update to latest lib-xref.ads Fix handling of parameters.
2010-06-23 Arnaud Charlet <charlet@adacore.com>
* xr_tabls.adb, xref_lib.adb: Update to latest lib-xref.ads
Fix handling of parameters.
Add protection against unexpected cases.
* sem_ch6.adb (Create_Extra_Formals): Use suffix "L" instead of "A" for
access level, since "A" suffix is already used elsewhere. Similarly,
use suffix "O" instead of "C" for 'Constrained since "C" suffix is used
for xxx'Class.
Arnaud Charlet [Wed, 23 Jun 2010 08:46:08 +0000 (10:46 +0200)]
[multiple changes]
2010-06-23 Thomas Quinot <quinot@adacore.com>
* sem_util.adb, sem_util.ads: Minor reformatting.
2010-06-23 Vincent Celier <celier@adacore.com>
* prj.ads (Gprclean_Flags.Missing_Source_Files): Set to Error to keep
the previous behavior of gprclean when there are missing files.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Load_Body_Of_Generic): In CodePeer mode, a missing
generic body is not a fatal error.
(Mark_Context): Handle properly names of child units.
* sem.adb (Walk_Library_Items.Do_Action): Remove assertion on
instantiations.
2010-06-23 Vincent Celier <celier@adacore.com>
* ali.adb (Scan_ALI): When ignoring R lines, do not skip the next
non-empty line.
2010-06-23 Bob Duff <duff@adacore.com>
* g-pehage.ads, g-pehage.adb: Switch default optimization mode to
Memory_Space, because CPU_Time doesn't seem to provide any significant
speed advantage in practice. Cleanup: Get rid of constant
Default_Optimization; doesn't seem to add anything. Use case
statements instead of if statements; seems cleaner.
Olivier Hainque [Wed, 23 Jun 2010 08:40:22 +0000 (08:40 +0000)]
decl.c (gnat_to_gnu_entity): Use Wshadow instead of Wextra to guard warning on absence of internal builtin...
* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Procedure>: Use
Wshadow instead of Wextra to guard warning on absence of internal
builtin decl for an import. Fix use of quote in warning text.
(intrin_arglists_compatible_p): Remove processing of integer trailing
args on the Ada side. Fix use of literal > in warning text.
(intrin_return_compatible_p): Never warn on "function imported as
procedure". Defer the void/void case to the common type compatibility
check.
Olivier Hainque [Wed, 23 Jun 2010 08:28:20 +0000 (08:28 +0000)]
decl.c (intrin_types_incompatible_p): New function, helper for ...
2010-06-23 Olivier Hainque <hainque@adacore.com>
* gcc-interface/decl.c (intrin_types_incompatible_p): New function,
helper for ...
(intrin_arglists_compatible_p, intrin_return_compatible_p): New
functions, helpers for ...
(intrin_profiles_compatible_p): New function, replacement for ...
(compatible_signatures_p): Removed.
(gnat_to_gnu_entity) <case E_Procedure>: If -Wextra, warn on
attempt to bind an unregistered builtin function. When we have
one, use it and warn on profile incompatibilities.
Arnaud Charlet [Wed, 23 Jun 2010 06:59:47 +0000 (08:59 +0200)]
[multiple changes]
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Mark_Coextensions): If the expression in the allocator
for a coextension in an object declaration is a concatenation, treat
coextension as dynamic.
2010-06-23 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Add_Internal_Interface_Entities): Ensure that the
internal entities are added to the scope of the tagged type.
(Derive_Subprograms): Do not stop derivation when we find the first
internal entity that has attribute Interface_Alias. After the change
done to Override_Dispatching_Operations it is no longer true that
these primirives are always located at the end of the list of
primitives.
* einfo.ads (Primitive_Operations): Add documentation.
* exp_disp.adb (Write_DT): Improve output adding to the name of the
primitive a prefix indicating its corresponding tagged type.
* sem_disp.adb (Override_Dispatching_Operations): If the overridden
entity covers the primitive of an interface that is not an ancestor of
this tagged type then the new primitive is added at the end of the list
of primitives. Required to fulfill the C++ ABI.
Arnaud Charlet [Wed, 23 Jun 2010 06:50:13 +0000 (08:50 +0200)]
[multiple changes]
2010-06-23 Javier Miranda <miranda@adacore.com>
* atree.ads (Set_Reporting_Proc): New subprogram.
* atree.adb: Remove dependency on packages Opt and SCIL_LL.
(Allocate_Initialize_Node, Replace, Rewrite): Replace direct calls
to routines of package Scil_ll by indirect call to the registered
subprogram.
(Set_Reporting_Proc): New subprogram. Used to register a subprogram
that is invoked when a node is allocated, replaced or rewritten.
* scil_ll.adb (Copy_SCIL_Node): New routine that takes care of copying
the SCIL node. Used as argument for Set_Reporting_Proc.
(Initialize): Register Copy_SCIL_Node as the reporting routine that
is invoked by atree.
2010-06-23 Thomas Quinot <quinot@adacore.com>
* sem_ch3.ads: Minor reformatting.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): In CodePeer mode,
always analyze the generic body and instance, because it may be needed
downstream.
(Mark_Context): Prepend the with clauses for needed generic units, so
they appear in a better order for CodePeer.
* sem_util.adb, sem_util.ads: Prototype code for AI05-0144.
2010-06-23 Emmanuel Briot <briot@adacore.com>
* prj.ads, prj-nmsc.adb (Error_Or_Warning): New subprogram.
Arnaud Charlet [Wed, 23 Jun 2010 06:43:38 +0000 (08:43 +0200)]
[multiple changes]
2010-06-23 Robert Dewar <dewar@adacore.com>
* g-pehage.adb, exp_ch13.adb: Minor reformatting.
2010-06-23 Thomas Quinot <quinot@adacore.com>
* a-tags.ads: Fix description of TSD structure.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Mark_Context): When indicating that the body of a
generic unit is needed prior to the unit containing an instantiation,
search recursively the context of the generic to add other generic
bodies that may be instantiated indirectly through the current instance.
* sem_ch6.adb (Add_Extra_Formal): Use suffix "C" in the name of the
Constrained extra formal.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* exp_ch13.adb (Expand_Freeze_Actions): If validity checks and
Initialize_Scalars are enabled, compile the generated equality function
for a composite type with full checks enabled, so that validity checks
are performed on individual components.
Arnaud Charlet [Wed, 23 Jun 2010 06:31:57 +0000 (08:31 +0200)]
[multiple changes]
2010-06-23 Jose Ruiz <ruiz@adacore.com>
* a-reatim.adb, a-retide.adb: Move the initialization of the tasking
run time from Ada.Real_Time.Delays to Ada.Real_Time. This way, calls to
Clock (without delays) use a run time which is properly initialized.
2010-06-23 Vincent Celier <celier@adacore.com>
* make.adb: Do not set Check_Readonly_Files when setting Must_Compile,
when -f -u and a main is specified on the command line. However,
attempt to compile even when the ALI file is read-only when
Must_Compile is True.
2010-06-23 Thomas Quinot <quinot@adacore.com>
* checks.adb, g-pehage.adb, cstand.adb: Minor code factorization.
Arnaud Charlet [Wed, 23 Jun 2010 06:26:07 +0000 (08:26 +0200)]
[multiple changes]
2010-06-23 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Add_Internal_Interface_Entities): Generate internal
entities for parent types that are interfaces. Needed in generics to
handle formals that implement interfaces.
(Derive_Subprograms): Add assertion for derivation of tagged types that
do not cover interfaces. For generics, complete code that handles
derivation of type that covers interfaces because the previous
condition was weak (it required only name consistency; arguments were
not checked). Add new code to locate primitives covering interfaces
defined in generic units or instantiatons.
* sem_util.adb (Has_Interfaces): Add missing support for derived types.
* sem_ch6.adb (Check_Overriding_Indicator): Minor code cleanups.
* exp_disp.adb (Make_Select_Specific_Data_Table): Skip primitives of
interfaces that are parents of the type because they share the primary
dispatch table.
(Register_Primitive): Do not register primitives of interfaces that
are parents of the type.
* sem_ch13.adb (Analyze_Freeze_Entity): Add documentation.
* exp_cg.adb (Write_Type_Info): When displaying overriding of interface
primitives skip primitives of interfaces that are parents of the type.
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Eval_Attribute): If the prefix is an array, the
attribute cannot be constant-folded if an index type is a formal type,
or is derived from one.
* checks.adb (Determine_Range): ditto.
2010-06-23 Arnaud Charlet <charlet@adacore.com>
* gnat_ugn.texi, gnatxref.adb: Add support for --ext switch.
Arnaud Charlet [Wed, 23 Jun 2010 06:21:26 +0000 (08:21 +0200)]
[multiple changes]
2010-06-23 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb: Use predefined unsigned type in all cases.
2010-06-23 Bob Duff <duff@adacore.com>
* s-rannum.adb (Reset): Avoid overflow in calculation of Initiator.
* g-pehage.ads: Minor comment fixes.
* g-pehage.adb: Minor: Add some additional debugging printouts under
Verbose flag.
Arnaud Charlet [Wed, 23 Jun 2010 06:11:20 +0000 (08:11 +0200)]
[multiple changes]
2010-06-23 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Properly handle
checking returns in generic case.
(Check_Missing_Return): New procedure.
2010-06-23 Robert Dewar <dewar@adacore.com>
* bindgen.adb, switch-b.adb: Minor reformatting.
2010-06-23 Javier Miranda <miranda@adacore.com>
* frontend.adb (Frontend): Add call to initialize the new package
SCIL_LL.
* exp_ch7.adb (Wrap_Transient_Expression): Remove call to
Adjust_SCIL_Node.
(Wrap_Transient_Statement): Remove call to Adjust_SCIL_Node.
* sem_ch5.adb (Analyze_Iteration_Scheme.Process_Bounds): Remove call to
Adjust_SCIL_Node.
* exp_util.adb (Insert_Actions): Remove code for
N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes.
(Remove_Side_Effects): Remove calls to Adjust_SCIL_Node.
* sinfo.adb (SCIL_Entity, SCIL_Tag_Value): Remove checks on
N_SCIL_Tag_Init and N_SCIL_Dispatch_Table_Object_Init in the assertion.
(SCIL_Related_Node, Set_SCIL_Related_Node): Removed.
* sinfo.ads (SCIL_Related_Node): Field removed.
(N_SCIL_Dispatch_Table_Object_Init): Node removed.
(N_SCIL_Tag_Init): Node removed.
* sem_scil.ads, sem_scil.adb (Adjust_SCIL_Node): Removed.
(Check_SCIL_Node): New implementation.
(Find_SCIL_Node): Removed.
* sem.adb (Analyze): Remove management of
N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes.
* sem_util.adb (Insert_Explicit_Dereference): Remove call to
Adjust_SCIL_Node.
* exp_ch4.adb (Expand_N_In): Code cleanup: remove call to
Set_SCIL_Related_Node and avoid adding the SCIL node before the
referenced node using Insert_Action because this is not longer required.
(Expand_Short_Circuit_Operator): Remove call to SCIL node.
* exp_ch6.adb (Expand_Call): Remove call to Adjust_SCIL_Node.
* sem_ch4.adb (Analyze_Type_Conversion): Remove call to Adjust_SCIL_Node
* exp_disp.adb (Expand_Dispatching_Call): Minor code reorganization
because we no longer require to generate the SCIL node before the call.
(Make_DT): Remove generation of SCI_Dispatch_Table_Object_Init node.
Remove calls to Set_SCIL_Related_Node and avoid adding the SCIL
nodes before the referenced node using Insert_Action because this
is not longer required.
* atree.adb (Allocate_Initialize_Node, Replace, Rewrite): Add call to
update the SCIL_Node field.
* sprint.adb (Sprint_Node_Actual): Remove code for
N_SCIL_Dispatch_Table_Object_Init and N_SCIL_Tag_Init nodes.
* treepr.adb (Print_Node): Print the SCIL node field (if available).
* exp_ch3.adb (Build_Init_Procedure): Remove generation of
SCIL_Tag_Init nodes.
* scil_ll.ads, scil_ll.adb: New files.
Eric Botcazou [Tue, 22 Jun 2010 18:21:25 +0000 (18:21 +0000)]
cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the new statement and adjust VDEF only if necessary.
* cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
new statement and adjust VDEF only if necessary. Remove superfluous
call to maybe_clean_or_replace_eh_stmt.
* gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
copy the flags.
* gimple-iterator.c (gsi_replace): Clear BB of old statement here...
* tree-inline.c (copy_bb): ...and not there.
Cary Coutant [Tue, 22 Jun 2010 17:41:05 +0000 (17:41 +0000)]
dwarf2out.c (is_nested_in_subprogram): New function.
gcc/ChangeLog:
* dwarf2out.c (is_nested_in_subprogram): New function.
(should_move_die_to_comdat): Use it.
(copy_ancestor_tree): Don't mark DIEs here.
(copy_decls_walk): Start walk from root of newly-added tree;
mark DIEs here instead.
Arnaud Charlet [Tue, 22 Jun 2010 17:29:41 +0000 (19:29 +0200)]
[multiple changes]
2010-06-22 Robert Dewar <dewar@adacore.com>
* errout.adb (Finalize): Set Prev pointers.
(Finalize): Delete continuations for deletion by warnings off(str).
* erroutc.ads: Add Prev pointer to error message structure.
2010-06-22 Ed Schonberg <schonberg@adacore.com>
* sem.adb (Do_Unit_And_Dependents): If the spec of the main unit is a
child unit, examine context of parent units to locate instantiated
generics whose bodies may be needed.
* sem_ch12.adb: (Mark_Context): if the enclosing unit does not have a
with_clause for the instantiated generic, examine the context of its
parents, to set Withed_Body flag, so that it can be visited earlier.
* exp_ch4.adb (Expand_N_Op_Not): If this is a VMS operator applied to
an unsigned type, use a type of the proper size for the intermediate
value, to prevent alignment problems on unchecked conversion.
2010-06-22 Geert Bosch <bosch@adacore.com>
* s-rannum.ads Change Generator type to be self-referential to allow
Random to update its argument. Use "in" mode for the generator in the
Reset procedures to allow them to be called from the Ada.Numerics
packages without tricks.
* s-rannum.adb: Use the self-referencing argument to get write access
to the internal state of the random generator.
* a-nudira.ads: Make Generator a derived type of
System.Random_Numbers.Generator.
* a-nudira.adb: Remove use of 'Unrestricted_Access.
Put subprograms in alpha order and add headers.
* g-mbdira.ads: Change Generator type to be self-referential.
* g-mbdira.adb: Remove use of 'Unrestricted_Access.
Arnaud Charlet [Tue, 22 Jun 2010 17:17:57 +0000 (19:17 +0200)]
[multiple changes]
2010-06-22 Robert Dewar <dewar@adacore.com>
* freeze.adb: Minor reformatting
Minor code reorganization (use Nkind_In and Ekind_In).
2010-06-22 Bob Duff <duff@adacore.com>
* gnat1drv.adb (Gnat1drv): Remove the messages that recommend using
-gnatc when a file is compiled that we cannot generate code for, not
helpful and confusing.
2010-06-22 Vincent Celier <celier@adacore.com>
* switch-m.adb (Normalize_Compiler_Switches): Process correctly
switches -gnatknn.
2010-06-22 Paul Hilfinger <hilfinger@adacore.com>
* s-rannum.adb: Replace constants with commented symbols.
* s-rannum.ads: Explain significance of the initial value of the data
structure.
2010-06-22 Ed Schonberg <schonberg@adacore.com>
* a-ngcoty.adb: Clarify comment.
2010-06-22 Gary Dismukes <dismukes@adacore.com>
* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Return without
expansion for indexing packed arrays with small power-of-2 component
sizes when the target is AAMP.
(Expand_Packed_Element_Reference): Return without expansion for
indexing packed arrays with small power-of-2 component sizes when the
target is AAMP.
2010-06-22 Geert Bosch <bosch@adacore.com>
* exp_ch4.adb (Expand_N_In): Do not substitute a valid check for X in
Float'Range.
2010-06-22 Robert Dewar <dewar@adacore.com>
* g-mbdira.adb, g-mbflra.adb, a-nuflra.adb, a-nudira.adb: Minor comment
updates.
Arnaud Charlet [Tue, 22 Jun 2010 17:11:54 +0000 (19:11 +0200)]
[multiple changes]
2010-06-22 Doug Rupp <rupp@adacore.com>
* system-vms.ads, system-vms-zcx.ads: Remove old unused VMS system
packages.
* system-vms_64.ads, system-vms-ia64.ads: Minor reformatting.
(pragma Ident): Add a default ident string in the private part.
2010-06-22 Robert Dewar <dewar@adacore.com>
* cstand.adb: Minor reformatting.
2010-06-22 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Build_And_Analyze_Renamed_Body): For expansion purposes,
recognize the Shift and Rotation intrinsics that are known to the
compiler but have no interface name.
2010-06-22 Geert Bosch <bosch@adacore.com>
* a-ngcoty.adb ("*"): Rewrite complex multiplication to use proper
scaling in case of overflow or NaN results.
Arnaud Charlet [Tue, 22 Jun 2010 16:57:01 +0000 (18:57 +0200)]
[multiple changes]
2010-06-22 Ed Schonberg <schonberg@adacore.com>
* cstand.adb: Add tree nodes for pragma Pack on string types.
2010-06-22 Javier Miranda <miranda@adacore.com>
* einfo.ads, einfo.adb (Last_Formal): New synthesized attribute.
* exp_util.adb (Find_Prim_Op): Use new attribute to locate the last
formal of a primitive.
* exp_disp.adb (Is_Predefined_Dispatching_Operation,
Is_Predefined_Dispatching_Alias): Use new attribute to locate the last
formal of a primitive.
* exp_cg.adb (Is_Predefined_Dispatching_Operation): Use new attribute
to obtain the last formal of a primitive.
2010-06-22 Geert Bosch <bosch@adacore.com>
* sysdep.c, init.c, adaint.c, cstreams.c: Remove conditional code
depending on __EMX__ or MSDOS being defined.
* i-cstrea.ads, gnat_rm.texi: Remove mentions of OS/2, DOS and Xenix.
* a-excpol-abort.adb: Update comment indicating users of the file.
* xref_lib.adb, sfn_scan.adb: Remove mention of OS/2, replace NT by
Windows.
* env.c: Remove empty conditional for MSDOS.
* s-stchop.adb, g-dirope.ads, s-fileio.adb, osint.ads: Remove mention
of OS/2 in comment.
Arnaud Charlet [Tue, 22 Jun 2010 16:47:55 +0000 (18:47 +0200)]
[multiple changes]
2010-06-22 Robert Dewar <dewar@adacore.com>
* s-rannum.adb: Minor reformatting.
2010-06-22 Javier Miranda <miranda@adacore.com>
* sem_aux.adb, sem_aux.ads, sem_util.adb, sem_util.ads, sem_elim.adb,
exp_cg.adb: Minor code reorganization: Move routine Ultimate_Alias from
package Sem_Util to package Sem_Aux.
2010-06-22 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Make_Secondary_DT, Make_DT): Minor code cleanup:
remove useless restriction on imported routines when building the
dispatch tables.
2010-06-22 Robert Dewar <dewar@adacore.com>
* cstand.adb (Create_Standard): Set Has_Pragma_Pack for standard string
types.
2010-06-22 Javier Miranda <miranda@adacore.com>
* sem_ch4.adb (Collect_Generic_Type_Ops): Protect code that handles
generic subprogram declarations to ensure proper context. Add missing
support for generic actuals.
(Try_Primitive_Operation): Add missing support for concurrent types that
have no Corresponding_Record_Type. Required to diagnose errors compiling
generics or when compiling with no code generation (-gnatc).
* sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Do not build
the corresponding record type.
* sem_disp.ads, sem_disp.adb (Check_Dispatching_Operation): Complete
documentation. Do minimum decoration when processing a primitive of a
concurrent tagged type that covers interfaces. Required to diagnose
errors in the Object.Operation notation compiling generics or under
-gnatc.
* exp_ch9.ads, exp_ch9.adb (Build_Corresponding_Record): Add missing
propagation of attribute Interface_List to the corresponding record.
(Expand_N_Task_Type_Declaration): Code cleanup.
(Expand_N_Protected_Type_Declaration): Code cleanup.
Arnaud Charlet [Tue, 22 Jun 2010 16:35:15 +0000 (18:35 +0200)]
[multiple changes]
2010-06-22 Matthew Heaney <heaney@adacore.com>
* a-convec.adb, a-coinve.adb: Removed 64-bit types Int and UInt.
2010-06-22 Paul Hilfinger <hilfinger@adacore.com>
* s-rannum.adb (Random_Float_Template): Replace with unbiased version
that is able to produce all representable floating-point numbers in the
unit interval. Remove template parameter Shift_Right, no longer used.
* gnat_rm.texi: Document the period of the pseudo-random number
generator under the description of its algorithm.
* gcc-interface/Make-lang.in: Update dependencies.
Arnaud Charlet [Tue, 22 Jun 2010 16:22:58 +0000 (18:22 +0200)]
[multiple changes]
2010-06-22 Thomas Quinot <quinot@adacore.com>
* exp_aggr.adb (Rewrite_Discriminant): Fix predicate used to identify
reference to discriminant (can be an expanded name as well as an
identifier).
2010-06-22 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb: Clarify comment.
2010-06-22 Geert Bosch <bosch@adacore.com>
* exp_imgv.adb (Expand_Image_Attribute): Treat ordinary fixed point
with decimal small as decimal types, avoiding floating-point arithmetic.
(Has_Decimal_Small): New function.
* einfo.ads, einfo.adb (Aft_Value): New synthesized attributed for
fixed point types.
* sem_attr.adb (Eval_Attribute): Remove Aft_Value function and update
callers to call the new function in Einfo that takes the entity as
parameter.
Arnaud Charlet [Tue, 22 Jun 2010 15:41:47 +0000 (17:41 +0200)]
[multiple changes]
2010-06-22 Thomas Quinot <quinot@adacore.com>
* sem_elab.adb: Minor reformatting.
2010-06-22 Vincent Celier <celier@adacore.com>
* gnatsym.adb: Put the object files in the table in increasing
aphabetical order of base names.
2010-06-22 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Set_Entity_Or_Discriminal): New procedure used by
Find_Direct_Name and Find_Expanded_Name, to replace a discriminant with
the corresponding discriminal within a record declaration.
Thomas Quinot [Tue, 22 Jun 2010 15:37:19 +0000 (15:37 +0000)]
exp_aggr.adb (Rewrite_Discriminant): Rewriting must occur only for an expression referring to a discriminal of the...
2010-06-22 Thomas Quinot <quinot@adacore.com>
* exp_aggr.adb (Rewrite_Discriminant): Rewriting must occur only for an
expression referring to a discriminal of the type of the aggregate (not
a discriminal of some other unrelated type), and the prefix in the
generated selected component must come from Lhs, not Obj.
2010-06-22 Thomas Quinot <quinot@adacore.com>
* sem_ch3.adb (Build_Derived_Record_Type): Fix predicate determining
when to freeze the parent type.
Paul Hilfinger [Tue, 22 Jun 2010 15:24:10 +0000 (15:24 +0000)]
2010-06-22 Paul Hilfinger <hilfinger@adacore.com>
* a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-nuflra.ads,
gnat_rm.texi, impunit.adb, Makefile.rtl, s-rannum.adb
(Random_Float_Template, Random): New method of creating
uniform floating-point variables that allow the creation of all machine
values in [0 .. 1).
* g-mbdira.adb, g-mbflra.adb, g-mbdira.ads, g-mbflra.ads: New file.
Arnaud Charlet [Tue, 22 Jun 2010 13:53:46 +0000 (15:53 +0200)]
[multiple changes]
2010-06-22 Gary Dismukes <dismukes@adacore.com>
* sem_ch5.adb (Analyze_Assignment): Revise test for illegal assignment
to abstract targets to check that the type is tagged and comes from
source, rather than only testing for targets of interface types. Remove
premature return.
2010-06-22 Vincent Celier <celier@adacore.com>
* vms_data.ads: Modify the declarations of qualifiers
/UNCHECKED_SHARED_LIB_IMPORTS to allow the generation of gnat.hlp
without error.
2010-06-22 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false if
expansion is disabled.
2010-06-22 Robert Dewar <dewar@adacore.com>
* makeusg.adb: Minor reformatting.
2010-06-22 Robert Dewar <dewar@adacore.com>
* types.ads: (Dint): Removed, no longer used anywhere.
* uintp.adb (UI_From_CC): Use UI_From_Int, range is sufficient.
(UI_Mul): Avoid use of UI_From_Dint.
(UI_From_Dint): Removed, not used.
* uintp.ads (UI_From_Dint): Removed, not used.
(Uint_Min/Max_Simple_Mul): New constants.
* clean.adb (Parse_Cmd_Line): Recognize switch
--unchecked-shared-lib-imports.
(Usage): Add line for switch --unchecked-shared-lib-imports
* makeusg.adb: Add line for switch --unchecked-shared-lib-imports
* makeutl.ads: (Unchecked_Shared_Lib_Imports): New constant string
moved from GPR_Util.
* switch-m.adb (Scan_Make_Switches): Recognize switch
--unchecked-shared-lib-imports.
* vms_data.ads: Add VMS qualifiers /UNCHECKED_SHARED_LIB_IMPORTS.
* gnat_ugn.texi: Add documentation for new switch
--unchecked-shared-lib-imports. Add also documentation for --subdirs.
(mov<mode>): Macroize expander from mov{qi,hi,si,di} using
SWI1248x mode iterator.
(*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
using SWI124 mode iterator.
(*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
mode iterator.
(*push<mode>2_prologue): Macroize insn from *pushsi2_prologue and
*pushdi2_prologue_rex64 using P mode iterator.
(*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
using SWI48 mode iterator.
(*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
(*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
using SWI1248x mode iterator.
(*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
(*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
SWI48 mode iterator.
(*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
iterator.
(*swap<mode>_2): Ditto from *swap{qi,hi}_2.
(movstrict<mode>): Macroize expander from movstrict{qi,hi} using
SWI12 mode iterator.
(*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
SWI12 mode iterator.
(*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
(*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
SWI24 mode iterator.
(*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
SWI48 mode iterator.
(mov<mode>_insn_1): New expander.
(*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
using SWI48x mode iterator.
(*movoi_internal_avx): Rename from *movoi_internal.
(*movti_internal_rex64): Rename from *movti_rex64.
(*movti_internal_sse): Rename from *movti_sse.
(*movdi_internal_rex64): Rename from *movdi_1_rex64.
(*movdi_internal): Rename from *movdi_2.
(*movsi_internal): Rename from *movsi_1.
(*movhi_internal): Rename from *movhi_1.
(*movqi_internal): Rename from *movqi_1.
(insv): Update the call to gen_movsi_insv_1 for rename.
* config/i386/i386.c (promote_duplicated_reg): Ditto.
Javier Miranda [Tue, 22 Jun 2010 13:32:54 +0000 (13:32 +0000)]
sem_prag.adb, [...]: Code cleanup...
2010-06-22 Javier Miranda <miranda@adacore.com>
* sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, exp_ch6.adb,
exp_disp.adb, sem_eval.adb, exp_dist.adb lib-xref.adb: Code cleanup,
this patch replaces duplication of code that traverses the chain of
aliased primitives by a call to routine Ultimate_Alias that
provides this functionality.
Arnaud Charlet [Tue, 22 Jun 2010 13:26:32 +0000 (15:26 +0200)]
[multiple changes]
2010-06-22 Arnaud Charlet <charlet@adacore.com>
* fmap.adb, opt.ads, osint.adb, osint.ads, output.ads, scng.adb,
sinput-c.adb, switch-m.ads, tree_io.ads: Use simpler form of
Warnings Off/On.
2010-06-22 Thomas Quinot <quinot@adacore.com>
* einfo.ads: Minor reformatting.
2010-06-22 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Expand_Interface_Thunk): Do not generate thunk of
eliminated primitives.
(Make_DT): Avoid referencing eliminated primitives.
(Register_Primitive): Do not register eliminated primitives in the
dispatch table. Required to add this functionality when the program is
compiled without static dispatch tables (-gnatd.t)
Arnaud Charlet [Tue, 22 Jun 2010 13:20:17 +0000 (15:20 +0200)]
[multiple changes]
2010-06-22 Emmanuel Briot <briot@adacore.com>
* fmap.adb, scng.adb, switch-m.ads, sinput-c.adb, opt.ads, output.ads,
tree_io.ads, osint.adb, osint.ads: Use configuration pragmas to prevent
warnings on use of internal GNAT units.
* s-rannum.adb: Make stylistic change to remove mystery constant in
Extract_Value. Image_Numeral_Length: new symbolic constant.
2010-06-22 Ed Schonberg <schonberg@adacore.com>
* einfo.ads, einfo.adb: Make Is_Protected_Interface,
Is_Synchronized_Interface, Is_Task_Interface into computable
predicates, to free three flags in entity nodes.
* sem_ch3.adb: Remove setting of these flags.
Robert Dewar [Tue, 22 Jun 2010 13:15:15 +0000 (13:15 +0000)]
uintp.adb, [...]: Minor reformatting.
2010-06-22 Robert Dewar <dewar@adacore.com>
* uintp.adb, osint.adb, prj-conf.adb, prj-part.adb, prj.adb: Minor
reformatting.
* s-taprop-vxworks.adb: Add comment for Set_Priority.
* impunit.adb (Map_Array): Add entries for s-htable.ads and s-crc32.ads
* projects.texi: Move @cindex to the left margin, since otherwise we
are missing entries in the index.