2012-06-04 Richard Guenther <rguenther@suse.de>
* tree-data-ref.c (have_similar_memory_accesses_1): Remove.
(ref_base_address_1): Likewise.
(remove_similar_memory_refs): Likewise.
* tree-data-ref.h (remove_similar_memory_refs): Remove.
* tree-loop-distribution.c (classify_partition): Do not classify
as builtin if -ftree-loop-distribute-patterns is not enabled.
(fuse_partitions_with_similar_memory_accesses): Inline ...
(ldist_gen): ... here. Fuse all non-builtin partitions if
-ftree-loop-distribution is not enabled. Properly return
the number of created partitions. Do not update SSA form here
but ...
(tree_loop_distribution): ... once here for the whole function.
Only walk innermost loops, constrain loops we consider here
further. Do not call remove_similar_memory_refs.
(distribute_loop): Do not check number of loop nodes here.
* gcc.dg/tree-ssa/ldist-11.c: Enable -ftree-loop-distribute-patterns.
* gcc.dg/tree-ssa/ldist-17.c: Likewise.
* gcc.dg/tree-ssa/ldist-pr45948.c: Likewise.
From-SVN: r188168
2012-06-03 Martin Jambor <mjambor@suse.cz>
* ipa-prop.h (ipa_get_jf_known_type_offset): New function.
(ipa_get_jf_known_type_base_type): Likewise.
(ipa_get_jf_known_type_component_type): Likewise.
(ipa_get_jf_constant): Likewise.
(ipa_get_jf_pass_through_formal_id): Likewise.
(ipa_get_jf_pass_through_operation): Likewise.
(ipa_get_jf_ancestor_offset): Likewise.
(ipa_get_jf_ancestor_type): Likewise.
(ipa_get_jf_ancestor_formal_id): Likewise.
(ipa_get_jf_member_ptr_pfn): Likewise.
* ipa-prop.c (ipa_set_jf_known_type): New function.
(ipa_set_jf_constant): Likewise.
(ipa_set_jf_simple_pass_through): Likewise.
(ipa_set_jf_arith_pass_through): Likewise.
(ipa_set_ancestor_jf): Likewise.
(fill_member_ptr_cst_jump_function): Moved up and renamed to
ipa_set_jf_member_ptr_cst.
(detect_type_change_1): Use the new jump function creation functions.
(compute_complex_assign_jump_func): Likewise.
(compute_complex_ancestor_jump_func): Likewise.
(compute_known_type_jump_func): Likewise.
(compute_scalar_jump_functions): Likewise.
(compute_pass_through_member_ptrs): Likewise.
(determine_cst_member_ptr): Likewise.
(combine_known_type_and_ancestor_jfs): Likewise.
(try_make_edge_direct_simple_call): Likewise.
(try_make_edge_direct_virtual_call): Likewise.
(update_indirect_edges_after_inlining): Likewise.
* ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
access functions. Incorporat NOP_EXPR and BINFO handling from its
callers.
(ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs
which was in its callers.
(ipa_value_from_jfunc): Use jump function access functions. Some
functionality moved to functions above.
(propagate_vals_accross_ancestor): Likewise.
(propagate_vals_accross_pass_through): Use jump function access
functions.
(propagate_accross_jump_function): Likewise.
* ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
access functions.
(inline_merge_summary): Likewise.
From-SVN: r188156
gcc/
* config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
new function sparc_initial_elimination_offset.
* config/sparc/sparc.c (sparc_initial_elimination_offset): New
function.
* config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
Prototype it.
From-SVN: r188142
PR c++/53137
* pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
(instantiate_decl): Don't push_to_top_level for local class methods.
(instantiate_class_template_1): Or for local classes.
From-SVN: r188117
/cp
2012-06-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/26155
* name-lookup.c (push_namespace): When error recovery is
impossible just error out in duplicate_decls.
/testsuite
2012-06-01 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/26155
* g++.dg/parse/namespace-alias-1.C: New.
From-SVN: r188113
2012-06-01 Richard Guenther <rguenther@suse.de>
* tree-loop-distribution.c (enum partition_kind): New enum.
(struct partition_s): Add kind and main_stmt members.
(partition_alloc): Initialize kind to PKIND_NORMAL.
(partition_builtin_p): New function.
(copy_loop_before): Remove failure path and assert instead.
(generate_loops_for_partition): Likewise.
(generate_memset_zero): Fold into ...
(generate_memset_builtin): ... this.
(classify_partition): New function with code from
can_generate_builtin and generate_builtin.
(generate_builtin): Remove.
(can_generate_builtin): Likewise.
(fuse_partitions_with_similar_memory_accesses): Call
partition_builtin_p instead of can_generate_builtin.
(rdg_build_partitions): Do not call
fuse_partitions_with_similar_memory_accesses here...
(ldist_gen): ... but here after classifying all partitions.
Remove failure path of generate_code_for_partition.
(generate_code_for_partition): Generate code according
to partition classification.
From-SVN: r188104
2012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org>
Jonathan Wakely <jwakely.gcc@gmail.com>
PR c++/50134
* doc/invoke.texi (Warning Options): Explain purpose and differences
between -Wmissing-prototypes and -Wmissing-declarations.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r188103
* config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
* config/cris/cris-protos.h: Declare it.
* config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
(TARGET_DEFAULT): Add alignment by 32.
[!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
TARGET_CPU_DEFAULT == 32.
(TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
* config/cris/cris.md: Include sync.md. Avoid allocating specific
numbers by replacing the define_constants for all UNSPECs with the
equivalent define_c_enum construct.
* config/cris/cris.opt (mtrap-unaligned-atomic): New option.
* config/cris/sync.md: New file.
From-SVN: r188096
libgcc/
* longlong.h [SPARC] (umul_ppmm, udiv_qrnnd): Use hardware integer multiply
and divide instructions on 32-bit when V9.
(add_ssaaaa, sub_ddmmss): Convert to branchless code on 64-bit.
From-SVN: r188090
2012-05-31 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/53543
* include/bits/hashtable_policy.h (_Insert::__is_convertible):
Rename to __is_conv to avoid clash with clang built-in.
From-SVN: r188088
This script analyzes a .diff file and generates a skeleton ChangeLog
entry for it. It tries fairly hard to find function names, so it's
important to use the -p switch with diff.
I wrote the initial code a while ago. Cary added a bunch of smarts to
make it understand C++ and guess the function names better than the
original version.
2012-05-31 Diego Novillo <dnovillo@google.com>
Cary Coutant <ccoutant@google.com>
* mklog: New.
Co-Authored-By: Cary Coutant <ccoutant@google.com>
From-SVN: r188072
Found this while testing the C++ conversion for vec.[ch] on the
cxx-conversion branch. We do not build the build/*.o files with g++,
so I was getting lots of syntax errors while compiling build/vec.o.
2012-05-31 Diego Novillo <dnovillo@google.com>
* configure.ac (CXX_FOR_BUILD): Define and substitute.
(BUILD_CXXFLAGS): Define and substitute.
* Makefile.in (BUILD_CXXFLAGS): Define.
(CXX_FOR_BUILD): Define.
(COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
(LINKER_FOR_BUILD): Likewise.
(BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
(BUILD_LINKERFLAGS): Likewise.
* configure: Regenerate.
From-SVN: r188069
* config/avr/t-avr: Correct avr-mmcu.texi dependencies.
(s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
* doc/avr-mmcu.texi (svn:eol-style): Set to native.
From-SVN: r188065
2012-05-31 Richard Guenther <rguenther@suse.de>
* tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
Use FOR_EACH_SSA_DEF_OPERAND.
(generate_builtin): Adjust.
(stmt_generated_in_another_partition): Remove.
(add_scalar_computations_to_partition): Likewise.
(rdg_build_partitions): Do not call
add_scalar_computations_to_partition.
* gcc.dg/tree-ssa/ldist-pr45948-2.c: New testcase copy of
ldist-pr45948.c with disabled SCCP.
From-SVN: r188061
* tree-dfa.c (get_ref_base_and_extent): Compute the offset using
double ints throughout.
* tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
Check that the position of the field is representable as an integer.
From-SVN: r188060