* config/arm/elf.h (TARGET_ASM_DESTRUCTOR): Define.
* config/arm/arm.c (arm_elf_asm_cdtor): New function.
(arm_elf_asm_constructor): Use it.
(arm_elf_asm_destructor): New function.
From-SVN: r123103
2007-03-19 Paolo Bonzini <bonzini@gnu.org>
PR rtl-optimization/30907
* fwprop.c (forward_propagate_into): Never propagate inside a loop.
(fwprop_init): Always call loop_optimizer_initialize.
(fwprop_done): Always call loop_optimizer_finalize.
(fwprop): We always have loop info now.
(gate_fwprop_addr): Remove.
(pass_fwprop_addr): Use gate_fwprop as gate.
PR rtl-optimization/30841
* df-problems.c (df_ru_local_compute, df_rd_local_compute,
df_chain_alloc): Call df_reorganize_refs unconditionally.
* df-scan.c (df_rescan_blocks, df_reorganize_refs): Change
refs_organized to refs_organized_size.
(df_ref_create_structure): Use refs_organized_size instead of
bitmap_size if refs had been organized, and keep refs_organized_size
up-to-date.
* df.h (struct df_ref_info): Change refs_organized to
refs_organized_size.
(DF_DEFS_SIZE, DF_USES_SIZE): Use refs_organized_size instead of
bitmap_size.
From-SVN: r123084
* except.c (output_function_exception_table): Do not reference the
EH personality routine for functions that do not require an
exception table.
From-SVN: r123082
* builtins.c (expand_builtin_sync_operation,
expand_builtin_compare_and_swap,
expand_builtin_lock_test_and_set): Care for extending CONST_INTs
correctly.
* config/i386/sync.md (sync_double_compare_and_swapdi_pic,
sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint
for operand 3.
From-SVN: r123064
2007-03-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
Richard Guenther <rguenther@suse.de>
PR tree-optimization/31254
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
Use handled_component_p () where appropriate. Continue
propagating into the rhs if we propagated into an INDIRECT_REF
on the lhs.
* gcc.dg/torture/pr31254.c: New testcase.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r123060
2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md: Only non-functional changes. Renamed
FPR mode macro to BFP all over the file.
From-SVN: r123057
2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.md (UNSPEC_COPYSIGN): New constant.
(op_type attribute): RRF instruction type added.
(fT0): New mode attribute.
("*movdi_64dfp", "*movdf_64dfp", "*neg<mode>2_nocc", "*abs<mode>2_nocc",
"*negabs<mode>2_nocc", "copysign<mode>3"): Insn definitions added.
* config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Due to a new instruction
no secondary memory is needed when moving DFmode values between GPRs
and FPRs.
From-SVN: r123056
2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.opt ("mhard-float", "msoft-float"): Bit value
inverted and documentation adjusted.
("mhard-dfp", "msoft-dfp"): New options.
* config/s390/s390.c (s390_handle_arch_option): New architecture
switch: z9-ec.
(override_options): Sanity checks for the new options added.
* config.gcc: New architecture switch: z9-ec.
* config/s390/s390.h (processor_flags): PF_DFP added.
(TARGET_CPU_DFP, TARGET_DFP): Macro definitions added.
(TARGET_DEFAULT): Due to the s390.opt changes hard float is enabled
when the bit is NOT set so remove it from the defaults.
From-SVN: r123055
2007-03-19 Andreas Krebbel <krebbel1@de.ibm.com>
* genemit.c (main): Print include statement for dfp.h.
* dfp.h (decimal_real_arithmetic): Hide prototype if tree_code enum
is not available.
From-SVN: r123054
PR fortran/31203
* trans-expr.c (gfc_trans_init_string_length): Length should
never be negative.
(gfc_conv_function_call): Likewise.
* gfortran.dg/string_length_1.f90: New test.
From-SVN: r123051
* pa.md: Add fpstore_load and store_fpload instruction types. Provide
reservation, bypass and anti-bypass descriptions for these instructions.
Update move patterns.
* pa.c (hppa_fpstore_bypass_p): Check for both TYPE_FPSTORE_LOAD and
TYPE_FPSTORE.
From-SVN: r123041
2007-03-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/31052
* io/file_position (st_rewind): Fix comments. Remove use of
test_endfile. Don't seek if already at 0 position. Use new is_special
function to set endfile state.
* io/open.c (test_endfile): Delete this function.
* io/io.h: Delete prototype for test_endfile. Add prototype
for is_special.
* io/unix.c (is_special): New function. Fix whitespace.
* io/transfer.c (next_record_r): Remove use of test_endfile.
From-SVN: r123038
2007-03-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30531
PR fortran/31086
* symbo.c : Add gfc_derived_types.
(gfc_free_dt_list): Free derived type list gfc_derived_types.
(gfc_free_namespace): Remove call to gfc_free_dt_list.
(gfc_symbol_done_2): Call gfc_free_dt_list.
* gfortran.h : Declare gfc_derived_types to be external. Remove
derived types field from gfc_namespace.
* resolve.c (resolve_fl_derived): Refer to gfc_derived types
rather than namespace derived_types.
(resolve_fntype): Remove special treatment for module
derived type functions.
* trans-types.c (gfc_get_derived_type): Remove search for like
derived types. Finish by copying back end declaration to like
derived types in the derived type list gfc_derived_types.
2007-03-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/30531
* gfortran.dg/used_types_14.f90: New test.
PR fortran/31086
* gfortran.dg/used_types_15.f90: New test.
From-SVN: r123037