Jerry DeLisle [Fri, 9 Mar 2007 21:51:39 +0000 (21:51 +0000)]
re PR libfortran/31099 (Runtime error on legal code using RECL)
2007-03-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/31099
* io/open.c (new_unit): Initialize bytes_left and recl_subrecord.
* io/transfer.c (next_record_w): Set bytes left to record length for
sequential unformatted I/O.
(next_record_r): Ditto.
(read_block_direct): Fix test for exceeding bytes_left.
Aldy Hernandez [Fri, 9 Mar 2007 20:05:08 +0000 (20:05 +0000)]
re PR tree-optimization/30375 (tree-ssa-dse incorrectly removes struct initialization)
PR tree-optimization/30375
* tree-ssa-dse.c (dse_possible_dead_store_p): Do not eliminate if
LHS of statements is not the same.
* testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: New.
Chao-ying Fu [Fri, 9 Mar 2007 19:23:22 +0000 (19:23 +0000)]
mips32-dspr2-type.c: New test.
* gcc.target/mips/mips32-dspr2-type.c: New test.
* gcc.target/mips/mips32-dspr2.c: New test.
* gcc.target/mips/dspr2-MULT.c: New test.
* gcc.target/mips/dspr2-MULTU.c: New test.
* gcc.target/mips/mips32-dsp-run.c: New test to check execution.
* gcc.target/mips/mips32-dsp.c: Change v4i8 typedef to use signed char.
Adjust some formats.
Chao-ying Fu [Fri, 9 Mar 2007 19:19:44 +0000 (19:19 +0000)]
extend.texi (MIPS DSP Built-in Functions): Document the DSP REV 2.
* doc/extend.texi (MIPS DSP Built-in Functions): Document the DSP
REV 2.
* doc/invoke.texi (-mdspr2): Document new option.
* config/mips/mips.md (UNSPEC_ABSQ_S_QB .. UNSPEC_DPSQX_SA_W_PH):
New unspec for DSP REV 2.
(<u>mulsidi3_32bit_internal): Check if !TARGET_DSPR2, because
these instructions are extended in DSP REV 2.
(mips-dspr2.md): Include.
* config/mips/mips.opt (mdspr2): New option.
* config/mips/mips.c (mips_function_type): Add MIPS_V4QI_FTYPE_V4QI,
MIPS_SI_FTYPE_SI_SI_SI, MIPS_DI_FTYPE_DI_USI_USI, MIPS_DI_FTYPE_SI_SI,
MIPS_DI_FTYPE_USI_USI, MIPS_V2HI_FTYPE_SI_SI_SI.
(override_options): Check TARGET_DSPR2 to enable MASK_DSP.
(CODE_FOR_mips_mul_ph): Define it to CODE_FOR_mulv2hi3.
(dsp_bdesc): Add DSP REV 2 builtins. Remove 32-bit only DSP builtins.
(dsp_32only_bdesc): New description table for 32-bit only DSP REV 1
and 2 builtins.
(bdesc_map): Add one field of unsupported_target_flags.
(bdesc_arrays): Update entries to have extra fields. Add
dsp_32only_bdesc.
(mips_init_builtins): Initialize new function types.
Check unsupported_target_fileds to filter out builtins.
* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_dspr2 if
TARGET_DSPR2.
(ASM_SPEC): Pass mdspr2 to the assembler.
* config/mips/mips-dspr2.md: New file.
Roger Sayle [Fri, 9 Mar 2007 17:09:54 +0000 (17:09 +0000)]
cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling fold with the result of buildN.
* cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
fold with the result of buildN.
* decl.c (gnat_to_gnu_entity): Likewise.
* trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
* utils.c (finish_record_type, merge_sizes, max_size, convert):
Likewise.
* utils2.c (gnat_truthvalue_conversion, compare_arrays,
nonbinary_modular_operation, build_binary_op, build_unary_op,
build_cond_expr): Likewise.
* utils.c (convert): Use fold_build1 when casting values to void.
* utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
fold_convert instead of convert when appropriate.
* tree-ssa-structalias.c (variable_info): Remove
finished_solution.
(new_var_info): Ditto.
(shared_bitmap_info_t): New structure.
(shared_bitmap_table): New variable.
(shared_bitmap_hash): New function.
(shared_bitmap_eq): Ditto
(shared_bitmap_lookup): Ditto.
(shared_bitmap_add): Ditto.
(merge_smts_into): Change to take bitmap directly.
(find_what_p_points_to): Rewrite to use shared bitmap hashtable.
(init_alias_vars): Init shared bitmap hashtable.
(delete_points_to_sets): Delete shared bitmap hashtable.
* tree-ssa-operands.c (add_virtual_operand): Partially revert the
is_aliased removal as a change that was still necessary was
deleted.
testsuite:
* gcc.dg/builtins-55.c: Test *lceil* and *lfloor*.
* gcc.dg/torture/builtin-attr-1.c: Likewise.
* gcc.dg/torture/builtin-convert-1.c: Likewise. Also test *lrint* and *lround*.
* gcc.dg/torture/builtin-convert-2.c: Test ceil->lceil and floor->lfloor.
* gcc.dg/torture/builtin-convert-3.c: Test *lceil* and *lfloor*.
* gcc.dg/torture/builtin-integral-1.c: Likewise.
* gcc.dg/torture/builtin-minmax-1.c: Likewise. Also test *lrint*
and *lround*. Correct macro names.
* gcc.dg/torture/builtin-nonneg-1.c: Test *lceil* and *lfloor*.
* gcc.dg/torture/builtin-rounding-1.c: Likewise.
re PR objc/31013 (objc PCH is broken on powerpc-darwin again)
PR 31013
* gccspec.c (lang_specific_driver): Do nothing when NEXT_OBJC_RUNTIME
is declared.
* config/darwin.h (REAL_LIBGCC_SPEC): When -fgnu-runtime is
passed, use shared libgcc.
./: * tree-vrp.c: Include "intl.h".
(usable_range_p): New static function.
(compare_values_warnv): Don't test TYPE_OVERFLOW_UNDEFINED for
overflowed values, juts set *strict_overflow_p.
(compare_values): Only return -2 if one of the operands is not a
constant.
(compare_ranges): Call usable_range_p.
(compare_range_with_value): Likewise.
(vrp_evaluate_conditional_warnv): Rename from
vrp_evaluate_conditional. Make static. Change all callers.
(vrp_evaluate_conditional): New function.
(simplify_div_or_mod_using_ranges): Issue warning about reliance
on signed overflow.
(simplify_abs_using_ranges): Likewise.
(simplify_stmt_for_jump_threading): Add within_stmt parameter.
* tree-ssa-dom.c (simplify_stmt_for_jump_threading): Add
within_stmt parameter.
* tree-ssa-propagate.c (fold_predicate_in): Update call to
vrp_evaluate_conditional.
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts_at_dest): Change
simplify parameter to take a second tree parameter.
(simplify_control_stmt_condition): Likewise.
(thread_across_edge): Likewise.
* tree-flow.h (vrp_evaluate_conditional): Update declaration.
(thread_across_edge): Likewise.
* gcc/Makefile.in (tree-vrp.o): Depend upon intl.h.
testsuite/:
* gcc.dg/no-strict-overflow-5.c: New test.
* gcc.dg/no-strict-overflow-6.c: New test.
* gcc.dg/Wstrict-overflow-11.c: New test.
* gcc.dg/Wstrict-overflow-12.c: New test.
* gcc.dg/Wstrict-overflow-13.c: New test.
* gcc.dg/Wstrict-overflow-14.c: New test.
* gcc.dg/Wstrict-overflow-15.c: New test.
Uros Bizjak [Thu, 8 Mar 2007 17:21:40 +0000 (18:21 +0100)]
i386.h (TARGET_SAHF): New define.
* config/i386/i386.h (TARGET_SAHF): New define.
* config/i386/i386.c (ix86_tune_features) [X86_TUNE_USE_SAHF]:
Also enable for m_K8, m_AMDFAM10 and m_CORE2.
(x86_sahf): New global variable.
(override_options): Add PTA_NO_SAHF to pta_flags enum. Recode
pta_flags masks using shifts. Add PTA_NO_SAHF to x86_64 and
nocona processor flags. Set x86_sahf when PTA_NO_SAHF is not set
in processor flags. Do not unconditionally disable TARGET_USE_SAHF
for 64-bit.
(ix86_fp_comparison_sahf_cost): Return high value for !TARGET_SAHF.
(ix86_expand_fp_compare): Check for TARGET_CMOVE or TARGET_SAHF
when expanding fcomi/sahf based tests.
(ix86_emit_fp_unordered_jump): Check for TARGET_SAHF when
expanding sahf based alternative. Emit sahf based sequence when
optimizing for code size.
* config/i386/i386.md (x86_sahf_1): Do not disable for
TARGET_64BIT, enable for TARGET_SAHF.
memmove-lib.c: Include lib/bzero.c and lib/bfill.c on VxWorks targets.
gcc/testsuite/
* gcc.c-torture/execute/builtins/memmove-lib.c: Include lib/bzero.c
and lib/bfill.c on VxWorks targets.
* gcc.c-torture/execute/builtins/memmove-2-lib.c: Likewise.
* gcc.c-torture/execute/builtins/strchr-lib.c: Include lib/bzero.c,
lib/bfill.c and lib/memmove.c on VxWorks targets.
* gcc.c-torture/execute/builtins/strrchr-lib.c: Likewise.
* gcc.c-torture/execute/builtins/memops-asm-lib.c: Include lib/bfill.c
on VxWorks targets.
* gcc.c-torture/execute/builtins/lib/bzero.c: New file.
* gcc.c-torture/execute/builtins/lib/bfill.c: Likewise.
Tobias Burnus [Thu, 8 Mar 2007 13:11:54 +0000 (14:11 +0100)]
[multiple changes]
2007-07-08 Tobias Burnus <burnus@net-b.de>
* module.c (gfc_match_use): Support renaming of operators
in USE statements.
* gfortran.texi (Fortran 2003 Status): Document support of
renaming of operators.
2007-03-08 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/use_5.f90: New test.
* gfortran.dg/use_6.f90: Ditto.
* gfortran.dg/use_7.f90: Ditto.
Tobias Burnus [Thu, 8 Mar 2007 12:30:58 +0000 (13:30 +0100)]
re PR fortran/30973 ([4.1, 4.2 only] undetected name conflict: variables may be named like modules)
2007-03-08 Tobias Burnus <burnus@net-b.de>
PR fortran/30973
* module.c (read_module): Always import module name as symbol.
(gfc_match_use): Disallow module name in the only clause of
a use statement.
Alexandre Oliva [Thu, 8 Mar 2007 06:48:21 +0000 (06:48 +0000)]
c-decl.c (grokdeclarator): Disable warnings for anonymous bitfields.
gcc/ChangeLog:
* c-decl.c (grokdeclarator): Disable warnings for anonymous
bitfields.
* tree-sra.c (instantiate_element): Propagate disabled warnings
from the element itself to the created variable.
gcc/cp/ChangeLog:
* decl.c (grokdeclarator): Disable warnings for anonymous
bitfields.
gcc/
* config/vxworks.h (vxworks_override_options): Declare.
(VXWORKS_OVERRIDE_OPTIONS): Use it.
* config/vxworks.c: Include target.h and toplev.h.
(vxworks_override_options): New function.
* config/t-vxworks (vxworks.o): Depend on $(TARGET_H) and toplev.h.
Andreas Krebbel [Wed, 7 Mar 2007 09:11:12 +0000 (09:11 +0000)]
s390.c (override_options): Don't emit an error when -mstack-size is used without providing -mstack-guard.
2007-03-07 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (override_options): Don't emit an error when
-mstack-size is used without providing -mstack-guard.
(s390_emit_prologue): Choose stack_guard value automatically if not
provided via command line.
* doc/invoke.texi: Adjust description of -mstack-guard and -mstack-size.
i386.c (output_set_got): Add a GOT initialization sequence for VxWorks PIC.
gcc/
* config/i386/i386.c (output_set_got): Add a GOT initialization
sequence for VxWorks PIC.
(legitimate_pic_address_disp_p): Allow UNSPEC_GOT wrappers
around labels as well as symbols. Use gotoff_operand instead
of local_symbolic_operand.
(legitimize_pic_address): Use gotoff_operand instead of
local_symbolic_operand. Use @GOT accesses for labels as
well as symbols.
(ix86_output_addr_diff_elt): Use PC-relative rather than
GP-relative offsets for VxWorks PIC.
(ix86_expand_move): Pass NULL_RTX to legitimize_pic_address unless
no_new_pseudos. Check whether the returned register is op0.
* config/i386/i386.md (tablejump): Use PC-relative rather than
GP-relative offsets for VxWorks PIC.
* config/i386/predicates.md (gotoff_operand): New predicate.
vxworks.h (VXWORKS_GOTT_BASE, [...]): Undefine before defining.
gcc/
* config/vxworks.h (VXWORKS_GOTT_BASE, VXWORKS_GOTT_INDEX): Undefine
before defining.
* config/vxworks-dummy.h: New file.
* config/i386/i386.h: Include it.
Alexandre Oliva [Wed, 7 Mar 2007 07:18:41 +0000 (07:18 +0000)]
dwarf2out.c (is_inlined_entry_point): New
* dwarf2out.c (is_inlined_entry_point): New
(add_high_low_attributes): Emit DW_AT_entry_pc along with
DW_AT_ranges if the first subblock is the entry point.
Tom Tromey [Tue, 6 Mar 2007 18:50:14 +0000 (18:50 +0000)]
Makefile.in: Rebuilt.
libjava
* Makefile.in: Rebuilt.
* Makefile.am (bin_PROGRAMS): Added gcjh.
(gcjh_SOURCES, gcjh_LDFLAGS, gcjh_LINK, gcjh_LDADD,
gcjh_DEPENDENCIES): New variables.
libjava/classpath
* tools/gnu/classpath/tools/javah/Main.java (getName): New
method.
(getParser): Now protected. Use getName. Add '-v' alias for
--verbose.
(postParse): New method.
(run): Now protected. Use postParse.
* tools/gnu/classpath/tools/javah/GcjhMain.java: New file.
* tools/Makefile.in: Rebuilt.
* tools/Makefile.am: Remove vm-tools.lst before creating it.
Jan Hubicka [Tue, 6 Mar 2007 16:38:43 +0000 (17:38 +0100)]
reg-stack.c (reg_to_stack): Large models don't allow NAN to be loaded for constant large models.
* reg-stack.c (reg_to_stack): Large models don't allow NAN to be
loaded for constant large models. Non-large 64bit PIC can do.
* i386.h (CASE_VECTOR_MODE): Large PIC cases are 64bit.
* cmodel.h: Add LARGE PIC.
* i386.md (UNSPEC_PLTOFF): New.
(UNSPEC_SET_RIP, UNSPEC_SET_GOT_OFFSET): New; renumber other unspecs as
needed.
(*call_1_rex64): Disable for large models.
(*call_1_rex64_large): New.
(*call_value_1_rex64): Disable for large models.
(*call_value_1_rex64_large): New.
(set_rip_rex4): New.
(set_got_offset_rex64): New.
* predicates.md (constant_call_address_operand): For large model
constant calls are not possible.
* i386-protos.h (construct_plt_address): Declare.
* i386.c (override_options): Accept large models.
(ix86_expand_prologue): Expand large PIC GOT pointer load.
(legitimate_constant_p): Add new UNSPECs.
(legitimate_pic_operand_p): Likewise.
(legitimate_pic_address_disp_p): Disallow local symbols for large PICs.
(legitimize_pic_address): Do easy RIP relative way for TLS only for
non-large model.
(output_pic_addr_const): Add PLTOFF.
(ix86_output_addr_diff_elt): Output 64bit tables when needed.
(ix86_expand_move): Legitimize pic address when in PIC mode.
(construct_plt_address): New function.
(ix86_expand_call): Offload the address to register and use GOT pointer
for large model.
* invoke.texi (mcmodel=large): Update documentation.
Joseph Myers [Tue, 6 Mar 2007 15:50:28 +0000 (15:50 +0000)]
re PR bootstrap/31020 (cannot write in </test/gnu/gcc/objdir/prev-gcc/../gcc/./include>)
fixincludes:
* mkheaders.in: Fix headers for each multilib required.
gcc:
PR bootstrap/31020
* configure.ac (CROSS_SYSTEM_HEADER_DIR, build_system_header_dir):
Define using $${sysroot_headers_suffix}.
* configure: Regenerate.
* cppdefault.c (cpp_include_defaults): Make FIXED_INCLUDE_DIR a
multilib-suffixed directory if SYSROOT_HEADERS_SUFFIX_SPEC
defined.
* doc/invoke.texi (-print-sysroot-headers-suffix): Document.
* gcc.c (print_sysroot_headers_suffix): New.
(option_map): Include --print-sysroot-headers-suffix.
(display_help): Mention -print-sysroot-headers-suffix.
(process_command): Handle -print-sysroot-headers-suffix.
(do_spec_1): Append multilib directory to include-fixed path if
sysroot suffixes in use.
(main): Handle -print-sysroot-headers-suffix.
* Makefile.in (start.encap): Don't depend on xlimits.h
(xlimits.h): Remove.
(stmp-int-hdrs): Don't depend on xlimits.h. Inline generation of
limits.h for each multilib in fixinc_list.
(fixinc_list, s-fixinc_list): New.
(stmp-fixinc): Depend on fixinc_list. If not copying headers,
generate them for each multilib in fixinc_list.
(stmp-fixproto): Use include-fixed. Run fixproto for each
multilib in fixinc_list.
(mostlyclean): Don't remove xlimits.h.
(clean): Remove include-fixed.
(real-install-headers-tar, real-install-headers-cpio,
real-install-headers-cp): Don't copy include, only include-fixed.
(install-mkheaders): Depend on fixinc_list. Don't depend on
xlimits.h. Save limits.h files for each multilib in fixinc_list.
Always save mkinstalldirs. Preserve ${sysroot_headers_suffix} in
SYSTEM_HEADER_DIR setting in mkheaders.conf.
m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO of pic_offset_table_rtx if reload_completed.
gcc/
* config/m68k/m68k.h (PIC_OFFSET_TABLE_REGNUM): Use the REGNO
of pic_offset_table_rtx if reload_completed.
(CONDITIONAL_REGISTER_USAGE): Use PIC_REG instead of
PIC_OFFSET_TABLE_REGNUM.
* config/m68k/m68k.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Always
return true.
(m68k_save_reg): Use PIC_REG instead of PIC_OFFSET_TABLE_REGNO.
(m68k_output_mi_thunk): Rewrite to use RTL. Honor vcall_offset.
gcc/
* config/m68k/m68k-protos.h (output_sibcall): Declare.
(mips_expand_epilogue): Add a bool parameter.
(m68k_legitimize_sibcall_address): Declare.
* config/m68k/m68k.c (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
(m68k_expand_epilogue): Add a parameter to select between sibling
and normal epilogues. Only generate a return for the latter.
(m68k_ok_for_sibcall_p): New function.
(m68k_legitimize_sibcall_address, output_sibcall): New functions.
* config/m68k/m68k.md (sibcall, *sibcall): New patterns.
(sibcall_value, *sibcall_value): Likewise.
(*call, *call_value): Require !SIBLING_CALL_P.
(epilogue): Update call to m68k_expand_epilogue.
(sibcall_epilogue): New pattern.
* config/m68k/predicates.md (const_call_operand): Say that this
predicate applies to sibling calls too.
(sibcall_operand): New predicate.
Kazu Hirata [Tue, 6 Mar 2007 08:58:40 +0000 (08:58 +0000)]
200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* config/m68k/m68k-protos.h (m68k_interrupt_function_p): Declare.
(m68k_movem_pattern_p, m68k_output_movem): Likewise.
(m68k_expand_prologue, m68k_expand_epilogue): Likewise.
* config/m68k/m68k.h (EPILOGUE_USES): Define. Treat all registers
as being live on exit from an interrupt function.
(PRINT_OPERAND_PUNCT_VALID_P): Return true for '?'.
* config/m68k/m68k.c (MIN_MOVEM_REGS, MIN_FMOVEM_REGS): New macros.
(m68k_frame): Remove reg_rev_mask and fpu_rev_mask.
(TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Delete.
(m68k_interrupt_function_p): Globalize.
(m68k_compute_frame_layout): Remove reverse mask code.
(m68k_emit_movem, m68k_set_frame_related): New functions.
(m68k_output_function_prologue): Delete in favor of...
(m68k_expand_prologue): ...this new function.
(m68k_output_function_epilogue): Delete in favor of...
(m68k_expand_epilogue): ...this new function.
(m68k_split_offset, m68k_movem_pattern_p, m68k_output_movem): New
functions.
(print_operand): Handle %?.
* config/m68k/m68k.md (UNSPEC_SIN, UNSPEC_COS): Remove excess space.
(UNSPEC_GOT, A1_REG, PIC_REG, FP0_REG): New constants.
(prologue, epilogue): New patterns.
(return): Turn into a define_expand.
(*return): New pattern, derived from old "return" pattern. Use rte
rather than rts for interrupt functions. Only use rtd if the pop
count is nonzero.
(*m68k_store_multiple, *m68k_store_multiple_automod): New patterns.
(*m68k_load_multiple, *m68k_load_multiple_automod): Likewise.
(link, *link, unlink, *unlink, load_got): Likewise.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r122605
Brooks Moses [Tue, 6 Mar 2007 08:00:02 +0000 (08:00 +0000)]
gfortran.texi (Old-style kind specifications): Document special handling of old-style kind specifiers for COMPLEX.
* gfortran.texi (Old-style kind specifications): Document
special handling of old-style kind specifiers for COMPLEX.
* decl.c (gfc_match_old_kind_spec): Document kind/bytesize
assumptions for COMPLEX in comment.