Jakub Jelinek [Fri, 4 Mar 2011 23:07:20 +0000 (00:07 +0100)]
re PR tree-optimization/47967 (ICE: verify_stmts failed: conversion of register to a different size with -fipa-cp on undefined code)
PR tree-optimization/47967
* ipa-cp.c (build_const_val): Return NULL instead of creating
VIEW_CONVERT_EXPR for mismatching sizes.
(ipcp_create_replace_map): Return NULL if build_const_val failed.
(ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
give up on versioning.
Jan Hubicka [Fri, 4 Mar 2011 18:49:23 +0000 (19:49 +0100)]
re PR lto/47497 (SPEC CPU 2006 failed to link with LTO -fuse-linker-plugin -fwhole-program)
PR lto/47497
* lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
(lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
* cgraph.h (cgraph_same_body_alias, cgraph_add_thunk): Add node pointers.
* cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
cgraph_add_thunk): Add node pointers.
* lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
associated to right node.
(input_node): Update use of cgraph_same_body_alias
and cgraph_add_thunk.
* optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
and cgraph_add_thunk.
* method.c (make_alias_for_thunk, use_thunk): Likewise.
* mangle.c (mangle_decl): Likewise.
Changpeng Fang [Fri, 4 Mar 2011 17:56:39 +0000 (17:56 +0000)]
Introduce flag -mprefer-avx128 for the auto-vectorizer to generate only 128-bit avx insns.
* config/i386/i386.opt (mprefer-avx128): New flag.
* config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit mode
when the flag -mprefer-avx128 is on.
Jakub Jelinek [Thu, 3 Mar 2011 16:09:55 +0000 (17:09 +0100)]
re PR c/47963 (ICE: tree check: expected tree that contains 'decl common' structure, have 'integer_cst' in is_global_var, at tree-flow-inline.h:599 on invalid code with -fopenmp)
PR c/47963
* gimplify.c (omp_add_variable): Only call omp_notice_variable
on TYPE_SIZE_UNIT if it is a DECL.
* gcc.dg/gomp/pr47963.c: New test.
* g++.dg/gomp/pr47963.C: New test.
Jakub Jelinek [Thu, 3 Mar 2011 16:06:33 +0000 (17:06 +0100)]
re PR debug/47283 (ICE in refs_may_alias_p_1, at tree-ssa-alias.c)
PR debug/47283
* cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
first operand is not is_gimple_mem_ref_addr, try to fold it.
If the operand still isn't is_gimple_mem_ref_addr, clear
MEM_EXPR on op0.
re PR debug/47283 (ICE in refs_may_alias_p_1, at tree-ssa-alias.c)
2011-03-03 Richard Guenther <rguenther@suse.de>
PR middle-end/47283
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
match comment.
(refs_may_alias_p_1): For release branches return true if
we are confused by our input.
Ralf Wildenhues [Thu, 3 Mar 2011 04:14:29 +0000 (04:14 +0000)]
docs: fix typos and markup nits in Fortran manual.
gcc/fortran/:
* invoke.texi (Option Summary, Fortran Dialect Options)
(Preprocessing Options, Runtime Options, Code Gen Options):
Fix vertical list spacing by using @itemx for additinoal
items, empty line before @table. Fix typos.
Jason Merrill [Thu, 3 Mar 2011 02:49:19 +0000 (21:49 -0500)]
re PR c++/47774 ([C++0x] constexpr specifier on ctor not ignored when template instantiation causes ctor to not satify constexpr requirements)
PR c++/47774
* tree.c (build_vec_init_elt): Split out from...
(build_vec_init_expr): ...here.
(diagnose_non_constexpr_vec_init): New fn.
* semantics.c (potential_constant_expression_1): Use it.
* cp-tree.h: Declare it.
re PR rtl-optimization/47925 (delete_trivially_dead_insns mishandles volatile mems)
gcc/
PR rtl-optimization/47925
* cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
with side effects. Remove the more-specific check for volatile asms.
gcc/testsuite/
PR rtl-optimization/47925
* gcc.c-torture/execute/pr47925.c: New test.
re PR lto/46911 (ICE: SIGSEGV in add_name_and_src_coords_attributes (dwarf2out.c:17792) with -flto -g)
2011-03-01 Richard Guenther <rguenther@suse.de>
PR lto/46911
* lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
Do not stream DECL_ABSTRACT_ORIGIN.
(lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
* lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
Do not stream DECL_ABSTRACT_ORIGIN.
(lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
Jerry DeLisle [Tue, 1 Mar 2011 02:24:50 +0000 (02:24 +0000)]
re PR libfortran/47567 (Wrong output for small absolute values with F editing)
2011-02-28 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/47567
* io/write_float.def (output_float): Move handling of w = 0 to after
output rounding. Check for zero and set zero_flag accordingly. Set
width according to zero_flag. Add better comments.
Kai Tietz [Mon, 28 Feb 2011 18:23:25 +0000 (18:23 +0000)]
re PR debug/28047 (DWARF output_file_names should really understand DOS pathnames)
2011-02-28 Kai Tietz <kai.tietz@onevision.com>
PR debug/28047
* dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
(lookup_filename): Likewise.
* final.c (remap_debug_filename): Use filename_ncmp instead of
strncmp.
2011-02-28 Kai Tietz <kai.tietz@onevision.com>
* filename_cmp.c (filename_ncmp): New function.
* functions.texi: Regenerated.
Jakub Jelinek [Mon, 28 Feb 2011 17:05:07 +0000 (18:05 +0100)]
re PR middle-end/47893 (4.6 miscompiles mesa on i686)
PR middle-end/47893
* rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
(assign_stack_local_1): Change last argument type to int.
* function.c (assign_stack_local_1): Replace reduce_alignment_ok
argument with kind. If bit ASLK_RECORD_PAD is not set in it,
don't record padding space into frame_space_list nor
use those areas.
(assign_stack_local): Adjust caller.
(assign_stack_temp_for_type): Call assign_stack_local_1 instead
of assign_stack_local, pass 0 as last argument.
* caller-save.c (setup_save_areas): Adjust assign_stack_local_1
callers.
Jakub Jelinek [Mon, 28 Feb 2011 15:47:18 +0000 (16:47 +0100)]
re PR debug/47283 (ICE in refs_may_alias_p_1, at tree-ssa-alias.c)
PR debug/47283
* cfgexpand.c (convert_debug_memory_address): Add AS parameter.
Use target address_mode and pointer_mode hooks instead of hardcoded
Pmode and ptr_mode. Handle some simple cases of extending if
POINTERS_EXTEND_UNSIGNED < 0.
(expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
Call convert_debug_memory_address.
(expand_debug_expr) <case ADDR_EXPR>: Pass as to
convert_debug_memory_address.
Nicola Pero [Mon, 28 Feb 2011 14:48:23 +0000 (14:48 +0000)]
In libobjc/: 2011-02-28 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2011-02-28 Nicola Pero <nicola.pero@meta-innovation.com>
* selector.c (sel_getTypedSelector): Return NULL if there are
multiple selectors with conflicting types.
* objc/runtime.h (sel_getTypedSelector): Updated documentation.
In gcc/testsuite/:
2011-02-28 Nicola Pero <nicola.pero@meta-innovation.com>
* objc.dg/gnu-api-2-sel.m: Test that sel_getTypedSelector return
NULL in case of a selector with conflicting types.
* obj-c++.dg/gnu-api-2-sel.mm: Same change.
Jerry DeLisle [Sun, 27 Feb 2011 20:06:10 +0000 (20:06 +0000)]
re PR fortran/47778 (reading two arrays of structures from namelist fails)
2011-02-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/47778
* io/list_read.c (namelist_read): Intialize the error string buffere.
If pprev_nl was used during the previous namelist read and the rank
was zero, reset the pointer to NULL for the next namelist read.
Jakub Jelinek [Sun, 27 Feb 2011 19:37:35 +0000 (20:37 +0100)]
re PR middle-end/47903 (var-tracking.c: valgrind error)
PR middle-end/47903
* real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
r isn't op0 nor op1.