Robert Dewar [Mon, 2 Apr 2012 09:14:47 +0000 (09:14 +0000)]
2012-04-02 Robert Dewar <dewar@adacore.com>
* einfo.adb (First_Component_Or_Discriminant) Now applies to
all types with discriminants, not just records.
* exp_attr.adb (Expand_N_Attribute): Add Scalar_Values handling
for arrays, scalars and non-variant records.
* sem_attr.adb (Analyze_Attribute): Handle Valid_Scalars
* sem_attr.ads (Valid_Scalars): Update description
* sem_util.ads, sem_util.adb (No_Scalar_Parts): New function.
Tristan Gingold [Fri, 30 Mar 2012 13:25:45 +0000 (13:25 +0000)]
ia64.c (ia64_section_type_flags): Remove common_object attribute handling.
2012-03-30 Tristan Gingold <gingold@adacore.com>
* config/ia64/ia64.c (ia64_section_type_flags): Remove
common_object attribute handling.
(SECTION_VMS_OVERLAY): Remove
(ia64_vms_common_object_attribute): Replace abort with an assert.
Do not set DECL_SECTION_NAME.
(ia64_vms_output_aligned_decl_common): Handle common_object
attribute.
(ia64_vms_elf_asm_named_section): Remove.
* config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
Arnaud Charlet [Fri, 30 Mar 2012 09:32:55 +0000 (11:32 +0200)]
[multiple changes]
2012-03-30 Robert Dewar <dewar@adacore.com>
* exp_ch5.adb, sem_util.adb, exp_ch4.adb: Minor comment updates.
2012-03-30 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb (Add_Alfa_File): Treat possibly 2 units at the same
time, putting all scopes in the same Alfa file.
(Add_Alfa_Xrefs): Correct errors in comparison function. Correct value
of Def component.
(Collect_Alfa): Possibly pass 2 units to Add_Alfa_File.
Yannick Moy [Fri, 30 Mar 2012 09:24:09 +0000 (09:24 +0000)]
lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit instead of Get_Source_Unit to get file for reference.
2012-03-30 Yannick Moy <moy@adacore.com>
* lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit
instead of Get_Source_Unit to get file for reference.
(Traverse_Compilation_Unit): Do not add scopes for generic units.
* lib-xref.adb (Generate_Reference): Use Get_Code_Unit instead
of Get_Source_Unit to get file for reference.
* sem_ch12.adb (Analyze_Package_Instantiation): Enable
instantiation in Alfa mode.
* exp_ch7.adb (Process_Declarations): Replace
the call to Is_Null_Access_BIP_Func_Call with
Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
* exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed.
(Is_Secondary_Stack_BIP_Func_Call): New routine.
(Requires_Cleanup_Actions): Replace
the call to Is_Null_Access_BIP_Func_Call with
Is_Secondary_Stack_BIP_Func_Call. Update the related comment.
* exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed.
(Is_Secondary_Stack_BIP_Func_Call): New routine.
Arnaud Charlet [Fri, 30 Mar 2012 09:17:34 +0000 (11:17 +0200)]
[multiple changes]
2012-03-30 Gary Dismukes <dismukes@adacore.com>
* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a
loop entity which is rewritten as a renaming
of the indexed array, explicitly mark the entity as needing
debug info so that Materialize entity will be set later by
Debug_Renaming_Declaration when the renaming is expanded.
Tristan Gingold [Fri, 30 Mar 2012 08:42:47 +0000 (08:42 +0000)]
vms.c (VMS_CRTL_FLOAT32): Rename.
2012-03-30 Tristan Gingold <gingold@adacore.com>
* config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
(VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
(VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
(VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
(VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
(vms_patch_builtins): Handle new flags
* config/vms/vms-crtlmap.map: Completed using nm on
c and math system libraries.
* config/vms/make-crtlmap.awk: Handle any number of flags.
Steven Bosscher [Thu, 29 Mar 2012 21:00:23 +0000 (21:00 +0000)]
re PR java/52730 (Java front end emits assembly)
PR java/52730
* class.c (emit_register_classes_in_jcr_section): New function.
(emit_Jv_RegisterClass_calls): New function, split out from ...
(emit_register_classes): ... here. Reorganize. Do not call
output_constant.
Richard Guenther [Thu, 29 Mar 2012 08:27:04 +0000 (08:27 +0000)]
re PR middle-end/50708 (Infinite loop between rshift_double and lshift_double if count is LONG_MIN)
2012-03-29 Richard Guenther <rguenther@suse.de>
PR middle-end/50708
* double-int.h (rshift_double): Remove.
* double-int.c (lshift_double): Use absu_hwi to make count
positive.
(rshift_double): Make static, take unsigned count argument,
remove handling of negative count argument.
(double_int_rshift): Dispatch to lshift_double.
* config/i386/i386.c (isa_opts): Remove -m64.
(ix86_target_string): Properly handle -m32/-m64/-mx32.
(ix86_option_override_internal): Properly
set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
handle -m32, -m64 and -mx32.
* config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
with OPTION_ABI_X32. Moved after TARGET_LP64.
(TARGET_LP64): Changed to OPTION_ABI_64.
* config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
(mx32): Replace ISA_X32 with ABI_X32.
Paul Thomas [Wed, 28 Mar 2012 20:45:16 +0000 (20:45 +0000)]
re PR fortran/52652 (call to gfc_match_asynchronous for allocatable at parse.c line 164)
2012-03-28 Paul Thomas <pault@gcc.gnu.org>
Tobias Burnus <burnus@gcc.gnu.org>
PR fortran/52652
* match.c (gfc_match_allocate, gfc_match_deallocate): Change
"not.. or" to "neither.. nor".
* parse.c (decode_specification_statement): Correct error in
chpice of matching function for "allocatable".
2012-03-28 Paul Thomas <pault@gcc.gnu.org>
Tobias Burnus <burnus@gcc.gnu.org>
Jakub Jelinek [Wed, 28 Mar 2012 14:47:45 +0000 (16:47 +0200)]
re PR middle-end/52691 (va_start to builtin_next_arg optimization lost)
PR middle-end/52691
* tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
__builtin_va_start to __builtin_next_arg if the latter is
builtin_decl_explicit_p rather than when it is not.
Richard Guenther [Wed, 28 Mar 2012 12:14:26 +0000 (12:14 +0000)]
loop-init.c (loop_optimizer_init): If loops are preserved perform incremental initialization of required loop features.
2012-03-28 Richard Guenther <rguenther@suse.de>
* loop-init.c (loop_optimizer_init): If loops are preserved
perform incremental initialization of required loop features.
(loop_optimizer_finalize): If loops are to be preserved only
clean up optional loop features.
(rtl_loop_done): Forcefully free loops here.
* cgraph.c (cgraph_release_function_body): Forcefully free
loops.
* cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
to existing loops.
(construct_init_block): Likewise.
(construct_exit_block): Likewise.
(gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
the CFG after expanding.
* cfgloop.c (verify_loop_structure): Calculate or verify
dominators. If we needed to calculate them, free them afterwards.
* tree-pass.h (PROP_loops): New define.
* tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
* basic-block.h (CLEANUP_CFG_CHANGED): New.
* cfgcleanup.c (merge_blocks_move): Protect loop latches.
(cleanup_cfg): If we did something and have loops around, fix
them up.
* cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
with CLEANUP_CFG_CHANGED.
* cfghooks.c (merge_blocks): If we merge a loop header into
its predecessor, update the loop structure.
(duplicate_block): If we copy a loop latch, adjust loop state
to note we may have multiple latches.
(delete_basic_block): Mark loops for fixup if we remove a loop.
* cfganal.c (forwarder_block_p): Protect loop latches, headers
and preheaders.
* cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
(cfg_layout_can_merge_blocks_p): Likewise.
* cprop.c (bypass_block): If we create a loop with multiple
entries, mark it for removal.
* except.c (emit_to_new_bb_before): Add the new basic-block
to existing loops.
* tree-eh.c (lower_resx): Likewise.
* omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
(expand_omp_taskreg): Likewise.
* tree-inline.c (initialize_cfun): Likewise.
* tree-mudflap.c (add_bb_to_loop): Prototype.
(mf_build_check_statement_for): Properly add new basic-blocks
to existing loops.
* tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
if we remove a loop.
(thread_through_loop_header): Likewise.
* trans-mem.c (tm_log_emit_save_or_restores): Properly add
new basic-blocks to existing loops.
(expand_transaction): Likewise.
* Makefile.in (except.o): Add $(CFGLOOP_H).
(expr.o): Likewise.
(cgraph.o): Likewise.
(cprop.o): Likewise.
(cfgexpand.o): Likewise.
(cfganal.o): Likewise.
(trans-mem.o): Likewise.
(tree-eh.o): Likewise.
* doc/invoke.texi (AVR Options): Adjust
documentation of -mtiny-stack.
* config/avr/genmultilib.awk: Remove code to generate multilib.h.
(BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
* config/avr/t-avr: Remove generation of multilib.h.
* config/avr/t-multilib: Regenerate.
* config/avr/multilib.h: Remove.
* config/avr/avr.opt (-msp8): New option.
(avr_sp8): New variable.
* config/avr/driver-avr.c (avr_device_to_sp8): New function.
* config/avr/avr.h (AVR_HAVE_SPH): New define.
(AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
(avr_device_to_sp8): New prototype.
(EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
(DRIVER_SELF_SPECS): New define.
* config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
__AVR_SP8__, __AVR_HAVE_SPH__.
* config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
AVR_HAVE_8BIT_SP to decide if SP_H is present.
(avr_file_start): Ditto.
libgcc/
PR target/52737
* config/avr/lib1funcs.S: Use __AVR_HAVE_SPH__ for SP_H checks
instead of __AVR_HAVE_8BIT_SP__.
Uros Bizjak [Tue, 27 Mar 2012 15:36:34 +0000 (17:36 +0200)]
re PR target/52698 (-maddress-mode=long doesn't work)
PR target/52698
* config/i386/i386-protos.h (ix86_legitimize_reload_address):
New prototype.
* config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
* config/i386/i386.c: Include reload.h.
(ix86_legitimize_reload_address): New function.
testsuite/ChangeLog:
PR target/52698
* gcc.target/i386/pr52698.c: New test.
H.J. Lu [Tue, 27 Mar 2012 15:28:41 +0000 (15:28 +0000)]
Remove MaskNeeded
2012-03-27 H.J. Lu <hongjiu.lu@intel.com>
* opth-gen.awk: Allocated a bit for Mask and InverseMask if it
hasn't been allocated. Define a target macro for Mask and
InverseMask if it hasn't been defined. Remove MaskExists
handling.