Jakub Jelinek [Sat, 9 Jan 2010 17:56:12 +0000 (18:56 +0100)]
rs6000.c (rs6000_emit_set_long_const): Shorten sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by 1 insn.
* config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
1 insn.
(num_insns_constant_wide): Adjust for that change.
Jerry DeLisle [Sat, 9 Jan 2010 17:47:04 +0000 (17:47 +0000)]
re PR fortran/20923 (gfortran slow for large array constructors)
2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/20923
PR fortran/32489
* trans-array.c (gfc_conv_array_initializer): Change call to
gfc_error_now to call to gfc_fatal_error.
* array.c (count_elements): Whitespace. (extract_element): Whitespace.
(is_constant_element): Changed name from constant_element.
(gfc_constant_ac): Only use expand_construuctor for expression
types of EXPR_ARRAY. If expression type is EXPR_CONSTANT, no need to
call gfc_is_constant_expr.
* expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
message.
* resolve.c (gfc_is_expandable_expr): New function that determiners if
array expressions should have their constructors expanded.
(gfc_resolve_expr): Use new function to determine whether or not to call
gfc_expand_constructor.
Alexandre Oliva [Sat, 9 Jan 2010 14:41:51 +0000 (14:41 +0000)]
re PR rtl-optimization/42631 ("-fcompare-debug failure" with "-O1 -funroll-loops")
gcc/ChangeLog:
PR debug/42631
* web.c (union_defs): Add used argument, to combine uses of
uninitialized regs.
(entry_register): Adjust type and tests of used argument.
(web_main): Widen used for new use. Pass it to union_defs.
* df.h (union_defs): Adjust prototype.
gcc/testsuite/ChangeLog:
PR debug/42631
* gcc.dg/pr42631.c: New.
Alexandre Oliva [Sat, 9 Jan 2010 14:41:35 +0000 (14:41 +0000)]
re PR debug/42630 ("-fcompare-debug failure (length)" with "-O1 -fvariable-expansion-in-unroller -funroll-loops")
gcc/ChangeLog:
PR debug/42630
* loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
uses in new incoming argument. Free body.
(reset_debug_uses_in_loop): New.
(analyze_insn_to_expand_var): Call the latter if the former found
anything. Fix whitespace. Reject invalid dest overlaps before
going through all insns in the loop.
gcc/testsuite/ChangeLog:
PR debug/42630
* gcc.dg/pr42630.c: New.
Tobias Burnus [Sat, 9 Jan 2010 09:11:53 +0000 (10:11 +0100)]
[multiple changes]
2010-01-09 Tobias Burnus <burnus@net-b.de>
PR fortran/41298
* trans-expr.c (gfc_trans_structure_assign): Handle
c_null_(fun)ptr.
* symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
to the constructor for c_null_(fun)ptr.
* resolve.c (resolve_structure_cons): Add special case
for c_null_(fun)ptr.
2010-01-09 Tobias Burnus <burnus@net-b.de>
PR fortran/41298
* gfortran.dg/c_ptr_tests_14.f90: New test.
re PR lto/42528 (ICE with -flto and -fsigned-char)
2010-01-08 Richard Guenther <rguenther@suse.de>
PR lto/42528
* c.opt (fsigned-char): Also let LTO handle this option.
(funsigned-char): Likewise.
lto/
* lto-lang.c (lto_handle_option): Handle -f[un]signed-char.
(lto_init): Do not init char_type_node in a standard way
but according to flag_signed_char.
* gcc.dg/lto/20100103-1_0.c: New testcase.
* gcc.dg/lto/20100103-2_0.c: Likewise.
Sebastian Pop [Fri, 8 Jan 2010 07:39:01 +0000 (07:39 +0000)]
re PR tree-optimization/42521 (ICE: in graphite_loop_normal_form, at graphite-sese-to-poly.c:2844)
Fix PR42521.
2010-01-07 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/42521
* graphite.c (graphite_finalize): Call scev_reset.
(graphite_transform_loops): Do not call scev_reset between the code
generation of scops.
Sebastian Pop [Fri, 8 Jan 2010 04:35:43 +0000 (04:35 +0000)]
Memoize memory strides per loop.
2010-01-07 Sebastian Pop <sebastian.pop@amd.com>
* graphite-interchange.c (memory_stride_in_loop): Renamed
pdr_stride_in_loop.
(memory_strides_in_loop): Renamed memory_strides_in_loop_1.
(memory_strides_in_loop): Memoize the memory strides per loop.
(lst_interchange_profitable_p): Do not initialize to zero the memory
strides.
* graphite-poly.h (struct lst): Add a field memory_strides.
(LST_LOOP_MEMORY_STRIDES): New.
(new_lst_loop): Initialize LST_LOOP_MEMORY_STRIDES to -1.
(free_lst): Clear LST_LOOP_MEMORY_STRIDES.
Ralf Wildenhues [Thu, 7 Jan 2010 19:53:50 +0000 (19:53 +0000)]
re PR bootstrap/41818 (Error building cross compiler caused by changing LD_LIBRARY_PATH environment variable in Makefile)
Fix PR bootstrap/41818.
/:
PR bootstrap/41818
* Makefile.tpl (BASE_TARGET_EXPORTS): Only add TARGET_LIB_PATH
to $(RPATH_ENVVAR) if bootstrapping. Fix typo in comment.
* Makefile.in: Regenerate.
Sebastian Pop [Thu, 7 Jan 2010 18:32:51 +0000 (18:32 +0000)]
Fix memory leaks.
2010-01-06 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (save_clast_name_index): Free slot
before allocating a new one.
(copy_renames): Check that slot is not NULL.
(mark_bb_with_pbb): Same.
(compute_cloog_iv_types_1): Same.
* graphite-interchange.c (lst_perfect_nestify): Free the before,
nest, and after LSTs.
(lst_try_interchange_loops): Same.
Sebastian Pop [Thu, 7 Jan 2010 18:32:39 +0000 (18:32 +0000)]
re PR middle-end/42178 (Invalid memory access in graphite)
Fix PR42178.
2010-01-05 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/42178
* graphite-interchange.c (lst_try_interchange_loops): Do not return
the before, nest, and after LSTs.
(lst_try_interchange): Removed.
(lst_interchange_select_inner): Do not iterate over the LSTs if they
were modified.
(lst_interchange_select_outer): Apply interchange on the outer loop
until there are no more changes in the inner loops.
Jakub Jelinek [Thu, 7 Jan 2010 15:10:26 +0000 (16:10 +0100)]
re PR tree-optimization/42625 (-fipa-sra can generate different destructors in different object files, binary breaks after linking)
PR tree-optimization/42625
* cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body
aliases.
* g++.dg/opt/dtor4.C: New test.
* g++.dg/opt/dtor4.h: New.
* g++.dg/opt/dtor4-aux.cc: New.
Steven Bosscher [Thu, 7 Jan 2010 11:49:25 +0000 (11:49 +0000)]
gcse.c (execute_rtl_cprop, [...]): Do not add the DF_NOTE problem.
* gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
Do not add the DF_NOTE problem.
* store-motion.c (execute_rtl_store_motion): Likewise.
Martin Jambor [Thu, 7 Jan 2010 10:38:25 +0000 (11:38 +0100)]
re PR tree-optimization/42157 (ICE building stage 1 libgcc: SEGV in compare_access_positions)
2010-01-07 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/42157
* tree-sra.c (compare_access_positions): Stabilize sort if both
accesses have integer types, return zero immediately if they are the
same.
Paolo Carlini [Thu, 7 Jan 2010 00:22:51 +0000 (00:22 +0000)]
re PR libstdc++/26701 (std::time_get parses only 2 digits of year, in en_GB locale.)
2010-01-06 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/26701
* include/bits/locale_facets_nonio.tcc (time_get<>::_M_extract_num):
Encode short two digits over four parsings to negative numbers.
(time_get<>::_M_extract_via_format): Adjust, accept both two digits
and four digits for both 'y' and 'Y'.
(time_get<>::do_get_year): Call time_get<>::_M_extract_num.
* doc/xml/manual/prerequisites.xml: Add en_GB.
* testsuite/lib/libstdc++.exp: Adjust
* testsuite/22_locale/time_get/get_date/char/26701.cc: New.
* testsuite/22_locale/time_get/get_date/wchar_t/26701.cc: Likewise.
Benjamin Kosnik [Wed, 6 Jan 2010 22:55:52 +0000 (22:55 +0000)]
re PR libstdc++/42491 (performance/30_threads/future/polling.cc fails at compile time)
2010-01-06 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/42491
* scripts/check_performance (CXX): Add -std=gnu++0x.
* testsuite/performance/30_threads/future/polling.cc: Mark up as
using threads.
Nick Clifton [Wed, 6 Jan 2010 17:37:31 +0000 (17:37 +0000)]
rx.h (enum rx_cpu_type): Add RX200.
* config/rx/rx.h (enum rx_cpu_type): Add RX200.
(CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
used together.
(OVERRIDE_OPTIONS): Delete.
(OPTIMIZATION_OPTIONS): Define.
(ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
* config/rx/rx.c (rx_handle_option): Issue an error message if
-mcpu=rx200 and -fpu are used together.
(rx_set_optimization_options): New function. Issue an error
message if an optimization attribute attempts to reset the FPU/
math optimization pairing.
* config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
* config/rx/rx.opt: Set the default to 32-bit doubles.
* config/rx/t-rx: Add multilibs for -nofpu option.
* doc/invoke.texi: Update documentation of RX options.
* tree-ssa-pre.c (name_to_id): New global.
(alloc_expression_id): Simplify SSA name handling.
(lookup_expression_id): Likewise.
(init_pre): Zero name_to_id.
(fini_pre): Free it.
Eric Botcazou [Tue, 5 Jan 2010 22:29:18 +0000 (22:29 +0000)]
re PR target/42564 (unrecognizable insn with -O -fPIC)
PR target/42564
* config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
* config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
(legitimize_tls_address): Likewise.
(sparc_tls_referenced_p): Likewise.
* config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
and adjust calls to legitimize_pic_address.
(legitimate_constant_p) Use sparc_tls_referenced_p.
(legitimate_pic_operand_p): Likewise.
(sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
(sparc_tls_symbol_ref_1): Delete.
(sparc_tls_referenced_p): Make static, recognize specific patterns.
(legitimize_tls_address): Make static, handle CONST patterns.
(legitimize_pic_address): Make static, remove unused parameter and
adjust recursive calls.
(sparc_legitimize_address): Make static, use sparc_tls_referenced_p
and adjust call to legitimize_pic_address.
(sparc_output_mi_thunk): Likewise.
H.J. Lu [Tue, 5 Jan 2010 20:44:14 +0000 (12:44 -0800)]
Properly convert GTU to GT for V4SI and V2DI
gcc/
2010-01-05 Paolo Bonzini <bonzinI@gnu.rg>
H.J. Lu <hongjiu.lu@intel.com>
PR target/42542
* config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
operands to make them signed.
* config/i386/sse.md (umaxv4si3): Revert the last change.
(umin<mode>3): Likewise.
(uminv8hi3): Removed.
(uminv4si3): Likewise.
gcc/testsuite/
2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
* gcc.target/i386/pr42542-1.c (res): Make it 8 elements.
Martin Jambor [Tue, 5 Jan 2010 19:42:32 +0000 (20:42 +0100)]
re PR tree-optimization/42462 (wrong-code with computed-goto)
2010-01-05 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/42462
* ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
current_function_decl to helper functions and macros.
* gcc/testsuite/g++.dg/torture/pr42462.C: New test.
Nick Clifton [Tue, 5 Jan 2010 15:43:43 +0000 (15:43 +0000)]
rx.c (rx_get_stack_layout): Fix allocation of second register to push into the stack frame when...
* config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
register to push into the stack frame when the accumulator has to
be saved during interrupts.
Eric Fisher [Tue, 5 Jan 2010 12:30:30 +0000 (12:30 +0000)]
invoke.texi: Remove the documentation about option -Wunreachable-code.
2010-01-05 Eric Fisher <joefoxreal@gmail.com>
* doc/invoke.texi: Remove the documentation about option
-Wunreachable-code.
* common.opt (Wunreachable-code): Preserved for backward
compatibility.
* tree-cfg.c: Remove the implementation of -Wunreachable-code.
* opts.c (common_handle_option): Add OPT_Wunreachable_code to
the backward compatibility flag section.
Jakub Jelinek [Tue, 5 Jan 2010 08:40:50 +0000 (09:40 +0100)]
re PR tree-optimization/42508 (wrong code with "-O1 -fipa-sra")
PR tree-optimization/42508
* tree-sra.c (convert_callers): Check for recursive call
by comparing cgraph nodes instead of decls.
(modify_function): Call ipa_modify_formal_parameters also
on all same_body aliases.
* g++.dg/opt/pr42508.C: New test.
* cgraphunit.c (cgraph_materialize_all_clones): Compare
cgraph nodes when checking for same_body aliases.
tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate a new entry only if needed.
2010-01-04 Richard Guenther <rguenther@suse.de>
* tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
a new entry only if needed.
* tree-ssa-dom.c (lookup_avail_expr): Likewise.
* tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
hashtable lookup.
* tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
the result array.
(phi_translate): Handle CONSTANTs early.
Martin Jambor [Mon, 4 Jan 2010 18:25:14 +0000 (19:25 +0100)]
re PR tree-optimization/42398 (internal compiler error: in sra_modify_expr, at tree-sra.c:2175)
2010-01-04 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/42398
* tree-sra.c (struct access): Removed flag grp_different_types.
(dump_access): Do not dump the removed flag.
(sort_and_splice_var_accesses): Do not set the removed flag.
(sra_modify_expr): Check for type compatibility directly.
* testsuite/gcc.c-torture/compile/pr42398.c: New test.
Martin Jambor [Mon, 4 Jan 2010 18:18:54 +0000 (19:18 +0100)]
re PR tree-optimization/42366 (ICE in ipa_write_node_info, at ipa-prop.c:2023)
2010-01-04 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/42366
* ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
edges with variable number of parameters.
* ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
flag instead of asserting it.
(ipa_read_node_info): Read uses_analysis_done flag.