Jan Hubicka [Sun, 1 Mar 2009 11:02:30 +0000 (12:02 +0100)]
re PR debug/39267 (gdb testsuite regressions)
PR debug/39267
* tree-inline.c (setup_one_parameter): Do not copy propagate
arguments when not optimizing.
PR debug/39267
* gcc.dg/debug/dwarf2/inline1.c: New testcase.
Eric Botcazou [Sun, 1 Mar 2009 10:53:17 +0000 (10:53 +0000)]
re PR ada/39264 (gnat.dg/pack3.adb fails on powerpc64/s390x)
PR ada/39264
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
call make_packable_type on fat pointer types.
<E_Array_Subtype>: Likewise.
<E_Record_Subtype>: Call make_packable_type on all record types
except for fat pointer types.
(make_packable_type): Likewise.
(gnat_to_gnu_field): Likewise.
Jan Hubicka [Sat, 28 Feb 2009 22:14:43 +0000 (23:14 +0100)]
tree-inline.c (expand_call_inline): Avoid duplicate declarations of static vars.
* tree-inline.c (expand_call_inline): Avoid duplicate declarations of
static vars.
(copy_arguments_for_versioning): If var is declared don't declare it.
(tree_function_versioning): First setup substitutions and then copy
args.
Jan Hubicka [Sat, 28 Feb 2009 21:34:23 +0000 (22:34 +0100)]
re PR debug/39267 (gdb testsuite regressions)
PR debug/39267
* cgraph.h (varpool_output_debug_info): Remove.
* cgraphunit.c (varpool_output_debug_info): Remove.
* dwarf2out.c (deferred_locations_struct): New struct
(deferred_locations): New type.
(deferred_locations_list): New static var.
(deffer_location): New function.
(gen_variable_die): Use it.
(decls_for_scope): Output info on local static vars.
(dwarf2out_finish): Process deferred locations.
* varpool.c (varpool_output_debug_info): Remove.
Andreas Schwab [Fri, 27 Feb 2009 09:54:25 +0000 (09:54 +0000)]
Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
gcc/ada/:
* Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
* gcc-interface/Makefile.in: Change all uses of $(srcdir),
$(fsrcdir) and $(fsrcpfx) to add ada subdir.
(AWK): Substitute.
(target_cpu_default): Substitute.
gnattools/:
* Makefile.in (fsrcdir): Point to gcc directory, not gcc/ada.
(INCLUDES_FOR_SUBDIR): Adjust.
(ADA_INCLUDES_FOR_SUBDIR): Adjust.
Paul Thomas [Thu, 26 Feb 2009 18:43:50 +0000 (18:43 +0000)]
re PR fortran/39295 (Too strict interface conformance check)
2009-02-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39295
* interface.c (compare_type_rank_if): Return 1 if the symbols
are the same and deal with external procedures where one is
identified to be a function or subroutine by usage but the
other is not.
2009-02-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/39295
* gfortran.dg/interface_25.f90: New test.
* gfortran.dg/interface_26.f90: New test.
Paolo Bonzini [Wed, 25 Feb 2009 18:12:29 +0000 (18:12 +0000)]
regmove.c (regmove_optimize): Conform to struct rtl_opt_pass execute function prototype.
2009-02-25 Paolo Bonzini <bonzini@gnu.org>
* regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
execute function prototype. Get f and nregs from max_reg_num
and get_insns. Remove the first backward pass as it's dead,
guard the forward pass by flag_expensive_optimizations.
(rest_of_handle_regmove): Delete.
(pass_regmove): Replace it with regmove_optimize.
Martin Jambor [Wed, 25 Feb 2009 17:34:40 +0000 (18:34 +0100)]
tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and alls_alloca function flags.
2009-02-25 Martin Jambor <mjambor@suse.cz>
* tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
alls_alloca function flags.
(copy_bb): Set calls_setjmp and alls_alloca function flags if such
calls are detected.
Sebastian Pop [Tue, 24 Feb 2009 06:47:56 +0000 (06:47 +0000)]
re PR middle-end/39260 (Failed to build lame-3.98-2 source with graphite)
2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/39260
* graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
contains a condition with a real type.
(build_scop_conditions_1): Conditions are always last_stmt of a bb.
Jan Hubicka [Mon, 23 Feb 2009 13:10:53 +0000 (14:10 +0100)]
re PR tree-optimization/37709 (inlining causes explosion in debug info)
PR tree-optimization/37709
* tree.c (block_ultimate_origin): Move here from dwarf2out.
* tree.h (block_ultimate_origin): Declare.
* dwarf2out.c (block_ultimate_origin): Move to tree.c
* tree-ssa-live.c (remove_unused_scope_block_p):
Eliminate blocks containig no instructions nor live variables nor
nested blocks.
(dump_scope_block): New function.
(remove_unused_locals): Enable removal of dead blocks by default;
enable dumping at TDF_DETAILS.
H.J. Lu [Sun, 22 Feb 2009 00:44:23 +0000 (00:44 +0000)]
re PR target/39261 (_mm256_set_epi64x failed on 32bit)
2008-02-21 H.J. Lu <hongjiu.lu@intel.com>
PR target/39261
* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
ix86_expand_vector_set for V4DImode in 64bit mode only.
(ix86_expand_vector_init_one_var): Likewise.
Thomas Koenig [Sat, 21 Feb 2009 22:25:06 +0000 (22:25 +0000)]
re PR fortran/38914 ([4.3 only] ICE with array inquiry functions above contains in parameter expression)
2008-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/38914
* array.c (ref_dimen_size): Rename to gfc_ref_dimen_size,
make global. Change function name in error messages.
(ref_size): Change ref_dimen_size to gfc_ref_dimen_size.
(gfc_array_ref_shape): Likewise.
* gfortran.h: Add prototype for gfc_ref_dimen_size.
* simplify.c (simplify_bound_dim): Add ref argument.
If the reference isn't a full array, return one for
the lower bound and the extent for the upper bound.
(simplify_bound): For array sections, take as from the
argument. Add reference to all to simplify_bound_dim.
2008-02-21 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/38914
* bound_simplification_2.f90: New test case.
* bound_7.f90: New test case.
H.J. Lu [Sat, 21 Feb 2009 15:55:53 +0000 (07:55 -0800)]
re PR target/39256 (__m256 isn't returned in ymm0 in 32bit)
gcc/
2008-02-21 H.J. Lu <hongjiu.lu@intel.com>
PR target/39256
* config/i386/i386.c (type_natural_mode): Remove an extra
space in the warning message.
(function_value_32): Handle 32-byte vector modes.
(return_in_memory_32): Likewise.
gcc/
* loop-iv.c (truncate_value): New function.
(iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
of lowpart_subreg.
(lowpart_subreg): Move to...
* emit-rtl.c: ...here.
Joseph Myers [Sat, 21 Feb 2009 02:18:01 +0000 (02:18 +0000)]
arm.c (arm_gimplify_va_arg_expr): Update prototype to take gimple_seq * arguments.
* config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
take gimple_seq * arguments.
(arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
types_compatible_p langhook.
Jakub Jelinek [Fri, 20 Feb 2009 12:56:01 +0000 (13:56 +0100)]
re PR middle-end/39157 (Code that compiles fine in 1GB of memory with 4.1.2 requires > 20GB in 4.2.* and higher)
PR middle-end/39157
* Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
* params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
* params.def (loop-invariant-max-bbs-in-loop): New parameter.
* opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
parameter to 1000 for -O1 by default.
* doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
parameter.
* loop-invariant.c: Include params.h.
(move_loop_invariants): Don't call move_single_loop_invariants on
very large loops.
Jaka Mocnik [Fri, 20 Feb 2009 11:19:34 +0000 (12:19 +0100)]
calls.c (emit_library_call_value_1): Use slot_offset instead of offset when calculating bounds for indexing...
* calls.c (emit_library_call_value_1): Use slot_offset instead of
offset when calculating bounds for indexing stack_usage_map. Fixes
a buffer overflow with certain target setups.
Adam Nemet [Thu, 19 Feb 2009 21:26:34 +0000 (21:26 +0000)]
mips.exp: Comment !CPU in the isa* pseudo-options.
* gcc.target/mips/mips.exp: Comment !CPU in the isa* pseudo-options.
(mips-dg-options): When matching isa* pseudo-options make
'value' optional and accept ! entries. Use $spec instead of
$isa_spec in the isa pseudo-option error message. Only
perform the ISA-range check when 'value' is set. If arch is
matching any CPU in the ! entries switch to its generic ISA.
* gcc.target/mips/branch-1.c: Pass isa=!octeon.
* gcc.target/mips/dmult-1.c: Pass isa=64!octeon rather than
-mips64.
Jakub Jelinek [Thu, 19 Feb 2009 21:15:12 +0000 (22:15 +0100)]
re PR target/39175 (ICE while compiling qt-4.5.0-rc1)
PR target/39175
* c-common.c (c_determine_visibility): If visibility changed and
DECL_RTL has been already set, call make_decl_rtl to update symbol
flags.
* decl2.c (determine_visibility): If visibility changed and
DECL_RTL has been already set, call make_decl_rtl to update symbol
flags.
* gcc.dg/visibility-20.c: New test.
* g++.dg/ext/visibility/visibility-11.C: New test.
Joseph Myers [Thu, 19 Feb 2009 13:56:00 +0000 (13:56 +0000)]
re PR c/38483 (generated aborts lose previous side-effects)
PR c/38483
* builtins.c (gimplify_va_arg_expr): Evaluate the va_list
expression before any __builtin_trap call.
* c-typeck.c (build_function_call): Convert and check function
arguments before generating a call to a trap. Evaluate the
function arguments before the trap.
testsuite:
* gcc.c-torture/execute/call-trap-1.c,
gcc.c-torture/execute/va-arg-trap-1.c, gcc.dg/call-diag-1.c: New
tests.
Uros Bizjak [Thu, 19 Feb 2009 10:51:04 +0000 (11:51 +0100)]
re PR target/39228 (387 optimised __builtin_isinf() gives incorrect result)
PR target/39228
* config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
(UNSPEC_FXAM_MEM): New unspec.
(fxam<mode>2_i387_with_temp): New insn and split pattern.
(isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
memory using fxam<mode>2_i387_with_temp to remove excess precision.
testsuite/ChangeLog:
PR target/39228
* gcc.c-torture/execute/pr39228.c: New test.
Richard Guenther [Thu, 19 Feb 2009 10:12:25 +0000 (10:12 +0000)]
re PR tree-optimization/39207 (Strict aliasing warnings in libstdc++ headers)
2009-02-19 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39207
PR tree-optimization/39074
* tree-ssa-structalias.c (storedanything_id, var_storedanything,
storedanything_tree): New.
(do_ds_constraint): Simplify ANYTHING shortcutting. Update
the STOREDANYTHING solution if the lhs solution contains
ANYTHING.
(build_succ_graph): Add edges from STOREDANYTHING to all
non-direct nodes.
(init_base_vars): Initialize STOREDANYTHING.
(compute_points_to_sets): Free substitution info after
building the succ graph.
(ipa_pta_execute): Likewise.
* gcc.dg/torture/pr39074.c: New testcase.
* gcc.dg/torture/pr39074-2.c: Likewise.
* gcc.dg/torture/pr39074-3.c: Likewise.
* tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
field.
(do_ds_constraint): Do not add to special var or non-pointer
field solutions.
(type_could_have_pointers): Split out from ...
(could_have_pointers): ... here. For arrays use the element type.
(create_variable_info_for): Initialize may_have_pointers.
(new_var_info): Likewise.
(handle_lhs_call): Make the HEAP variable unknown-sized.
(intra_create_variable_infos): Use a type with pointers for
PARM_NOALIAS, make it unknown-sized.