- 31 Mar, 2009 20 commits
-
-
PR c++/38030, 38850, 39070 * pt.c (type_dependent_expression_p_push): New fn. (tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the substitution makes the call non-dependent. Preserve koenig_p. * parser.c (cp_parser_postfix_expression): Only do arg-dep lookup for non-dependent calls. * semantics.c (finish_call_expr): Revert earlier changes. * cp-tree.h: Revert change to finish_call_expr prototype. From-SVN: r145360
Jason Merrill committed -
* loop-iv.c (replace_single_def_regs, replace_in_expr): New static functions. (simplify_using_assignment, simplify_using_initial_values): Call replace_in_expr to make replacements. Call replace_single_def_regs once on the initial version of the expression. From-SVN: r145357
Bernd Schmidt committed -
* loop-iv.c (simple_rhs_p): Allow more kinds of expressions. From-SVN: r145355
Bernd Schmidt committed -
* loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers changed. Use this when trying to improve the upper bound. Generate the comparison by using simplify_gen_relational. From-SVN: r145354
Bernd Schmidt committed -
simplify-rtx.c (simplify_relational_operation_1): Simplify (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C)... * simplify-rtx.c (simplify_relational_operation_1): Simplify (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with GEU/LTU reversed. From-SVN: r145353
Bernd Schmidt committed -
loop-iv.c (simplify_using_condition): A condition of the form (EQ REG CONST) can be used to simply make a substitution. * loop-iv.c (simplify_using_condition): A condition of the form (EQ REG CONST) can be used to simply make a substitution. (simplify_using_initial_values): Keep track of conditions we have seen and keep using them to simplify new expressions, while applying the same substitutions to them as to the expression. From-SVN: r145352
Bernd Schmidt committed -
* loop-iv.c (suitable_set_for_replacement): Renamed from simplify_using_assignment; changed to return bool and to accept new args DEST and SRC. Return true iff we find a source/destination pair that can be used to make a replacement, and fill SRC and DEST if so. Remove arg ALTERED. Don't deal with altered regs here. All callers changed. (simplify_using_initial_values): Deal with altered regs here and track more precisely the effect they have on the validity of our expression. From-SVN: r145351
Bernd Schmidt committed -
From-SVN: r145347
Ramana Radhakrishnan committed -
2009-03-31 Richard Guenther <rguenther@suse.de> PR middle-end/31029 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for equality comparisons. Fold C - X CMP X if C % 2 == 1. * gcc.dg/fold-compare-4.c: New testcase. * gcc.dg/fold-compare-5.c: Likewise. From-SVN: r145345
Richard Guenther committed -
2009-03-31 Richard Guenther <rguenther@suse.de> * tree.h (div_if_zero_remainder): Declare. * fold-const.c (div_if_zero_remainder): Export. * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_array_index): Handle constant array index addition outside of the variable index. * gcc.dg/tree-ssa/forwprop-12.c: New testcase. From-SVN: r145343
Richard Guenther committed -
PR target/39592 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed define_splits, floatunssi<mode>2): Require x87 conversions from DImode to be permitted. testsuite: * gcc.target/i386/pr39592-1.c: New test. From-SVN: r145342
Joseph Myers committed -
PR preprocessor/15638 gcc: * c-common.c (c_cpp_error): Handle CPP_DL_FATAL. gcc/fortran: * cpp.c (cb_cpp_error): Handle CPP_DL_FATAL. gcc/testsuite: * gcc.dg/cpp/missing-header-1.c: New test. * gcc.dg/cpp/include2.c: Only test #include <>. Expect "compilation terminated" message. * gcc.dg/cpp/include2a.c: New test. Copy of include2.c but only test #include "". * gcc.dg/pch/counter-2.c, gcc.dg/pch/valid-1.c, gcc.dg/pch/valid-2.c, gcc.dg/pch/warn-1.c: Expect "compilation terminated" message. libcpp: * files.c (_cpp_find_file): Call open_file_failed after diagnosing invalid PCH. (open_file_failed): Make error for missing file fatal. * include/cpplib.h (CPP_DL_FATAL): Define. From-SVN: r145341
Joseph Myers committed -
2009-03-31 Richard Guenther <rguenther@suse.de> PR middle-end/23401 PR middle-end/27810 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove. (struct tree_decl_with_vis): Remove gimple_formal_temp member. * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to a separate statement. * gimplify.c (pop_gimplify_context): Remove formal temp handling. (lookup_tmp_var): Likewise. (is_gimple_formal_tmp_or_call_rhs): Remove. (is_gimple_reg_or_call_rhs): Rename to ... (is_gimple_reg_rhs_or_call): ... this. (is_gimple_mem_or_call_rhs): Rename to ... (is_gimple_mem_rhs_or_call): ... this. (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set DECL_GIMPLE_REG_P only if is_formal is true. (gimplify_compound_lval): Use is_gimple_reg. Remove workaround for non-proper post-modify expression gimplification. (gimplify_self_mod_expr): For post-modify expressions gimplify the lvalue to a minimal lvalue. (rhs_predicate_for): Remove formal temp case. (gimplify_modify_expr_rhs): Likewise. (gimplify_addr_expr): Use is_gimple_reg. (gimplify_expr): Remove formal temp cases. (gimple_regimplify_operands): Likewise. * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR and FILTER_EXPR like constants. * gimple.c (walk_gimple_op): Fix val_only initialization, use is_gimple_reg. (is_gimple_formal_tmp_rhs): Remove. (is_gimple_reg_rhs): Remove special casing. (is_gimple_mem_rhs): Fix. (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier. (is_gimple_formal_tmp_var): Remove. (is_gimple_formal_tmp_reg): Likewise. (is_gimple_min_lval): Allow invariant component ref parts. * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var, is_gimple_formal_tmp_reg): Remove declarations. * tree-cfg.c (verify_expr): Verify that variables with address taken do not have DECL_GIMPLE_REG_P set. * tree-mudflap.c (mf_build_check_statement_for): Use force_gimple_operand instead of gimplify_expr. java/ * java-gimplify.c (java_gimplify_expr): Do not manually gimplify the first operand of binary and comaprison expressions. * gcc.dg/tree-ssa/pr23401.c: New testcase. * gcc.dg/tree-ssa/pr27810.c: Likewise. From-SVN: r145338
Richard Guenther committed -
From-SVN: r145333
Ayal Zaks committed -
PR target/31635 * config/rs6000/rs6000.c (rs6000_handle_option): Handle OPT_mvrsave. From-SVN: r145332
Ben Elliston committed -
2008-12-10 Steven G. Kargl <kargls@comcast.net> * gfortran.dg/alloc_alloc_expr_1.f90: Adjust for new error message. * gfortran.dg/allocate_alloc_opt_1.f90: New test. * gfortran.dg/allocate_alloc_opt_2.f90: Ditto. * gfortran.dg/allocate_alloc_opt_3.f90: Ditto. * gfortran.dg/deallocate_alloc_opt_1.f90: Ditto. * gfortran.dg/deallocate_alloc_opt_2.f90: Ditto. * gfortran.dg/deallocate_alloc_opt_3.f90: Ditto. 2008-12-10 Steven G. Kargl <kargls@comcast.net> * trans-stmt.c(gfc_trans_allocate): Add translation of ERRMSG. (gfc_trans_deallocate): Add translation of ERRMSG. Remove stale comments. Minor whitespace cleanup. * resolve.c(is_scalar_expr_ptr): Whitespace cleanup. (resolve_deallocate_expr (gfc_expr *e): Update error message. (resolve_allocate_expr): Remove dead code. Update error message. Move error checking to ... (resolve_allocate_deallocate): ... here. Add additional error checking for STAT, ERRMSG, and allocate-objects. * match.c(gfc_match_allocate,gfc_match_deallocate): Parse ERRMSG. Check for redundant uses of STAT and ERRMSG. Reword error message and add checking for pointer, allocatable, and proc_pointer attributes. From-SVN: r145331
Steven G. Kargl committed -
* configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check. * configure: Regenerate. * config.in: Regenerate. * config/rs6000/rs6000.opt (mtls-markers): Add. * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define. * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter. (tls_ld_aix, tls_ld_sysv): Likewise. (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns. (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise. From-SVN: r145330
Alan Modra committed -
PR libmudflap/38462 * testsuite/libmudflap.c/fail27-frag.c: Match `mudflap dead object', not `mudflap object'. From-SVN: r145328
Ben Elliston committed -
* config/spu/spu.c (spu_expand_prologue): Delete redundant code. From-SVN: r145327
Alan Modra committed -
From-SVN: r145326
GCC Administrator committed
-
- 30 Mar, 2009 20 commits
-
-
* tree-eh.c (make_eh_edges): Set probability 100% to first edge out of RESX. (tree_remove_unreachable_handlers): Cleanup EH predecestor detection and label handling. From-SVN: r145322
Jan Hubicka committed -
* include/backward/hashtable.h (clear): Return quickly if the table is empty. From-SVN: r145318
Ian Lance Taylor committed -
2009-03-30 Sergiy Vyshnevetskiy <serg@vostok.net> PR preprocessor/31932: * internal.h: Don't mention HAVE_ICONV_H. * configure, config.in: Rebuild. * configure.ac: Don't check for iconv.h. From-SVN: r145316
Sergiy Vyshnevetskiy committed -
re PR fortran/22571 (Reject derived types for dummy arguments declared in the subroutine unless they are SEQUENCE) 2009-03-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/22571 PR fortran/26227 PR fortran/24886 * symbol.c : Add gfc_global_ns_list. * decl.c (add_global_entry): Set the namespace ('ns') field. * gfortran.h : Add the resolved field to gfc_namespace. Add the namespace ('ns') field to gfc_gsymbol. Add flag_whole_file to gfc_option_t. Add the prototype for gfc_free_dt_list. * lang.opt : Add the whole-file option. * invoke.texi : Document the whole-file option. * resolve.c (resolve_global_procedure): If the fwhole-file option is set, reorder gsymbols to ensure that translation is in the right order. Resolve the gsymbol's namespace if that has not occurred and then check interfaces. (resolve_function): Move call to resolve_global_procedure. (resolve_call): The same. (resolve_codes): Store the current labels_obstack. (gfc_resolve) : Return if the namespace is already resolved. trans-decl.c (gfc_get_extern_function_decl): If the whole_file option is selected, use the backend_decl of a gsymbol, if it is available. parse.c (add_global_procedure, add_global_program): If the flag whole-file is set, add the namespace to the gsymbol. (gfc_parse_file): On -fwhole-file, put procedure namespaces on the global namespace list. Rearrange to do resolution of all the procedures in a file, followed by their translation. * options.c (gfc_init_options): Add -fwhole-file. (gfc_handle_option): The same. 2009-03-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/22571 * gfortran.dg/whole_file_1.f90: New test. PR fortran/26227 * gfortran.dg/whole_file_2.f90: New test. * gfortran.dg/whole_file_3.f90: New test. PR fortran/24886 * gfortran.dg/whole_file_4.f90: New test. From-SVN: r145314
Paul Thomas committed -
2009-03-30 Vladimir Makarov <vmakarov@redhat.com> * ira-int.h (ira_allocno): Rename left_conflicts_num to left_conflicts_size. (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to ALLOCNO_LEFT_CONFLICTS_SIZE. * ira-color.c (allocno_spill_priority, push_allocno_to_stack, remove_allocno_from_bucket_and_push, allocno_spill_priority_compare, push_allocnos_to_stack, setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE instead of ALLOCNO_LEFT_CONFLICTS_NUM. (setup_allocno_left_conflicts_num): Ditto. Rename to setup_allocno_left_conflicts_size. (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE instead of ALLOCNO_LEFT_CONFLICTS_NUM and setup_allocno_left_conflicts_size instead of setup_allocno_left_conflicts_num. * ira-build.c (ira_create_allocno): Use ALLOCNO_LEFT_CONFLICTS_SIZE instead of ALLOCNO_LEFT_CONFLICTS_NUM. From-SVN: r145312
Vladimir Makarov committed -
2009-03-30 Vladimir Makarov <vmakarov@redhat.com> * reload.c (push_reload, find_dummy_reload): Use df_get_live_out instead of DF_LR_OUT. * ira-lives.c (process_bb_node_lives): Ditto. * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in} instead of DF_LR_{OUT,IN}. * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto. * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto. From-SVN: r145309
Vladimir Makarov committed -
f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL family of intrinsics instead of BUILT_IN_INF family. * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_HUGE_VAL family of intrinsics instead of BUILT_IN_INF family. * trans-intrinsics.c (gfc_conv_intrinsic_nearest): Use BUILT_IN_HUGE_VAL instead of BUILT_IN_INF. From-SVN: r145307
Ulrich Weigand committed -
From-SVN: r145304
Jan Hubicka committed -
PR middle-end/38237 * tree.h (tree_find_value): New declaration. * tree.c (tree_find_value): New function. * varasm.c (assemble_external): Avoid duplicate entries on lists. From-SVN: r145303
Steve Ellcey committed -
From-SVN: r145301
Joseph Myers committed -
PR preprocessor/39512: * line-map.c (linemap_init): Initialize 'reallocator' field. From-SVN: r145300
Tom Tromey committed -
PR target/39558 * macro.c (cpp_get_token): If macro_to_expand returns NULL and used some tokens, add CPP_PADDING before next token. * gcc.target/powerpc/altivec-29.c: New test. From-SVN: r145297
Jakub Jelinek committed -
* trans-types.c (gfc_sym_type, gfc_return_by_reference): For sym->attr.result check sym->ns->proc_name->attr.is_bind_c. * gfortran.dg/bind_c_usage_19.f90: New test. From-SVN: r145294
Jakub Jelinek committed -
PR debug/39563 * c-decl.c (struct c_binding): Add locus field. (bind): Add locus argument, set locus field from it. (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL, add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS. (push_file_scope, pushtag, pushdecl, pushdecl_top_level, implicitly_declare, undeclared_variable, lookup_label, declare_label, c_make_fname_decl, c_builtin_function, c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust bind callers. From-SVN: r145293
Jakub Jelinek committed -
2008-03-30 H.J. Lu <hongjiu.lu@intel.com> PR target/38781 * config/i386/i386.c (classify_argument): Check total size of structure. From-SVN: r145292
H.J. Lu committed -
2009-03-30 Martin Jambor <mjambor@suse.cz> * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST, IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN, IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH respectively. * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if seen_variable_array_ref while also traversing a union. * tree-inline.c (optimize_inline_calls): Do not call cgraph_node_remove_callees. * cgraphbuild.c (remove_cgraph_callee_edges): New function. (pass_remove_cgraph_callee_edges): New variable. * passes.c (init_optimization_passes): Add pass_remove_cgraph_callee_edges after early inlining and before all late intraprocedural passes. * omp-low.c (expand_omp_taskreg): Always set current_function_decl. From-SVN: r145291
Martin Jambor committed -
2009-03-30 Dominique d'Humieres <dominiq@lps.ens.fr> PR bootstrap/39583 * objc-act.c (in_late_binary_op): Define for Objective-C++. From-SVN: r145290
Dominique d'Humieres committed -
From-SVN: r145289
Eric Botcazou committed -
2009-03-30 Paolo Bonzini <bonzini@gnu.org> * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis): Fix typos in names. From-SVN: r145288
Paolo Bonzini committed -
2009-03-30 Paolo Bonzini <bonzini@gnu.org> * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead of TREE_CONSTANT_OVERFLOW. From-SVN: r145287
Paolo Bonzini committed
-