Sebastian Pop [Tue, 13 Jan 2009 15:33:13 +0000 (15:33 +0000)]
re PR middle-end/38786 ([graphite] ICE with -floop-block in verify_ssa)
2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/38786
* gcc.dg/graphite/pr38786.c: New.
* graphite.c (expand_scalar_variables_ssa_name): New, outlined from
the SSA_NAME case of expand_scalar_variables_expr.
Set the type of an expression to the type of its assign statement.
(expand_scalar_variables_expr): Also gather the scalar computation
used to index the memory access. Do not pass loop_p.
Fix comment. Stop recursion on tcc_constant or tcc_declaration.
(expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
the gimple_stmt_iterator where it inserts new code. Do not pass loop_p.
(copy_bb_and_scalar_dependences): Do not pass loop_p.
(translate_clast): Update call to copy_bb_and_scalar_dependences.
Uros Bizjak [Tue, 13 Jan 2009 08:04:11 +0000 (09:04 +0100)]
alpha.c (alpha_legitimate_address_p): Explicit relocations of local symbols wider than UNITS_PER_WORD are not valid.
* config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
relocations of local symbols wider than UNITS_PER_WORD are not valid.
(alpha_legitimize_address): Do not split local symbols wider than
UNITS_PER_WORD into HIGH/LO_SUM parts.
* lib/target-supports.exp (check_effective_target_powerpc64): New.
* gcc.target/powerpc/darwin-longlong.c: Explicitly require 64-bit
instruction support. Do not check for it at runtime.
PR c++/36019
* pt.c (parameter_of_template_p): New function.
* cp-tree.h: Declare it.
* name-lookup.c (binding_to_template_parms_of_scope_p): New
function.
(outer_binding): Take template parameters in account when looking for
a name binding.
PR c++/36019
* g++.dg/lookup/hidden-class12.C: New test.
* g++.dg/lookup/hidden-class13.C: New test.
* g++.dg/lookup/hidden-class14.C: New test.
* g++.dg/lookup/hidden-class15.C: New test.
* g++.dg/lookup/hidden-class16.C: New test.
pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk function when...
* pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
function when not using named sections on targets with named sections
if branch distance is less than 262132.
Jonathan Wakely [Sun, 11 Jan 2009 17:25:23 +0000 (17:25 +0000)]
regex (basic_regex::basic_regex): Use range constructor for _M_pattern.
* include/tr1_impl/regex (basic_regex::basic_regex): Use range
constructor for _M_pattern.
* testsuite/tr1/7_regular_expressions/basic_regex/ctors/char/
string.cc: Test construction from different basic_string type.
* testsuite/tr1/7_regular_expressions/basic_regex/ctors/wchar_t/
string.cc: Likewise.
Eric Botcazou [Sun, 11 Jan 2009 12:24:02 +0000 (12:24 +0000)]
decl.c (gnat_to_gnu_entity): Put the _Tag field before any discriminants in the field list.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
the _Tag field before any discriminants in the field list.
(components_to_record): Remove obsolete comment.
Andrew Pinski [Sat, 10 Jan 2009 11:48:06 +0000 (03:48 -0800)]
re PR c++/36695 (Value-initialization of reference type is allowed.)
PR c++/36695
* typeck2.c (build_functional_cast): Check for reference type and NULL
PARMS.
* g++.dg/ext/complex4.C: New test.
* g++.dg/ext/complex5.C: New test.
* g++.dg/init/reference1.C: New test.
* g++.dg/init/reference2.C: New test.
* g++.dg/init/reference3.C: New test.
Paul Thomas [Sat, 10 Jan 2009 00:11:18 +0000 (00:11 +0000)]
re PR fortran/38765 (ICE in check_host_association)
2009-01-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38765
* resolve.c (check_host_association): Use the symtree name to
search for a potential contained procedure, since this is the
name by which it would be referenced.
2009-01-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38765
* gfortran.dg/host_assoc_function_6.f90: New test.
Jakub Jelinek [Fri, 9 Jan 2009 17:12:40 +0000 (18:12 +0100)]
re PR target/38686 (Bootstrap fails on i686-pc-linux-gnu with --with-arch=pentium-m)
PR target/38686
PR target/38708
* config/i386/i386.c (override_options): Reject
-mstringop-strategy=rep_8byte with -m32.
(ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
to 1. Do count comparison against epilogue_size_needed at compile
time even when count_exp was constant forced into register. For
size_needed don't jump to epilogue, instead just avoid aligning
and invoke the body algorithm. If need_zero_guard, add zero guard
even if count is non-zero, but smaller than size_needed + number of
bytes that could be stored for alignment.
(ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
to 1. If need_zero_guard, add zero guard even if count is non-zero,
but smaller than size_needed + number of bytes that could be stored
for alignment. Compare size_needed with epilogue_size_needed instead
of desired_align - align, don't adjust size_needed, pass
epilogue_size_needed to the epilogue expanders.
* pa.c (last_address): Change to unsigned.
(update_total_code_bytes): Change argument to unsigned. Don't
check if insn addresses are set.
(pa_output_function_epilogue): Set last_address to UINT_MAX if insn
addresses are not set.
(pa_asm_output_mi_thunk): Handle wrap when updating last_address.
Jakub Jelinek [Thu, 8 Jan 2009 16:01:42 +0000 (17:01 +0100)]
re PR tree-optimization/37031 (ICE for h264ref in gather_interchange_stats with -ftree-loop-linear)
PR tree-optimization/37031
* lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
on parameter_set.
(build_access_matrix): Reserve correct size for AM_MATRIX vector,
allocate it using gc instead of heap, use VEC_quick_push instead of
VEC_safe_push.
* graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
instead of heap, use VEC_quick_push instead of VEC_safe_push.
* tree-data-ref.h (struct access_matrix): Change matrix to gc
allocated vector from heap allocated.
* lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
* tree-loop-linear.c (linear_transform_loops): Allocate nest
vector only after perfect_loop_nest_depth call.
* graphite.c (debug_value, copy_constraint,
swap_constraint_variables, scale_constraint_variable, ): New.
(get_lower_bound, get_upper_bound): Removed.
(graphite_trans_bb_strip_mine): Clean up this code that works
only for constant number of iterations. Fully copy upper and
lower bound constraints, not only the constant part of them.
* graphite.h (debug_value): Declared.
Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
From-SVN: r143187
Ira Rosen [Thu, 8 Jan 2009 07:59:40 +0000 (07:59 +0000)]
re PR tree-optimization/37194 (Autovectorization of small constant iteration loop degrades performance)
PR tree-optimization/37194
* tree-vect-transform.c (vect_estimate_min_profitable_iters):
Don't add the cost of cost model guard in prologue to scalar
outside cost in case of known number of iterations.
Jakub Jelinek [Wed, 7 Jan 2009 22:49:29 +0000 (23:49 +0100)]
re PR libstdc++/38092 (libstdc++ doesn't build with GNU ld 2.19 and Sun as: no .symver support)
PR libstdc++/38092
* acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New test.
* src/compatibility.cc: Don't use .symver directives if
_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE is not defined.
* config.h.in: Regenerated.
* configure: Likewise.
Uros Bizjak [Wed, 7 Jan 2009 21:56:32 +0000 (22:56 +0100)]
re PR target/38706 (../../../../src/libstdc++-v3/src/strstream.cc:419: internal compiler error: Segmentation fault)
PR target/38706
* config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
free_after_compilation when outputting a thunk.
(alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
Do not call free_after_compilation here.
testsuite/ChangeLog:
PR target/38706
* g++.dg/other/pr38706.C: New test.
Jason Merrill [Wed, 7 Jan 2009 20:43:01 +0000 (15:43 -0500)]
re PR c++/35297 (Compiling error with variadic template with fixed parameter with default type.)
PR c++/35297
PR c++/35477
PR c++/35784
PR c++/36846
PR c++/38276
* pt.c (check_default_tmpl_args): Don't complain about
out-of-order parameter packs in the enclosing class
or parameter packs after default args.
(coerce_template_parms): If we have more than one
parameter pack, don't flatten argument packs.
(template_args_equal): Handle argument packs.
(comp_template_args): Don't flatten argument packs.
(check_instantiated_arg): Split out from...
(check_instantiated_args): Here. Handle arg packs.
(convert_template_argument): Just check that nontype argument
packs have the right type.
* lib/target-supports-dg.exp (current_compiler_flags): New.
(check-flags): Use it; do not access dg-test local variables.
(dg-skip-if): Do not access dg-test local variables.
(dg-xfail-run-if): Ditto.
(dg-shouldfail): Ditto.
* gcc.test-framework/test-framework.exp
(check_effective_target_def_nocache): New.
* gcc.test-framework/test-framework.awk: Handle scan tests.
* gcc.test-framework/dg-do-run-xrif-nocache-exp-XF.c: New test.
* gcc.test-framework/dg-error-nocache-exp-P.c: New test.
* gcc.test-framework/dg-nocache-scanasm-exp-XF.c: New test.
* gcc.test-framework/dg-warning-nocache-exp-P.c: New test.
* gcc.test-framework/dg-nocache-sif-exp-P.c: New test.
* gcc.test-framework/dg-nocache-sif-exp-U.c: New test.
* gcc.test-framework/dg-nocache-xif-exp-P.c: New test.
* gcc.test-framework/dg-do-run-sft-nocache-exp-P.c: New test.
* gcc.test-framework/dg-nocache-xif-exp-XP.c: New test.
Jan Sjodin [Wed, 7 Jan 2009 15:53:03 +0000 (15:53 +0000)]
re PR middle-end/38492 ([graphite] segfaulting code when compiled with -fgraphite -fgraphite-identity)
2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
PR tree-optimization/38492
PR tree-optimization/38498
* tree-check.c (operator_is_linear, scev_is_linear_expression): New.
* tree-chrec.h (scev_is_linear_expression): Declared.
* graphite.c (graphite_cannot_represent_loop_niter): New.
(scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
(graphite_loop_normal_form): Use gcc_assert.
(scan_tree_for_params): Use CASE_CONVERT.
(phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
(build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
Use gcc_assert. Discard scops that contain unhandled cases.
(build_scop_conditions): Return a boolean status for unhandled cases.
(strip_mine_profitable_p): Print the loop number, not its depth.
(is_interchange_valid): Pass the depth of the loop nest, don't
recompute it wrongly.
(graphite_trans_bb_block): Same.
(graphite_trans_bb_block): Print tentative of loop blocking.
(graphite_trans_scop_block): Do not print that the loop has been
blocked.
(graphite_transform_loops): Do not handle scops that contain condition
scalar phi nodes.
* testsuite/gcc.dg/graphite/pr38500.c: Fixed warning as committed
in trunk.
* testsuite/gcc.dg/graphite/block-0.c: Update test.
* testsuite/gcc.dg/graphite/block-1.c: Same.
* testsuite/gcc.dg/graphite/block-2.c: Remove xfail and test for blocking.
* testsuite/gcc.dg/graphite/block-4.c: Remove test for strip mine.
* testsuite/gcc.dg/graphite/block-3.c: New.
* testsuite/gcc.dg/graphite/pr38498.c: New.