* tree-sra.c (generate_subtree_copies): Updated comment.
(handle_unscalarized_data_in_subtree): Removed parameter lhs which is
obtained from the statement iterator instead.
(load_assign_lhs_subreplacements): Removed parameters lhs and
right_offset, which is obtained from top_racc instead. Parameter lacc
is now expected to be the root of the processed tree rather than root's
first child. Updated all callers.
neon.md (vec_pack_trunc_<mode>): Instruction pattern for vmovn.
gcc/
2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
* config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
pattern for vmovn. Expansion in case of non
-mvectorize-with-neon-quad.
(neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
non- -mvectorize-with-neon-quad case.
(move_lo_quad_<mode>): New expansion to vmov into low part.
(move_hi_quad_<mode>): New expansion to vmov into high part.
(move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
(move_lo_quad_v4sf): Likewise.
(move_lo_quad_v8hi): Likewise.
(neon_move_lo_quad_<mode>): Instruction pattern for vmov into
low part.
(neon_move_hi_quad_<mode>): Instruction pattern for vmov into
high part.
* config/arm/iterators.md (ANY128): New mode iterator.
(V_narrow_pack): New mode attribute.
(V_HALF): Add attribute.
(V_DOUBLE): Add attribute.
(V_mode_nunits): Add attribute.
gcc/testsuite
2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
* lib/target-supports.exp
(check_effective_target_vect_pack_trunc): Set vect_pack_trunc
supported flag to true for neon.
Radar 4174166
* objc-act.c (objc_compare_types): Compare function
pointers; indicate success if the right-hand side has
a return type that is covariant, and the argument types
contravariant, with those of the left side.
2005-08-22 Ziemowit Laski <zlaski@apple.com>
Radar 4216500
* objc-act.c (objc_get_protocol_qualified_type): When looking
at a typedef, retrieve the precise type it describes (rather
than merely looking up a class by name).
Martin Jambor [Tue, 14 Sep 2010 14:09:38 +0000 (16:09 +0200)]
tree-sra.c (build_ref_for_offset): Loc made a parameter.
2010-09-14 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
location of generated statement. Changed all callers.
(build_ref_for_model): New parameter loc which used to set location of
all generated expressions. Changed all callers.
(generate_subtree_copies): Likewise.
(init_subtree_with_zero): Likewise.
(sra_modify_expr): Set locations of all generated statements and
expressions to the location the original statement.
(handle_unscalarized_data_in_subtree): Likewise.
(load_assign_lhs_subreplacements): Likewise.
(sra_modify_constructor_assign): Likewise.
(sra_modify_assign): Likewise.
Nicola Pero [Tue, 14 Sep 2010 10:23:37 +0000 (10:23 +0000)]
In libobjc/: Implemented objc_sync_enter() and objc_sync_exit(), which are required by @synchronized() to work.
In libobjc/:
Implemented objc_sync_enter() and objc_sync_exit(), which are
required by @synchronized() to work.
* objc-sync.c: New file.
* objc/objc-sync.h: New file.
* objc-private/objc-sync.h: New file.
* init.c (__objc_exec_class): Call __objc_sync_init() during the
Objective-C runtime startup.
* Makefile.in: Added objc-sync.c and objc-sync.h.
* configure.ac: Added GCC_CHECK_TLS.
* acinclude.m4: Include ../config/enable.m4 and ../config/tls.m4.
* configure: Regenerated.
* config.h.in: Regenerated.
Jakub Jelinek [Tue, 14 Sep 2010 10:11:11 +0000 (12:11 +0200)]
re PR middle-end/45567 (__builtin_popcountl ICEs with -ftree-ter)
PR middle-end/45567
* builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
(expand_builtin): Adjust caller.
(expand_builtin_unop): Only use subtarget if it has the right mode.
Ira Rosen [Tue, 14 Sep 2010 09:21:15 +0000 (09:21 +0000)]
re PR tree-optimization/45470 (ICE: verify_flow_info failed: BB 2 can not throw but has an EH edge with -ftree-vectorize -fnon-call-exceptions)
PR tree-optimization/45470
* tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
can throw an exception.
* tree-vect-stmts.c (vectorizable_call): Likewise.
* config/mep/mep.c: Move all target definitions to the end of the
file to avoid the need for duplicate declarations.
(mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
(mep_reorg_erepeat): Remove unused variables.
(mep_expand_builtin): Likewise.
fwprop.c (forward_propagate_and_simplify): Only attach a REG_EQUAL note to an insn if the destination is a register.
* fwprop.c (forward_propagate_and_simplify): Only attach a
REG_EQUAL note to an insn if the destination is a register.
* gcse.c (try_replace_reg): Likewise.
PR debug/45604
PR debug/45419
PR debug/45408
* tree-pretty-print.c (dump_generic_node): Disregard top-level
types of MEM_REF pointer types to the same type.
Nicola Pero [Sun, 12 Sep 2010 14:55:21 +0000 (14:55 +0000)]
In libobjc/:
* Makefile.in (%_gc.lo): New pattern rules to build the
garbage-collected version of the library. Removed rules for
specific files that are no longer needed. Standardized all rules.
(C_SOURCE_FILES, OBJC_SOURCE_FILES): New variables.
(OBJS, OBJS_GC): Compute these from C_SOURCE_FILES and
OBJC_SOURCE_FILES.
(INCLUDES): Removed the unused include -I$(srcdir)/objc.
* memory.c (objc_calloc): Fixed call to GC_malloc when building
with Garbage Colletion.
Nicola Pero [Sun, 12 Sep 2010 01:44:58 +0000 (01:44 +0000)]
In libobjc/:
* objc/deprecated/objc_malloc.h: New file.
* objc/deprecated/objc_valloc.h: New file.
* objc/objc-api.h: Include the files instead of defining
objc_valloc, _objc_malloc() and similar.
* Makefile.in (OBJC_DEPRECATED_H): Added objc_valloc.h and
objc_malloc.h.
* memory.c: Removed the extra layer of indirection of _objc_malloc
and similar.
(objc_calloc): Use GC_malloc in the garbage-collected
implementation as GC_malloc returns memory that is already freed.
(objc_valloc): Deprecated.
Nicola Pero [Sun, 12 Sep 2010 00:43:15 +0000 (00:43 +0000)]
In libobjc/:
* objc/deprecated/objc_error.h: New file.
* objc/objc-api.h: Include deprecated/objc_error.h instead of
defining objc_error and related.
* error.c: New file. Added _objc_abort function which replaces
objc_error. No change in functionality as they both print an
error and abort.
* misc.c: File removed. Code moved into memory.c and error.c.
* memory.c: New file.
* objc-private/error.h: New file.
* archive.c: Include objc-private/error.h and use _objc_abort
instead of objc_error everywhere.
* class.c: Same change.
* encoding.c: Same change.
* init.c: Same change, and simplified init_check_module_version.
* memory.c: Same change.
* sendmsg.c: Same change.
* thr.c: Same change.
* Makefile.in (OBJ_DEPRECATED_H): Added objc_error.h.
(OBJ_H): Reordered list.
(OBJS): Removed misc.lo, added memory.lo and error.lo.
(OBJS_GC): Removed misc_gc.lo, added memory_gc.lo and error_gc.lo.
(misc_gc.lo): Rule removed.
(error_gc.lo): Rule added.
(memory_gc.lo): Rule added.
Nicola Pero [Sat, 11 Sep 2010 22:47:14 +0000 (22:47 +0000)]
In libobjc/:
* objc/objc.h (__GNU_LIBOBJC__): New #define providing an easy way
to check the API version. Added some comments.
* objc-private/common.h: New file.
* NXConstStr.m: Include objc-private/common.h.
* Object.m: Same change.
* Protocol.m: Same change.
* archive.c: Same change.
* class.c: Same change.
* encoding.c: Same change.
* exception.c: Same change.
* gc.c: Same change.
* hash.c: Same change.
* init.c: Same change.
* libobjc_entry.c: Same change.
* linking.m: Same change.
* misc.c: Same change (and added a comment).
* nil_method.c: Same change.
* objects.c: Same change.
* sarray.c: Same change.
* selector.c: Same change.
* sendmsg.c: Same change.
* thr.c: Same change.
mathbuiltins.def: Do not defined huge_val built-in.
* mathbuiltins.def: Do not defined huge_val built-in.
* trans-const.c (gfc_build_inf_or_huge): New function.
* trans-const.h (gfc_build_inf_or_huge): New prototype.
* f95-lang.c (gfc_init_builtin_functions): Don't defined
huge_val built-ins.
* trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): We don't
have functions of type (*) (void) anymore.
(gfc_conv_intrinsic_minmaxloc): Call gfc_build_inf_or_huge.
(gfc_conv_intrinsic_nearest): Call gfc_build_inf_or_huge instead
of generating a call to huge_val().
Nicola Pero [Sat, 11 Sep 2010 15:16:49 +0000 (15:16 +0000)]
In libobjc/:
* archive.c: Removed not needed includes.
* class.c: Same change.
* hash.c: Same change.
* misc.c: Same change.
* nil_method.c: Same change.
* objects.c: Same change.
* sarray.c: Same change.
* sendmsg.c: Same change.
* thr.c: Same change.
Nicola Pero [Sat, 11 Sep 2010 12:58:27 +0000 (12:58 +0000)]
In libobjc/:
* objc/runtime.h: Moved to objc-private/runtime.h. Do not include
all the objc/*.h files.
* objc-private/runtime.h: New file.
* archive.c: Include objc-private/runtime.h (and required objc/*.h
files) instead of objc/runtime.h.
* class.c: Same change.
* hash.c: Same change.
* init.c: Same change.
* misc.c: Same change.
* nil_method.c: Same change.
* objects.c: Same change.
* sarray.c: Same change.
* selector.c: Same change.
* sendmsg.c: Same change.
* thr.c: Same change.
Nicola Pero [Sat, 11 Sep 2010 12:38:56 +0000 (12:38 +0000)]
In libobjc:
* objc/deprecated/struct_objc_selector.h: New file. Definition of
'struct objc_selector' and 'sel_eq' moved here.
* objc/deprecated/struct_objc_protocol.h: New file. Definition of
'struct objc_procotol' moved here.
* objc/deprecated/struct_objc_class.h: New file. Definition of
'struct objc_class' moved here.
* objc/deprecated/MetaClass.h: New file. Definition of MetClass
moved here.
* objc/deprecated/STR.h: New file. Definition of STR moved here.
* objc/message.h: New file. Definitions for relval_t, apply_t,
arglist, arglist_t and objc_msg_lookup were moved here.
* objc/objc.h: Include the above files instead of defining the
corresponding structs, types and functions here. Added new opaque
definitions for SEL and Class. Use Class and not 'struct
objc_class *' in the definition of 'struct objc_object'.
Commented all types defined in the file. Removed special
definition of BOOL as 'int' on __vxworks; use 'unsigned char'
there as well.
* objc/deprecated/objc-unexpected-exception.h: Renamed to
objc_unexpected_exception.h.
* objc/objc-api.h: Updated include of
objc-unexpetected-exception.h
* objc/objc-exception.h: Updated comments.
* Makefile.in (OBJC_H, OBJC_DEPRECATED_H): Added the new header
files. Reindented list of files.
* gfortran.h (gfc_expr): Remove inline_noncopying_intrinsic attribute.
* dependency.c (gfc_check_dependency): Don't depend on
expr's inline_noncopying_intrinsic_attribute.
* dependency.c (gfc_check_argument_var_dependency,
gfc_check_argument_dependency): Ditto. Recursively check dependency
as NOT_ELEMENTAL in the non-copying (=transpose) case.
* trans-intrinsic.c (gfc_conv_intrinsic_function): Ditto.
* resolve.c (find_noncopying_intrinsics): Remove.
(resolve_function, resolve_call): Remove call to
find_noncopying_intrinsics.
* trans-array.c (gfc_conv_array_transpose): Remove.
(gfc_walk_subexpr): Make non-static. Move prototype...
* trans-array.h (gfc_walk_subexpr): ... here.
* trans-intrinsic.c (gfc_conv_intrinsic_function): Update transpose
handling.
(walk_inline_intrinsic_transpose, walk_inline_intrinsic_function,
gfc_inline_intrinsic_function_p): New.
(gfc_is_intrinsic_libcall): Return early in inline intrinsic case.
Remove transpose from the libcall list.
(gfc_walk_intrinsic_function): Special case inline intrinsic.
* trans.h (gfc_inline_intrinsic_function_p): New prototype.
2010-09-11 Mikael Morin <mikael@gcc.gnu.org>
* gfortran.dg/inline_transpose_1.f90: Update temporary's locations
and counts. Check that transpose is not called.
* gfortran.dg/transpose_2.f90: Update error message.
* gnat_ugn.texi: Add documentation for -gnatw.s/S
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
Component_Size): Implement warning on overriden size clause.
(Analyze_Record_Representation_Clause): Implement warning on overriden
size clause.
* sem_warn.ads, sem_warn.adb (Warn_On_Overridden_Size): New flag
(-gnatw.s/S).
* ug_words: Add entries for -gnatw.s/S.
* vms_data.ads, usage.adb: Add line for -gnatw.s/-gnatw.S.
* gcc-interface/Make-lang.in: Update dependencies.
2010-09-10 Vincent Celier <celier@adacore.com>
* prj-dect.adb (Parse_Package_Declaration): Allow a package to extend
a package with the same name from an imported or extended project.
* prj-proc.adb (Process_Declarative_Items): Process package extensions
2010-09-10 Bob Duff <duff@adacore.com>
* exp_ch6.adb (Expand_Call): Do not perform a null_exclusion check on
'out' parameters.
Richard Guenther [Fri, 10 Sep 2010 15:40:05 +0000 (15:40 +0000)]
tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
2010-09-10 Richard Guenther <rguenther@suse.de>
* tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
* tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
* lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
not stream TYPE_DEBUG_REPRESENTATION_TYPE.
* lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
Richard Guenther [Fri, 10 Sep 2010 15:38:20 +0000 (15:38 +0000)]
dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
2010-09-10 Richard Guenther <rguenther@suse.de>
* dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
* dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
* exp_ch7.adb, exp_ch6.adb (Expand_Call): Establish a transient scope
for a controlled build-in-place function call which appears in an
anonymous context. The transient scope ensures that the intermediate
function result is cleaned up after the master is left.
(Make_Build_In_Place_Call_In_Anonymous_Context): Remove the creation
of the transient scope. This is now done in Exand_Call which covers
additional cases other than secondary stack release.
2010-09-10 Arnaud Charlet <charlet@adacore.com>
* sem.adb (Do_Unit_And_Dependents): Add guard.
2010-09-10 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb: Update comments.
* exp_dist.adb: Minor reformatting.
* sem_ch13.adb (Check_Record_Representation_Clause): Implement record
gap warnings.
* sem_warn.ads, sem_warn.adb (Warn_On_Record_Holes): New warning flag.
* usage.adb: Add lines for -gnatw.h/H
* gnat_ugn.texi: Add documentation for J519-010
Warn on record holes/gaps
* ug_words: Add entries for -gnatw.h/-gnatw.H
* vms_data.ads: Add entries for [NO]AVOIDGAPS
* sem_ch3.adb (Build_Derived_Private_Type): Mark generated declaration
of full view analyzed after analyzing the corresponding record
declaration, to prevent spurious name conflicts with original
declaration.
2010-09-10 Jerome Lambourg <lambourg@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause): In the VM case,
just issue a warning, but continue with the normal processing.
2010-09-10 Robert Dewar <dewar@adacore.com>
* exp_attr.adb, prj-nmsc.adb, sem_ch4.adb, sem_res.adb: Minor
reformatting.
2010-09-10 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb (Build_From_Any_Call, Build_To_Any_Call,
Build_TypeCode_Call): For a subtype inserted for the expansion of a
generic actual type, go to the underlying type of the original actual
type.
2010-09-10 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb (Expand_Assign_Array_Loop): In CodePeer mode, place a
guard around the increment statement, to prevent an off-by-one-value
on the last iteration.
* sem_aggr.adb, exp_prag.adb, sem_ch3.adb, exp_attr.adb,
sem_res.adb, sem_attr.adb, sem_elab.adb, sem_ch4.adb, exp_disp.adb,
exp_aggr.adb, exp_dist.adb: Change all mentions of "at run-time" to
"at run time" in comments and error/warning messages.
2010-09-10 Ed Schonberg <schonberg@adacore.com>
* exp_cg.adb: Handle properly bodies without specs.
2010-09-10 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb (Find_Source_Dirs): When a source directory is not
present, and the user requested to either ignore this or display a
warning (as opposed to an error), we still need to register the
directory.
* errout.adb: Remove tests of Parsing_Main_Subunit, since this test is
now done in In_Extended_Main_Source_Unit.
* errout.ads (Compiler_State[_Type]): Moved from Errout to Lib
(Parsing_Main_Subunit): Moved from Errout to Lib and renamed
as Parsing_Main_Extended_Source.
* frontend.adb: Set Parsing_Main_Extended_Source True for parsing main
unit.
* lib-load.adb (Load_Unit): Add PMES parameter
Set PMES appropriately in all calls to Load_Unit
* lib-load.ads (Load_Unit): Add PMES parameter
* lib.adb (In_Extended_Main_Source_Unit): When called with
Compiler_State set to Parsing, test new flag
Compiling_Main_Extended_Source.
* lib.ads (Compiler_State[_Type]): Moved from Errout to Lib
(Parsing_Main_Subunit): Moved from Errout to Lib and renamed
as Parsing_Main_Extended_Source
* par-load.adb (Load): Set PMES properly in call to Load_Unit
2010-09-10 Ed Schonberg <schonberg@adacore.com>
* exp_cg.adb: Use proper entity to handle overloads.
* sem_res.adb (Check_Parameterless_Call): An operator node without
actuals cannot be a call, and must be treated as a string.
* par-ch4.adb (P_Conditional_Expression): Use P_Condition for condition
* par-ch5.adb (P_Condition): Move from body to spec
* par.adb (Ch5.P_Condition): Move from body to spec
2010-09-10 Ed Schonberg <schonberg@adacore.com>
* exp_cg.adb (Write_Call_Info): If a type that has been registered in
the call table is private, use its full view to generate information
on its operations.
* exp_cg.adb (Is_Predefined_Dispatching_Operation): When trying the
pattern matching to detect predefined primitive operations take into
account that there can be an extra suffix related to body-nested
package entities.
* vms_data.ads: Add new GNAT BIND qualifiers /32_MALLOC (for -H32) and
/64_MALLOC (for -H64).
2010-09-10 Robert Dewar <dewar@adacore.com>
* errout.adb (Error_Msg_Internal): Test Parsing_Main_Subunit flag
(Error_Msg_NW): Test Parsing_Main_Subunit flag
* errout.ads (Parsing_Main_Subunit): New flag
* lib-load.adb (Load_Unit): Set Parsing_Main_Subunit flag
* par-ch6.adb: Minor style fix (remove redandant parentheses)
* par-ch9.adb: Minor style fix (remove redundant parens)
* par-load.adb: (Load): Deal with setting Parsing_Main_Subunit
2010-09-10 Vincent Celier <celier@adacore.com>
* make.adb (Create_Binder_Mapping_File): Remove procedure. Replaced by
function of the same name in Makeutl.
(Gnatmake): Call function Create_Binder_Mapping_File in Makeutl, instead
of removed procedure when creating a binder mapping file.
* makeutl.adb (Create_Binder_Mapping_File): New function. Was a
procedure in Make.
* makeutl.ads (Create_Binder_Mapping_File): New function
* exp_cg.adb (Is_Predefined_Dispatching_Operation): Add the "__" scope
separator when trying the pattern matching to detect predefined
primitive operations.
2010-09-10 Robert Dewar <dewar@adacore.com>
* bindgen.adb, atree.adb: Minor reformatting.
2010-09-10 Ben Brosgol <brosgol@adacore.com>
* ug_words, gnat_ugn.texi: Revised "Transitioning to 64-Bit GNAT for
OpenVMS" section.
Richard Guenther [Fri, 10 Sep 2010 13:44:07 +0000 (13:44 +0000)]
tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
2010-09-10 Richard Guenther <rguenther@suse.de>
* tree.c (type_hash_eq): For ARRAY_TYPEs also compare
TYPE_SIZE.
(build_index_type): Implement in terms of build_range_type.
(build_range_type): Do not allow NULL_TREE type, improve
hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
if we didn't hash.
* c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
create a distinct copy of the type.
* exp_cg.adb (Register_CG_Node): Determine enclosing subprogram or
library unit now, by traversing tree before context is expanded.
(Write_Call_Info): Use enclosing unit name directly.
* exp_ch9.adb (Expand_N_Accept_Statement): Attach generated block to
tree earlier, to ensure that subsequent declarations are analyzed in a
connected structure.
* exp_intr.adb (Expand_Unc_Deallocation): Ditto for generated statement
list.