Nick Clifton [Sat, 6 Aug 2005 13:50:42 +0000 (13:50 +0000)]
config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100): New define.
(ASM_OUTPUT_LABELREF): Delete - it is no longer needed.
config/stormy16/stormy16.c (xstormy16_below100_symbol): Check symbol flags
instead of symbol name mangling.
(xstormy16_asm_output_aligned_common): Likewise. Also simplify code since
the bss100_section cass is the only case where the below100 code will be
triggered.
(xstormy16_encode_section_info): Encode below100 attribute using the
SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling the name.
(xstormy16_strip_name_encoding): Delete - this function is no longer needed.
(TARGET_STRIP_NAME_ENCODING): Undefine.
config/stormy16/stormy16-protos.h: Delete prototype for
xstormy16_strip_name_encoding.
Joseph Myers [Sat, 6 Aug 2005 11:31:49 +0000 (12:31 +0100)]
re PR c/23113 (The -Wunused (value computed is not used) option missed an important case)
PR c/23113
* stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start.
Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR
specially. Check for side effects only for COND_EXPR.
* c-typeck.c (c_finish_stmt_expr): Mark statement expression
return with TREE_NO_WARNING.
re PR rtl-optimization/23233 (Loop optimisation ICE for subreg addresses)
PR rtl-optimization/23233
* loop.c (combine_movables): Require the modes to be the same.
(move_movables): Remove handling of cases where the replacement
had a different mode to the original.
Jakub Jelinek [Sat, 6 Aug 2005 10:00:53 +0000 (12:00 +0200)]
re PR fortran/18833 (ICE 'missing spec' on integer/char equivalence)
PR fortran/18833
PR fortran/20850
* primary.c (match_varspec): If equiv_flag, don't look at sym's
attributes, call gfc_match_array_ref up to twice and don't do any
substring or component processing.
* resolve.c (resolve_equivalence): Transform REF_ARRAY into
REF_SUBSTRING or nothing if needed. Check that substrings
don't have zero length.
* gfortran.dg/equiv_1.f90: New test.
* gfortran.dg/equiv_2.f90: New test.
* gfortran.fortran-torture/execute/equiv_2.f90: New test.
* gfortran.fortran-torture/execute/equiv_3.f90: New test.
* gfortran.fortran-torture/execute/equiv_4.f90: New test.
re PR middle-end/21529 (code size regression (+40%) with -Os from GCC-3.4.3 to 4.1)
PR 21529
* params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
* params.h (SRA_MAX_STRUCTURE_COUNT): New.
* tree-sra.c (decide_block_copy): Use it. Disable element copy
if we'd have to instantiate too many members.
Andrew Pinski [Thu, 4 Aug 2005 18:55:15 +0000 (18:55 +0000)]
tree.h (fold_build1): Change to macro and call fold_build1_stat.
2005-08-04 Andrew Pinski <pinskia@physics.uc.edu>
* tree.h (fold_build1): Change to macro and call fold_build1_stat.
(fold_build2): Likewise.
(fold_build3): Likewise.
(fold_build1_stat): New function prototype.
(fold_build2_stat): Likewise.
(fold_build3_stat): Likewise.
* fold-const.c (fold_build1): Rename to ..
(fold_build1_stat): this. Add MEM_STAT_DECL. Pass the mem stats
through to build1_stat.
(fold_build2): Rename to ..
(fold_build2_stat): this. Add MEM_STAT_DECL. Pass the mem stats
through to build2_stat.
(fold_build3): Rename to ..
(fold_build3_stat): this. Add MEM_STAT_DECL. Pass the mem stats
through to build3_stat.
* trans-expr.c (gfc_conv_expr, gfc_conv_expr_type): Update comments.
(gfc_conv_expr_lhs): Fix assertion.
(gfc_conv_expr_val): Merge post block. Set se.expr to new value.
* trans.h: Move and update comments.
configure.ac: Don't use GCC_NO_EXECUTABLES or clear GLIBCXX_IS_NATIVE on Darwin crosses.
* configure.ac: Don't use GCC_NO_EXECUTABLES or clear
GLIBCXX_IS_NATIVE on Darwin crosses.
* acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Don't skip configuring
the testsuite just because there's no symbol versioning.
* configure: Regenerate.
Jan Hubicka [Wed, 3 Aug 2005 22:10:54 +0000 (00:10 +0200)]
profile.c (branch_prob): Split edges with goto locus on them to get proper line counts.
* profile.c (branch_prob): Split edges with goto locus on them
to get proper line counts.
* tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any.
J"orn Rennecke [Wed, 3 Aug 2005 18:46:34 +0000 (18:46 +0000)]
reload.c (find_reloads_subreg_address): Pass down TYPE unchanged.
gcc:
* reload.c (find_reloads_subreg_address): Pass down TYPE
unchanged. Change all callers except find_reloads_toplev.
gcc/testsuite:
* gcc.c-torture/execute/pr23135.c: New test.
Jan Hubicka [Wed, 3 Aug 2005 13:34:49 +0000 (15:34 +0200)]
cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
* cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag.
* cfgloopmanip.c (duplicate_loop_to_header_edge): Special case
profile updating for complette unrolling.
* loop-unroll.c (peel_loop_completely): Use it.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
(tree_unroll_loops_completely): Disable code growing unrolling of cold
loops.
* update-conroll.c: New testcase.
* update-conroll-2.c: New testcase.
Gerald Pfeifer [Wed, 3 Aug 2005 09:29:16 +0000 (09:29 +0000)]
install.texi (Specific): Adjust link to openavr.org.
* doc/install.texi (Specific): Adjust link to openavr.org.
(Specific): Remove broken reference to GCC 2.8.1 for OS/2.
(Binaries): Adjust HP-UX Porting Center link.
(Binaries): Adjust Free Software Foundation ordering link.
(Binaries): Remove broken link to Sinix/Reliant Unix binaries.
re PR tree-optimization/23133 (recip does not factor division by function parameter)
2005-08-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/23133
* tree-ssa-math-opts.c (execute_cse_reciprocals): Walk
current functions parameter decls to find defs to cse
reciprocals of.
re PR tree-optimization/23109 (compiler generates wrong code leading to spurious division by zero with -funsafe-math-optimizations (instead of -ftrapping-math))
2005-08-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/23109
* tree-ssa-math-opts.c (execute_cse_reciprocals_1):
If trapping math is in effect, use post-dominator information
to check if we'd in any case reach a trapping point before
doing the reciprocal insertion.
(execute_cse_reciprocals): Compute post-dominators, if necessary.
* tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV
expressions are invariant only if trapping math is not in effect.
Razya Ladelsky [Mon, 1 Aug 2005 07:26:30 +0000 (07:26 +0000)]
ipa-cp.c: New file.
* ipa-cp.c: New file. Contains IPCP specific functionality.
* ipa-prop.h: New file. Contains structures/definitions that can be
used by several interprocedural data flow optimizations (and also IPCP).
* ipa-prop.c: New file.
Steven Bosscher [Sun, 31 Jul 2005 21:45:44 +0000 (21:45 +0000)]
re PR target/23095 (ICE in regstack compensate_edge)
PR target/23095
* common.opt (flag_gcse_after_reload): Don't initialize to 2.
(flag_rerun_cse_after_loop): Initialize this to 2 instead.
* postreload-gcse.c (hash_scan_set): Do not consider stack regs.
testsuite/
PR target/23095
* gfortran.dg/pr23095.f: New test.
Steven Bosscher [Sun, 31 Jul 2005 21:41:39 +0000 (21:41 +0000)]
trans-decl.c (gfc_build_builtin_function_decls): Give the internal malloc functions the 'malloc' attribute.
* trans-decl.c (gfc_build_builtin_function_decls): Give the internal
malloc functions the 'malloc' attribute. Give runtime_error the
'noreturn' attribute.
Jan Hubicka [Sun, 31 Jul 2005 09:12:34 +0000 (11:12 +0200)]
output.h (enum section_category): Export from varasm.c
* output.h (enum section_category): Export from varasm.c
(categorize_decl_for_section): Likewise.
* varasm.c (enum section_category): Kill.
(categorize_decl_for_section): Make global.
* i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common):
Declare.
* i386.c (ix86_section_threshold): New static variable.
(ix86_in_large_data_p, ix86_encode_section_info,
x86_64_elf_unique_section,
x86_64_elf_select_section): New functions.
(TARGET_ENCODE_SECTION_INFO): Define
(override_options): Enable medium model for PIC.
(ix86_expand_prologue): Expand gen_set_got_rex64.
(legitimate_constant_p): Handle new UNSPECs.
(legitimate_pic_address_disp_p): Likewise.
(legitimize_pic_address): Lower MEDIUM model addressing.
* i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC.
(enum cmodel): Add MEDIUM_PIC.
(SYMBOL_REF_FAR_ADDR_P): New macro.
(SYMBOL_FLAG_FAR_ADDR): New flag.
* i386.md (movdi): Support medium model.
(set_got_rex64): New pattern.
* i386.opt (mlarge-data-threshold): New flag.
* predicates.md (zext_operand/sext_operand): Deal with medium model.
* x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss.
(ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION,
TARGET_ASM_UNIQUE_SECTION): New.