Eric Botcazou [Sat, 11 Feb 2012 00:14:08 +0000 (00:14 +0000)]
sparc.c (sparc_flat_expand_prologue): Use emit_use.
* config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
* config/sparc/sparc.md (UNSPECV_GOTO): Delete.
(nonlocal_goto_internal): Likewise.
(nonlocal_goto): Emit a use and an indirect jump directly.
Kai Tietz [Fri, 10 Feb 2012 16:30:47 +0000 (17:30 +0100)]
re PR boehm-gc/48514 ([4.6] boehm gc incorrectly compile using __declspec(dllexport) on i686-w64-mingw32 target)
PR boehm-gc/48514
* include/gc_config_macros.h (GC_DLL): Define it for mingw-targets
only, if we are actual in boehm-gc's build and DLL_EXPORT
is defined.
Jakub Jelinek [Thu, 9 Feb 2012 11:41:25 +0000 (12:41 +0100)]
re PR debug/52165 (ICE in add_var_loc_to_decl, at dwarf2out.c:5430 building libgo on s390/s390x)
PR debug/52165
* var-tracking.c (emit_note_insn_var_location): If
EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
non-NOTE_DURING_CALL_P insn.
go-test.exp (go-gc-tests): Don't run stack.go on systems which don't support -fsplit-stack.
* go.test/go-test.exp (go-gc-tests): Don't run stack.go on systems
which don't support -fsplit-stack. Turn off optimization when
compiling select5-out.go.
Andrew Macleod [Wed, 8 Feb 2012 22:58:50 +0000 (22:58 +0000)]
[multiple changes]
2012-02-08 Andrew MacLeod <amacleod@redhat.com>
* gcc.dg/simulate-thread/simulate-thread.exp: Use only -O0 and -O3.
* gcc.dg/simulate-thread/simulate-thread.gdb: Don't display every
machine instuction in the log.
2012-02-08 Jack Howarth <howarth@bromo.med.uc.edu>
* lib/gcc-simulate-thread.exp (simulate-thread): Increase timeout
to 20 seconds.
Jakub Jelinek [Wed, 8 Feb 2012 13:27:31 +0000 (14:27 +0100)]
re PR gcov-profile/52150 (junk at end of line in Firefox PGO build)
PR gcov-profile/52150
* coverage.c: Include target.h.
(build_var): Call targetm.strip_name_encoding on the assembler name.
Change one _ into . or $ if the target allows it.
* Makefile.in (coverage.o): Depend on $(TARGET_H).
Jakub Jelinek [Wed, 8 Feb 2012 12:29:43 +0000 (13:29 +0100)]
re PR rtl-optimization/52139 (ICE: in remove_insn, at emit-rtl.c:3960 with -O -fPIC -fno-tree-dominator-opts -fno-tree-fre)
PR rtl-optimization/52139
* cfgrtl.c (cfg_layout_merge_blocks): If BB_END
is a BARRIER after emit_insn_after_noloc, move BB_END
to the last non-BARRIER insn before it.
Arnaud Charlet [Wed, 8 Feb 2012 10:13:54 +0000 (11:13 +0100)]
[multiple changes]
2012-02-08 Vincent Celier <celier@adacore.com>
* gcc-interface/Make-lang.in: Add g-byorma.o to gnatbind objects
(g-buorma is now imported by sinput).
Update dependencies.
* scn.adb (Initialize_Scanner): Call Check_For_BOM
* sinput-p.adb (Source_File_Is_Subunit): Call Check_For_BOM
* sinput.adb: New procedure Check_For_BOM
* sinput.ads: New procedure Check_For_BOM
2012-02-08 Vincent Pucci <pucci@adacore.com>
* impunit.adb: Dimension package names updated
* Makefile.rtl: s-dim added
* sem_dim.adb (Is_Procedure_Put_Call): minor changes
(Is_Dim_IO_Package_Instantiation): minor changes
* sem_dim.ads: minor changes in comments
* snames.ads-tmpl: Name_Dim added Name_Dim_Float_IO and
Name_Dim_Integer_IO removed
* s-dim.ads: New package. Define the dimension terminology.
* s-diflio.adb, s-diinio.adb, s-dimkio.ads, s-dimmks.ads,
* s-dmotpr.ads: Package names updated.
* s-diflio.ads, s-diinio.ads: Documentation added and package
names updated.
2012-02-08 Gary Dismukes <dismukes@adacore.com>
* gcc-interface/utils2.c (build_call_alloc_dealloc_proc): Revise test
for storage pools to test for an underlying record type rather than
testing Is_Tagged_Type, so that simple storage pools will be handled
the same as normal Ada storage pools.
Arnaud Charlet [Wed, 8 Feb 2012 10:04:46 +0000 (11:04 +0100)]
[multiple changes]
2012-02-08 Yannick Moy <moy@adacore.com>
* gnat_rm.texi: Minor reshuffling to place restriction at
appropriate place.
2012-02-08 Bob Duff <duff@adacore.com>
* warnsw.adb (Set_Warning_Switch): Set Warn_On_Suspicious_Modulus_Value
False for '-gnatwA', to suppress these warnings.
2012-02-08 Vincent Celier <celier@adacore.com>
* sinput-p.adb (Source_File_Is_Subunit): Check for BOM before
starting to scan, so that UTF8 encoding is taken into account.
2012-02-08 Arnaud Charlet <charlet@adacore.com>
* s-tasren.adb, s-tasren.ads (Internal_Complete_Rendezvous): New
function.
(Complete_Rendezvous): Now call Internal_Complete_Rendezvous.
(Exceptional_Complete_Rendezvous): Mark No_Return.
2012-02-08 Eric Botcazou <ebotcazou@adacore.com>
* exp_aggr.adb (Compile_Time_Known_Composite_Value):
New predicate to compute whether a composite value can be
evaluated at compile time.
(Component_Not_OK_For_Backend): Use Compile_Time_Known_Value for all
expressions of elementary type and Compile_Time_Known_Composite_Value
for all other expressions.
(Expand_Record_Aggregate): Convert to assignments in the case
of a type with mutable components if the aggregate cannot be
built statically.
2012-02-08 Gary Dismukes <dismukes@adacore.com>
* aspects.ads (type Aspect_Id): Add Simple_Storage_Pool_Type.
(Impl_Defined_Aspects): Add association for
Aspect_Simple_Storage_Pool_Type.
(Aspect_Names): Add
association for Aspect_Simple_Storage_Pool_Type.
* aspects.adb:
(Canonical_Aspect): Add association for Simple_Storage_Pool_Type.
* exp_attr.adb (Expand_N_Attribute_Reference):
Change name to Name_Simple_Storage_Pool_Type.
* exp_ch4.adb (Expand_N_Allocator): Change
name to Name_Simple_Storage_Pool_Type.
* exp_intr.adb (Expand_Unc_Deallocation): Change name to
Name_Simple_Storage_Pool_Type. * freeze.adb (Freeze_Entity):
Change names to Name_Simple_Storage_Pool_Type. * par-prag.adb:
Change names to Name_Simple_Storage_Pool_Type. * sem_attr.adb:
(Analyze_Attribute): Change name to Name_Simple_Storage_Pool_Type.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause):
Change name to Name_Simple_Storage_Pool_Type.
* sem_prag.adb:
(Analyze_Pragma): Change name to Name_Simple_Storage_Pool_Type.
(Sig_Flags): Change name to Name_Simple_Storage_Pool_Type.
* sem_res.adb (Resolve_Allocator): Change name to
Name_Simple_Storage_Pool_Type. * snames.ads-tmpl:
(Name_Simple_Storage_Pool_Type): New name constant.
(type Pragma_Id): Change name to Name_Simple_Storage_Pool_Type and
move to main pragma section because it no longer matches the
attribute name.
* snames.adb-tmpl (Get_Pragma_Id): Remove test for
Name_Simple_Storage_Pool.
(Is_Pragma_Name): Remove test for Name_Simple_Storage_Pool.
2012-02-08 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Add some clarification to -gnatwA and -gnatws.
Pascal Obry [Wed, 8 Feb 2012 09:31:12 +0000 (09:31 +0000)]
prj.adb (Compute_All_Imported_Projects): Use new For_Project_And_Aggregated_Context to ensure proper context is used for...
2012-02-08 Pascal Obry <obry@adacore.com>
* prj.adb (Compute_All_Imported_Projects): Use new
For_Project_And_Aggregated_Context to ensure proper context is
used for encapsulated aggregate libraries.
* prj-proc.adb (Recursive_Process): Call
Process_Aggregated_Projects earlier to ensure that all dependent
projects are set with the proper encapsulated status.
2012-02-08 Pascal Obry <obry@adacore.com>
* s-os_lib.adb (Normalize_Arguments): Properly escape last \ in null
terminated string.
Arnaud Charlet [Wed, 8 Feb 2012 09:27:17 +0000 (10:27 +0100)]
[multiple changes]
2012-02-08 Robert Dewar <dewar@adacore.com>
* a-coinve.adb, sem_util.adb, sem_ch8.adb, a-cobove.adb,
a-convec.adb: Minor reformatting and code reorganization.
2012-02-08 Steve Baird <baird@adacore.com>
* sem_cat.adb (In_Preelaborated_Unit): A child
unit instantiation does not inherit preelaboration requirements
from its parent.
2012-02-08 Gary Dismukes <dismukes@adacore.com>
* aspects.ads (type Aspect_Id): Add Aspect_Simple_Storage_Pool.
(Impl_Defined_Aspects): Add entry for Aspect_Simple_Storage_Pool.
(Aspect_Argument): Add Name entry for Aspect_Simple_Storage_Pool.
(Aspect_Names): Add entry for Aspect_Simple_Storage_Pool.
* aspects.adb (Canonical_Aspect): Add entry for
Aspect_Simple_Storage_Pool.
* exp_attr.adb (Expand_N_Attribute_Reference): Handle case of
Attribute_Simple_Storage_Pool in the same way as Storage_Pool
(add conversion, analyze/resolve). For the Storage_Size attribute,
for the simple pool case, locate and use the simple pool type's
Storage_Size function (if any), otherwise evaluate to zero.
* exp_ch4.adb (Expand_N_Allocator): In the case of an allocator
for an access type with an associated simple storage pool,
locate and use the pool type's Allocate.
* exp_intr.adb (Expand_Unc_Deallocation): In the case where the
access type has a simple storage pool, locate the pool type's
Deallocate procedure (if present) and use it as the procedure
to call on the Free operation.
* freeze.adb (Freeze_Entity): In the case of a full type for
a private type defined with pragma Simple_Storage_Pool, check
that the full type is also appropriate for the pragma. For
a simple storage pool type, validate that the operations
Allocate, Deallocate (if present), and Storage_Size
(if present) are defined with appropriate expected profiles.
(Validate_Simple_Pool_Op_Formal): New procedure
(Validate_Simple_Pool_Operation): New procedure Add with and
use of Rtsfind.
* par-prag.adb: Add Pragma_Simple_Storage_Pool to case statement
(no action required).
* sem_attr.adb (Analyze_Attribute): For the case of the
Storage_Pool attribute, give a warning if the prefix type has an
associated simple storage pool, and rewrite the attribute as a
raise of Program_Error. In the case of the Simple_Storage_Pool
attribute, check that the prefix type has an associated simple
storage pool, and set the attribute type to the pool's type.
* sem_ch13.adb (Analyze_Aspect_Specifications): Add
Aspect_Simple_Storage_Pool case choice.
(Analyze_Attribute_Definition_Clause): Add
Aspect_Simple_Storage_Pool to case for Ignore_Rep_Clauses
(no action). Add handling for Simple_Storage_Pool attribute
definition, requiring the name to denote a simple storage pool
object.
(Check_Aspect_At_Freeze_Point): For a simple storage pool
aspect, set the type to that of the name specified for the aspect.
* sem_prag.adb (Analyze_Pragma): Add handling for pragma
Simple_Storage_Pool, requiring that it applies to a library-level
type declared in a package declaration that is a limited private
or limited record type.
* sem_res.adb (Resolve_Allocator): Flag an attempt to call a
build-in-place function in an allocator for an access type with
a simple storage pool as unsupported.
* snames.ads-tmpl: Add Name_Simple_Storage_Pool.
(type Attribute_Id): Add Attribute_Simple_Storage_Pool.
(type Pragma_Id): Add Pragma_Simple_Storage_Pool.
* snames.adb-tmpl (Get_Pragma_Id): Handle case of
Name_Simple_Storage_Pool.
(Is_Pragma_Name): Return True for Name_Simple_Storage_Pool.
re PR middle-end/24306 (va_arg gets confused when skipping over certain zero-sized types with -msse)
gcc/
PR middle-end/24306
* config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
(mips_gimplify_va_arg_expr): Call it instead of
std_gimplify_va_arg_expr.
Jakub Jelinek [Tue, 7 Feb 2012 15:16:45 +0000 (16:16 +0100)]
freebsd-spec.h: Add comment about what macros can be defined in this header.
* config/freebsd-spec.h: Add comment about what macros can be defined
in this header.
(LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
* config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
here instead.
* config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
adding __forwarder_dst__ prefix if a forwarder_section attribute is
present.
(epiphany_function_type): Replace types for specific interrupts with
EPIPHANY_FUNCTION_INTERRUPT.
(EPIPHANY_INTERRUPT_P): Update.
* config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
New static function.
(epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
<disinterrupt>: Affects type identity.
(epiphany_handle_interrupt_attribute): Handle variable number of
arguments.
(epiphany_compute_function_type): Update for new
epiphany_function_type definition.
(epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
handlers with a longcall forwarder.
(epiphany_start_function): Handle multiple interrupt arguments and/or
forwarder_section attribute.
Bill Schmidt [Mon, 6 Feb 2012 21:39:34 +0000 (21:39 +0000)]
re PR tree-optimization/50969 (17% degradation in 168.wupwise for interleave via permutation)
2012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR tree-optimization/50969
* tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
use vec_perm rather than vector_stmt.
(vect_model_load_cost): Likewise.
* config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
vec_perm to be the same as other vector statements.
* config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
cost of vec_perm for TARGET_VSX.
François Dumont [Mon, 6 Feb 2012 20:19:44 +0000 (20:19 +0000)]
2012-02-06 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.h
(_Safe_iterator::_M_before_dereferenceable): Avoid the expensive
creation of a _Safe_iterator instance to do the check.
re PR tree-optimization/52115 (ICE: verify_ssa failed (missing definition for SSA_NAME))
2012-02-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/52115
* tree-sra.c (access_has_replacements_p): New function.
(sra_modify_assign): Use it to decide whether a use is uninitialized.
re PR tree-optimization/50955 (IVopts incorrectly rewrite the address of a global memory access into a local form.)
2012-02-06 Richard Guenther <rguenther@suse.de>
PR tree-optimization/50955
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
raise cost of expressions that replace an address with an
expression based on a different pointer.