Richard Guenther [Fri, 12 Oct 2007 08:42:13 +0000 (08:42 +0000)]
re PR middle-end/26198 (Unfolded comparison after cfg_cleanup)
2007-10-12 Richard Guenther <rguenther@suse.de>
PR middle-end/26198
* tree-ssa-forwprop.c (can_propagate_from): Do not propagate from
a rhs with side-effects or which is a load.
(forward_propagate_into_cond): Also try combining both operands.
* gcc.dg/tree-ssa/forwprop-3.c: New testcase.
* gcc.c-torture/execute/20071011-1.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-9.c: Adjust.
Uros Bizjak [Fri, 12 Oct 2007 08:37:17 +0000 (10:37 +0200)]
re PR tree-optimization/33742 (Segfault in vectorizable_operation)
PR tree-optimization/33742
* tree-vect-transform.c (vectorizable_operation): Return false
if get_vectype_for_scalar_type for scalar_dest can't be determined.
(vectorizable_call): Same for rhs_type and lhs_type.
testsuite/ChangeLog:
PR tree-optimization/33742
* gcc.dg/pr33742.c: New testcase.
Jakub Jelinek [Fri, 12 Oct 2007 07:10:22 +0000 (09:10 +0200)]
re PR tree-optimization/33645 (undefined static variable in vortex for -fno-unit-at-a-time)
PR tree-optimization/33645
* tree-ssa-live.c (mark_all_vars_used): Add data argument,
pass it to walk_tree.
(mark_all_vars_used_1): Pass data through to mark_all_vars_used.
When calling set_is_used on a VAR_DECL, if data is not NULL and
its DECL_UID is in the bitmap, call mark_all_vars_used on its
DECL_INITIAL after clearing the bit in bitmap.
(remove_unused_locals): Adjust mark_all_vars_used callers.
Instead of removing unused global vars from unexpanded_var_list
immediately record them in bitmap, call mark_all_vars_used on
all used global vars from unexpanded_var_list and only purge
global vars that weren't found used even during that step.
* gcc.dg/pr33645-1.c: New test.
* gcc.dg/pr33645-2.c: New test.
* gcc.dg/pr33645-3.c: New test.
Jakub Jelinek [Fri, 12 Oct 2007 07:07:46 +0000 (09:07 +0200)]
re PR c++/32121 (C++ front-end accepts invalid __label__ declarations)
PR c++/32121
* parser.c (cp_parser_compound_statement): Handle label-declarations
at the beginning of the compound statement.
(cp_parser_block_declaration): Issue diagnostics about __label__
not at the beginning of a block.
* g++.dg/ext/label4.C: Adjust error regexp.
* g++.dg/ext/label6.C: Adjust error regexp.
* g++.dg/ext/label7.C: New test.
* g++.dg/ext/label8.C: New test.
* g++.dg/ext/label9.C: New test.
gthr-posix.h (__gthread_active_init): Create detached instead of joinable thread when...
* gthr-posix.h (__gthread_active_init): Create detached instead of
joinable thread when testing whether threads are active on hppa-hpux.
* gthr-posix95.h (__gthread_active_init): Likewise.
Paolo Carlini [Thu, 11 Oct 2007 09:39:41 +0000 (09:39 +0000)]
re PR c++/31441 (ICE with variadic template and specialization)
/testsuite
2007-10-11 Paolo Carlini <pcarlini@suse.de>
PR c++/31441
* g++.dg/cpp0x/variadic83.C: New.
/cp
2007-10-11 Paolo Carlini <pcarlini@suse.de>
PR c++/33461
* pt.c (coerce_template_parameter_pack): Do not pass error_mark_node
to convert_template_argument.
(coerce_template_parms): Return error_mark_node after fixed-length
error.
(tsubst_decl): Check for error_mark_node the return value of the
first tsubst in 'case VAR_DECL'.
/testsuite
2007-10-11 Paolo Carlini <pcarlini@suse.de>
Richard Guenther [Thu, 11 Oct 2007 08:58:28 +0000 (08:58 +0000)]
re PR middle-end/33724 (Type checking error with address-of and ref-all pointer type)
2007-10-11 Richard Guenther <rguenther@suse.de>
PR middle-end/33724
* tree-cfg.c (one_pointer_to_useless_type_conversion_p): New function.
(verify_gimple_expr): Use it to verify pointer-to types for
ADDR_EXPRs.
Eric Botcazou [Thu, 11 Oct 2007 05:33:04 +0000 (07:33 +0200)]
re PR rtl-optimization/33638 (wrong code with -O2 -fforce-addr)
PR rtl-optimization/33638
* dse.c (struct insn_info): Remove 'stack_read' field,
add 'stack_pointer_based' field.
(record_store): For a store with non-constant base, record
whether it is stack pointer based.
(scan_insn): For the call to a const function, remove stack
pointer based stores from the list of local active stores.
(scan_reads_nospill): Delete code dealing with const functions.
Kazu Hirata [Wed, 10 Oct 2007 11:58:22 +0000 (11:58 +0000)]
revert: longlong.h (count_leading_zeros): Replace '{' and '}' with '%{' and '%}', respectively.
Revert:
2007-10-09 Kazu Hirata <kazu@codesourcery.com>
* longlong.h (count_leading_zeros): Replace '{' and '}' with '%{'
and '%}', respectively.
Revert:
2007-10-09 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.c (print_operand): Handle '{' and '}'.
* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
and '}'.
* config/m68k/m68k.md: Replace '{' with '%{' where '{' is
meant to be output.
Revert:
2007-10-07 Kazu Hirata <kazu@codesourcery.com>
* config/m68k/m68k.c, config/m68k/m68k.md: Use the assembly
syntax for ASSEMBLER_DIALECT.
* config/m68k/m68k.h (ASSEMBLER_DIALECT): New.
* dwarf2out.c (output_call_frame_info): FDEs are always emitted
if flag_exceptions is not set.
* config/darwin.c (darwin_emit_unwind_label): Rewrite to use
assemble_name rather than incorrectly emulating it.
* c-opts.c (c_common_handle_option): -Wnontemplate-friend,
-Wwrite-strings and -Wmultichar are enabled by default, so Wall
enabling them is redundant. Don't check two times for
c_dialect_cxx.
Benjamin Kosnik [Tue, 9 Oct 2007 20:48:38 +0000 (20:48 +0000)]
PR libstdc++/33489 continued.
2007-10-09 Benjamin Kosnik <bkoz@montsouris.artheist.org>
PR libstdc++/33489 continued.
* include/parallel/features.h (_GLIBCXX_LOSER_TREE): Set to zero.
(_GLIBCXX_LOSER_TREE_POINTER): Set to one.
(_GLIBCXX_LOSER_TREE_UNGUARDED): Set to zero.
(_GLIBCXX_LOSER_TREE_POINTER_UNGUARDED): Set to one.
* include/parallel/multiway_merge.h (parallel_multiway_merge):
Change array of value_type to array of value_type pointers.
(multiway_merge_bubble): Same.
(multiway_merge_loser_tree): Same.
* include/parallel/merge.h (merge_advance_movc): Change to avoid
default construction.
* include/parallel/multiseq_selection.h (multiseq_partition):
Replace value_type, bool pair with value_type*, null-initialized.
* include/parallel/multiway_mergesort.h (parallel_sort_mwms):
Don't use array form of operator new for value_types.
(parallel_sort_mwms_pu): Same.
* include/parallel/quicksort.h (parallel_sort_qs_divide): Don't
use array form to construct pointer to value_type on stack,
instead use __builtin_alloca.
* include/parallel/random_shuffle.h (sequential_random_shuffle): Same,
but use operator new.
(parallel_random_shuffle_drs_pu): Same.
* include/parallel/partial_sum.h ( parallel_partial_sum_linear): Same.
Kazu Hirata [Tue, 9 Oct 2007 15:54:00 +0000 (15:54 +0000)]
m68k.c (print_operand): Handle '{' and '}'.
* config/m68k/m68k.c (print_operand): Handle '{' and '}'.
* config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Accept '{'
and '}'.
* config/m68k/m68k.md: Replace '{' with '%{' where '{' is
meant to be output.
Jan Hubicka [Tue, 9 Oct 2007 07:07:15 +0000 (09:07 +0200)]
invoke.texi (align-threshold, [...]): Document.
* invoke.texi (align-threshold, align-loop-iterations): Document.
* final.c: Include cfgloop.h, params.h
(compute_alignments): Dump decisions and compare them with loop
structure; honor given parameters.
(pass_compute_alignments): New dump file.
* params.def (PARAM_ALIGN_THRESHOLD, PARAM_ALIGN_LOOP_ITERATIONS): New.
* Makefile.in (final.o): Add dependency on cfgloop.h and params.h
James E Wilson [Tue, 9 Oct 2007 04:55:17 +0000 (04:55 +0000)]
re PR tree-optimization/33655 (ICE in bitfield_overlaps_p, at tree-sra.c:2901)
PR tree-optimization/33655
PR middle-end/22156
* tree-sra.c (bitfield_overlaps_p): When fld->element is INTEGER_CST,
convert it to bitsizetype before size_binop call.
Alexandre Oliva [Tue, 9 Oct 2007 04:45:22 +0000 (04:45 +0000)]
re PR middle-end/22156 (bit-field copying regressed)
PR middle-end/22156
* tree-sra.c (instantiate_element): Use BYTES_BIG_ENDIAN for
bit-field layout.
(sra_build_assignment): Likewise. Set up mask depending on
precision, not type.
(sra_build_bf_assignment): Use BYTES_BIG_ENDIAN. Don't overflow
computing bit masks.
(sra_build_elt_assignment): Don't view-convert from signed to
unsigned.
(sra_explode_bitfield_assignment): Use bit-field type if
possible. Use BYTES_BIG_ENDIAN.
base.h: Added plus and multiplies functor for differently typed objects.
2007-10-08 Johannes Singler <singler@ira.uka.de>
* include/parallel/base.h: Added plus and multiplies functor
for differently typed objects.
* include/parallel/numeric: Use it.
* include/parallel/for_each_selectors.h: Allowed different types.
* include/parallel/partial_sum.h: Fixed return value.
* testsuite/26_numerics/accumulate/1.cc: Tests for accumulate.
* testsuite/26_numerics/inner_product/1.cc: Tests for inner_product.
Mark Shinwell [Mon, 8 Oct 2007 15:28:56 +0000 (15:28 +0000)]
combine.c (setup_incoming_promotions): Ensure that arguments that have not undergone mode promotions do not...
gcc/
* combine.c (setup_incoming_promotions): Ensure that
arguments that have not undergone mode promotions do not
incorrectly get marked as being sign- or zero-extended.
re PR middle-end/33693 (Type checking error with bitwise xor/and)
2007-10-08 Richard Guenther <rguenther@suse.de>
PR middle-end/33693
PR middle-end/33695
PR middle-end/33697
* fold-const.c (fold_binary): Use correct types in folding
of a * (1 << b) to (a << b). Likewise for ~A & ~B to ~(A | B)
and building of RROTATE_EXPR.
* gcc.dg/pr33693.c: New testcase.
* gcc.dg/pr33695.c: Likewise.
* gcc.dg/pr33697.c: Likewise.
* docs/html/parallel_mode.html: Added reference to MCSTL.
More documentation on compile-time settings and tuning.
* include/parallel/multiway_merge.h: Added reference to paper.
* include/parallel/multiseq_selection.h: Added reference to paper.
* include/parallel/workstealing.h: Added reference to paper.
* include/parallel/balanced_quicksort.h: Added reference to paper.
* include/parallel/tree.h: Added reference to paper.
re PR middle-end/33691 (Type checking error with bitwise and/or)
2007-10-08 Richard Guenther <rguenther@suse.de>
PR middle-end/33691
PR middle-end/33694
PR middle-end/33696
* fold-const.c (fold_binary): Use the correct types when
folding (A | CST1) & CST2 to (A & CST2) | (CST1 & CST2).
(fold_binary): Use the correct types when folding
(-A) - B to (-B) - A.
(fold_unary): Use the correct types when folding ~(X).
* gcc.dg/pr33691.c: New testcase.
* gcc.dg/pr33694.c: Likewise.
* gcc.dg/pr33696.c: Likewise.
Mike Frysinger [Mon, 8 Oct 2007 09:29:55 +0000 (09:29 +0000)]
configure.ac (CFLAGS_FOR_BUILD, [...]): Default them to host flags only for $host = $build.
* configure.ac (CFLAGS_FOR_BUILD, CXXFLAGS_FOR_BUILD, LDFLAGS_FOR_BUILD): Default them to host flags only
for $host = $build.
Set default CXXFLAGS_FOR_BUILD to CXXFLAGS, not CFLAGS.
Set default LDFLAGS_FOR_BUILD to LDFLAGS, not CFLAGS.
* configure: Regenerate.