aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-01-08Better handling of COND_EXPRs in rhsRoberto Costa5-8/+113
From-SVN: r120581
2007-01-08tree-ssa-forwprop.c (forward_propagate_into_cond, [...]): Release defs of ↵Jan Hubicka2-1/+11
propagated statement. * tree-ssa-forwprop.c (forward_propagate_into_cond, tree_ssa_forward_propagate_single_use_va): Release defs of propagated statement. From-SVN: r120580
2007-01-08re PR tree-optimization/23603 (VRP does not say range for a in a = b == c; ↵Richard Guenther5-4/+70
is [0,1]) 2007-01-08 Richard Guenther <rguenther@suse.de> PR tree-optimization/23603 * tree-vrp.c (set_value_range_to_truthvalue): New function. (extract_range_from_binary): Fall back to truthvalue instead of varying for TRUTH_*_EXPR. (extract_range_from_comparison): Fall back to truthvalue instead of varying. (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF if all visited PHI values were constant. * gcc.dg/tree-ssa/vrp31.c: New testcase. * gcc.dg/tree-ssa/vrp32.c: Likewise. From-SVN: r120578
2007-01-08cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.Jan Hubicka2-26/+47
* cgraphunit.c (cgraph_process_new_functions): Reset reachable flag. (cgraph_analyze_function): break out from ... (cgraph_finalize_compilation_unit): ... here. (cgraph_expand_function): Remove forgoten commented out line. (cgraph_optimize): Analyze functions. From-SVN: r120577
2007-01-08tree-pas.h (TODO_remove_function): New flag.Jan Hubicka8-142/+202
* tree-pas.h (TODO_remove_function): New flag. (TODO_update*): Renumber. (pass_ipa_increase_alignment, pass_ipa_function_and_variable_visibility): New passes. * cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c (cgraph_function_and_variable_visibility): Move to ipa.c (cgraph_optimize): Don't call cgraph_function_and_variable_visibility, cgraph_increase_alignment. * ipa-inline.c (cgraph_decide_inlining): Don't push timevar. (cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before calling tree-inline. (cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes. (pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions * tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c (gate_increase_alignment): New function. (pass_ipa_increase_alignment): New pass. * ipa.c: Inline tree-pass.h and timevar.h (function_and_variable_visibility): Move here from cgraphunit.c * tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions. * passes.c (init_optimization_passes): Add the two new passes. (execute_todo): Handle cgraph_remove_functions. From-SVN: r120576
2007-01-08* config/frv/predicates.md (reg_or_0_operand): Accept CONST_DOUBLEs.Nick Clifton2-1/+6
From-SVN: r120574
2007-01-08rtems.h, t-rtems: New.Ralf Corsepius4-0/+44
* config/bfin/rtems.h, config/bfin/t-rtems: New. * config.gcc: Add bfin*-rtems*. From-SVN: r120573
2007-01-08c.opt: Add -flax-vector-conversions.Mark Shinwell22-66/+150
gcc/ * c.opt: Add -flax-vector-conversions. * c-typeck.c (convert_for_assignment): Pass flag to vector_types_convertible_p to allow emission of note. (digest_init): Likewise. (comptypes_internal): Use vector_types_convertible_p. * c-opts.c: Handle -flax-vector-conversions. * c-common.c (flag_lax_vector_conversions): New. (vector_types_convertible_p): Unless -flax-vector conversions has been passed, disallow conversions between vectors with differing numbers of subparts and/or element types. If such a conversion is disallowed, possibly emit a note on the first occasion only to inform the user of -flax-vector-conversions. The new last argument specifies this. * c-common.h (flag_lax_vector_conversions): New. (vector_types_convertible_p): Add extra argument. * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use char_type_node for V*QI type vectors. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Update to satisfy new typechecking rules. * config/rs6000/altivec.h (vec_cmple): Use vec_cmpge. * doc/invoke.texi (C Dialect Options): Document -flax-vector-conversions. gcc/cp/ * call.c (standard_conversion): Pass flag to vector_types_convertible_p to disallow emission of note. * typeck.c (convert_for_assignment): Pass flag to vector_types_convertible_p to allow emission of note. (ptr_reasonably_similar): Pass flag to vector_types_convertible_p to disallow emission of note. gcc/testsuite/ * gcc.target/i386/20020531-1.c: Use "char" not "unsigned char" in __v8qi typedef. * gcc.target/powerpc/altivec-vec-merge.c (foo): Add casts. * gcc.dg/simd-1.c: Update dg-error directives to reflect new compiler behaviour. * gcc.dg/simd-5.c: Likewise. * gcc.dg/simd-6.c: Likewise. * g++.dg/conversion/simd1.C: Likewise. * g++.dg/conversion/simd3.C: Likewise. * g++.dg/ext/attribute-test-2.C (data): Add "vs" member. (main): Use it. From-SVN: r120572
2007-01-08re PR tree-optimization/29877 (out of SSA (TER) extends variable life of ↵Mark Shinwell4-11/+39
variable beyond original declared) PR tree-optimization/29877 gcc/ * tree-ssa-ter.c (is_replaceable_p): Deem assignments with a register variable on the RHS to not be replaceable. gcc/testsuite/ * gcc.dg/pr16194.c: Skip test entirely if we don't know the name of a hard register for the target concerned. Adjust dg-error directives to cope with new behaviour of TER. From-SVN: r120571
2007-01-08t-score-elf (MULTILIB_OPTIONS): Change.Chen Liqin16-396/+1493
* config/score/t-score-elf (MULTILIB_OPTIONS): Change. * config/score/predicates.md (const_uimm5, sr0_operand, const_simm12, const_simm15, const_pow2, const_npow2): Added. * config/score/misc.md (insv, extv, extzv, movmemsi, move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug. * config/score/score.c (score_address_cost, score_select_cc_mode): Added. Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define. Update score_rtx_costs for MACRO TARGET_RTX_COSTS. Update score_print_operand. * config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added. Adjust register allocate order and update some macro define. * config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store, mdx_block_move_straight, mdx_block_move_loop_head, mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop, mdx_block_move): Added. (mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi, mdp_limm): Updated and fix some bug and typo. * config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated. (movsf, movdf, doloop_end): Added. From-SVN: r120570
2007-01-08gfortran.texi: Fix typos.Kazu Hirata2-2/+6
From-SVN: r120567
2007-01-08arm.c, [...]: Fix comment typos.Kazu Hirata6-17/+23
* config/arm/arm.c, config/arm/arm.h, config/arm/arm.md, config/arm/thumb2.md: Fix comment typos. * doc/extend.texi: Fix a typo. From-SVN: r120566
2007-01-08Daily bump.GCC Administrator1-1/+1
From-SVN: r120564
2007-01-07configure.ac: Check for __stack_chk_fail for darwin.Eric Christopher3-5232/+5750
2007-01-07 Eric Christopher <echristo@apple.com> * configure.ac: Check for __stack_chk_fail for darwin. * configure: Regenerate. From-SVN: r120559
2007-01-07re PR c++/28986 (Failure to diagnose overflow in constant expression)Manuel López-Ibáñez13-1/+1347
2007-01-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c++/28986 cp/ * typeck.c (build_binary_op): Call overflow_warning if TREE_OVERFLOW_P is true for the result and not for any of the operands. testsuite/ * g++.dg/conversion/nullptr1.C: Added overflow warning. * g++.dg/warn/overflow-warn-1.C: New. * g++.dg/warn/overflow-warn-3.C: New. * g++.dg/warn/overflow-warn-4.C: New. * g++.dg/warn/overflow-warn-5.C: New. * g++.dg/warn/overflow-warn-6.C: New. * g++.dg/warn/Woverflow-1.C: New. * g++.dg/warn/Woverflow-2.C: New. * g++.dg/warn/Woverflow-3.C: New. * g++.dg/warn/multiple-overflow-warn-2.C: New. From-SVN: r120558
2007-01-07decl.c, [...]: Update Copyright dates.Steven G. Kargl8-717/+645
2007-01-07 Steven G. Kargl <kargl@gcc.gnu.org> * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c, convert.c: Update Copyright dates. Fix whitespace. From-SVN: r120552
2007-01-07data.c (gfc_assign_data_value): Fix whitespace.Bernhard Fischer2-1/+5
2007-01-07 Bernhard Fischer <aldot@gcc.gnu.org> * data.c (gfc_assign_data_value): Fix whitespace. From-SVN: r120551
2007-01-07trans-array.c (gfc_trans_create_temp_array, [...]): Commentary typo fix.Bernhard Fischer2-2/+7
fortran/ChangeLog 2007-01-07 Bernhard Fischer <aldot@gcc.gnu.org> * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size): Commentary typo fix. From-SVN: r120550
2007-01-07re PR fortran/27698 (subroutine _foo draws "unclassifiable statement" ↵Bernhard Fischer6-5/+26
instead of a useful error.) fortran/ChangeLog 2007-01-03 Bernhard Fischer <aldot@gcc.gnu.org> PR fortran/27698 * match.c (gfc_match_name): Print diagnostics for invalid character in names. testsuite/ChangeLog 2007-01-03 Bernhard Fischer <aldot@gcc.gnu.org> PR fortran/27698 * gfortran.dg/invalid_name.f90: New test. * gfortran.dg/do_iterator.f90: Adjust pattern for expected error. * gfortran.dg/gomp/pr29759.f90: Ditto. From-SVN: r120549
2007-01-07tree-vrp.c (extract_range_from_assert): CSE calls to compare_values where ↵Richard Guenther2-6/+13
possible. 2007-01-07 Richard Guenther <rguenther@suse.de> * tree-vrp.c (extract_range_from_assert): CSE calls to compare_values where possible. (extract_range_from_unary_expr): Likewise. From-SVN: r120547
2007-01-07avr-protos.h (call_insn_operand): Delete prototype.Anatoly Sokolov5-32/+40
* config/avr/avr-protos.h (call_insn_operand): Delete prototype. * config/avr/avr.c (call_insn_operand): Delete function. * config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP instead of register number. Use predicates. * config/avr/predicates.md (const0_operand, reg_or_0_operand, call_insn_operand): Add. From-SVN: r120546
2007-01-07Fix whitespace in a table within a comment.Steven G. Kargl2-6/+10
Fix whitespace in a table within a comment. This is wonderful example of why tabs are evil. From-SVN: r120545
2007-01-06Corrected changelog entry dates from 2006 to 2007.Brooks Moses1-2/+2
From-SVN: r120543
2007-01-07[multiple changes]Steven G. Kargl6-470/+477
2007-01-06 Steven G. Kargl <kargl@gcc.gnu.org> * array.c, bbt.c, check.c: Update copyright years. Whitespace. 2006-01-06 Steven G. Kargl <kargl@gcc.gnu.org> * gfortran.dg/present_1.f90: Update error message. From-SVN: r120542
2007-01-07Daily bump.GCC Administrator1-1/+1
From-SVN: r120540
2007-01-062007-01-06 Paolo Carlini <pcarlini@suse.de>Paolo Carlini1-1/+1
* Fix typo in ChangeLog. From-SVN: r120533
2007-01-06re PR libstdc++/30365 (No possibility to disable large file support (LFS))Paolo Carlini4-5866/+5952
2007-01-06 Paolo Carlini <pcarlini@suse.de> PR libstdc++/30365 * crossconfig.m4 (case *-linux*): Run crossconfig.m4. * configure: Regenerate. From-SVN: r120531
2007-01-06arith.c: Update copyright years.Steven G. Kargl2-165/+154
* arith.c: Update copyright years. Whitespace. From-SVN: r120530
2007-01-06Set SKIP_TEST flag if we are not to run a test.Bruce Korb2-3/+9
Co-Authored-By: Daniel Franke <franke.daniel@gmail.com> From-SVN: r120529
2007-01-06Use fnmatch for name matching.Bruce Korb6-339/+275
Co-Authored-By: Daniel Franke <franke.daniel@gmail.com> From-SVN: r120528
2007-01-06tree-pass.h (pass_build_cgraph_edges): Declare.Jan Hubicka6-200/+265
* tree-pass.h (pass_build_cgraph_edges): Declare. * cgraphunit.c (record_refernece): Move to cgraphbuild.c (visited_nodes): Remove. (cgraph_create_edges): Move to cgraphbuild.c; rename to build_cgrpah_edges; make visited_nodes local. (cgraph_process_new_functions): DO not call initialize_inline_failed. (record_references_in_initializer): Move to cgraphbuild.c (initialize_inline_failed, rebuild_cgraph_edges, pass_rebuild_cgraph_edges): Move to cgraphbuild.c. (verify_cgraph_node): Make visited_nodes local. (cgraph_analyze_function): Do not call cgraph_create_edges and initialize_inline_failed. (cgraph_expand_function): Do not call cgraph_lower_function; assert that function is already lowered. * Makefile.in (cgraphbuild.o): New. * passes.c (init_optimization_passes): Add pass_build_cgraph_edges at the end of lowering passes. From-SVN: r120527
2007-01-06ifcvt.c (cond_move_convert_if_block): New function, code factored out from...Steven Bosscher2-78/+83
* ifcvt.c (cond_move_convert_if_block): New function, code factored out from... (cond_move_process_if_block): ...here. Call the new function on the THEN and ELSE blocks. (merge_if_block): Do not copy global_live_at_end, merge_blocks already takes care of this. From-SVN: r120524
2007-01-06random (gamma_distribution): Fix typo in formula.Matthias Klose3-2/+7
2007-01-06 Matthias Klose <doko@debian.org> * include/tr1/random (gamma_distribution): Fix typo in formula. * docs/doxygen/user.cfg.in: Use package amsmath. From-SVN: r120522
2007-01-06re PR c++/19439 (Duplicate destructor accepted)Lee Millward5-82/+94
PR c++/19439 * class.c (add_method): Don't wait until template instantiation time to complain about duplicate methods. * g++.dg/template/duplicate1.C: New test * g++.dg/template/memfriend6.C: Adjust error markers. From-SVN: r120520
2007-01-05re PR bootstrap/30385 (IMM ERROR while building stage2-libiberty)Andrew Pinski2-0/+21
2007-01-05 Andrew Pinski <Andrew_Pinski@playstation.sony.com> PR tree-opt/30385 * gcc.dg/torture/inline-1.c: New test. From-SVN: r120519
2007-01-06Daily bump.GCC Administrator1-1/+1
From-SVN: r120517
2007-01-06re PR libfortran/30162 (Document when sequential I/O with named pipes works)Jerry DeLisle2-11/+39
2007-01-05 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/30162 * io/unix.c (fd_flush): Don't seek if file is not seekable, defined as s->file_length == -1. (fd_alloc_w_at): Do not adjust file_length if file is not seekable. (fd_seek): If not seekable, just return success. (fd_truncate): If not seekable, no need to truncate. Return failure if seek fails and the stream is not a pipe. (fd_to_stream): Make test for non-seekable file more robust. From-SVN: r120512
2007-01-05re PR c/19978 (overflow in expression of constants should not cause multiple ↵Manuel López-Ibáñez11-32/+128
warnings) 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR c/19978 * tree.h (TREE_OVERFLOW_P): New. * c-typeck.c (parser_build_unary_op): Warn only if result overflowed and operands did not. (parser_build_binary_op): Likewise. (convert_for_assignment): Remove redundant overflow_warning. * c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW. cp/ * semantics.c (finish_unary_op_expr): Warn only if result overflowed and operands did not. testsuite/ * gcc.dg/multiple-overflow-warn-1.c: New. * gcc.dg/multiple-overflow-warn-2.c: New. * gcc.dg/overflow-warn-6.c: New. * g++.dg/warn/multiple-overflow-warn-1.C: New. From-SVN: r120505
2007-01-05c-typeck.c (store_init_value): Split over two lines to follow the GNU coding ↵Manuel López-Ibáñez2-1/+7
style. 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * c-typeck.c (store_init_value): Split over two lines to follow the GNU coding style. From-SVN: r120504
2007-01-05trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize array ↵Roger Sayle5-24/+206
assignments split out from gfc_trans_assignment. * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize array assignments split out from gfc_trans_assignment. (gfc_trans_array_copy): New function to implement array to array copies via calls to __builtin_memcpy. (copyable_array_p): New helper function to identify an array of simple/POD types, that may be copied/assigned using memcpy. (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple whole array assignments considered suitable by copyable_array_p. Invoke gfc_trans_assignment_1 to perform the fallback scalarization. * gfortran.dg/array_memcpy_1.f90: New test case. * gfortran.dg/array_memcpy_2.f90: Likewise. From-SVN: r120503
2007-01-05c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to ↵Benjamin Kosnik3-3/+9
__GXX_EXPERIMENTAL_CXX0X__. 2007-01-05 Benjamin Kosnik <bkoz@redhat.com> * c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to __GXX_EXPERIMENTAL_CXX0X__. * doc/cpp.texi: Same. From-SVN: r120502
2007-01-05trans-array.c (gfc_trans_array_constructor_value): Make the static const ↵Roger Sayle3-0/+8
"data" array as TREE_READONLY. * trans-array.c (gfc_trans_array_constructor_value): Make the static const "data" array as TREE_READONLY. * trans-stmt.c (gfc_trans_character_select): Likewise. From-SVN: r120501
2007-01-05trans-array.c (gfc_conv_loop_setup): Test whether the loop stride is one...Roger Sayle2-2/+10
* trans-array.c (gfc_conv_loop_setup): Test whether the loop stride is one, to avoid fold_build2 introducing a useless NON_LVALUE_EXPR node. From-SVN: r120500
2007-01-05re PR c++/27826 (ICE in copy_to_mode_reg)Richard Guenther4-4/+28
2007-01-05 Richard Guenther <rguenther@suse.de> PR middle-end/27826 * tree.c (get_narrower): Do not construct COMPONENT_REFs with mismatched types. Instead explicitly build a conversion NOP_EXPR. * g++.dg/opt/pr27826.C: New testcase. From-SVN: r120498
2007-01-05symbol.c (check_conflict): Fix error message.Tobias Burnus2-1/+5
2007-01-05 Tobias Burnus <burnus@net-b.de> * symbol.c (check_conflict): Fix error message. From-SVN: r120496
2007-01-05Makefile.tpl (all-target): Correct @if conditional for target modules.Daniel Jacobowitz5-123/+139
* Makefile.tpl (all-target): Correct @if conditional for target modules. * configure.in: Omit libiberty if building only target libgcc. * configure, Makefile.in: Regenerated. From-SVN: r120494
2007-01-05c-common.c (decl_with_nonnull_addr_p): New function.Ian Lance Taylor11-22/+293
./: * c-common.c (decl_with_nonnull_addr_p): New function. (c_common_truthvalue_conversion): Call it. * c-typeck.c (build_binary_op): Likewise. * c-common.h (decl_with_nonnull_addr_p): Declare. cp/: * typeck.c (build_binary_op): Warn about comparing a non-weak address to NULL. testsuite/: * gcc.dg/Walways-true-1.c: New test. * gcc.dg/Walways-true-2.c: New test. * g++.dg/warn/Walways-true-1.C: New test. * g++.dg/warn/Walways-true-2.C: New test. From-SVN: r120493
2007-01-05* Makefile.in (install): Handle multilibs.Daniel Jacobowitz2-0/+6
From-SVN: r120492
2007-01-05re PR c/30360 (Complex divide bug)Jakub Jelinek4-1/+37
PR c/30360 * libgcc2.c (__divdc3): Compare c and d against 0.0 instead of denom against 0.0. * gcc.dg/pr30360.c: New test. From-SVN: r120486
2007-01-05re PR fortran/23232 ([4.1 only] DATA implied DO variables)Paul Thomas11-25/+193
2007-01-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/23232 * decl.c (gfc_in_match_data, gfc_set_in_match_data): New functions to signal that a DATA statement is being matched. (gfc_match_data): Call gfc_set_in_match_data on entry and on exit. * gfortran.h : Add prototypes for above. * expr.c (check_init_expr): Avoid check on parameter or variable if gfc_in_match_data is true. (gfc_match_init_expr): Do not call error on non-reduction of expression if gfc_in_match_data is true. PR fortran/27996 PR fortran/27998 * decl.c (gfc_set_constant_character_len): Add boolean arg to flag array constructor resolution. Warn if string is being truncated. Standard dependent error if string is padded. Set new arg to false for all three calls to gfc_set_constant_character_len. * match.h : Add boolean arg to prototype for gfc_set_constant_character_len. * gfortran.h : Add warn_character_truncation to gfc_options. * options.c (set_Wall): Set warn_character_truncation if -Wall is set. * resolve.c (resolve_code): Warn if rhs string in character assignment has to be truncated. * array.c (gfc_resolve_character_array_constructor): Set new argument to true for call to gfc_set_constant_character_len. 2007-01-05 Paul Thomas <pault@gcc.gnu.org> PR fortran/23232 * gfortran.dg/data_implied_do_1.f90: New test. PR fortran/27996 PR fortran/27998 * gfortran.dg/char_length_1.f90: New test. From-SVN: r120485