Andrew MacLeod [Fri, 19 Sep 2008 17:37:13 +0000 (17:37 +0000)]
re PR middle-end/37567 (tree SSA to normal checking takes abnormally long time)
PR middle-end/37567
* tree-ssa-ter.c (free_temp_expr_table): Make sure fields are actually
empty before freeing them.
(find_replaceable_exprs): Move asserts to free_temp_expr_table.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r140494
H.J. Lu [Thu, 18 Sep 2008 20:27:36 +0000 (13:27 -0700)]
re PR target/37394 (Segfault in ia64_variable_issue with -O -fschedule-insns2)
gcc/
2008-09-18 H.J. Lu <hongjiu.lu@intel.com>
PR target/37394
* config/ia64/ia64.c (ia64_optimization_options): Move
checking and setting flag_schedule_insns_after_reload and
ia64_flag_schedule_insns2 back to ...
(ia64_override_options): Here.
Paul Thomas [Thu, 18 Sep 2008 20:21:03 +0000 (20:21 +0000)]
re PR fortran/35945 (Complex module-based overloading fails)
2008-09-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/35945
* resolve.c (resolve_fl_variable_derived): Remove derived type
comparison for use associated derived types. Host association
of a derived type will not arise if there is a local derived type
whose use name is the same.
PR fortran/36700
* match.c (gfc_match_call): Use the existing symbol even if
it is a function.
2008-09-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/35945
* gfortran.dg/host_assoc_types_2.f90: New test.
PR fortran/36700
* gfortran.dg/host_assoc_call_2.f90: New test.
Andrew Pinski [Thu, 18 Sep 2008 19:28:48 +0000 (19:28 +0000)]
re PR rtl-optimization/37451 (Extra addition for doloop in some cases)
2008-09-18 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR rtl-opt/37451
* loop-doloop.c (doloop_modify): New argument zero_extend_p and
zero extend count after the correction to it is done.
(doloop_optimize): Update call to doloop_modify, don't zero extend
count before call.
Simon Baldwin [Thu, 18 Sep 2008 15:39:08 +0000 (15:39 +0000)]
cpplib.h (struct cpp_options): Add new boolean flag warn_builtin_macro_redefined.
* include/cpplib.h (struct cpp_options): Add new boolean flag
warn_builtin_macro_redefined.
* init.c (cpp_create_reader): Initialize warn_builtin_macro_redefined.
* (struct builtin_operator): Split out from previous struct builtin,
enhance extra const correctness.
* (struct builtin_macro): Split out from previous struct builtin, add
new always_warn_if_redefined flag, enhance const correctness.
* (mark_named_operators): Use struct builtin_operator.
* (cpp_init_special_builtins): Use struct builtin_macro, add NODE_WARN
to builtins selectively.
* macro.c (warn_of_redefinition): Return false if a builtin macro
is not flagged with NODE_WARN.
Richard Guenther [Thu, 18 Sep 2008 15:27:21 +0000 (15:27 +0000)]
re PR tree-optimization/37258 (ice in simplify_subreg, at simplify-rtx.c:4957)
2008-09-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37258
* tree-ssa-sccvn.c (vn_phi_compute_hash): Include the precision
and signedness for integral types.
(vn_phi_eq): Require compatible types.
Jakub Jelinek [Thu, 18 Sep 2008 15:17:10 +0000 (17:17 +0200)]
re PR debug/34037 (Bounds for VLAs not emitted into debuginfo)
PR debug/34037
* gimplify.c (gimplify_type_sizes): When not optimizing, ensure
TYPE_MIN_VALUE and TYPE_MAX_VALUE is not is not DECL_IGNORED_P
VAR_DECL.
* cfgexpand.c (expand_used_vars): Keep DECL_ARTIFICIAL
!DECL_IGNORED_P vars in local_decls list for instantiate_decls,
ggc_free other TREE_LIST nodes from that chain.
* function.c (instantiate_decls): Instantiate also DECL_RTL
of vars in cfun->local_decls, free that list afterwards.
Nick Clifton [Thu, 18 Sep 2008 12:04:46 +0000 (12:04 +0000)]
frv.h (IRA_COVER_CLASSES): Define.
* config/frv/frv.h (IRA_COVER_CLASSES): Define.
(SECONDARY_INPUT_RELOAD_CLASS): Omit unused argument in call
to frv_secondary_reload_class.
(SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
* config/frv/frv.c (TARGET_SECONDARY_RELOAD): Define.
(frv_secondary_reload_class): Omit unused parameter.
(frv_secondary_reload): New function. Handle the case when
secondary_reload_class() is called before the reload_(in|out)
_optabs have been initialised.
* config/frv/frv-protos.h (frv_secondary_reload_class): Omit
unused parameter.
* config/frv/frv.md: Define an exclusion set between fr550_m0
and fr550_f0.
Daniel Kraft [Thu, 18 Sep 2008 12:02:50 +0000 (14:02 +0200)]
re PR fortran/37507 (Print location in (DE)ALLOCATION errors)
2008-09-18 Daniel Kraft <d@domob.eu>
PR fortran/37507
* trans.h (gfc_trans_runtime_error): New method.
(gfc_trans_runtime_error_vararg): New method.
(gfc_allocate_array_with_status): New argument `expr' for locus/varname.
(gfc_deallocate_array_with_status): Ditto.
* trans-array.h (gfc_array_deallocate): Ditto.
* trans.c (gfc_trans_runtime_error): New method.
(gfc_trans_runtime_error_vararg): New method, moved parts of the code
from gfc_trans_runtime_check here.
(gfc_trans_runtime_error_check): Moved code partly to new method.
(gfc_call_malloc): Fix tab-indentation.
(gfc_allocate_array_with_status): New argument `expr' and call
gfc_trans_runtime_error for error reporting to include locus.
(gfc_deallocate_with_status): Ditto.
* trans-stmt.c (gfc_trans_deallocate): Pass expr as new argument.
* trans-array.c (gfc_array_allocate): Ditto.
(gfc_array_deallocate): New argument `expr', passed on.
(gfc_trans_dealloc_allocated): Pass NULL for expr.
* trans-openmp.c (gfc_omp_clause_default): Ditto.
2008-09-18 Daniel Kraft <d@domob.eu>
PR fortran/37507
* gfortran.dg/allocate_error_1.f90: New test.
* gfortran.dg/deallocate_error_1.f90: New test.
* gfortran.dg/deallocate_error_2.f90: New test.
Richard Guenther [Thu, 18 Sep 2008 11:28:18 +0000 (11:28 +0000)]
re PR middle-end/37456 (ICE: verify_flow_info failed: control flow in the middle of basic block)
2008-09-18 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37456
* tree-ssa-reassoc.c (build_and_add_sum): If the stmt we
want to insert after ends a BB insert on the single fallthru
outgoing edge.
* testsuite/g++.dg/torture/pr37456.C: New testcase.
Adam Nemet [Thu, 18 Sep 2008 05:24:57 +0000 (05:24 +0000)]
haifa-sched.c (dep_cost_1): Recognize the producer even if the consumer is an asm.
* haifa-sched.c (dep_cost_1): Recognize the producer even if the
consumer is an asm. Add comment why this is important.
(choose_ready): Add comment to the "INSN_CODE (insn) >= 0 ||
recog_memoized (insn) < 0" assert. Put ENABLE_CHECKING around
it.
Paul Thomas [Wed, 17 Sep 2008 22:23:51 +0000 (22:23 +0000)]
re PR fortran/37274 ([Regression on 4.3?] error: type name is ambiguous.)
2008-09-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37274
PR fortran/36374
* module.c (check_for_ambiguous): New function to test loaded
symbol for ambiguity with fixup symbol.
(read_module): Call check_for_ambiguous.
(write_symtree): Do not write the symtree for symbols coming
from an interface body.
PR fortran/36374
* resolve.c (count_specific_procs ): New function to count the
number of specific procedures with the same name as the generic
and emit appropriate errors for and actual argument reference.
(resolve_assumed_size_actual): Add new argument no_formal_args.
Correct logic around passing generic procedures as arguments.
Call count_specific_procs from two locations.
(resolve_function): Evaluate and pass no_formal_args.
(resolve call): The same and clean up a bit by using csym more
widely.
PR fortran/36454
* symbol.c (gfc_add_access): Access can be updated if use
associated and not private.
2008-09-18 Paul Thomas <pault@gcc.gnu.org>
PR fortran/37274
* gfortran.dg/used_types_22.f90: New test.
* gfortran.dg/used_types_23.f90: New test.
PR fortran/36374
* gfortran.dg/generic_17.f90: New test.
* gfortran.dg/ambiguous_specific_2.f90: New test.
* gfortran.dg/generic_actual_arg.f90: Add test for case that is
not ambiguous.
PR fortran/36454
* gfortran.dg/access_spec_3.f90: New test.
Eric Botcazou [Wed, 17 Sep 2008 21:48:08 +0000 (21:48 +0000)]
varasm.c (initializer_constant_valid_p): Forbid view-conversions from aggregate to non-aggregate type if...
* varasm.c (initializer_constant_valid_p): Forbid view-conversions
from aggregate to non-aggregate type if the bit pattern is not fully
preserved afterwards.
Jakub Jelinek [Wed, 17 Sep 2008 16:05:11 +0000 (18:05 +0200)]
re PR preprocessor/37324 (FAIL: gcc.dg/utf-array.c (test for errors))
PR preprocessor/37324
* lib/target-supports.exp
(check_effective_target_wchar_t_char16_t_compatible,
check_effective_target_wchar_t_char32_t_compatible): New.
* gcc.dg/utf-array.c: Use __CHAR{16,32}_TYPE__ macros in typedefs.
Only require from incompatible errors for char{16,32}_t vs. wchar_t
initializations if those types are indeed incompatible.
Java:
* class.c (add_method_1): Do not initialize DECL_INLINE.
(make_local_function_alias): Likewise.
* expr.c (rewrite_arglist_getcaller): Set DECL_UNINLINABLE.
* lang.c (java_decl_ok_for_sibcall): Use DECL_UNINLINABLE.
Objc:
* objc/objc-act.c (objc_finish_method_definition): Do not set DECL_INLINE.
C++:
* cp/decl.c (start_method): Set DECL_NO_INLINE_WARNING_P.
Jan Hubicka [Wed, 17 Sep 2008 12:02:42 +0000 (14:02 +0200)]
ipa-reference.c (ipa_obstack): Remove.
* ipa-reference.c (ipa_obstack): Remove.
(local_info_obstack, global_info_obstack): New.
(add_static_var): We now handle variables only.
(mark_address_taken, mark_load, mark_store): New functions based on ...
(check_operand): ... remove.
(get_asm_stmt_operands): Rename to ...
(check_asm_memory_clobber): ... this. Look only for memory clobber.
(scan_stmt_for_static_refs): Rewrite.
(scan_op_for_static_refs): Rename to ...
(scan_initializer_for_static_refs): do not look for VAR_DECL
initializers; stop recursion on types and decls.
(ipa_init): Use proper obstacks.
(analyze_variable): Use scan_initializer_for_static_refs.
(init_function_info): Use local obstack.
(analyze_function): Simplify.
(add_new_function): We don't need visited_nodes obstack.
(generate_summary): Use proper obstacks; cleanup after propagation.
Richard Guenther [Wed, 17 Sep 2008 11:42:11 +0000 (11:42 +0000)]
re PR middle-end/37385 (ICE in set_mem_alias_set with the vectorizer and function pointers)
2008-09-17 Richard Guenther <rguenther@suse.de>
PR middle-end/37385
PR tree-optimization/37491
* alias.c (get_alias_set): Use the canonical type.
* tree-vect-transform.c (vectorizable_store): Use the type of
the lhs for the vector type. Adjust checking.
(vectorizable_load): Adjust checking.
Jakub Jelinek [Tue, 16 Sep 2008 22:15:49 +0000 (00:15 +0200)]
re PR rtl-optimization/37483 (Segfault in noce_try_sign_mask (ifcvt.c): b_unconditional)
PR rtl-optimization/37483
* ifcvt.c (noce_try_sign_mask): Use if_info->test_bb instead of
if_info->insn_b's bb as argument to optimize_bb_for_speed_p.
Rearrange code to better match the original comment. Check
t_unconditional first. Improve comment.
testsuite/
* gcc.c-torture/compile/pr37483.c: New test.
* gcc.c-torture/compile/pr37395.c: New test.
Co-Authored-By: Adam Nemet <anemet@caviumnetworks.com>
From-SVN: r140403
Jakub Jelinek [Tue, 16 Sep 2008 22:02:37 +0000 (00:02 +0200)]
re PR testsuite/36889 (gfortran.fortran-torture/execute/execute.exp tries to run sse2 execute tests without checking for host support)
PR testsuite/36889
* lib/fortran-torture.exp (get-fortran-torture-options): Only
set test_tree_vectorize on i?86/x86_64 resp. sparc* if sse2 resp.
ultrasparc hw is available.
crash16.C: Function name is the correct location for an error regarding a function.
testsuite/
* g++.old-deja/g++.brendan/crash16.C: Function name is the correct
location for an error regarding a function.
* g++.old-deja/g++.other/pmf3.C: Same.
* g++.old-deja/g++.law/ctors5.C: Same.
* g++.old-deja/g++.pt/explicit34.C: Same.
* g++.dg/parse/error28.C: Same.
* g++.dg/parse/error17.C: Same.
* g++.dg/template/friend44.C: Same.
cp/
* decl.c (duplicate_decls): Call error_at.
(grokfndecl): New location argument. Use location if available.
(grokdeclarator): Pass declarator location to grokfndecl.
* cp-tree.h (struct cp_declarator): Update comment for id_loc.
* decl2.c (check_classfn): Use error_at.
* parser.c (cp_parser_init_declarator): Set function_start_locus
to brace location.
(cp_parser_member_declaration): Set id_loc for function declarators.
Jakub Jelinek [Mon, 15 Sep 2008 21:56:35 +0000 (23:56 +0200)]
tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release in every call starting with the second one...
* tree-ssa-alias.c (init_alias_info): Call bitmap_obstack_release
in every call starting with the second one, instead of only when
alias_bitmap_obstack.elements != NULL.
Jakub Jelinek [Mon, 15 Sep 2008 21:55:05 +0000 (23:55 +0200)]
tree-predcom.c (filter_suitable_components): Free all refs in act->refs vector before calling release_component.
* tree-predcom.c (filter_suitable_components): Free all refs in
act->refs vector before calling release_component.
(add_ref_to_chain): Free ref if not adding it to chain->refs.
* tree-data-ref.c (free_subscripts): Free all subscript objects.
* tree-loop-linear.c (linear_transform_loops): Initialize
lambda_obstack only after calling perfect_loop_nest_depth.
Goto free_and_continue instead of just continue for later failures.
* MAINTAINERS: Remove John Carr, Steve Chamberlain, Michael Chastain,
Klaus Kaempf, Mumit Khan, Alan Lehotsky, Warren Levy, Don Lindsay,
Dave Love, Alexandre Petit-Bianco, Clinton Popetz, Gavin Romig-Koch,
and Michael Tiemann from Write After Approval since they do not
actually have access.
Andy Hutchinson [Sun, 14 Sep 2008 12:50:10 +0000 (12:50 +0000)]
re PR target/19636 (Can't compile large switch statement)
PR target/19636
PR target/24894
PR target/31644
PR target/31786
* config/avr/avr.c (legitimate_address_p): Fix problem where subreg
is not recognized as a valid register usage. Allow REG_X to be used
as a base pointer.
* config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Remove code that
forces a reload when using a base register.
Danny Smith [Sat, 13 Sep 2008 22:58:55 +0000 (22:58 +0000)]
cygming-crtend.c (register_frame_ctor): If DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame directly with atexit.
* config/i386/cygming-crtend.c (register_frame_ctor): If
DEFAULT_USE_CXA_ATEXIT, register __gcc_deregister_frame
directly with atexit.
(deregister_frame_ctor): Rename to ...
(deregister_frame_dtor): Use to call __gcc_deregister_frame
if !DEFAULT_USE_CXA_ATEXIT.
Jan Hubicka [Sat, 13 Sep 2008 21:39:44 +0000 (23:39 +0200)]
re PR middle-end/32581 (make profiledbootstrap - stageprofile - gcc/ada/a-except.adb:1301: error: control flow in the middle of basic block 20)
PR middle-end/32581
* tree-profile.c (add_abnormal_goto_call_edges): New function.
(tree_gen_interval_profiler, tree_gen_pow2_profiler,
tree_gen_one_value_profiler, tree_gen_average_profiler,
tree_gen_ic_func_profiler, tree_gen_ior_profiler): Use it.
Martin Jambor [Sat, 13 Sep 2008 14:35:10 +0000 (16:35 +0200)]
cgraph.c (free_edges): New variable.
* cgraph.c (free_edges): New variable.
(NEXT_FREE_EDGE): New macro.
(cgraph_free_edge): New function.
(cgraph_remove_edge): Call cgraph_remove_edge_1.
(cgraph_node_remove_callees): Likewise.
(cgraph_node_remove_callers): Likewise.
(cgraph_create_edge): Reuse edges from the free list. Do not
update uid if doing so.
(cgraph_remove_*_hook): Add free call.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r140341