Alexander Ivchenko [Fri, 25 May 2012 13:03:18 +0000 (13:03 +0000)]
re PR target/53435 ((ix86_expand_vec_perm) and (ix86_expand_vec_perm) do not pass arguments to avx2_permvar8s[f,i] correctly)
2012-05-21 Alexander Ivchenko <alexander.ivchenko@intel.com>
PR target/53435
* config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
(ix86_expand_vec_perm): Use int mode instead of float.
(expand_vec_perm_pshufb): Remove handling of useseless type
conversion.
From-SVN: r187881
H.J. Lu [Fri, 25 May 2012 11:47:05 +0000 (11:47 +0000)]
Remove any .comment sections if the first cmp failed
PR bootstrap/53472
* contrib/compare-debug (remove_comment): New function.
Remove any .comment sections if the first cmp failed.
From-SVN: r187879
Eric Botcazou [Fri, 25 May 2012 09:57:15 +0000 (09:57 +0000)]
Fix formatting
From-SVN: r187875
Eric Botcazou [Fri, 25 May 2012 09:24:08 +0000 (09:24 +0000)]
re PR ada/52362 (gnat.dg/lto8.adb FAILs with gas/gld)
PR ada/52362
* config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
gnu_ld variables to yes.
* configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
(HAVE_GNU_AS): Likewise.
* config.in: Regenerate.
* configure: Likewise.
ada/
* link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker.
(__gnat_using_gnu_linker): Delete.
* gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here...
Declare Object_File_Option string constant and Using_GNU_response_file
boolean constant.
(Process_Binder_File): ...instead of here. Delete Using_GNU_Linker,
Opening and Closing local variables. Do not handle the GNU linker
specially.
(Write_RF): New procedure to write into the response file. Escape some
characters if a GNU response file is used. Keep track of error status.
Invoke Write_RF to write into the response file. Delete the file only
if the link was successful.
* mlib-utl.adb: Do not `with' package System.
(Gcc): Likewise. Declare Object_File_Option string constant and
Using_GNU_response_file boolean constant.
(Write_RF): Take a string instead of address and length. Escape some
characters if a GNU response file is used.
Invoke Write_RF to write into the response file. Delete the file only
if the link was successful. Do not warn if it cannot be deleted.
From-SVN: r187874
Tristan Gingold [Fri, 25 May 2012 08:58:25 +0000 (08:58 +0000)]
i386.c (struct ix86_frame): Remove unused frame field.
gcc/
2012-05-25 Tristan Gingold <gingold@adacore.com>
* config/i386/i386.c (struct ix86_frame): Remove unused frame field.
(ix86_compute_frame_layout): Fix type of stack_alignment_needed
and preferred_alignment.
gcc/testsuite
2012-05-25 Tristan Gingold <gingold@adacore.com>
* gcc.target/i386/large-frame.c: New.
From-SVN: r187873
Tristan Gingold [Fri, 25 May 2012 08:47:07 +0000 (08:47 +0000)]
ia64-common.c (ia64_except_unwind_info): Fix typo.
2012-05-25 Tristan Gingold <gingold@adacore.com>
* common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
From-SVN: r187872
Olivier Hainque [Fri, 25 May 2012 08:20:03 +0000 (08:20 +0000)]
tramp.S (trampoline_setup): Use a longcall sequence in the non pic case on VxWorks.
libgcc/
* config/rs6000/vxworks/tramp.S (trampoline_setup): Use a longcall
sequence in the non pic case on VxWorks.
From-SVN: r187871
Thomas Schwinge [Fri, 25 May 2012 08:04:28 +0000 (10:04 +0200)]
fold-const.c (optimize_bit_field_compare): Abort early in the strict volatile bitfields case.
gcc/
* fold-const.c (optimize_bit_field_compare): Abort early in the strict
volatile bitfields case.
From-SVN: r187869
GCC Administrator [Fri, 25 May 2012 00:17:44 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r187865
Ian Lance Taylor [Thu, 24 May 2012 21:07:18 +0000 (21:07 +0000)]
runtime: Make runtime.Stack actually work.
From-SVN: r187854
Dodji Seketeli [Thu, 24 May 2012 21:05:49 +0000 (21:05 +0000)]
PR bootstrap/53459 - unused local typedef when building on altivec
libcpp/
PR bootstrap/53459
* lex.c (search_line_fast): Remove unused typedef check_count.
From-SVN: r187853
Ian Lance Taylor [Thu, 24 May 2012 20:47:09 +0000 (20:47 +0000)]
runtime: Correct definition of __go_file_line to match declaration.
From Rainer Orth.
From-SVN: r187851
Ian Lance Taylor [Thu, 24 May 2012 20:45:37 +0000 (20:45 +0000)]
runtime: Copy runtime_printf from other Go library.
From-SVN: r187850
Ian Lance Taylor [Thu, 24 May 2012 20:44:34 +0000 (20:44 +0000)]
runtime: Copy runtime_printf from other Go library.
From-SVN: r187848
Pat Haugen [Thu, 24 May 2012 20:28:31 +0000 (20:28 +0000)]
rs6000.c (rs6000_option_override_internal): Change rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Change
rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
(adjacent_mem_locations): Move some code to and call...
(get_memref_parts): ...new function.
(mem_locations_overlap): New function.
(rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
(is_mem_ref): Rename to...
(find_mem_ref): ...this. Return MEM rtx.
(get_store_dest): Remove function.
(is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
new parameter and adjust calls.
(rs6000_is_costly_dependence): Update calls for extra arg. Make sure
mem refs overlap for true_store_to_load_dep_costly.
(rs6000_sched_reorder2): Update calls for extra arg. Adjust args
passed to adjacent_mem_locations.
(is_costly_group): Walk resolved dependency list.
(force_new_group): Emit group ending nop for Power6/Power7.
* config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
(group_ending_nop): New define_insn.
* gcc.target/powerpc/lhs-1.c: New.
* gcc.target/powerpc/lhs-2.c: New.
* gcc.target/powerpc/lhs-3.c: New.
From-SVN: r187847
Janne Blomqvist [Thu, 24 May 2012 20:19:37 +0000 (23:19 +0300)]
PR 53456 CPU timing fallback using clock_gettime.
2012-05-24 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/53456
* intrinsics/time_1.h (gf_cputime): Fallback for clock_gettime.
From-SVN: r187846
Dodji Seketeli [Thu, 24 May 2012 19:37:45 +0000 (19:37 +0000)]
Make unwound macro expansion trace less redundant
As discussed previously, the unwinder for macro expansion is quite
verbose [1]. This patch proposes to address that shortcoming.
Consider this test case:
$ cat -n test.c
1 #define MYMAX(A,B) __extension__ ({ __typeof__(A) __a = (A); \
2 __typeof__(B) __b = (B); __a < __b ? __b : __a; })
3
4 struct mystruct {};
5 void
6 foo()
7 {
8 struct mystruct p;
9 float f = 0.0;
10 MYMAX (p, f);
11 }
$
The output of the compiler from trunk yields:
$ cc1 -quiet ./test.c
./test.c: In function ‘foo’:
./test.c:2:31: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’)
__typeof__(B) __b = (B); __a < __b ? __b : __a; })
^
./test.c:2:31: note: in expansion of macro 'MYMAX'
__typeof__(B) __b = (B); __a < __b ? __b : __a; })
^
./test.c:10:3: note: expanded from here
MYMAX (p, f);
^
$
After this patch, the compiler yields:
$ ./cc1 -quiet ./test.c
./test.c: In function ‘foo’:
./test.c:2:31: error: invalid operands to binary < (have ‘struct mystruct’ and ‘float’)
__typeof__(B) __b = (B); __a < __b ? __b : __a; })
^
./test.c:10:3: note: in expansion of macro 'MYMAX'
MYMAX (p, f);
^
$
The gotcha is, in the general case, we cannot simply eliminate the
context of the macro definition. That is, the line from the first
output that is redundant with the first diagnostic line that has
line/column number:
./test.c:2:31: note: in expansion of macro 'MYMAX'
__typeof__(B) __b = (B); __a < __b ? __b : __a; })
^
We cannot simply eliminate that context of macro definition because
there are cases where the first diagnostic that has a line/column
number doesn't point to a location inside the definition of the macro
where the relevant token is used. For instance:
$ cat -n test2.c
1 #define OPERATE(OPRD1, OPRT, OPRD2) \
2 OPRD1 OPRT OPRD2;
3
4 #define SHIFTL(A,B) \
5 OPERATE (A,<<,B)
6
7 #define MULT(A) \
8 SHIFTL (A,1)
9
10 void
11 g ()
12 {
13 MULT (1.0);// 1.0 << 1; <-- so this is an error.
14 }
$
Which yields without the patch:
$ cc1 -quiet ./test2.c
./test2.c: In function ‘g’:
./test2.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’)
OPERATE (A,<<,B)
^
./test2.c:2:9: note: in expansion of macro 'OPERATE'
OPRD1 OPRT OPRD2;
^
./test2.c:5:3: note: expanded from here
OPERATE (A,<<,B)
^
./test2.c:5:14: note: in expansion of macro 'SHIFTL'
OPERATE (A,<<,B)
^
./test2.c:8:3: note: expanded from here
SHIFTL (A,1)
^
./test2.c:8:3: note: in expansion of macro 'MULT'
SHIFTL (A,1)
^
./test2.c:13:3: note: expanded from here
MULT (1.0);// 1.0 << 1; <-- so this is an error.
^
$
Here, the line that has the context of macro definition:
./test2.c:2:9: note: in expansion of macro 'OPERATE'
OPRD1 OPRT OPRD2;
^
is useful, because the first diagnostic that has line/column number
wasn't pointing into the definition of the macro OPERATE, where the
token '<<' is used.
./test2.c:5:14: error: invalid operands to binary << (have ‘double’ and ‘int’)
OPERATE (A,<<,B)
^
So in this this case, displaying the macro definition context is not
redundant. I think it is even desirable.
The patch changes the output in that case to be:
./test2.c: In function ‘g’:
./test2.c:5:14: erreur: invalid operands to binary << (have ‘double’ and ‘int’)
OPERATE (A,<<,B)
^
./test2.c:2:9: note: in definition of macro 'OPERATE'
OPRD1 OPRT OPRD2;
^
./test2.c:8:3: note: in expansion of macro 'SHIFTL'
SHIFTL (A,1)
^
./test2.c:13:3: note: in expansion of macro 'MULT'
MULT (1.0);// 1.0 << 1; <-- so this is an error.
^
$
It's shorter, but I believe it has all the information that was
present before the patch.
[1]: http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00321.html
Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
gcc/
Make unwound macro expansion trace less redundant
* tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
context of macro definition in the trace, when it's redundant.
Update comments.
gcc/testsuite/
Make unwound macro expansion trace less redundant
* gcc.dg/cpp/macro-exp-tracking-1.c: Adjust.
* gcc.dg/cpp/macro-exp-tracking-2.c: Likewise.
* gcc.dg/cpp/macro-exp-tracking-3.c: Likewise.
* gcc.dg/cpp/macro-exp-tracking-4.c: Likewise.
* gcc.dg/cpp/macro-exp-tracking-5.c: Likewise.
* gcc.dg/cpp/pragma-diagnostic-2.c: Likewise.
From-SVN: r187845
Paolo Carlini [Thu, 24 May 2012 15:12:37 +0000 (15:12 +0000)]
re PR c++/53464 (Invalid default value for non-type template parameter is accepted)
2012-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53464
* g++.dg/cpp0x/constexpr-default1.C: New.
From-SVN: r187842
Olivier Hainque [Thu, 24 May 2012 14:58:49 +0000 (14:58 +0000)]
Fix typo in latest ChangeLog entry addition.
From-SVN: r187840
Olivier Hainque [Thu, 24 May 2012 14:57:11 +0000 (14:57 +0000)]
Makefile.in: move dependency on install-unwind_h from "install-leaf" to "install".
libgcc/
* Makefile.in: move dependency on install-unwind_h from
"install-leaf" to "install".
From-SVN: r187839
Olivier Hainque [Thu, 24 May 2012 14:51:33 +0000 (14:51 +0000)]
Makefile.in (clean): Remove libgcc_tm.stamp as well.
libgcc/
* Makefile.in (clean): Remove libgcc_tm.stamp as well.
Use a separate command for stamp removals.
From-SVN: r187838
Paolo Carlini [Thu, 24 May 2012 14:47:06 +0000 (14:47 +0000)]
re PR c++/32080 (Can goto a function try-block)
/cp
2012-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/32080
* parser.c (cp_parser_ctor_initializer_opt_and_function_body,
cp_parser_function_body): Add a bool parameter, true when parsing
a function-try-block.
(cp_parser_function_try_block): Pass true to the above.
(cp_parser_function_definition_after_declarator,
cp_parser_function_transaction): Adjust.
/testsuite
2012-05-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/32080
* g++.dg/eh/goto2.C: New.
From-SVN: r187837
Richard Guenther [Thu, 24 May 2012 12:46:53 +0000 (12:46 +0000)]
re PR middle-end/53460 (Internal compiler error: in calc_dfs_tree, at dominance.c:395)
2012-05-24 Richard Guenther <rguenther@suse.de>
PR middle-end/53460
* tree-profile.c (tree_profiling): Cleanup the CFG if
execute_fixup_cfg requests it.
* g++.dg/tree-prof/pr53460.C: New testcase.
From-SVN: r187831
Richard Guenther [Thu, 24 May 2012 12:36:40 +0000 (12:36 +0000)]
re PR bootstrap/53466 (Bootstrap failure)
2012-05-24 Richard Guenther <rguenther@suse.de>
PR bootstrap/53466
* g++.dg/debug/pr53466.C: New testcase.
From-SVN: r187830
Richard Guenther [Thu, 24 May 2012 12:33:49 +0000 (12:33 +0000)]
tree-flow.h (create_var_ann): Remove.
2012-05-24 Richard Guenther <rguenther@suse.de>
* tree-flow.h (create_var_ann): Remove.
* tree-dfa.c (create_var_ann): Remove and inline into its
single caller ...
(add_referenced_var_1): ... here.
* varpool.c (add_new_static_var): Do not call add_referenced_var
for global vars.
* gimple-fold.c (canonicalize_constructor_val): Likewise.
* tree-switch-conversion.c (build_one_array): Likewise.
* tree-profile.c (gimple_gen_ic_profiler): Likewise.
* tree-flow-inline.h (gimple_referenced_vars): Guard against
NULL fn argument.
* tree-inline.c (remap_gimple_op_r): Likewise. Check
gimple_referenced_vars instead of gimple_in_ssa_p.
(copy_tree_body_r): Likewise.
(setup_one_parameter): Likewise.
(declare_return_variable): Likewise.
(tree_function_versioning): Likewise.
From-SVN: r187829
Jakub Jelinek [Thu, 24 May 2012 11:51:09 +0000 (13:51 +0200)]
re PR tree-optimization/53465 (wrong code with -O1 -ftree-vrp)
PR tree-optimization/53465
* tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
vr0 into *vr, then vrp_meet that.
(vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
have any equivalences.
(vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
first time.
* gcc.c-torture/execute/pr53465.c: New test.
From-SVN: r187827
Jim MacArthur [Thu, 24 May 2012 11:07:57 +0000 (11:07 +0000)]
recog.c (reg_fits_class_p): Check both regno and regno + offset are hard registers.
2012-05-24 Jim MacArthur<jim.macarthur@arm.com>
* recog.c (reg_fits_class_p): Check both regno and regno + offset are
hard registers.
* regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
check end_regno - 1 is a hard register.
From-SVN: r187826
Richard Guenther [Thu, 24 May 2012 09:57:38 +0000 (09:57 +0000)]
varpool.c (add_new_static_var): Remove call to create_var_ann.
2012-05-24 Richard Guenther <rguenther@suse.de>
* varpool.c (add_new_static_var): Remove call to create_var_ann.
* tree-ssa-operands.c (create_vop_var): Likewise.
From-SVN: r187825
Richard Guenther [Thu, 24 May 2012 09:54:25 +0000 (09:54 +0000)]
re PR bootstrap/53466 (Bootstrap failure)
2012-05-24 Richard Guenther <rguenther@suse.de>
PR bootstrap/53466
* tree-ssa-live.c (remove_unused_scope_block_p): Properly
handle globals.
(remove_unused_locals): Pass global_unused_vars to
remove_unused_scope_block_p. Restore code walking all
referenced vars and pruning them.
From-SVN: r187824
Jan Hubicka [Thu, 24 May 2012 09:44:48 +0000 (11:44 +0200)]
tree.h (alias_diag_flags): Remove.
* tree.h (alias_diag_flags): Remove.
(alias_pair): Remove emitted_diags.
(finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
symbol_alias_set_t, symbol_alias_set_destroy,
symbol_alias_set_contains, propagate_aliases_backward): Remove.
* toplev.c (compile_file): Do not call finish_aliases_2
* cgraphunit.c (cgraph_process_new_functions): Do not call finish_aliases_1.
(handle_alias_pairs): Output diagnostics about aliases to externals.
(assemble_thunks_and_aliases): Use do_assemble_alias.
(output_weakrefs): Likewise.
(finalize_compilation_unit): Do not call finish_aliases_1.
* ipa.c (symtab_remove_unreachable_nodes): De not call remove_unreachable_alias_pairs.
* varasm.c (do_assemble_alias): Export.
(symbol_alias_set_create, symbol_alias_set_destroy, symbol_alias_set_contains,
symbol_alias_set_insert, propagate_aliases_forward, propagate_aliases_backward,
propagate_aliases_backward, trivially_visible_alias, trivially_defined_alias,
remove_unreachable_alias_pairs, finish_aliases_1, finish_aliases_2,
assemble_alias): Remove.
* output.h (do_assemble_alias): Declare.
* varpool.c (varpool_remove_unreferenced_decls): Do not call finish_aliases_1.
From-SVN: r187823
GCC Administrator [Thu, 24 May 2012 00:18:39 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r187822
Doug Evans [Wed, 23 May 2012 23:42:25 +0000 (23:42 +0000)]
leb128.h: #include stdint.h, inttypes.h.
* leb128.h: #include stdint.h, inttypes.h.
(read_uleb128_to_uint64): Renamed from read_uleb128_to_ull.
Change to take a uint64_t * argument instead of unsigned long long.
(read_sleb128_to_uint64): Renamed from read_sleb128_to_ll.
Change to take an int64_t * argument instead of long long.
From-SVN: r187818
Martin Jambor [Wed, 23 May 2012 22:23:54 +0000 (00:23 +0200)]
ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
2012-05-23 Martin Jambor <mjambor@suse.cz>
* ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
From-SVN: r187817
Tobias Burnus [Wed, 23 May 2012 20:35:30 +0000 (22:35 +0200)]
re PR fortran/51055 (deferred length character allocation: allocate(character(len=i)::s) rejected)
2012-05-23 Tobias Burnus <burnus@net-b.de>
PR fortran/51055
PR fortran/45170
* match.c (gfc_match_allocate): Set length_from_typespec
for characters.
* resolve.c (resolve_charlen): If set, don't check whether
the len is a specification expression.
2012-05-23 Tobias Burnus <burnus@net-b.de>
PR fortran/51055
PR fortran/45170
* gfortran.dg/allocate_with_typespec_6.f90: New.
From-SVN: r187811
Eric Botcazou [Wed, 23 May 2012 19:07:59 +0000 (19:07 +0000)]
gimple.c (gimple_types_compatible_p_1): Remove bogus size handling.
* gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
size handling.
(gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
(iterative_hash_gimple_type): Adjust comment.
(iterative_hash_canonical_type): Likewise. Hash the bounds of the
domain for an array type instead of the domain type itself.
From-SVN: r187807
Janne Blomqvist [Wed, 23 May 2012 18:52:47 +0000 (21:52 +0300)]
PR 53456 clock_gettime fallback for gf_gettime
2012-05-23 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/53456
* intrinsics/time_1.h (gf_gettime): Fallback for clock_gettime.
From-SVN: r187806
Richard Guenther [Wed, 23 May 2012 15:53:59 +0000 (15:53 +0000)]
Index...
Index: gcc/tree-sra.c
===================================================================
--- gcc/tree-sra.c (revision 187800)
+++ gcc/tree-sra.c (working copy)
@@ -2096,9 +2096,12 @@ analyze_access_subtree (struct access *root, struc
&& (TREE_CODE (root->type) != INTEGER_TYPE
|| TYPE_PRECISION (root->type) != root->size)
/* But leave bitfield accesses alone. */
- && (root->offset % BITS_PER_UNIT) == 0)
+ && (TREE_CODE (root->expr) != COMPONENT_REF
+ || !DECL_BIT_FIELD (TREE_OPERAND (root->expr, 1))))
{
tree rt = root->type;
+ gcc_assert ((root->offset % BITS_PER_UNIT) == 0
+ && (root->size % BITS_PER_UNIT) == 0);
root->type = build_nonstandard_integer_type (root->size,
TYPE_UNSIGNED (rt));
root->expr = build_ref_for_offset (UNKNOWN_LOCATION,
From-SVN: r187805
Georg-Johann Lay [Wed, 23 May 2012 15:25:22 +0000 (15:25 +0000)]
re PR target/53448 ([avr] ignoring __attribute__((aligned(2))))
PR target/53448
* config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
* config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
ASM_OUTPUT_ALIGN.
From-SVN: r187803
Paolo Carlini [Wed, 23 May 2012 14:19:27 +0000 (14:19 +0000)]
re PR c++/29185 (inconsistent warning: deleting array)
/cp
2012-05-23 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/29185
* decl2.c (delete_sanity): Extend 'deleting array' warning to
any array type.
/testsuite
2012-05-23 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/29185
* g++.dg/warn/delete-array-1.C: New.
From-SVN: r187801
Richard Biener [Wed, 23 May 2012 12:25:41 +0000 (12:25 +0000)]
tree-dfa.c (add_referenced_var_1): Do not add global vars.
2012-05-23 Richard Guenther <rguenther@suse.de>
* tree-dfa.c (add_referenced_var_1): Do not add global vars.
* tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
via the global_unused_vars bitmap.
(remove_unused_locals): Handle global vars in local-decls via
a global_unused_vars bitmap instead of the used flag in the
var annotation. Simplify global variable handling and removal.
* gcc.dg/torture/pr39074-2.c: Adjust.
* gcc.dg/torture/pr39074.c: Likewise.
* gcc.dg/torture/pta-structcopy-1.c: Likewise.
* gcc.dg/tree-ssa/alias-19.c: Likewise.
From-SVN: r187800
Jan Hubicka [Wed, 23 May 2012 09:47:10 +0000 (11:47 +0200)]
re PR tree-optimization/53426 (ICE:create_variable_info_for at ../../gcc-trunk/gcc/tree-ssa-structalias.c:5581)
PR middle-end/53426
* tree-ssa-structalias.c (create_variable_info_for): Skip constructors from
other partitions.
From-SVN: r187799
Jan Hubicka [Wed, 23 May 2012 09:23:40 +0000 (11:23 +0200)]
re PR middle-end/53161 (ICE with weakref function and a function which takes vector types)
PR middle-end/53161
* symtab.c (symtab_register_node): Fix ordering issue.
From-SVN: r187798
Robert Mason [Wed, 23 May 2012 08:52:09 +0000 (08:52 +0000)]
re PR libfortran/53445 (No sticky bit on VxWorks - fix chmod.c)
2012-05-23 Robert Mason <rbmj@verizon.net>
Tobias Burnus <burnus@net-b.de>
PR libfortran/53445
* intrinsics/chmod.c (chmod_func): Ignore S_ISVTX on VxWorks.
Co-Authored-By: Tobias Burnus <burnus@net-b.de>
From-SVN: r187797
Tobias Burnus [Wed, 23 May 2012 08:34:06 +0000 (10:34 +0200)]
re PR libfortran/53444 (Accommodate non-compliant strerror_r() on VxWorks.)
2012-05-23 Tobias Burnus <burnus@net-b.de>
PR libfortran/53444
* acinclude.m4 (LIBGFOR_CHECK_STRERROR_R): Add configure checks
* for
two- and three-argument versions of strerror_r.
* configure.ac (LIBGFOR_CHECK_STRERROR_R): Use it.
* runtime/error.c (gf_strerror): Handle two-argument version
of strerror_r.
* config.h.in: Regenerate.
* configure: Regenerate.
From-SVN: r187796
GCC Administrator [Wed, 23 May 2012 00:18:38 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r187788
John David Anglin [Tue, 22 May 2012 23:54:32 +0000 (23:54 +0000)]
re PR other/53231 (libatomic/tas_n.c:100:10: error: 'ret' undeclared (first use in this function))
PR other/53231
* tas_n.c (libat_test_and_set): Correct return. Remove unused variable.
From-SVN: r187783
Ian Lance Taylor [Tue, 22 May 2012 21:52:56 +0000 (21:52 +0000)]
runtime: Tweak runtime.Callers for Go 1 compatibility.
From-SVN: r187781
Doug Evans [Tue, 22 May 2012 17:47:49 +0000 (17:47 +0000)]
* leb128.h: New file.
From-SVN: r187780
Ian Lance Taylor [Tue, 22 May 2012 16:57:23 +0000 (16:57 +0000)]
runtime: Use getcontext, not setjmp, to save regs for GC.
From-SVN: r187777
Steven Drake [Tue, 22 May 2012 15:17:55 +0000 (15:17 +0000)]
gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
2012-05-22 Steven Drake <sbd@NetBSD.org>
* gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
From-SVN: r187775
David Edelsohn [Tue, 22 May 2012 14:15:51 +0000 (14:15 +0000)]
rs6000.c (rs6000_aix_asm_output_dwarf_table_ref): Use strip_name_encoding target hook.
* config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
Use strip_name_encoding target hook.
From-SVN: r187774
Tom Tromey [Tue, 22 May 2012 13:55:02 +0000 (13:55 +0000)]
demangle-expected: Add regression test.
http://sourceware.org/bugzilla/show_bug.cgi?id=14065
* testsuite/demangle-expected: Add regression test.
* cp-demangle.c (d_find_pack): Return NULL for
DEMANGLE_COMPONENT_UNNAMED_TYPE.
From-SVN: r187773
Richard Guenther [Tue, 22 May 2012 11:59:41 +0000 (11:59 +0000)]
tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
2012-05-22 Richard Guenther <rguenther@suse.de>
* tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
(init_function_for_compilation): Remove.
* tree-dfa.c (find_vars_r): Take struct function argument.
(find_referenced_vars_in): Adjust.
* tree-ssa-operands.c (clobber_stats): Remove.
(create_vop_var): Take struct function argument. Mark
virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
(init_ssa_operands): Take struct function argument.
(fini_ssa_operands): Do not dump dead stats.
* tree-ssa-operands.h (init_ssa_operands): Take struct function
argument.
* cgraphunit.c (init_lowered_empty_function): Adjust.
* lto-streamer-in.c (input_cfg): Likewise.
* tree-inline.c (initialize_cfun): Likewise.
* tree-into-ssa.c (rewrite_into_ssa): Likewise.
* omp-low.c (expand_omp_taskreg): Likewise. Avoid switching
cfun.
* gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
virtual operands are not registers.
From-SVN: r187772
Richard Guenther [Tue, 22 May 2012 11:21:30 +0000 (11:21 +0000)]
tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
2012-05-22 Richard Guenther <rguenther@suse.de>
* tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous
commit.
From-SVN: r187771
Tobias Burnus [Tue, 22 May 2012 10:10:47 +0000 (12:10 +0200)]
re PR fortran/53389 (-frealloc-lhs: memory leak when assigning array function result to allocatable array, where one of its supplied arguments is itself an array function result)
2012-05-22 Tobias Burnus <burnus@net-b.de>
PR fortran/53389
* trans-array.c (gfc_add_loop_ss_code): Don't evaluate
* expression, if
ss->is_alloc_lhs is set.
2012-05-22 Tobias Burnus <burnus@net-b.de>
PR fortran/53389
* gfortran.dg/realloc_on_assign_15.f90: New.
From-SVN: r187769
Richard Guenther [Tue, 22 May 2012 09:35:32 +0000 (09:35 +0000)]
re PR middle-end/51071 (ICE in gimple_has_side_effects, at gimple.c:2513)
2012-05-22 Richard Guenther <rguenther@suse.de>
PR middle-end/51071
* gcc.dg/torture/pr51071-2.c: New testcase.
From-SVN: r187768
Richard Guenther [Tue, 22 May 2012 09:33:42 +0000 (09:33 +0000)]
re PR middle-end/53437 (FAIL: gcc.dg/guality/inline-params.c -O0)
2012-05-22 Richard Guenther <rguenther@suse.de>
PR middle-end/53437
* tree-inline.c (setup_one_parameter): Create a dummy init
statement for unused parameters when not optimizing.
From-SVN: r187767
Richard Guenther [Tue, 22 May 2012 09:33:01 +0000 (09:33 +0000)]
tree-flow.h (add_referenced_var_1): Declare.
2012-05-22 Richard Guenther <rguenther@suse.de>
* tree-flow.h (add_referenced_var_1): Declare.
(add_referenced_var): Define.
* tree-dfa.c (referenced_var_check_and_insert): Avoid one hash
lookup.
(add_referenced_var): Rename to ...
(add_referenced_var_1): ... this. Take struct function argument.
From-SVN: r187766
Ramana Radhakrishnan [Tue, 22 May 2012 09:06:55 +0000 (09:06 +0000)]
re PR target/53334 (ICE in extract_insn, at recog.c:2131)
Fix PR target/53334
2012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
PR target/53334
* config/arm/arm-protos.h (arm_validize_comparison): Declare.
* config/arm/arm.c (arm_validize_comparison): Define.
* config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
arm_validize_comparison.
("cbranchdi4"): Likewise.
("cstoredi4"): Likewise.
("movsicc"): Likewise.
("movsfcc"): Likewise.
("movdfcc"): Likewise.
From-SVN: r187761
Dimitrios Apostolou [Tue, 22 May 2012 08:35:32 +0000 (08:35 +0000)]
df-scan.c (df_scan_alloc): Round up allocation pools size, reduce the mw_reg_pool size.
2012-05-22 Dimitrios Apostolou <jimis@gmx.net>
* df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
the mw_reg_pool size.
From-SVN: r187760
Paolo Bonzini [Tue, 22 May 2012 08:31:52 +0000 (08:31 +0000)]
re PR tree-optimization/53336 (invalid types in nop conversion)
gcc:
2012-05-16 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/53336
* tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
non-integer integral types to offset type and vice versa.
gcc/testsuite:
2012-05-16 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/53336
* g++.dg/torture/pr53336.C: New testcase.
From-SVN: r187759
Paolo Bonzini [Tue, 22 May 2012 08:29:10 +0000 (08:29 +0000)]
fix paths in previous ChangeLog entry
From-SVN: r187758
Dodji Seketeli [Tue, 22 May 2012 03:50:26 +0000 (03:50 +0000)]
PR c++/53322 - -Wunused-local-typedefs is not enabled by Wall or Wunused
As the audit trail of this shows, -Wunused-local-typedefs is not
turned on by -Wunused after all. Sigh.
Now that we have the EnabledBy construct for the *.opt files, it's
more precise and concise to use that to make -Wunused-local-typedefs
be triggered by -Wunused.
I have changed the gcc+.dg/warn/Wunused-local-typedefs.C test case to
make it use -Wunused instead of -Wunused-local-typedefs. I had to
adjust it to avoid the warnings due to the other -W* options triggered
by -Wunused there.
While testing the compiler, it turned out that some local typedefs
were not being used when the experimental "Concepts" support is turned
off, in the libstdc++ test suite. I also had to remove some obvious
useless local typedef usage in the fortran front-end. Fixed thus.
Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
gcc/c-family/
PR c++/53322
* c.opt (Wunused-local-typedefs): Use EnabledBy(Wunused).
libstdc++-v3/
PR c++/53322
* include/bits/stl_algobase.h (lower_bound)
(lexicographical_compare): Do not declare unused local typedefs
here when Concepts are turned off.
gcc/fortran/
PR c++/53322
* f95-lang.c (gfc_init_builtin_functions): Remove the unused
typedef builtin_type.
gcc/testsuite/
PR c++/53322
* g++.dg/warn/Wunused-local-typedefs.C: Adjust to use -Wunused
instead of -Wunused-local-typedefs.
From-SVN: r187757
GCC Administrator [Tue, 22 May 2012 00:18:48 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r187755
Paolo Carlini [Mon, 21 May 2012 23:40:55 +0000 (23:40 +0000)]
9780-2.cc: Avoid -Wall warnings.
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/22_locale/num_put/put/char/9780-2.cc: Avoid -Wall warnings.
* testsuite/29_atomics/atomic/cons/49445.cc: Likewise.
* testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
* Likewise.
* testsuite/23_containers/unordered_map/observers.cc: Likewise.
* testsuite/23_containers/unordered_map/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multimap/erase/2.cc: Likewise.
* testsuite/23_containers/unordered_multimap/insert/53115.cc: Likewise.
* testsuite/23_containers/unordered_multimap/observers.cc: Likewise.
* testsuite/23_containers/vector/debug/alloc_prop.cc: Likewise.
* testsuite/23_containers/unordered_set/observers.cc: Likewise.
* testsuite/23_containers/unordered_set/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
* testsuite/23_containers/unordered_multiset/erase/2.cc: Likewise.
* testsuite/23_containers/unordered_multiset/insert/53115.cc: Likewise.
* testsuite/23_containers/unordered_multiset/insert/multiset_range.cc:
* Likewise.
* testsuite/23_containers/unordered_multiset/observers.cc: Likewise.
From-SVN: r187751
Alan Modra [Mon, 21 May 2012 22:55:09 +0000 (08:25 +0930)]
aix.h (FP_SAVE_INLINE, [...]): Delete.
* aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
* darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
* sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE, V_SAVE_INLINE): Delete.
* config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
(rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
For ELF targets, use out-of-line restores for -Os and any number
of regs if the restore exits, and out-of-line gp save for two or
more regs. Use save_reg_p to test for holes in reg restore set.
Replace "#if" with "if".
From-SVN: r187750
Alan Modra [Mon, 21 May 2012 22:51:38 +0000 (08:21 +0930)]
rs6000.c (save_reg_p): New function.
* config/rs6000/rs6000.c (save_reg_p): New function.
(first_reg_to_save, first_fp_reg_to_save): Use it here.
(first_altivec_reg_to_save, restore_saved_cr): Likewise.
(emit_frame_save): Use gen_frame_store.
(gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
(rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
vrsave and toc.
(rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
vrsave, toc, gp and fp restores.
From-SVN: r187749
Alan Modra [Mon, 21 May 2012 22:49:51 +0000 (08:19 +0930)]
rs6000.c: Delete unnecessary forward declarations.
* config/rs6000/rs6000.c: Delete unnecessary forward declarations.
Move those with ATTRIBUTE_UNUSED to immediately before definitions.
Move function pointer variables after forward declarations.
(rs6000_builtin_support_vector_misalignment): Make static.
(rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
(rs6000_function_value, rs6000_can_eliminate): Likewise.
From-SVN: r187748
Patrick Marlier [Mon, 21 May 2012 22:48:00 +0000 (22:48 +0000)]
eh_cpp.cc: Fix __cxa_end_catch declaration.
2012-05-21 Patrick Marlier <patrick.marlier@gmail.com>
* eh_cpp.cc: Fix __cxa_end_catch declaration.
From-SVN: r187747
Paolo Carlini [Mon, 21 May 2012 22:17:54 +0000 (22:17 +0000)]
re PR c++/53361 (Could not convert ‘{0, 0, 0}’ from ‘<brace-enclosed initializer list>’ to ‘std::array<unsigned int, 3ul>’)
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53361
* testsuite/23_containers/array/cons/53361.cc: New.
From-SVN: r187746
Bernd Schmidt [Mon, 21 May 2012 21:37:01 +0000 (21:37 +0000)]
re PR rtl-optimization/53373 (ICE on valid code with -mavx)
PR rtl-optimization/53373
* caller-save.c (save_call_clobbered_regs): Look into a possible
PARALLEL manually rather than using single_set on a call insn.
From-SVN: r187745
Jakub Jelinek [Mon, 21 May 2012 21:05:33 +0000 (23:05 +0200)]
re PR tree-optimization/53436 (Volatile behaves strange with OpenMP)
PR tree-optimization/53436
* omp-low.c (omp_build_component_ref): New function.
(build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
From-SVN: r187741
Uros Bizjak [Mon, 21 May 2012 19:32:55 +0000 (21:32 +0200)]
i386.c (put_condition_code): Change "reverse" and "fp" arguments to bool.
* config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
arguments to bool.
(ix86_print_operand) <case 'O'>: Look at mode size of the operand.
Do not print '.' here. Output operand lossage error for unhandled
sizes. Move.
<case '*'>: Move.
<case '&'>: Ditto.
<case 'Y'>: Ditto.
<case 'z'>: Hardcode "code" argument into error strings.
<case 'Z'>: Ditto.
<case 'D'>: Merge AVX and non-AVX codes.
<case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
Update call to put_condition_code.
From-SVN: r187734
Andrew Pinski [Mon, 21 May 2012 18:56:35 +0000 (18:56 +0000)]
re PR bootstrap/53183 (libgcc does not always figure out the size of double/long double)
2012-05-21 Andrew Pinski <apinski@cavium.com>
PR bootstrap/53183
* configure.ac: Define the default includes to being none.
* configure: Regenerate.
From-SVN: r187732
Andreas Schwab [Mon, 21 May 2012 18:43:27 +0000 (18:43 +0000)]
m68k.md (*clzsi2_cf): Renamed from clzsi2.
* config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
CC_STATUS_INIT.
(clzsi2): New expander.
(*clzsi2_68k): New insn.
* config/m68k/m68k.h: Update comment about
CLZ_DEFINED_VALUE_AT_ZERO.
From-SVN: r187731
Aldy Hernandez [Mon, 21 May 2012 18:02:17 +0000 (18:02 +0000)]
gimple.h (gimple_set_in_transaction): Remove.
* gimple.h (gimple_set_in_transaction): Remove.
(gimple_in_transaction): Look in BB instead.
(gimple_statement_base): Remove in_transaction field.
* basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
* trans-mem.c (compute_transaction_bits): Place transaction bit
information into basic blocks.
From-SVN: r187729
Benjamin Kosnik [Mon, 21 May 2012 17:34:25 +0000 (17:34 +0000)]
re PR bootstrap/52700 (lib* configure fails on --enable-symvers=gnu-versioned-namespace.)
2012-05-21 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/52700
* configure.ac: Allow gnu, gnu-versioned-namespace for
--enable-symvers arguments.
* configure: Regenerate.
From-SVN: r187728
Andreas Schwab [Mon, 21 May 2012 17:21:44 +0000 (17:21 +0000)]
expr.c (get_def_for_expr_class): Define only if HAVE_conditional_move.
* expr.c (get_def_for_expr_class): Define only if
HAVE_conditional_move.
(convert_tree_comp_to_rtx): Likewise.
From-SVN: r187727
John David Anglin [Mon, 21 May 2012 16:27:40 +0000 (16:27 +0000)]
re PR java/52815 (class.c:2815:53: error: 'JCR_SECTION_NAME' was not declared in this scope)
PR java/52815
* class.c (emit_register_classes_in_jcr_section): Revise placement
of #ifdef JCR_SECTION_NAME.
From-SVN: r187724
Joseph Myers [Mon, 21 May 2012 16:01:01 +0000 (17:01 +0100)]
Fix PR number in ChangeLogs.
From-SVN: r187723
Uros Bizjak [Mon, 21 May 2012 15:46:25 +0000 (17:46 +0200)]
re PR target/53399 ("*ffs" pattern generates wrong code with BMI enabled)
PR target/53399
* config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
for TARGET_BMI.
(ffssi2_no_cmove): Ditto.
(*ffs<mode>_1): Remove insn pattern.
(*tzcnt<mode>_1): New insn pattern.
(*bsf<mode>1): Ditto.
From-SVN: r187722
Paolo Carlini [Mon, 21 May 2012 15:12:13 +0000 (15:12 +0000)]
re PR c++/51184 (Abstract class in function return type)
/cp
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51184
* decl.c (grokdeclarator): Diagnose functions returning abstract
class types as TYPENAME.
* cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add.
* except.c (is_admissible_throw_operand_or_catch_parameter): Use it.
* pt.c (tsubst): Likewise.
* semantics.c (trait_expr_value): Likewise.
/testsuite
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51184
* g++.dg/other/abstract4.C: New-
/cp
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/40821
* parser.c (cp_parser_attributes_opt): Enforce error checking of
unbalanced parentheses in the presence of tentative parsing.
/testsuite
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/40821
* g++.dg/ext/attrib46.C: New.
From-SVN: r187720
Richard Guenther [Mon, 21 May 2012 14:53:21 +0000 (14:53 +0000)]
tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for more referenced vars.
2012-05-21 Richard Guenther <rguenther@suse.de>
* tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
more referenced vars.
* tree-ssa-live.c (mark_all_vars_used_1): Only set the used
flag on variables that have a var-annotation.
From-SVN: r187719
Joseph Myers [Mon, 21 May 2012 14:42:26 +0000 (15:42 +0100)]
re PR c/53418 (ICE at gimplify.c:7773)
PR c/53148
* c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
from folded operands before wrapping another around the
conditional expression.
testsuite:
* gcc.c-torture/compile/pr53418-1.c,
gcc.c-torture/compile/pr53418-2.c: New tests.
From-SVN: r187718
Jakub Jelinek [Mon, 21 May 2012 14:29:11 +0000 (16:29 +0200)]
re PR tree-optimization/53366 (wrong code generation by tree vectorizer using AVX)
PR tree-optimization/53366
* tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
tests if complex_numbers == 2, but there are non-complex number loads
too.
* gcc.dg/torture/pr53366-1.c: New test.
* gcc.dg/torture/pr53366-2.c: New test.
* gcc.target/i386/pr53366-1.c: New test.
* gcc.target/i386/pr53366-2.c: New test.
From-SVN: r187717
Jakub Jelinek [Mon, 21 May 2012 14:27:10 +0000 (16:27 +0200)]
re PR middle-end/53409 (ICE: vector VEC(vec_void_p,base) index domain error, in vinfo_for_stmt at tree-vectorizer.h:630)
PR tree-optimization/53409
* tree-vect-loop.c (vect_analyze_loop_operations): Don't check
vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
* gcc.c-torture/compile/pr53409.c: New test.
From-SVN: r187716
Jakub Jelinek [Mon, 21 May 2012 14:25:03 +0000 (16:25 +0200)]
re PR tree-optimization/53410 (ICE in build_int_cst_wide, at tree.c:1219)
PR tree-optimization/53410
* fold-const.c (fold_binary_loc): Use build_zero_cst (type)
instead of build_int_cst (type, 0) where vector types might be
involved. Instead of build_int_cst (type, 1) convert the original
integer_onep argument to the desired type.
* gcc.c-torture/compile/pr53410-1.c: New test.
* gcc.c-torture/compile/pr53410-2.c: New test.
From-SVN: r187715
Michael Matz [Mon, 21 May 2012 13:24:31 +0000 (13:24 +0000)]
genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
* genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
(simplify_test_exp): Handle one more case of distributive law,
decrease cost threshold.
(tests_attr_p, get_attr_order): New functions.
(optimize_attrs): Use topological order, inline only cheap values.
(write_attr_set): Reset our_known_true after some time.
From-SVN: r187714
H.J. Lu [Mon, 21 May 2012 12:48:38 +0000 (12:48 +0000)]
Warn passing SSE argument ABI change for -m64
gcc/
PR target/53425
* config/i386/i386.c (type_natural_mode): Warn passing SSE
vector argument without SSE enabled changes the ABI.
gcc/testsuite/
PR target/53425
* gcc.target/i386/pr53425-1.c: New file.
* gcc.target/i386/pr53425-2.c: Likewise.
From-SVN: r187711
Richard Guenther [Mon, 21 May 2012 12:45:59 +0000 (12:45 +0000)]
re PR middle-end/53408 (ICE in get_initial_def_for_induction, at tree-vect-loop.c:3222)
2012-05-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53408
* tree-vect-loop.c (vectorizable_induction): Properly check
the restriction that we cannot handle induction results from
the inner loop outside of the outer loop.
* gcc.dg/torture/pr53408.c: New testcase.
From-SVN: r187710
H.J. Lu [Mon, 21 May 2012 12:31:45 +0000 (05:31 -0700)]
Use unspec_volatile on rdrand<mode>_1
gcc/
PR target/53416
* config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
(UNSPECV_RDRAND): This.
(rdrand<mode>_1): Updated.
gcc/testsuite/
PR target/53416
* gcc.target/i386/pr53416.c: New file.
From-SVN: r187709
Richard Guenther [Mon, 21 May 2012 10:48:07 +0000 (10:48 +0000)]
pr46519-2.f90: Adjust to avoid memset transform.
2012-05-21 Richard Guenther <rguenther@suse.de>
* gfortran.dg/pr46519-2.f90: Adjust to avoid memset transform.
From-SVN: r187708
Richard Guenther [Mon, 21 May 2012 10:46:19 +0000 (10:46 +0000)]
tree-loop-distribution.c (can_generate_builtin): Reject volatile stmts.
2012-05-21 Richard Guenther <rguenther@suse.de>
* tree-loop-distribution.c (can_generate_builtin): Reject
volatile stmts.
* gcc.dg/torture/ldist-1.c: New testcase.
From-SVN: r187707
Chung-Lin Tang [Mon, 21 May 2012 10:33:43 +0000 (10:33 +0000)]
Makefile.in (options.c): Add options.h to included header files, before tm.h.
2012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
* Makefile.in (options.c): Add options.h to included header
files, before tm.h.
From-SVN: r187705
Razya Ladelsky [Mon, 21 May 2012 07:39:38 +0000 (07:39 +0000)]
tree-parloops.c: Add myself to contributors, update TODO list, add link to wiki.
2012-05-21 Razya Ladelsky <razya@il.ibm.com>
* tree-parloops.c : Add myself to contributors, update
TODO list, add link to wiki.
From-SVN: r187704
GCC Administrator [Mon, 21 May 2012 00:18:34 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r187703
Alan Modra [Sun, 20 May 2012 23:31:35 +0000 (09:01 +0930)]
predicates.md (input_operand): Don't match constant pool addresses.
* config/rs6000/predicates.md (input_operand): Don't match
constant pool addresses. Remove label_ref, high and plus from
match_code list. Remove redundant CONSTANT_P test.
(splat_input_operand): Similarly update match_code list.
(small_toc_ref): New predicate.
* config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
* config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
(legitimate_constant_pool_address_p): Move TARGET_TOC test and
register checks to..
(toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
generated by create_TOC_reference.
(rs6000_legitimize_address): Update cerate_TOC_reference call.
(rs6000_delegitimize_address): Handle new rtl for toc refs.
(rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
(use_toc_relative_ref): New function, split out from..
(rs6000_emit_move): ..here. Remove redundant tests. Update
create_TOC_reference calls.
(rs6000_legitimize_reload_address): Formatting. Handle splitting
of medium/large model toc addresses. Use use_toc_relative_ref.
(print_operand): Formatting, style. Adjust for toc changes.
(print_operand_address): Likewise.
(rs6000_output_addr_const_extra): Likewise.
(create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
than a PLUS. Use this formulation for both high and low part
of -mcmodel=medium/large toc reference too. Before reload,
always use the small model formulation.
* config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
a PLUS in high part of addresses here.
(tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
(tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
(largetoc_high, largetoc_low): Move earlier. Cope when no
base reg available.
(largetoc_high_plus): New insn.
(movsi_internal1, movsi_internal1_single, movsf_softfloat,
movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
(tocref): ..instead do so here, new insn and split.
From-SVN: r187699
H.J. Lu [Sun, 20 May 2012 21:34:14 +0000 (21:34 +0000)]
Add RDRND, F16C and FSGSBASE support to -march=native
* config/i386/driver-i386.c (host_detect_local_cpu): Support
RDRND, F16C and FSGSBASE.
From-SVN: r187696
John David Anglin [Sun, 20 May 2012 16:32:50 +0000 (16:32 +0000)]
re PR rtl-optimization/53373 (ICE on valid code with -mavx)
PR rtl-optimzation/53373
* config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
call pattern. Update split patterns.
(call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
From-SVN: r187695
Razya Ladelsky [Sun, 20 May 2012 11:41:45 +0000 (11:41 +0000)]
tree-parloops.c (gen_parallel_loop): Change many_iterations_cond for outer loops.
2012-05-20 Razya Ladelsky <razya@il.ibm.com>
* tree-parloops.c (gen_parallel_loop): Change many_iterations_cond for outer loops.
From-SVN: r187694