* i386.h (CONDITIONAL_REGISTER_USAGE): Initialize for current function
ABI.
* i386.c (ix86_call_abi_override): Do not trigger target re-init and
do not try to modify call used regs.
(ix86_maybe_switch_abi): New function.
(TARGET_EXPAND_TO_RTL_HOOK): New macro.
Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>
From-SVN: r142810
2008-12-18 Daniel Kraft <d@domob.eu>
PR fortran/31822
* gfortran.h (gfc_check_same_strlen): Made public.
* trans.h (gfc_trans_same_strlen_check): Made public.
* check.c (gfc_check_same_strlen): Made public and adapted error
message output to be useful not only for intrinsics.
(gfc_check_merge): Adapt to gfc_check_same_strlen change.
* expr.c (gfc_check_pointer_assign): Use gfc_check_same_strlen for
string length compile-time check.
* trans-expr.c (gfc_trans_pointer_assignment): Add runtime-check for
equal string lengths using gfc_trans_same_strlen_check.
* trans-intrinsic.c (gfc_trans_same_strlen_check): Renamed and made
public from conv_same_strlen_check.
(gfc_conv_intrinsic_merge): Adapted accordingly.
2008-12-18 Daniel Kraft <d@domob.eu>
PR fortran/31822
* gfortran.dg/char_pointer_assign_2.f90: Updated expected error message
to be more detailed.
* gfortran.dg/char_pointer_assign_4.f90: New test.
* gfortran.dg/char_pointer_assign_5.f90: New test.
From-SVN: r142808
PR middle-end/38533
* tree-ssa-reassoc.c (remove_visited_stmt_chain): New function.
(rewrite_expr_tree): Add moved argument, move stmts together if
needed. Call remove_visited_stmt_chain.
(linearize_expr_tree): Don't move stmts here.
(reassociate_bb): Call remove_visited_stmt_chain if num ops is 1.
Adjust rewrite_expr_tree caller.
* gcc.dg/tree-ssa/pr38533.c: New test.
* gcc.c-torture/execute/pr38533.c: New test.
From-SVN: r142807
PR middle-end/38505
* tree-ssa.c (useless_type_conversion_p_1): Return
false if inner_type is incomplete and outer_type is complete.
* gcc.c-torture/compile/pr38505.c: New test.
From-SVN: r142806
gcc/cp:
* semantics.c (describable_type): New function.
(finish_decltype_type): Use it for dependent exprs.
* cp-tree.h: Declare it.
* mangle.c (write_type) [DECLTYPE_TYPE]: Set skip_evaluation.
(write_expression): If skip_evaluation, use type stubs.
* tree.c (cp_tree_equal): Handle PARM_DECLs from different
declarations of a function.
* init.c (build_new): Do auto deduction if type is describable.
* decl.c (cp_finish_decl): Likewise.
* parser.c (cp_parser_omp_for_loop): Likewise.
gcc/testsuite:
* g++.dg/cpp0x/auto6.C: Test more stuff.
* g++.dg/cpp0x/auto12.C: New test.
libiberty:
* cp-demangle.c (d_expression): Handle rvalue stubs too.
[DEMANGLE_COMPONENT_CAST]: Update mangling.
(d_print_comp): Avoid extra ", " with empty template argument packs.
Remove handling for obsolete T() mangling.
From-SVN: r142799
2008-12-17 Jack Howarth <howarth@bromo.med.uc.edu>
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Don't xfail test on darwin8 or later.
From-SVN: r142797
2008-12-17 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/38556
* calls.c (expand_call): Check outgoing_reg_parm_stack_space
only if REG_PARM_STACK_SPACE is defined.
From-SVN: r142794
* calls.c (expand_call): Do not sibcall if
outgoing_reg_parm_stack_space does not match.
Co-Authored-By: Kai Tietz <kai.tietz@onevision.com>
From-SVN: r142792
2008-12-17 Daniel Kraft <d@domob.eu>
PR fortran/38137
* trans-intrinsic.c (conv_same_strlen_check): New method.
(gfc_conv_intrinsic_merge): Call it here to actually do the check.
2008-12-17 Daniel Kraft <d@domob.eu>
PR fortran/38137
* gfortran.dg/merge_char_3.f90: New test.
From-SVN: r142791
PR target/37436
* arm.c (arm_legitimate_index): Only accept addresses that are in
canonical form.
* predicates.md (arm_reg_or_extendqisi_mem_op): New predicate.
* arm.md (extendqihi2): Use arm_reg_or_extendqisi_mem_op predicate
for operand1.
(extendqisi2): Likewise.
(arm_extendqisi, arm_extendqisi_v6): Use arm_extendqisi_mem_op
predicate for operand1.
From-SVN: r142778
2008-12-15 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/38487
* gfortran.dg/elemental_dependency_2.f90: New test.
2008-12-15 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/38487
* dependency.c (gfc_is_data_pointer): New function.
(gfc_check_argument_var_dependency): Disable the warning
in the pointer case.
(gfc_check_dependency): Use gfc_is_data_pointer.
From-SVN: r142766
* config/picochip/picochip.c (picochip_override_options): Disable CFI
asm and change the signature of brev and byteSwap functions to use
unsigned values.
* config/picochip/picochip.md (commsTestPort): This is a complex
instruction and should not be vliwed. Dont set insn type.
From-SVN: r142765
2008-12-15 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/38113
* error.c (show_locus): Start counting columns at 0.
* primary.c (match_actual_arg): Eat spaces
before copying the current locus.
(match_variable): Copy the locus before matching.
From-SVN: r142763
2008-12-15 Wolfgang Gellerich <gellerich@de.ibm.com>
* config/s390/s390.c (s390_swap_cmp): New function.
(s390_non_addr_reg_read_p): New function.
(s390_z10_optimize_cmp): New function.
(s390_reorg): Added call to s390_optimize_cmp.
* config/s390/s390.md (nop1): New insn.
From-SVN: r142762
2008-12-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/35937
* trans-expr.c (gfc_finish_interface_mapping): Fold convert the
character length to gfc_charlen_type_node.
2008-12-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/35937
* gfortran.dg/char_length_14.f90: New test.
From-SVN: r142750
2008-12-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/38504
io/write.c (write_decimal): Skip extra sign '-' at beginning of string
returned by gfc_itoa.
From-SVN: r142747
* gcc.target/i386/sse-12.c: Include x86intrin.h.
(dg-options): Use -mavx instead of -msse4. Add -maes -mpclmul.
* gcc.target/i386/sse-13.c: Include x86intrin.h. Define immintrin.h
intrinsics that require immediate arguments.
(dg-options): Use -mavx instead of -msse4.
* gcc.target/i386/sse-14.c: Include x86intrin.h. Define immintrin.h
intrinsics that require immediate arguments.
(test_3): New macro.
(dg-options): Use -mavx instead of -msse4.
* g++.dg/other/i386-2.C: Include x86intrin.h.
(dg-options): Use -mavx instead of -msse4.
* g++.dg/other/i386-3.C: Include x86intrin.h.
(dg-options): Use -mavx instead of -msse4.
From-SVN: r142739
2008-12-12 Benjamin Kosnik <bkoz@redhat.com>
* src/Makefile.am: Remove -x c++ for atomic build rules.
* src/Makefile.in: Regenerate.
* src/atomic.cc: Move mutex include before cstdatomic.
From-SVN: r142738
2008-12-12 Andrew Pinski <andrew_pinskia@playstation.sony.com>
Peter Bergner <bergner@vnet.ibm.com>
PR target/24779
* config/rs6000/rs6000.md (call_indirect_aix32): Move the load of the
TOC into the call pattern.
(call_indirect_aix64): Likewise.
(call_value_indirect_aix32): Likewise.
(call_value_indirect_aix64): Likewise.
(call_indirect_nonlocal_aix32_internal): New insn and split patterns
to split off the load of the TOC.
(call_indirect_nonlocal_aix32): Enable only after reload.
(call_indirect_nonlocal_aix64_internal): New insn and split patterns
to split off the load of the TOC.
(call_indirect_nonlocal_aix64): Enable only after reload.
(call_value_indirect_nonlocal_aix32_internal): New insn and split
patterns to split off the load of the TOC.
(call_value_indirect_nonlocal_aix32): Enable only after reload.
(call_value_indirect_nonlocal_aix64_internal): New insn and split
patterns to split off the load of the TOC.
(call_value_indirect_nonlocal_aix64): Enable only after reload.
Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
From-SVN: r142727