Jason Merrill [Fri, 28 Nov 2008 23:35:37 +0000 (18:35 -0500)]
re PR c++/38233 ('map' value type + new uninitted const member warnings causes error)
PR c++/38233
* init.c (perform_member_init): Fix value-initialization.
(build_value_init_1): Add assert to catch cases that will break
in the gimplifier.
(build_default_init): Remove.
* cp-tree.h: Remove its prototype.
* pt.c (tsubst_expr) [DECL_EXPR]: Use build_value_init for
value-initialization.
Bernd Schmidt [Thu, 27 Nov 2008 09:11:50 +0000 (09:11 +0000)]
bfin.opt (micplb): New option.
* config/bfin/bfin.opt (micplb): New option.
* config/bfin/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Set it.
* config/bfin/bfin-protos.h (WA_INDIRECT_CALLS,
ENABLE_WA_INDIRECT_CALLS): New macros.
* config/bfin/bfin.c (bfin_cpus): Add WA_INDIRECT_CALLS to
all 54x CPUs.
(indirect_call_p): New function.
(workaround_speculation): Handle anomaly 05-00-0426 when
ENABLE_WA_INDIRECT_CALLS is true.
* config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
__WORKAROUND_INDIRECT_CALLS if ENABLE_WA_INDIRECT_CALLS.
* doc/invoke.texi (Blackfin Options): Document -micplb.
Adam Nemet [Wed, 26 Nov 2008 22:14:50 +0000 (22:14 +0000)]
mips.md (clear_hazard): Rename to clear_hazard_<mode>.
* config/mips/mips.md (clear_hazard): Rename to
clear_hazard_<mode>. Use mode-specific addition.
(clear_cache): Rename gen_clear_hazard to gen_clear_hazard_si
or gen_clear_hazard_di depending on the size of Pmode.
gcc/testsuite/
PR testsuite/28870
* lib/timeout.exp: New.
* lib/timeout-dg.exp: New.
* lib/gcc-dg.exp: Include new timeout library files.
(dg-test): Unset timeout variables.
* lib/gcc.exp (gcc_target_compile): Set timeout value from new proc.
* lib/g++.exp (g++_target_compile): Ditto.
* lib/gfortran.exp (gfortran_target_compile): Ditto.
* lib/objc.exp (objc_target_compile): Ditto.
* lib/obj-c++.exp (obj-c++_target_compile): Ditto.
* lib/obj-c++.exp (obj-c++_target_compile): Ditto.
* lib/gnat.exp (gnat_target_compile): Ditto.
libstdc++-v3/
PR testsuite/28870
* testsuite/lib/libstdc++.exp: Include new timeout library files.
(libstdc++_init): Define tool_timeout.
(dg-test): Override DejaGnu proc.
(v3_target_compile): Set timeout value from new proc.
(v3_target_compile_as_c): Ditto.
libmudflap/
PR testsuite/28870
* testsuite/lib/mfdg.exp (dg-test): Use new timeout support.
(dg-timeout): Remove.
(standard-wait): Remove.
* testsuite/lib/libmudflap.exp: Include new timeout library files.
(libmudflap_target_compile): Set timeout value from new proc.
libgomp/
PR testsuite/28870
* testsuite/lib/libgomp.exp: Include new timeout library files.
(libgomp_target_compile): Set timeout value from new proc.
Uros Bizjak [Wed, 26 Nov 2008 16:49:20 +0000 (17:49 +0100)]
sync.md (memory_barrier_nosse): Disable also for TARGET_64BIT.
* config/i386/sync.md (memory_barrier_nosse): Disable also for
TARGET_64BIT. Remove special asm template for TARGET_64BIT case.
(memory_barrier): Do not generate memory_barrier_nosse instruction
for TARGET_64BIT.
* config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT.
Fredrik Unger [Wed, 26 Nov 2008 12:32:43 +0000 (13:32 +0100)]
floatuntisf.c (__floatuntisf): Correct function name from __floatundisf.
* config/soft-fp/floatuntisf.c (__floatuntisf): Correct
function name from __floatundisf.
* config/soft-fp/fixdfti.c (__fixdfti): Correct argument type to
DFtype.
Kai Tietz [Wed, 26 Nov 2008 10:25:38 +0000 (11:25 +0100)]
calls.c (expand_call): Pass to REG_PARM_STACK_SPACE the type of the function...
2008-11-26 Kai Tietz <kai.tietz@onevision.com>
PR/38227
* calls.c (expand_call): Pass to REG_PARM_STACK_SPACE
the type of the function, when there is no FUNCTION_DECL available.
OUTGOING_REG_PARM_STACK_SPACE pass fntype, when no fndecl is available.
(compute_argument_block_size): Add fntype argument.
OUTGOING_REG_PARM_STACK_SPACE pass fntype, when no fndecl is available.
(emit_library_call_value_1): Likewise.
OUTGOING_REG_PARM_STACK_SPACE pass fntype, when no fndecl is available.
* config/i386/i386.c (ix86_reg_parm_stack_space): Handle function types.
* doc/tm.texi (REG_PARM_STACK_SPACE): Adjust documentation.
Daniel Berlin [Wed, 26 Nov 2008 09:46:23 +0000 (09:46 +0000)]
re PR tree-optimization/37869 (PTA results wrong for "non-pointer" variables)
2008-11-25 Daniel Berlin <dberlin@dberlin.org>
Richard Guenther <rguenther@suse.de>
PR tree-optimization/37869
* tree-ssa-structalias.c (struct constraint_graph): Remove
pt_used and number_incoming members.
(build_pred_graph): Do not allocate them.
(condense_visit): Do not use them.
(label_visit): Likewise.
(free_var_substitution_info): Do not free them.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r142213
* ira-int.h (struct ira_loop_tree_node): New member to_remove_p.
* ira-color.c (allocno_spill_priority): New function.
(remove_allocno_from_bucket_and_push, push_allocno_to_spill):
Print more info about the spilled allocno.
(push_allocnos_to_stack): Use allocno_spill_priority. Add more
checks on bad spill.
* ira-build.c (loop_node_to_be_removed_p): Remove.
(loop_compare_func, mark_loops_for_removal): New functions.
(remove_uneccesary_loop_nodes_from_loop_t): Use member
to_remove_p.
(remove_unnecessary_allocnos): Call mark_loops_for_removal.
* ira.c (ira): Don't change flag_ira_algorithm.
* params.def (ira-max-loops-num): Change the value.
Maxim Kuvyrkov [Tue, 25 Nov 2008 22:08:13 +0000 (22:08 +0000)]
m68k.md (extendsidi2, [...]): Merge, clean up.
* config/m68k/m68k.md (extendsidi2, extendsidi2_mem): Merge, clean up.
Disable unsupported alternative for ColdFire,
add new alternative that ColdFire can handle.
Eric Botcazou [Tue, 25 Nov 2008 21:25:52 +0000 (21:25 +0000)]
regrename.c (merge_overlapping_regs): Add registers artificially defined at the top of the basic block to the set of...
* regrename.c (merge_overlapping_regs): Add registers artificially
defined at the top of the basic block to the set of live ones just
before the first insn.
H.J. Lu [Tue, 25 Nov 2008 15:33:27 +0000 (15:33 +0000)]
re PR middle-end/37843 (unaligned stack in main due to tail call optimization)
gcc/
2008-11-25 H.J. Lu <hongjiu.lu@intel.com>
Joey Ye <joey.ye@intel.com>
PR middle-end/37843
* config/i386/i386.c (ix86_function_ok_for_sibcall): Return
false if we need to align the outgoing stack.
(ix86_update_stack_boundary): Check parm_stack_boundary.
Mikael Morin [Tue, 25 Nov 2008 13:27:26 +0000 (14:27 +0100)]
re PR fortran/36463 (gfc_get_default_type(): Bad symbol)
2008-11-25 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/36463
* expr.c (replace_symbol): Don't replace the symtree
if the expresion is an intrinsic function. Don't create
non-existent symtrees. Use symbol's name instead of symtree's,
different in case of module procedure dummy arguments.
2008-11-25 Mikael Morin <mikael.morin@tele2.fr>
PR fortran/36463
* gfortran.dg/proc_decl_20.f90: New test.
Richard Guenther [Tue, 25 Nov 2008 10:34:11 +0000 (10:34 +0000)]
re PR middle-end/38151 (structures with _Complex arguments are not passed correctly)
2008-11-25 Richard Guenther <rguenther@suse.de>
PR middle-end/38151
PR middle-end/38236
* tree-ssa-alias.c (struct alias_info): Remove written_vars.
Remove dereferenced_ptrs_store and dereferenced_ptrs_load
in favor of dereferenced_ptrs.
(init_alias_info): Adjust.
(delete_alias_info): Likewise.
(compute_flow_insensitive_aliasing): Properly
include all aliased variables.
(update_alias_info_1): Use dereferenced_ptrs.
(setup_pointers_and_addressables): Likewise.
(get_smt_for): Honor ref-all pointers and pointers with known alias
set properly.
* config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers.
* gcc.c-torture/execute/pr38151.c: New testcase.
* gcc.c-torture/execute/pr38236.c: Likewise.
Paul Thomas [Mon, 24 Nov 2008 06:34:16 +0000 (06:34 +0000)]
re PR fortran/34820 (internal compiler error: in gfc_conv_descriptor_data_get, at fortran/trans-array.c:147)
2008-11-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34820
* trans-expr.c (gfc_conv_function_call): Remove all code to
deallocate intent out derived types with allocatable
components.
(gfc_trans_assignment_1): An assignment from a scalar to an
array of derived types with allocatable components, requires
a deep copy to each array element and deallocation of the
converted rhs expression afterwards.
* trans-array.c : Minor whitespace.
* trans-decl.c (init_intent_out_dt): Add code to deallocate
allocatable components of derived types with intent out.
(generate_local_decl): If these types are unused, set them
referenced anyway but allow the uninitialized warning.
PR fortran/34143
* trans-expr.c (gfc_trans_subcomponent_assign): If a conversion
expression has a null data pointer argument, nullify the
allocatable component.
PR fortran/32795
* trans-expr.c (gfc_trans_subcomponent_assign): Only nullify
the data pointer if the source is not a variable.
2008-11-24 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34820
* gfortran.dg/alloc_comp_constructor_6.f90 : New test.
* gfortran.dg/alloc_comp_basics_1.f90 : Reduce expected refs to
'builtin_free' from 24 to 18.
PR fortran/34143
* gfortran.dg/alloc_comp_constructor_5.f90 : New test.
PR fortran/32795
* gfortran.dg/alloc_comp_constructor_4.f90 : New test.
Helge Deller [Sun, 23 Nov 2008 21:14:59 +0000 (21:14 +0000)]
linux-atomic.c (EBUSY): Define if not _LP64.
* pa/linux-atomic.c (EBUSY): Define if not _LP64.
(__kernel_cmpxchg): Return -EBUSY if the kernel LWS call
succeeded and lws_ret is not equal to oldval.
Adam Nemet [Sat, 22 Nov 2008 17:02:14 +0000 (17:02 +0000)]
mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
* config/mips/mips.md (rdhwr): Rename to rdhwr_synci_step_<mode>.
Use constant 1 as the operand.
* config/mips/mips.c (mips_expand_synci_loop): Make INC Pmode.
Rename gen_rdhwr to gen_rdhwr_synci_step_si or
gen_rdhwr_synci_step_di depending on the size of Pmode.
Uros Bizjak [Sat, 22 Nov 2008 14:16:57 +0000 (15:16 +0100)]
re PR target/38222 (gcc.target/i386/sse4_2-popcntl.c fails on i686-apple-darwin9)
PR target/38222
* config/i386/i386.md (SWI248): New mode iterator.
(SWI32): Remove mode iterator.
(popcount<mode>2): Rename from popcounthi2, popcountsi2 and
popcounthi2 insn patterns. Macroize pattern using SWI248 mode
iterator. Generate popcnt mnemonic without mode extensions
for Darwin x86 targets.
(*popcount<mode>2_cmp): Ditto.
(*popcountsi2_cmp_zext): Generate popcnt mnemonic without mode
extensions for Darwin x86 targets.
testsuite/ChangeLog:
PR target/38222
* gcc.target/i386/funcspec-3.c: Scan for popcnt on Darwin targets.
ira-costs.c (find_allocno_class_costs): Work out the maximum allocno_costs value of the classees with the lowest...
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.
Jakub Jelinek [Sat, 22 Nov 2008 08:10:41 +0000 (09:10 +0100)]
re PR libfortran/37839 (st_parameter_dt has unwanted padding, is out of sync with compiler)
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.
* 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.
Jakub Jelinek [Fri, 21 Nov 2008 21:59:33 +0000 (22:59 +0100)]
re PR middle-end/38200 (internal compiler error: in find_func_aliases, at tree-ssa-structalias.c:3905)
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.
Kai Tietz [Fri, 21 Nov 2008 12:07:43 +0000 (12:07 +0000)]
Object.m (errno): Replaced by errno.h include.
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.
Uros Bizjak [Fri, 21 Nov 2008 08:54:18 +0000 (09:54 +0100)]
mmx.md (mmx_nand<mode>3): Rename to mmx_andnot<mode>3.
* 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.