gcc/
* ira-costs.c (find_allocno_class_costs): Work out the maximum
allocno_costs value of the classees with the lowest total_costs
value. Use this to set ALLOCNO_COVER_CLASS_COST here...
(setup_allocno_cover_class_and_costs): ...rather than here.
Use the ALLOCNO_COVER_CLASS_COST for all registers in the
preferred class.
From-SVN: r142117
PR middle-end/37323
* builtins.c (expand_builtin_apply_args): Emit sequence before
parm_birth_insn instead of after entry_of_function's first insn.
From-SVN: r142116
PR libfortran/37839
* trans-io.c (gfc_build_io_library_fndecls): Decrease pad size back
to 16 pointers plus 32 integers. Don't use max integer kind
alignment, only gfc_intio_kind's alignment.
(gfc_trans_inquire): Only set flags2 if mask2 is non-zero.
* ioparm.def: Fix order, bitmasks and types of inquire round, sign
and pending fields. Move u in dt before id.
* io.c (gfc_free_inquire): Free decimal and size exprs.
(match_inquire_element): Match size instead of matching blank twice.
(gfc_resolve_inquire): Resolve size.
* gfortran.dg/f2003_inquire_1.f03: New test.
* gfortran.dg/f2003_io_1.f03: Remove xfail.
* gfortran.dg/f2003_io_4.f03: Likewise.
* gfortran.dg/f2003_io_5.f03: Likewise.
* gfortran.dg/f2003_io_6.f03: Likewise.
* gfortran.dg/f2003_io_7.f03: Likewise.
* io/io.h (IOPARM_INQUIRE_HAS_ROUND, IOPARM_INQUIRE_HAS_SIGN,
IOPARM_INQUIRE_HAS_PENDING): Adjust values.
(st_parameter_inquire): Reorder and fix types of round, sign and
pending fields.
(st_parameter_43, st_parameter_44): Removed.
(st_parameter_dt): Put back struct definition directly to u.p
declaration. Change type of u.p.size_used from gfc_offset to
GFC_IO_INT. Decrease back size of u.pad to 16 pointers and
32 ints. Put id, pos, asynchronous, blank, decimal, delim,
pad, round and sign fields after the union.
* io/inquire.c (inquire_via_unit, inquire_via_filename): Only read
flags2 if it is defined.
* io/transfer.c (read_sf, read_block_form, write_block): Cast
additions to size_used to GFC_IO_INT instead of gfc_offset.
(data_transfer_init): Clear whole u.p struct. Adjust
for moving id, pos, asynchronous, blank, decimal, delim, pad,
round and sign fields from u.p directly into st_parameter_dt.
(finalize_transfer): Don't cast size_used to GFC_IO_INT.
* io/file_pos.c (st_endfile): Clear whole u.p struct.
From-SVN: r142111
PR middle-end/38200
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
propagate x = &a into *x = b if conversion from b to a's type is
useless.
* gcc.dg/pr38200.c: New test.
From-SVN: r142100
Missed to check in changes to /config/mh-mingw. It is part of the reviewed
patch 2008/10/13 by Danny Smith.
2008-11-21 Kai Tietz <kai.tietz@onevision.com>
Fix PR/25502
* mh-mingw (BOOT_CFLAGS): Add -Wno-pedantic-ms-format switch.
From-SVN: r142089
2008-11-21 Kai Tietz <kai.tietz@onevision.com>
* Object.m (errno): Replaced by errno.h include.
(compare): Cast self to id to prevent warning on comparison.
* objc/objc.h (BOOL): Prevent redeclaration of BOOL, if it is
already there.
* sendmsg.c (__objc_print_dtable_stats): Remove type warnings.
* thr-win32.c (__objc_thread_detach): Remove type warning.
(__objc_thread_id): Likewise.
* thr.c (__objc_thread_detach_functiont): Add __builtin_trap ()
for noreturn.
From-SVN: r142087
* config/i386/mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
* config/i386/sse.md (avx_nand<mode>3): Rename to avx_andnot<mode>3.
(<sse>_nand<mode>3): Rename to <sse>_andnot<mode>3.
(sse2_nand<mode>3): Rename to sse2_andnot<mode>3.
(*sse_nand<mode>3): Rename to *sse_andnot<mode>3.
(*avx_nand<mode>3): Rename to *avx_andnot<mode>3.
(*nand<mode>3): Rename to *andnot<mode>3.
(*nandtf3): rename to *andnottf3.
* config/i386/i386.c (bdesc_args) [IX86_BUILTIN_PANDN]:
Use CODE_FOR_mmx_andnotv2si3.
[IX86_BUILTIN_ANDNPS]: Use CODE_FOR_sse_andnotv4sf3.
[IX86_BUILTIN_ANDNPD]: Use CODE_FOR_sse2_andnotv2df3.
[IX86_BUILTIN_PANDN128]: Use CODE_FOR_sse2_andnotv2di3.
[IX86_BUILTIN_ANDNPS256]: Use CODE_FOR_avx_andnotv8sf3.
[IX86_BUILTIN_ANDNPD256]: Use CODE_FOR_avx_andnotv4df3.
From-SVN: r142083
2008-11-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libfortran/37472
* io/write_float.def (output_float_FMT_G_): Adjust conversion of
G format specification to F format.
From-SVN: r142079
PR middle-end/29215
* builtins.c (SLOW_UNALIGNED_ACCESS): Define if not defined.
(fold_builtin_memory_op): Handle even the case where just one
of src and dest is an address of a var decl component, using
TYPE_REF_CAN_ALIAS_ALL pointers. Remove is_gimple_min_invariant
and readonly_data_expr src check.
* tree-ssa-sccvn.c (DFS): Use clear_and_done_ssa_iter to shut
up warnings.
* trans-array.c (trans_array_constructor_value,
gfc_build_constant_array_constructor): Fill in TREE_PURPOSE.
* gfortran.dg/array_memcpy_3.f90: Adjust pattern to match even
memcpy optimized into ref-all store.
* gcc.dg/pr29215.c: New test.
From-SVN: r142061
PR c++/37540
* call.c (build_over_call): Take the address of the function even
in a template.
(build_new_method_call): Remember the type of the called function
in a template.
From-SVN: r142054
gcc:
PR bootstrap/33100
* config.gcc (i[34567]86-*-solaris2*): Don't include
i386/t-crtstuff here.
Move extra_parts, i386/t-sol2 in tmake_file to libgcc/config.host.
* config/i386/t-sol2: Move to libgcc/config/i386.
libgcc:
PR bootstrap/33100
* configure.ac (i?86-*-solaris2.1[0-9]*): Only include
i386/t-crtstuff if linker supports ZERO terminator unwind entries.
* configure: Regenerate.
* config.host (i[34567]86-*-solaris2*): Move i386/t-sol2 in
tmake_file here from gcc/config.gcc.
Move extra_parts here from gcc/config.gcc.
* config/i386/t-sol2: Move here from gcc/config/i386.
Use gcc_srcdir instead of srcdir.
From-SVN: r142050
* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Use
gfc_index_one_node.
(gfc_conv_intrinsic_size): Use gfc_index_{zero,one}_node.
From-SVN: r142046
2008-11-20 Samuel Thibault <samuel.thibault@ens-lyon.org>
* tlink.c: Include "libiberty.h".
(initial_cwd): Change type into char *.
(tlink_init): Call getpwd instead of getcwd.
From-SVN: r142043
PR fortran/38181
* trans-intrinsic.c (gfc_conv_intrinsic_size): Inline 2 argument
size if the second argument is not optional and one argument size
for rank 1 arrays.
* gfortran.dg/array_section_2.f90: Adjust pattern to match
the inlined size0 instead of a size0 call.
From-SVN: r142037
PR rtl-optimization/32283
* tree-ssa-loop-niter.c (scev_probably_wraps_p): Use type of the base
of the induction variable to decide whether it may wrap.
* tree-ssa-loop-ivopts.c (rewrite_use_compare): Emit the initialization
of the bound before the loop.
* simplify-rtx.c (simplify_binary_operation_1): Add two simplifications
regarding AND.
(simplify_plus_minus): Only fail if no simplification is possible.
* loop-iv.c (simple_rhs_p): Consider reg + reg and reg << cst simple.
From-SVN: r142035
PR c++/36631
* gimplify.c (gimplify_call_expr): Defer most of the cannot inline
checking until GIMPLE lowering.
* gimple-low.c (check_call_args): New function.
(lower_stmt) <case GIMPLE_CALL>: Call it.
* g++.dg/template/call5.C: New test.
From-SVN: r142033
* config/mips/mips.c (mips_gimplify_va_arg_expr): Use -rsize
with the same type as the first operand of the AND expression.
testsuite/
* gcc.c-torture/compile/20081119-1.c: New test.
From-SVN: r142024