* 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.
From-SVN: r144344
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.
From-SVN: r144320
* 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.
From-SVN: r144317
PR target/39240
* calls.c (expand_call): Clear try_tail_call if caller and callee
disagree in promotion of function return value.
* gcc.c-torture/execute/pr39240.c: New test.
From-SVN: r144316
* 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.
From-SVN: r144306
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.
From-SVN: r144305
2009-02-19 Daniel Franke <franke.daniel@gmail.com>
* scanner.c (load_line): At end of line, skip '\r' without setting
the truncation flag.
From-SVN: r144303
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.
From-SVN: r144296
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.
From-SVN: r144293
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.
From-SVN: r144292
2009-02-18 Daniel Kraft <d@domob.eu>
* gfortran.texi: New chapter about compiler characteristics.
(Compiler Characteristics): Document KIND type parameters here.
From-SVN: r144268
2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
* gcc.dg/callabi/callabi.exp: Moved to ...
* gcc.target/x86_64/abi/callabi/callabi.exp: Here. Only run
in 64bit mode.
* gcc.target/x86_64/abi/callabi/func-1.c: Don't check target.
* gcc.target/x86_64/abi/callabi/func-indirect.c: Likewise.
* gcc.target/x86_64/abi/callabi/func-indirect.c: Likewise.
* gcc.target/x86_64/abi/callabi/pr38891.c: Likewise.
* gcc.target/x86_64/abi/callabi/vaarg-1.c: Likewise.
* gcc.target/x86_64/abi/callabi/vaarg-2.c: Likewise.
* gcc.target/x86_64/abi/callabi/vaarg-3.c: Likewise.
* gcc.dg/callabi/callabi.h: Moved to ...
* gcc.target/x86_64/abi/callabi/callabi.h: Here.
* gcc.dg/callabi/func-1.c: Moved to ...
* gcc.target/x86_64/abi/callabi/func-1.c: Here.
* gcc.dg/callabi/func-indirect.c: Moved to ...
* gcc.target/x86_64/abi/callabi/func-indirect.c: Here.
* gcc.dg/callabi/pr38891.c: Moved to ...
* gcc.target/x86_64/abi/callabi/pr38891.c: Here.
* gcc.dg/callabi/vaarg-1.c: Moved to ...
* gcc.target/x86_64/abi/callabi/vaarg-1.c: Here.
* gcc.dg/callabi/vaarg-2.c: Moved to ...
* gcc.target/x86_64/abi/callabi/vaarg-2.c: Here.
* gcc.dg/callabi/vaarg-3.c: Moved to ...
* gcc.target/x86_64/abi/callabi/vaarg-3.c: Here.
From-SVN: r144264
gcc/
2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
PR target/39082
* c.opt (Wabi): Support C and ObjC.
(Wpsabi): New.
* c-opts.c (c_common_handle_option): Handle OPT_Wabi.
* config/i386/i386.c (classify_argument): Warn once about the ABI
change when passing union with long double.
* doc/invoke.texi: Update -Wabi for warning psABI changes.
gcc/testsuite/
2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
PR target/39082
* g++.dg/compat/struct-layout-1_generate.c (dg_options): Add
-Wno-abi for x86.
* gcc.dg/compat/struct-layout-1_generate.c (dg_options): Likewise.
* gcc.target/i386/pr39082-1.c: New.
* gcc.target/x86_64/abi/abi-x86_64.exp (additional_flags): Add
-Wno-abi.
* gcc.target/x86_64/abi/args.h (XMM_T): Add _m64 and _m128 if
CHECK_M64_M128 is defined.
(check_f_arguments): Add "do".
(check_vector_arguments): New.
(check_m64_arguments): Likewise.
(check_m128_arguments): Likewise.
* gcc.target/x86_64/abi/defines.h: Include <xmmintrin.h>.
(CHECK_M64_M128): Define.
* gcc.target/x86_64/abi/test_m64m128_returning.c: New. Based
on abitest.
* gcc.target/x86_64/abi/test_passing_m64m128.c: Likewise.
* gcc.target/x86_64/abi/test_passing_structs.c: Define __m128
tests only if CHECK_M64_M128 is defined.
* gcc.target/x86_64/abi/test_passing_structs.c (m128_struct): New.
(m128_2_struct): Likewise.
(check_struct_passing5): Likewise.
(check_struct_passing6): Likewise.
(main): Test struct with __m128 if CHECK_M64_M128 is defined.
* gcc.target/x86_64/abi/test_passing_unions.c (un4): New.
(un5): Likewise.
(check_union_passing4): Likewise.
(main): Test union with __m128 if CHECK_M64_M128 is defined.
From-SVN: r144257
PR c/35447
* c-parser.c (c_parser_compound_statement): Always enter and leave
a scope.
testsuite:
* gcc.dg/noncompile/pr35447-1.c: New test.
From-SVN: r144256
* date_based: New directory.
* README: Move from here ...
* date_based/README: to here.
* reg_search: Move from here ...
* date_based/reg_search: to here.
* reg_periodic: Move from here ...
* date_based/reg_periodic: to here.
* reg_test_template: Move from here ...
* date_based_reg_test_template: to here.
From-SVN: r144238
2009-02-17 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39202
* tree-ssa-structalias.c (do_structure_copy): Before collapsing
a var make sure to follow existing collapses.
* gcc.c-torture/compile/pr39202.c: New testcase.
From-SVN: r144235