Arnaud Charlet [Tue, 5 Oct 2010 09:37:44 +0000 (11:37 +0200)]
[multiple changes]
2010-10-05 Emmanuel Briot <briot@adacore.com>
* prj-env.adb, prj-env.ads (Set_Path): New subprogram.
(Deep_Copy): Removed, not used.
2010-10-05 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Add_Internal_Interface_Entities): Code reorganization:
move code that searches in the list of primitives of a tagged type for
the entity that will be overridden by user-defined routines.
* sem_disp.adb (Find_Primitive_Covering_Interface): Move here code
previously located in routine Add_Internal_Interface_Entities.
* sem_disp.ads (Find_Primitive_Covering_Interface): Update documentation
* sem_ch6.adb (New_Overloaded_Entity): Add missing check on
availability of attribute Alias.
2010-10-05 Ed Falis <falis@adacore.com>
* s-taprop-vxworks.adb, s-osinte-vxworks.adb, s-osinte-vxworks.ads,
s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.adb, s-vxwext-rtp.ads:
Move definition of intContext to System.OS_Interface.
Add necessary variants in System.VxWorks.Extensions.
2010-10-05 Doug Rupp <rupp@adacore.com>
* s-asthan-vms-alpha.adb: On VMS, a task using
pragma AST_Entry exhibits a memory leak when the task terminates
because the vector allocated for the AST interface is not freed. Fixed
by making the vector a controlled type.
Emmanuel Briot [Tue, 5 Oct 2010 09:29:14 +0000 (09:29 +0000)]
prj-nmsc.adb, [...] (Expand_Subdirectory_Pattern): New subprogram.
2010-10-05 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb, prj-err.adb (Expand_Subdirectory_Pattern): New
subprogram.
Extract some code from Get_Directories, to share with the handling
of aggregate projects (for the Project_Files attributes)
* prj-dect.adb, prj-nmsc.adb, prj-attr.adb, snames.ads-tmpl
(Aggregate projects): added support for parsing aggregate projects.
In particular, check the presence and value of the new attributes
related to aggregate projects, ie Project_Files, Project_Path
and External.
(Check_Attribute_Allowed, Check_Package_Allowed,
Rename_Obsolescent_Attributes): new subprogram, extracting code
from existing subprogram to keep their sizes smaller.
(Check_Aggregate_Project, Check_Abstract_Project,
Check_Missing_Sources): new subprograms
(Check): remove comments that duplicated either the name of the
following subprogram call, or the comment on that subprogram.
* prj-part.adb (Check_Extending_All_Imports): New subprogram, extracted
from Parse_Single_Project.
(Check_Aggregate_Imports): new subprogram.
Arnaud Charlet [Tue, 5 Oct 2010 09:16:23 +0000 (11:16 +0200)]
[multiple changes]
2010-10-05 Vincent Celier <celier@adacore.com>
* make.adb (Check): When compiling with -gnatc, recompile if the ALI
file has not been generated for the current source, for example if it
has been generated for the spec, but we are compiling the body.
Jakub Jelinek [Mon, 4 Oct 2010 22:02:28 +0000 (00:02 +0200)]
re PR debug/45849 (ICE: in emit_note_insn_var_location, at var-tracking.c:7336 with -O -g)
PR debug/45849
* var-tracking.c (strip_pointer_flags): New function.
(emit_note_insn_var_location): If rtx_equal_p check failed,
retry on locations simplified with simplify_replace_fn_rtx
and strip_pointer_flags as its callback.
Andi Kleen [Mon, 4 Oct 2010 17:09:45 +0000 (17:09 +0000)]
Mark linker Makefile rules for job server build
-fwhopr=jobserver requires telling GNU make that the linker (= lto)
rules support job server, so that the necessary jobserver
information is passed through.
Add + to all the executable targets that run LTO for this purpose.
This improves build performance with a -fwhopr=jobserver
bootstrap (or BUILD_CONFIG=bootstrap-lto) significantly.
I didn't change Ada because that apparently doesn't support LTO.
Matthias Klose [Mon, 4 Oct 2010 16:51:59 +0000 (16:51 +0000)]
t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the multilib osdirname if it exists.
2010-10-04 Matthias Klose <doko@ubuntu.com>
* config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
multilib osdirname if it exists.
* config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
Jakub Jelinek [Mon, 4 Oct 2010 15:49:13 +0000 (17:49 +0200)]
re PR middle-end/45876 (ICE: verify_gimple failed)
PR middle-end/45876
* fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
arg0's type or its unsigned counterpart as utype. Convert
arg1 to utype unconditionally.
Arnaud Charlet [Mon, 4 Oct 2010 15:07:59 +0000 (17:07 +0200)]
[multiple changes]
2010-10-04 Vincent Celier <celier@adacore.com>
* a-direct.adb (Copy_File): Interpret the Form parameter and call
System.OS_Lib.Copy_File to do the work accordingly. Raise Use_Error if
the Form parameter contains an incorrect value for field preserve= or
mode=.
* a-direct.ads (Create_Directory, Create_Path): Indicate that the Form
parameter is ignored.
(Copy_File): Indicate the interpretation of the Form parameter.
2010-10-04 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake): When there are no foreign languages declared and
a main in attribute Main of the main project does not exist or is a
source of another project, fail immediately before attempting
compilation.
2010-10-04 Javier Miranda <miranda@adacore.com>
* exp_disp.ads (Convert_Tag_To_Interface): New function which must be
used to convert a node referencing a tag to a class-wide interface type.
* exp_disp.adb (Convert_Tag_To_Interface): New function.
(Expand_Interface_Conversion): Replace invocation of
Unchecked_Conversion by new function Convert_Tag_To_Interface.
(Write_DT): Add support for null primitives.
* exp_ch3.adb (Expand_N_Object_Declaration): For tagged type objects,
cleanup code that handles interface conversions and avoid unchecked
conversion of referenced tag components.
* exp_ch5.adb (Expand_N_Assignment_Statement): Code cleanup. Avoid
unrequired conversions when generating a dispatching call to _assign.
* sprint.adb (Write_Itype): Fix wrong output of not null access itypes.
2010-10-04 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_N_Op_Not): Handle properly both operands when the
parent is a binary boolean operation and the operand is an unpacked
array.
(Build_Boolean_Array_Proc_Call): If the operands are both negations, the
operands of the rewritten node are the operands of the negations, not
the negations themselves.
Arnaud Charlet [Mon, 4 Oct 2010 14:09:52 +0000 (16:09 +0200)]
[multiple changes]
2010-10-04 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Set_Biased): New procedure, now used throughout, adds
name of entity to biased warning msg.
(Analyze_Enumeration_Representation_Clause): Remove attempt to use
biased rep (wrong and never worked anyway).
2010-10-04 Arnaud Charlet <charlet@adacore.com>
* sem_elab.adb: Minor reformatting.
2010-10-04 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Expand_N_Null): Handle properly the case of a subtype of
an access_to_protected subprogram type, and convert null value into
corresponding aggregate.
2010-10-04 Eric Botcazou <ebotcazou@adacore.com>
* gnat_ugn.texi: Clarify first point of 7.1.5 about pragma Inline.
2010-10-04 Eric Botcazou <ebotcazou@adacore.com>
* make.adb (Scan_Make_Arg): Pass -Oxxx switches to the linker as well.
* gnatlink.adb (Gnatlink): Filter out -Oxxx switches for CLI, RTX and
AAMP.
* osint.adb (Read_Library_Info_From_Full): If object timestamp is less
than ALI file timestamp, return null.
2010-10-04 Vincent Celier <celier@adacore.com>
* prj-makr.adb (Finalize): Invoke Pretty_Print with Max_Length set to 79
* prj-pp.adb (Pretty_Print): New parameter Max_Line_Length, that
replaces global constant with the same name. When a line is too long,
indent properly the next continuation line.
* prj-pp.ads (Pretty_Print): New parameter Max_Line_Length with a range
from 50 to 255, defaulted to 255, to indicate the maximum length of
lines in the project file.
2010-10-04 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch7.adb (Analyze_Package_Body_Helper) <Has_Referencer>: New
Check_Subprogram_Ref function and Check_Subprogram_Refs instantiation
of Traverse_Func on it to look for subprogram references in a body.
Call Check_Subprogram_Refs on the body of inlined subprograms at the
outer level and keep clearing the Is_Public flag of subprograms as long
as it returns OK. Do not look at anything else than subprograms once
an inlined subprogram has been seen.
Arnaud Charlet [Mon, 4 Oct 2010 13:59:18 +0000 (15:59 +0200)]
[multiple changes]
2010-10-04 Robert Dewar <dewar@adacore.com>
* exp_cg.adb: Minor reformatting.
2010-10-04 Javier Miranda <miranda@adacore.com>
* exp_cg.adb (Expand_N_Assignment_Statement): Restore tag check when
the target object is an interface.
* sem_disp.adb (Propagate_Tag): If the controlling argument is an
interface type then we generate an implicit conversion to force
displacement of the pointer to the object to reference the secondary
dispatch table associated with the interface.
2010-10-04 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Set
Enumeration_Rep_Expr to point to the literal, not the identifier.
(Analyze_Enumeration_Representation_Clause): Improve error message for
size too small for enum rep value
(Analyze_Enumeration_Representation_Clause): Fix size test to use proper
size (RM_Size, not Esize).
Arnaud Charlet [Mon, 4 Oct 2010 13:43:01 +0000 (15:43 +0200)]
[multiple changes]
2010-10-04 Bob Duff <duff@adacore.com>
* sem_res.adb (Resolve_Type_Conversion): If a type conversion is needed
to make a qualified expression into a name (syntax-wise), then do not
consider it redundant.
2010-10-04 Thomas Quinot <quinot@adacore.com>
* sem_warn.ads: Fix typo.
2010-10-04 Javier Miranda <miranda@adacore.com>
* exp_cg.adb (Is_Predefined_Dispatching_Operation): Handle suffix in
TSS names.
(Write_Call_Info): Add missing support for renamed primitives.
2010-10-04 Thomas Quinot <quinot@adacore.com>
* exp_ch5.adb (Make_Field_Expr): New subprogram, to factor duplicated
code between Make_Component_List_Assign and Make_Field_Assign.
2010-10-04 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Get_Directories): For non extending projects that
declare that they have no sources, do not create a non existing object
or exec directory if builder switch -p is used.
2010-10-04 Sergey Rybin <rybin@adacore.com>
* gnat_ugn.texi (gnatcheck): Change the description of the report file
format.
2010-10-04 Ed Falis <falis@adacore.com>
* s-taprop-vxworks.adb (Is_Task_Context): Import VxWorks intContext to
determine whether Set_True is called from a task or an ISR.
(Set_True): test for being in a task context before trying to
dereference Defer_Abort or Undefer_Abort.
* exp_ch5.adb (Expand_N_Assignment_Statement): Do not generate a tag
check when the target object is an interface since the expression of
the right hand side must only cover the interface.
Vincent Celier [Mon, 4 Oct 2010 13:27:57 +0000 (13:27 +0000)]
frontend.adb: Set Lib.Parsing_Main_Extended_Source to True before loading the main source...
2010-10-04 Vincent Celier <celier@adacore.com>
* frontend.adb: Set Lib.Parsing_Main_Extended_Source to True before
loading the main source, so that if it is preprocessed and -gnateG is
used, the preprocessed file is written.
* lib.ads (Analysing_Subunit_Of_Main): New global variable to indicate
if a subunit is from the main unit when it is loaded.
* sem_ch10.adb (Analyze_Proper_Body): Set Lib.Analysing_Subunit_Of_Main
to True before loading a subunit.
* sem_ch12.adb (Copy_Generic_Node): Set Lib.Analysing_Subunit_Of_Main
to True when the main is a generic unit before loading one of its
subunits.
* sinput-l.adb (Load_File): If -gnateG is used, write the preprocessed
file only for the main unit (spec, body and subunits).
Arnaud Charlet [Mon, 4 Oct 2010 13:16:56 +0000 (15:16 +0200)]
[multiple changes]
2010-10-04 Vincent Celier <celier@adacore.com>
* sinput-l.adb (Load_File): Do not fail when switch -gnateG is
specified and the processed file cannot be written. Just issue a
warning and continue.
2010-10-04 Thomas Quinot <quinot@adacore.com>
* sem_res.adb: Minor reformatting.
2010-10-04 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Subprogram_Renaming): If the renamed operation
is an overridden inherited operation, the desired operation is the
overriding one, which is the alias of the visible one.
2010-10-04 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Find_Corresponding_Spec): Check that the wrapper body is
present before deleting from the tree, when an inherited function with
a controlling result that returns a null extension is overridden by a
later declaration or body.
Jan Hubicka [Mon, 4 Oct 2010 11:11:57 +0000 (13:11 +0200)]
re PR middle-end/45871 (lto bootstrap miscompiles expmed.c)
PR middle-end/45871
* tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
use get_ref_base_and_offset to handle references.
(fold_const_aggregate_ref): Update.
f95-lang.c (current_translation_unit): New global variable.
2010-10-04 Richard Guenther <rguenther@suse.de>
* f95-lang.c (current_translation_unit): New global variable.
(gfc_create_decls): Build a translation-unit decl.
(pushdecl): In the global binding-level use the
translation-unit decl as DECL_CONTEXT.
* trans-decl.c (gfc_get_symbol_decl): Use DECL_FILE_SCOPE_P.
(build_function_decl): Likewise. Delay setting the assembler
name, leave setting of DECL_CONTEXT to pushdecl.
(trans_function_start): Use DECL_FILE_SCOPE_P.
(gfc_create_module_variable): Likewise. Remove questionable
asserts.
* trans.c (gfc_generate_module_code): Likewise.
c-typeck.c (lookup_field): If -fplan9-extensions, permit referring to a field using a typedef name.
gcc/:
* c-typeck.c (lookup_field): If -fplan9-extensions, permit
referring to a field using a typedef name.
(find_anonymous_field_with_type): New static function.
(convert_to_anonymous_field): New static function.
(convert_for_assignment): If -fplan9-extensions, permit converting
pointer to struct to pointer to anonymous field.
* c-decl.c (grokfield): If -fplan9-extensions, permit anonymous
fields.
(is_duplicate_field): New static function.
(detect_field_duplicates_hash): If -fplan9-extensions, check for
typedef names duplicating field names.
(detect_field_duplicates): Likewise.
* doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
(C Dialect Options): Document -fplan9-extensions.
* doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
gcc/c-family/:
* c.opt (-fplan9-extensions): New option.
gcc/testsuite/:
* gcc.dg/anon-struct-11.c: New test.
* gcc.dg/anon-struct-12.c: New test.
* gcc.dg/anon-struct-13.c: New test.
* gcc.dg/anon-struct-14.c: New test.
Uros Bizjak [Sun, 3 Oct 2010 13:09:42 +0000 (15:09 +0200)]
i386.md (*ashl<mode>3_mask): Change operand 2 preticate to nonimmediate_operand.
* config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 preticate
to nonimmediate_operand. Force operand 2 to register when allowed.
(*<shiftrt_insn><mode>3_mask): Ditto.
(*<rotate_insn><mode>3_mask): Ditto.
Ralf Wildenhues [Sat, 2 Oct 2010 14:52:07 +0000 (14:52 +0000)]
Allow to pass separate configure arguments for build, host and target.
/:
PR bootstrap/45326
PR bootstrap/45174
* configure.ac: Honor initial values of $build_configargs,
$host_configargs, $target_configargs. Mark the precious, so
environment settings get recorded.
* configure: Regenerate.
Benjamin Kosnik [Fri, 1 Oct 2010 17:10:38 +0000 (17:10 +0000)]
extract_symvers: Add support for tracking TLS symbols.
2010-10-01 Benjamin Kosnik <bkoz@redhat.com>
* scripts/extract_symvers: Add support for tracking TLS symbols.
* testsuite/util/testsuite_abi.h (symbol::category): Add tls type.
* testsuite/util/testsuite_abi.cc: Set symbol type to tls when
appropriate, collect size info.
Ulrich Weigand [Fri, 1 Oct 2010 09:54:16 +0000 (09:54 +0000)]
spu.c (spu_init_builtins): No longer add END_BUILTINS to the function code for SPU MD builtins.
* config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
to the function code for SPU MD builtins.
(spu_expand_builtin): Update.
* config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
Sebastian Pop [Thu, 30 Sep 2010 21:21:29 +0000 (21:21 +0000)]
Fix Graphite memory leaks.
2010-09-23 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
and ps.
* graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
domain.
* graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
Do not allocate ub_expr, it is passed in initialized.
Sebastian Pop [Thu, 30 Sep 2010 21:21:21 +0000 (21:21 +0000)]
New flag: -fgraphite-dump-cloog.
Introduce a new flag: -fgraphite-dump-cloog. If enabled, graphite
dumps each SCoP into a CLooG input file for further debugging.
The naming follows the naming scheme of -fgraphite-write:
<basename>.<scopnumber>.cloog
The file is dumped into the current working directory.
2010-09-16 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
* common.opt (fgraphite-dump-cloog): New flag.
* doc/invoke.texi (-fgraphite-dump-cloog): Documented.
* graphite-clast-to-gimple.c (init_cloog_input_file): New.
(build_cloog_prog): Dump CLooG input file when
flag_graphite_dump_cloog is set.
* graphite-cloog-compat.h (cloog_program_dump_cloog): New.
Sebastian Pop [Thu, 30 Sep 2010 21:21:08 +0000 (21:21 +0000)]
CDI_POST_DOMINATORS are not used in Graphite.
2010-09-20 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (graphite_verify): Remove call to
verify_dominators for CDI_POST_DOMINATORS.
* sese.h: Remove comment about CDI_POST_DOMINATORS.
(recompute_all_dominators): Remove call to free_dominance_info
for CDI_POST_DOMINATORS. Remove call to calculate_dominance_info
for CDI_POST_DOMINATORS.
Sebastian Pop [Thu, 30 Sep 2010 21:20:30 +0000 (21:20 +0000)]
Fix pbb_number_of_iterations_at_time.
2010-09-09 Sebastian Pop <sebastian.pop@amd.com>
* graphite-poly.c (pbb_number_of_iterations): Removed.
(pbb_number_of_iterations_at_time): Correctly compute the number
of iterations in the transformed loop.
* graphite-poly.h (pbb_number_of_iterations): Removed.
Vladimir Kargov [Thu, 30 Sep 2010 21:19:42 +0000 (21:19 +0000)]
New SCoPDetection detects first SCoPs.
2010-09-02 Vladimir Kargov <kargov@gmail.com>
* graphite-scop-detection.c (is_valid_expr_p, is_valid_loop_p): New.
(is_valid_stmt_p): Add data reference and operation-specific checks.
(is_valid_bb_p): Change structure, add loop validity check.
(is_scop_p): Move the TODO list
(find_scops_new): New.
(build_scops_new): Move part of functionality to find_scops_new and
build_scops. Add necessary steps for successful SCoP construction.
(build_scops): Compute SCoP sets for both detection algorithms, choose
the resulting one depending on static condition.
Sebastian Pop [Thu, 30 Sep 2010 21:18:38 +0000 (21:18 +0000)]
Fix chrec_contains_symbols_defined_in_loop.
2010-08-20 Sebastian Pop <sebastian.pop@amd.com>
* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
RESULT_DECL, and FIELD_DECL. Return false for an
SSA_NAME_IS_DEFAULT_DEF.
(compute_scalar_evolution_in_loop): Do not further analyze the
scalar evolution when no_evolution_in_loop_p returns true.