1 2010-05-27 Sterling Augustine <sterling@tensilica.com>
3 * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
4 * config/xtensa/xtensa.c (override_options): Check
5 TARGET_FORCE_NO_PIC and set flag_pic.
6 * config/xtensa/xtensa.opt: Document -mforce-no-pic
8 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
11 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
12 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
14 2010-05-27 Joseph Myers <joseph@codesourcery.com>
16 * diagnostic-core.h: New. Contents moved from diagnostic.h and
18 * diagnostic.c: Don't include toplev.h.
19 (progname): Define. Moved from toplev.c.
20 (seen_error): New function.
21 * diagnostic.h: Include diagnostic-core.h.
22 (diagnostic_t, emit_diagnostic): Don't declare here.
23 * toplev.c (progname): Move to toplev.c.
24 (emit_debug_global_declarations, compile_file, finalize,
25 do_compile, toplev_main): Use seen_error.
26 * toplev.h: Include diagnostic-core.h.
27 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
28 internal_error, warning, warning_at, error, error_n, error_at,
29 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
30 verbatim, fnotice, progname): Move to diagnostic-core.h.
31 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
32 (expand_builtin_expect): Use seen_error.
33 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
34 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
35 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
36 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
37 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
38 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
39 errorcount for errors.
40 * c-opts.c (c_common_finish): Use seen_error.
41 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
42 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
43 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
44 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
45 (get_coverage_counts): Use seen_error.
46 * dwarf2out.c (dwarf2out_finish): Use seen_error.
47 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
48 gimplify_body): Use seen_error.
49 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
50 * ipa-pure-const.c (gate_pure_const): Use seen_error.
51 * ipa-reference.c (gate_reference): Use seen_error.
52 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
53 * lambda-code.c: Include diagnostic-core.h instead of
55 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
56 * lto-compress.c: Include diagnostic-core.h instead of
58 * lto-section-in.c: Include diagnostic-core.h instead of
60 * lto-streamer-out.c: Include diagnostic-core.h instead of
62 * lto-streamer.c: Include diagnostic-core.h instead of
64 (gate_lto_out): Use seen_error.
65 * matrix-reorg.c: Include diagnostic-core.h instead of
67 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
68 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
69 (gate_expand_omp, lower_omp_1): Use seen_error.
70 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
71 (rest_of_decl_compilation, rest_of_type_compilation,
72 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
73 * tree-cfg.c (label_to_block_fn): Use seen_error.
74 * tree-inline.c (optimize_inline_calls): Use seen_error.
75 * tree-mudflap.c (mudflap_finish_file): Use
77 * tree-optimize.c (gate_all_optimizations,
78 gate_all_early_local_passes, gate_all_early_optimizations): Use
80 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
81 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
82 (varpool_remove_unreferenced_decls,
83 varpool_assemble_pending_decls): Use seen_error.
84 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
85 (TOPLEV_H, DIAGNOSTIC_H): Update.
86 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
87 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
88 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
89 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
90 coverage.o, lambda-code.o): Update dependencies.
92 2010-05-25 Dodji Seketeli <dodji@redhat.com>
95 * c-common.c (is_typedef_decl): Move this definition ...
96 * tree.c (is_typedef_decl): ... here.
97 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
98 * c-common.h (is_typedef_decl): Move this declaration ...
99 * tree.h (is_typedef_decl): ... here.
100 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
101 * dwarf2out.c (is_naming_typedef_decl): New function.
102 (gen_tagged_type_die): Split out of ...
103 (gen_type_die_with_usage): ... this function. When an anonymous
104 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
105 is emitted for the typedef.
106 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
107 anonymous tagged types.
109 2010-05-27 Jason Merrill <jason@redhat.com>
111 * print-tree.c (debug_vec_tree): New fn.
112 (print_vec_tree): New fn.
113 * tree.h: Declare them.
114 * gdbinit.in (pvt): New command.
116 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
118 * gdbinit.in (pdd): New command.
120 2010-05-27 Jan Hubicka <jh@suse.cz>
122 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
123 (update_caller_keys): Return early if there are no callers;
124 only update fibheap when decresing the key.
125 (update_callee_keys): Avoid recursion.
126 (decide_inlining_of_small_functions): When badness does not match;
127 re-insert into fibheap.
129 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
131 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
132 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
133 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
134 (ALL_HOST_OBJS): Now a union of the above two.
135 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
136 all files in ALL_HOST_FRONTEND_OBJS.
137 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
139 * c-common.c: Pretend to be a backend file by undefining
140 IN_GCC_FRONTEND (still need rtl.h here).
142 2010-05-27 Jan Hubicka <jh@suse.cz>
144 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
145 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
147 2010-05-27 Jan Hubicka <jh@suse.cz>
149 * sched-ebb.c: Rename struct deps to struct deps_desc.
151 * sel-sched-ir.c: Likewise.
152 * sched-deps.c: Likewise.
153 * sched-int.h: Likewise.
154 * sched-rgn.c: Likewise.
156 2010-05-27 Jon Beniston <jon@beniston.com>
159 * config/lm32/lm32.h: Remove definition of
160 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
162 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
165 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
167 2010-05-27 Richard Guenther <rguenther@suse.de>
169 PR tree-optimization/44284
170 * tree-vect-stmts.c (vectorizable_assignment): Handle
171 sign-changing conversions as simple copy.
173 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
175 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
177 (__gthread_active_p): Check for pthread_create if compiling against
180 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
182 Support compilation for Android platform. Reimplement -mandroid.
184 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
185 (*android*): Set ANDROID_DEFAULT.
186 (arm*-*-linux*): Include linux-android.h.
187 (arm*-*-eabi*): Don't include previous -mandroid implementation.
188 * config/arm/eabi.h: Remove, move Android-specific parts ...
189 * config/linux-android.h: ... here. New file.
190 * config/arm/eabi.opt: Rename to ...
191 * config/linux-android.opt: ... this.
192 (mandroid): Allow -mno-android option. Initialize based on
194 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
195 Move logic to corresponding LINUX_TARGET_* macros.
196 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
197 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
198 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
200 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
201 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
204 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
206 Add support for Bionic C library
208 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
210 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
211 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
213 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
214 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
215 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
216 to support multiple C libraries. Handle Bionic.
217 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
218 (BIONIC_DYNAMIC_LINKER64): Define.
219 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
221 (TARGET_HAS_SINCOS): Enable for Bionic.
223 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
224 the last option specified on command line take effect.
225 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
227 (mglibc, muclibc): Update.
229 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
230 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
233 * doc/invoke.texi (-mglibc, -muclibc): Update.
234 (-mbionic): Document.
236 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
238 * c-common.h (c_register_addr_space): Add prototype.
239 (ADDR_SPACE_KEYWORD): Remove.
240 * c-common.c (c_register_addr_space): New function.
241 (c_addr_space_name): Reimplement.
242 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
244 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
245 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
247 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
248 Remove TARGET_ADDR_SPACE_KEYWORDS.
250 2010-05-27 Joseph Myers <joseph@codesourcery.com>
253 * input.h (main_input_filename): Move declaration to toplev.h.
254 * toplev.c (input_location, line_table): Move to input.c
255 * toplev.h (main_input_filename): Move declaration from input.h.
256 * tree.c (expand_location): Move to input.c.
257 * Makefile.in (OBJS-common): Add input.o.
258 (input.o): Add dependencies.
260 2010-05-27 Richard Guenther <rguenther@suse.de>
262 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
263 for non-existant files.
264 (fork_execute): Mark args_name file as deleted.
266 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
269 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
270 (narrow_signed_type): Likewise.
272 2010-05-26 Jan Hubicka <jh@suse.cz>
274 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
275 edge only when checking is enabled; check using former_clone_of;
276 check inline clones too.
277 (cgraph_materialize_clone): Record former_clone_of pointer.
278 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
279 combining redirections; dump args_to_skip bitmap
280 (cgraph_materialize_all_clones): Do no redirection here.
281 * ipa-inline.c (inline_transform): Do redirection here.
282 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
285 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
287 * config/avr/avr-c.c: Do not include regs.h.
288 Include cpplib.h for cpp_define and tree.h for c-common.h.
289 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
290 * config/avr/t-avr: Fix dependencies for avr-c.o.
292 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
294 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
295 string instead of SYMBOL_REF rtx.
296 * rtl.h (set_stack_check_libfunc): Move prototype from here...
297 * libfuncs.h: ...to here. Adjust for explow.c change.
299 2010-05-26 Joseph Myers <joseph@codesourcery.com>
301 * pretty-print.c: Don't include ggc.h.
302 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
303 (identifier_to_locale): Use them for allocation.
304 * pretty-print.h (identifier_to_locale_alloc,
305 identifier_to_locale_free): Declare.
306 * toplev.c (alloc_for_identifier_to_locale): New.
307 (general_init): Set identifier_to_locale_alloc and
308 identifier_to_locale_free.
309 * Makefile.in (pretty-print.o): Update dependencies.
311 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
313 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
314 pointer types if they have different alignment or mode.
316 2010-05-26 Anatoly Sokolov <aesok@post.ru>
318 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
319 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
320 * config/sparc/sparc-protos.h (function_value): Remove declaration.
321 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
322 sparc_function_value_regno_p): New functions.
323 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
324 TARGET_FUNCTION_VALUE_REGNO_P): Define.
325 (function_value): Rename to...
326 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
327 argument to 'outgoing'.
328 (function_arg_record_value, function_arg_union_value,
329 function_arg_vector_value): Update comment.
331 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
333 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
334 (fde_needed_for_eh_p): New predicate.
335 (output_call_frame_info): Use it throughout to decide whether FDEs
336 are needed for EH purpose.
337 (dwarf2out_begin_prologue): Reorder assignments.
339 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
341 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
342 special case loop->header.
343 (is_predicated): New.
344 (if_convertible_loop_p): Call it.
346 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
348 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
349 iterator in parameter. Do not generate code during the analysis.
350 (tree_if_convert_cond_stmt): Removed.
351 (tree_if_convert_stmt): Removed.
352 (predicate_bbs): New.
353 (if_convertible_loop_p): Call predicate_bbs.
354 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
355 now contains all the analysis part.
357 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
359 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
360 statements in the analysis part.
361 (tree_if_convert_stmt): Update comment.
362 (remove_conditions_and_labels): New.
363 (combine_blocks): Call remove_conditions_and_labels.
364 (tree_if_conversion): Update comment.
366 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
368 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
369 than 2 predecessors or more than 2 successors.
371 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
373 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
374 of loops in which the data dependence analysis fails.
376 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
378 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
380 (tree_if_conversion): Same.
382 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
384 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
386 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
388 * tree-if-conv.c: Update copyright years. Fix comments.
391 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
393 * builtin-types.def (BT_INT128): New primitive type.
394 (BT_UINT128): Likewise.
395 * c-common.c (c_common_r): Add __int128 keyword.
396 (c_common_type_for_size): Handle __int128.
397 (c_common_type_for_mode): Likewise.
398 (c_common_signed_or_unsigned_type): Likewise.
399 (c_common_nodes_and_builtins): Add builtin type
400 if target supports 128-bit integer scalar.
401 * c-common.h (enum rid): Add RID_INT128.
402 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
403 if target supports 128-bit integer scalar.
404 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
405 (finish_declspecs): Likewise.
406 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
407 (c_token_starts_declspecs): Likewise.
408 (c_parser_declspecs): Likewise.
409 (c_parser_attributes): Likewise.
410 (c_parser_objc_selector): Likewise.
411 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
412 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
413 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
414 * tree.c (make_or_reuse_type): Likewise.
415 (make_unsigned_type): Likewise.
416 (build_common_tree_nodes_2): Likewise.
417 * tree.h (enum integer_type_kind): Add itk_int128 and
419 (int128_integer_type_node): New define.
420 (int128_unsigned_type_node): New define.
421 * doc/extend.texi: Add documentation about __int128 type.
423 2010-05-26 Richard Guenther <rguenther@suse.de>
425 * tree-ssa-sccvn.c (copy_nary): Adjust.
426 (copy_phis): Rename to ...
427 (copy_phi): ... this. Adjust.
428 (copy_references): Rename to ...
429 (copy_reference): ... this. Adjust.
430 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
431 result into the valid table.
433 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
435 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
436 insn-config.h, insn-codes.h, recog.h, and optabs.h.
438 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
440 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
442 2010-05-26 Richard Guenther <rguenther@suse.de>
444 * opts.c (common_handle_option): Handle OPT_Ofast.
446 2010-05-26 Joseph Myers <joseph@codesourcery.com>
448 * diagnostic.c: Don't include opts.h.
449 (permissive_error_option): Define.
450 (diagnostic_initialize): Take n_opts parameter. Allocate memory
451 for classify_diagnostic. Don't use memset for
452 classify_diagnostic. Initialize new and recently added fields.
453 (diagnostic_classify_diagnostic): Use context->n_opts instead of
455 (diagnostic_report_diagnostic): Pass context parameter to
456 diagnostic_report_warnings_p. Use option_enabled and option_name
458 (emit_diagnostic): Use permissive_error_option.
459 (permerror): Likewise.
460 * diagnostic.h: Don't include options.h.
461 (struct diagnostic_context): Add n_opts, opt_permissive,
462 inhibit_warnings, warn_system_headers, option_enabled and
463 option_name fields. Change classify_diagnostic to a pointer.
464 * opts-diagnostic.h: New file.
465 * opts.c: Include opts-diagnostic.h.
466 (common_handle_option): Set global_dc fields for -Wfatal-errors,
467 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
468 (option_name): New function.
469 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
470 (c_common_handle_option): Set global_dc->permissive for
472 * c-common.c (c_cpp_error): Save and restore
473 global_dc->warn_system_headers, not variable warn_system_headers.
474 * toplev.c: Include opts-diagnostic.h.
475 (general_init): Update call to diagnostic_initialize. Set
476 global_dc->show_column, global_dc->option_enabled and
477 global_dc->option_name.
478 (process_options): Don't set global_dc fields here.
479 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
480 (diagnostic.o, opts.o, toplev.o): Update dependencies.
482 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
484 * config/picochip/picochip.md (movsi): Split a movsi from a
487 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
489 * ggc-zone.c: Update copyright year.
490 (poison_region): Mark memory for Valgrind as undefined before
491 memset () call and inaccessible afterwards.
492 (ggc_pch_total_size): Change type of i to int.
494 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
496 * ggc-common.c (ggc_free_overhead): Allow empty slot.
498 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
500 * ggc-common.c: Update copyright year.
501 (ggc_rlimit_bound): Remove prototype. Compile only if
502 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
503 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
504 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
505 (ggc_min_heapsize_heuristic): Likewise.
507 2010-05-26 Richard Guenther <rguenther@suse.de>
509 PR rtl-optimization/44164
510 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
511 no-common access-path disambiguation.
512 (indirect_ref_may_alias_decl_p): Adjust.
513 (indirect_refs_may_alias_p): Likewise.
514 (refs_may_alias_p_1): Likewise.
516 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
518 * c-typeck.c: Do not include expr.h.
520 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
522 * rtl.h (decl_default_tls_model): Move prototype from here...
523 * output.h: ...to here.
524 * c-decl.c: Do not include rtl.h.
525 * c-pragma.c: Likewise.
526 * c-parser.c: Likewise.
527 * c-gimplify.c: Likewise. And also not hard-reg-set.
528 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
529 FIXME note for it. Add a FIXME note for expr.h.
530 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
531 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
534 2010-05-26 Jakub Jelinek <jakub@redhat.com>
537 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
538 or total_size is larger than red zone size for non-V4 ABI, emit a
539 stack_tie resp. frame_tie insn before stack pointer restore.
540 * config/rs6000/rs6000.md (frame_tie): New insn.
542 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
544 * function.h (struct function): Add can_throw_non_call_exceptions bit.
545 * lto-streamer-in.c (input_function): Stream it in.
546 * lto-streamer-out.c (output_function): Stream it out.
547 * function.c (allocate_struct_function): Set it.
548 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
549 for flag_non_call_exceptions.
550 * cfgbuild.c (control_flow_insn_p): Likewise.
551 (make_edges): Likewise.
552 * cfgexpand.c (expand_stack_alignment): Likewise.
553 * combine.c (distribute_notes): Likewise.
554 * cse.c (cse_extended_basic_block): Likewise.
555 * except.c (insn_could_throw_p): Likewise.
556 * gcse.c (simple_mem): Likewise.
557 * ipa-pure-const.c (check_call): Likewise.
558 (check_stmt ): Likewise.
559 * lower-subreg.c (lower-subreg.c): Likewise.
560 * optabs.c (emit_libcall_block): Likewise.
561 (prepare_cmp_insn): Likewise.
562 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
563 * postreload.c (rest_of_handle_postreload): Likewise.
564 * reload1.c (reload_as_needed): Likewise.
565 (emit_input_reload_insns): Likewise.
566 (emit_output_reload_insns): Likewise.
567 (fixup_abnormal_edges): Likewise.
568 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
569 * store-motion.c (find_moveable_store): Likewise.
570 * tree-eh.c (stmt_could_throw_p): Likewise.
571 (tree_could_throw_p): Likewise.
572 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
573 * config/arm/arm.c (arm_expand_prologue): Likewise.
574 (thumb1_expand_prologue): Likewise.
575 * config/rx/rx.md (cbranchsf4): Likewise.
577 * config/s390/s390.c (s390_emit_prologue): Likewise.
578 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
579 (inline_forbidden_into_p): New predicate.
580 (expand_call_inline): Use it to forbid inlining.
581 (tree_can_inline_p): Likewise.
583 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
585 * config/i386/i386-c.c: Do not include rtl.h.
586 * config/i386/t-i386: Update dependencies.
588 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
590 * attribs.c: Do not include rtl.h.
591 * Makefile.in: Update dependencies.
593 2010-05-25 Anatoly Sokolov <aesok@post.ru>
595 * double-int.h (double_int_and): New.
596 * combine.c (try_combine): Clean up, use double_int_* and
597 immed_double_int_const functions.
599 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
601 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
602 stderr to /dev/null instead of grep -q.
603 * configure: Regenerate.
605 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
607 * Makefile.in (EXCEPT_H): Fix typo.
609 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
611 * ira-build.c (update_conflict_hard_reg_costs): New.
612 (ira_build): Call update_conflict_hard_reg_costs.
614 2010-05-25 Jakub Jelinek <jakub@redhat.com>
617 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
619 (intersect_loc_chains): Walk the s2var's loc_chain together
620 with s1node chain as long as the locations are equal, don't
621 call find_loc_in_1pdv in that case.
624 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
625 (copy_bind_expr): ... instead of here.
626 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
627 if the block hasn't been remapped.
628 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
629 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
631 2010-05-25 Richard Guenther <rguenther@suse.de>
634 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
635 out-of-bounds array accesses.
637 2010-05-25 Richard Guenther <rguenther@suse.de>
639 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
640 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
641 (run_gcc): Re-organize to make cleanup easier.
643 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
645 * config/s390/s390.c (optimization_options): Fix and move the
646 flag_prefetch_loop_arrays override ...
647 (override_options): ... here.
649 2010-05-25 Joseph Myers <joseph@codesourcery.com>
651 * diagnostic.c: Don't include plugin.h.
652 (diagnostic_report_diagnostic): Don't handle plugins specially
653 here. Pass context to internal_error callback.
654 * diagnostic.h (struct diagnostic_context): Add context parameter
655 to internal_error callback.
656 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
657 * plugin.h (struct diagnostic_context): Declare.
658 (warn_if_plugins, plugins_internal_error_function): Declare.
659 * toplev.c (general_init): Set global_dc->internal_error.
660 * Makefile.in (diagnostic.o): Update dependencies.
662 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
664 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
665 * config/rs6000/t-darwin64: New.
666 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
669 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
672 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
673 match the original (and intended) behaviour before r159557. This
674 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
677 2010-05-25 Richard Guenther <rguenther@suse.de>
679 * doc/invoke.texi: Document -Ofast.
680 * target.h (struct gcc_target): Add handle_ofast.
681 * target-def.h (TARGET_HANDLE_OFAST): Add.
682 (TARGET_INITIALIZER): Adjust.
683 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
684 * common.opt (Ofast): Add.
686 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
688 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
689 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
691 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
694 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
695 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
696 false_rtx. Use false_rtx to compute the correct *ptest for reversed
697 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
699 2010-05-25 Jakub Jelinek <jakub@redhat.com>
701 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
702 DW_OP_minus with negated offset instead of DW_OP_plus.
703 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
705 2010-05-25 Wei Guozhi <carrot@google.com>
707 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
708 tst instruction and a new alternative.
709 * config/arm/constraints.md (Pu): New constraint.
711 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
713 * function.c (assign_stack_local_1): Initialize variable
714 to avoid warning when bootstrapping at -O3.
716 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
718 * configure.ac (all_lang_makefiles): Remove everything related to it.
719 * configure: Regenerate.
720 * Makefile.in: Fix reference to ada Make-lang.in.
721 Remove support for LANG_MAKEFILES.
723 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
724 Sandra Loosemore <sandra@codesourcery.com>
726 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
727 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
728 description. Add arm_neon_fp16_ok.
729 (Add Options): Add arm_neon and arm_neon_fp16.
731 2010-05-24 Joseph Myers <joseph@codesourcery.com>
733 * diagnostic.c: Don't include flags.h.
734 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
735 context parameters. Check flags in the context passed as a parameter.
736 (diagnostic_build_prefix): Add context parameter. Check
737 show_column flag in context.
738 (diagnostic_action_after_output): Check fatal_errors flag in context.
739 (diagnostic_report_current_module): Check show_column flag in context.
740 (default_diagnostic_starter): Update call to
741 diagnostic_build_prefix.
742 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
743 (emit_diagnostic): Pass context to permissive_error_kind.
744 (permerror): Pass context to permissive_error_kind.
745 * diagnostic.h (struct diagnostic_context): Add show_column,
746 pedantic_errors, permissive and fatal_errors fields.
747 (diagnostic_build_prefix): Update prototype.
749 * toplev.c (process_options): Set flags in global_dc from
750 flag_show_column, flag_pedantic_errors, flag_permissive,
752 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
753 to diagnostic_build_prefix.
754 * Makefile.in (diagnostic.o): Update dependencies.
756 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
758 * config/i386/ia32intrin.h (__crc32q): Define only if
759 __SSE4_2__ is defined.
761 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
765 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
766 DECL_VISIBILITY_SPECIFIED.
767 (emutls_decl): Set DECL_PRESERVE_P and copy
768 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
769 (emutls_finalize_control_var): New callback.
770 (emutls_finish): Finalize emutls control variables.
771 * toplev.c (compile_file): Move the call to emutls_finish ()
772 before varpool_assemble_pending_decls ().
774 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
776 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
777 added to the preprocessor condition.
779 2010-05-24 Paul Brook <paul@codesourcery.com>
781 * gengtype-lex.l: Add HARD_REG_SET.
782 * expr.c (expand_expr_real_1): Record writes to hard registers.
783 * function.c (rtl_data): Add asm_clobbers.
784 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
785 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
786 Use crtl->asm_clobbers.
788 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
790 * doc/makefile.texi (Makefile): Mention stages 'profile'
791 and 'feedback' for profiledbootstrap.
793 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
796 * config/i386/i386.c (def_builtin): Properly check
797 OPTION_MASK_ISA_64BIT.
799 2010-05-23 Joseph Myers <joseph@codesourcery.com>
801 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
802 typedefs with different but compatible types. Allow duplicate
803 typedefs with the same type except for pedantic non-C1X, but give
804 warning for variably modified types.
805 * c-typeck.c (tagged_types_tu_compatible_p,
806 function_types_compatible_p, type_lists_compatible_p,
807 comptypes_internal): Add parameter different_types_p; set
808 *different_types_p for different but compatible types. All
810 (comptypes_check_different_types): New.
811 * c-tree.h (comptypes_check_different_types): Declare.
813 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
815 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
816 * jump.c: Include basic-block.h.
817 * profile.c: Likewise.
818 * tree-profile.c: Likewise.
819 * coverage.c: Likewise.
820 * basic-block.h (optimize_function_for_size_p): Move to function.h.
821 (optimize_function_for_speed_p): Likewise.
822 * function.h (optimize_function_for_size_p,
823 optimize_function_for_speed_p): Moved here from basic-block.h.
824 * Makefile.in: Update dependencies.
826 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
828 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
829 before calling make; allow override through $MAKE.
830 * doc/invoke.texi (Optimize Options): Document override.
832 2010-05-23 Anatoly Sokolov <aesok@post.ru>
834 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
835 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
836 (rs6000_mode_dependent_address_ptr): Make static.
837 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
838 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
841 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
844 * config/i386/i386.c: Make sure that the correct regparm is passed.
846 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
848 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
849 * sbitmap.c: ...to here to internalize sbitmap element access.
850 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
851 Explain why basic-block.h is included.
852 * function.h: Include tm.h for CUMULATIVE_ARGS.
853 * Makefile.in: Update dependencies.
855 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
857 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
859 * sbitmap.h (struct sbitmap_def): Do not typedef here.
860 * sbitmap.c: Include sbitmap.h.
861 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
862 hard-reg-set.h. Split everything related to regsets out from here...
863 * regset.h: ...to here. New file.
864 * df.h: Include regset.h and sbitmap.h.
865 * tree-flow.h: Likewise.
866 * cfgloop.h: Likewise.
867 * except.h: Do not include sbitmap.h. Include hashtab.h.
868 * cgraph.h: Include vec.h and function.h.
869 * reload.h (struct insn_chain): Change types of live_throughout
870 and dead_or_set from regset_head to bitmap_head.
871 (compute_use_by_pseudos): Be defined also if regset.h is not included.
872 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
873 spilled_regs from regset_head to bitmap_head to avoid dependency
875 * sel-sched-ir.h: Include regset.h.
876 * reload.c: Include df.h before reload.h.
877 * caller-save.c: Likewise.
878 * reload1.c: Likewise.
880 (mark_elimination): Update type of r to bitmap, consistent with
882 * dominance.c: Include bitmap.h.
883 * modulo-sched.c: Include df.h.
884 * cfganal.c: Include bitmap.h and sbitmap.h.
885 * cfgbuild.c: Include sbitmap.h.
886 * lcm.c: Include sbitmap.h.
887 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
888 * domwalk.c: Include sbitmap.h, exclude ggc.h.
889 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
890 * cselib.c: Include bitmap.h.
891 * tree-optimize.c: Include regset.h.
892 * stmt.c: Include bitmap.h.
893 * Makefile.in: Update dependencies.
895 2010-05-22 Jan Hubicka <jh@suse.cz>
897 * cgraph.h (struct varpool_node): Add same_comdat_group.
898 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
900 (output_varpool): Update call of lto_output_varpool_node.
901 (input_varpool): Read same_comdat_group pointer.
902 (input_varpool_1): Fixup same_comdat_group pointer.
903 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
904 group is needed, all are.
905 * varpool.c (varpool_remove_node): Remove node from same comdat group
907 (varpool_analyze_pending_decls): Walk same comdat groups.
909 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
911 * rtl.h (union rtunion_def): Remove rt_bit member.
912 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
913 * print-rtl (print_rtx): Do not print the member.
914 * gengtype.c (adjust_field_rtx_def): Do not handle it.
915 * gengenrtl.c (type_from_format): Likewise.
916 (accessor_from_format): Likewise.
918 2010-05-22 Joseph Myers <joseph@codesourcery.com>
920 * dbgcnt.c: Include toplev.h instead of errors.h.
921 * ira-emit.c: Don't include errors.h.
922 * ira.c: Include toplev.h instead of errors.h.
923 * lto-compress.c: Include toplev.h instead of errors.h.
924 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
925 ira.o, dbgcnt.o): Update dependencies.
927 2010-05-22 Richard Guenther <rguenther@suse.de>
929 * gimple.c (gimple_types_compatible_p): Check type qualifications
930 before merging pointer to complete and pointer to incomplete type.
931 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
932 we use our own resolution algorithm. The gold linker plugin
933 doesn't do the job we want it to do here.
935 2010-05-22 Anatoly Sokolov <aesok@post.ru>
937 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
938 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
939 (sparc_mode_dependent_address_p): New function.
941 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
943 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
945 * timevar.c: Do not include any core headers.
946 (timevar_print): De-i18n-ize.
947 (print_time): Likewise.
948 * timevar.h (timevar_push, timevar_pop): Make inline functions.
950 2010-05-21 Joseph Myers <joseph@codesourcery.com>
952 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
954 (diagnostic_initialize): Initialize x_data not last_function.
955 (diagnostic_report_current_function): Move to tree-diagnostic.c.
956 (default_diagnostic_starter): Call
957 diagnostic_report_current_module not
958 diagnostic_report_current_function.
959 (diagnostic_report_diagnostic): Initialize x_data not
961 (verbatim): Likewise.
962 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
964 (struct diagnostic_context): Change last_function to x_data.
965 (diagnostic_auxiliary_data): Replace with
966 diagnostic_context_auxiliary_data and
967 diagnostic_info_auxiliary_data.
968 (diagnostic_last_function_changed, diagnostic_set_last_function,
969 diagnostic_report_current_function): Move to tree-diagnostic.h.
970 (print_declaration, dump_generic_node, print_generic_stmt,
971 print_generic_stmt_indented, print_generic_expr,
972 print_generic_decl, debug_c_tree, dump_omp_clauses,
973 print_call_name, debug_generic_expr, debug_generic_stmt,
974 debug_tree_chain, default_tree_printer): Move to
976 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
977 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
978 gimple-pretty-print.h.
979 * pretty-print.c: Don't include tree.h
980 (pp_base_format): Don't handle %K here.
981 (pp_base_tree_identifier): Move to tree-pretty-print.c.
982 * pretty-print.h (text_info): Change abstract_origin to x_data.
983 (pp_tree_identifier, pp_unsupported_tree,
984 pp_base_tree_identifier): Move to tree-pretty-print.h.
985 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
986 tree-pretty-print.h: New files.
987 * tree-pretty-print.c: Include tree-pretty-print.h.
988 (percent_K_format): New. Moved from pretty-print.c.
989 (pp_base_tree_identifier): Move from pretty-print.c.
990 * c-objc-common.c: Include tree-pretty-print.h.
991 (c_tree_printer): Handle %K here.
992 * langhooks.c: Include tree-diagnostic.h.
993 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
994 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
995 (default_tree_printer): Handle %K using percent_K_format.
996 (general_init): Use default_tree_diagnostic_starter.
997 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
998 (free_lang_data): Use default_tree_diagnostic_starter.
999 * c-pretty-print.c: Include tree-pretty-print.h.
1000 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1001 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1002 * dwarf2out.c: Include tree-pretty-print.h.
1003 * except.c: Include tree-pretty-print.h.
1004 * gimple-pretty-print.c: Include tree-pretty-print.h and
1005 gimple-pretty-print.h.
1006 * gimplify.c: Include tree-pretty-print.h.
1007 * graphite-poly.c: Include tree-pretty-print.h and
1008 gimple-pretty-print.h.
1009 * ipa-cp.c: Include tree-pretty-print.h.
1010 * ipa-inline.c: Include gimple-pretty-print.h.
1011 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1012 * ipa-pure-const.c: Include gimple-pretty-print.h.
1013 * ipa-struct-reorg.c: Include tree-pretty-print.h and
1014 gimple-pretty-print.h.
1015 * ipa-type-escape.c: Include tree-pretty-print.h.
1016 * print-rtl.c: Include tree-pretty-print.h.
1017 * print-tree.c: Include gimple-pretty-print.h.
1018 * sese.c: Include tree-pretty-print.h.
1019 * tree-affine.c: Include tree-pretty-print.h.
1020 * tree-browser.c: Include tree-pretty-print.h.
1021 * tree-call-cdce.c: Include gimple-pretty-print.h.
1022 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
1023 * tree-chrec.c: Include tree-pretty-print.h.
1024 * tree-data-ref.c: Include tree-pretty-print.h and
1025 gimple-pretty-print.h.
1026 * tree-dfa.c: Include tree-pretty-print.h.
1027 * tree-if-conv.c: Include tree-pretty-print.h and
1028 gimple-pretty-print.h.
1029 * tree-inline.c: Include tree-pretty-print.h.
1030 * tree-into-ssa.c: Include tree-pretty-print.h and
1031 gimple-pretty-print.h.
1032 * tree-nrv.c: Include tree-pretty-print.h.
1033 * tree-object-size.c: Include tree-pretty-print.h and
1034 gimple-pretty-print.h.
1035 * tree-outof-ssa.c: Include tree-pretty-print.h and
1036 gimple-pretty-print.h.
1037 * tree-parloops.c: Include tree-pretty-print.h and
1038 gimple-pretty-print.h.
1039 * tree-predcom.c: Include tree-pretty-print.h and
1040 gimple-pretty-print.h.
1041 * tree-scalar-evolution.c: Include tree-pretty-print.h and
1042 gimple-pretty-print.h.
1043 * tree-sra.c: Include tree-pretty-print.h.
1044 * tree-ssa-address.c: Include tree-pretty-print.h.
1045 * tree-ssa-alias.c: Include tree-pretty-print.h.
1046 * tree-ssa-ccp.c: Include tree-pretty-print.h and
1047 gimple-pretty-print.h.
1048 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
1049 * tree-ssa-copy.c: Include tree-pretty-print.h and
1050 gimple-pretty-print.h.
1051 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
1052 * tree-ssa-dce.c: Include tree-pretty-print.h and
1053 gimple-pretty-print.h.
1054 * tree-ssa-dom.c: Include tree-pretty-print.h and
1055 gimple-pretty-print.h.
1056 * tree-ssa-dse.c: Include gimple-pretty-print.h.
1057 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
1058 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
1059 * tree-ssa-live.c: Include tree-pretty-print.h and
1060 gimple-pretty-print.h.
1061 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
1062 gimple-pretty-print.h.
1063 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
1064 gimple-pretty-print.h.
1065 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
1066 gimple-pretty-print.h.
1067 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
1068 gimple-pretty-print.h.
1069 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
1070 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
1071 * tree-ssa-operands.c: Include tree-pretty-print.h and
1072 gimple-pretty-print.h.
1073 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
1074 gimple-pretty-print.h.
1075 * tree-ssa-pre.c: Include tree-pretty-print.h and
1076 gimple-pretty-print.h.
1077 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
1078 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
1079 gimple-pretty-print.h.
1080 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
1081 gimple-pretty-print.h.
1082 * tree-ssa-sink.c: Include gimple-pretty-print.h.
1083 * tree-ssa-ter.c: Include tree-pretty-print.h and
1084 gimple-pretty-print.h.
1085 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
1086 * tree-ssa.c: Include tree-pretty-print.h and
1087 gimple-pretty-print.h.
1088 * tree-stdarg.c: Include gimple-pretty-print.h.
1089 * tree-switch-conversion.c: Include gimple-pretty-print.h.
1090 * tree-tailcall.c: Include tree-pretty-print.h and
1091 gimple-pretty-print.h.
1092 * tree-vect-data-refs.c: Include tree-pretty-print.h and
1093 gimple-pretty-print.h.
1094 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
1095 gimple-pretty-print.h.
1096 * tree-vect-loop.c: Include tree-pretty-print.h and
1097 gimple-pretty-print.h.
1098 * tree-vect-patterns.c: Include gimple-pretty-print.h.
1099 * tree-vect-slp.c: Include tree-pretty-print.h and
1100 gimple-pretty-print.h.
1101 * tree-vect-stmts.c: Include tree-pretty-print.h and
1102 gimple-pretty-print.h.
1103 * tree-vectorizer.c: Include tree-pretty-print.h.
1104 * tree-vrp.c: Include tree-pretty-print.h and
1105 gimple-pretty-print.h.
1106 * value-prof.c: Include tree-pretty-print.h and
1107 gimple-pretty-print.h.
1108 * var-tracking.c: Include tree-pretty-print.h.
1109 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
1110 (tree-diagnostic.o): New dependencies.
1111 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
1112 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
1113 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
1114 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
1115 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
1116 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
1117 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1118 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
1119 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
1120 tree-ssa-address.o, tree-ssa-loop-niter.o,
1121 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
1122 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
1123 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
1124 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
1125 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
1126 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
1127 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
1128 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
1129 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
1130 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
1131 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
1132 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
1133 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
1134 tree-switch-conversion.o, var-tracking.o, value-prof.o,
1135 cfgexpand.o, pretty-print.o): Update dependencies.
1137 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
1139 * tree-ssa-structalias.c: Remove tm_p.h from include.
1141 2010-05-21 Jeff Law <law@redhat.com>
1143 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
1145 2010-05-21 Jason Merrill <jason@redhat.com>
1147 * tree-eh.c (cleanup_is_dead_in): New.
1148 (lower_try_finally): Don't generate a dead cleanup region.
1149 (lower_cleanup): Likewise.
1151 2010-05-21 Jakub Jelinek <jakub@redhat.com>
1154 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
1155 unchain each use from the cyclic next_regno_use chain first.
1157 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1159 * real: Do not include gmp.h, mpfr.h, and mpc.h.
1160 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
1161 (real_value_negate, real_value_abs): New prototypes.
1162 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
1163 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
1164 new include file for interface between MPFR and REAL_VALUE_TYPE.
1165 * real.c: Include realmpfr.h.
1166 (real_arithmetic2): Remove legacy function.
1167 (real_value_negate): New.
1168 (real_value_abs): New.
1169 (mfpr_from_real, real_from_mpfr): Move from here...
1170 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
1171 * builtins.c: Include realmpfr.h.
1172 * fold-const.c: Include realmpfr.h.
1173 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
1174 (fold_negate_const): Likewise.
1175 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
1176 * toplev.c: Include realmpfr.h.
1177 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
1178 and real_value_negate.
1179 * fixed-value.c (check_real_for_fixed_mode): Likewise.
1180 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
1181 (vfp3_const_double_index): Likewise.
1182 (arm_print_operand): Likewise.
1183 * Makefile.in: Update dependencies.
1185 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1187 * config/s390/s390.c (override_options): Increase the default
1188 of max-completely-peel-times.
1190 2010-05-21 Julian Brown <julian@codesourcery.com>
1191 Mark Mitchell <mark@codesourcery.com>
1193 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
1194 sibling calls for Thumb-1.
1195 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
1196 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
1198 (*call_insn, *call_value_insn): Don't use for Thumb-2.
1199 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
1201 (return): New expander.
1202 (*arm_return): New name for ARM return insn.
1203 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
1205 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
1207 * config.gcc (sparc64-*-rtems*): New target.
1209 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
1211 * tree.c (build_function_decl_skip_args): Fix grammar.
1212 (build_function_type_list_1): Fix typos, adjust formatting.
1214 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1216 * tree.h: Include real.h and fixed-value.h as basic datatypes.
1217 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
1218 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
1219 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
1220 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
1221 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
1222 tree-pretty-print.c, tree-loop-distribution.c,
1223 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
1224 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
1225 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
1226 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
1227 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
1228 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
1229 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
1230 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
1231 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
1232 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
1233 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
1234 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1235 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1236 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1237 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1238 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1239 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1240 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1241 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1242 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1243 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1244 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1245 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1246 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1247 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1248 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1249 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1250 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1251 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1252 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1253 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1254 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1255 config/score/score7.c, config/score/score.c, config/arm/arm.c,
1256 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1257 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1258 config/bfin/bfin.c: Clean up redundant includes.
1259 * Makefile.in: Update accordingly.
1261 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
1264 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1265 statement has no arguments.
1267 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
1270 * varasm.c (emutls_decl): Merge attributes to new decl.
1272 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
1275 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1276 around the uniquized constructor if its type requires a conversion.
1278 2010-05-21 Jakub Jelinek <jakub@redhat.com>
1281 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1282 at -O0 goto_locus of any of the incoming edges differs from
1283 goto_locus of outgoing edge, or gimple_location of any of the
1286 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
1288 * ira.c (ira_non_ordered_class_hard_regs): Define.
1289 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1290 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1291 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1292 cost of unaligned hard regs when allocating multi-reg pseudos.
1294 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
1296 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1297 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1298 for TARGET_NO_FLOAT.
1299 * config/mips/mips.c (mips_file_start): Expand conditional expression
1300 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1301 (mips_override_options): Move -mno-float override -msoft-float and
1303 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1304 Condition(TARGET_SUPPORTS_NO_FLOAT).
1305 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1306 __mips_no_float here.
1307 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1308 (TARGET_SUPPORTS_NO_FLOAT): Define.
1309 * config/mips/sdemtk.opt: Delete.
1311 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
1313 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1315 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
1318 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1319 * configure: Regenerate.
1320 * config.in: Regenerate.
1321 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1322 instead of sahf only for 64bit targets.
1324 2010-05-20 Jakub Jelinek <jakub@redhat.com>
1327 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1328 setup_ref_regs for DEBUG_INSNs.
1330 2010-05-20 Jan Hubicka <jh@suse.cz>
1333 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1335 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
1338 * df-scan.c (df_ref_compare): Stabilize sort.
1340 2010-05-20 Jakub Jelinek <jakub@redhat.com>
1342 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1343 argument. Don't use DW_OP_piece if offset is non-zero,
1344 put offset into second DW_OP_bit_piece argument.
1345 (dw_sra_loc_expr): Adjust callers. For memory expressions
1348 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
1351 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1352 settings for 16-bit-constant "addo" alternative.
1354 2010-05-19 James E. Wilson <wilson@codesourcery.com>
1356 * config/mips/mips-dsp.md (add<DSPV:mode>3,
1357 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1360 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
1361 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1364 2010-05-19 Joseph Myers <joseph@codesourcery.com>
1366 * diagnostic.c (FLOAT, FFS): Don't undefine.
1367 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1368 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1371 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
1373 * combine.c (propagate_for_debug): Call make_compound_operation
1374 on the source value.
1375 (try_combine): When implementing a split chosen by find_split_point,
1376 either copy i2src or set it to null. Assert that i2src is not null
1377 before substituting into CALL_INSN_FUNCTION_USAGE.
1379 2010-05-19 Anatoly Sokolov <aesok@post.ru>
1381 * double-int.h (double_int_ior): New function.
1382 * tree.h (build_int_cst_wide_type): Remove.
1383 * tree.c (build_int_cst_wide_type): Remove.
1384 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1385 of build_int_cst_wide_type.
1386 * stor-layout.c (set_sizetype): (Ditto.).
1387 * dojump.c (do_jump): Use build_int_cstu instead of
1388 build_int_cst_wide_type.
1390 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
1392 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1393 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1394 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1395 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1396 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
1397 propagate the 'data' argument to copy_tree_r.
1398 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1399 Propagate 'data' argument to walk_tree.
1400 (copy_if_shared): New function.
1401 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1402 (unmark_visited): New function.
1403 (unshare_body): Call copy_if_shared instead of doing it manually.
1404 (unvisit_body): Call unmark_visited instead of doing it manually.
1406 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
1408 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1409 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
1410 * hooks.c: Likewise.
1411 * target-def.h (TARGET_FOLD_BUILTIN): Define to
1412 hook_tree_tree_int_treep_bool_null.
1413 * target.h (struct gcc_target): Update signature of fold_builtin
1415 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1416 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1417 instead of the call expression.
1418 (fold_builtin_call_array): Pass n and argarray directly.
1419 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1421 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
1422 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
1423 `i' and use it in place of `arity'.
1424 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1425 Dereference `args' directly.
1426 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1428 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1430 * doc/sourcebuild.texi (Effective-Target Keywords): Document
1432 (Directives): Document optional dg-require-effective-target
1435 2010-05-19 Richard Guenther <rguenther@suse.de>
1438 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1440 2010-05-19 Richard Guenther <rguenther@suse.de>
1442 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1443 * common.opt (fwhopr=): New.
1444 * opts.c (common_handle_option): Handle OPT_fwhopr.
1445 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1446 * collect2.c (main): Match -fwhopr*.
1447 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1448 Execute ltrans stage in parallel when jobs is bigger than 1.
1450 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1452 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1453 pentiumpro on Solaris 8/x86 with Sun as.
1454 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1456 (gcc_cv_as_ix86_quad): Check for .quad directive.
1457 * configure: Regenerate.
1458 * config.in: Regenerate.
1459 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1461 2010-05-19 Martin Jambor <mjambor@suse.cz>
1463 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1464 also for indirect edges. Actual printing moved...
1465 (ipa_print_node_jump_functions_for_edge): ...here.
1466 (ipa_compute_jump_functions): Renamed to
1467 ipa_compute_jump_functions_for_edge and made static.
1468 (ipa_compute_jump_functions): New function.
1469 (make_edge_direct_to_target): Check if the number of arguments on
1470 the newly direct edge is the same as the number of parametrs of
1472 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1473 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
1474 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1475 analysis functions unconditionally, call the new
1476 ipa_analyze_params_uses on the node instead of every edge.
1478 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
1480 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1482 (dump_mem_ref): Adopt debug code to handle a tree as step. This
1483 also checks for a constant int vs. non-constant but
1484 loop-invariant steps.
1485 (find_or_create_group): Change the sort algorithm to only consider
1486 steps that are constant ints.
1487 (idx_analyze_ref): Adopt code to handle a tree instead of a
1488 HOST_WIDE_INT for step.
1489 (gather_memory_references_ref): Handle tree instead of int and be
1490 prepared to see a NULL_TREE.
1491 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1492 prefetches if the step cannot be calculated at compile time.
1493 (issue_prefetch_ref): Issue prefetches for non-constant but
1494 loop-invariant steps.
1496 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1499 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1501 * tree.h (build_call_list): Remove.
1502 * tree.c (build_call_list): Remove.
1504 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1506 * tree.h (build_call_list): Remove.
1507 * tree.c (build_call_list): Remove.
1509 2010-05-18 Jan Hubicka <jh@suse.cz>
1511 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1513 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
1515 PR rtl-optimization/43332
1516 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1518 2010-05-18 Anatoly Sokolov <aesok@post.ru>
1520 * tree.h (build_int_cstu): Implement as static inline.
1521 * tree.c (build_int_cstu): Remove function.
1522 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1525 2010-05-18 Richard Guenther <rguenther@suse.de>
1528 * lto-wrapper.c (verbose): New variable. Initialize from -v.
1529 (debug): Initialize from -save-temps.
1530 (collect_execute): Print command-line when verbose.
1531 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
1532 for ltrans invocation. Produce -dumpbase flag again.
1533 (process_args): Remove.
1535 * collect2.c (maybe_run_lto_and_relink): Only pass object
1536 files to lto-wrapper.
1537 * gcc.c (LINK_COMMAND_SPEC): Likewise.
1539 2010-05-18 Jan Hubicka <jh@suse.cz>
1541 * opts.c (decode_options): Do not disable whopr at ipa_cp.
1542 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1544 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
1547 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1549 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1552 2010-05-18 Jakub Jelinek <jakub@redhat.com>
1555 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1558 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
1560 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1561 lto-macho as lto_binary_reader.
1563 * darwin.c (darwin_asm_named_section): Do not add assembler comment
1564 after .section directive; just print it before the directive instead.
1566 2010-05-17 Jan Hubicka <jh@suse.cz>
1568 * cgraph.c (cgraph_create_virtual_clone): Only check
1569 versionable_function_p when not in wpa and checking is enabled.
1570 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1571 there are no more functions to materialize.
1573 2010-05-17 Jan Hubicka <jh@suse.cz>
1575 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1576 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1578 (output_cgraph): Call output_cgraph_opt_summary.
1579 (input_cgrpah): Call input_cgraph_opt_summary.
1580 (output_cgraph_opt_summary_p, output_node_opt_summary,
1581 input_node_opt_summary, input_cgraph_opt_section): New functions.
1582 * lto-section-in.c (lto_section_name): Add cgraphopt.
1583 * tree-inline.c (tree_function_versioning): Handle parm_num.
1584 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1585 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1587 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
1589 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1590 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1591 the insn to prefetch ratio heuristic to loops with known trip count.
1593 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
1595 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1596 (schedule_prefetches): Do not generate a prefetch if the unroll factor
1597 is far from what is required by the prefetch.
1599 2010-05-17 Jan Hubicka <jh@suse.cz>
1601 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1602 (ipcp_estimate_growth): Likewise.
1603 (ipcp_const_param_count): Likewise.
1604 (ipcp_insert_stage): Likewise.
1605 * ipa-prop.c (visit_load_for_mod_analysis): New function.
1606 (visit_store_addr_for_mod_analysis): Set used flag.
1607 (ipa_detect_param_modifications): Set used flag for SSE params;
1608 update use of walk_stmt_load_store_addr_ops.
1609 (ipa_print_node_params): Print used flag.
1610 (ipa_write_node_info): Stream used flag.
1611 (ipa_read_node_info): Likewise.
1612 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1613 (ipa_is_param_used): New function.
1614 (lto_ipa_fixup_call_notes): Remove unused declaration.
1616 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1619 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1620 * configure: Regenerate.
1621 * config.in: Regenerate.
1622 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1623 !HAVE_AS_IX86_REP_LOCK_PREFIX.
1624 Don't emit whitespace.
1625 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1626 (*rep_movsi): Likewise.
1627 (*rep_movsi_rex64): Likewise.
1628 (*rep_movqi): Likewise.
1629 (*rep_movqi_rex64): Likewise.
1630 (*rep_stosdi_rex64): Likewise.
1631 (*rep_stossi): Likewise.
1632 (*rep_stossi_rex64): Likewise.
1633 (*rep_stosqi): Likewise.
1634 (*rep_stosqi_rex64): Likewise.
1635 (*cmpstrnqi_nz_1): Use {%;} after repz.
1636 (*cmpstrnqi_nz_rex_1): Likewise.
1637 (*cmpstrnqi_1): Likewise.
1638 (*cmpstrnqi_rex_1): Likewise.
1639 (*strlenqi_1): Use {%;} after repnz.
1640 (*strlenqi_rex_1): Likewise.
1641 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1642 (*sync_compare_and_swap<mode>): Likewise.
1643 (sync_double_compare_and_swap<mode>): Likewise.
1644 (*sync_double_compare_and_swapdi_pic): Likewise.
1645 (sync_old_add<mode>): Likewise.
1646 (sync_add<mode>): Likewise.
1647 (sync_sub<mode>): Likewise.
1648 (sync_<code><mode>): Likewise.
1650 2010-05-17 Martin Jambor <mjambor@suse.cz>
1652 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1653 otr_token and polymorphic.
1654 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1655 (cgraph_clone_edge): Copy the above fields.
1656 * tree.c (get_binfo_at_offset): New function.
1657 * tree.h (get_binfo_at_offset): Declare.
1658 * ipa-prop.h (enum jump_func_type): Added known_type jump function
1659 type, reordered items, updated comments.
1660 (union jump_func_value): Added base_type field, reordered fields.
1661 (enum ipa_lattice_type): Moved down in the file.
1662 (struct ipa_param_descriptor): New field polymorphic.
1663 (ipa_is_param_polymorphic): New function.
1664 * ipa-prop.c: Include gimple.h and gimple-fold.h.
1665 (ipa_print_node_jump_functions): Print known type jump functions.
1666 (compute_complex_pass_through): Renamed to...
1667 (compute_complex_assign_jump_func): this.
1668 (compute_complex_ancestor_jump_func): New function.
1669 (compute_known_type_jump_func): Likewise.
1670 (compute_scalar_jump_functions): Create known type and complex ancestor
1672 (ipa_note_param_call): New parameter polymorphic, set the corresponding
1673 flag in the call note accordingly.
1674 (ipa_analyze_call_uses): Renamed to...
1675 (ipa_analyze_indirect_call_uses): this. New parameter target, define
1676 variable var only in the block where it is used.
1677 (ipa_analyze_virtual_call_uses): New function.
1678 (ipa_analyze_call_uses): Likewise.
1679 (combine_known_type_and_ancestor_jfs): Likewise.
1680 (update_jump_functions_after_inlining): Implemented handling of a
1681 number of new jump function types combination.
1682 (print_edge_addition_message): Removed.
1683 (make_edge_direct_to_target): New function.
1684 (try_make_edge_direct_simple_call): Likewise.
1685 (try_make_edge_direct_virtual_call): Likewise.
1686 (update_call_notes_after_inlining): Renamed to...
1687 (update_indirect_edges_after_inlining): this. Moved edge creation for
1688 indirect calls to try_make_edge_direct_simple_call, also calls
1689 try_make_edge_direct_virtual_call for virtual calls.
1690 (ipa_print_node_params): Changed the header message.
1691 (ipa_write_jump_function): Stream also known type jump functions.
1692 (ipa_read_jump_function): Likewise.
1693 (ipa_write_indirect_edge_info): Stream new fields in
1694 cgraph_indirect_call_info.
1695 (ipa_read_indirect_edge_info): Likewise.
1696 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1699 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1701 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1703 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
1705 * tree.h (CALL_EXPR_ARGS): Delete.
1706 (call_expr_arglist): Delete.
1707 * tree.c (call_expr_arglist): Delete.
1708 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1709 targetm.fold_builtin.
1710 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1711 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1712 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1713 arglist parameter. Use CALL_EXPR_ARG.
1714 (picochip_expand_builtin_3op): Likewise.
1715 (picochip_expand_builtin_2opvoid): Likewise.
1716 (picochip_expand_array_get): Likewise.
1717 (picochip_expand_array_put): Likewise.
1718 (picochip_expand_array_testport): Likewise.
1719 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
1720 rather than arglist.
1721 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1723 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1724 than TREE_VALUE and TREE_CHAIN.
1725 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1726 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1729 2010-05-17 Jakub Jelinek <jakub@redhat.com>
1732 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1733 to have no fallthru edge.
1736 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1737 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1738 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1739 add BARRIER after previous bb if needed.
1741 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
1743 * tree.c (build_function_type_list_1): Remove bogus assert condition.
1745 2010-05-17 Alan Modra <amodra@gmail.com>
1747 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1748 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
1749 with copy_reg rtx param.
1750 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1751 Correct cases where code for ABI_V4 did not initialise the reg
1752 used to access frame. Also leave frame_reg_rtx as sp for large
1753 frames that save no regs.
1755 2010-05-17 Martin Jambor <mjambor@suse.cz>
1758 * tree-sra.c (create_access_replacement): New parameter rename, mark
1759 the replaement for renaming only when it is true.
1760 (get_access_replacement): Pass true in the rename parameter of
1761 create_access_replacement.
1762 (get_unrenamed_access_replacement): New function.
1763 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1764 replacement declaration from it.
1766 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
1768 * function.c (try_fit_stack_local, add_frame_space): New static
1770 (assign_stack_local_1): Use them. Look for opportunities to use
1771 space previously wasted on alignment.
1772 * function.h (struct frame_space): New.
1773 (struct rtl_data): Add FRAME_SPACE_LIST member.
1774 * reload1.c (something_was_spilled): New static variable.
1775 (alter_reg): Set it.
1776 (reload): Test it in addition to testing if the frame size changed.
1778 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
1780 * config/s390/s390.c: Define sane prefetch settings and activate
1781 flag_prefetch_loop_arrays on -O3.
1782 * config/s390/s390.h: Declare that read can use write prefetch.
1784 2010-05-17 Jakub Jelinek <jakub@redhat.com>
1786 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1789 2010-05-16 Jan Hubicka <jh@suse.cz>
1791 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1792 function body; do not check stdarg field of struct function.
1794 2010-05-16 Jan Hubicka <jh@suse.cz>
1796 * cgraph.c (dump_cgraph_node): Dump versionable flag.
1797 * cgraph.h (cgraph_local_info): Add versionable flag.
1798 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1799 (ipcp_versionable_function_p): Use it.
1800 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1803 2010-05-16 Jan Hubicka <jh@suse.cz>
1805 * cgraph.c (cgraph_clone_node): Take decl argument and insert
1806 clone into hash when it is different from orig.
1807 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1808 * cgraph.h (cgraph_clone_node): Update prototype.
1809 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1810 (lto_cgraph_encoder_delete): Delete body map.
1811 (lto_cgraph_encoder_size): Move to header.
1812 (lto_cgraph_encoder_encode_body_p,
1813 lto_set_cgraph_encoder_encode_body): New.
1814 (lto_output_node): Do not take written_decls argument; output clone_of
1816 (add_node_to): Add include_body_argument; call
1817 lto_set_cgraph_encoder_encode_body on master of the clone.
1818 (add_references): Update use of add_node_to.
1819 (compute_ltrans_boundary): Likewise.
1820 (output_cgraph): Do not create written_decls bitmap.
1821 (input_node): Take nodes argument; stream in clone_of correctly.
1822 (input_cgraph_1): Update use of input_node.
1823 * lto-streamer-out.c (lto_output): Use encoder info to decide
1824 what bodies to output.
1825 * ipa-inline.c (cgraph_clone_inlined_nodes,
1826 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1827 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1828 (lto_cgraph_encoder_size): Define here.
1829 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1832 2010-05-16 Richard Guenther <rguenther@suse.de>
1834 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1836 * ipa-type-escape.c (gate_type_escape_vars): Run when
1837 -fipa-struct-reorg runs.
1838 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1839 * common.opt (fipa-type-escape): Remove.
1841 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
1843 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1844 (decode_options): Likewise.
1845 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1847 2010-05-16 Jan Hubicka <jh@suse.cz>
1849 * ipa.c (function_and_variable_visibility): Also bring local all
1852 2010-05-16 Richard Guenther <rguenther@suse.de>
1854 * alias.c (nonoverlapping_memrefs_p): Remove use of
1855 IPA type-escape information.
1857 2010-05-16 Joseph Myers <joseph@codesourcery.com>
1859 * c-common.c (c_common_reswords): Add _Static_assert for C.
1860 * c-parser.c (c_token_starts_declaration,
1861 c_parser_next_token_starts_declaration,
1862 c_parser_static_assert_declaration_no_semi,
1863 c_parser_static_assert_declaration): New.
1864 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1865 Handle static assertions if static_assert_ok.
1866 (c_parser_external_declaration, c_parser_declaration_or_fndef,
1867 c_parser_compound_statement_nostart, c_parser_label,
1868 c_parser_for_statement, c_parser_objc_methodprotolist,
1869 c_parser_omp_for_loop): All callers of
1870 c_parser_declaration_or_fndef changed.
1871 (c_parser_struct_declaration): Handle static assertions.
1872 (c_parser_compound_statement_nostart): Use
1873 c_parser_next_token_starts_declaration and
1874 c_token_starts_declaration to detect start of declarations.
1875 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1878 2010-05-16 Anatoly Sokolov <aesok@post.ru>
1880 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1881 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1882 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1883 TARGET_FUNCTION_VALUE_REGNO_P): Define.
1884 (mmix_function_outgoing_value): Rename to...
1885 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1886 (mmix_function_value_regno_p): Make static.
1887 (mmix_libcall_value): New function.
1888 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1889 mmix_function_value_regno_p): Remove declaration.
1891 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
1893 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1894 BUILT_IN_ALLOCA if stack checking is enabled.
1896 2010-05-16 Richard Guenther <rguenther@suse.de>
1898 * var-tracking.c (vars_copy_1): Inline ...
1899 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
1900 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
1901 (variable_merge_over_cur): Adjust. Merge asserts.
1902 (variable_merge_over_src): Likewise.
1903 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1904 (variable_post_merge_new_vals): Merge asserts.
1905 (variable_post_merge_perm_vals): Likewise.
1906 (find_mem_expr_in_1pdv): Likewise.
1907 (dataflow_set_different_value): Remove.
1908 (onepart_variable_different_p): Merge asserts.
1909 (variable_different_p): Likewise.
1910 (dataflow_set_different_1): Inline ...
1911 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
1912 (emit_notes_for_differences_1): Merge asserts.
1914 2010-05-16 Richard Guenther <rguenther@suse.de>
1916 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1917 * optabs.c (libfunc_decl_hash): Likewise.
1918 * varasm.c (emutls_decl): Likewise.
1920 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
1922 * c-decl.c: Don't include gimple.h.
1923 (merge_decls): Do not copy gimple_body.
1925 2010-05-15 Jason Merrill <jason@redhat.com>
1927 * c.opt: Add -fnothrow-opt.
1929 2010-05-15 Jan Hubicka <jh@suse.cz>
1931 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1933 * passes.c (ipa_write_summaries): Write all analyzed nodes.
1935 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
1937 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1938 * Makefile.in: Add it.
1939 Fix all other Makefile dependencies for changes below.
1940 * tree.h: Include it instead of defining VEC primitives here.
1941 * gimple.h: Likewise.
1943 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1944 * except.h: Include vecir.h, break dependence on tree.h.
1946 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1948 * tree-iterator.c: ...to here.
1949 * tree-iterator.h: Fix file introduction comment. Add extern markers.
1951 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
1953 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1954 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1955 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1956 tree-mudflap.h, and target.h.
1957 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1958 predict.h, tree-inline.h, gimple.h, and langhooks.h.
1959 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1960 Add FIXME for why gimple.h is still included (should be unnecessary
1961 since GCC 4.5 gimplification unit-at-a-time).
1962 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1963 * c-pragma.c: Add FIXME for why function.h needs to be included just
1964 for cfun, at front-end level.
1965 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1966 Do not include ggc.h, but include vecprim.h for VEC(char).
1967 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1968 Explain why target.h is included.
1969 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1970 Explain why gimple.h is included.
1971 * c-ppoutput.c: Do not include tm.h.
1972 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
1973 * c-parses.c: Explain why rtl.h is included, and that this (and only
1974 this) is also why tm.h must be included.
1975 Do not include except.h.
1976 * c-lang.c: Do not include ggc.h.
1978 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
1980 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1982 2010-05-15 Joseph Myers <joseph@codesourcery.com>
1984 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
1985 unions by default if those structs and unions have no tags. Do
1986 not condition anonymous struct and unions handling on flag_iso.
1987 Allow anonymous structs and unions for C1X.
1988 (finish_struct): Do not diagnose lack of named fields when
1989 anonymous structs and unions present for C1X. Accept flexible
1990 array members in structure with anonymous structs or unions but no
1991 directly named fields.
1992 * doc/extend.texi (Unnamed Fields): Update.
1994 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
1996 * gimple.h (compare_field_offset): Rename into...
1997 (gimple_compare_field_offset): ...this.
1998 * gimple.c (compare_field_offset): Rename into...
1999 (gimple_compare_field_offset): ...this. Compare the full access if
2000 the offset is self-referential.
2001 (gimple_types_compatible_p): Adjust for above renaming.
2002 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
2003 DECL_NONADDRESSABLE_P flag of fields before merging them.
2005 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
2007 * tree.h (ctor_to_list): Delete.
2008 * tree.c (ctor_to_list): Delete.
2010 2010-05-15 Jan Hubicka <jh@suse.cz>
2012 * ipa-reference.c: Include toplev.h
2013 (is_proper_for_analysis): Only add to all_module_statics
2015 (write_node_summary_p, stream_out_bitmap,
2016 ipa_reference_write_optimization_summary,
2017 ipa_reference_read_optimization_summary): New.
2018 (struct ipa_opt_pass_d pass_ipa_reference): Add
2019 optimization summary streaming.
2020 * lto-cgraph.c (referenced_from_this_partition_p,
2021 reachable_from_this_partition_p): New functions.
2022 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
2023 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
2024 * opts.c (decode_options): Enable ipa_reference.
2025 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
2026 * lto-streamer.h (referenced_from_this_partition_p,
2027 reachable_from_this_partition_p): Declare.
2029 2010-05-15 Richard Guenther <rguenther@suse.de>
2031 PR tree-optimization/44038
2032 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
2033 taking the address of a V_C_E of a constant.
2035 2010-05-14 Jan Hubicka <jh@suse.cz>
2037 * tree.h (memory_identifier_string): Remove.
2038 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
2039 (ipa_reference_global_vars_info_d): Remove statics_not_read and
2040 statics_not_written.
2041 (ipa_reference_optimization_summary_d): New structure.
2042 (ipa_reference_optimization_summary_t): New type and vector.
2043 (ipa_reference_vars_info_d): Embedd structures instead of using
2045 (reference_vars_to_consider): Remove out of GGC space.
2046 (module_statics_escape): Remove.
2047 (global_info_obstack): Rename to ...
2048 (optimization_summary_obstack): ... this one.
2049 (initialization_status_t): Remove.
2050 (memory_identifier_string): Remove.
2051 (get_reference_vars_info): Fix indenting.
2052 (set_reference_vars_info): Likewise.
2053 (get_reference_optimization_summary): New.
2054 (set_reference_optimization_summary): New.
2055 (get_global_reference_vars_info): Remove.
2056 (ipa_reference_get_read_global): Remove.
2057 (ipa_reference_get_written_global): Remove.
2058 (ipa_reference_get_not_read_global): Update.
2059 (ipa_reference_get_not_written_global): Update.
2060 (is_proper_for_analysis): Outlaw addressable.
2061 (propagate_bits): Update for new datastructures.
2062 (analyze_variable): Remove.
2063 (init_function_info): Update for new datastructures.
2064 (clean_function_local_data): Remove.
2065 (clean_function): Remove.
2066 (copy_global_bitmap): Use optimizations_summary_obstack.
2067 (duplicate_node_data): Duplicate optimization summary only.
2068 (remove_node_data): Remove optimization summary only.
2069 (generate_summary): Do not analyze variables; do not compute
2070 module_statics_escape; do not prune solutions by it.
2071 (read_write_all_from_decl): Fix typos in comments.
2072 (propagate): Doscover readonly and nonaddressable first;
2073 update for new datastructures; share global bitmaps.
2074 * ipa-reference.h (ipa_reference_get_read_global,
2075 ipa_reference_get_written_global): Remove.
2076 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
2077 * Makefile.in: Remove ipa-refereference from GT files.
2079 2010-05-14 Jakub Jelinek <jakub@redhat.com>
2082 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
2083 for all SYMBOL_REF_DECLs.
2085 2010-05-14 Jan Hubicka <jh@suse.cz>
2087 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
2088 (varpool_all_refs_explicit_p): New inline function.
2089 * ipa-reference.c: Update comment.
2090 (module_statics_written): Remove.
2091 (get_static_decl): Remove.
2092 (ipa_init): Do not initialize module_statics_written.
2093 (analyze_function): Likewise.
2094 (generate_summary): Likewise; do not compute module_statics_readonly
2095 and do not update variable flags.
2096 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
2097 * ipa.c: Inlucde flags.h
2098 (cgraph_local_node_p): New.
2099 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
2100 promote functions to local.
2101 (ipa_discover_readonly_nonaddressable_vars): New function.
2102 (function_and_variable_visibility): Use cgraph_local_node_p.
2103 * varpool.c (varpool_finalize_decl): Set force_output for
2104 DECL_PRESERVE_P vars.
2106 2010-05-14 Jan Hubicka <jh@suse.cz>
2108 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
2110 2010-05-14 Richard Guenther <rguenther@suse.de>
2112 PR tree-optimization/44119
2113 * tree-ssa-pre.c (eliminate): Properly mark replacement of
2114 a PHI node necessary.
2116 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
2118 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
2120 2010-05-14 Jason Merrill <jason@redhat.com>
2123 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
2124 (gimple_call_set_nothrow): New.
2125 * gimple.c (gimple_build_call_from_tree): Call it.
2126 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
2129 * gimplify.c (gimplify_seq_add_stmt): No longer static.
2130 * gimple.h: Declare it.
2131 * gimple.c (gimple_build_eh_filter): No ops.
2133 2010-05-14 Jan Hubicka <jh@suse.cz>
2135 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
2136 nodes already in queue.
2137 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
2140 2010-05-14 Jakub Jelinek <jakub@redhat.com>
2143 * cfgexpand.c (expand_debug_expr): If non-memory op0
2144 has BLKmode, return NULL.
2146 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
2148 * config.gcc: Add support for --with-cpu option for bdver1.
2149 * config/i386/i386.h (TARGET_BDVER1): New macro.
2150 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
2151 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2152 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
2153 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
2154 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
2155 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
2156 (processor_type): Add PROCESSOR_BDVER1.
2157 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
2158 processor_type in config/i386/i386.h.
2159 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
2160 movaps <reg, reg> instead of movapd <reg, reg> when replacing
2161 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
2162 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
2163 to emit packed xor instead of packed double/packed integer
2164 xor for SSE and AVX when moving a zero value.
2165 * config/i386/sse.md: Add check for
2166 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
2167 movapd/movdqa for SSE and AVX.
2168 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
2169 single logical operations i.e and, or and xor instead of packed double
2170 logical operations for SSE and AVX.
2171 * config/i386/i386-c.c (ix86_target_macros_internal):
2172 Add PROCESSOR_BDVER1.
2173 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
2174 (has_fma4, has_xop): New.
2175 * config/i386/i386.c (bdver1_cost): New variable.
2176 (m_BDVER1): New macro.
2177 (m_AMD_MULTIPLE): Add m_BDVER1.
2178 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
2179 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
2180 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
2181 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
2182 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
2183 x86_tune_sse_partial_reg_dependency,
2184 x86_tune_sse_unaligned_load_optimal,
2185 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
2186 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
2187 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
2188 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
2189 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
2190 Enable/disable for bdver1.
2191 (processor_target_table): Add bdver1_cost.
2192 (cpu_names): Add bdver1.
2193 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
2194 processor_alias_table.
2195 (ix86_expand_vector_move_misalign): Change.
2196 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
2197 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
2198 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
2199 of movupd/movdqu for SSE and AVX.
2200 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
2201 (ix86_tune_adjust_cost): Add code for bdver1.
2202 (standard_sse_constant_opcode): Add check for
2203 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
2204 of packed double xor for SSE and AVX.
2206 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
2208 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
2211 2010-05-14 Tristan Gingold <gingold@adacore.com>
2213 * toplev.c (default_debug_hooks): Remove this variable.
2214 (process_options): Remove assignments to default_debug_hooks.
2216 2010-05-14 Martin Jambor <mjambor@suse.cz>
2218 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
2219 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
2220 * langhooks.h (struct lang_hooks_for_decls): Removed field
2222 * tree.c (free_lang_data): Remove assignment to
2223 lang_hooks.fold_obj_type_ref.
2224 * tree.def (OBJ_TYPE_REF): Update comment.
2226 2010-05-14 Richard Guenther <rguenther@suse.de>
2228 PR tree-optimization/44124
2229 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
2231 2010-05-14 Alan Modra <amodra@gmail.com>
2234 * config/rs6000/rs6000.c (struct machine_function): Reorder
2235 fields for better packing. Add lr_save_state.
2236 (rs6000_ra_ever_killed): Return lr_save_state if set.
2237 (rs6000_emit_eh_reg_restore): Set lr_save_state.
2239 2010-05-13 Jan Hubicka <jh@suse.cz>
2241 * varpool.c (decide_is_variable_needed): Drop code checking
2242 TREE_SYMBOL_REFERENCED.
2244 2010-05-13 Jan Hubicka <jh@suse.cz>
2246 * final.c (output_addr_const): Do not call mark_decl_referenced.
2247 * cgraphunit.c (process_function_and_variable_attributes): Use
2248 mark_needed_node dirrectly.
2249 (assemble_thunk): Do not call mark_decl_referenced.
2251 2010-05-13 Anatoly Sokolov <aesok@post.ru>
2253 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2255 2010-05-13 Jeff Law <law@redhat.com>
2257 * ira-conflicts.c (print_allocno_conflicts): New function broken out
2259 (print_conflicts): Call print_allocno_conflicts.
2261 2010-05-13 Jakub Jelinek <jakub@redhat.com>
2264 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2267 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
2269 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2270 t-mingw-w64 or t-mingw-w32 for multilib configuration.
2271 * config/i386/t-mingw-w32: New.
2272 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2274 2010-05-13 Martin Jambor <mjambor@suse.cz>
2276 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2278 * gimple-fold.c (get_base_binfo_for_type): New function.
2279 (gimple_get_relevant_ref_binfo): Likewise.
2280 (gimple_fold_obj_type_ref_known_binfo): Likewise.
2281 (gimple_fold_obj_type_ref): Likewise.
2282 (fold_gimple_call): Simplify condition for folding virtual calls
2283 and call gimple_fold_obj_type_ref.
2284 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2285 (gimple_fold_obj_type_ref_known_binfo): Likewise.
2287 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
2289 * config/rs6000/rs6000-protos.h
2290 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2291 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2292 (rs6000_debug_mode_dependent_address)
2293 (rs6000_mode_dependent_address_ptr): Likewise.
2295 2010-05-13 Jakub Jelinek <jakub@redhat.com>
2298 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2300 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2301 * tree-sra.c (create_access_replacement): Call unshare_expr before
2302 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2303 * dwarf2out.c: Include tree-flow.h.
2304 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2305 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2306 Handle DW_OP_bit_piece.
2307 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2308 construct_piece_list, adjust_piece_list): New functions.
2309 (add_var_loc_to_decl): Handle SRA optimized variables.
2310 Adjust for var_loc_note to loc field renaming.
2311 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2312 in VAR_LOCATION note.
2313 (new_loc_descr_op_bit_piece): New function.
2314 (dw_sra_loc_expr): New function.
2315 (dw_loc_list): Use it. Don't handle the last range after the
2316 loop, handle it inside of the loop. Adjust for var_loc_note
2317 to loc field renaming.
2318 (add_location_or_const_value_attribute): Only special case
2319 single entry loc lists if loc is NOTE_P. Adjust for
2320 var_loc_note to loc field renaming.
2321 (dwarf2out_var_location): Don't set newloc->var_loc_note
2322 and newloc->next here.
2324 2010-05-12 Jan Hubicka <jh@suse.cz>
2326 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2328 * cgraph.h (cgraph_only_called_directly_p,
2329 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2330 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2331 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2333 * ipa.c (cgraph_remove_unreachable_nodes): Use
2334 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2336 * tree-inline.c (copy_bb): Check address_taken flag.
2337 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2338 externally_visible flag.
2340 2010-05-12 Jason Merrill <jason@redhat.com>
2344 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2345 * sdbout.c (plain_type_1): Likewise.
2346 * dwarf2out.c (is_base_type): Likewise.
2347 (gen_type_die_with_usage): Likewise. Generate
2348 DW_TAG_unspecified_type for any LANG_TYPE.
2350 2010-05-12 Jan Hubicka <jh@suse.cz>
2352 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2354 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2355 (cgraph_clone_edge): Update.
2356 (cgraph_node_remove_callees): Remove indirect calls too.
2357 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2358 (cgraph_create_indirect_edge): Update prototype.
2359 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2360 is_proper_for_analysis.
2361 (add_new_function, visited_nodes, function_insertion_hook_holder,
2362 get_local_reference_vars_info, mark_address_taken, mark_address,
2363 mark_load, mark_store, check_asm_memory_clobber, check_call,
2364 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2365 (ipa_init): Do not initialize visited_nodes;
2366 function_insertion_hook_holder.
2367 (analyze_variable): Rewrite.
2368 (analyze_function): Rewrite.
2369 (copy_local_bitmap): Remove.
2370 (duplicate_node_dat): Do not duplicate local info.
2371 (generate_summary): Simplify to only walk cgraph.
2372 (write_node_summary_p, ipa_reference_write_summary,
2373 ipa_reference_read_summary): Remove.
2374 (propagate): Do not remove function insertion;
2376 (pass_ipa_reference): NULLify summary handling fields.
2377 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2378 (input_edge): Input ecf_flags.
2379 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2380 (update_indirect_edges_after_inlining): Ignore edges with unknown
2383 2010-05-12 Sriraman Tallam <tmsriram@google.com>
2385 * implicit-zee.c: New file.
2386 * tree-pass.h (pass_implicit_zee): Declare.
2387 * passes.c (init_optimization_passes): Add zee pass.
2388 * common.opt (fzee): New flag.
2389 * timevar.def (TV_ZEE): Define.
2390 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2392 * Makefile.in (implicit-zee.o): Add new build file.
2394 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
2395 Nathan Froyd <froydnj@codesourcery.com>
2397 * c-common.c (sync_resolve_params): Remove write-only variable.
2399 2010-05-12 Anatoly Sokolov <aesok@post.ru>
2401 * target.h (struct gcc_target): Add mode_dependent_address_p field.
2402 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2403 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2404 * targhooks.c (default_mode_dependent_address_p): New function.
2405 * targhooks.h (default_mode_dependent_address_p): Declare function.
2406 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2407 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2408 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2409 target hook. Change return type to bool.
2410 * recog.h (mode_dependent_address_p): Change return type to bool.
2412 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
2413 Nathan Froyd <froydnj@codesourcery.com>
2415 * tree-mudflap.c (build_function_type_0, build_function_type_1,
2416 build_function_type_2, build_function_type_3): Remove.
2417 (mudflap_init): Use build_function_type_list.
2419 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
2420 Nathan Froyd <froydnj@codesourcery.com>
2422 * coverage.c (build_fn_info_value): Call build_constructor instead of
2423 build_constructor_from_list.
2424 (build_ctr_info_value): Likewise.
2425 (build_gcov_info): Likewise.
2427 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
2429 * tree.c (build_constructor): Compute TREE_CONSTANT for the
2430 resultant constructor.
2431 (build_constructor_single): Don't set TREE_CONSTANT.
2432 (build_constructor_from_list): Don't compute TREE_CONSTANT.
2434 2010-05-12 Jan Hubicka <jh@suse.cz>
2436 * cgraph.h (struct varpool_node): Add aux.
2437 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2438 * varpool.c (varpool_remove_node): Do not remove initializer.
2439 (varpool_reset_queue): Export.
2440 (varpool_finalize_decl): Volatile vars are forced to be output.
2441 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2443 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2444 process_references, varpool_can_remove_if_no_refs): New functions.
2445 (cgraph_remove_unreachable_nodes): Handle variables too.
2447 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
2450 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2452 2010-05-12 Jakub Jelinek <jakub@redhat.com>
2455 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2456 change value of ORT_TASK.
2457 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2458 (omp_notice_threadprivate_variable): New function.
2459 (omp_notice_variable): Call it for threadprivate variables.
2460 If enclosing ctx is a task, print enclosing task rather than
2461 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
2462 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2463 if task has untied clause.
2466 * dwarf2out.c (base_type_die): Don't add name attribute here.
2467 (modified_type_die): Instead of sizetype use
2468 its underlying original type. If a DW_TAG_base_type doesn't
2469 have name added, add __unknown__.
2470 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2471 always call force_type_die instead.
2473 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
2475 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2476 for __stack_chk_guard.
2478 2010-05-11 Jakub Jelinek <jakub@redhat.com>
2480 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2481 don't call start_source_file debug hook here...
2482 (finish_options): ... but here, after outputting predefined and
2483 command line defines and undefs.
2486 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2488 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2489 optimizing away empty bb with no successors, move over its
2490 footer chain to fallthru predecessor.
2491 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2492 (rtl_split_edge): For asm goto call patch_jump_insn even if
2493 splitting fallthru edge.
2496 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2497 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2498 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2499 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2503 * c-parser.c (c_parser_expression): Mark LHS of a comma
2504 expression as read if it is a decl, handled component or
2505 COMPOUND_EXPR with that on the RHS.
2506 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2507 if it is a decl or handled component.
2509 2010-05-11 Jan Hubicka <jh@suse.cz>
2511 * lto-symtab.c (lto_symtab_free): New function.
2512 * lto-streamer.h (lto_symtab_free): Declare.
2514 2010-05-11 Jan Hubicka <jh@suse.cz>
2516 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2517 that if function is needed it is reachable.
2518 (lto_output_node): See if it the function is reachable or referenced.
2519 (output_cgraph): Update call of lto_output_node.
2520 * lto-streamer.h (reachable_from_other_partition_p): Declare.
2522 2010-05-11 Jan Hubicka <jh@suse.cz>
2524 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2527 2010-05-11 Jan Hubicka <jh@suse.cz>
2529 PR tree-optimize/44063
2530 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2532 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2534 (estimate_function_body_sizes): Compute sizes even when disregarding.
2536 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
2538 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2540 2010-05-11 Jan Hubicka <jh@suse.cz>
2542 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2543 into every boundary.
2545 2010-05-11 Jan Hubicka <jh@suse.cz>
2547 * matrix-reorg.c (matrix_reorg): Rebuild edges.
2549 2010-05-11 Jan Hubicka <jh@suse.cz>
2551 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2552 lto_streamer_cache_delete): Put nodes into heap.
2553 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2556 2010-05-11 Jan Hubicka <jh@suse.cz>
2558 * cgraphbuild.c (cgraph_rebuild_references): New.
2559 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2561 * cgraph.h (cgraph_rebuild_references): Declare.
2562 * tree-inline.c (tree_function_versioning): Use it.
2563 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2565 2010-05-11 Jan Hubicka <jh@suse.cz>
2567 * cgraph.c: Include ipa-utils.h
2568 (cgraph_create_virtual_clone): Update references.
2569 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2571 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
2573 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2574 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2577 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
2579 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2581 2010-05-11 Jakub Jelinek <jakub@redhat.com>
2583 * gcc.c (execute): For -### don't quote arguments that
2584 contain just alphanumerics and _/-. characters.
2585 * doc/invoke.texi: Document that change for -###.
2588 * df-problems.c (struct dead_debug): Add to_rescan field.
2589 (dead_debug_init): Clear to_rescan field.
2590 (dead_debug_finish): Rescan all debug insns in to_rescan
2591 bitmap and free the bitmap.
2592 (dead_debug_insert_before): Instead of rescanning debug insns
2593 immediately queue their rescanning until dead_debug_finish.
2594 (df_note_bb_compute): After dead_debug_add do continue instead
2597 2010-05-10 Jakub Jelinek <jakub@redhat.com>
2600 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2601 clear also INSN_REG_USE_LIST.
2603 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2605 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2607 2010-05-10 Jan Hubicka <jh@suse.cz>
2609 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2612 2010-05-10 Jan Hubicka <jh@suse.cz>
2614 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2616 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2617 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2618 (lto_streamer_cache_create): Init alloc pool.
2619 (lto_streamer_cache_delete): Free alloc pool.
2620 * lto-streamer.h: Include alloc pool.
2621 (lto_streamer_cache_d): Use alloc pool.
2622 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2624 2010-05-10 Jan Hubicka <jh@suse.cz>
2626 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2627 * cgraphbuild.c: Include except.h
2628 (record_type_list, record_eh_tables): New function.
2629 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2631 2010-05-10 Jan Hubicka <jh@suse.cz>
2633 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2634 __frame_dummy_init_array_entry, force_to_data): Attribute as used
2637 2010-05-10 Michael Matz <matz@suse.de>
2639 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2640 (can_reassociate_p): Use FLOAT_TYPE_P.
2641 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2642 (vect_force_simple_reduction): ... this.
2643 * tree-parloops.c (gather_scalar_reductions): Use
2644 vect_force_simple_reduction.
2645 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2646 vect_is_simple_reduction, add modify argument, if true rewrite
2647 "a-b" into "a+(-b)".
2648 (vect_is_simple_reduction, vect_force_simple_reduction): New
2650 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2652 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
2653 Vladimir Makarov <vmakarov@redhat.com>
2655 PR rtl-optimization/44012
2656 * ira-build.c (remove_unnecessary_allocnos): Nullify
2657 regno_allocno_map of the removed allocno.
2659 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2661 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2663 * configure: Regenerate.
2665 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2667 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2669 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2670 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2672 * configure: Regenerate.
2674 2010-05-10 Richard Guenther <rguenther@suse.de>
2676 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2677 marked if the entry identifier is marked.
2679 2010-05-10 Richard Guenther <rguenther@suse.de>
2681 * c-common.c (struct c_common_attributes): Add fnspec attribute.
2682 (handle_fnspec_attribute): New function.
2683 * gimple.h (gimple_call_return_flags): Declare.
2684 (gimple_call_arg_flags): Likewise.
2685 * gimple.c (gimple_call_arg_flags): New function.
2686 (gimple_call_return_flags): Likewise.
2687 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2689 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2691 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2692 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2694 (make_heapvar_for): ... this new function.
2695 (handle_rhs_call): Handle fnspec attribute argument specifiers.
2696 (handle_lhs_call): Likewise.
2697 (find_func_aliases): Adjust.
2699 2010-05-10 Richard Guenther <rguenther@suse.de>
2701 PR tree-optimization/44050
2702 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2704 2010-05-10 Wei Guozhi <carrot@google.com>
2707 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2709 2010-05-09 Joseph Myers <joseph@codesourcery.com>
2712 * c-typeck.c (lookup_field): Take a type directly. Update
2714 (build_component_ref): Update call to lookup_field.
2715 (set_init_label): Use lookup_field to find initialized field.
2716 Handle returned list of fields like a sequence of designators.
2718 2010-05-09 Richard Guenther <rguenther@suse.de>
2721 * fold-const.c (tree_single_nonzero_warnv_p): Properly
2722 handle &FUNCTION_DECL.
2724 2010-05-09 Joseph Myers <joseph@codesourcery.com>
2727 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
2728 structures and unions recursively.
2729 (detect_field_duplicates): Move duplicate detection with a hash to
2730 detect_field_duplicates_hash. Always use a hash if anonymous
2731 structures or unions are present.
2732 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2735 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
2738 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2739 detect Atom, Core 2 and Core i7.
2741 2010-05-09 Richard Guenther <rguenther@suse.de>
2743 * gcc.c (store_arg): Handle temporary file deletion for
2746 2010-05-09 Richard Guenther <rguenther@suse.de>
2749 * ipa-inline.c (estimate_function_body_sizes): Return after
2750 disregarding inline limits.
2752 2010-05-09 Richard Guenther <rguenther@suse.de>
2754 * gcc.c (store_arg): Revert last change.
2756 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
2759 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2760 (optimize_ops_list): Call it.
2762 2010-05-08 Richard Guenther <rguenther@suse.de>
2764 PR tree-optimization/44030
2765 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
2766 NECESSARY flag if we propagate from a inserted expression.
2768 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
2770 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2771 domain types as equal if they are both PLACEHOLDER_EXPRs.
2773 2010-05-08 Richard Guenther <rguenther@suse.de>
2775 * lto-wrapper.c (run_gcc): Remove linker output from
2776 command line for LTRANS invocation.
2778 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
2780 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2781 lto-macho as lto_binary_reader.
2782 * target.h (struct gcc_target): New hooks lto_start and lto_end.
2783 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2784 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2785 in lto_start and lto_end calls.
2786 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
2788 (scan_prog_file): Update is_elf_or_coff call.
2789 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2791 * collect2.c (main): Fix enum comparison.
2793 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2795 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2796 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
2797 and TARGET_ASM_LTO_END.
2798 * darwin.c: Include obstack.h and lto-streamer.h.
2799 (lto_section_names_offset, lto_section_names_obstack,
2800 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2802 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2803 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
2804 to a temporary file.
2805 (darwin_asm_lto_end): New function. Restore asm_out_file.
2806 (darwin_asm_named_section): For LTO sections, replace the name with
2807 the offset of the section name in a string table, and build this
2809 (darwin_file_start): Initialize global vars for LTO support.
2810 (darwin_file_end): If output to asm_out_file was redirected, append it
2811 to the proper asm_out_file here. Add the section names section.
2813 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
2815 * c-pragma.c (pending_weak_d, pending_weak): New.
2816 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2817 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2818 handle_pragma_weak): Update the uses of pending_weaks.
2820 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2822 PR documentation/44016
2823 * doc/standards.texi (Standards): Link to unversioned
2824 cxx0x_status.html page.
2826 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
2829 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2830 in addition to TREE_USED, to avoid "set but unused" warnings.
2832 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
2834 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2835 (is_loop_prefetching_profitable): Do not insert prefetches
2836 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2837 times the prefetch ahead distance.
2839 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
2841 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2842 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2843 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2846 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
2848 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2849 a diagnostic info when the insn-to-mem ratio is too small.
2851 2010-05-07 Richard Guenther <rguenther@suse.de>
2853 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2855 (store_arg): Queue temp_filename for deletion instead of
2858 2010-05-07 Richard Guenther <rguenther@suse.de>
2860 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2861 (run_gcc): Handle LTRANS phase invocation.
2862 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2864 2010-05-07 Jakub Jelinek <jakub@redhat.com>
2866 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2867 this is also meaningful on PARM_DECLs and RESULT_DECLs.
2869 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2871 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2873 2010-05-07 Richard Guenther <rguenther@suse.de>
2875 PR tree-optimization/44020
2876 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2877 code when PRE is not yet initialized.
2879 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2881 * config/mips/dbxmdebug.h: Remove.
2882 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2884 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
2886 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2887 with null pointer and also warn about ordered comparison of zero with
2890 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2892 * graphite-blocking.c
2893 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2894 * graphite-clast-to-gimple.c
2895 (clast_to_gcc_expression): Same.
2896 (precision_for_value): Same.
2897 (precision_for_interval): Same.
2898 (gcc_type_for_interval): Same.
2899 (graphite_create_new_guard): Same.
2900 (compute_bounds_for_level): Same.
2901 (graphite_create_new_loop_guard): Same.
2902 * graphite-interchange.c
2903 (build_linearized_memory_access): Same.
2904 (pdr_stride_in_loop): Same.
2905 (memory_strides_in_loop_1): Same.
2906 (memory_strides_in_loop): Same.
2907 (extend_scattering): Same.
2908 (psct_scattering_dim_for_loop_depth): Same.
2909 (pbb_number_of_iterations): Same.
2911 (debug_iteration_domains): Same.
2913 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2914 (ppl_set_inhomogeneous_gmp): Same.
2915 (ppl_strip_loop): Same.
2916 (ppl_lexico_compare_linear_expressions): Same.
2917 (ppl_read_polyhedron_matrix): Same.
2918 (ppl_max_for_le_pointset): Same.
2920 (ppl_read_polyhedron_matrix): Same.
2921 (tree_int_to_gmp): Same.
2922 (gmp_cst_to_tree): Same.
2923 (ppl_set_inhomogeneous): Same.
2924 (ppl_set_inhomogeneous_tree): Same.
2925 (ppl_set_coef): Same.
2926 (ppl_set_coef_tree): Same.
2927 * graphite-sese-to-poly.c
2928 (build_pbb_scattering_polyhedrons): Same.
2929 (build_scop_scattering): Same.
2930 (scan_tree_for_params_right_scev): Same.
2931 (scan_tree_for_params): Same.
2932 (find_params_in_bb): Same.
2933 (find_scop_parameters): Same.
2934 (add_upper_bounds_from_estimated_nit): Same.
2935 (build_loop_iteration_domains): Same.
2936 (add_condition_to_domain): Same.
2937 (pdr_add_memory_accesses): Same.
2939 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
2941 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2942 CLooG's value_* macros to their respective mpz_* counterparts.
2943 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2944 (graphite_create_new_loop_guard): Same.
2945 * graphite-interchange.c (build_linearized_memory_access): Same.
2946 (pdr_stride_in_loop): Same.
2947 (memory_strides_in_loop_1): Same.
2948 (1st_interchange_profitable_p): Same.
2949 * graphite-poly.c (extend_scattering): Same.
2950 (psct_scattering_dim_for_loop_depth): Same.
2951 (pbb_number_of_iterations): Same.
2952 (pbb_number_of_iterations_at_time): Same.
2953 * graphite-poly.h (new_1st_loop): Same.
2954 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2955 (oppose_constraint): Same.
2956 (insert_constraint_into_matrix): Same.
2957 (ppl_set_inhomogeneous_gmp): Same.
2958 (ppl_set_coef_gmp): Same.
2959 (ppl_strip_loop): Same.
2960 (ppl_lexico_compare_linear_expressions): Same.
2961 (ppl_max_for_le_pointset): Same.
2962 (ppl_min_for_le_pointset): Same.
2963 (ppl_build_realtion): Same.
2964 * graphite-ppl.h (gmp_cst_to_tree): Same.
2965 (ppl_set_inhomogeneous): Same.
2966 (ppl_set_inhomogeneous_tree): Same.
2967 (ppl_set_coef): Same.
2968 (ppl_set_coef_tree): Same.
2969 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2970 (build_scop_scattering): Same.
2971 (add_value_to_dim): Same.
2972 (scan_tree_for_params_right_scev): Same.
2973 (scan_tree_for_params_int): Same.
2974 (scan_tree_for_params): Same.
2975 (find_params_in_bb): Same.
2976 (find_scop_parameters): Same.
2977 (add_upper_bounds_from_estimated_nit): Same.
2978 (build_loop_iteration_domains): Same.
2979 (create_linear_expr_from_tree): Same.
2980 (add_condition_to_domain): Same.
2981 (pdr_add_memory_accesses): Same.
2983 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
2984 Jason Merrill <jason@redhat.com>
2986 * c-common.c (c_common_reswords): Add nullptr.
2987 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
2988 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
2989 (gen_type_die_with_usage): Likewise.
2990 * dbxout.c (dbxout_type): Likewise.
2991 * sdbout.c (plain_type_1): Likewise.
2993 2010-05-06 Jason Merrill <jason@redhat.com>
2995 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
2996 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
2998 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
3000 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
3001 stripping WITH_SIZE_EXPR.
3002 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
3005 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3007 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
3008 list of obsolete configurations.
3009 Disabled check for obsolete configurations.
3010 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
3011 Removed support for previous versions.
3012 * config/mips/iris.h: Removed.
3013 * config/mips/iris5.h: Removed.
3014 * config/mips/iris6.h: Merged old iris.h contents.
3015 (TARGET_IRIX): Removed.
3016 (DRIVER_SELF_SPECS): Removed mabi=32.
3017 (IDENT_ASM_OP): Removed undef.
3018 (STARTFILE_SPEC): Removed mabi=32.
3019 (ENDFILE_SPEC): Likewise.
3020 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
3021 (MACHINE_TYPE): Update for IRIX 6.5.
3022 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
3023 TARGET_IRIX by TARGET_IRIX6.
3024 (mips_file_start): Likewise.
3025 (mips_output_external): Remove IRIX 5/6 O32 support.
3026 (mips_output_function_prologue): Likewise.
3027 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
3029 (TARGET_CPU_CPP_BUILTINS): Likewise.
3030 (TARGET_IRIX): Removed.
3031 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
3032 (MULTILIB_DIRNAMES): Removed 32.
3033 (MULTILIB_OSDIRNAMES): Removed ../lib.
3034 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
3035 (Specific, mips-sgi-irix5): Document removal.
3036 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
3037 Remove references to older IRIX 6 releases and the O32 ABI.
3039 2010-05-06 Jakub Jelinek <jakub@redhat.com>
3042 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
3043 instead of DF_REF_REAL_REG.
3045 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
3048 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
3049 handling to still return true for x64 targets.
3051 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
3053 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
3055 2010-05-06 Jan Hubicka <jh@suse.cz>
3057 PR tree-optimization/43791
3058 * ipa-inline.c (update_caller_keys): Remove bogus
3059 disregard_inline_limits check.
3061 2010-05-06 Michael Matz <matz@suse.de>
3063 PR tree-optimization/43984
3064 * tree-ssa-pre.c (inserted_phi_names): Remove.
3065 (inserted_exprs): Change to bitmap.
3066 (create_expression_by_pieces): Set bits, don't append to vector.
3067 (insert_into_preds_of_block): Don't handle inserted_phi_names.
3068 (eliminate): Don't look at inserted_phi_names, remove deleted
3069 insns from inserted_exprs.
3070 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
3071 (init_pre, fini_pre): Allocate and free bitmaps.
3072 (execute_pre): Insert insns on edges before elimination.
3074 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
3076 * tree.c (initializer_zerop): Handle STRING_CST.
3078 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
3081 * doc/invoke.texi (Wimplicit): Document as C only.
3082 * opts.c (common_handle_option): Add argument kind.
3083 (handle_option): Rename as read_cmdline_option. Factor out code to...
3084 (handle_option): ... here. New.
3085 (handle_options): Rename as read_cmdline_options.
3086 (decode_options): Update call.
3087 (set_option): Use option index instead of option pointer. Classify
3088 diagnostics correctly.
3089 (enable_warning_as_error): Call handle_option.
3090 * opts.h (set_option): Update declaration.
3091 (handle_option): Declare.
3092 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
3093 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
3094 * c-opts.c (set_Wimplicit): Delete.
3095 (c_family_lang_mask): New static constant.
3096 (c_common_handle_option): Add argument kind. Use handle_option
3097 instead of set_Wimplicit.
3098 (c_common_post_options): warn_implicit and warn_implicit_int
3099 are disabled by default.
3100 * c-common.c (warn_implicit): Do not define here.
3101 * c-common.h (warn_implicit): Do not declare here.
3102 (c_common_handle_option): Update declaration.
3103 * lto-opts.c (lto_reissue_options): Update call to set_option.
3105 2010-05-06 Richard Guenther <rguenther@suse.de>
3107 PR tree-optimization/43571
3108 * domwalk.c (walk_dominator_tree): Walk the dominator
3109 sons in more optimal order.
3111 2010-05-06 Richard Guenther <rguenther@suse.de>
3113 PR tree-optimization/43934
3114 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
3115 (stmt_cost): Likewise.
3116 (extract_true_false_args_from_phi): New helper.
3117 (determine_max_movement): For PHI nodes verify we can hoist them
3118 and compute their cost.
3119 (determine_invariantness_stmt): Handle PHI nodes.
3120 (move_computations_stmt): Likewise. Hoist PHI nodes in
3121 if-converted form using COND_EXPRs.
3122 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
3123 (tree_ssa_lim): Likewise.
3124 * tree-flow.h (tree_ssa_lim): Adjust prototype.
3125 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
3127 2010-05-06 Richard Guenther <rguenther@suse.de>
3129 PR tree-optimization/43987
3130 * tree-ssa-structalias.c (could_have_pointers): For possibly
3131 address-taken variables force pointers to be recorded.
3132 (create_variable_info_for_1): Likewise.
3133 (push_fields_onto_fieldstack): Pass in wheter all fields
3135 (find_func_aliases): Query types instead of vars whether
3136 they contain pointers where appropriate.
3138 2010-05-06 Jan Hubicka <jh@suse.cz>
3140 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
3141 (record_reference, mark_address, mark_load, mark_store): Record
3143 (record_references_in_initializer): Update call of record_references.
3144 (rebuild_cgraph_edges): Remove all references before rebuiding.
3145 * cgraph.c (cgraph_create_node): Clear ref list.
3146 (cgraph_remove_node): Remove references.
3147 (dump_cgraph_node): Dump references.
3148 (cgraph_clone_node): Clone references.
3149 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
3150 (struct cgraph_node, varpool_node): Add ref_lst.
3151 * ipa-ref.c: New file.
3152 * ipa-ref.h: New file.
3153 * ipa-ref-inline.h: New file.
3154 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
3155 (referenced_from_other_partition_p): New function.
3156 (lto_output_varpool_node): Take set arugment; call
3157 referenced_from_other_partition.
3158 (lto_output_ref): New.
3159 (add_references): New.
3161 (output_cgraph): Compute boundary based on references; output refs.
3162 (output_varpool): Accept cgraph_node_set argument.
3165 (input_cgraph): Call input_refs.
3166 * lto-section-in.c (lto_section_name): Add refs.
3167 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
3168 (ipa-ref.o): New file.
3169 * varpool.c (varpool_node): Clear ipa ref list.
3170 (varpool_remove_node): Remove references.
3171 (dump_varpool_node): Dump references.
3172 (varpool_assemble_decl): Only compile finalized ones.
3173 (varpool_extra_name_alias): Initialize ref list.
3174 * lto-streamer.c (lto-get_section_name): Add .refs section.
3175 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
3176 (referenced_from_other_partition_p): Declared.
3178 2010-05-06 Ira Rosen <irar@il.ibm.com>
3180 PR tree-optimization/43901
3181 * tree-vect-stmts.c (vectorizable_call): Assert that vector
3182 type is not NULL if it's transformation phase, and return
3183 FALSE if it's analysis.
3184 (vectorizable_conversion, vectorizable_operation,
3185 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
3187 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
3189 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3191 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
3193 * config/mips/mips-protos.h
3194 (mips_small_register_classes_for_mode_p): Delete prototype.
3196 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
3198 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
3199 * config/arm/arm.c (multiple_operation_profitable_p,
3200 compute_offset_order): New static functions.
3201 (load_multiple_sequence, store_multiple_sequence): Use them.
3202 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
3203 memory offsets, not register numbers.
3204 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
3206 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
3208 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
3209 (get_pending_sizes, put_pending_size, put_pending_sizes):
3210 Update the uses of pending_sizes.
3211 * c-decl.c (store_parm_decls): Likewise.
3212 * c-tree.h (struct c_arg_info): Likewise.
3213 * tree.h: Update the prototype for get_pending_sizes and
3216 2010-05-05 Jason Merrill <jason@redhat.com>
3219 * c-common.c (handle_aligned_attribute): Respect
3220 ATTR_FLAG_TYPE_IN_PLACE.
3223 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
3224 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3225 (TARGET_INITIALIZER): Use it.
3226 * c-common.c (attribute_takes_identifier_p): Call it.
3227 * c-common.h: Update prototype.
3228 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
3229 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
3231 2010-05-05 Jakub Jelinek <jakub@redhat.com>
3234 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3235 DW_ID_down_case for Fortran compilation units.
3237 2010-05-05 Jan Hubicka <jh@suse.cz>
3239 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3242 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
3244 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3245 a variable-sized RESULT_DECL.
3247 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
3249 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3251 2010-05-05 Jason Merrill <jason@redhat.com>
3254 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3256 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3258 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
3259 Jakub Jelinek <jakub@redhat.com>
3262 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3263 (dead_debug_init, dead_debug_finish): New functions.
3264 (dead_debug_add, dead_debug_insert_before): Likewise.
3265 (df_note_bb_compute): Initialize a dead_debug object, add dead
3266 debug uses to it, insert debug bind insns before death insns,
3267 reset debug insns that refer to pending uses at the end.
3268 * rtl.h (make_debug_expr_from_rtl): New prototype.
3269 * varasm.c (make_debug_expr_from_rtl): New function.
3271 2010-05-05 Jan Hubicka <jh@suse.cz>
3273 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3274 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3275 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3276 lto_varpool_encoder_deref, lto_varpool_encoder_size,
3277 lto_varpool_encoder_encode_initializer_p,
3278 lto_set_varpool_encoder_encode_initializer): New functions.
3279 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3280 call output_varpool.
3281 (input_varpool_node): Do not always set analyzed.
3282 (input_cgraph_1): Return vector of cgraph nodes.
3283 (input_varpool_1): Return vector of varpools.
3284 (input_cgraph): Free the vectors.
3285 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3286 output only initializers needed.
3287 (lto_output): Only call output_cgraph.
3288 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3289 * lto-section-out.c (lto_new_out_decl_state): Initialize
3290 state->varpool_node_encoder.
3291 * lto-streamer.h (lto_varpool_encoder_d): New.
3292 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3293 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3294 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3295 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3296 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3298 (output_varpool, input_varpool): Remove declarations.
3300 2010-05-05 Jan Hubicka <jh@suse.cz>
3302 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3303 with body can prevail.
3305 2010-05-05 Jan Hubicka <jh@suse.cz>
3307 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3310 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
3312 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3314 * gengtype.h (erro_at_line): Constify pos argument.
3316 * gengtype.c: Include hashtab.h.
3317 (enum gc_used): Document GC_MAYBE_POINTED_TO.
3318 (error_at_line): Constify pos argument.
3319 (do_typedef): Initialize p->opt field.
3320 (get_file_gtfilename): Fix comment typo.
3321 (struct walk_type_data): Constify line field.
3322 (get_output_file_for_structure): New function.
3323 (write_local_func_for_structure): Constify orig_s argument.
3324 Use get_output_file_for_structure.
3325 (write_func_for_structure): Use get_output_file_for_structure.
3326 (INDENT): New define.
3327 (dump_pair, dump_type, dump_type_list, dump_typekind)
3328 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3329 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3331 (seen_types): New variable.
3332 (main): New variable do_dump. Process "-d" command line option.
3333 Call dump_everything if dump requested.
3335 2010-05-05 Jakub Jelinek <jakub@redhat.com>
3337 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3338 in a temporary instead of invoking the macro multiple times.
3339 (track_expr_p): Likewise.
3341 2010-05-04 Neil Vachharajani <nvachhar@google.com>
3343 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3345 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3346 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
3347 conditions for printing notes.
3348 * common.opt (-Wcoverage-mismatch): Allow negative, default to
3349 true, update documentation.
3350 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3352 2010-05-04 Jakub Jelinek <jakub@redhat.com>
3355 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3358 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
3361 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3362 (*sse_prologue_save_insn1): Likewise.
3363 (SSE prologue save splitter): Likewise.
3365 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
3367 * tree.c (free_lang_data_in_one_sizepos): New inline function.
3368 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3369 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3370 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3371 all decls. Call it on DECL_FIELD_OFFSET of fields.
3372 (find_decls_types_r): Follow DECL_VALUE_EXPR.
3373 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3375 2010-05-04 Martin Jambor <mjambor@suse.cz>
3377 * tree-sra.c (build_access_from_expr_1): The first parameter type
3378 changed to simple tree.
3379 (build_access_from_expr): Likewise, gsi parameter was eliminated.
3380 (scan_assign_result): Renamed to assignment_mod_result, enum elements
3382 (build_accesses_from_assign): Removed all parameters except for a
3383 simple gimple statement. Now returns a simple bool.
3384 (scan_function): All non-analysis parts moved to separate functions
3385 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
3386 parameters and updated both callers.
3387 (sra_modify_expr): Removed parameter data.
3388 (sra_modify_function_body): New function.
3389 (perform_intra_sra): Call sra_modify_function_body to modify the
3391 (replace_removed_params_ssa_names): Parameter data changed into
3393 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
3394 changed the parameter dont_convert to convert with the opposite
3396 (sra_ipa_modify_assign): Parameter data changed into adjustments
3397 vector, return value changed to bool.
3398 (ipa_sra_modify_function_body): New function.
3399 (sra_ipa_reset_debug_stmts): Updated a comment.
3400 (modify_function): Use ipa_sra_modify_function_body to modify function
3403 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
3406 * alias.c (true_dependence): Handle the same VALUE in x and mem.
3407 (canon_true_dependence): Likewise.
3408 (write_dependence_p): Likewise.
3410 2010-05-04 Jan Hubicka <jh@suse.cz>
3412 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3413 * cgraphbuild.c: Include ipa-utils.h
3414 (record_reference_ctx): New struct.
3415 (record_reference): Simplify to work on initializers; not statements.
3416 (mark_address, mark_load, mark_store): New.
3417 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3419 (record_references_in_initializer): Update use of record_reference.
3420 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3423 2010-05-04 Jan Hubicka <jh@suse.cz>
3425 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3426 node will be removed anyway.
3427 (lto_varpool_replace_node): Allow also unanalyzed nodes;
3428 relink aliases of node into prevailing node.
3429 * varpool.c (varpool_remove_node): Remove aliases properly;
3430 when removing node, remove all its aliases too; remove DECL_INITIAL
3431 of removed node; ggc_free the varpool node.
3433 2010-05-04 Richard Guenther <rguenther@suse.de>
3435 PR tree-optimization/43879
3436 * tree-ssa-structalias.c (alias_get_name): Use
3437 DECL_ASSEMBLER_NAME if available.
3438 (create_function_info_for): Return the varinfo node.
3439 (ipa_pta_execute): Associate same-body aliases and extra names
3440 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
3442 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
3444 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3446 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
3449 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3450 only if HONOR_REG_ALLOC_ORDER is not defined.
3452 2010-05-04 Richard Guenther <rguenther@suse.de>
3454 PR tree-optimization/43949
3455 * tree-vrp.c (extract_range_from_binary_expr): Only handle
3458 2010-04-26 Jason Merrill <jason@redhat.com>
3460 * c.opt (-fstrict-enums): New.
3461 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3463 2010-05-03 David Ung <davidu@mips.com>
3464 James E. Wilson <wilson@codesourcery.com>
3466 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3467 emit the trap instruction before the divide for TUNE_74K.
3469 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
3471 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3472 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3473 based on the above, for new target hook.
3475 * hooks.c (hook_bool_mode_true): New generic hook.
3476 * hooks.h (hook_bool_mode_true): Add prototype.
3478 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3480 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3481 target hook, set to hook_bool_mode_false.
3482 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3483 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3484 with targetm.small_register_classes_for_mode_p.
3485 (find_reusable_reload): Likewise.
3486 (combine_reloads): Likewise.
3487 * reload1.c (reload_as_needed): Likewise.
3488 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3489 * ifcvt.c (noce_process_if_block, check_cond_move_block,
3490 dead_or_predicable): Likewise.
3491 * regmove.c (optimize_reg_copy_1): Likewise.
3492 * calls.c (prepare_call_address): Likewise.
3493 (precompute_register_parameters): Likewise.
3495 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3497 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3498 implementation of the hook that considers all register classes
3499 small except for SH64.
3500 (sh_override_options): Use the new hook.
3501 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3504 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3506 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3507 implementation of the hook that considers all register classes
3509 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3512 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3514 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3515 implementation of the hook that considers all register classes
3517 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3520 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3522 * config/m32c/m32c.h: Likewise.
3523 * config/pdp11/pdp11.h: Likewise.
3524 * config/avr/avr.h: Likewise.
3525 * config/xtensa/xtensa.h: Likewise.
3526 * config/m68hc11/m68hc11.h: Likewise.
3527 * config/mn10300/mn10300.h: Likewise.
3528 * config/mcore/mcore.h: Likewise.
3529 * config/h8300/h8300.h: Likewise.
3530 * config/bfin/bfin.h: Likewise.
3532 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3533 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3535 2010-05-03 Anatoly Sokolov <aesok@post.ru>
3537 * double-int.h (tree_to_double_int): Remove macro.
3538 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3539 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3540 (tree_to_double_int): New function.
3541 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3543 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3545 2010-05-03 Richard Guenther <rguenther@suse.de>
3547 PR tree-optimization/43971
3548 * tree-ssa-structalias.c (get_constraint_for_1): Fix
3549 constraints in the !flag_delete_null_pointer_checks case.
3551 2010-05-03 Jakub Jelinek <jakub@redhat.com>
3554 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3555 result mode matches original rtl mode.
3557 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
3560 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3562 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
3564 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3565 when processing flag options.
3567 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
3569 * gcov-iov.c (main): Change format string placeholder
3570 from %#08x to 0x%08x.
3571 * genchecksum.c (dosum): Change format string placeholder
3572 from %#02x to 0x%02x.
3574 2010-05-02 Richard Guenther <rguenther@suse.de>
3576 PR tree-optimization/43879
3577 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3579 2010-05-02 Bruno Haible <bruno@clisp.org>
3581 * doc/extend.texi (Function Attributes): Fix a typo.
3583 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
3586 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3587 placeholder from 0x%x to %#x.
3588 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3589 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3590 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3591 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3592 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3593 * config/i386/i386.c (ix86_target_string): Ditto.
3594 * config/i386/i386.c (output_pic_addr_const): Ditto.
3595 (print_operand): Ditto.
3597 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
3599 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3600 placeholder from 0x%x to %#x.
3601 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3602 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3603 (ASM_OUTPUT_DEBUG_DATA): Ditto.
3604 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3605 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3606 * optc-gen.awk: Ditto.
3607 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3608 (HOST_WIDE_INT_PRINT_HEX): Ditto.
3609 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3610 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3612 2010-05-01 Anatoly Sokolov <aesok@post.ru>
3614 * target.h (struct calls): Add function_value_regno_p field.
3615 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3616 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3617 * targhooks.c (default_function_value_regno_p): New function.
3618 * targhooks.h (default_function_value_regno_p): Declare function.
3619 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3620 * builtins.c. (apply_result_size): (Ditto.).
3621 * combine.c. (likely_spilled_retval_p): (Ditto.).
3622 * mode-switching.c. Include 'target.h'.
3623 (create_pre_exit): Use function_value_regno_p hook.
3624 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3625 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3626 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3628 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3629 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3630 (ix86_function_value_regno_p): Declare as static, change argument
3631 type to const unsigned int.
3632 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3634 2010-05-01 Richard Guenther <rguenther@suse.de>
3636 PR tree-optimization/43949
3637 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3639 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3641 2010-05-01 Anatoly Sokolov <aesok@post.ru>
3643 * rtl.h (CONST_DOUBLE_P): Define.
3644 (rtx_to_double_int): Declare.
3645 * emit-rtl.c (rtx_to_double_int): New function.
3646 * dwarf2out.c (insert_double): New function.
3647 (loc_descriptor, add_const_value_attribute): Clean up, use
3648 rtx_to_double_int and insert_double functions.
3650 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
3652 * doc/extend.texi (Inline): Add missing return keyword to examples.
3653 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3656 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
3658 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3659 the variable part of the offset as well. Use highest_pow2_factor for
3660 all alignment checks.
3662 2010-04-30 Richard Guenther <rguenther@suse.de>
3664 PR tree-optimization/43879
3665 * tree-ssa-structalias.c (type_could_have_pointers): Functions
3668 2010-04-30 Jan Hubicka <jh@suse.cz>
3670 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3672 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3674 2010-04-30 Jan Hubicka <jh@suse.cz>
3676 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3678 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3679 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3680 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3681 cgraph_node_set_needs_ltrans_p): Remove.
3683 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
3685 * sdbout.c: Include vec.h, do not include varray.h.
3686 (deferred_global_decls, sdbout_global_decl,
3687 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3688 * toplev.c: Do not include varray.h.
3689 (dump_memory_report): Do not dump VARRAY statistics.
3690 * gengtype.c (open_base_file): Ignore varray.h.
3691 * Makefile.in: Update for abovementioned changes.
3692 Remove all traces of varray.c and varray.h.
3693 * varray.c: Remove file.
3694 * varray.h: Remove file.
3696 2010-04-30 Jan Hubicka <jh@suse.cz>
3698 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3701 2010-04-30 Jan Hubicka <jh@suse.cz>
3703 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3706 2010-04-30 Richard Guenther <rguenther@suse.de>
3708 * tree-ssa-structalias.c (get_constraint_for_1): Generate
3709 constraints for CONSTRUCTOR.
3711 2010-04-30 Richard Guenther <rguenther@suse.de>
3714 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3715 first after all lowering passes.
3717 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
3719 * toplev.c: Include varray.h for statistics dumping.
3720 * tree.h: Do not declare varray_head_tag.
3721 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3722 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3723 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3724 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3725 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3726 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3727 c-common.c, c-common.h, reg-stack.c, basic-block.h,
3728 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3730 * Makefile.in: Update for abovementioned changes.
3732 2010-04-30 Jakub Jelinek <jakub@redhat.com>
3735 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3737 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
3739 * config/picochip/picochip.c (picochip_legitimize_address): Define.
3740 Use this function to do machine-specific conversion.
3741 (picochip_legitimize_reload_address): Likewise.
3742 (picochip_legitimate_address_p): Check valid base register only if
3744 (picochip_check_conditional_copy): Check for modw only if opnd is
3746 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3747 to call the function in c.
3748 * config/picochip/picochip-protos.h
3749 (picochip_legitimize_reload_address): Define.
3750 * config/picochip/picochip.md (supported_compare1): Define.
3752 2010-04-30 Jan Hubicka <jh@suse.cz>
3754 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3755 (cgraph_global_info): Remove inlined.
3756 (LTO_cgraph_tag_names): Remove.
3757 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3758 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3759 simplify cgraph tags and document.
3760 (lto_output_node): Use only LTO_cgraph_unavail_node and
3761 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3762 for_functions_valid, global info, process and output flags.
3763 (input_overwrite_node): Initialize estimated stack size and
3764 estimated growth. Do not read flags we no longer store.
3765 (input_node): Likewise do not read info no longer stored.
3766 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3769 2010-04-30 Richard Guenther <rguenther@suse.de>
3771 PR tree-optimization/43879
3772 * tree-ssa-structalias.c (get_constraint_for_1): Properly
3773 handle non-zero initializers.
3775 2010-04-30 Richard Guenther <rguenther@suse.de>
3777 * builtins.c (fold_builtin_1): Delete free (0).
3779 2010-04-29 Jan Hubicka <jh@suse.cz>
3781 * gengtype.c (open_base_files): Add lto-streamer.h
3782 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3783 (pass_ipa_cp): GGC collect.
3784 * toplev. (compile_file): Do not output symbols.
3785 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3786 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3787 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3788 * lto-section-in.c: Include ggc.h
3789 (lto_new_in_decl_state): Alloc in GGC.
3790 (lto_delete_in_decl_state): Likewise.
3791 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3794 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
3797 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3798 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
3799 (HONOR_REG_ALLOC_ORDER): Describe new macro.
3800 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3801 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3802 account only if HONOR_REG_ALLOC_ORDER is not defined.
3803 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3804 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3806 2010-04-29 Jon Grant <04@jguk.org>
3808 * collect2.c (vflag): Change type from int to bool.
3810 (helpflag): New global bool.
3811 (main): Set vflag and debug with boolean, not integer truth values.
3812 Accept new "--help" option and output usage text if found.
3813 * collect2.h (vflag): Update prototype.
3816 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
3819 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3821 2010-04-29 Richard Guenther <rguenther@suse.de>
3824 * plugin.h (invoke_plugin_callbacks): Annotate arguments
3825 with ATTRIBUTE_UNUSED.
3827 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
3830 * config/i386/i386.c (get_some_local_dynamic_name): Replace
3831 INSN_P with NONDEBUG_INSN_P.
3832 (distance_non_agu_define): Likewise.
3833 (distance_agu_use): Likewise.
3835 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
3837 From Dominique d'Humieres <dominiq@lps.ens.fr>
3839 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3842 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
3844 * plugin.h (invoke_plugin_callbacks): New inline function.
3845 * plugin.c (flag_plugin_added): New global flag.
3846 (add_new_plugin): Initialize above flag.
3847 (invoke_plugin_callbacks): Rename to ...
3848 (invoke_plugin_callbacks_full): ... this.
3850 2010-04-28 Jan Hubicka <jh@suse.cz>
3852 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3853 (lto_varpool_replace_node): New.
3854 (lto_symtab_resolve_symbols): Resolve varpool nodes.
3855 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3856 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3857 * cgraph.h (varpool_node_ptr): New type.
3858 (varpool_node_ptr): New vector.
3859 (varpool_node_set_def): New structure.
3860 (varpool_node_set): New type.
3861 (varpool_node_set): New vector.
3862 (varpool_node_set_element_def): New structure.
3863 (varpool_node_set_element, const_varpool_node_set_element): New types.
3864 (varpool_node_set_iterator): New type.
3865 (varpool_node): Add prev pointers, add used_from_other_partition,
3867 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3868 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3869 varpool_get_node, varpool_remove_node): Declare.
3870 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3871 varpool_node_set_size): New inlines.
3872 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3873 * tree-pass.h (varpool_node_set_def): Forward declare.
3874 (ipa_opt_pass_d): Summary writting takes vnode sets too.
3875 (ipa_write_optimization_summaries): Update prototype.
3876 * ipa-cp.c (ipcp_write_summary): Update.
3877 * ipa-reference.c (ipa_reference_write_summary): Update.
3878 * lto-cgraph.c (lto_output_varpool_node): New static function.
3879 (output_varpool): New function.
3880 (input_varpool_node): New static function.
3881 (input_varpool_1): New function.
3882 (input_cgraph): Input varpool.
3883 * ipa-pure-const.c (pure_const_write_summary): Update.
3884 * lto-streamer-out.c (lto_output): Update, output varpool too.
3885 (write_global_stream): Kill WPA hack.
3886 (produce_asm_for_decls): Update.
3887 (output_alias_pair_p): Handle variables.
3888 (output_unreferenced_globals): Output only needed partition of varpool.
3889 * ipa-inline.c (inline_write_summary): Update.
3890 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3892 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3893 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3894 varpool_node_set_new, varpool_node_set_add,
3895 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3896 debug_varpool_node_set): New functions.
3897 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3898 (execute_one_pass): Process new decls too.
3899 (ipa_write_summaries_2): Pass around vsets.
3900 (ipa_write_summaries_1): Likewise.
3901 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3903 (ipa_write_optimization_summaries_1): Pass around vsets.
3904 (ipa_write_optimization_summaries): Likewise.
3905 * varpool.c (varpool_get_node): New.
3906 (varpool_node): Update doubly linked lists.
3907 (varpool_remove_node): New.
3908 (dump_varpool_node): More dumping.
3909 (varpool_enqueue_needed_node): Update doubly linked lists.
3910 (decide_is_variable_needed): Kill ltrans hack.
3911 (varpool_finalize_decl): Kill lto hack.
3912 (varpool_assemble_decl): Skip decls in other partitions.
3913 (varpool_assemble_pending_decls): Update doubly linkes lists.
3914 (varpool_empty_needed_queue): Likewise.
3915 (varpool_extra_name_alias): Likewise.
3916 * lto-streamer.c (lto_get_section_name): Add vars section.
3917 * lto-streamer.h (lto_section_type): Update.
3918 (output_varpool, input_varpool): Declare.
3920 2010-04-28 Mike Stump <mikestump@comcast.net>
3922 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3924 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
3926 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3927 record or union type with RECORD_OR_UNION_TYPE_P predicate.
3928 (lto_input_ts_type_tree_pointers): Likewise.
3929 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3930 (lto_output_ts_type_tree_pointers): Likewise.
3932 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
3934 Uniquization of constants at the Tree level
3935 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
3936 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3938 (tree_output_constant_def): Declare.
3939 * gimplify.c (gimplify_init_constructor): When using block copy, first
3940 uniquize the constant constructor on the RHS.
3941 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3942 DECL_IN_CONSTANT_POOL flag.
3943 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3944 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3946 (assemble_variable): Deal with symbols belonging to the tree constant
3948 (get_constant_section): Add ALIGN parameter and simplify.
3949 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3950 (assemble_constant_contents): Use the expression of the VAR_DECL.
3951 (output_constant_def_contents): Use the alignment of the VAR_DECL.
3952 (tree_output_constant_def): New global function.
3953 (mark_constant): Use the expression of the VAR_DECL.
3954 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3956 (output_object_block): Likewise and assemble the expression.
3958 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
3960 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3961 hash_tree, eq_tree): New tree hash table.
3962 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3963 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3964 lto_orig_address_remove): Reimplement.
3966 2010-04-28 Xinliang David Li <davidxl@google.com>
3969 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3970 (compute_uninit_opnds_pos): New function.
3971 (is_non_loop_exit_postdominating): New function.
3972 (compute_control_dep_chain): New function.
3973 (find_pdom): New function.
3974 (convert_control_dep_chain_into_preds): New function.
3975 (find_predicates): New function.
3976 (find_control_equiv_block): New function.
3977 (collect_phi_def_edges): New function.
3978 (find_def_preds): New function.
3979 (find_dom): New function.
3980 (dump_predicates): New function.
3981 (get_cmp_code): New function.
3982 (is_value_included_in): New function.
3983 (find_matching_predicate_in_rest_chains): New function.
3984 (use_pred_not_overlap_with_undef_path_pred): New function.
3985 (is_use_properly_guarded): New function.
3986 (normalize_cond_1): New function.
3987 (is_and_or_or): New function.
3988 (normalize_cond): New function.
3989 (is_gcond_subset_of): New function.
3990 (is_subset_of_any): New function.
3991 (is_or_set_subset_of): New function.
3992 (is_and_set_subset_of): New function.
3993 (is_norm_cond_subset_of): New function.
3994 (is_pred_expr_subset_of): New function.
3995 (is_pred_chain_subset_of): New function.
3996 (is_included_in): New function.
3997 (is_superset_of): New function.
3998 (find_uninit_use): New function.
3999 (warn_uninitialized_phi): New function.
4000 (compute_possibly_undefined_names): New function.
4001 (ssa_undefined_value_p): New function.
4002 (execute_late_warn_uninitialized): New function.
4003 * tree-ssa.c (ssa_undefined_value_p): Removed.
4004 (warn_uninit): Changed to extern.
4005 (warn_uninitialized_phi): Removed.
4006 (warn_uninitialized_vars): Changed to extern.
4007 (execute_late_warn_uninitialized): Removed
4008 * tree-flow.h: Add new prototypes.
4009 * timevar.def: Add new time variable.
4010 * Makefile.in: Add new build file.
4012 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
4014 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
4017 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4020 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
4022 2010-04-28 Martin Jambor <mjambor@suse.cz>
4024 * cgraph.h (struct cgraph_node): New field indirect_calls.
4025 (struct cgraph_indirect_call_info): New type.
4026 (struct cgraph_edge): Removed field indirect_call. New fields
4027 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
4028 (cgraph_create_indirect_edge): Declare.
4029 (cgraph_make_edge_direct): Likewise.
4030 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
4031 * ipa-prop.h (struct ipa_param_call_note): Removed.
4032 (struct ipa_node_params): Removed field param_calls.
4033 (ipa_create_all_structures_for_iinln): Declare.
4034 * cgraph.c: Described indirect edges and uids in initial comment.
4035 (cgraph_add_edge_to_call_site_hash): New function.
4036 (cgraph_edge): Search also among the indirect edges, use
4037 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
4038 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
4039 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
4041 (initialize_inline_failed): Assign a reason to indirect edges.
4042 (cgraph_create_edge_1): New function.
4043 (cgraph_create_edge): Moved some functionality to
4044 cgraph_create_edge_1.
4045 (cgraph_create_indirect_edge): New function.
4046 (cgraph_edge_remove_callee): Add an assert checking for
4048 (cgraph_edge_remove_caller): Special-case indirect edges.
4049 (cgraph_remove_edge): Likewise.
4050 (cgraph_set_edge_callee): New function.
4051 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
4052 (cgraph_make_edge_direct): New function.
4053 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
4054 the declaration of the call statement matches.
4055 (cgraph_node_remove_callees): Special-case indirect edges.
4056 (cgraph_clone_edge): Likewise.
4057 (cgraph_clone_node): Clone also the indirect edges.
4058 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
4059 indirect_call, dump count of indirect_calls edges.
4060 * ipa-prop.c (iinlining_processed_edges): New variable.
4061 (ipa_note_param_call): Create indirect edges instead of
4062 creating notes. New parameter node.
4063 (ipa_analyze_call_uses): New parameter node, pass it on to
4064 ipa_note_param_call.
4065 (ipa_analyze_stmt_uses): Likewise.
4066 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
4067 (print_edge_addition_message): Work on edges rather than on notes.
4068 (update_call_notes_after_inlining): Likewise, renamed to
4069 update_indirect_edges_after_inlining.
4070 (ipa_create_all_structures_for_iinln): New function.
4071 (ipa_free_node_params_substructures): Do not free notes.
4072 (ipa_edge_duplication_hook): Propagate bits within
4073 iinlining_processed_edges bitmap.
4074 (ipa_node_duplication_hook): Do not duplicate notes.
4075 (free_all_ipa_structures_after_ipa_cp): Renamed to
4076 ipa_free_all_structures_after_ipa_cp.
4077 (free_all_ipa_structures_after_iinln): Renamed to
4078 ipa_free_all_structures_after_iinln.
4079 (ipa_write_param_call_note): Removed.
4080 (ipa_read_param_call_note): Removed.
4081 (ipa_write_indirect_edge_info): New function.
4082 (ipa_read_indirect_edge_info): Likewise.
4083 (ipa_write_node_info): Do not stream notes, do stream information
4085 (ipa_read_node_info): Likewise.
4086 (lto_ipa_fixup_call_notes): Removed.
4087 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
4088 * ipa-inline.c (pass_ipa_inline): Likewise.
4089 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
4090 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
4091 * tree-inline.c (copy_bb): Removed an unnecessary double check for
4093 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
4095 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
4096 (output_cgraph): Stream also indirect edges.
4097 (lto_output_edge): Added capability to stream indirect edges.
4098 (input_edge): Likewise.
4099 (input_cgraph_1): Likewise.
4100 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
4103 2010-04-28 Richard Guenther <rguenther@suse.de>
4105 PR tree-optimization/43879
4106 PR tree-optimization/43909
4107 * tree-ssa-structalias.c (struct variable_info): Add
4108 only_restrict_pointers flag.
4109 (new_var_info): Initialize it. Increment stats.total_vars here.
4110 (create_function_info_for): Do not increment stats.total_vars here.
4111 (get_function_part_constraint): Fix build with C++.
4112 (insert_into_field_list): Remove.
4113 (push_fields_onto_fieldstack): Properly merge fields.
4114 (create_variable_info_for): Split and simplify.
4115 (create_variable_info_for_1): New piece.
4116 (intra_create_variable_infos): Properly make restrict constraints
4119 2010-04-28 Richard Guenther <rguenther@suse.de>
4122 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
4124 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
4125 Jan Hubicka <hubicka@ucw.cz>
4127 * doc/invoke.texi (-Wsuggest-attribute=const,
4128 -Wsuggest-attribute=pure): Document.
4129 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
4130 (function_always_visible_to_compiler_p,
4131 suggest_attribute, warn_function_pure, warn_function_const):
4133 (check_call): Improve debug info.
4134 (analyze_function): Do not check availability.
4135 (add_new_function): Check availability.
4136 (propagate): Output warnings.
4137 (skip_function_for_local_pure_const): New function.
4138 (local_pure_const): Use it; output warnings.
4139 * common.opt (Wsuggest-attribute=const,
4140 Wsuggest-attribute=pure): New.
4142 2010-04-27 Jakub Jelinek <jakub@redhat.com>
4144 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
4145 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
4146 or DW_CFA_def_cfa_offset{,_sf}.
4148 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
4150 * tree.h: Fix truncated long macros.
4152 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
4154 * collect2.c (TARGET_64BIT): Redefine to target's default.
4155 * tlink.c: Likewise.
4156 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
4157 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
4158 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
4159 for underscoring __USER_LABEL_PREFIX__.
4160 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
4161 (SUB_LINK_ENTRY32): New.
4162 (SUB_LINK_ENTRY64): New.
4163 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
4164 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
4165 (SUB_LINK_ENTRY64): New.
4166 (SUB_LINK_ENTRY): New.
4167 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
4168 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
4169 x64 target is choosen.
4170 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
4171 * configure: Regenerated.
4172 * configure.ac (leading-mingw64-underscores): Option added.
4174 2010-04-27 Jan Hubicka <jh@suse.cz>
4176 * doc/invoke.texi (-fipa-profile): Document.
4177 * opts.c (decode_options): Enable ipa-profile at -O1.
4178 * timevar.def (TV_IPA_PROFILE): Define.
4179 * common.opt (fipa-profile): Add.
4180 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
4182 (cgraph_propagate_frequency): Handle only local ones.
4183 * tree-pass.h (pass_ipa_profile): Declare.
4184 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
4185 (pass_ipa_profile): Use TV_IPA_PROFILE.
4186 * ipa.c (ipa_profile): New function.
4187 (gate_ipa_profile): Likewise.
4188 (pass_ipa_profile): New global variable.
4189 * passes.c (pass_ipa_profile): New.
4191 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
4193 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
4195 2010-04-27 Martin Jambor <mjambor@suse.cz>
4198 * ipa.c (dissolve_same_comdat_group_list): New function.
4199 (function_and_variable_visibility): Call
4200 dissolve_same_comdat_group_list when comdat group contains external or
4202 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
4203 lists are circular and that they contain only DECL_ONE_ONLY nodes.
4205 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
4207 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
4208 (const_hash_1) <VECTOR_CST>: New case.
4209 (compare_constant) <VECTOR_CST>: Likewise.
4210 <ADDR_EXPR>: Deal with LABEL_REFs.
4211 (copy_constant) <VECTOR_CST>: New case.
4213 2010-04-27 Jan Hubicka <jh@suse.cz>
4215 * cgraph.c (cgraph_propagate_frequency): New function.
4216 * cgraph.h (cgraph_propagate_frequency): Declare.
4217 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
4218 cgraph_propagate_frequency.
4220 2010-04-27 Jakub Jelinek <jakub@redhat.com>
4222 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
4224 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
4227 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
4228 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
4229 here to determine which regs to push and how much stack to reserve.
4231 2010-04-27 Jie Zhang <jie@codesourcery.com>
4233 * doc/gimple.texi (gimple_statement_with_ops): Remove
4234 addresses_taken field.
4235 (gimple_statement_with_memory_ops): Likewise.
4237 2010-04-27 Jan Hubicka <jh@suse.cz>
4239 * tree-inline.c (eni_inlining_weights): Remove.
4240 (estimate_num_insns): Special case more builtins.
4242 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
4245 * c-typeck.c (build_binary_op): Move forward check for comparison
4246 pointer with null pointer constant and adjust the diagnostic message.
4248 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
4251 * configure.ac (gcc_cv_as_section_has_align): Set if installed
4252 binutils supports extended .section directive needed by LTO, or
4253 warn if older binutils found.
4254 (LTO_BINARY_READER): New AC_SUBST'd variable.
4255 (LTO_USE_LIBELF): Likewise.
4256 * gcc/config.gcc (lto_binary_reader): New target-specific configure
4258 * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4259 (LTO_USE_LIBELF): Likewise.
4260 * configure: Regenerate.
4262 * collect2.c (is_elf): Rename from this ...
4263 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4264 object files in addition to ELF-formatted ones.
4265 (scan_prog_file): Caller updated. Also allow for LTO info marker
4266 symbol to be prefixed or not by an extra underscore.
4268 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4269 * config/i386/winnt.c: Also #include lto-streamer.h
4270 (i386_pe_asm_named_section): Specify 1-byte section alignment for
4272 (i386_pe_asm_output_aligned_decl_common): Add comment.
4273 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4275 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
4278 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4279 Add missing earlyclobber for second alternative.
4281 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
4283 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4284 bits for artificial defs at the top of the block.
4285 * fwprop.c (single_def_use_enter_block): Don't call it.
4287 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
4290 * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4291 instead of "$gcc_cv_objdump -T".
4292 Use "-undefined dynamic_lookup" on darwin.
4293 * gcc/configure: Regenerate.
4295 2010-04-26 Jakub Jelinek <jakub@redhat.com>
4298 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4300 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
4302 * c-parser.c (struct c_token): Move location field up.
4303 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4304 (struct c_declspecs): Convert typespec_word, storage_class, and
4305 default_int_p into bitfields.
4306 (struct c_declarator): Move loc field up.
4308 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
4310 * cfgloop.h (struct loop): Move can_be_parallel field up.
4311 * ipa-prop.h (struct ip_node_params): Move bitfields up.
4312 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4314 (struct iv_cand): Convert pos field into a bitfield.
4315 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4317 (struct _stmt_vec_info): Shuffle fields for better packing.
4319 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
4321 * varasm.c (IN_NAMED_SECTION): Remove guard.
4322 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4323 (IN_NAMED_SECTION_P): ...this.
4324 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4325 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4327 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
4329 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4330 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
4331 of shadowing it. Fix comments.
4333 2010-04-26 Jan Hubicka <jh@suse.cz>
4335 * cgraph.c (cgraph_create_node): Set node frequency to normal.
4336 (cgraph_clone_node): Copy function frequency.
4337 * cgraph.h (node_frequency): New enum
4338 (struct cgraph_node): Add.
4339 * final.c (rest_of_clean_state): Update.
4340 * lto-cgraph.c (lto_output_node): Output node frequency.
4341 (input_overwrite_node): Input node frequency.
4342 * tre-ssa-loop-ivopts (computation_cost): Update.
4343 * lto-streamer-out.c (output_function): Do not output function
4345 * predict.c (maybe_hot_frequency_p): Update and handle functions
4347 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4349 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4350 (compute_function_frequency): Set noreturn functions to be executed
4352 (choose_function_section): Update.
4353 * lto-streamer-in.c (input_function): Do not input function frequency.
4354 * function.c (allocate_struct_function): Do not initialize function
4356 * function.h (function_frequency): Remove.
4357 (struct function): Remove function frequency.
4358 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4359 (try_update): Update.
4360 * tree-inline.c (initialize_cfun): Do not update function frequency.
4361 * passes.c (pass_init_dump_file): Update.
4362 * i386.c (ix86_compute_frame_layout): Update.
4363 (ix86_pad_returns): Update.
4365 2010-04-26 Jie Zhang <jie@codesourcery.com>
4367 PR tree-optimization/43833
4368 * tree-vrp.c (range_int_cst_p): New.
4369 (range_int_cst_singleton_p): New.
4370 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4371 when both operands are constants. Use range_int_cst_p in
4374 2010-04-26 Jan Hubicka <jh@suse.cz>
4376 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4378 2010-04-26 Richard Guenther <rguenther@suse.de>
4381 * gimple.c (gimple_decl_printable_name): Deal gracefully
4382 with a NULL DECL_NAME.
4384 2010-04-26 Richard Guenther <rguenther@suse.de>
4387 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4388 if emitting debug information and it is either a function
4389 or a namespace decl.
4391 2010-04-26 Ira Rosen <irar@il.ibm.com>
4393 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4394 determine if the statement is vectorizable, and a macro to access it.
4395 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4396 Skip statements that can't be vectorized. If the analysis fails,
4397 mark the statement as unvectorizable if vectorizing basic block.
4398 (vect_compute_data_refs_alignment): Likewise.
4399 (vect_verify_datarefs_alignment): Skip statements marked as
4400 unvectorizable. Add print.
4401 (vect_analyze_group_access): Skip statements that can't be
4402 vectorized. If the analysis fails, mark the statement as
4403 unvectorizable if vectorizing basic block.
4404 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4405 * tree-vect-stmts.c (vectorizable_store): Fix the number of
4406 generated stmts for SLP.
4407 (new_stmt_vec_info): Initialize the new field.
4408 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4409 statements marked as unvectorizable.
4411 2010-04-25 Joseph Myers <joseph@codesourcery.com>
4413 * c-common.c (flag_isoc1x): New.
4414 (flag_isoc99): Update comment.
4415 * c-common.h (flag_isoc1x): New.
4416 (flag_isoc99): Update comment.
4417 * c-cppbuiltin.c (builtin_define_float_constants): Also define
4418 __<type>_DECIMAL_DIG__.
4419 * c-opts.c (set_std_c1x): New.
4420 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4421 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4422 * c.opt (-std=c1x, -std=gnu1x): New options.
4423 * doc/cpp.texi: Mention -std=c1x.
4424 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4425 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4426 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4427 * doc/standards.texi: Mention C1X.
4428 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4429 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4430 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4433 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
4435 * config/i386/gmon-sol2.c (_mcleanup): Change format string
4436 placeholder from 0x%x to %#x.
4437 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4438 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4439 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4440 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4441 * config/i386/i386.c (ix86_target_string): Ditto.
4442 (output_pic_addr_const): Ditto.
4443 (print_operand): Ditto.
4445 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
4447 * combine.c (find_split_point): Add third argument. Use it
4448 to find nested multiply-accumulate instructions. Adjust calls.
4449 (try_combine): Adjust call to find_split_point.
4451 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
4453 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4455 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
4457 PR tree-optimization/41442
4458 * fold-const.c (merge_truthop_with_opposite_arm): New function.
4459 (fold_binary_loc): Call it.
4461 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
4463 * toplev.c (general_init): Set default for fdiagnostics-show-option.
4464 * opts.c (common_handle_option): Allow disabling it.
4465 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4467 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
4469 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4470 between modes if both types are integral.
4472 2010-04-23 Richard Guenther <rguenther@suse.de>
4474 PR tree-optimization/43572
4475 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4477 2010-04-23 Richard Guenther <rguenther@suse.de>
4480 * tree-inline.c (tree_can_inline_p): Also check compatibility
4483 2010-04-23 Martin Jambor <mjambor@suse.cz>
4485 PR tree-optimization/43846
4486 * tree-sra.c (struct access): New flag grp_assignment_read.
4487 (build_accesses_from_assign): Set grp_assignment_read.
4488 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4489 (enum mark_read_status): New type.
4490 (analyze_access_subtree): Propagate grp_assignment_read, create
4491 accesses also if both direct_read and root->grp_assignment_read.
4493 2010-04-23 Martin Jambor <mjambor@suse.cz>
4496 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4497 function does not have type attributes.
4499 2010-04-23 Richard Guenther <rguenther@suse.de>
4502 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4505 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4507 * sese.h (create_if_region_on_edge): Remove.
4509 * sese.c (create_if_region_on_edge): Make static.
4511 * tree-inline.c: Do not include ggc.h.
4513 * expr.c: Do not include ggc.h.
4515 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4518 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
4521 * config/sh/sh.c (find_barrier): Don't emit a constant pool
4522 in the middle of insns for casesi_worker_2.
4524 2010-04-22 David Edelsohn <edelsohn@gnu.org>
4526 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4528 2010-04-22 Ira Rosen <irar@il.ibm.com>
4530 PR tree-optimization/43842
4531 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4532 loop unrolling in update of exit phis. Fix comment.
4533 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4534 least two reduction statements in the loop before starting SLP
4537 2010-04-22 Nick Clifton <nickc@redhat.com>
4539 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4541 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
4543 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4546 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4548 * tree-parloops.c (loop_parallel_p): New argument
4549 parloop_obstack. Pass it down.
4550 (parallelize_loops): New variable parloop_obstack. Initialize it,
4551 pass it down, free it.
4553 * tree-loop-linear.c (linear_transform_loops): Pass down
4556 * tree-data-ref.h (lambda_compute_access_matrices): New argument
4557 of type struct obstack *.
4559 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4560 scratch_obstack. Initialize it, pass down, free it.
4562 * lambda.h (lambda_loop_new): Remove.
4563 (lambda_matrix_new, lambda_matrix_inverse)
4564 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4565 argument of type struct obstack *.
4567 * lambda-trans.c (lambda_trans_matrix_new): New argument
4568 lambda_obstack. Pass it down, use obstack allocation for ret.
4569 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
4572 * lambda-mat.c (lambda_matrix_get_column)
4573 (lambda_matrix_project_to_null): Remove.
4574 (lambda_matrix_new): New argument lambda_obstack. Use obstack
4576 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4579 * lambda-code.c (lambda_loop_new): New function.
4580 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4581 (lambda_compute_auxillary_space, lambda_compute_target_space)
4582 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4583 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4584 (build_access_matrix): New argument lambda_obstack. Use obstack
4586 (lambda_compute_step_signs, lambda_compute_access_matrices): New
4587 argument lambda_obstack. Pass it down.
4589 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
4591 * optabs.h (expand_widening_mult): Declare.
4593 2010-04-22 Richard Guenther <rguenther@suse.de>
4595 PR tree-optimization/43845
4596 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4597 lookup the CALL_EXPR function and arguments.
4599 2010-04-22 Nick Clifton <nickc@redhat.com>
4601 * config/stormy16/stormy16.c
4602 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4603 * config/stormy16/stormy16.h: Tidy up formatting.
4604 (DONT_USE_BUILTIN_SETJMP): Remove definition.
4605 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4606 (ineqbranchsi): Delete pattern.
4607 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4608 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4609 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4610 stormy16-lib2-ucmpsi2.c.
4612 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
4614 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4615 df_simulate_find_noclobber_defs as appropriate. Keep track of an
4616 extra set merge_set_noclobber, and use it to relax the final test
4618 * df.h (df_simulate_find_noclobber_defs): Declare.
4619 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4621 (df_simulate_find_noclobber_defs): New function.
4623 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
4625 * config/i386/i386.md: Use {} around multi-line preparation statements.
4627 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
4629 * c-tree.h (push_init_level, pop_init_level, set_init_index)
4630 (process_init_element): New argument of type struct obstack *.
4632 * c-typeck.c (push_init_level, pop_init_level, set_designator)
4633 (set_init_index, set_init_label, set_nonincremental_init)
4634 (set_nonincremental_init_from_string, find_init_member)
4635 (output_init_element, output_pending_init_elements)
4636 (process_init_element): New argument braced_init_obstack. Pass it
4638 (push_range_stack, add_pending_init): New argument
4639 braced_init_obstack. Use obstack allocation.
4641 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4642 braced_init_obstack. Pass it down.
4643 (c_parser_braced_init): New variables ret, braced_init_obstack.
4644 Initialize obstack, pass it down and finally free it.
4646 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
4649 * tree-pass.h (pass_optimize_widening_mul): Declare.
4650 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4651 gate_optimize_widening_mul): New static functions.
4652 (pass_optimize_widening_mul): New.
4653 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4654 <case MULT_EXPR>: Remove support for widening multiplies.
4655 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4656 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4657 simplify_gen_unary rather than directly building extensions.
4658 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4660 * expmed.c (expand_widening_mult): New function.
4661 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4663 2010-04-21 Jan Hubicka <jh@suse.cz>
4665 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4666 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4667 * lto-wpa-fixup.c: Remove.
4668 * Makefile.in (lto-wpa-fixup.o): Remove.
4669 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4670 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4671 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4673 2010-04-21 Jan Hubicka <jh@suse.cz>
4675 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4676 add write_optimization_summary, read_optimization_summary.
4677 (ipa_write_summaries_of_cgraph_node_set): Remove.
4678 (ipa_write_optimization_summaries): Declare.
4679 (ipa_read_optimization_summaries): Declare.
4680 * ipa-cp.c (pass_ipa_cp): Update.
4681 * ipa-reference.c (pass_ipa_reference): Update.
4682 * ipa-pure-const.c (pass_ipa_pure_const): Update.
4683 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4685 * ipa-inline.c (pass_ipa_inline): Update.
4686 * ipa.c (pass_ipa_whole_program): Update.
4687 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4688 * passes.c (ipa_write_summaries_1): Do not test wpa.
4689 (ipa_write_optimization_summaries_1): New.
4690 (ipa_write_optimization_summaries): New.
4691 (ipa_read_summaries): Do not test ltrans.
4692 (ipa_read_optimization_summaries_1): New.
4693 (ipa_read_optimization_summaries): New.
4695 2010-04-21 Jan Hubicka <jh@suse.cz>
4697 * lto-cgraph.c (lto_output_node): Do not output comdat groups
4699 (output_cgraph): Do not arrange comdat groups for boundary nodes.
4701 2010-04-21 Jakub Jelinek <jakub@redhat.com>
4704 * dwarf2out.c (add_name_and_src_coords_attributes): Add
4705 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4707 2010-04-21 Jan Hubicka <jh@suse.cz>
4709 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4711 2010-04-21 Jan Hubicka <jh@suse.cz>
4713 * varpool.c (decide_is_variable_needed): Variable is always needed
4716 2010-04-21 Jan Hubicka <jh@suse.cz>
4718 * opts.c (decode_options): Enable pure-const pass for whopr.
4720 2010-04-21 Jan Hubicka <jh@suse.cz>
4722 * cgraph.c (dump_cgraph_node): Dump also assembler name.
4723 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4725 (cgraph_decide_inlining): Do not expect callee to be removed in all
4728 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
4730 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4732 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
4734 * config/i386/i386.md (x86_shrd): Add athlon_decode and
4735 amdfam10_decode attributes.
4737 2010-04-21 Jakub Jelinek <jakub@redhat.com>
4740 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4741 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4742 (lower_copyprivate_clauses): Use private var in outer
4743 context instead of original var. Make sure the types
4744 are correct for VLAs.
4746 2010-04-21 Richard Guenther <rguenther@suse.de>
4748 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4749 to non-pointer objects.
4751 2010-04-21 Jakub Jelinek <jakub@redhat.com>
4753 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
4754 last chain entry if it starts with the still current label.
4755 (add_location_or_const_value_attribute): Check that
4756 loc_list->first->next is NULL instead of comparing ->first with ->last.
4757 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4758 to add_var_loc_to_decl.
4760 * dwarf2out.c (output_call_frame_info): For dw_cie_version
4761 >= 4 add also address size and segment size fields into CIE header.
4763 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4764 long as address size is the same as sizeof (void *) and
4766 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
4767 address size or segment size is unexpected, return DW_EH_PE_omit.
4768 (classify_object_over_fdes): If get_cie_encoding returned
4769 DW_EH_PE_omit, return -1.
4770 (init_object): If classify_object_over_fdes returned -1,
4771 pretend there were no FDEs at all.
4773 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
4775 * config/i386/i386.md (bswap<mode>2): Macroize expander from
4776 bswap{si,di}2 using SWI48 mode iterator.
4777 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4778 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
4779 set modrm attribute of bswap insn to 0 and remove length attribute.
4780 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4781 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
4782 set mode attribute to <MODE> and remove length attribute.
4784 2010-04-20 James E. Wilson <wilson@codesourcery.com>
4786 PR rtl-optimization/43520
4787 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4788 zero available registers.
4790 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4792 * builtins.c (fold_builtin_cproj): Fold more cases.
4794 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4796 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4797 (fold_builtin_1): Fold builtin cproj.
4798 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4799 Use ATTR_CONST_NOTHROW_LIST.
4801 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
4803 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4804 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
4805 ffsi2_no_cmove for !TARGET_CMOVE.
4806 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
4807 (ffssi2): Remove expander.
4808 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4810 (ctz<mode>2): Ditto from ctz{si,di}2.
4811 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4813 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4816 2010-04-20 Jakub Jelinek <jakub@redhat.com>
4818 * dwarf2out.c (AT_linkage_name): Define.
4819 (clone_as_declaration): Handle DW_AT_linkage_name.
4820 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4821 of DW_AT_MIPS_linkage_name.
4822 (move_linkage_attr): Likewise.
4823 (dwarf2out_finish): Likewise.
4825 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
4828 * fold-const.c (fold_comparison): New folding rule.
4830 2010-04-20 Anatoly Sokolov <aesok@post.ru>
4832 * double-int.h (double_int_setbit): Declare.
4833 * double-int.c (double_int_setbit): New function.
4834 * rtl.h (immed_double_int_const): Declare.
4835 * emit-rtl.c (immed_double_int_const): New function.
4836 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4837 and immed_double_int_const functions.
4838 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4839 expand_copysign_bit): (Ditto.).
4840 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4841 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4842 * dojump.c (prefer_and_bit_test): (Ditto.).
4843 * expr.c (convert_modes, reduce_to_bit_field_precision,
4844 const_vector_from_tree): (Ditto.).
4845 * expmed.c (mask_rtx, lshift_value): (Ditto.).
4847 2010-04-20 Jan Hubicka <jh@suse.cz>
4849 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4850 (dump_cgraph_node): Dump new flags.
4851 * cgraph.h (struct cgraph_node): Add flags
4852 reachable_from_other_partition and in_other_partition.
4853 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4854 other partition can not be removed.
4855 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4856 the other partition must be output; silence sanity checking on
4857 leaking functions bodies from other paritition.
4858 * lto-cgraph.c (reachable_from_other_partition_p): New function.
4859 (lto_output_node): Output new flags; do not sanity check that inline
4860 clones are output; drop lto_forced_extern_inline_p code; do not mock
4861 visibility flags at partition boundaries.
4862 (add_node_to): New function.
4863 (output_cgraph): Use it to sort functions so masters appear before
4865 (input_overwrite_node): Input new flags.
4866 * passes.c (ipa_write_summaries): Do not call
4867 lto_new_extern_inline_states.
4868 * lto-section-out.c (forced_extern_inline,
4869 lto_new_extern_inline_states lto_delete_extern_inline_states,
4870 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4871 * lto-streamer.h (lto_new_extern_inline_states,
4872 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4873 lto_forced_extern_inline_p): Kill.
4875 2010-04-20 Richard Guenther <rguenther@suse.de>
4877 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4878 from vars that can have pointers.
4879 (process_constraint): Dump useless constraints.
4881 2010-04-20 Richard Guenther <rguenther@suse.de>
4883 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4884 (dump_sa_points_to_info): Remove asserts.
4885 (init_base_vars): nothing_id isn't an escape point nor does it
4888 2010-04-20 Jakub Jelinek <jakub@redhat.com>
4890 * tree.h (TYPE_REF_IS_RVALUE): Define.
4891 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4892 should_move_die_to_comdat, prune_unused_types_walk): Handle
4893 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4894 (modified_type_die, gen_reference_type_die): Emit
4895 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4896 if TYPE_REF_IS_RVALUE and -gdwarf-4.
4898 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4901 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4902 calls for -fpic -m31 if they have been sibcall optimized.
4904 2010-04-19 James E. Wilson <wilson@codesourcery.com>
4906 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4907 ar.lc fixed and call-used.
4909 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4911 2010-04-19 Jan Hubicka <jh@suse.cz>
4913 * opts.c (decode_options): Disable whpr incompatible passes.
4914 * lto/lto.c (lto_1_to_1_map): Skip clones.
4915 (read_cgraph_and_symbols): Do not mark everything as needed.
4916 (do_whole_program_analysis): Do map only after optimizing;
4917 set proper cgraph_state; use passmanager.
4919 2010-04-19 DJ Delorie <dj@redhat.com>
4921 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4922 POINTER_PLUS_EXPR and fix them.
4924 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
4926 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4927 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4928 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4929 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4930 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4931 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4932 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4933 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4934 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4935 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4936 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4938 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
4940 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4941 (check_cond_move_block): Likewise.
4942 (cond_move_process_if_block): Likewise.
4943 (noce_find_if_block): Improve formatting.
4944 (find_if_header): Pass 0 to memset and tweak conditions.
4945 (cond_exec_find_if_block): Fix long lines and tweak conditions.
4947 2010-04-19 Jakub Jelinek <jakub@redhat.com>
4949 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4953 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4954 with non-local decl doesn't need chain.
4956 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
4958 * ira-color.c (allocno_reload_assign): Avoid accumulating
4959 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4961 2010-04-19 Martin Jambor <mjambor@suse.cz>
4963 * gimple.h (create_tmp_reg): Declare.
4964 * gimplify.c (create_tmp_reg): New function.
4965 (gimplify_return_expr): Use create_tmp_reg.
4966 (gimplify_omp_atomic): Likewise.
4967 (gimple_regimplify_operands): Likewise.
4968 * tree-dfa.c (make_rename_temp): Likewise.
4969 * tree-predcom.c (predcom_tmp_var): Likewise.
4970 (reassociate_to_the_same_stmt): Likewise.
4971 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
4972 (get_replaced_param_substitute): Likewise.
4973 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4974 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
4975 * tree-ssa-pre.c (get_representative_for): Likewise.
4976 (create_expression_by_pieces): Likewise.
4977 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
4978 (create_tailcall_accumulator): Likewise.
4980 2010-04-19 Martin Jambor <mjambor@suse.cz>
4982 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
4984 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
4986 2010-04-19 Richard Guenther <rguenther@suse.de>
4988 PR tree-optimization/43796
4989 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
4990 from SCEV in the lattice.
4991 (vrp_visit_phi_node): Dump change.
4993 2010-04-19 Richard Guenther <rguenther@suse.de>
4995 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
4996 * configure: Re-generated.
4998 2010-04-19 Richard Guenther <rguenther@suse.de>
5000 PR tree-optimization/43783
5001 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
5002 constant ARRAY_REF operands two and three if possible.
5004 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
5007 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
5009 2010-04-19 Jie Zhang <jie@codesourcery.com>
5012 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
5014 2010-04-19 Ira Rosen <irar@il.ibm.com>
5016 PR tree-optimization/37027
5017 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
5018 and macro to access it.
5019 (vectorizable_reduction): Add argument.
5020 (vect_get_slp_defs): Likewise.
5021 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
5022 statements for possible use in SLP.
5023 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
5024 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
5025 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
5027 (vectorizable_reduction): Likewise.
5028 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
5030 (vectorizable_type_demotion, vectorizable_type_promotion,
5031 vectorizable_store): Likewise.
5032 (vect_analyze_stmt): Update call to vectorizable_reduction.
5033 (vect_transform_stmt): Likewise.
5034 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
5035 (vect_build_slp_tree): Fix indentation. Check that there are no loads
5036 from different interleaving chains in same node.
5037 (vect_slp_rearrange_stmts): New function.
5038 (vect_supported_load_permutation_p): Allow load permutations for
5039 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
5040 inside SLP nodes if necessary.
5041 (vect_analyze_slp_instance): Handle reductions.
5042 (vect_analyze_slp): Try to build SLP instances originating from groups
5044 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
5045 (vect_get_constant_vectors): Create initial vectors for reductions
5046 according to reduction code. Add new argument.
5047 (vect_get_slp_defs): Add new argument, pass it to
5048 vect_get_constant_vectors.
5049 (vect_schedule_slp_instance): Remove SLP tree root statements.
5051 2010-04-19 Jakub Jelinek <jakub@redhat.com>
5053 * tree.h (ENUM_IS_SCOPED): Define.
5054 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
5055 for ENUM_IS_SCOPED enums.
5057 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
5059 * fold-const.c (fold_comparison): Use ssizetype.
5060 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
5061 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
5062 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
5063 * tree-object-size.c (compute_object_sizes): Use size_type_node.
5065 * tree.h (initialize_sizetypes): Remove parameter.
5066 (build_common_tree_nodes): Remove second parameter.
5067 * stor-layout.c (initialize_sizetypes): Remove parameter.
5068 Always create an unsigned type.
5069 (set_sizetype): Assert that the passed type is unsigned and simplify.
5070 * tree.c (build_common_tree_nodes): Remove second parameter.
5071 Adjust call to initialize_sizetypes.
5072 * c-decl.c (c_init_decl_processing): Remove second argument in call to
5073 build_common_tree_nodes.
5075 2010-04-18 Matthias Klose <doko@ubuntu.com>
5077 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
5079 2010-04-18 Ira Rosen <irar@il.ibm.com>
5081 PR tree-optimization/43771
5082 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
5083 load permutation doesn't have gaps.
5085 2010-04-18 Jan Hubicka <jh@suse.cz>
5087 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
5088 (sse_prologue_save_insn expander): Use new pattern.
5089 (sse_prologue_save_insn1): New pattern and splitter.
5090 (sse_prologue_save_insn): Update to deal also with 64bit aligned
5092 * i386.c (setup_incoming_varargs_64): Do not compute jump
5094 (ix86_gimplify_va_arg): Update alignment needed.
5095 (ix86_local_alignment): Do not align all local arrays to 128bit.
5097 2010-04-17 Jan Hubicka <jh@suse.cz>
5099 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
5101 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
5103 * arm.md (negdi2): Remove redundant code to force values into a
5106 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
5108 * arm/bpabi.S: Add EABI alignment attributes to objects.
5109 * arm/bpabi-v6m.S: Likewise.
5110 * arm/crti.asm: Likewise.
5111 * arm/crtn.asm: Likewise.
5112 * arm/lib1funcs.asm: Likewise.
5113 * arm/libunwind.S: Likewise.
5115 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
5117 * arm-protos.h (tune_params): New structure.
5118 * arm.c (current_tune): New variable.
5119 (arm_constant_limit): Delete.
5120 (struct processors): Add pointer to the tune parameters.
5121 (arm_slowmul_tune): New tuning option.
5122 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
5123 (all_cores): Adjust to pick up the tuning model.
5124 (arm_constant_limit): New function.
5125 (arm_override_options): Select the appropriate tuning model. Delete
5126 initialization of arm_const_limit.
5127 (arm_split_constant): Use the new constant-limit model.
5128 (arm_rtx_costs): Pick up the current tuning model.
5129 * arm.md (is_strongarm, is_xscale): Delete.
5130 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
5131 for Xscale variant architectures.
5132 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
5134 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5136 * config/arm/arm.c (arm_gen_constant): Remove unused variable
5138 (arm_rtx_costs_1): Remove unused variable extra_cost.
5139 (arm_unwind_emit_set): Use variable offset.
5140 (thumb1_output_casesi): Remove unused variable flags.
5142 2010-04-16 Jeff Law <law@redhat.com>
5144 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
5145 needing assignment rather than doing a two-phase assignment. Remove
5146 unused variable 'm'.
5148 2010-04-16 Jakub Jelinek <jakub@redhat.com>
5151 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
5153 2010-04-16 Doug Kwan <dougkwan@google.com>
5155 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
5156 (next_operand_entry_id): New static variable.
5157 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
5158 (add_to_ops_vec): Assigned unique ID to operand entry.
5159 (struct oecount_s): New field ID.
5160 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
5161 (undistribute_ops_list): Assign unique IDs to oecounts.
5162 (init_reassoc): reset next_operand_entry_id.
5164 2010-04-16 Doug Kwan <dougkwan@google.com>
5166 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
5167 missing left parenthesis.
5169 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
5171 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
5172 *btdi_rex64 using SWI48 mode iterator.
5173 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
5174 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
5175 *jcc_btdi_mask_rex64.
5177 2010-04-16 Anatoly Sokolov <aesok@post.ru>
5179 * double-int.h (tree_to_double_int): Convert to macro.
5180 * double-int.c (tree_to_double_int): Remove.
5182 2010-04-16 Jakub Jelinek <jakub@redhat.com>
5185 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
5186 with want_address 2 and in case a single element list might be
5187 possible, call it again with want_address 0.
5189 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
5191 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
5192 case 'W' print operands for HI mode.
5193 * config/h8300/h8300.h (Y0, Y2) : New constraints.
5194 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
5195 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
5196 * config/h8300/predicate.md (bit_register_indirect_operand): New.
5198 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
5200 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
5201 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
5202 #xx:3 and #xx:4 mode.
5204 * config/h8300/h8300.md (inverted load with HImode dest): Add
5205 support for H8300SX.
5207 * config/h8300/predicate.md (bit_operand): Allow immediate values that
5208 satisfy 'U' constraint.
5210 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5212 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
5213 * configure: Regenerate.
5214 * config.in: Regenerate.
5215 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
5218 2010-04-16 Richard Guenther <rguenther@suse.de>
5220 * tree.h (struct tree_decl_minimal): Move pt_uid ...
5221 (struct tree_decl_common): ... here.
5222 (DECL_PT_UID): Adjust.
5223 (SET_DECL_PT_UID): Likewise.
5224 (DECL_PT_UID_SET_P): Likewise.
5226 2010-04-16 Richard Guenther <rguenther@suse.de>
5228 PR tree-optimization/43572
5229 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
5230 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
5231 * tree-flow.h (is_call_clobbered): Remove.
5232 * tree-flow-inline.h (is_call_clobbered): Likewise.
5233 * tree-dfa.c (dump_variable): Do not dump call clobber state.
5234 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5235 (execute_return_slot_opt): Adjust.
5236 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5237 check for call clobbered vars here.
5238 (find_tail_calls): Move tailcall verification to the
5241 2010-04-16 Diego Novillo <dnovillo@google.com>
5243 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5245 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
5248 * config/arm/arm.md (cbranchqi4): New pattern.
5249 * config/arm/predicates.md (const0_operand,
5250 cbranchqi4_comparison_operator): New predicates.
5252 2010-04-16 Richard Guenther <rguenther@suse.de>
5254 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5255 (dump_gimple_stmt): Likewise.
5257 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
5259 * recog.h (struct recog_data): New field is_operator.
5260 (struct insn_operand_data): New field is_operator.
5261 * recog.c (extract_insn): Set recog_data.is_operator.
5262 * genoutput.c (output_operand_data): Emit code to set the
5264 * reload.c (find_reloads): Use it rather than testing for an
5265 empty constraint string.
5268 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5269 If the previous insn is a cbranchsi4_insn with the same arguments,
5270 omit the compare instruction.
5272 * config/arm/arm.md (addsi3_cbranch): If destination is a high
5273 register, inputs must be low registers and we need a low register
5274 scratch. Handle alternative 2 like alternative 3.
5276 2010-04-16 Jakub Jelinek <jakub@redhat.com>
5278 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5279 don't call get_addr on both. If one expression is a VALUE and
5280 the other a REG, check VALUE's locs if the REG isn't among them.
5282 2010-04-16 Christian Bruel <christian.bruel@st.com>
5284 * config/sh/sh.h (sh_frame_pointer_required): New function.
5285 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5286 (flag_omit_frame_pointer) Set.
5287 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5288 (rounded_frame_size): Adjust size with outgoing_args_size.
5289 (sh_set_return_address): Must return from stack pointer.
5290 * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5291 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5292 (ACCUMULATE_OUTGOING_ARGS): Define.
5293 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5294 * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5296 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
5299 * config/sh/sh.c (sh_legitimize_reload_address): Use
5300 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5301 Remove a unneeded check for offset_base.
5303 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
5305 * configure: Regenerated.
5307 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5309 * config/s390/s390.c (s390_call_save_register_used): Switch back
5310 to HARD_REGNO_NREGS.
5312 2010-04-15 Richard Guenther <rguenther@suse.de>
5314 * alias.c (alias_set_subset_of): Handle alias-set zero
5317 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
5318 Julian Brown <julian@codesourcery.com>
5320 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5321 alternatives according to use of high and low regs.
5322 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5323 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5324 optimizing for size on Thumb-2.
5326 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
5328 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5330 2010-04-15 Richard Guenther <rguenther@suse.de>
5332 * tree-ssa-structalias.c (struct variable_info): Add
5334 (new_var_info): Initialize it.
5335 (dump_constraints): Support printing last added constraints.
5336 (debug_constraints): Adjust.
5337 (dump_constraint_graph): Likewise.
5338 (make_heapvar_for): Check for NULL cfun.
5339 (get_function_part_constraint): New function.
5340 (get_fi_for_callee): Likewise.
5341 (find_func_aliases): Properly implement IPA PTA constraints.
5342 (process_ipa_clobber): New function.
5343 (find_func_clobbers): Likewise.
5344 (insert_into_field_list_sorted): Remove.
5345 (create_function_info_for): Properly allocate vars for IPA mode.
5346 Do not use insert_into_field_list_sorted.
5347 (create_variable_info_for): Properly generate constraints for
5348 global vars in IPA mode.
5349 (dump_solution_for_var): Always dump the solution.
5350 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5351 (find_what_var_points_to): Adjust.
5352 (pt_solution_set): Change.
5353 (pt_solution_ior_into): New function.
5354 (pt_solution_empty_p): Export.
5355 (pt_solution_includes_global): Adjust.
5356 (pt_solution_includes_1): Likewise.
5357 (pt_solutions_intersect_1): Likewise.
5358 (dump_sa_points_to_info): Check some invariants.
5359 (solve_constraints): Move constraint dumping ...
5360 (compute_points_to_sets): ... here.
5361 (ipa_pta_execute): ... and here.
5362 (compute_may_aliases): Do not re-compute points-to info
5363 locally if IPA info is available.
5364 (ipa_escaped_pt): New global var.
5365 (ipa_pta_execute): Properly implement IPA PTA.
5366 * tree-into-ssa.c (dump_decl_set): Support dumping
5367 decls not in referenced-vars.
5368 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5369 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5370 (dump_points_to_solution): Likewise.
5371 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5372 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5373 (remap_gimple_stmt): Reset call clobber/use information if necessary.
5374 (copy_decl_to_var): Copy DECL_PT_UID.
5375 (copy_result_decl_to_var): Likewise.
5376 * tree.c (make_node_stat): Initialize DECL_PT_UID.
5377 (copy_node_stat): Copy it.
5378 * tree.h (DECL_PT_UID): New macro.
5379 (SET_DECL_PT_UID): Likewise.
5380 (DECL_PT_UID_SET_P): Likewise.
5381 (struct tree_decl_minimal): Add pt_uid member.
5382 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5383 (pt_solution_empty_p): Declare.
5384 (pt_solution_set): Adjust.
5385 (ipa_escaped_pt): Declare.
5386 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5387 * gimple-pretty-print.c (pp_points_to_solution): New function.
5388 (dump_gimple_call): Dump call clobber/use information.
5389 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5390 * tree-pass.h (TDF_ALIAS): New dump option.
5391 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5392 * doc/invoke.texi (-fipa-pta): Update documentation.
5394 2010-04-15 Richard Guenther <rguenther@suse.de>
5396 * Makefile.in (OBJS-common): Add gimple-fold.o.
5397 (gimple-fold.o): New rule.
5398 * tree.h (maybe_fold_offset_to_reference,
5399 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5401 * gimple.h: ... here.
5402 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5403 may_propagate_address_into_dereference): Move prototypes ...
5404 * gimple.h: ... here.
5405 * tree-ssa-ccp.c (get_symbol_constant_value,
5406 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5407 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5408 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5409 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5410 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5411 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5412 gimplify_and_update_call_from_tree): Move ...
5413 * gimple-fold.c: ... here. New file.
5414 (ccp_fold_builtin): Rename to ...
5415 (gimple_fold_builtin): ... this.
5416 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5418 2010-04-15 Richard Guenther <rguenther@suse.de>
5420 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5421 fit_double_type, force_fit_type_double, add_double_with_sign,
5422 neg_double, mul_double_with_sign, lshift_double, rshift_double,
5423 lrotate_double, rrotate_double, div_and_round_double): Move ...
5424 * double-int.c: ... here.
5425 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5426 add_double, neg_double, mul_double_with_sign, mul_double,
5427 lshift_double, rshift_double, lrotate_double, rrotate_double,
5428 div_and_round_double): Move prototypes ...
5429 * double-int.h: ... here.
5431 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
5434 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
5435 matching constraints to ensure inputs match the output.
5437 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
5440 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5441 in an input-only operand.
5443 2010-04-15 Anatoly Sokolov <aesok@post.ru>
5445 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5446 (double_int_not, double_int_lshift, double_int_rshift): Declare.
5447 (double_int_negative_p): Convert to static inline function.
5448 * double-int.c (double_int_lshift, double_int_lshift): New functions.
5449 (double_int_negative_p): Remove.
5450 * tree.h (lshift_double, rshift_double):
5451 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5452 * fold-const.c (fold_convert_const_int_from_real,
5453 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5454 (lshift_double): Change type of arith argument to bool.
5455 (rshift_double): Change type of arith argument to bool. Correct
5457 * expmed.c (mask_rtx, lshift_value): (Ditto.).
5459 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
5462 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5463 at the start and end of the then/else blocks, and omit them from the
5465 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
5466 argument; all callers changed. Pass zero to old_insns_match_p instead.
5467 (flow_find_head_matching_sequence): New function.
5468 (old_insns_match_p): Check REG_EH_REGION notes for calls.
5469 * basic-block.h (flow_find_cross_jump,
5470 flow_find_head_matching_sequence): Declare functions.
5472 2010-04-14 Jason Merrill <jason@redhat.com>
5475 * c-common.c (attribute_takes_identifier_p): New fn.
5476 * c-common.h: Declare it.
5478 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
5480 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5482 (*udivmod<mode>4): Ditto.
5484 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
5486 * config/i386/i386.md (maxmin_int): Rename code attribute from
5487 maxminiprefix and update all users.
5488 (maxmin_float): Ditto from maxminfprefix.
5489 (logic): Ditto from logicprefix.
5490 (absneg_mnemonic): Ditto from absnegprefix.
5491 * config/i386/mmx.md: Update all users of maxminiprefix,
5492 maxminfprefix and logicprefix for rename.
5493 * config/i386/sse.md: Ditto.
5494 * config/i386/sync.md (sync_<code><mode>): Update for
5497 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
5500 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5501 warnings converted to errors.
5503 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
5505 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5506 used insn_type variable.
5507 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5508 to avoid set-but-not-used warning.
5510 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
5512 * df-core.c (df_ref_debug): Change format string placeholder
5514 * dwarf2asm.c (dw2_asm_output_data_raw,
5515 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5516 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5517 * dwarf2out.c (output_cfi, output_cfi_directive,
5518 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5519 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5521 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5522 * print-rtl.c (print_rtx): Ditto.
5524 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
5527 * builtins.c (expand_builtin_pow_root): New function to expand pow
5528 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5529 series of sqrt and cbrt calls under -ffast-math.
5530 (expand_builtin_pow): Call it.
5532 2010-04-14 Michael Matz <matz@suse.de>
5534 PR tree-optimization/42963
5535 * tree-cfg.c (touched_switch_bbs): New static variable.
5536 (group_case_labels_stmt): New function broken out from ...
5537 (group_case_labels): ... here, use the above.
5538 (start_recording_case_labels): Allocate touched_switch_bbs.
5539 (end_recording_case_labels): Deallocate it, call
5540 group_case_labels_stmt.
5541 (gimple_redirect_edge_and_branch): Remember index of affected BB.
5543 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
5545 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5548 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
5550 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5552 2010-04-13 Jan Hubicka <jh@suse.cz>
5554 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5555 of optimized out static functions.
5556 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5557 cost computation. Also sanity check for overflows.
5558 (update_caller_keys): Update cgraph_edge_badness call; properly
5559 update fibheap and sanity check that it is up to date.
5560 (add_new_edges_to_heap): Update cgraph_edge_badness.
5561 (cgraph_decide_inlining_of_small_function): Likewise;
5562 add sanity checking that badness in heap is up to date;
5563 improve dumping of reason; Update badness of calls to the
5564 offline copy of function currently inlined; dump badness
5565 of functions not inlined because of unit growth limits.
5567 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
5570 * c-common.c (pointer_int_sum): Disregard overflow that occured only
5571 because of sign-extension change when converting to sizetype here...
5572 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5574 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5575 the folding to constants. Remove redundant final conversion.
5576 (fold_binary) <associate>: Do not associate if the re-association of
5577 constants alone overflows.
5578 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5579 to the end of the list.
5580 (multiple_of_p) <COND_EXPR>: New case.
5582 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
5584 * opt-functions.awk (opt_sanitized_name): New.
5586 * optc-gen.awk: Use it
5587 * opth-gen.awk: Use it.
5589 2010-04-13 Martin Jambor <mjambor@suse.cz>
5591 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5592 (sra_modify_assign): Delete stmts loading dead data even if racc has no
5593 children. Call replace_uses_with_default_def_ssa_name to handle
5596 2010-04-13 Michael Matz <matz@suse.de>
5599 * builtins.c (expand_builtin_interclass_mathfn): Also create
5600 a register if the predicate doesn't match.
5602 2010-04-13 Diego Novillo <dnovillo@google.com>
5604 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5605 * c-pch.c: Include timevar.h.
5606 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5607 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5608 * ggc-common.c: Include timevar.h.
5609 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5610 * timevar.def (TV_PCH_SAVE): Define.
5611 (TV_PCH_CPP_SAVE): Define.
5612 (TV_PCH_PTR_REALLOC): Define.
5613 (TV_PCH_PTR_SORT): Define.
5614 (TV_PCH_RESTORE): Define.
5615 (TV_PCH_CPP_RESTORE): Define.
5617 2010-04-13 Michael Matz <matz@suse.de>
5619 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5621 (can_reassociate_p): New function.
5622 (break_up_subtract_bb, reassociate_bb): Use it.
5624 2010-04-13 Richard Guenther <rguenther@suse.de>
5627 * builtins.c (c_readstr): Fix assert.
5629 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
5631 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5632 when generating cltd insn.
5634 (*ashl<mode>3_1): Remove special handling for register operand 2.
5635 (*ashlsi3_1_zext): Ditto.
5636 (*ashlhi3_1): Ditto.
5637 (*ashlhi3_1_lea): Ditto.
5638 (*ashlqi3_1): Ditto.
5639 (*ashlqi3_1_lea): Ditto.
5640 (*<shiftrt_insn><mode>3_1): Ditto.
5641 (*<shiftrt_insn>si3_1_zext): Ditto.
5642 (*<shiftrt_insn>qi3_1_slp): Ditto.
5643 (*<rotate_insn><mode>3_1): Ditto.
5644 (*<rotate_insn>si3_1_zext): Ditto.
5645 (*<rotate_insn>qi3_1_slp): Ditto.
5647 2010-04-13 Richard Guenther <rguenther@suse.de>
5649 * tree-ssa-structalias.c (callused_id): Remove.
5650 (call_stmt_vars): New.
5651 (get_call_vi): Likewise.
5652 (lookup_call_use_vi): Likewise.
5653 (lookup_call_clobber_vi): Likewise.
5654 (get_call_use_vi): Likewise.
5655 (get_call_clobber_vi): Likewise.
5656 (make_transitive_closure_constraints): Likewise.
5657 (handle_const_call): Adjust to do per-call call-used handling.
5658 (handle_pure_call): Likewise.
5659 (find_what_var_points_to): Remove general callused handling.
5660 (init_base_vars): Likewise.
5661 (init_alias_vars): Initialize call_stmt_vars.
5662 (compute_points_to_sets): Process call-used and call-clobbered
5663 vars for call statements.
5664 (delete_points_to_sets): Free call_stmt_vars.
5666 2010-04-13 Richard Guenther <rguenther@suse.de>
5668 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5669 Only add RW dependence for dependence distance zero.
5670 Adjust maximal vectorization factor according to dependences.
5671 Move alignment handling ...
5672 (vect_find_same_alignment_drs): ... here. New function.
5673 (vect_analyze_data_ref_dependences): Adjust.
5674 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5675 (vect_analyze_data_refs): Adjust minimal vectorization factor
5676 according to data references.
5677 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5678 dependences before determining the vectorization factor.
5679 Analyze alignment after determining the vectorization factor.
5680 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5681 dependences before alignment.
5682 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5684 (vect_analyze_data_refs): Likewise.
5685 (MAX_VECTORIZATION_FACTOR): New define.
5687 2010-04-13 Duncan Sands <baldrick@free.fr>
5689 * except.h (lang_eh_type_covers): Remove.
5690 * except.c (lang_eh_type_covers): Likewise.
5692 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5693 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
5695 * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5696 * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5697 UNITS_PER_LONG where it is ABI relevant.
5698 (s390_return_addr_rtx): Likewise.
5699 (s390_back_chain_rtx): Likewise.
5700 (s390_frame_area): Likewise.
5701 (s390_frame_info): Likewise.
5702 (s390_initial_elimination_offset): Likewise.
5703 (save_gprs): Likewise.
5704 (s390_emit_prologue): Likewise.
5705 (s390_emit_epilogue): Likewise.
5706 (s390_function_arg_advance): Likewise.
5707 (s390_function_arg): Likewise.
5708 (s390_va_start): Likewise.
5709 (s390_gimplify_va_arg): Likewise.
5710 (s390_function_profiler): Likewise.
5711 (s390_optimize_prologue): Likewise.
5712 (s390_rtx_costs): Likewise.
5713 (s390_secondary_reload): Likewise.
5714 (s390_promote_function_mode): Likewise.
5715 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5716 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5717 registers available.
5718 (s390_unwind_word_mode): New function.
5719 (s390_function_value): Split 64 bit values into register pair if
5720 used as return value.
5721 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5722 function call parameters. Handle parallels.
5723 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5724 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5725 (DWARF_CIE_DATA_ALIGNMENT): New macro.
5726 (s390_expand_setmem): Remove unused variable src_addr.
5727 * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5728 deal with 64 bit registers.
5729 * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5730 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5731 (UNITS_PER_LONG): New macro.
5732 * libjava/include/s390-signal.h: Define extended ucontext
5733 structure containing the upper halfs of the 64 bit registers.
5735 2010-04-13 Simon Baldwin <simonb@google.com>
5737 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5739 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
5741 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5742 rvalue on the RHS if the LHS is of a non-renamable type.
5743 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5745 2010-04-13 Matthias Klose <doko@ubuntu.com>
5747 * gcc.c (cc1_options): Handle -iplugindir before processing
5748 the cc1 spec. Only add -iplugindir once.
5749 (cpp_unique_options): Add -iplugindir option if -fplugin* options
5751 * common.opt (iplugindir): Remove `Separate' property, initialize.
5752 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5754 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5755 (distclean): Remove plugin dir.
5756 * doc/invoke.texi: Document -iplugindir.
5758 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
5760 * doc/plugins.texi (Loading Plugins): Document short
5761 -fplugin=foo option.
5762 (Plugin API): Mention default_plugin_dir_name function.
5764 * gcc.c (find_file_spec_function): Add new declaration.
5765 (static_spec_func): Use it for "find-file".
5766 (find_file_spec_function): Add new function.
5767 (cc1_options): Add -iplugindir option if -fplugin* options found.
5769 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5771 * plugin.c (add_new_plugin): Updated comment, and handle short
5773 (default_plugin_dir_name): Added new function.
5775 * common.opt (iplugindir): New option to set the plugin directory.
5777 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
5779 * config/i386/i386.md (any_rotate): New code iterator.
5780 (rotate_insn): New code attribute.
5782 (SWIM124): New mode iterator.
5783 (<rotate_insn>ti3): New expander.
5784 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5785 any_rotate code iterator.
5786 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5787 using any_rotate code iterator and SWIM124 mode iterator.
5788 (ix86_rotlti3): New insn_and_split pattern.
5789 (ix86_rotrti3): Ditto.
5790 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5791 ix86_rotl{di,ti}3 patterns.
5792 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5793 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5794 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5795 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5796 code iterator and SWI mode iterator.
5797 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5798 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5800 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5801 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5802 (bswap rotatert splitter): Add splitter.
5803 (bswap splitter): Macroize splitter using any_rotate code iterator.
5804 Add insn predicate to split only for TARGET_USE_XCHGB or when
5805 optimizing function for size.
5807 2010-04-12 Steve Ellcey <sje@cup.hp.com>
5809 * config/pa/pa.c (emit_move_sequence): Remove use of
5810 deleted variable flag_argument_noalias.
5812 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5814 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5816 Add to unsupported targets list.
5817 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5818 sparc*-sun-solaris2.[567]* from target lists.
5819 * configure: Regenerate.
5820 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5822 Remove Solaris 7 patch references.
5823 (Specific, sparc-sun-solaris2.7): Removed.
5824 (sparc-sun-solaris2*): Update Solaris 7 example.
5825 (sparc64-*-solaris2*): Likewise.
5827 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5829 * config.build (alpha*-dec-osf4*): Remove.
5830 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5831 of obsolete configurations.
5832 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5834 * config/alpha/t-osf4: Renamed to ...
5835 * config/alpha/t-osf5: ... this.
5836 * config/alpha/osf.h: Renamed to ...
5837 * config/alpha/osf5.h: ... this.
5838 Merged old osf5.h contents.
5840 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5841 (EXTRA_SPECS): Removed.
5842 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5843 reflect removal of Tru64 UNIX V4.0/V5.0 support.
5846 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5848 * doc/contrib.texi (Contributors, Rainer Orth): Update.
5850 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
5853 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5854 __thiscall convention.
5856 2010-04-12 Steve Ellcey <sje@cup.hp.com>
5858 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5860 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5862 2010-04-12 Steve Ellcey <sje@cup.hp.com>
5864 * function.c (assign_parms_initialize_all): Add unused attribute
5867 2010-04-12 Richard Guenther <rguenther@suse.de>
5869 * gsstruct.def (GSS_CALL): New.
5870 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5871 * gimple.h: Include tree-ssa-alias.h.
5872 (struct gimple_statement_call): New.
5873 (union gimple_statement_struct_d): Add gimple_call member.
5874 (gimple_call_reset_alias_info): Declare.
5875 (gimple_call_use_set): New function.
5876 (gimple_call_clobber_set): Likewise.
5877 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5878 * gimple.c (gimple_call_reset_alias_info): New function.
5879 (gimple_build_call_1): Call it.
5880 * lto-streamer-in.c (input_gimple_stmt): Likewise.
5881 * tree-inline.c (remap_gimple_stmt): Likewise.
5882 (expand_call_inline): Remove callused handling.
5883 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5884 * tree-dfa.c (dump_variable): Likewise.
5885 * tree-parloops.c (parallelize_loops): Likewise.
5886 * tree-ssa.c (init_tree_ssa): Likewise.
5887 (delete_tree_ssa): Likewise.
5888 * tree-flow-inline.h (is_call_used): Remove.
5889 * tree-flow.h (struct gimple_df): Remove callused member.
5890 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5891 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5892 (ref_maybe_used_by_call_p_1): Simplify.
5893 (call_may_clobber_ref_p_1): Likewise.
5894 * tree-ssa-structalias.c (compute_points_to_sets): Set
5895 the call stmt used and clobbered sets.
5896 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5897 (find_tail_calls): Verify the tail call.
5899 2010-04-12 Richard Guenther <rguenther@suse.de>
5901 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5902 single-iteration always-inline inlining.
5903 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5904 (cgraph_decide_inlining): Do not handle always-inline specially.
5905 (try_inline): Remove always-inline cycle detection special case.
5906 Do not recurse on always-inlines.
5907 (cgraph_early_inlining): Do not iterate if not optimizing.
5908 (cgraph_gate_early_inlining): remove.
5909 (pass_early_inline): Run unconditionally.
5910 (gate_cgraph_decide_inlining): New function.
5911 (pass_ipa_inline): Use it. Do not run the IPA inliner if
5912 not inlining or optimizing.
5913 (cgraph_decide_inlining_of_small_functions): Also consider
5914 always-inline functions.
5915 (cgraph_default_inline_p): Return true for nodes which should
5916 disregard inline limits.
5917 (estimate_function_body_sizes): Assume zero size and time for
5918 nodes which are marked as disregarding inline limits.
5919 (cgraph_decide_recursive_inlining): Do not perform recursive
5920 inlining on always-inline nodes.
5922 2010-04-12 Jakub Jelinek <jakub@redhat.com>
5925 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5926 for exprs satisfying handled_component_p.
5928 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
5930 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5931 non-constant aggregate elements.
5933 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5934 is a real initialization.
5936 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
5939 * c-decl.c (start_function): Move forward check for nested function.
5941 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
5943 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5944 * config/sh/sh.c: Include reload.h.
5945 (sh_legitimize_reload_address): New.
5946 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5947 sh_legitimize_reload_address.
5949 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
5951 * config/sh/sh.md (*movqi_pop): New insn pattern.
5952 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5954 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
5956 * config/i386/i386.md (any_shiftrt): New code iterator.
5957 (shiftrt_insn): New code attribute.
5959 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5960 using any_shiftrt code iterator.
5961 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5962 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5963 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5964 pattern from corresponding peephole2 patterns.
5965 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5966 using any_shiftrt code iterator.
5967 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5968 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5969 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5970 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
5971 *{ashr,lshr}<mode>3_cmp_zext.
5972 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
5974 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
5976 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
5978 (*lshr<mode>3_cconly): Ditto.
5980 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
5982 * config/i386/i386.md (lshr<mode>3): Macroize expander from
5983 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5984 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
5985 pattern from *lshr{di,ti}3_1 and corresponding splitters using
5987 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5988 from corresponding peephole2 patterns.
5989 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
5990 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
5991 and *lshrdi3_1_rex64 using SWI mode iterator.
5992 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
5993 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
5994 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
5995 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
5996 and *lshrdi3_cmp_rex64 using SWI mode iterator.
5997 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
5998 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
5999 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
6000 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
6003 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
6005 * config/i386/i386.md (ashr<mode>3): Macroize expander from
6006 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
6007 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
6008 pattern from *ashr{di,ti}3_1 and corresponding splitters using
6010 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
6011 from corresponding peephole2 patterns.
6012 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
6013 (ashrsi3_cvt): Rename from ashrsi3_31.
6014 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
6015 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
6016 and x86_64_shift_adj_3 using SWI48 mode iterator.
6017 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
6018 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
6019 and *ashrdi3_1_rex64 using SWI mode iterator.
6020 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
6021 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
6022 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
6023 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
6024 and *ashrdi3_cmp_rex64 using SWI mode iterator.
6025 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
6026 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
6027 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
6028 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
6030 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
6031 * config/i386/i386.c (ix86_split_ashr): Update for renamed
6032 x86_shift<mode>_adj_3 expanders.
6034 2010-04-10 Wei Guozhi <carrot@google.com>
6037 * config/arm/arm.c (arm_pic_static_addr): New function.
6038 (legitimize_pic_address): Call arm_pic_static_addr when it detects
6040 (arm_output_addr_const_extra): Output expression for new pattern.
6041 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
6043 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
6045 * ira-costs.c (record_reg_classes): Ignore alternatives that are
6048 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
6049 * web.c: Include "insn-config.h" and "recog.h".
6050 (union_match_dups): New function.
6051 (web_main): Call it.
6052 (union_defs): Don't try to recognize match_dups.
6054 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
6055 if doing so would replace the entire pattern.
6057 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
6061 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
6062 and splitter pattern. Change splitter operand 1 predicate to
6065 2010-04-09 Martin Jambor <mjambor@suse.cz>
6067 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
6068 lattices are addresses of CONST_DECLs with the same initial value.
6069 (ipcp_print_all_lattices): Print values of CONST_DECLs.
6070 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
6072 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
6073 Bernd Schmidt <bernds@codesourcery.com>
6075 * loop-invariant.c (replace_uses): New static function.
6076 (move_invariant_reg): Use it to ensure we can replace the uses.
6078 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
6080 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
6082 (picochip_override_options): Enable section anchors only above -O1.
6083 (picochip_reorg): Fixed a couple of build warnings.
6085 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6087 * configure.ac (plugin -rdynamic test): Log result.
6088 * configure: Regenerate.
6089 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
6090 (RDYNAMIC_SPEC): Define.
6091 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
6093 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6095 * configure.ac: Determine Sun ld version numbers.
6096 (comdat_group): Restrict GNU ld version checks to gld.
6097 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
6098 (enable_comdat): Support --enable-comdat.
6099 * configure: Regenerate.
6100 * doc/install.texi (Configuration): Document --enable-comdat.
6102 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6104 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
6105 * config/sol2-gld.h: ... here.
6106 * config.gcc (sparc*-*-solaris2*): Reflect this.
6107 (i[34567]86-*-solaris2*): Use it.
6109 2010-04-09 Steve Ellcey <sje@cup.hp.com>
6111 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
6113 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
6115 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
6118 * diagnostic.c (diagnostic_initialize): Initialize
6119 some_warnings_are_errors.
6120 (diagnostic_finish): New.
6121 (diagnostic_action_after_output): Call it before exiting.
6122 (diagnostic_report_diagnostic): Do not print message here. Set
6123 some_warnings_are_errors.
6124 * diagnostic.h (diagnostic_context): Delete
6125 issue_warnings_are_errors_message. Add some_warnings_are_errors.
6126 (diagnostic_finish): Declare.
6127 * toplev.c (toplev_main): Call it before exit.
6129 2010-04-09 Jason Merrill <jason@redhat.com>
6132 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
6133 for incomplete type.
6136 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
6137 based on a warning flag.
6139 2010-04-09 Richard Guenther <rguenther@suse.de>
6141 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
6143 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
6146 * varasm.c (default_assemble_visibility): Wrap vars that are
6147 set, but unused, by targets without GAS.
6148 * config/rs6000/rs6000.c (paired_emit_vector_compare):
6149 Remove set, but unused, vars.
6150 (rs6000_legitimize_tls_address): Likewise.
6151 (altivec_expand_dst_builtin): Likewise.
6152 * config/darwin.c (machopic_classify_symbol): Likewise.
6153 (machopic_indirection_name): Likewise.
6155 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
6157 * config/i386/i386.md (DWI): New mode iterator.
6158 (S): New mode attribute.
6159 (shift_operand): Ditto.
6160 (shift_immediate_operand): Ditto.
6161 (ashl_input_operand): Ditto.
6162 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
6163 using SDWIM mode iterator.
6164 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
6165 pattern from *ashl{di,ti}3_1 and corresponding splitters using
6167 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
6168 from corresponding peephole2 patterns.
6169 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
6170 and x86_64_shift_adj_1 using SWI48 mode iterator.
6171 (x86_shift<mode>_adj_2): Ditto.
6172 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
6173 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
6174 using SWI48 mode iterator.
6175 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
6176 *ashldi3_cmp_rex64 using SWI mode iterator.
6177 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
6178 *ashldi3_cconly_rex64 using SWI mode iterator.
6179 * config/i386/i386.c (ix86_split_ashl): Update for renamed
6180 x86_shift<mode>_adj_{1,2}.
6181 (ix86_split_ashr): Ditto.
6182 (ix86_split_lshr): Ditto.
6184 2010-04-09 Richard Guenther <rguenther@suse.de>
6186 * target.h (builtin_conversion): Pass in input and output types.
6187 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
6188 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
6189 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
6190 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
6192 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
6194 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
6196 2010-04-09 Richard Guenther <rguenther@suse.de>
6199 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
6201 2010-04-09 Richard Guenther <rguenther@suse.de>
6203 * tree-vectorizer.h (struct _stmt_vec_info): Document
6204 that vectype is the type of the LHS.
6205 (supportable_widening_operation, supportable_narrowing_operation):
6206 Get both input and output vector types as arguments.
6207 (vect_is_simple_use_1): Declare.
6208 (get_same_sized_vectype): Likewise.
6209 * tree-vect-loop.c (vect_determine_vectorization_factor):
6210 Set STMT_VINFO_VECTYPE to the vector type of the def.
6211 (vectorizable_reduction): Adjust.
6212 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
6213 Adjust. Specify the output vector type.
6214 (vect_pattern_recog_1): Adjust.
6215 * tree-vect-stmts.c (get_same_sized_vectype): New function.
6216 (vectorizable_call): Adjust.
6217 (vectorizable_conversion): Likewise.
6218 (vectorizable_operation): Likewise.
6219 (vectorizable_type_demotion): Likewise.
6220 (vectorizable_type_promotion): Likewise.
6221 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
6223 (vect_is_simple_use_1): New function.
6224 (supportable_widening_operation): Get both input and output
6226 (supportable_narrowing_operation): Likewise.
6227 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
6229 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
6231 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
6232 __thiscall and _thiscall as predefined macros.
6233 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
6234 thiscall attribute handling.
6235 (ix86_comp_type_attributes): Likewise.
6236 (ix86_function_regparm): Likewise.
6237 (ix86_return_pops_args): Likewise.
6238 (init_cumulative_args): Likewise.
6239 (find_drap_reg): Likewise.
6240 (ix86_static_chain): Likewise.
6241 (x86_this_parameter): Likewise.
6242 (x86_output_mi_thunk): Likewise.
6243 (ix86_attribute_table): Add description for thiscall attribute.
6244 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6245 * doc/extend.texi: Add documentation for thiscall.
6247 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
6250 * c.opt (Wint-to-pointer-cast): Available in C++.
6251 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6253 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
6255 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6256 * calls.c (expand_call): Pass the function type to aggregate_value_p.
6257 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6258 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
6259 function type instead. Reorder and simplify checks.
6261 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6263 2010-04-08 Jing Yu <jingyu@google.com>
6264 Zdenek Dvorak <ook@ucw.cz>
6266 PR tree-optimization/42720
6267 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6268 loop unswitch conditions here from ...
6269 (tree_unswitch_single_loop): ... here.
6271 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
6273 * tree-if-conv.c: Fix comments and simplify logic.
6275 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
6277 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6278 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
6279 (main_tree_if_conversion): Update call to tree_if_conversion.
6281 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
6284 * doc/invoke.texi (-b,-V): Delete.
6285 * doc/tm.texi: Do not mention -b.
6286 * gcc.c (display_help): Delete -b and -V.
6287 (process_command): Delete -b and -V.
6288 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6290 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
6291 Wolfgang Gellerich <gellerich@de.ibm.com>
6293 Implement target hook for loop unrolling
6294 * target.h (loop_unroll_adjust): Add a new target hook function.
6295 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6296 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6297 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6298 (s390_loop_unroll_adjust): Implement the new target hook for s390.
6299 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6301 (decide_unroll_stupid): Likewise.
6303 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6306 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6308 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6310 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6311 (Specific, *-*-solaris2*): Likewise.
6312 Don't prefer Sun as over GNU as.
6314 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
6316 * config/s390/s390.c (override_options): Adjust the z10 defaults
6317 for max-unroll-times, max-completely-peeled-insns
6318 and max-completely-peel-times.
6320 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
6322 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6323 instructions for z10.
6324 (s390_expand_setmem): Likewise.
6325 (s390_expand_cmpmem): Likewise.
6327 2010-04-08 Richard Guenther <rguenther@suse.de>
6329 PR tree-optimization/43679
6330 * tree-ssa-pre.c (eliminate): Only propagate copies.
6332 2010-04-08 Jakub Jelinek <jakub@redhat.com>
6335 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6336 set but not used variable warning.
6338 2010-04-08 Wei Guozhi <carrot@google.com>
6341 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6342 (arm_size_rtx_costs): Call the new function when optimized for size.
6344 2010-04-08 Jakub Jelinek <jakub@redhat.com>
6347 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6348 op0 is not a MEM, just return NULL instead of assertion
6350 (discover_nonconstant_array_refs): Don't walk debug stmts.
6352 2010-04-08 Doug Kwan <dougkwan@google.com>
6354 * configure.ac: Recognize gold and do not use its version number
6355 to test ld features.
6356 * configure: Regenerate.
6358 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
6361 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6362 (negate_value): Move code to push elements to broken_up_substracts ...
6363 (eliminate_plus_minus_pair): ... here. Push operands that have no
6364 negative pair to plus_negates.
6365 (repropagate_negates, init_reassoc, fini_reassoc): Update.
6367 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6369 * doc/install.texi (Configuration): Move description of
6370 --enable-lto, --with-libelf*, --enable-gold from Java section to
6373 * doc/generic.texi (Working with declarations)
6374 (Function Properties, C and C++ Trees): Fix typos.
6375 * doc/sourcebuild.texi (Top Level): Likewise.
6377 2010-04-07 Jakub Jelinek <jakub@redhat.com>
6380 * tree.h (DECL_READ_P): Define.
6381 (struct tree_decl_common): Add decl_read_flag.
6382 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6383 a set but not used warning.
6384 (merge_decls): Merge DECL_READ_P flag.
6385 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6386 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6387 * c-common.c (handle_used_attribute, handle_unused_attribute):
6389 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6391 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6393 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6394 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6395 c_parser_binary_expression, c_parser_cast_expression,
6396 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6397 Call default_function_array_read_conversion instead of
6398 default_function_array_conversion where needed.
6399 (c_parser_unary_expression, c_parser_conditional_expression,
6400 c_parser_postfix_expression_after_primary, c_parser_initelt):
6401 Likewise. Call mark_exp_read where needed.
6402 (c_parser_statement_after_labels, c_parser_asm_operands,
6403 c_parser_typeof_specifier, c_parser_sizeof_expression,
6404 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6406 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6408 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6409 (warn_unused_but_set_parameter): Default to warn_unused
6411 * doc/invoke.texi: Document -Wunused-but-set-variable and
6412 -Wunused-but-set-parameter.
6414 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6415 used count variable.
6416 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6417 when operandN variables aren't used in the body of the expander
6419 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6420 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6421 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6422 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6423 FOR_EACH_IMM_USE_ON_STMT): Likewise.
6424 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6425 * tree.c (PROCESS_ARG): Likewise.
6427 2010-04-07 Simon Baldwin <simonb@google.com>
6429 * diagnostic.h (diagnostic_override_option_index): New macro to
6430 set a diagnostic's option_index.
6431 * c-tree.h (c_cpp_error): Add warning reason argument.
6432 * opts.c (_warning_as_error_callback): New.
6433 (register_warning_as_error_callback): Store callback for
6434 warnings enabled via enable_warning_as_error.
6435 (enable_warning_as_error): Call callback, minor code tidy.
6436 * opts.h (register_warning_as_error_callback): Declare.
6437 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6438 response to -Werror=.
6439 (c_common_init_options): Register warning_as_error_callback in opts.c.
6440 * common.opt: Add -Wno-cpp option.
6441 * c-common.c (struct reason_option_codes_t): Map cpp warning
6442 reason codes to gcc option indexes.
6443 * (c_option_controlling_cpp_error): New function, lookup the gcc
6444 option index for a cpp warning reason code.
6445 * (c_cpp_error): Add warning reason argument, call
6446 c_option_controlling_cpp_error for diagnostic_override_option_index.
6447 * doc/invoke.texi: Document -Wno-cpp.
6449 2010-04-07 Richard Guenther <rguenther@suse.de>
6451 * ipa-reference.c (mark_load): Use get_base_address.
6452 (mark_store): Likewise.
6454 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6455 inserting GIMPLE_NOPs into the IL.
6456 * tree-ssa-structalias.c (get_constraint_for_component_ref):
6457 Explicitly strip handled components and indirect references.
6459 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6460 folding address expressions.
6461 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6462 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6463 operand_equal_p to compare decls.
6464 (ptr_deref_may_alias_decl_p): Likewise.
6465 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6466 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6467 Handle reversed comparison ops.
6468 * tree-sra.c (asm_visit_addr): Use get_base_address.
6469 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6470 * ipa-reference.c (mark_address): Use get_base_address.
6472 2010-04-07 Richard Guenther <rguenther@suse.de>
6474 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6475 Propagate constants everywhere.
6477 2010-04-07 Jakub Jelinek <jakub@redhat.com>
6480 * tree.c (MAX_INT_CACHED_PREC): Define.
6481 (nonstandard_integer_type_cache): New array.
6482 (build_nonstandard_integer_type): Cache results for precision
6483 <= MAX_INT_CACHED_PREC.
6485 2010-04-07 Richard Guenther <rguenther@suse.de>
6487 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6488 -fargument-noalias-global, -fargument-noalias-anything): Remove.
6489 * common.opt: Likewise.
6490 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6491 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6492 (nonoverlapping_memrefs_p): Likewise.
6493 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6494 * opts.c (common_handle_option): Handle OPT_fargument_alias,
6495 OPT_fargument_noalias, OPT_fargument_noalias_anything and
6496 OPT_fargument_noalias_global for backward compatibility.
6498 2010-04-07 Richard Guenther <rguenther@suse.de>
6500 PR tree-optimization/43270
6501 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6502 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6503 * tree-ssa-pre.c (phi_translate_1): Adjust.
6504 (fully_constant_expression): Split out vn_reference handling to ...
6505 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6506 Fold reads from constant strings.
6507 (vn_reference_lookup): Handle fully constant references.
6508 (vn_reference_lookup_pieces): Likewise.
6509 * Makefile.in (expmed.o-warn): Add -Wno-error.
6511 2010-04-07 Martin Jambor <mjambor@suse.cz>
6513 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6515 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
6518 * gcc.c: Add -static-libstdc++ to list of recognized options.
6520 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6522 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6524 2010-04-07 Richard Guenther <rguenther@suse.de>
6527 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6528 bases build simple mem attributes to retain points-to information.
6530 2010-04-07 Richard Guenther <rguenther@suse.de>
6533 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6534 preserve points-to related information.
6536 2010-04-07 Richard Guenther <rguenther@suse.de>
6539 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6540 discard plain indirect references.
6541 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6542 * tree.c (tree_nop_conversion): Likewise.
6544 2010-04-07 Dodji Seketeli <dodji@redhat.com>
6547 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6549 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
6551 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6552 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6554 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
6556 * tree-if-conv.c: Fix indentation and comments.
6558 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
6560 * tree-if-conv.c: Sort static functions in topological order.
6562 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
6564 * tree-if-conv.c: Fix indentation and comments.
6566 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6569 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6570 lang_hooks.types.type_for_size instead of
6571 build_nonstandard_integer_type.
6572 When converting an unsigned type to signed, double its precision.
6573 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6574 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6575 (graphite_create_new_loop_guard): When ub + 1 wraps around,
6578 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6581 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6582 POINTER_PLUS_EXPR for pointer types.
6584 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6587 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6588 * graphite-clast-to-gimple.c: Include langhooks.h.
6589 (max_signed_precision_type): New.
6590 (max_precision_type): Takes two types as arguments.
6591 (precision_for_value): New.
6592 (precision_for_interval): New.
6593 (gcc_type_for_interval): New.
6594 (gcc_type_for_value): New.
6595 (gcc_type_for_clast_term): New.
6596 (gcc_type_for_clast_red): New.
6597 (gcc_type_for_clast_bin): New.
6598 (gcc_type_for_clast_expr): Split up into several functions.
6599 (gcc_type_for_clast_eq): Rewritten.
6600 (compute_bounds_for_level): New.
6601 (compute_type_for_level_1): New.
6602 (compute_type_for_level): New.
6603 (gcc_type_for_cloog_iv): Removed.
6604 (gcc_type_for_iv_of_clast_loop): Rewritten.
6605 (graphite_create_new_loop): Compute the lower and upper bound types
6606 with gcc_type_for_clast_expr.
6607 (graphite_create_new_loop_guard): Same.
6608 (find_cloog_iv_in_expr): Removed.
6609 (compute_cloog_iv_types_1): Removed.
6610 (compute_cloog_iv_types): Removed.
6611 (gloog): Do not call compute_cloog_iv_types.
6612 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6614 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6615 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6616 (GBB_CLOOG_IV_TYPES): Removed.
6618 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6620 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6621 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6622 (detect_commutative_reduction): Same.
6624 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6626 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6627 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
6629 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6630 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6631 (rewrite_commutative_reductions_out_of_ssa): Same.
6632 * passes.c (execute_function_todo): Call verify_ssa for every pass
6633 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
6634 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6635 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6636 with an extra argument.
6637 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
6638 verify_ssa only when the extra argument is true.
6639 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6640 with an extra argument.
6641 (tree_transform_and_unroll_loop): Same.
6643 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
6645 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6646 for all the passes of the LNO having LOOP_CLOSED_SSA.
6647 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6648 * tree-loop-distribution.c (pass_loop_distribution): Same.
6649 * tree-pass.h (TODO_verify_loops): Removed.
6650 * tree-ssa-loop.c (pass_tree_loop_init): Same.
6652 (pass_tree_unswitch): Same.
6653 (pass_predcom): Same.
6654 (pass_vectorize): Same.
6655 (pass_linear_transform): Same.
6656 (pass_graphite_transforms): Same.
6657 (pass_iv_canon): Same.
6658 (pass_complete_unroll): Same.
6659 (pass_complete_unrolli): Same.
6660 (pass_parallelize_loops): Same.
6661 (pass_loop_prefetch): Same.
6662 (pass_iv_optimize): Same.
6664 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
6667 * passes.c (init_optimization_passes): Move pass_lim before
6668 pass_copy_prop and pass_dce_loop.
6670 2010-04-06 Jakub Jelinek <jakub@redhat.com>
6673 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6674 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6675 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6676 MULTI_* defines for 4 argument vpermil2p* builtins.
6678 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
6680 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6681 * config/i386/i386.c (x86_maybe_negate_const_int): New.
6682 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6683 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6684 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6685 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6686 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6687 Use x86_maybe_negate_const_int to output insn mnemonic.
6688 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
6689 check from instruction predicate. Update comments.
6690 * config/i386/sync.md (sync_add<mode>): Use
6691 x86_maybe_negate_const_int to output insn mnemonic.
6693 2010-04-06 Jan Hubicka <jh@suse.cz>
6695 PR tree-optimization/42906
6696 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6697 IGNORE_SELF argument. Set visited_control_parents for fully
6699 (find_obviously_necessary_stmts): Update call of
6700 mark_control_dependent_edges_necessary.
6701 (propagate_necessity): Likewise. Handle PHI edges more curefully.
6703 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
6705 * config/i386/i386.md: Remove comment about 'e' and 'E'
6708 2010-04-06 Richard Guenther <rguenther@suse.de>
6710 PR tree-optimization/43627
6711 * tree-vrp.c (extract_range_from_unary_expr): Widenings
6712 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6715 2010-04-06 Jakub Jelinek <jakub@redhat.com>
6717 * BASE-VER: Change to 4.6.0.
6720 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6723 2010-04-06 Richard Guenther <rguenther@suse.de>
6726 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6728 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6730 * doc/invoke.texi (Optimize Options): Document that LTO
6731 won't remove object access purely due to incompatible
6734 2010-04-04 Matthias Klose <doko@ubuntu.com>
6736 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6737 Initialize variable.
6739 2010-04-03 Richard Guenther <rguenther@suse.de>
6742 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6743 require a non-NULL MEM_OFFSET.
6745 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
6747 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6748 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6749 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6750 config/alpha/predicates.md, config/arm/arm.md,
6751 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6752 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6753 config/darwin9.h, config/darwin.c, config/darwin.h,
6754 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6755 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6756 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6757 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6758 config/mips/mips.md, config/mn10300/mn10300.c,
6759 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6760 config/rs6000/aix.h, config/rs6000/dfp.md,
6761 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6762 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6763 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6764 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6765 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6766 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6767 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6768 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6769 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6770 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6771 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6772 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6773 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6774 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6775 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6776 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6777 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6778 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6779 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6780 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6781 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6782 opt-functions.awk, opth-gen.awk, params.def, passes.c,
6783 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6784 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6785 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6786 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6787 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6788 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6789 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6790 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6791 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6792 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6793 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6794 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6795 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6796 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6798 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6801 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6802 * aclocal.m4: Regenerate.
6804 2010-04-02 Richard Guenther <rguenther@suse.de>
6806 PR tree-optimization/43629
6807 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6808 if we have seen a constant value.
6810 2010-04-02 Joseph Myers <joseph@codesourcery.com>
6812 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6814 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
6817 * arm.c (legitimize_tls_address): Adjust call to
6818 gen_tls_load_dot_plus_four.
6819 (arm_note_pic_base): New function.
6820 (arm_cannot_copy_insn_p): Use it.
6821 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6824 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6829 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
6831 * Makefile.in ($(out_object_file)): Depend on
6832 gt-$(basename $(notdir $(out_file))).h.
6834 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
6836 * config.gcc (lm32-*-rtems*): Add t-lm32.
6838 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
6840 * config.gcc: Add lm32-*-rtems*.
6841 * config/lm32/rtems.h: New file.
6843 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
6846 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6848 2010-04-01 Jakub Jelinek <jakub@redhat.com>
6850 * dwarf2out.c (output_compilation_unit_header): For
6851 -gdwarf-4 use version 4 instead of version 3.
6852 (output_line_info): For version 4 and above emit additional
6853 maximum ops per insn header field.
6854 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6856 * dwarf2out.c (is_c_family, is_java): Remove.
6857 (lower_bound_default): New function.
6858 (add_bound_info, gen_descr_array_type_die): Use it.
6860 2010-04-01 Dodji Seketeli <dodji@redhat.com>
6863 * dwarf2out.c (gen_variable_die): Allow debug info for variable
6864 re-declaration when it happens in a function.
6866 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
6868 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6869 (cgraph_remove_function_insertion_hook): Same.
6870 (cgraph_call_function_insertion_hooks): Same.
6872 2010-04-01 Richard Guenther <rguenther@suse.de>
6875 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6876 and TREE_THIS_VOLATILE.
6877 (copy_ref_info): Likewise.
6878 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6879 * tree.c (build6_stat): Ignore side-effects of all but arg5
6880 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
6883 2010-04-01 Richard Guenther <rguenther@suse.de>
6885 PR tree-optimization/43607
6886 * ipa-type-escape.c (check_call): Do not access non-existing
6889 2010-04-01 Richard Guenther <rguenther@suse.de>
6893 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
6894 Jack Howarth <howarth@bromo.med.uc.edu>
6896 * tree-profile.c (tree_init_ic_make_global_vars): Make static
6899 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6901 * doc/install.texi (Prerequisites): Document libelf usability on
6902 IRIX 5/6 and Solaris 2.
6903 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6904 Update GNU as, GNU ld requirements.
6905 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6906 Document Sun Studio compiler download.
6907 Update and simplify as, ld recommendations.
6908 (Specific, *-*-solaris2.7): Note obsoletion, removal.
6910 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6912 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6913 with_tune_32 to pentium4.
6915 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
6917 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6919 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6921 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6922 obsoletion, removal.
6924 Document GNU as requirement.
6925 Update configure requirements.
6926 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
6927 Recomment IRIX 6.5.18+.
6928 Document IDF/IDL requirement.
6929 Document GNU as requirement.
6930 Document GNU ld bootstrap failure.
6931 Remove freeware.sgi.com reference.
6933 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6935 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6936 UNIX V4.0, V5.0 obsoletion, removal.
6937 Remove --with-gc=simple reference.
6938 Update VM requirements during bootstrap.
6939 Remove -oldas bootstrap description.
6940 Update binutils reference.
6941 Remove comparison failure note.
6943 2010-03-31 Richard Guenther <rguenther@suse.de>
6944 Zdenek Dvorak <ook@ucw.cz>
6945 Sebastian Pop <sebastian.pop@amd.com>
6948 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6949 with multiple arguments.
6950 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6952 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
6954 * graphite-dependences.c (print_pddr): Call print_pdr with an
6956 * graphite-poly.c (debug_pdr): Add an extra argument for the
6959 (print_pbb_domain): Same.
6961 (print_scop_context): Same.
6963 (print_cloog): Same.
6964 (debug_pbb_domain): Same.
6968 (debug_scop_context): Same.
6970 (debug_cloog): Same.
6971 (print_scop_params): Same.
6972 (debug_scop_params): Same.
6973 (print_iteration_domain): Same.
6974 (print_iteration_domains): Same.
6975 (debug_iteration_domain): Same.
6976 (debug_iteration_domains): Same.
6977 (print_scattering_function): Same.
6978 (print_scattering_functions): Same.
6979 (debug_scattering_function): Same.
6980 (debug_scattering_functions): Same.
6981 * graphite-poly.h (debug_pdr): Update declaration.
6983 (print_pbb_domain): Same.
6985 (print_scop_context): Same.
6987 (print_cloog): Same.
6988 (debug_pbb_domain): Same.
6992 (debug_scop_context): Same.
6994 (debug_cloog): Same.
6995 (print_scop_params): Same.
6996 (debug_scop_params): Same.
6997 (print_iteration_domain): Same.
6998 (print_iteration_domains): Same.
6999 (debug_iteration_domain): Same.
7000 (debug_iteration_domains): Same.
7001 (print_scattering_function): Same.
7002 (print_scattering_functions): Same.
7003 (debug_scattering_function): Same.
7004 (debug_scattering_functions): Same.
7006 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
7008 * graphite-poly.c (print_scattering_function_1): New.
7009 (print_scattering_function): Call it.
7010 (print_scop_params): Remove spaces at the end of lines.
7013 * graphite-poly.h (print_cloog): Declared.
7014 (debug_cloog): Declared.
7016 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
7018 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
7020 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
7021 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
7022 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
7023 to switch between adding the IV bump in loop->latch or in loop->header.
7025 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
7027 * graphite-poly.c (print_scattering_function): Pretty print following
7030 (print_pbb_domain): Same.
7031 (dump_gbb_cases): Same.
7032 (dump_gbb_conditions): Same.
7035 (print_scop_params): Same.
7036 (print_scop_context): Same.
7038 (print_pbb_body): New.
7039 (lst_indent_to): New.
7040 (print_lst): Start new lines with a #.
7041 * graphite-poly.h (pbb_bb): New.
7042 (pbb_index): Use pbb_bb.
7043 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
7045 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
7047 2010-03-31 Jakub Jelinek <jakub@redhat.com>
7049 * dwarf2out.c (size_of_die): For -gdwarf-4 use
7050 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
7051 and 0 instead of 1 for dw_val_class_flag.
7052 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
7053 dw_val_class_range_list, dw_val_class_loc_list,
7054 dw_val_class_lineptr and dw_val_class_macptr, use
7055 DW_FORM_flag_present for dw_val_class_flag and
7056 DW_FORM_exprloc for dw_val_class_loc.
7057 (output_die): For -gdwarf-4 print dw_val_class_loc
7058 size as uleb128 instead of 1 or 2 bytes and don't print
7059 anything for dw_val_class_flag.
7061 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
7062 instead of cselib_lookup following by tweaking locs->setting_insn.
7065 * cselib.c (cselib_process_insn): Clear cselib_current_insn
7066 even before returning from label, setjmp call or volatile asm
7069 2010-03-31 Richard Guenther <rguenther@suse.de>
7072 * cgraphunit.c (cgraph_output_in_order): Do not allocate
7073 temporary data on stack.
7075 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7077 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
7078 (PUSHSECTION_ASM_OP): Remove.
7079 (POPSECTION_ASM_OP): Remove.
7080 (PUSHSECTION_FORMAT): Remove.
7081 * config/sol2.h (PUSHSECTION_FORMAT): Define.
7082 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
7083 * config/sol2.c (solaris_output_init_fini): Use it.
7085 2010-03-31 Jie Zhang <jie@codesourcery.com>
7088 * opt-functions.awk (var_type_struct): Use signed char type
7089 for simple variables.
7091 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7093 * config/sol2.c: Include output.h.
7094 (solaris_assemble_visibility): New function.
7095 * config/t-sol2 (sol2.o): Add output.h dependency.
7096 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
7097 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
7100 2010-03-31 Jakub Jelinek <jakub@redhat.com>
7103 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
7104 V2SImode or XFmode on PRE_DEC.
7107 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
7110 2010-03-31 Jie Zhang <jie@codesourcery.com>
7113 * reload.h (caller_save_initialized_p): Declare.
7114 * toplev.c (backend_init_target): Don't call
7115 init_caller_save but set caller_save_initialized_p to false.
7116 * caller-save.c (caller_save_initialized_p): Define.
7117 (init_caller_save): Check caller_save_initialized_p.
7118 * ira.c (ira): Call init_caller_save if flag_caller_saves.
7120 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7123 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
7124 and soft-fp/t-softfp to tmake_file.
7125 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
7126 (LIBGCC2_TF_CEXT): Define.
7129 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
7132 * cselib.c (n_useless_values): Document handling of debug locs.
7133 (n_useless_debug_values, n_debug_values): New variables.
7134 (new_elt_loc_list): Don't add to debug values, keep count.
7135 (promote_debug_loc): New.
7136 (cselib_reset_table): Zero new variables.
7137 (entry_and_rtx_equal_p): Promote debug locs.
7138 (discard_useless_locs): Increment n_useless_debug_values for
7140 (remove_useless_values): Adjust n_useless_values and n_debug_values
7141 with n_useless_debug_values.
7142 (add_mem_for_addr): Promote debug locs.
7143 (cselib_lookup_mem): Likewise.
7144 (cselib_lookup_addr): Renamed to...
7145 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
7146 (cselib_log_lookup): ... this. Turn into...
7147 (cselib_lookup_addr): ... new wrapper.
7148 (cselib_lookup_from_insn): New.
7149 (cselib_invalidate_regno): Increment n_useless_debug_values for
7151 (cselib_invalidate_mem): Likewise.
7152 (cselib_process_insn): Take n_deleted and n_debug_values into
7153 account to guard remove_useless_value call.
7154 (cselib_finish): Zero n_useless_debug_values.
7155 * cselib.h (cselib_lookup_from_insn): Declare.
7156 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
7157 (sched_analyze_2): Likewise.
7159 2010-03-30 Jakub Jelinek <jakub@redhat.com>
7161 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
7163 (adjust_mems): Replace narrowing SUBREG of expression containing
7164 just PLUS, MINUS, MULT and ASHIFT of registers and constants
7165 with operations in the narrower mode.
7168 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
7169 regs_invalidated_by_call instead all call_used_reg_set registers.
7171 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
7174 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
7175 pointer comparisons with types_compatible_p.
7176 * tree-vect-stmts.c (vectorizable_call): Same.
7177 (vectorizable_condition): Same.
7179 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7181 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
7182 stack check if the mask would be zero.
7184 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
7185 Jack Howarth <howarth@bromo.med.uc.edu>
7187 * tree-profile.c (tree_init_ic_make_global_vars): Make static
7190 2010-03-30 Joseph Myers <joseph@codesourcery.com>
7193 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
7195 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
7196 Include ___unordxf2 and ___unordtf2.
7197 * config/i386/libgcc-glibc.ver: Do not define inheritance from
7200 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
7202 * config/lm32/t-lm32: New file.
7203 * config.gcc: Use the above file when targetting lm32.
7205 2010-03-28 Duncan Sands <baldrick@free.fr>
7207 * Makefile.in (PLUGIN_HEADERS): Add except.h.
7209 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
7212 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
7213 Improve vectorization cost model diagnostic.
7215 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
7218 * tree-vect-data-refs.c (vect_analyze_data_refs): When
7219 compute_data_dependences_for_loop returns false, early exit
7220 and output an extra diagnostic for the failed data reference
7223 2010-03-29 Richard Guenther <rguenther@suse.de>
7225 PR tree-optimization/43560
7226 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
7227 (can_sm_ref_p): Treat stores to readonly locations as trapping.
7229 2010-03-29 Jie Zhang <jie@codesourcery.com>
7232 * toplev.c (process_options): Set optimization_default_node
7233 and optimization_current_node.
7234 * opts.c (decode_options): Don't set optimization_default_node
7235 and optimization_current_node.
7237 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
7239 * config/rtems.h: Abandon -qrtems_debug.
7241 2010-03-28 Jan Hubicka <jh@suse.cz>
7243 PR tree-optimization/43505
7244 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7245 map should not be copied.
7247 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7250 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7251 cdtors, set DECL_PRESERVE_P.
7252 * ipa.c (cgraph_externally_visible_p): Return true if declaration
7255 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
7257 PR tree-optimization/43528
7258 * stor-layout.c (place_field): Check that constant fits into
7259 unsigned HWI when skipping calculation of MS bitfield layout.
7261 2010-03-27 Jan Hubicka <jh@suse.cz>
7264 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7265 notice_global_symbol work.
7267 2010-03-27 Jakub Jelinek <jakub@redhat.com>
7269 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7270 instead of dwarf2out_decl.
7271 (struct var_loc_node): Remove section_label field.
7272 (dwarf2out_function_decl): New function.
7273 (dwarf2out_var_location): Don't set section_label field.
7274 (dwarf2out_begin_function): Don't empty decl_loc_table here.
7276 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
7278 PR tree-optimization/43544
7279 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7280 First argument for builtin vectorized function hook is now a
7281 tree to be able to distinguish between machine specific and
7283 * targhooks.c (default_builtin_vectorized_function): Ditto.
7284 * targhooks.h (default_builtin_vectorized_function): Ditto.
7285 * target.h (struct gcc_target): Ditto.
7286 * tree-vect-stmts.c (vectorizable_function): Ditto.
7287 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7288 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7291 2010-03-26 Joseph Myers <joseph@codesourcery.com>
7294 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7295 nested binding iff it is a FUNCTION_DECL.
7296 (store_parm_decls_newstyle): Pass nested=true to bind for
7297 FUNCTION_DECLs amongst parameters.
7299 2010-03-26 Jakub Jelinek <jakub@redhat.com>
7301 * var-tracking.c (vt_expand_loc_callback): Don't run
7302 cselib_expand_value_rtx_cb in dummy mode if
7303 cselib_dummy_expand_value_rtx_cb returned false.
7305 * var-tracking.c (emit_note_insn_var_location): For one part
7306 notes with offset 0, don't add EXPR_LIST around the location.
7307 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7308 add_location_or_const_value_attribute): Adjust for that change.
7311 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7312 into first operand and location into second.
7313 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7314 dw_cfi_oprnd_loc for DW_CFA_expression.
7315 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7316 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7317 assume first argument is regnum and second argument is location.
7319 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
7322 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7323 of scratch register to DImode. Split to DImode comparison operator.
7324 Use SImode subreg of scratch register in the multiplication.
7325 (*cmp_sadd_sidi): Ditto.
7326 (*cmp_ssub_si): Ditto.
7327 (*cmp_ssub_sidi): Ditto.
7329 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
7332 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7333 Remove invalid assert and wrong comment.
7335 2010-03-26 Jakub Jelinek <jakub@redhat.com>
7338 * flags.h (final_insns_dump_p): New extern.
7339 * final.c (final_insns_dump_p): New variable.
7340 (rest_of_clean_state): Set it before -fdump-final-insns=
7341 dumping, clear afterwards.
7342 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7343 MEM_ALIAS_SET on MEMs.
7345 2010-03-26 David S. Miller <davem@davemloft.net>
7347 * configure.ac: Fix sparc GOTDATA_OP bug check.
7348 * configure: Rebuild.
7350 2010-03-26 Alan Modra <amodra@gmail.com>
7352 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7354 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7356 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7357 TLS_SECTION_ASM_FLAG.
7359 2010-03-25 Jakub Jelinek <jakub@redhat.com>
7362 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7363 Clear first_function_block_is_cold.
7366 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7367 argument if the argument is truth_value_p.
7369 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
7371 * config/rs6000/constraints.md: Update copyright year for my changes.
7374 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7375 used in reg+reg addressing, swap registers.
7377 2010-03-24 Jakub Jelinek <jakub@redhat.com>
7380 * target.h (struct gcc_target): Add code_end hook.
7381 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7383 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7384 * toplev.c (compile_file): Call targetm.asm_out.code_end
7385 hook before unwind info/debug info output.
7386 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7387 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7388 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7389 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7390 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7391 * config/i386/i386.c (ix86_file_end): Renamed to...
7392 (ix86_code_end): ... this. Make static. Don't call
7393 file_end_indicate_exec_stack. Emit unwind info using
7394 final_start_function/final_end_function.
7395 (darwin_x86_file_end): Remove.
7396 (TARGET_ASM_CODE_END): Define.
7397 * config/i386/i386.h (TARGET_ASM_FILE_END,
7398 NEED_INDICATE_EXEC_STACK): Don't define.
7399 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7400 (TARGET_ASM_FILE_END): Define to darwin_file_end.
7401 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7402 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7405 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7406 at the beginning and final_end_function at the end.
7407 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7409 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7411 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7412 and Sun as TLS syntax.
7413 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7414 * configure: Regenerate.
7415 * config.in: Regenerate.
7416 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7417 (default_elf_asm_named_section): Use it.
7418 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7419 (i386_output_dwarf_dtprel): Likewise.
7420 (output_addr_const_extra): Likewise.
7421 (output_pic_addr_const): Lowercase @GOTTPOFF.
7422 (output_addr_const_extra): Likewise.
7423 (output_pic_addr_const): Lowercase @GOTNTPOFF.
7424 (output_addr_const_extra): Likewise.
7425 (output_pic_addr_const): Lowercase @INDNTPOFF.
7426 (output_addr_const_extra): Likewise.
7427 (output_pic_addr_const): Lowercase @NTPOFF.
7428 (output_addr_const_extra): Likewise.
7429 (output_pic_addr_const): Lowercase @TPOFF.
7430 (output_addr_const_extra): Likewise.
7431 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7432 (*tls_global_dynamic_64): Likewise.
7433 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7434 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7436 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7437 (ASM_OUTPUT_TLS_COMMON): Use it.
7438 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7441 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7442 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7443 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7444 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7445 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7446 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7448 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7450 * config/i386/i386.c (override_options): Don't accept
7451 -mtls-dialect=sun any longer.
7452 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7453 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7454 (*tls_local_dynamic_base_32_sun): Likewise.
7455 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7457 2010-03-24 Jakub Jelinek <jakub@redhat.com>
7460 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7461 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7464 * ira.c (adjust_cleared_regs): New function.
7465 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7469 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7471 * expr.c (expand_expr_real): Restore previous
7472 curr_insn_source_location and curr_insn_block after
7473 expand_expr_real_1 call.
7474 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7475 instead of expand_expr_real_1.
7477 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
7479 PR rtl-optimization/43413
7480 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7483 2010-03-22 James E. Wilson <wilson@codesourcery.com>
7486 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7487 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7489 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
7491 * config/i386/i386.c (ix86_target_string): Add -mfma.
7492 Fix a typo in comment.
7494 2010-03-22 Mike Stump <mikestump@comcast.net>
7497 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7498 Don't overly align based upon packed packed fields.
7500 2010-03-22 Jason Merrill <jason@redhat.com>
7502 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7503 Use () rather than [], and move before the element type.
7505 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7507 * doc/configfiles.texi (Configuration Files): Removed
7508 fixinc/Makefile*, intl/Makefile.*.
7509 * doc/makefile.texi: Fixed markup. Abstract from version
7510 control system used.
7511 (Makefile): Removed obsolete gcc/java/parse.y example.
7512 * doc/sourcebuild.texi: Likewise.
7513 (Top Level): Added config, gnattools, libdecnumber, libgcc,
7514 libgomp, libssp. Removed fastjar.
7515 (Miscellaneous Docs): Clarify location.
7516 Added COPYING3, COPYING3.LIB.
7517 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7519 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7522 * config/i386/i386.c (x86_function_profiler)
7523 [!NO_PROFILE_COUNTERS]: Fix typo.
7524 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7527 2010-03-22 Janis Johnson <janis187@us.ibm.com>
7528 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7530 * doc/sourcebuild.texi (Test Directives): Split into six
7531 subsections, with most of the current text in new subsections
7532 Directives, Selectors, and Final Actions.
7533 (Directives): Split list of test directives into multiple
7535 (Selectors): Describe use and syntax of selectors.
7536 (Effective-Target Keywords): Describe all existing keywords.
7537 (Add Options): Describe features for dg-add-options.
7538 (Require Support): Describe variants of dg-require-support.
7539 (Final Actions): Describe commands to use in dg-final.
7541 2010-03-22 Michael Matz <matz@suse.de>
7544 * recog.c (validate_replace_rtx_group): Replace also in
7545 REG_EQUAL and REG_EQUIV notes.
7547 2010-03-22 Richard Guenther <rguenther@suse.de>
7549 PR tree-optimization/43390
7550 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7551 sure vector extracts are type correct.
7553 2010-03-22 Richard Guenther <rguenther@suse.de>
7556 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7557 x * sqrt (x) even when optimizing for size if the target
7558 has native support for sqrt.
7560 2010-03-22 Jakub Jelinek <jakub@redhat.com>
7562 * varasm.c (make_decl_rtl_for_debug): Also clear
7563 flag_mudflap for the duration of make_decl_rtl call.
7566 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7567 locs from preserved VALUEs.
7569 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7572 * pa.md (movmemsi): Set align to one if zero.
7573 (movmemdi): Likewise.
7575 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
7578 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7579 with their corresponding prologue pushes.
7581 2010-03-20 Andrew Pinski <pinskia@gmail.com>
7584 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7585 at the begining or end.
7586 (spu_expand_epilogue): Likewise.
7588 2010-03-20 Richard Guenther <rguenther@suse.de>
7590 PR rtl-optimization/43438
7591 * combine.c (make_extraction): Properly zero-/sign-extend an
7592 extraction of the low part of a CONST_INT. Also handle
7595 2010-03-19 Mike Stump <mikestump@comcast.net>
7597 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7598 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7599 (override_options): Use SUBTARGET32_DEFAULT_CPU.
7601 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
7604 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7607 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
7609 PR rtl-optimization/42258
7610 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7611 use that may match DEF.
7614 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7615 the cost of loading the constant rather than assuming
7617 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7618 outer code is AND, do the same tests as the andsi3 expander and
7619 return COSTS_N_INSNS (1) if and is cheap.
7621 * optabs.c (avoid_expensive_constant): Fix formatting.
7623 2010-03-19 Michael Matz <matz@suse.de>
7626 * attribs.c (decl_attributes): When rebuilding a function pointer
7627 type use the same qualifiers as the original pointer type.
7629 2010-03-19 Martin Jambor <mjambor@suse.cz>
7631 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7632 and is_gimple_ip_invariant_address.
7634 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7637 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7639 * config/arm/arm.c (arm_override_options): Turn off
7640 flag_dwarf2_cfi_asm for AAPCS variants.
7642 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7645 * config/arm/arm.c (emit_multi_reg_push): Update comments.
7646 Use PRE_MODIFY instead of PRE_DEC.
7647 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7648 (vfp_emit_fstmd): Likewise.
7650 2010-03-19 Michael Matz <matz@suse.de>
7653 * builtins.c (expand_builtin_interclass_mathfn,
7654 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7657 2010-03-19 Richard Guenther <rguenther@suse.de>
7659 PR tree-optimization/43415
7660 * tree-ssa-pre.c (phi_translate): Split out worker to ...
7661 (phi_translate_1): ... this.
7662 (phi_translate): Move all caching here. Cache all NARY
7663 and REFERENCE translations.
7665 2010-03-19 David S. Miller <davem@davemloft.net>
7667 With help from Eric Botcazou.
7668 * config/sparc/sparc.c: Include dwarf2out.h.
7669 (emit_pic_helper): Delete.
7670 (pic_helper_symbol_name): Delete.
7671 (pic_helper_emitted_p): Delete.
7672 (pic_helper_needed): New.
7673 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7674 (get_pc_thunk_name): New.
7675 (load_pic_register): Remove 'delay_pic_helper' arg. Use
7676 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7677 Set pic_helper_needed to true. Don't call emit_pic_helper.
7678 (sparc_expand_prologue): Update load_pic_register call.
7679 (sparc_output_mi_thunk): Likewise.
7680 (sparc_file_end): Emit a hidden comdat symbol for the PIC
7681 thunk if possible. Output CFI information as needed.
7683 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7684 Jack Howarth <howarth@bromo.med.uc.edu>
7687 * config/i386/i386.h: Fix ABI on darwin x86-32.
7689 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
7691 * tree.h: Declare make_decl_rtl_for_debug.
7692 * varasm.c (make_decl_rtl_for_debug): New.
7693 * dwarf2out.c (rtl_for_decl_location): Call it.
7694 * cfgexpand.c (expand_debug_expr): Call it.
7696 2010-03-18 Jakub Jelinek <jakub@redhat.com>
7699 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7703 * var-tracking.c (vt_init_cfa_base): Do nothing if
7704 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7706 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
7709 * var-tracking.c (canonicalize_vars_star): New.
7710 (dataflow_post_merge_adjust): Use it.
7712 2010-03-18 Jakub Jelinek <jakub@redhat.com>
7715 * var-tracking.c (non_suitable_const): New function.
7716 (add_uses): For DEBUG_INSNs with constants, don't record any
7717 value, instead just the constant value itself.
7718 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7719 is not VAR_LOC_UNKNOWN_P, set var to the constant.
7720 (emit_notes_in_bb): Likewise.
7721 (emit_note_insn_var_location): For onepart variables if
7722 cur_loc is a VOIDmode constant, use DECL_MODE.
7724 2010-03-18 Martin Jambor <mjambor@suse.cz>
7727 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7728 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7729 all non-clones. Moved call redirection...
7730 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7731 (cgraph_materialize_all_clones): Dispose of all
7732 combined_args_to_skip bitmaps.
7733 (verify_cgraph_node): Do not check for edges pointing to wrong
7734 nodes in inline clones.
7735 * tree-inline.c (copy_bb): Call
7736 cgraph_redirect_edge_call_stmt_to_callee.
7737 * ipa.c (cgraph_remove_unreachable_nodes): Call
7738 cgraph_node_remove_callees even when there are used clones.
7740 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
7742 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7744 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
7747 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7750 2010-03-18 Michael Matz <matz@suse.de>
7753 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7754 into sqrt(x) if we need to preserve signed zeros.
7756 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
7757 Eric Botcazou <ebotcazou@adacore.com>
7759 PR rtl-optimization/43360
7760 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7761 note if we don't know its invariant status.
7763 2010-03-18 Michael Matz <matz@suse.de>
7765 PR tree-optimization/43402
7766 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7767 PHI chains of ssa names registered for update.
7769 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
7772 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7773 non-offsettable and pre_modify update addressing.
7774 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7775 and "2" alternatives "#".
7776 (*movdd_softfloat32): Make all alternatives "#";
7777 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7778 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7779 (*movdf_softfloat32): Make all alternatives "#";
7780 (movdi): Use the new DIFD mode iterator to create a common splitter
7781 for movdi, movdf and movdd patterns.
7783 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
7785 * common.opt (dumpdir): Remove redundant tab.
7787 2010-03-17 Martin Jambor <mjambor@suse.cz>
7789 PR tree-optimization/43347
7790 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7791 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7793 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
7795 PR rtl-optimization/42216
7796 * regrename.c (create_new_chain): New function, broken out from...
7797 (scan_rtx_reg): ... here. Call it. Handle the case where we are
7798 appending a use to an empty chain.
7799 (build_def_use): Remove previous changes that convert OP_INOUT to
7800 OP_OUT operands; instead detect the case where an OP_INOUT operand
7801 uses a previously untracked register and create an empty chain for it.
7803 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
7805 * doc/extend.texi (Function Attributes): Rewrite unfinished
7806 sentence in ms_abi documentation.
7808 2010-03-17 Alan Modra <amodra@gmail.com>
7810 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7811 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7812 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7813 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7815 2010-03-16 Richard Henderson <rth@redhat.com>
7818 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7819 (lower_try_finally): Save and restore eh_seq around the expansion
7822 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
7824 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7825 statements before splitting block.
7827 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7829 * doc/sourcebuild.texi (Testsuites): Fix markup.
7830 Use pathnames relative to gcc/testsuite.
7831 (Test Directives): Move description of how timeout is determined.
7832 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7833 (C Tests): Correct gcc.misc-tests directory.
7834 Framework tests now live in gcc.test-framework.
7836 2010-03-16 Richard Guenther <rguenther@suse.de>
7839 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7840 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7842 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
7843 Alexandre Oliva <aoliva@redhat.com>
7845 PR tree-optimization/42917
7846 * lambda-code.c (remove_iv): Skip debug statements.
7847 (lambda_loopnest_to_gcc_loopnest): Likewise.
7848 (not_interesting_stmt): Debug statements are not interesting.
7850 2010-03-16 Jakub Jelinek <jakub@redhat.com>
7854 * cselib.c (cselib_preserve_constants,
7855 cfa_base_preserved_val): New static variables.
7856 (preserve_only_constants): New function.
7857 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7858 clear its REG_VALUES. If cselib_preserve_constants, don't
7859 empty the whole hash table, but preserve there VALUEs with constants,
7860 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7861 (cselib_preserve_cfa_base_value): New function.
7862 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7863 (cselib_init): Change argument to int bitfield. Set
7864 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7866 (cselib_finish): Clear cselib_preserve_constants and
7867 cfa_base_preserved_val.
7868 * cselib.h (enum cselib_record_what): New enum.
7869 (cselib_init): Change argument to int.
7870 (cselib_preserve_cfa_base_value): New prototype.
7871 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7872 * dse.c (dse_step1): Likewise.
7873 * cfgcleanup.c (thread_jump): Likewise.
7874 * sched-deps.c (sched_analyze): Likewise.
7875 * gcse.c (local_cprop_pass): Likewise.
7876 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7877 If FN is non-NULL, call the callback always and whenever it returns
7878 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
7879 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7880 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7881 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7882 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7883 * var-tracking.c: Include recog.h.
7884 (bb_stack_adjust_offset): Remove.
7885 (vt_stack_adjustments): Don't call it, instead just gather the
7886 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7887 (adjust_stack_reference): Remove.
7888 (compute_cfa_pointer): New function.
7889 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7890 (struct adjust_mem_data): New type.
7891 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7893 (get_address_mode): New function.
7894 (replace_expr_with_values): Use it.
7895 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7896 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
7897 (adjust_sets): Remove.
7898 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7899 Use get_address_mode.
7900 (get_adjusted_src): Remove.
7901 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
7902 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
7903 (add_with_sets): Don't call adjust_sets.
7904 (fp_setter, vt_init_cfa_base): New functions.
7905 (vt_initialize): Change return type to bool. Move most of pool etc.
7906 initialization to the beginning of the function from end. Pass
7907 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7908 If !frame_pointer_needed, call vt_stack_adjustment before mos
7909 vector is filled, call vt_init_cfa_base if argp/framep has been
7910 eliminated to sp. If frame_pointer_needed and argp/framep has
7911 been eliminated to hard frame pointer, set
7912 hard_frame_pointer_adjustment and call vt_init_cfa_base after
7913 encountering fp setter in the prologue. For MO_ADJUST, call
7914 log_op_type before pusing the op into mos vector, not afterwards.
7915 Call adjust_insn before cselib_process_insn/add_with_sets,
7916 call cancel_changes (0) afterwards.
7917 (variable_tracking_main_1): Adjust for vt_initialize calling
7918 vt_stack_adjustments and returning whether it succeeded or not.
7920 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
7922 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7925 2010-03-15 Jakub Jelinek <jakub@redhat.com>
7927 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7929 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7930 drap_reg has not been set.
7932 2010-03-15 Michael Matz <matz@suse.de>
7935 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7936 use it to expand block copies.
7937 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7938 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7939 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7941 2010-03-15 Richard Guenther <rguenther@suse.de>
7943 PR tree-optimization/43367
7944 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7947 2010-03-15 Richard Guenther <rguenther@suse.de>
7949 PR tree-optimization/43317
7950 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7952 2010-03-15 Martin Jambor <mjambor@suse.cz>
7954 PR tree-optimization/43141
7955 * tree-sra.c (create_abstract_origin): New function.
7956 (modify_function): Call create_abstract_origin.
7958 2010-03-15 Chris Demetriou <cgd@google.com>
7960 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7963 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7966 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7967 call insert_out_of_ssa_copy for default definitions.
7969 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7971 * graphite-clast-to-gimple.c (my_long_long): Defined.
7972 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
7973 * graphite-sese-to-poly.c (my_long_long): Defined.
7974 (scop_ivs_can_be_represented): Use it.
7976 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7978 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
7979 graphite-max-bbs-per-function, and loop-block-tile-size.
7980 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
7982 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
7984 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7986 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
7987 forward declaration.
7988 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
7989 (add_upper_bounds_from_estimated_nit): New.
7990 (build_loop_iteration_domains): Use it.
7992 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7994 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
7996 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
7999 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
8000 should be an INTEGER_CST. Also handle CASE_CONVERT.
8002 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
8004 * graphite.c (graphite_initialize): To bound the number of bbs per
8005 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
8006 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
8007 * doc/invoke.texi: Document it.
8009 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
8011 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
8012 * graphite-sese-to-poly.h (build_poly_scop): Same.
8014 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
8016 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
8017 the number of parameters in the scop. Use as an upper bound
8018 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
8019 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
8020 * doc/invoke.texi: Document it.
8022 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
8024 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
8025 * doc/c-tree.texi: Remove.
8026 * doc/generic.texi: Merge c-tree.texi here.
8027 * doc/gccint.texi (Trees): Remove menu entry.
8028 (c-tree.texi): Remove @include.
8029 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
8030 * doc/languages.texi (Reading RTL): Ditto.
8032 2010-03-12 Steve Ellcey <sje@cup.hp.com>
8035 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
8037 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8040 * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
8041 code added to work around reload clobbering CONST insns.
8043 2010-03-12 Jakub Jelinek <jakub@redhat.com>
8045 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
8046 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
8047 (cselib_preserve_only_values): Remove retain argument, don't
8048 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
8049 * cselib.h (cselib_preserve_only_values): Remove retain argument.
8050 * var-tracking.c (micro_operation): Move insn field before union.
8051 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
8052 (struct variable_tracking_info_def): Remove n_mos field, change
8053 mos into a vector of micro_operations.
8054 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
8055 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
8056 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
8057 changing into a vector.
8058 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
8059 come before all other uops generated by add_stores.
8060 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
8062 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
8063 a vector. Run just one pass over the bbs instead of separate counting
8064 and computation phase.
8065 (vt_finalize): Free VTI (bb)->mos vector instead of array.
8068 * tree-inline.c (remap_decls): Put old_var rather than origin_var
8069 into *nonlocalized_list vector.
8070 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
8071 even if origin is non-NULL.
8072 (gen_variable_die): Likewise.
8073 (process_scope_var): Don't change origin.
8074 (gen_decl_die): Likewise.
8075 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
8076 before adding new edges instead of after it, fix moving over
8079 2010-03-11 David S. Miller <davem@davemloft.net>
8081 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
8083 * configure: Rebuild.
8085 2010-03-11 Martin Jambor <mjambor@suse.cz>
8087 PR tree-optimization/43257
8088 * tree.c (assign_assembler_name_if_neeeded): New function.
8089 (free_lang_data_in_cgraph): Assembler name assignment moved to the
8091 * tree.h (assign_assembler_name_if_neeeded): Declare.
8092 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
8093 the function if needed.
8095 2010-03-11 Chris Demetriou <cgd@google.com>
8097 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
8098 include/stdint-gcc.h, and include/stdint.h world-readable.
8100 2010-03-11 Richard Guenther <rguenther@suse.de>
8102 PR tree-optimization/43255
8103 * tree-vrp.c (process_assert_insertions_for): Do not insert
8104 asserts for trivial conditions.
8106 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8108 PR tree-optimization/43280
8109 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
8110 generation. Move calculation of size out of the if branch.
8111 (find_bswap): Modify compare number generation.
8113 2010-03-11 Richard Guenther <rguenther@suse.de>
8116 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
8117 (input_gimple_stmt): Fixup handled component types during
8118 operand read. Also fix up decls in ADDR_EXPRs.
8120 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
8122 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
8123 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
8125 2010-03-10 Jan Hubicka <jh@suse.cz>
8128 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
8129 * varasm.c (get_variable_section): Don't do that here...
8130 (make_decl_rtl): ... and here.
8131 (do_assemble_alias): Produce decl RTL.
8132 (assemble_alias): Likewise.
8134 2010-03-10 Jakub Jelinek <jakub@redhat.com>
8137 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
8138 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
8140 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
8141 (based_loc_descr): Only express drap or vdrap regno based expressions
8142 using DW_OP_fbreg when not optimizing.
8143 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
8144 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
8145 REG_CFA_SET_VDRAP note.
8147 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
8149 PR tree-optimization/43236
8150 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
8151 error in calculation of base address in reverse iteration case.
8152 (generate_builtin): Take number of latch executions if the statement
8155 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
8158 * tree-eh.c: Include pointer-set.h.
8159 (lower_eh_dispatch): Filter out duplicate case labels and
8160 remove the unneeded edge when the label is unused. Return
8161 true when some edges are removed.
8162 (execute_lower_eh_dispatch): When any lowering resulted in
8163 removing an edge, also delete unreachable blocks.
8165 2010-03-10 Jakub Jelinek <jakub@redhat.com>
8168 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
8169 UNSPEC_MACHOPIC_OFFSET.
8171 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
8174 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
8175 (m68k_delegitimize_address): New function.
8177 2010-03-09 Jakub Jelinek <jakub@redhat.com>
8180 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
8183 * var-tracking.c (adjust_sets): New function.
8184 (count_with_sets, add_with_sets): Use it.
8185 (get_adjusted_src): New inline function.
8186 (add_stores): Use it.
8189 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
8190 call cselib_dummy_expand_value_rtx_cb instead of
8191 cselib_expand_value_rtx_cb.
8194 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
8195 * config/i386/i386.c: Include debug.h and dwarf2out.h.
8196 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
8197 and .cfi_endproc around the pic thunks.
8198 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
8199 all queued unwind info register saves are saved before the call.
8200 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
8201 considered as sp-=4 for unwind info and the pop as sp+=4 which
8202 also clobbers dest, but doesn't actually restore it.
8205 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
8206 RTX_FRAME_RELATED_P.
8208 2010-03-09 Jie Zhang <jie@codesourcery.com>
8210 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
8211 whitespaces in output template.
8213 2010-03-09 Jie Zhang <jie@codesourcery.com>
8215 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
8218 2010-03-08 Jakub Jelinek <jakub@redhat.com>
8220 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
8221 builtins.exp in a separate job.
8223 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8225 * graphite-sese-to-poly.c (add_param_constraints): Use
8226 lower_bound_in_type and upper_bound_in_type.
8228 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8230 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
8231 instead of unsigned_type_node.
8233 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8234 Reza Yazdani <reza.yazdani@amd.com>
8237 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8238 on pointer type parameters.
8240 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
8244 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8245 handle conversions from pointer to integers.
8246 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8247 induction variable, to be able to work with code generated by CLooG.
8248 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8249 (build_poly_scop): Bail out if we cannot codegen a loop.
8251 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
8253 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8254 code generation with gloog_error.
8256 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8258 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8259 Call fold_convert on all the returned values.
8260 (expand_scalar_variables_expr): Pass to
8261 expand_scalar_variables_ssa_name the type of the resulting expression.
8263 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8265 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8266 ppl_min_for_le_pointset.
8267 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8268 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8270 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8272 * graphite-dependences.c (map_into_dep_poly): Removed.
8273 (dependence_polyhedron_1): Use combine_context_id_scat.
8275 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8277 * graphite-poly.h (struct poly_scattering): Add layout documentation.
8278 (struct poly_bb): Same.
8279 (combine_context_id_scat): New.
8281 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8284 * sese.c (name_defined_in_loop_p): Return false for default
8287 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8289 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8290 and clean up the logic.
8292 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
8294 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8297 2010-03-08 Jakub Jelinek <jakub@redhat.com>
8299 * var-tracking.c (remove_cselib_value_chains): Define only for
8301 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8302 delete_slot_part, emit_notes_for_differences_1): Don't call
8303 remove_cselib_value_chains here.
8304 (set_slot_part, emit_notes_for_differences_2): Don't call
8305 add_cselib_value_chains here.
8306 (preserved_values): New vector.
8307 (preserve_value): New function.
8308 (add_uses, add_stores, vt_add_function_parameters): Use it
8309 instead of cselib_preserve_value.
8310 (changed_values_stack): New vector.
8311 (check_changed_vars_0): New function.
8312 (check_changed_vars_1, check_changed_vars_2): Use it.
8313 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8314 changed_values_stack VALUEs.
8315 (vt_emit_notes): For all preserved_values call
8316 add_cselib_value_chains. If ENABLE_CHECKING call
8317 remove_cselib_value_chains before verifying value_chains is empty.
8318 Initialize and free changed_values_stack.
8319 (vt_initialize): Initialize preserved_values.
8320 (vt_finalize): Free preserved_values.
8322 2010-03-08 Richard Guenther <rguenther@suse.de>
8324 PR tree-optimization/43269
8325 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8328 2010-03-08 Martin Jambor <mjambor@suse.cz>
8330 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8331 (ipa_is_param_called): Removed.
8332 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8333 (ipa_print_node_params): Do not print the called flag.
8334 (ipa_write_node_info): Do not stream the called flag.
8335 (ipa_read_node_info): Likewise.
8337 2010-03-07 Jakub Jelinek <jakub@redhat.com>
8340 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8341 * cselib.c (struct expand_value_data): Add dummy field.
8342 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8344 (cselib_dummy_expand_value_rtx_cb): New function.
8345 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8347 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8348 * var-tracking.c: Include pointer-set.h.
8349 (variable): Change n_var_parts to char from int. Add
8350 cur_loc_changed and in_changed_variables fields.
8351 (variable_canonicalize): Remove.
8352 (shared_var_p): New inline function.
8353 (unshare_variable): Maintain cur_loc_changed and
8354 in_changed_variables fields. If var was in changed_variables,
8355 replace it there with new_var. Just copy cur_loc instead of
8356 resetting it to something else.
8357 (variable_union): Don't recompute cur_loc. Use shared_var_p.
8358 (dataflow_set_union): Don't call variable_canonicalize.
8359 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8360 of their DEBUG_EXPR_TREE_DECLs.
8361 (canonicalize_loc_order_check): Verify that cur_loc is NULL
8362 and in_changed_variables and cur_loc_changed is false.
8363 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8364 and cur_loc_changed. Don't update cur_loc here.
8365 (variable_merge_over_src): Don't call variable_canonicalize.
8366 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
8367 removing loc that is equal to cur_loc, clear cur_loc,
8368 set cur_loc_changed and ensure variable_was_changed is called.
8369 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
8370 compare pointers in cur_loc check, if it is equal to loc,
8371 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
8372 (variable_different_p): Remove compare_current_location argument,
8373 don't compare cur_loc.
8374 (dataflow_set_different_1): Adjust variable_different_p caller.
8375 (variable_was_changed): If dv had some var in changed_variables
8376 already, reset in_changed_variables flag for it and propagate
8377 cur_loc_changed over to the new variable. On empty var
8378 always set cur_loc_changed. Set in_changed_variables on whatever
8379 var is added to changed_variables.
8380 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8381 Use shared_var_p. When removing loc that is equal to cur_loc,
8382 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
8383 end, don't set it to something else, just call variable_was_changed.
8384 (delete_slot_part): Use shared_var_p. When cur_loc equals to
8385 loc being removed, clear cur_loc and set cur_loc_changed.
8386 Set cur_loc_changed if all locations have been removed.
8387 (struct expand_loc_callback_data): New type.
8388 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8389 allocated. Always create SUBREGs if simplify_subreg failed.
8390 Prefer to use cur_loc, when that fails and still in
8391 changed_variables (and seen first time) recompute it. Set
8392 cur_loc_changed of variables which had to change cur_loc and
8393 compute elcd->cur_loc_changed if any of the subexpressions used
8394 had to change cur_loc.
8395 (vt_expand_loc): Adjust to pass arguments in
8396 expand_loc_callback_data structure.
8397 (vt_expand_loc_dummy): New function.
8398 (emitted_notes): New variable.
8399 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8400 that weren't used for any other decl in current
8401 emit_notes_for_changes call call vt_expand_loc_dummy to update
8402 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
8403 first loc_chain location if NULL before. Always use just
8404 cur_loc instead of first loc_chain location. When cur_loc_changed
8405 is false, when not --enable-checking=rtl just don't emit any note.
8406 When rtl checking, compute the note and assert it is the same
8407 as previous note. Clear cur_loc_changed and in_changed_variables
8408 at the end before removing from changed_variables.
8409 (check_changed_vars_3): New function.
8410 (emit_notes_for_changes): Traverse changed_vars to call
8411 check_changed_vars_3 on each changed var.
8412 (emit_notes_for_differences_1): Clear cur_loc_changed and
8413 in_changed_variables. Recompute cur_loc of new_var.
8414 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8415 (vt_emit_notes): Initialize and destroy emitted_notes.
8417 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
8419 PR rtl-optimization/42220
8420 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8421 Use verify_reg_tracked to determine if we should use OP_OUT rather
8423 (build_def_use): If we see an in-out operand for a register that we
8424 know nothing about, treat is an output if possible, fail the block if
8427 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
8430 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8433 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
8436 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8437 uses of relevant DEFs that are dead outside the loop too.
8439 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
8441 * var-tracking.c (dataflow_set_merge): Swap src and src2.
8443 2010-01-13 Jakub Jelinek <jakub@redhat.com>
8445 * var-tracking.c (values_to_unmark): New variable.
8446 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8447 values_to_unmark vector. Moved body to...
8448 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
8449 instead queue it into values_to_unmark vector.
8450 (vt_find_locations): Free values_to_unmark vector.
8452 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
8454 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8455 (site.exp): Export them when plugins are enabled.
8457 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
8460 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8462 (chrec_fold_multiply): Same.
8464 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
8467 * c-decl.c (build_compound_literal): Return early if init is
8470 2010-03-04 Martin Jambor <mjambor@suse.cz>
8472 PR tree-optimization/43164
8473 PR tree-optimization/43191
8474 * tree-sra.c (type_consists_of_records_p): Reject records with
8475 zero-size bit-fields at the end.
8477 2010-03-04 Mike Stump <mikestump@comcast.net>
8479 * Makefile.in (TAGS): Remove *.y.
8481 2010-03-04 Richard Guenther <rguenther@suse.de>
8483 PR tree-optimization/40761
8484 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8486 (my_rev_post_order_compute): New function.
8487 (init_pre): Call it.
8489 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
8492 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8493 decrease the cost of an IV candidate when the cost is infinite.
8495 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8497 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8498 Use '3DNow!' for the extension of that name, ensure normal space
8500 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8502 2010-03-03 Jeff Law <law@redhat.com>
8504 * PR middle-end/32693
8505 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8506 than gen_rtx_SUBREG.
8507 (extract_bit_field_1): Likewise.
8509 2010-03-03 Janis Johnson <janis187@us.ibm.com>
8511 * doc/sourcebuild.texi (Test directives): Document that arguments
8512 include-opts and exclude-opts are now optional for dg-skip-if,
8513 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8515 2010-03-03 Jason Merrill <jason@redhat.com>
8518 * cgraph.h (varpool_node): Add extra_name field.
8519 * varpool.c (varpool_extra_name_alias): New.
8520 (varpool_assemble_decl): Emit extra name aliases.
8521 (varpool_mark_needed_node): Look past an extra name alias.
8522 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8523 * lto-streamer-in.c (lto_input_tree): Read it.
8524 * lto-streamer-out.c (output_unreferenced_globals): Write it.
8526 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
8528 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8529 (sparc*-*-solaris2*): ...this.
8531 2010-03-03 Jakub Jelinek <jakub@redhat.com>
8534 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8535 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
8536 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8537 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8540 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8541 fallthrough to default handling, just with want_address 0 instead of 2.
8542 For single element lists, add_AT_loc directly, otherwise create an
8543 artificial variable DIE and stick location list to it.
8546 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8547 (VAL_EXPR_HAS_REVERSE): Define.
8548 (reverse_op): New function.
8549 (add_stores): For reversible operations add an extra MO_VAL_USE.
8551 2010-03-02 Jason Merrill <jason@redhat.com>
8553 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8555 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
8557 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8558 (sparc64-*-linux*): Likewise.
8559 (sparc64-*-solaris2*): Include assembler files before linker ones.
8560 (sparc-*-solaris2*): Simplify and reorder to match previous case.
8561 * config/sparc/gas.h: Delete.
8562 * config/sparc/sol2-64.h: Add copyright notice.
8563 * config/sparc/sol2-gas-bi.h: Likewise.
8564 * config/sparc/sol2-gld.h: Likewise.
8565 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8566 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8567 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8568 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8569 (sparc_elf_asm_named_section): Rename into...
8570 (sparc_solaris_elf_asm_named_section): ...this. Always define.
8572 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
8574 * config/alpha/alpha.c (override_options): Fix -mtune error message.
8576 2010-03-02 Jeff Law <law@redhat.com>
8579 * reload1.c (rtx_p, substitute_stack): Declare.
8580 (substitute): Record addresses of changed rtxs.
8581 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8582 Restore the original rtx when complete.
8583 (reload): Free subsitute_stack when complete.
8585 2010-03-02 Janis Johnson <janis187@us.ibm.com>
8587 * doc/gccint.texi (menu): Add Testsuites as a chapter.
8588 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8590 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8591 LTO Testing, gcov Testing, profopt Testing, compat Testing,
8592 Torture Tests): Change from subsection to section.
8594 2010-03-02 Jakub Jelinek <jakub@redhat.com>
8595 Steven Bosscher <steven@gcc.gnu.org>
8597 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8600 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
8603 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8604 the assignment from the new induction variable to the assignment
8605 of the value from the original loop PHI function.
8607 2010-03-01 Janis Johnson <janis187@us.ibm.com>
8608 Daniel Jacobowitz <dan@codesourcery.com>
8610 * doc/sourcebuild.texi (Test directives): Clarify options to
8613 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8615 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8616 Disable cfi directives unless GCC and gas agree on using read-only
8617 .eh_frame sections for 64-bit.
8618 * configure: Regenerate.
8620 2010-03-01 Richard Guenther <rguenther@suse.de>
8622 PR tree-optimization/43220
8623 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8624 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8626 2010-03-01 Richard Guenther <rguenther@suse.de>
8627 Martin Jambor <mjambor@suse.cz>
8630 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8631 gimplified parameters.
8633 2010-03-01 Christian Bruel <christian.bruel@st.com>
8635 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8637 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
8639 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8641 2010-03-01 Richard Guenther <rguenther@suse.de>
8644 * expr.c (expand_assignment): Use the alias-oracle to tell
8645 if the rhs aliases the result decl.
8647 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8650 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8651 to sol_gt_pch_get_address.
8652 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8653 64-bit, SPARC and x86.
8654 (sol_gt_pch_get_address): New function.
8656 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
8658 * toplev.h (inform_n, error_n): Declare.
8659 * diagnostic.c (inform_n, error_n): New function.
8661 2010-03-01 Jakub Jelinek <jakub@redhat.com>
8663 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8664 has no rtl yet when processing local_decls, queue it and recheck
8665 if deferred stack allocation hasn't assigned it rtl.
8667 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
8669 * config/sh/sh.c (unspec_bbr_uid): New.
8670 (gen_block_redirect): Use it instead of INSN_UID.
8671 (gen_far_branch): Likewise.
8673 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
8675 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8676 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8678 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
8680 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8681 (Warning Options): -Wno-conversion-null is valid for
8682 Objective-C++ as well.
8683 * doc/tm.texi (Named Address Spaces): Likewise.
8684 * doc/plugins.texi (Plugins): Replace TABs with spaces.
8685 * doc/tree-ssa.texi (Tree SSA): Likewise.
8687 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
8690 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8691 by default. Don't set the default arch for
8692 i[34567]86-*-darwin*|x86_64-*-darwin*.
8694 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
8697 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8698 default. Set the default 32bit/64bit archs with $with_arch
8699 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8701 2010-02-27 Richard Guenther <rguenther@suse.de>
8703 PR tree-optimization/43186
8704 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8705 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8706 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8707 unroller iterations.
8709 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
8711 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8712 required and i[34567]86-*-* targets don't support 64bit ISA.
8714 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
8717 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8720 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
8722 * config.gcc: Set the default arch at least to Prescott for
8723 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8724 if SSE math is enabled.
8726 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
8728 * diagnostic.c (diagnostic_initialize): Update.
8729 (diagnostic_report_diagnostic): Test inhibit_notes_p for
8731 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8732 (diagnostic_inhibit_notes): New.
8733 * toplev.c (process_options): inhibit notes with -fcompare-debug.
8735 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
8738 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8739 * doc/standards.texi: Likewise.
8740 * doc/extend.texi: Likewise.
8741 * doc/trouble.texi: Likewise.
8742 * doc/cppopts.texi: Likewise.
8743 * doc/install.texi: Likewise.
8744 * c.opt (std=c90,std=gnu90): New options.
8745 * c-opts.c (c_common_handle_option): Handle them.
8747 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
8750 * c-decl.c (undeclared_variable): Use an informative note.
8752 2010-02-26 Richard Guenther <rguenther@suse.de>
8754 PR tree-optimization/43186
8755 * gimple.h (gimple_fold): Remove.
8756 * gimple.c (gimple_fold): Remove. Inline into single user ...
8757 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8758 Try harder for conditions.
8760 2010-02-26 Jakub Jelinek <jakub@redhat.com>
8763 * function.c (used_types_insert): Don't skip through named pointer
8764 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
8765 and it is different from the main variant's type.
8767 2010-02-26 Nick Clifton <nickc@redhat.com>
8769 * config/rx/rx.md (sminsi3): Remove bogus alternative.
8771 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
8773 * config.gcc: Support --with-fpmath=sse for x86.
8775 * config/i386/ssemath.h: New.
8777 * doc/install.texi (--with-fpmath=sse): Documented.
8779 2010-02-26 Richard Guenther <rguenther@suse.de>
8781 PR tree-optimization/43188
8782 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8783 vector types of over-aligned element type.
8785 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
8788 * config/i386/i386.c (expand_vec_perm_blend): Use correct
8789 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
8791 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
8793 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8795 2010-02-26 Jakub Jelinek <jakub@redhat.com>
8797 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8798 * var-tracking.c: Include diagnostic.h.
8799 (debug_dv): New function.
8800 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8803 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8804 (add_value_chain, add_value_chains, remove_value_chain,
8805 remove_value_chains): Handle DEBUG_EXPRs.
8806 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8809 * regcprop.c (struct queued_debug_insn_change): New type.
8810 (struct value_data_entry): Add debug_insn_changes field.
8811 (struct value_data): Add n_debug_insn_changes field.
8812 (debug_insn_changes_pool): New variable.
8813 (free_debug_insn_changes, apply_debug_insn_changes,
8814 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8815 (kill_value_one_regno): Call free_debug_insn_changes if needed.
8816 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8818 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8820 (copyprop_hardreg_forward_1): Don't call apply_change_group for
8821 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
8822 changes, call cprop_find_used_regs via note_stores.
8823 (copyprop_hardreg_forward): When copying vd from predecessor
8824 which has any queued DEBUG_INSN changes, make sure the pointers are
8825 cleared. At the end call df_analyze and then if there are any
8826 DEBUG_INSN changes queued at the end of some basic block for still
8827 live registers, apply them.
8828 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8830 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
8832 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8835 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
8837 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8838 targets. Set the default with_cpu/with_arch from arch/cpu.
8839 Allow x86-64 and native for with_cpu/with_arch.
8841 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
8843 * ebitmap.c: Change calls to verify_popcount with calls to
8844 sbitmap_verify_popcount.
8845 (ebitmap_clear_bit): Fixed map->cacheindex test and
8846 map>cache update when bit clearing results in an empty
8849 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
8852 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8853 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8854 and support both V2DF and V2DI modes.
8855 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8856 support both V2DF and V2DI modes.
8857 (general): Delete trailing whitespace from a few patterns.
8859 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8860 V2DF/V2DI interleave high/low builtins.
8862 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8865 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8866 interleave high/low functions.
8868 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
8870 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8871 #pragma extern_prefix.
8873 2010-02-25 Jakub Jelinek <jakub@redhat.com>
8876 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8877 BLKmode, assert op0 is a MEM and just adjust its mode.
8880 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8881 if bitpos isn't multiple of mode's bitsize.
8883 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
8885 * c.opt (-ftemplate-depth=): New.
8886 (-ftemplate-depth-): Deprecate.
8887 * optc-gen.awk: Handle -ftemplate-depth=.
8888 * opth-gen.awk: Likewise.
8889 * c-opts.c (c_common_handle_option): Likewise.
8890 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8892 2010-02-24 Jason Merrill <jason@redhat.com>
8894 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8896 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8898 * cfg.c (alloc_aux_for_block): Remove inline.
8899 (alloc_aux_for_edge): Likewise.
8901 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8903 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8905 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8907 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8908 * config/i386/sol2-gas.h: New file.
8909 * config.gcc (i[34567]86-*-solaris2*): Use it.
8911 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
8914 * c-typeck.c (ep_convert_and_check): New.
8915 (build_conditional_expr): Use it.
8916 (build_binary_op): Likewise.
8918 2010-02-24 Jakub Jelinek <jakub@redhat.com>
8920 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8923 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8924 bounds even for -O+.
8925 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8926 expr needs to have DECL_NAME set.
8928 2010-02-24 Nick Clifton <nickc@redhat.com>
8930 * config/mep/mep.c: Include gimple.h.
8931 (mep_function_uses_sp): Delete unused function.
8932 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8933 parameters. Use unsigned integers to count args. Return a
8934 NULL_RTX instead of an error_mark_node. Toidy up formatting.
8936 2010-02-23 Jakub Jelinek <jakub@redhat.com>
8939 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8940 greater or equal to nelt instead of 2 * nelt.
8941 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8944 2010-02-23 Jason Merrill <jason@redhat.com>
8947 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8948 in cfun->local_decls even if they have register types.
8951 * stor-layout.c (place_field): Don't warn about unnecessary
8952 DECL_PACKED if the type is packed.
8954 2010-02-23 Jakub Jelinek <jakub@redhat.com>
8957 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8958 GOTOFF relocs, even when the base reg isn't pic pointer.
8960 2010-02-23 Michael Matz <matz@suse.de>
8963 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8964 (expand_gimple_basic_block): Generate and use debug temps if there
8965 are debug uses left after the last real use of TERed ssa names.
8966 Unlink debug immediate uses when they are expanded.
8968 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
8971 * config/i386/i386.c (override_options): Reorganise to provide
8972 better error messages.
8974 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
8977 * graphite-scop-detection.c (create_single_exit_edge): Move
8978 the call to find_single_exit_edge to....
8979 (create_sese_edges): ...here. Don't handle multiple edges
8980 exiting the function.
8981 (build_graphite_scops): Don't handle multiple edges
8982 exiting the function.
8984 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
8987 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
8988 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
8990 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
8993 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
8995 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
8998 * c-typeck.c (convert_arguments): Print declaration location.
8999 * c-common.c (validate_nargs): Rename as
9000 builtin_function_validate_nargs.
9001 (check_builtin_function_arguments): Update.
9003 2010-02-22 Richard Guenther <rguenther@suse.de>
9006 * tree-inline.c (declare_return_variable): Use the type of
9007 the call stmt lhs if available.
9009 2010-02-22 Duncan Sands <baldrick@free.fr>
9011 * passes.c (register_pass): Always consider all pass lists when
9012 ref_pass_instance_number is zero.
9014 2010-02-22 Richard Guenther <rguenther@suse.de>
9016 PR tree-optimization/42749
9017 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
9018 parameter. Do arithmetic in the original type.
9019 (update_accumulator_with_ops): Likewise.
9020 (adjust_accumulator_values): Adjust.
9022 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9024 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
9025 (QI to BLKmode splitter): New splitter.
9027 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
9029 * config/i386/i386.c (initial_ix86_tune_features): Turn on
9030 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
9032 2010-02-22 Richard Guenther <rguenther@suse.de>
9034 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
9036 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
9038 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
9039 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
9040 ($(T)crti.o, $(T)crtn.o): Remove rules.
9042 2010-02-21 Tobias Burnus <burnus@net-b.de>
9045 * doc/invoke.texi (-fassociative-math): Document that this
9046 option is automatically enabled for Fortran.
9048 2010-02-20 David S. Miller <davem@davemloft.net>
9050 * configure.ac: Test if linker and assembler properly support
9051 GOTDATA_OP relocations.
9052 * configure: Rebuild.
9053 * config.in: Likewise.
9054 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
9055 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
9056 (movsi_high_pic): Likewise.
9057 (movdi_lo_sum_pic): Likewise.
9058 (movdi_high_pic): Likewise.
9059 (movsi_pic_gotdata_op): New pattern.
9060 (movdi_pic_gotdata_op): Likewise.
9061 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
9062 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
9064 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
9067 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
9068 attribute to ssemul.
9069 (xop_mulv2div2di3_high): Ditto.
9071 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
9074 * c.opt (Wconversion-null): New option.
9075 * doc/invoke.texi (Wconversion-null): Document.
9077 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
9079 * common.opt (Wlarger-than-): Add Undocumented.
9081 2010-02-19 Mike Stump <mikestump@comcast.net>
9083 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
9085 2010-02-19 Jason Merrill <jason@redhat.com>
9088 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
9089 * configure: Likewise.
9091 2010-02-20 Alan Modra <amodra@gmail.com>
9094 * cgraph.h (cgraph_make_decl_local): Declare.
9095 * cgraph.c (cgraph_make_decl_local): New function.
9096 (cgraph_make_node_local): Use it.
9097 * cgraphunit.c (cgraph_function_versioning): Likewise.
9098 * ipa.c (function_and_variable_visibility): Likewise.
9100 2010-02-19 Jakub Jelinek <jakub@redhat.com>
9103 * except.c (sjlj_emit_function_enter): Don't call
9104 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
9106 * rtl.h (add_reg_br_prob_note): Remove prototype.
9108 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
9111 * c-common.c (conversion_warning): Remove widening conversions
9112 before checking the conversion of integers to reals.
9114 2010-02-19 Mike Stump <mikestump@comcast.net>
9117 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
9120 * cgraphunit.c (process_function_and_variable_attributes): Check
9121 DECL_PRESERVE_P instead of looking up attribute "used".
9122 * ipa-pure-const.c (check_decl): Likewise.
9123 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
9124 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
9125 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
9126 instead of attribute "used".
9127 * config/sol2-c.c (solaris_pragma_init): Likewise.
9128 (solaris_pragma_fini): Likewise.
9130 2010-02-19 Jakub Jelinek <jakub@redhat.com>
9132 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
9133 Use XCNEW instead of xcalloc.
9134 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
9135 XNEW instead of xmalloc.
9136 (get_fields): Use XNEWVEC instead of xmalloc.
9139 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
9140 populate vars array.
9141 (create_new_general_access): For debug stmts just reset value.
9142 (get_stmt_accesses): For accesses within debug stmts just record them
9143 using add_access_to_acc_sites instead of preventing the peeling or
9144 counting them as accesses.
9147 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
9149 2010-02-19 Richard Guenther <rguenther@suse.de>
9151 PR tree-optimization/42916
9152 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
9155 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
9157 * configure.ac: Replace all uses of changequote in macro arguments
9158 with proper quoting.
9160 2010-02-19 Jakub Jelinek <jakub@redhat.com>
9163 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
9165 2010-02-19 Richard Guenther <rguenther@suse.de>
9167 PR tree-optimization/42944
9168 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
9169 test for aliasing with errno.
9171 2010-02-19 Jakub Jelinek <jakub@redhat.com>
9174 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
9175 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
9176 * dojump.c: Include output.h.
9177 (inv): New inline function.
9178 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
9179 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
9180 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
9181 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
9182 argument, pass it down to other calls.
9183 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
9184 add REG_BR_PROB note to the conditional jump.
9185 * cfgexpand.c (add_reg_br_prob_note): Removed.
9186 (expand_gimple_cond): Don't call it, add the probability
9187 as last argument to jumpif_1/jumpifnot_1.
9188 * Makefile.in (dojump.o): Depend on output.h.
9189 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
9191 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
9192 * stmt.c (do_jump_if_equal): Likewise.
9193 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
9194 * loop-unswitch.c (compare_and_jump_seq): Likewise.
9195 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
9197 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
9198 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
9199 jumpifnot_1 callers.
9200 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
9202 (store_expr): Adjust jumpifnot caller.
9203 (store_constructor): Adjust jumpif caller.
9206 * gimplify.c (gimple_boolify): For __builtin_expect call
9207 gimple_boolify also on its first argument.
9209 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
9211 * configure.ac (gnu-unique-object): Wrap regexps using [] in
9213 (__stack_chk_fail): Ditto. Remove quadrigraphs.
9214 * configure: Regenerated.
9216 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
9218 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
9219 lang_hooks.types_compatible_p instead of comptypes.
9221 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
9223 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
9224 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
9225 if __prefer_thumb__ is defined.
9227 2010-02-18 Martin Jambor <mjambor@suse.cz>
9229 PR tree-optimization/43066
9230 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
9231 array with zero-sized element type.
9233 2010-02-18 Jakub Jelinek <jakub@redhat.com>
9235 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9236 rtx, allocate struct var_loc_node here and return it to the
9237 caller, and only if it is actually needed.
9238 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9239 move it earlier and return immediately if it returns NULL.
9241 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
9243 * config/sparc/gas.h: New file. Restore
9244 TARGET_ASM_NAMED_SECTION to its ELF default.
9245 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9247 * config/sparc/sparc.c (sparc_elf_asm_named_section):
9248 Likewise. Add ATTRIBUTE_UNUSED to prototype.
9249 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9250 after sparc/sysv4.h.
9252 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
9254 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9256 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
9258 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9259 patterns from predicated pattern.
9261 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
9264 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9265 for insn mnemonic suffix.
9267 2010-02-17 Richard Guenther <rguenther@suse.de>
9269 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9272 2010-02-17 Jakub Jelinek <jakub@redhat.com>
9275 * caller-save.c (save_call_clobbered_regs): If BB ends with
9276 a DEBUG_INSN, move any notes in between last real insn and the last
9277 DEBUG_INSN after the last DEBUG_INSN.
9279 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
9281 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9282 Fix return type. Fix argument type. Explain meaning of return value.
9284 2010-02-16 Richard Guenther <rguenther@suse.de>
9286 PR tree-optimization/41043
9287 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
9288 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9290 (vrp_visit_phi_node): ... but only for loop PHI nodes.
9292 2010-02-16 Ira Rosen <irar@il.ibm.com>
9294 PR tree-optimization/43074
9295 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9296 * tree-vect-loop.c (vect_analyze_loop_operations): Add
9297 vectorizable cycles in hybrid SLP check.
9298 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9300 2010-02-16 Richard Guenther <rguenther@suse.de>
9302 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9303 (true_dependence): If memrefs_conflict_p computes must-alias
9304 trust it. Move TBAA check after offset-based disambiguation.
9305 (canon_true_dependence): Likewise.
9307 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
9309 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9310 * doc/invoke.texi: Document it.
9311 * var-tracking.c: Include toplev.h and params.h.
9312 (vt_find_locations): Return bool indicating success. Compute
9313 hash sizes unconditionally. Check new parameter, report.
9314 (variable_tracking_main_1): Check vt_find_locations results and
9315 retry. Renamed from...
9316 (variable_tracking_main): ... this. New wrapper to preserve
9317 flag_var_tracking_assignments.
9318 * Makefile.in (var-tracking.o): Adjust dependencies.
9320 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
9321 Jakub Jelinek <jakub@redhat.com>
9324 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9325 if weak_import attribute is present.
9326 * config/darwin.c (machopic_select_section): Likewise.
9328 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
9330 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9331 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9332 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9333 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9335 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9338 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9341 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9342 Rewrite text to refer to the names.
9344 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
9346 * config/i386/i386-builtin-types.def
9347 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9348 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9349 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9350 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9351 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9352 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9353 IX86_BUILTIN_VPERMIL2PS256.
9354 (MULTI_ARG_4_DF2_DI_I): Defined.
9355 (MULTI_ARG_4_DF2_DI_I1): Defined.
9356 (MULTI_ARG_4_SF2_SI_I): Defined.
9357 (MULTI_ARG_4_SF2_SI_I1): Defined.
9358 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9359 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9360 __builtin_ia32_vpermil2ps256.
9361 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9362 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9363 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
9364 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9365 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9366 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
9367 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9368 CODE_FOR_xop_vpermil2v8sf3.
9369 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9370 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9371 * config/i386/xopintrin.h (_mm_permute2_pd): New.
9372 (_mm256_permute2_pd): New.
9373 (_mm_permute2_ps): New.
9374 (_mm256_permute2_ps): New.
9376 2010-02-15 Nick Clifton <nickc@redhat.com>
9378 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9379 boolean parameters. Use emit_jump_insn when emitting a pop
9380 instruction containing a return insn.
9381 (push): Use 'true' rather than '1' as second parameter to F.
9382 (h8300_expand_prologue): Likewise.
9383 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9384 (h8300_expand_epilogue): Likewise.
9386 2010-02-15 Richard Guenther <rguenther@suse.de>
9389 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9392 2010-02-15 Nick Clifton <nickc@redhat.com>
9394 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9397 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
9399 * intl.c (fake_ngettext): New function.
9400 * intl.h (fake_ngettext): Declare.
9401 (ngettext): Define macro.
9402 * collect2.c (notice_translated): New function.
9403 (main): Use notice_translated and ngettext.
9404 * collect2.h (notice_translated): Declare.
9406 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
9408 * reorg.c (delete_computation): Comment fixes.
9409 * caller-save.c (setup_save_areas): Idem.
9410 * sel-sched-dump.c (dump_lv_set): Idem.
9413 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9415 * config/s390/s390.c (s390_sched_init): New function.
9416 (TARGET_SCHED_INIT): Target hook defined.
9418 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
9419 Jack Howarth <howarth@bromo.med.uc.edu>
9420 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9423 Partial revert of unintended change in fix for PR41605.
9424 * config/darwin.h: Fix typo.
9425 * config/darwin9.h: Same.
9427 2010-02-11 Jakub Jelinek <jakub@redhat.com>
9429 * c-pch.c (pch_init): Clear v.
9431 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
9434 * graphite-scop-detection.c (graphite_can_represent_scev): Call
9435 graphite_can_represent_init for MULT_EXPR.
9437 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
9441 * graphite-sese-to-poly.c (remove_phi): New.
9442 (translate_scalar_reduction_to_array): Call remove_phi.
9444 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
9447 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9448 * graphite-clast-to-gimple.h (gloog): Update declaration.
9449 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9450 * graphite-poly.h (struct poly_bb): Add missing comments.
9451 (struct scop): Add poly_scop_p field.
9453 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9454 * graphite.c (graphite_transform_loops): Build the polyhedral
9455 representation for each scop before code generation.
9456 * sese.c (rename_variables_in_operand): Removed.
9457 (rename_variables_in_expr): Return the renamed expression.
9458 (rename_sese_parameters): New.
9459 * sese.h (rename_sese_parameters): Declared.
9461 2010-02-11 Richard Guenther <rguenther@suse.de>
9463 PR tree-optimization/42998
9464 * tree-ssa-pre.c (create_expression_by_pieces): Treat
9465 POINTER_PLUS_EXPR properly.
9467 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
9468 Changpeng Fang <changpeng.fang@amd.com>
9471 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9472 the cost of an IV candidate when the IV is used in a test against zero.
9474 * gcc.dg/tree-ssa/ivopts-3.c: New.
9476 2010-02-11 Richard Guenther <rguenther@suse.de>
9479 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9480 pointer-vs-decl case by swapping refs. Handle some cases
9481 of pointer-vs-decl disambiguations more conservatively.
9482 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9483 to false after expanding.
9485 2010-02-11 Richard Guenther <rguenther@suse.de>
9488 * gcc.c (process_command): Handle LTO file@offset case more
9491 2010-02-11 Jakub Jelinek <jakub@redhat.com>
9493 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9494 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
9496 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9498 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9499 if MEM's mode size isn't DWARF2_ADDR_SIZE.
9500 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9501 Optimize eq/ne comparisons when both arguments are known to be
9503 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9504 Don't mask operands unnecessarily if they are known to be already
9507 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
9509 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9512 2010-02-10 Richard Guenther <rguenther@suse.de>
9514 PR tree-optimization/43017
9515 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9516 for wrapping signed arithmetic.
9518 2010-02-10 Jakub Jelinek <jakub@redhat.com>
9521 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9522 if no debug info should be emitted for it.
9524 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
9526 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9527 note when flag_exceptions is set.
9529 2010-02-10 Duncan Sands <baldrick@free.fr>
9531 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9533 2010-02-10 Richard Guenther <rguenther@suse.de>
9536 * tree.c (get_unwidened): Handle constants.
9537 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9539 2010-02-10 Martin Jambor <mjambor@suse.cz>
9542 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9543 check for variable argument counts independently.
9545 2010-02-10 Christian Bruel <christian.bruel@st.com>
9548 * config/sh/sh.c (find_barrier): Increase length for non delayed
9549 conditional branches.
9551 2010-02-10 Christian Bruel <christian.bruel@st.com>
9553 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9555 2010-02-10 Jakub Jelinek <jakub@redhat.com>
9557 * builtins.c (set_builtin_user_assembler_name): Also handle
9558 ffs if int is smaller than word.
9560 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
9563 * ira-conflicts.c (get_dup): Remove.
9564 (process_reg_shuffles): Add new parameter. Use it as an
9565 additional guard for copy generation.
9566 (add_insn_allocno_copies): Rewrite.
9568 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
9570 * common.opt (fsched2-use-traces): Preserved for backward
9572 * doc/invoke.texi: Remove the documentation about option
9573 -fsched2-use-traces.
9574 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9575 flag_sched2_use_traces.
9576 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9577 the backward compatibility flag section.
9579 2010-02-09 Richard Guenther <rguenther@suse.de>
9581 PR tree-optimization/43008
9582 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9583 make HEAP variables initialized from global memory if they
9584 are not known builtin functions.
9585 (find_func_aliases): Adjust.
9587 2010-02-09 Richard Guenther <rguenther@suse.de>
9589 PR tree-optimization/43000
9590 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9591 arithmetic manually.
9593 2010-02-08 Jakub Jelinek <jakub@redhat.com>
9595 PR tree-optimization/42931
9596 * tree-loop-linear.c (try_interchange_loops): Don't call
9597 double_int_mul if estimated_loop_iterations failed.
9599 2010-02-08 Martin Jambor <mjambor@suse.cz>
9602 * tree-sra.c (build_accesses_from_assign): Do not mark in
9603 should_scalarize_away_bitmap if stmt has volatile ops.
9604 (sra_modify_assign): Do not process assigns piecemeal if if stmt
9607 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
9609 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9611 2010-02-07 Adam Nemet <adambnmet@gmail.com>
9613 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9616 2010-02-07 Andrew Pinski <pinskia@gmail.com>
9619 * df-core.c (df_finish_pass): Change type of saved_flags to int.
9621 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
9624 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9625 to unknown_dependence.
9626 (graphite_legal_transform_dr): Handle the unknown_dependence.
9627 (graphite_carried_dependence_level_k): Same.
9629 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
9631 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9633 2010-02-07 Richard Guenther <rguenther@suse.de>
9636 * expr.c (get_inner_reference): Always initialize *pbitsize.
9638 2010-02-07 Richard Guenther <rguenther@suse.de>
9641 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9642 new ARRAY_REFs on variable size element or minimal index arrays.
9644 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9645 gimple_fold_indirect_ref.
9647 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
9650 * arm.c (arm_override_options): Just return if the user has specified
9651 an invalid fpu name.
9653 2010-02-03 Jason Merrill <jason@redhat.com>
9656 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9657 i386_pe_maybe_record_exported_symbol.
9659 2010-02-05 Steve Ellcey <sje@cup.hp.com>
9662 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9663 (pa_delegitimize_address): New function.
9665 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
9667 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9668 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9670 2010-02-05 Richard Guenther <rguenther@suse.de>
9673 * lto-streamer-in.c (get_resolution): Deal with references
9674 to undefined functions.
9676 2010-02-05 Richard Guenther <rguenther@suse.de>
9678 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9679 (fold_const_aggregate_ref): Likewise.
9680 (ccp_fold_stmt): Substitute loads.
9681 (maybe_fold_reference): Verify types before substituting.
9683 (fold_gimple_assign): Unshare properly.
9684 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9686 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
9688 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9689 for rs6000_gen_cell_microcode.
9691 2010-02-04 Richard Guenther <rguenther@suse.de>
9693 PR rtl-optimization/42952
9694 * dse.c (const_or_frame_p): Remove MEM handling.
9696 2010-02-04 Nick Clifton <nickc@redhat.com>
9698 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9699 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9700 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9701 (mn10300_asm_output_mi_thunk): New function.
9702 (mn10300_can_output_mu_thunk): New function.
9703 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9704 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
9705 (FUNCTION_ARG): Delete incorrect comment.
9707 2010-02-03 Jason Merrill <jason@redhat.com>
9710 * fold-const.c (operand_equal_p): Handle erroneous types.
9712 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
9714 * config/h8300/h8300.md (can_delay): Fix attibute condition.
9716 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
9718 PR rtl-optimization/42941
9719 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9722 2010-02-03 Jason Merrill <jason@redhat.com>
9725 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9727 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
9730 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
9731 (cselib_reset_table): Renamed from...
9732 (cselib_reset_table_with_next_value): ... this.
9733 (cselib_get_next_uid): Renamed from...
9734 (cselib_get_next_unknown_value): ... this.
9735 * cselib.c (next_uid): Renamed from...
9736 (next_unknown_value): ... this.
9737 (cselib_clear_table): Adjust.
9738 (cselib_reset_table): Adjust. Renamed from...
9739 (cselib_reset_table_with_next_value): ... this.
9740 (cselib_get_next_uid): Adjust. Renamed from...
9741 (cselib_get_next_unknown_value): ... this.
9742 (get_value_hash): Use hash.
9743 (cselib_hash_rtx): Likewise.
9744 (new_cselib_val): Adjust. Set and dump uid.
9745 (cselib_lookup_mem): Pass next_uid as hash.
9746 (cselib_subst_to_values): Likewise.
9747 (cselib_log_lookup): Dump uid.
9748 (cselib_lookup): Pass next_uid as hash. Adjust.
9749 (cselib_process_insn): Adjust.
9750 (cselib_init): Initialize next_uid.
9751 (cselib_finish): Adjust.
9752 (dump_cselib_table): Likewise.
9753 * dse.c (canon_address): Dump value uid.
9754 * print-rtl.c (print_rtx): Print value uid.
9755 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9757 (dv_uid): New function, sort of renamed from...
9758 (dv_htab_hash): ... this, reimplemented in terms of it and...
9759 (dv_uid2hash): ... this. New.
9760 (variable_htab_eq): Drop excess assertions.
9761 (tie_break_pointers): Removed.
9762 (canon_value_cmp): Compare uids.
9763 (variable_post_merge_New_vals): Print uids.
9764 (vt_add_function_parameters): Adjust.
9765 (vt_initialize): Reset table. Adjust.
9767 2010-02-03 Richard Guenther <rguenther@suse.de>
9769 PR tree-optimization/42944
9770 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9771 (call_may_clobber_ref_p_1): Likewise. Properly handle
9772 malloc and calloc clobbering errno.
9774 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
9776 * doc/invoke.texi: Fix name of sched1 dump.
9778 * opts.c (decode_options): Set flag_tree_switch_conversion
9779 only conditionally on optimize >= 2.
9781 * gcse.c: Assorted comment fixes in pass description.
9783 2010-02-03 Anthony Green <green@moxielogic.com>
9785 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9786 nop padding in order to maintain alignment of storage location of
9787 target function address.
9788 (moxie_trampoline_init): Store target function address at newly
9790 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9792 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9794 2010-02-03 Richard Guenther <rguenther@suse.de>
9797 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9799 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9801 * config.gcc: Reenable check for obsolete targets.
9802 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9803 mips-sgi-irix6.[0-4]*.
9805 2010-02-02 Nick Clifton <nickc@redhat.com>
9807 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9808 constant size of 4 as being the same as 0.
9809 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9810 can take values in the range 0..4.
9812 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
9815 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9816 as _darwin10_Unwind_FindEnclosingFunction().
9817 * libgcc-libsystem.ver: New.
9819 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
9822 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9823 implicitly set registers.
9825 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
9827 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9828 (arm_override_options): Allow automatic selection of the thread
9829 pointer register if thumb2.
9830 (legitimize_pic_address): Improve code sequences for Thumb2.
9831 (arm_call_tls_get_addr): Likewise.
9832 (legitimize_tls_address): Likewise.
9833 * arm.md (pic_load_addr_arm): Delete. Replace with ...
9834 (pic_load_addr_32bit): ... this. New named pattern.
9835 * thumb2.md (pic_load_addr_thumb2): Delete.
9836 (pic_load_dot_plus_four): Delete.
9837 (tls_load_dot_plus_four): New named pattern.
9839 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9842 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9843 Document fix for TLS bug.
9845 2010-01-31 Richard Guenther <rguenther@suse.de>
9847 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9848 conservatively correct.
9850 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9854 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
9856 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9858 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9860 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9862 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
9864 * config.gcc: Adjust order of makefile fragments for mingw targets.
9866 2010-01-31 Richard Guenther <rguenther@suse.de>
9869 * gimplify.c (gimplify_init_constructor): For volatile LHS
9870 initialize a temporary.
9872 2010-01-31 Matthias Klose <doko@ubuntu.com>
9874 * configure.ac: Fix __stack_chk_fail check for cross builds configured
9876 * configure: Regenerate.
9878 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
9880 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9881 the same alias set and their sizes different constantness.
9882 (aliasing_component_refs_p): Revert 2009-10-24 change.
9884 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9886 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9889 2010-01-29 Richard Guenther <rguenther@suse.de>
9891 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9892 Assert we successfully updated the call.
9894 2010-01-29 Jakub Jelinek <jakub@redhat.com>
9896 PR rtl-optimization/42889
9897 * df.h (df_set_bb_dirty_nonlr): New prototype.
9898 * df-core.c (df_set_bb_dirty_nonlr): New function.
9899 * df-scan.c (df_insn_rescan): Call it instead of
9900 df_set_bb_dirty for DEBUG_INSNs.
9902 2010-01-29 Richard Guenther <rguenther@suse.de>
9905 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9906 quadratic behavior in most cases.
9908 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
9911 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9912 in the call to gen_x86_movsicc_0_m1.
9914 2010-01-28 Richard Guenther <rguenther@suse.de>
9916 PR tree-optimization/42871
9917 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9919 2010-01-28 Richard Guenther <rguenther@suse.de>
9921 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9922 into call arguments.
9924 2010-01-28 Richard Guenther <rguenther@suse.de>
9927 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9928 the forwarder if the destination is an EH landing pad.
9930 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
9932 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
9933 block list passed to gimple_duplicate_sese_tail.
9934 (parallelize_loops): Avoid parallelization when the function
9936 Avoid parallelization when the preheader is IRREDUCIBLE.
9937 Try to optimize when estimated_loop_iterations_int is unresolved.
9938 Add the loop's location to the dump file.
9939 * tree-cfg.c (add_phi_args_after_redirect): Remove.
9940 (gimple_duplicate_sese_tail): Remove the check for the latch.
9941 Redirect nexits to the exit block.
9942 Remove handling of the incoming edges to the latch.
9943 Redirect the backedge from the copied latch to the exit bb.
9945 2010-01-28 Michael Matz <matz@suse.de>
9948 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9949 Wrap force_reg into a sequence, emit it before user.
9951 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
9953 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9955 (arm_legacy_rev): Likewise.
9956 (thumb_legacy_rev): Likewise.
9958 2010-01-27 Jakub Jelinek <jakub@redhat.com>
9960 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9961 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
9962 on MEM's address failed, try avoid_constant_pool_reference and
9963 recurse if it returned something different.
9964 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9965 address, try avoid_constant_pool_reference and recurse if it
9966 returned something different.
9967 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9968 address and avoid_constant_pool_reference returned something
9969 different, don't set have_address.
9971 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
9974 * var-tracking.c (val_store): Add modified argument, obey it.
9976 (count_uses): Move down logging of main.
9977 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
9978 don't need resolution.
9979 (emit_notes_in_bb): Likewise.
9981 2010-01-27 Richard Guenther <rguenther@suse.de>
9984 * tree-inline.c (remap_decl): Delay remapping of SSA name
9985 default definitions until we need them.
9987 2010-01-27 Jakub Jelinek <jakub@redhat.com>
9989 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9990 (rs6000_delegitimize_address): New function.
9992 * config/s390/s390.c (s390_delegitimize_address): Call
9993 delegitimize_mem_from_attrs.
9996 * tree-inline.c (cannot_copy_type_1): Removed.
9997 (copy_forbidden): Don't forbid copying of functions containing
9998 records/unions with variable length fields.
10000 2010-01-27 Christian Bruel <christian.bruel@st.com>
10004 * config/sh/sh.c (find_barrier): Increase length for non delayed
10005 conditional branches.
10007 2010-01-27 Matthias Klose <doko@ubuntu.com>
10009 * configure.ac (gnu-unique-object): Fix ldd version check.
10010 * configure: Regenerate.
10012 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10014 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
10016 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
10017 Test for HAVE_GNU_AS value.
10019 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10021 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
10022 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
10023 INT64_TYPE): Define.
10024 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
10025 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
10026 INT_LEAST64_TYPE): Define.
10027 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
10028 UINT_LEAST64_TYPE): Define.
10029 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
10030 INT_FAST64_TYPE): Define.
10031 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
10032 UINT_FAST64_TYPE): Define.
10033 (INTMAX_TYPE, UINTMAX_TYPE): Define.
10034 (INTPTR_TYPE, UINTPTR_TYPE): Define.
10035 (SIG_ATOMIC_TYPE): Define.
10037 2010-01-26 Richard Guenther <rguenther@suse.de>
10039 * df-scan.c (df_scan_set_bb_info): Remove assert.
10040 (df_insn_rescan_debug_internal): Merge asserts.
10041 (df_install_ref): Likewise.
10042 (df_mark_reg): Use bitmap_set_range.
10043 (df_hard_reg_used_p): Remove assert.
10044 (df_hard_reg_used_count): Likewise.
10046 2010-01-26 Richard Guenther <rguenther@suse.de>
10048 PR rtl-optimization/42685
10049 * web.c (web_main): Ignore DEBUG_INSNs.
10051 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
10053 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
10055 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
10056 Fix types of fndecl and arglist parameters.
10058 2010-01-26 Richard Guenther <rguenther@suse.de>
10060 PR middle-end/42806
10061 * tree-eh.c (unsplit_eh): Skip debug insns.
10063 2010-01-26 Richard Guenther <rguenther@suse.de>
10065 PR tree-optimization/42250
10066 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
10068 2010-01-26 Jakub Jelinek <jakub@redhat.com>
10071 * omp-low.c (expand_omp_sections): Only use single_pred if
10072 l2_bb is single_pred_p.
10074 2010-01-25 Christian Bruel <christian.bruel@st.com>
10077 * config/sh/sh.c (find_barrier): Increase length for non delayed
10078 conditional branches.
10079 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
10081 2010-01-24 David S. Miller <davem@davemloft.net>
10083 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
10084 define if not using GAS.
10085 * config/sparc/sparc.c (sparc_elf_asm_named_section):
10086 Likewise. Delete SECTION_MERGE code, which is only applicable
10089 2010-01-24 Mark Mitchell <mark@codesourcery.com>
10092 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
10093 mangling of va_list in system headers.
10095 2010-01-23 Toon Moene <toon@moene.org>
10097 * tree-predcom.c (combine_chains): Return NULL, not false.
10099 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
10101 * tree-loop-distribution.c (distribute_loop): Fix declaration and
10102 initialization of variable res to agree with return type.
10104 2010-01-22 Steve Ellcey <sje@cup.hp.com>
10106 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
10107 * tree-sra.c: Add include of expr.h.
10109 2010-01-22 Jakub Jelinek <jakub@redhat.com>
10111 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
10112 insert the debug stmt on the single non-EH edge from the stmt.
10114 2010-01-22 Richard Henderson <rth@redhat.com>
10117 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
10118 the RHS until after generate_subtree_copies has insertted its
10119 code before the current statement.
10121 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
10123 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
10125 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
10127 2010-01-21 Martin Jambor <mjambor@suse.cz>
10129 PR tree-optimization/42585
10130 * tree-sra.c (struct access): New field grp_total_scalarization.
10131 (dump_access): Dump the new field.
10132 (should_scalarize_away_bitmap): New variable.
10133 (cannot_scalarize_away_bitmap): Likewise.
10134 (sra_initialize): Allocate new bitmaps.
10135 (sra_deinitialize): Free new bitmaps.
10136 (create_access_1): New function.
10137 (create_access): Parts moved to create_access_1.
10138 (type_consists_of_records_p): New function.
10139 (completely_scalarize_record): Likewise.
10140 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
10141 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
10142 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
10144 (analyze_all_variable_accesses): Completely scalarize small eligible
10147 2010-01-21 Martin Jambor <mjambor@suse.cz>
10149 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
10151 2010-01-21 Andrew Haley <aph@redhat.com>
10153 * gcc.c (process_command): Move lang_specific_driver before
10154 setting cc_libexec_prefix.
10156 2010-01-21 Richard Guenther <rguenther@suse.de>
10158 PR middle-end/19988
10159 * fold-const.c (negate_expr_p): Pretend only negative
10160 real constants are easily negatable.
10162 2010-01-20 Janis Johnson <janis187@us.ibm.com>
10163 Jason Merrill <jason@redhat.com>
10165 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
10166 (TYPE_TRANSPARENT_AGGR): this, for union and record.
10167 * calls.c (initialize argument_information): Handle it.
10168 * c-common.c (handle_transparent_union_attribute): Use new name.
10169 * c-decl.c (finish_struct): Ditto.
10170 * c-typeck.c (type_lists_compatible_p): Ditto.
10171 (convert_for_assignment): Use new name and also handle record.
10172 * function.c (aggregate_value_p): Handle it.
10173 (pass_by_reference): Ditto.
10174 (assign_parm_data_types): Ditto.
10175 * print-tree.c (print_node): Ditto.
10176 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
10177 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
10178 * tree.c (first_field): New fn.
10180 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
10183 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
10184 even when linking statically, for now.
10186 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
10189 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
10190 without a cselib val.
10191 (count_uses): Accept MO_VAL_SET with no val on stores.
10192 (add_stores): Likewise.
10194 2010-01-20 Jakub Jelinek <jakub@redhat.com>
10196 * var-tracking.c (check_value_val): Add a compile time assertion.
10197 (dv_is_decl_p): Simplify.
10198 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
10199 gcc_assert if ENABLE_CHECKING.
10201 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
10204 * var-tracking.c: Include tree-flow.h.
10205 (mem_dies_at_call): New.
10206 (dataflow_set_preserve_mem_locs): Use it.
10207 (dataflow_set_remove_mem_locs): Likewise.
10208 (dump_var): Renamed from dump_variable. Adjust all callers.
10209 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
10210 * Makefile.in (var-tracking.o): Adjust deps.
10212 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
10214 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
10216 2010-01-20 Richard Guenther <rguenther@suse.de>
10218 PR tree-optimization/42717
10219 * tree-ssa-dce.c (get_live_post_dom): Remove.
10220 (forward_edge_to_pdom): Take an arbitrary edge to copy
10221 degenerate PHI args from.
10222 (remove_dead_stmt): Use the first post-dominator even if it
10223 does not contain live statements as redirection destination.
10225 2010-01-20 Richard Guenther <rguenther@suse.de>
10227 * tree-inline.c (estimate_num_insns): Handle EH builtins.
10229 2010-01-20 Jakub Jelinek <jakub@redhat.com>
10231 * sel-sched.c (create_speculation_check): Remove set but not used
10233 (try_transformation_cache): Remove set but not used variable ds.
10234 (calculate_privileged_insns): Remove set but not used variables
10235 cur_insn and min_spec_insn.
10236 (find_best_expr): Remove set but not used variable avail_n.
10237 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10239 * cgraphunit.c (assemble_thunk): Remove set but not used variable
10241 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10242 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10243 new_scop_exit_edge.
10245 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
10248 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10249 cpu types. Add support for *-sse3 cpu types.
10250 (x86_64-*-*): Ditto.
10252 2010-01-20 Jakub Jelinek <jakub@redhat.com>
10254 PR middle-end/42803
10255 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10256 argument, call initializer_constant_valid_p_1 instead of
10257 initializer_constant_valid_p, pass CACHE to it, return NULL
10258 immediately if first call returns NULL.
10259 (initializer_constant_valid_p_1): New function.
10260 (initializer_constant_valid_p): Use it.
10262 2010-01-20 Thomas Quinot <quinot@adacore.com>
10264 * tree.def (PLACEHOLDER_EXPR): Fix comment.
10266 2010-01-20 Jakub Jelinek <jakub@redhat.com>
10268 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10269 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10270 (loc_list_from_tree): Don't handle unsigned division. Handle
10271 signed modulo using DW_OP_{over,over,div,mul,minus}.
10272 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10273 modulo instead of signed.
10275 2010-01-20 DJ Delorie <dj@redhat.com>
10277 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10279 (h8300_emit_stack_adjustment): Propogate it.
10281 (h8300_expand_prologue): Likewise.
10282 (h8300_expand_epilogue): Likewise.
10284 2010-01-19 Michael Matz <matz@suse.de>
10286 PR tree-optimization/41783
10287 * tree-data-ref.c (toplevel): Include flags.h.
10288 (dump_data_dependence_relation): Also dump the inputs if the
10289 result will be unknown.
10290 (split_constant_offset_1): Look through some conversions.
10291 * tree-predcom.c (determine_roots_comp): Restart a new chain if
10292 the offset from last element is too large.
10293 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10294 (reassociate_to_the_same_stmt): Handle vector registers.
10295 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10296 (e.g. conversions).
10297 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10298 wide_prolog_niters argument, emit widening instructions.
10299 (vect_do_peeling_for_alignment): Adjust caller, use widened
10300 variant of the iteration cound.
10301 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10303 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10306 * config/arm/neon-testgen.m (emit_automatics): New parameter
10307 features. Adjust for Fixed_return_reg feature.
10308 (test_intrinsic): Call emit_automatics with new feature.
10309 * config/arm/neon.ml: Update copyright years.
10310 (features): New Fixed_return_reg feature.
10311 (ops): Update feature for Vget_low.
10313 2010-01-19 Jakub Jelinek <jakub@redhat.com>
10315 PR tree-optimization/42719
10316 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10320 * fwprop.c (all_uses_available_at): Return false if def_set dest
10321 is a REG that is used in def_insn.
10323 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
10325 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10327 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10328 Add argument names.
10330 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10332 * target.h (struct gcc_target) <secondary_reload>: Change type
10333 of last argument to secondary_reload_info *.
10335 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
10338 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10339 memory references with unaligned offsets. Remove CQImode handling.
10340 (unaligned_memory_operand): Return 1 for memory references with
10341 unaligned offsets. Remove CQImode handling.
10343 2010-01-18 Richard Guenther <rguenther@suse.de>
10345 PR middle-end/39954
10346 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10349 2010-01-18 Richard Guenther <rguenther@suse.de>
10351 PR tree-optimization/42781
10352 * tree-ssa-structalias.c (find_what_var_points_to): Skip
10353 restrict processing only if the original variable was artificial.
10355 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
10357 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10358 find number of popped argument bytes.
10360 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10361 Fix the text that describes the return value for invalid insns.
10363 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
10365 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10366 Clarify what 'cost of the -dependence' is. Fix quoting.
10368 * toplev.c (default_get_pch_validity): Rename argument to "sz".
10369 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10371 2010-01-17 Jakub Jelinek <jakub@redhat.com>
10373 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10374 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10376 2010-01-17 Richard Guenther <rguenther@suse.de>
10378 PR middle-end/42248
10379 * function.c (split_complex_args): Take a VEC to modify.
10380 (assign_parms_augmented_arg_list): Build a VEC instead of
10381 a chain of PARM_DECLs.
10382 (assign_parms_unsplit_complex): Take a VEC of arguments.
10383 Do not fixup unmodified parms.
10384 (assign_parms): Deal with the VEC.
10385 (gimplify_parameters): Likewise.
10387 2010-01-17 Richard Guenther <rguenther@suse.de>
10389 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10390 node existence check.
10391 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10392 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10393 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10394 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10395 (gimple_execute_on_growing_pred): Likewise.
10397 2010-01-17 Richard Guenther <rguenther@suse.de>
10399 PR tree-optimization/42773
10400 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10401 (compute_antic_aux): Likewise.
10402 (compute_partial_antic_aux): Likewise.
10404 2010-01-17 Jie Zhang <jie.zhang@analog.com>
10407 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10410 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
10412 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10415 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10416 Fix markup for strict argument.
10418 (TARGET_SCHED_REORDER2): Fix argument types.
10420 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10421 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10423 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10424 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10426 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10429 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10430 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10431 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10432 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10433 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10435 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10437 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10439 (TARGET_ASM_RELOC_RW_MASK): Add return type.
10440 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10442 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10444 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10447 (TARGET_ASM_NAMED_SECTION): Fix argument list.
10449 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10450 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10452 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10454 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10456 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10457 referring to it. Fix language.
10459 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10461 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10463 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10465 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10467 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10468 '@var{stream}. Remove stray 'and'.
10470 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10472 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10474 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10476 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10477 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10479 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10480 Fix description of return value.
10481 Rename argument "sz" to "len."
10483 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10484 Clarify meaning of 'true' return value.
10486 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10488 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10489 rep_mode versus mode_rep.
10491 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10493 (TARGET_BUILTIN_DECL): Fix name.
10495 (TARGET_COMMUTATIVE_P): Fix type of first argument.
10497 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10499 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10501 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10503 (TARGET_RELAXED_ORDERING): Use @deftypevr.
10505 (TARGET_GET_DRAP_RTX): Note that this is a hook.
10508 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10509 Rename argument tm_fn to md_fn.
10511 (TARGET_OPTION_PRINT): Fix argument list.
10513 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
10516 * config/i386/i386.c (ix86_fixup_binary_operands):
10517 Revert FMA4 fixup of operands.
10519 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10522 * Makefile.in (write_entries_to_file, install-plugin):
10523 Use \012 instead of \n with tr.
10525 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
10527 * configure.ac (HAVE_AS_REF): New C macro.
10528 * configure: Regenerate.
10529 * config.in: Likewise.
10530 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10532 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10535 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
10537 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10539 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10541 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10543 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10545 (TARGET_IN_SMALL_DATA_P): Fix argument type.
10547 (TARGET_BINDS_LOCAL_P): Fix argument type.
10549 (TARGET_ASM_FILE_END): Use prototype.
10551 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10553 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10555 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10557 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10559 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10560 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10562 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10563 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10565 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10566 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10567 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10568 (TARGET_ADDR_SPACE_CONVERT): Likewise.
10570 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10572 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10574 (TARGET_INIT_BUILTINS): Use prototype.
10576 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10577 Put 'const char *' in braces. Fix parameter types.
10578 (TARGET_INVALID_CONVERSION): Fix parameter types.
10579 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10580 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10582 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10585 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10587 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10589 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
10591 * doc/tm.texi (TARGET_HELP): Fix return type.
10593 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10594 in braces. Fix argument types.
10596 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10598 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10600 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10602 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10603 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10605 (TARGET_MANGLE_TYPE): Fix argument types.
10607 (TARGET_IRA_COVER_CLASSES): Use prototype.
10609 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
10611 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10613 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10615 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10617 (TARGET_CALLEE_COPIES): Fix argument types.
10619 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10621 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10623 (TARGET_FUNCTION_VALUE): Fix argument types.
10625 (TARGET_RETURN_IN_MSB): Fix argument type.
10627 (TARGET_RETURN_IN_MEMORY): Fix argument types.
10629 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10631 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10633 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10634 agree with return type.
10636 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10638 2010-01-15 Jing Yu <jingyu@google.com>
10640 PR rtl-optimization/42691
10641 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10642 a pseudo to a constant and are merged, and adjust comments.
10644 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
10646 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10648 2010-01-15 Richard Guenther <rguenther@suse.de>
10650 PR middle-end/42739
10651 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10652 labels of computed or non-local gotos to the destination.
10653 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10654 landing pad label is the first label.
10656 2010-01-15 Richard Guenther <rguenther@suse.de>
10658 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10660 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10663 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10664 to allow generation of the xssqrtdp instruction on power7.
10665 (sqrtdf2_fpr): Ditto.
10667 2010-01-14 Jakub Jelinek <jakub@redhat.com>
10669 PR middle-end/42674
10670 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10671 functions with noreturn attribute.
10674 * varasm.c (declare_weak): Add weak attribute to decl if it
10675 doesn't have one already.
10676 (assemble_external): Only add decls to weak_decls if they also
10677 have weak attribute.
10679 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
10681 * var-tracking.c (var_reg_delete): Don't delete the association
10682 between REGs and values or one-part variables if the register
10685 2010-01-14 Jakub Jelinek <jakub@redhat.com>
10688 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10689 because its first operand is a non-localized variable.
10691 2010-01-14 Martin Jambor <mjambor@suse.cz>
10693 PR tree-optimization/42706
10694 * tree-sra.c (encountered_recursive_call): New variable.
10695 (encountered_unchangable_recursive_call): Likewise.
10696 (sra_initialize): Initialize both new variables.
10697 (callsite_has_enough_arguments_p): New function.
10698 (scan_function): Call decl and flags check only for IPA-SRA, check
10699 whether there is a recursive call and whether it has enough arguments.
10700 (all_callers_have_enough_arguments_p): New function.
10701 (convert_callers): Look for recursive calls only when
10702 encountered_recursive_call is set.
10703 (ipa_early_sra): Bail out either if
10704 !all_callers_have_enough_arguments_p or
10705 encountered_unchangable_recursive_call.
10707 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
10709 * sel-sched.c: Add 2010 to copyright years.
10710 * sel-sched-ir.c: Likewise.
10711 * sel-sched-ir.h: Likewise.
10713 2010-01-14 Martin Jambor <mjambor@suse.cz>
10715 PR tree-optimization/42714
10716 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10717 constructors specially.
10719 2010-01-14 Andi Kleen <ak@linux.intel.com>
10721 * config/i386/drivers-i386.c (detect_caches_intel):
10722 Add l2sizekb parameter and fill in.
10723 (host_detect_local_cpu): Add l2sizekb, fill in.
10724 Add Atom small cache heuristic.
10726 2010-01-14 Andi Kleen <ak@linux.intel.com>
10728 * config/i386/drivers-i386.c (detect_caches_cpuid4):
10729 Add level3 parameter and fill in.
10730 (detect_caches_intel): Handle level3 cache.
10732 2010-01-14 Andi Kleen <ak@linux.intel.com>
10734 * config/i386/drivers-i386.c (host_detect_local_cpu):
10735 Fix core duo detection.
10737 2010-01-14 Andi Kleen <ak@linux.intel.com>
10739 * config/i386/drivers-i386.c (host_detect_local_cpu):
10740 Fix Atom detection.
10742 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
10744 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10745 (rs6000_variable_issue_1): this. Use...
10746 (rs6000_variable_issue): here. Reimplement. Print debug info.
10748 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
10750 * sel-sched-ir.c (sel_restore_other_notes): Rename to
10751 sel_restore_notes. Update all callers. Call reemit_notes
10754 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
10756 PR rtl-optimization/42246
10757 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10760 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
10762 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10763 all successors is the same as number of successors in current region.
10765 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
10767 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10768 to rename is not separable. Otherwise check that its LHS is not NULL.
10770 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
10772 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
10774 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
10776 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10777 available registers when failed to discover LHS register class.
10778 Fix indentation. Update comment.
10780 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
10781 Alexander Monakov <amonakov@ispras.ru>
10783 PR rtl-optimization/42389
10784 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10786 (advance_state_on_fence): Likewise.
10787 (sel_target_adjust_priority): Print debug output only when
10788 sched_verbose >= 4, not 2.
10789 (get_expr_cost): Do not issue all unique insns on the next cycle.
10790 (fill_insns): Initialize can_issue_more from the value saved
10792 * sel-sched-ir.c (flist_add): New parameter issue_more.
10793 Init FENCE_ISSUE_MORE with it.
10794 (merge_fences): Likewise.
10795 (init_fences): Update call to flist_add.
10796 (add_to_fences, add_clean_fence_to_fences)
10797 (add_dirty_fence_to_fences): Likewise.
10798 (move_fence_to_fences): Update call to merge_fences.
10799 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10801 * sel-sched-ir.h (struct _fence): New field issue_more.
10802 (FENCE_ISSUE_MORE): New accessor macro.
10804 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
10806 PR rtl-optimization/42388
10807 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10808 that have no predecessors nor successors. Do not call move_bb_info
10809 for empty blocks outside of current region.
10811 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
10813 PR rtl-optimization/42294
10814 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10815 * sel-sched.c (move_exprs_to_boundary): Transitively add all
10816 originators' originators.
10818 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
10820 PR rtl-optimization/39453
10821 PR rtl-optimization/42246
10822 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10824 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10826 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
10827 Alexander Monakov <amonakov@ispras.ru>
10829 PR middle-end/42245
10830 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
10831 (maybe_tidy_empty_bb): ... here. Make static. Add new
10832 argument. Update all callers.
10833 (tidy_control_flow): ... and here. Recompute topological order
10834 of basic blocks in region if necessary.
10835 (sel_redirect_edge_and_branch): Change return type. Return true
10836 if topological order might have been invalidated.
10837 (purge_empty_blocks): Export and move from...
10838 * sel-sched.c (purge_empty_blocks): ... here.
10839 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10840 (maybe_tidy_empty_bb): Delete prototype.
10841 (purge_empty_blocks): Declare.
10843 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
10845 PR rtl-optimization/42249
10846 * sel-sched.c (try_replace_dest_reg): When chosen register
10847 and original register is the same, do not bail out early, but
10848 still check all original insns for validity of replacing destination
10849 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10852 2010-01-14 Jakub Jelinek <jakub@redhat.com>
10855 Port from no-undefined-overflow branch:
10856 2009-03-09 Richard Guenther <rguenther@suse.de>
10858 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10860 2010-01-14 Richard Guenther <rguenther@suse.de>
10863 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10865 2010-01-14 Ira Rosen <irar@il.ibm.com>
10867 PR tree-optimization/42709
10868 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10869 as scalar type in creation of constant vector operand.
10871 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
10874 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10875 (check-parallel-%): Match `testsuite' directory component only
10878 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
10880 PR translation/39521
10881 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10884 2010-01-13 Richard Guenther <rguenther@suse.de>
10886 PR tree-optimization/42730
10887 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10890 2010-01-13 Steve Ellcey <sje@cup.hp.com>
10893 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10894 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10897 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
10899 * config/bfin/libgcc-bfin.ver: Regenerate based on current
10900 libgcc-std.ver. Add entries for ___smulsi3_highpart and
10901 ___umulsi3_highpart.
10903 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10904 rather than schedule_insns if the pass is enabled.
10906 2010-01-13 Martin Jambor <mjambor@suse.cz>
10908 PR tree-optimization/42704
10909 * tree-sra.c (sra_modify_assign): Do not delete assignments to
10912 2010-01-13 Martin Jambor <mjambor@suse.cz>
10914 PR tree-optimization/42703
10915 * tree-sra.c (analyze_access_subtree): Check that we can build a
10916 reference to the original data within the aggregate.
10918 2010-01-13 Richard Guenther <rguenther@suse.de>
10920 PR tree-optimization/42705
10921 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10923 2010-01-13 Richard Guenther <rguenther@suse.de>
10925 PR middle-end/42716
10926 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10928 2010-01-13 Jakub Jelinek <jakub@redhat.com>
10931 * var-tracking.c (values_to_unmark): New variable.
10932 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10933 values_to_unmark vector. Moved body to...
10934 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
10935 instead queue it into values_to_unmark vector.
10936 (vt_find_locations): Free values_to_unmark vector.
10938 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
10940 * config/s390/s390.c (override_options): Set
10941 default of max-pending-list-length to 256
10943 2010-01-13 Richard Guenther <rguenther@suse.de>
10946 * tree-pass.h (PROP_gimple_lcx): New.
10947 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10948 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10949 before the final cleanup_eh.
10950 (dump_properties): Dump PROP_gimple_lcx.
10951 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10952 (tree_lower_complex_O0): Remove.
10953 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10954 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
10955 tree_lower_complex, schedule TODO_update_ssa.
10956 * lto-streamer-out.c (output_function): Stream the functions
10958 * lto-streamer-in.c (input_function): Likewise.
10959 (lto_read_body): Do not override them here.
10961 2010-01-12 Joseph Myers <joseph@codesourcery.com>
10964 * c-typeck.c (build_c_cast): Fold value cast to union type before
10965 wrapping it in a CONSTRUCTOR.
10967 2010-01-12 Jakub Jelinek <jakub@redhat.com>
10969 PR rtl-optimization/42699
10970 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
10973 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10975 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10976 SUBTARGET_WARN_UNUSED_SPEC): Move ...
10977 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10978 SUBTARGET_WARN_UNUSED_SPEC): ... here
10979 * config/mips/iris5.h (LIBGCC_SPEC): Define.
10981 2010-01-12 Julian Brown <julian@codesourcery.com>
10983 * config/arm/neon-schedgen.ml (Utils): Don't try to
10984 open missing module.
10985 (find_with_result): New.
10987 2010-01-12 Jakub Jelinek <jakub@redhat.com>
10990 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
10991 sharing when canonicalizing ({lt,ge}u (plus a b) b).
10993 PR tree-optimization/42645
10994 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
10995 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
10996 decl_map, set processing_debug_stmt to -1 and return name without
10999 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
11001 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
11002 binutils version, and reword target configuration description.
11004 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
11006 * config/avr/avr.h (LINKER_NAME): Remove.
11008 2010-01-11 Janis Johnson <janis187@us.ibm.com>
11011 * config/rs6000/rs6000.c (rs6000_override_options): On targets
11012 that support VSX, warn for -mno-altivec if vsx is not disabled,
11015 2010-01-11 Joseph Myers <joseph@codesourcery.com>
11016 Shujing Zhao <pearly.zhao@oracle.com>
11018 PR translation/42469
11019 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
11020 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
11021 character between option name and help text.
11022 * c.opt (imultilib): Likewise.
11024 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
11026 * lto-streamer-out.c (output_unreferenced_globals): Output static
11029 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
11031 PR rtl-optimization/42621
11032 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
11033 optimizing for size.
11034 (duplicate_computed_gotos): Remove now-redundant check.
11036 2010-01-10 Steve Ellcey <sje@cup.hp.com>
11039 * configure.ac: Save and restore LDFLAGS and LIBS
11040 * configure: Regenerate.
11042 2010-01-10 Richard Guenther <rguenther@suse.de>
11044 PR middle-end/42667
11045 * builtins.c (fold_builtin_strlen): Add type argument and
11046 convert the resulting length to it.
11047 (fold_builtin_1): Adjust.
11049 2010-01-09 Jakub Jelinek <jakub@redhat.com>
11051 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
11052 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
11054 (num_insns_constant_wide): Adjust for that change.
11056 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
11059 * web.c (union_defs): Add used argument, to combine uses of
11060 uninitialized regs.
11061 (entry_register): Adjust type and tests of used argument.
11062 (web_main): Widen used for new use. Pass it to union_defs.
11063 * df.h (union_defs): Adjust prototype.
11065 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
11068 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
11069 uses in new incoming argument. Free body.
11070 (reset_debug_uses_in_loop): New.
11071 (analyze_insn_to_expand_var): Call the latter if the former found
11072 anything. Fix whitespace. Reject invalid dest overlaps before
11073 going through all insns in the loop.
11075 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
11078 * haifa-sched.c (dying_use_p): Debug insns don't count.
11080 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
11082 PR middle-end/42363
11083 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
11084 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
11085 (verify_gimple_call): Reject LHS in noreturn calls.
11087 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
11091 * tree-vect-loop-manip.c (adjust_info): New type.
11092 (adjust_vec): New pointer to vector.
11093 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
11094 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
11095 (slpeel_update_phis_for_duplicate_loop): Use them.
11096 (slpeel_update_phi_nodes_for_guard1): Likewise.
11097 (slpeel_update_phi_nodes_for_guard2): Likewise.
11098 (slpeel_tree_peel_loop_to_edge): Likewise.
11099 (vect_update_ivs_after_vectorizer): Likewise.
11101 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
11103 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
11104 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
11106 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
11108 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
11109 bogus uninitialized warning.
11111 2010-01-09 Richard Guenther <rguenther@suse.de>
11113 PR middle-end/42512
11114 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
11115 the evolution is compatible with the initial condition.
11117 2010-01-09 Jakub Jelinek <jakub@redhat.com>
11119 * gcc.c (process_command): Update copyright notice dates.
11120 * gcov.c (print_version): Likewise.
11121 * gcov-dump.c (print_version): Likewise.
11122 * mips-tfile.c (main): Likewise.
11123 * mips-tdump.c (main): Likewise.
11125 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
11128 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
11130 (rotlhi3_8): Delete.
11132 (rotlsi3_8): Delete.
11133 (rotlsi3_16): Delete.
11134 (rotlsi3_24): Delete.
11135 (rotl<mode>3): New.
11136 (*rotw<mode>3): New.
11137 (*rotb<mode>3): New.
11138 * config/avr/avr.c (avr_rotate_bytes): New function.
11139 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
11141 2010-01-08 Steve Ellcey <sje@cup.hp.com>
11144 * configure.ac: Modify -rdynamic check.
11145 * configure: Regenerate.
11147 2010-01-08 DJ Delorie <dj@redhat.com>
11149 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
11150 register popping order.
11152 2010-01-08 Richard Guenther <rguenther@suse.de>
11155 * c.opt (fsigned-char): Also let LTO handle this option.
11156 (funsigned-char): Likewise.
11158 2010-01-07 Richard Guenther <rguenther@suse.de>
11160 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
11161 (gimple_op): Likewise.
11162 (gimple_op_ptr): Likewise.
11163 (gimple_assign_set_lhs): Remove gcc_assert.
11164 (gimple_assign_set_rhs1): Likewise.
11165 (gimple_assign_set_rhs2): Likewise.
11166 (gimple_call_set_lhs): Likewise.
11167 (gimple_call_set_fn): Likewise.
11168 (gimple_call_set_fndecl): Likewise.
11169 (gimple_call_fndecl): Likewise.
11170 (gimple_call_return_type): Likewise.
11171 (gimple_call_set_chain): Likewise.
11172 (gimple_call_num_args): Likewise.
11173 (gimple_call_set_arg): Likewise.
11174 (gimple_cond_set_code): Likewise.
11175 (gimple_cond_set_lhs): Likewise.
11176 (gimple_cond_set_rhs): Likewise.
11177 (gimple_cond_set_true_label): Likewise.
11178 (gimple_cond_set_false_label): Likewise.
11179 (gimple_label_set_label): Likewise.
11180 (gimple_goto_set_dest): Likewise.
11181 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
11182 (gimple_debug_bind_get_value): Likewise.
11183 (gimple_debug_bind_get_value_ptr): Likewise.
11184 (gimple_debug_bind_set_var): Likewise.
11185 (gimple_debug_bind_set_value): Likewise.
11186 (gimple_debug_bind_reset_value): Likewise.
11187 (gimple_debug_bind_has_value_p): Likewise.
11188 (gimple_return_retval_ptr): Remove gcc_assert.
11189 (gimple_return_retval): Likewise.
11190 (gimple_return_set_retval): Likewise.
11191 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
11192 (safe_referenced_var_iterator): Remove.
11193 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
11194 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
11195 (fill_referenced_var_vec): Remove.
11196 (first_readonly_imm_use): Remove redundant gcc_assert.
11197 (phi_arg_index_from_use): Combine gcc_asserts.
11198 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
11199 (first_imm_use_stmt): Remove redundant gcc_assert.
11200 * tree-cfg.c (verify_gimple_call): Verify function and chain
11201 operands. Verify arguments.
11202 (verify_types_in_gimple_stmt): Verify condition code and labels.
11204 2010-01-07 Richard Guenther <rguenther@suse.de>
11206 PR tree-optimization/42641
11207 * sese.c (rename_map_elt_info): Use the SSA name version, do
11210 2010-01-07 Jakub Jelinek <jakub@redhat.com>
11212 PR tree-optimization/42625
11213 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
11214 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
11216 2010-01-07 Duncan Sands <baldrick@free.fr>
11218 * Makefile.in (PLUGIN_HEADERS): Add version.h.
11220 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
11223 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
11224 note itself is not function_invariant_p.
11226 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
11228 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
11229 Do not add the DF_NOTE problem.
11230 * store-motion.c (execute_rtl_store_motion): Likewise.
11232 2010-01-07 Martin Jambor <mjambor@suse.cz>
11234 PR tree-optimization/42157
11235 * tree-sra.c (compare_access_positions): Stabilize sort if both
11236 accesses have integer types, return zero immediately if they are the
11239 2010-01-06 Richard Henderson <rth@redhat.com>
11241 PR middle-end/41883
11242 * haifa-sched.c (add_to_note_list): Merge into ...
11243 (concat_note_lists): ... here, and ...
11244 (unlink_other_notes, rm_other_notes): Merge into...
11245 (remove_notes): ... here. Create REG_SAVE_NOTEs for
11246 NOTE_INSN_EPILOGUE_BEG.
11248 2010-01-06 Richard Guenther <rguenther@suse.de>
11250 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11251 not inline regular functions into always-inline functions.
11253 2010-01-06 Nick Clifton <nickc@redhat.com>
11255 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11256 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11258 (OVERRIDE_OPTIONS): Delete.
11259 (OPTIMIZATION_OPTIONS): Define.
11260 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11261 * config/rx/rx.c (rx_handle_option): Issue an error message if
11262 -mcpu=rx200 and -fpu are used together.
11263 (rx_set_optimization_options): New function. Issue an error
11264 message if an optimization attribute attempts to reset the FPU/
11265 math optimization pairing.
11266 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11267 * config/rx/rx.opt: Set the default to 32-bit doubles.
11268 * config/rx/t-rx: Add multilibs for -nofpu option.
11269 * doc/invoke.texi: Update documentation of RX options.
11271 2010-01-06 Richard Guenther <rguenther@suse.de>
11273 * tree-ssa-pre.c (name_to_id): New global.
11274 (alloc_expression_id): Simplify SSA name handling.
11275 (lookup_expression_id): Likewise.
11276 (init_pre): Zero name_to_id.
11277 (fini_pre): Free it.
11279 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
11281 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11283 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
11286 * config/i386/sse.md (smaxv2di3): New.
11287 (umaxv2di3): Likewise.
11288 (sminv2di3): Likewise.
11289 (uminv2di3): Likewise.
11291 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
11294 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11295 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11296 (legitimize_tls_address): Likewise.
11297 (sparc_tls_referenced_p): Likewise.
11298 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11299 and adjust calls to legitimize_pic_address.
11300 (legitimate_constant_p) Use sparc_tls_referenced_p.
11301 (legitimate_pic_operand_p): Likewise.
11302 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11303 (sparc_tls_symbol_ref_1): Delete.
11304 (sparc_tls_referenced_p): Make static, recognize specific patterns.
11305 (legitimize_tls_address): Make static, handle CONST patterns.
11306 (legitimize_pic_address): Make static, remove unused parameter and
11307 adjust recursive calls.
11308 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11309 and adjust call to legitimize_pic_address.
11310 (sparc_output_mi_thunk): Likewise.
11312 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
11313 H.J. Lu <hongjiu.lu@intel.com>
11316 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11317 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11318 operands to make them signed.
11321 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
11324 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11325 GTU to GT for V4SI and V2DI.
11327 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11328 (umin<mode>3): Removed.
11330 (uminv4si3): Likewise.
11332 2010-01-05 Martin Jambor <mjambor@suse.cz>
11334 PR tree-optimization/42462
11335 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11336 current_function_decl to helper functions and macros.
11338 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11341 * flags.h: Don't include real.h.
11342 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11343 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11344 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11345 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11346 * dominance.c: Update copyright.
11347 * gimple.c (walk_gimple_op): Remove inline.
11348 * tree-ssa-reassoc.c: Include real.h.
11349 * Makefile.in (FLAGS_H): Remove $(REAL_H).
11350 (tree-ssa-reassoc.o): Depend on $(REAL_H).
11352 2010-01-05 Nick Clifton <nickc@redhat.com>
11354 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11355 register to push into the stack frame when the accumulator has to
11356 be saved during interrupts.
11358 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
11360 * doc/invoke.texi: Remove the documentation about option
11361 -Wunreachable-code.
11362 * common.opt (Wunreachable-code): Preserved for backward
11364 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11365 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11366 the backward compatibility flag section.
11368 2010-01-05 Richard Guenther <rguenther@suse.de>
11370 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11372 2010-01-05 Jakub Jelinek <jakub@redhat.com>
11375 * cfgexpand.c (expand_one_var): Diagnose too large variables.
11377 PR tree-optimization/42508
11378 * tree-sra.c (convert_callers): Check for recursive call
11379 by comparing cgraph nodes instead of decls.
11380 (modify_function): Call ipa_modify_formal_parameters also
11381 on all same_body aliases.
11383 * cgraphunit.c (cgraph_materialize_all_clones): Compare
11384 cgraph nodes when checking for same_body aliases.
11386 2010-01-05 Richard Guenther <rguenther@suse.de>
11388 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11389 allocation and lookup.
11390 (get_or_alloc_expr_for_constant): Likewise.
11391 (phi_translate): Sink allocation.
11393 2010-01-04 Richard Guenther <rguenther@suse.de>
11395 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11396 a new entry only if needed.
11397 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11398 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11400 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11402 (phi_translate): Handle CONSTANTs early.
11404 2010-01-04 Martin Jambor <mjambor@suse.cz>
11406 PR tree-optimization/42398
11407 * tree-sra.c (struct access): Removed flag grp_different_types.
11408 (dump_access): Do not dump the removed flag.
11409 (sort_and_splice_var_accesses): Do not set the removed flag.
11410 (sra_modify_expr): Check for type compatibility directly.
11412 2010-01-04 Martin Jambor <mjambor@suse.cz>
11414 PR tree-optimization/42366
11415 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11416 edges with variable number of parameters.
11417 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11418 flag instead of asserting it.
11419 (ipa_read_node_info): Read uses_analysis_done flag.
11421 2010-01-04 Richard Guenther <rguenther@suse.de>
11423 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11424 iterative_hash_* as intended.
11425 (vn_reference_compute_hash): Likewise. Simplify hashing
11427 (vn_reference_lookup_2): Likewise.
11428 (vn_nary_op_compute_hash): Likewise.
11429 (vn_phi_compute_hash): Likewise.
11430 (expressions_equal_p): Remove strange code.
11431 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11432 (pre_expr_hash): Likewise. Simplify hashing SSA names.
11433 (bitmap_insert_into_set_1): Take value-id as parameter.
11434 (add_to_value): Pass it.
11435 (bitmap_insert_into_set): Likewise.
11436 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
11438 2010-01-04 Jakub Jelinek <jakub@redhat.com>
11441 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11442 (do_self_spec): For switches with SWITCH_IGNORE set set also
11443 SWITCH_IGNORE_PERMANENTLY.
11444 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11447 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
11449 * lto-streamer-out.c (output_unreferenced_globals): Output the full
11450 tree of an unreferenced global var.
11452 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
11455 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11456 GTU to GT for V4SI and V2DI.
11458 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11459 (umin<mode>3): Removed.
11461 (uminv4si3): Likewise.
11463 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
11466 * collect2.c (main): Turn on trace in collect2 if -v is passed
11469 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
11471 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
11472 description of expression operand.
11474 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
11476 * configure.ac: Add install-html to target_list for Make-hooks.
11477 * configure: Regenerate.
11478 * fortran/Make-lang.in (F95_HTMLFILES): New.
11479 (fortran.html): Use it.
11480 (fortran.install-html): New.
11481 * Makefile.in (install-html): Add lang.install-html.
11482 * java/Make-lang.in (JAVA_HTMLFILES): New.
11483 (java.html): Use it.
11484 (java.install-html): New.
11485 * objc/Make-lang.in (objc.install-html): New.
11486 * objcp/Make-lang.in (obj-c++.install-html): New.
11487 * cp/Make-lang.in (c++.install-html): New.
11488 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11489 * lto/Make-lang.in (lto.install-html): New.
11491 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
11494 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11496 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
11498 PR rtl-optimization/41862
11499 * store-motion.c (store_killed_in_insn, compute_store_table,
11500 remove_reachable_equiv_notes, replace_store_insn,
11501 build_store_vectors): Ignore all DEBUG_INSNs.
11503 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
11506 * common.opt: Add dumpdir.
11508 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11510 (option_map): Add --dumpdir.
11512 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11514 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11516 * opts.c (decode_options): Try dump_dir_name first if
11517 dump_base_name isn't an absolute path.
11518 (common_handle_option): Handle OPT_dumpdir.
11520 * toplev.c (dump_dir_name): New.
11521 (print_switch_values): Also ignore -dumpdir.
11523 * toplev.h (dump_dir_name): New.
11525 2010-01-03 Richard Guenther <rguenther@suse.de>
11527 PR tree-optimization/42589
11528 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11529 double-word expansion of bswap32.
11531 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
11533 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11534 with BLOCK_FOR_INSN.
11535 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11536 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11537 noce_process_if_block): Likewise.
11538 * gcse.c (compute_local_properties, insert_expr_in_table,
11539 insert_set_in_table, canon_list_insert, find_avail_set,
11540 pre_insert_copy_insn): Likewise.
11542 * basic-block.h (BLOCK_NUM): Move from here...
11543 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11545 2010-01-03 Richard Guenther <rguenther@suse.de>
11547 PR tree-optimization/42438
11548 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11549 contains_may_not_return_call flag.
11550 (BB_MAY_NOTRETURN): New.
11551 (valid_in_sets): Trapping nary operations are not valid
11552 in blocks that may not return.
11553 (insert_into_preds_of_block): Remove check for trapping expressions.
11554 (compute_avail): Compute also BB_MAY_NOTRETURN.
11556 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
11558 * doc/invoke.texi: Add 2010 to copyright years.
11560 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
11562 * config/sparc/sparc.c: Fix formatting nits.
11564 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
11565 Alexander Monakov <amonakov@ispras.ru>
11567 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11569 2010-01-02 Richard Guenther <rguenther@suse.de>
11571 PR middle-end/42577
11572 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11573 (simplify_switch_using_ranges): Mark to be removed edges
11576 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
11578 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11580 * collect2.c (scan_libraries): Add missing argument in call to
11583 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
11586 * config/alpha/predicates.md (aligned_memory_operand): Return false
11588 (unaligned_memory_operand): Return true for CQImode.
11589 * config/alpha/alpha.c (get_aligned_mem): Assert that location
11590 doesn not cross aligned SImode word boundary.
11592 2010-01-02 Anatoly Sokolov <aesok@post.ru>
11594 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11596 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11597 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11599 2010-01-02 Richard Guenther <rguenther@suse.de>
11602 * toplev.c (compile_file): Emit LTO marker properly. Change
11603 it to __gnu_lto_v1.
11604 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11606 2010-01-01 Richard Guenther <rguenther@suse.de>
11609 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11611 2010-01-01 Richard Guenther <rguenther@suse.de>
11614 * c-decl.c (grokdeclarator): For zero-size arrays force
11615 structural equality checks as layout_type does.
11617 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
11619 * builtins.c: Update copyright to 2010.
11621 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
11624 * lto-streamer-out.c (produce_asm): Revert the last change.
11625 (copy_function): Likewise.
11627 * lto-streamer.c (lto_get_section_name): Skip any leading
11630 2010-01-01 Richard Guenther <rguenther@suse.de>
11632 PR middle-end/42559
11633 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11637 Copyright (C) 2010 Free Software Foundation, Inc.
11639 Copying and distribution of this file, with or without modification,
11640 are permitted in any medium without royalty provided the copyright
11641 notice and this notice are preserved.
11644 * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
11645 * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
11647 2010-05-27 Joseph Myers <joseph@codesourcery.com>
11649 * diagnostic-core.h: New. Contents moved from diagnostic.h and
11651 * diagnostic.c: Don't include toplev.h.
11652 (progname): Define. Moved from toplev.c.
11653 (seen_error): New function.
11654 * diagnostic.h: Include diagnostic-core.h.
11655 (diagnostic_t, emit_diagnostic): Don't declare here.
11656 * toplev.c (progname): Move to toplev.c.
11657 (emit_debug_global_declarations, compile_file, finalize,
11658 do_compile, toplev_main): Use seen_error.
11659 * toplev.h: Include diagnostic-core.h.
11660 (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
11661 internal_error, warning, warning_at, error, error_n, error_at,
11662 fatal_error, pedwarn, permerror, sorry, inform, inform_n,
11663 verbatim, fnotice, progname): Move to diagnostic-core.h.
11664 * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
11665 (expand_builtin_expect): Use seen_error.
11666 * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
11667 (c_make_fname_decl, c_write_global_declarations): Use seen_error.
11668 * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
11669 * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
11670 * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
11671 * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
11672 errorcount for errors.
11673 * c-opts.c (c_common_finish): Use seen_error.
11674 * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11675 * cgraphunit.c (verify_cgraph_node, verify_cgraph,
11676 cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
11677 * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
11678 (get_coverage_counts): Use seen_error.
11679 * dwarf2out.c (dwarf2out_finish): Use seen_error.
11680 * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
11681 gimplify_body): Use seen_error.
11682 * ipa-inline.c (cgraph_early_inlining): Use seen_error.
11683 * ipa-pure-const.c (gate_pure_const): Use seen_error.
11684 * ipa-reference.c (gate_reference): Use seen_error.
11685 * jump.c: Include diagnostic-core.h instead of diagnostic.h.
11686 * lambda-code.c: Include diagnostic-core.h instead of
11688 * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
11689 * lto-compress.c: Include diagnostic-core.h instead of
11691 * lto-section-in.c: Include diagnostic-core.h instead of
11693 * lto-streamer-out.c: Include diagnostic-core.h instead of
11695 * lto-streamer.c: Include diagnostic-core.h instead of
11697 (gate_lto_out): Use seen_error.
11698 * matrix-reorg.c: Include diagnostic-core.h instead of
11700 * omega.c: Include diagnostic-core.h instead of diagnostic.h.
11701 * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
11702 (gate_expand_omp, lower_omp_1): Use seen_error.
11703 * passes.c: Include diagnostic-core.h instead of diagnostic.h.
11704 (rest_of_decl_compilation, rest_of_type_compilation,
11705 gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
11706 * tree-cfg.c (label_to_block_fn): Use seen_error.
11707 * tree-inline.c (optimize_inline_calls): Use seen_error.
11708 * tree-mudflap.c (mudflap_finish_file): Use
11710 * tree-optimize.c (gate_all_optimizations,
11711 gate_all_early_local_passes, gate_all_early_optimizations): Use
11713 * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
11714 * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
11715 (varpool_remove_unreferenced_decls,
11716 varpool_assemble_pending_decls): Use seen_error.
11717 * Makefile.in (DIAGNOSTIC_CORE_H): Define.
11718 (TOPLEV_H, DIAGNOSTIC_H): Update.
11719 (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
11720 lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
11721 c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
11722 builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
11723 coverage.o, lambda-code.o): Update dependencies.
11725 2010-05-25 Dodji Seketeli <dodji@redhat.com>
11728 * c-common.c (is_typedef_decl): Move this definition ...
11729 * tree.c (is_typedef_decl): ... here.
11730 (typdef_variant_p): Move definition here from gcc/cp/tree.c.
11731 * c-common.h (is_typedef_decl): Move this declaration ...
11732 * tree.h (is_typedef_decl): ... here.
11733 (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
11734 * dwarf2out.c (is_naming_typedef_decl): New function.
11735 (gen_tagged_type_die): Split out of ...
11736 (gen_type_die_with_usage): ... this function. When an anonymous
11737 tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
11738 is emitted for the typedef.
11739 (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
11740 anonymous tagged types.
11742 2010-05-27 Jason Merrill <jason@redhat.com>
11744 * print-tree.c (debug_vec_tree): New fn.
11745 (print_vec_tree): New fn.
11746 * tree.h: Declare them.
11747 * gdbinit.in (pvt): New command.
11749 * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
11751 * gdbinit.in (pdd): New command.
11753 2010-05-27 Jan Hubicka <jh@suse.cz>
11755 * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
11756 (update_caller_keys): Return early if there are no callers;
11757 only update fibheap when decresing the key.
11758 (update_callee_keys): Avoid recursion.
11759 (decide_inlining_of_small_functions): When badness does not match;
11760 re-insert into fibheap.
11762 2010-05-27 Steven Bosscher <steven@gcc.gnu.org>
11764 * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
11765 (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
11766 (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
11767 (ALL_HOST_OBJS): Now a union of the above two.
11768 <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
11769 all files in ALL_HOST_FRONTEND_OBJS.
11770 * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
11772 * c-common.c: Pretend to be a backend file by undefining
11773 IN_GCC_FRONTEND (still need rtl.h here).
11775 2010-05-27 Jan Hubicka <jh@suse.cz>
11777 * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
11778 * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
11780 2010-05-27 Jan Hubicka <jh@suse.cz>
11782 * sched-ebb.c: Rename struct deps to struct deps_desc.
11784 * sel-sched-ir.c: Likewise.
11785 * sched-deps.c: Likewise.
11786 * sched-int.h: Likewise.
11787 * sched-rgn.c: Likewise.
11789 2010-05-27 Jon Beniston <jon@beniston.com>
11792 * config/lm32/lm32.h: Remove definition of
11793 GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
11795 2010-05-27 Eric Botcazou <ebotcazou@adacore.com>
11798 * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
11800 2010-05-27 Richard Guenther <rguenther@suse.de>
11802 PR tree-optimization/44284
11803 * tree-vect-stmts.c (vectorizable_assignment): Handle
11804 sign-changing conversions as simple copy.
11806 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11808 * gthr-posix.h (pthread_cancel): Don't declare if compiling against
11810 (__gthread_active_p): Check for pthread_create if compiling against
11813 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11815 Support compilation for Android platform. Reimplement -mandroid.
11817 * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
11818 (*android*): Set ANDROID_DEFAULT.
11819 (arm*-*-linux*): Include linux-android.h.
11820 (arm*-*-eabi*): Don't include previous -mandroid implementation.
11821 * config/arm/eabi.h: Remove, move Android-specific parts ...
11822 * config/linux-android.h: ... here. New file.
11823 * config/arm/eabi.opt: Rename to ...
11824 * config/linux-android.opt: ... this.
11825 (mandroid): Allow -mno-android option. Initialize based on
11827 * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
11828 Move logic to corresponding LINUX_TARGET_* macros.
11829 (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
11830 * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
11831 (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
11832 Android definitions.
11833 (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
11834 * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
11837 2010-05-27 Maxim Kuvyrkov <maxim@codesourcery.com>
11839 Add support for Bionic C library
11841 * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
11843 (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
11844 (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
11846 * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
11847 (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
11848 (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
11849 to support multiple C libraries. Handle Bionic.
11850 (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
11851 (BIONIC_DYNAMIC_LINKER64): Define.
11852 (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
11854 (TARGET_HAS_SINCOS): Enable for Bionic.
11856 * config/linux.opt: Rewrite to handle more than 2 C libraries. Make
11857 the last option specified on command line take effect.
11858 (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
11860 (mglibc, muclibc): Update.
11862 * config/alpha/linux-elf.h, config/rs6000/linux64.h,
11863 * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
11866 * doc/invoke.texi (-mglibc, -muclibc): Update.
11867 (-mbionic): Document.
11869 2010-05-27 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
11871 * c-common.h (c_register_addr_space): Add prototype.
11872 (ADDR_SPACE_KEYWORD): Remove.
11873 * c-common.c (c_register_addr_space): New function.
11874 (c_addr_space_name): Reimplement.
11875 (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
11877 * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
11878 (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
11880 * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
11881 Remove TARGET_ADDR_SPACE_KEYWORDS.
11883 2010-05-27 Joseph Myers <joseph@codesourcery.com>
11885 * input.c: New file.
11886 * input.h (main_input_filename): Move declaration to toplev.h.
11887 * toplev.c (input_location, line_table): Move to input.c
11888 * toplev.h (main_input_filename): Move declaration from input.h.
11889 * tree.c (expand_location): Move to input.c.
11890 * Makefile.in (OBJS-common): Add input.o.
11891 (input.o): Add dependencies.
11893 2010-05-27 Richard Guenther <rguenther@suse.de>
11895 * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
11896 for non-existant files.
11897 (fork_execute): Mark args_name file as deleted.
11899 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
11902 * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
11903 (narrow_signed_type): Likewise.
11905 2010-05-26 Jan Hubicka <jh@suse.cz>
11907 * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
11908 edge only when checking is enabled; check using former_clone_of;
11909 check inline clones too.
11910 (cgraph_materialize_clone): Record former_clone_of pointer.
11911 (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
11912 combining redirections; dump args_to_skip bitmap
11913 (cgraph_materialize_all_clones): Do no redirection here.
11914 * ipa-inline.c (inline_transform): Do redirection here.
11915 * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
11918 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
11920 * config/avr/avr-c.c: Do not include regs.h.
11921 Include cpplib.h for cpp_define and tree.h for c-common.h.
11922 * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
11923 * config/avr/t-avr: Fix dependencies for avr-c.o.
11925 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
11927 * explow.c (set_stack_check_libfunc): Adjust to accept name as a
11928 string instead of SYMBOL_REF rtx.
11929 * rtl.h (set_stack_check_libfunc): Move prototype from here...
11930 * libfuncs.h: ...to here. Adjust for explow.c change.
11932 2010-05-26 Joseph Myers <joseph@codesourcery.com>
11934 * pretty-print.c: Don't include ggc.h.
11935 (identifier_to_locale_alloc, identifier_to_locale_free): Define.
11936 (identifier_to_locale): Use them for allocation.
11937 * pretty-print.h (identifier_to_locale_alloc,
11938 identifier_to_locale_free): Declare.
11939 * toplev.c (alloc_for_identifier_to_locale): New.
11940 (general_init): Set identifier_to_locale_alloc and
11941 identifier_to_locale_free.
11942 * Makefile.in (pretty-print.o): Update dependencies.
11944 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
11946 * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
11947 pointer types if they have different alignment or mode.
11949 2010-05-26 Anatoly Sokolov <aesok@post.ru>
11951 * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
11952 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
11953 * config/sparc/sparc-protos.h (function_value): Remove declaration.
11954 * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
11955 sparc_function_value_regno_p): New functions.
11956 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
11957 TARGET_FUNCTION_VALUE_REGNO_P): Define.
11958 (function_value): Rename to...
11959 (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
11960 argument to 'outgoing'.
11961 (function_arg_record_value, function_arg_union_value,
11962 function_arg_vector_value): Update comment.
11964 2010-05-26 Eric Botcazou <ebotcazou@adacore.com>
11966 * dwarf2out.c (struct dw_fde_struct): Reorder flags.
11967 (fde_needed_for_eh_p): New predicate.
11968 (output_call_frame_info): Use it throughout to decide whether FDEs
11969 are needed for EH purpose.
11970 (dwarf2out_begin_prologue): Reorder assignments.
11972 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
11974 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
11975 special case loop->header.
11976 (is_predicated): New.
11977 (if_convertible_loop_p): Call it.
11979 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
11981 * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
11982 iterator in parameter. Do not generate code during the analysis.
11983 (tree_if_convert_cond_stmt): Removed.
11984 (tree_if_convert_stmt): Removed.
11985 (predicate_bbs): New.
11986 (if_convertible_loop_p): Call predicate_bbs.
11987 (tree_if_conversion): Simplify the top-level logic as predicate_bbs
11988 now contains all the analysis part.
11990 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
11992 * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
11993 statements in the analysis part.
11994 (tree_if_convert_stmt): Update comment.
11995 (remove_conditions_and_labels): New.
11996 (combine_blocks): Call remove_conditions_and_labels.
11997 (tree_if_conversion): Update comment.
11999 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12001 * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
12002 than 2 predecessors or more than 2 successors.
12004 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12006 * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
12007 of loops in which the data dependence analysis fails.
12009 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12011 * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
12012 CDI_POST_DOMINATORS.
12013 (tree_if_conversion): Same.
12015 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12017 * tree-if-conv.c (tree_if_conversion): Do not return a bool.
12019 2010-05-26 Sebastian Pop <sebastian.pop@amd.com>
12021 * tree-if-conv.c: Update copyright years. Fix comments.
12024 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
12026 * builtin-types.def (BT_INT128): New primitive type.
12027 (BT_UINT128): Likewise.
12028 * c-common.c (c_common_r): Add __int128 keyword.
12029 (c_common_type_for_size): Handle __int128.
12030 (c_common_type_for_mode): Likewise.
12031 (c_common_signed_or_unsigned_type): Likewise.
12032 (c_common_nodes_and_builtins): Add builtin type
12033 if target supports 128-bit integer scalar.
12034 * c-common.h (enum rid): Add RID_INT128.
12035 * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
12036 if target supports 128-bit integer scalar.
12037 * c-decl.c (declspecs_add_type): Handle new keyword __int128.
12038 (finish_declspecs): Likewise.
12039 * c-parser.c (c_token_starts_typename): Handle RID_INT128.
12040 (c_token_starts_declspecs): Likewise.
12041 (c_parser_declspecs): Likewise.
12042 (c_parser_attributes): Likewise.
12043 (c_parser_objc_selector): Likewise.
12044 * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
12045 * c-tree.h (enum c_typespec_keyword): Add cts_int128.
12046 * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
12047 * tree.c (make_or_reuse_type): Likewise.
12048 (make_unsigned_type): Likewise.
12049 (build_common_tree_nodes_2): Likewise.
12050 * tree.h (enum integer_type_kind): Add itk_int128 and
12051 itk_unsigned_int128.
12052 (int128_integer_type_node): New define.
12053 (int128_unsigned_type_node): New define.
12054 * doc/extend.texi: Add documentation about __int128 type.
12056 2010-05-26 Richard Guenther <rguenther@suse.de>
12058 * tree-ssa-sccvn.c (copy_nary): Adjust.
12059 (copy_phis): Rename to ...
12060 (copy_phi): ... this. Adjust.
12061 (copy_references): Rename to ...
12062 (copy_reference): ... this. Adjust.
12063 (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
12064 result into the valid table.
12066 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
12068 * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
12069 insn-config.h, insn-codes.h, recog.h, and optabs.h.
12071 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12073 * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
12075 2010-05-26 Richard Guenther <rguenther@suse.de>
12077 * opts.c (common_handle_option): Handle OPT_Ofast.
12079 2010-05-26 Joseph Myers <joseph@codesourcery.com>
12081 * diagnostic.c: Don't include opts.h.
12082 (permissive_error_option): Define.
12083 (diagnostic_initialize): Take n_opts parameter. Allocate memory
12084 for classify_diagnostic. Don't use memset for
12085 classify_diagnostic. Initialize new and recently added fields.
12086 (diagnostic_classify_diagnostic): Use context->n_opts instead of
12088 (diagnostic_report_diagnostic): Pass context parameter to
12089 diagnostic_report_warnings_p. Use option_enabled and option_name
12090 hooks from context.
12091 (emit_diagnostic): Use permissive_error_option.
12092 (permerror): Likewise.
12093 * diagnostic.h: Don't include options.h.
12094 (struct diagnostic_context): Add n_opts, opt_permissive,
12095 inhibit_warnings, warn_system_headers, option_enabled and
12096 option_name fields. Change classify_diagnostic to a pointer.
12097 * opts-diagnostic.h: New file.
12098 * opts.c: Include opts-diagnostic.h.
12099 (common_handle_option): Set global_dc fields for -Wfatal-errors,
12100 -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
12101 (option_name): New function.
12102 * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
12103 (c_common_handle_option): Set global_dc->permissive for
12105 * c-common.c (c_cpp_error): Save and restore
12106 global_dc->warn_system_headers, not variable warn_system_headers.
12107 * toplev.c: Include opts-diagnostic.h.
12108 (general_init): Update call to diagnostic_initialize. Set
12109 global_dc->show_column, global_dc->option_enabled and
12110 global_dc->option_name.
12111 (process_options): Don't set global_dc fields here.
12112 * Makefile.in (DIAGNOSTIC_H): Remove options.h.
12113 (diagnostic.o, opts.o, toplev.o): Update dependencies.
12115 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
12117 * config/picochip/picochip.md (movsi): Split a movsi from a
12118 const after reload.
12120 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12122 * ggc-zone.c: Update copyright year.
12123 (poison_region): Mark memory for Valgrind as undefined before
12124 memset () call and inaccessible afterwards.
12125 (ggc_pch_total_size): Change type of i to int.
12127 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12129 * ggc-common.c (ggc_free_overhead): Allow empty slot.
12131 2010-05-26 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12133 * ggc-common.c: Update copyright year.
12134 (ggc_rlimit_bound): Remove prototype. Compile only if
12135 !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
12136 (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
12137 && !ENABLE_GC_ALWAYS_COLLECT. Make static.
12138 (ggc_min_heapsize_heuristic): Likewise.
12140 2010-05-26 Richard Guenther <rguenther@suse.de>
12142 PR rtl-optimization/44164
12143 * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
12144 no-common access-path disambiguation.
12145 (indirect_ref_may_alias_decl_p): Adjust.
12146 (indirect_refs_may_alias_p): Likewise.
12147 (refs_may_alias_p_1): Likewise.
12149 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
12151 * c-typeck.c: Do not include expr.h.
12153 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
12155 * rtl.h (decl_default_tls_model): Move prototype from here...
12156 * output.h: ...to here.
12157 * c-decl.c: Do not include rtl.h.
12158 * c-pragma.c: Likewise.
12159 * c-parser.c: Likewise.
12160 * c-gimplify.c: Likewise. And also not hard-reg-set.
12161 * c-common.c: Do not include rtl.h. Include tm_p.h and add a
12162 FIXME note for it. Add a FIXME note for expr.h.
12163 * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
12164 ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
12167 2010-05-26 Jakub Jelinek <jakub@redhat.com>
12170 * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
12171 or total_size is larger than red zone size for non-V4 ABI, emit a
12172 stack_tie resp. frame_tie insn before stack pointer restore.
12173 * config/rs6000/rs6000.md (frame_tie): New insn.
12175 2010-05-25 Eric Botcazou <ebotcazou@adacore.com>
12177 * function.h (struct function): Add can_throw_non_call_exceptions bit.
12178 * lto-streamer-in.c (input_function): Stream it in.
12179 * lto-streamer-out.c (output_function): Stream it out.
12180 * function.c (allocate_struct_function): Set it.
12181 (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
12182 for flag_non_call_exceptions.
12183 * cfgbuild.c (control_flow_insn_p): Likewise.
12184 (make_edges): Likewise.
12185 * cfgexpand.c (expand_stack_alignment): Likewise.
12186 * combine.c (distribute_notes): Likewise.
12187 * cse.c (cse_extended_basic_block): Likewise.
12188 * except.c (insn_could_throw_p): Likewise.
12189 * gcse.c (simple_mem): Likewise.
12190 * ipa-pure-const.c (check_call): Likewise.
12191 (check_stmt ): Likewise.
12192 * lower-subreg.c (lower-subreg.c): Likewise.
12193 * optabs.c (emit_libcall_block): Likewise.
12194 (prepare_cmp_insn): Likewise.
12195 * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
12196 * postreload.c (rest_of_handle_postreload): Likewise.
12197 * reload1.c (reload_as_needed): Likewise.
12198 (emit_input_reload_insns): Likewise.
12199 (emit_output_reload_insns): Likewise.
12200 (fixup_abnormal_edges): Likewise.
12201 * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
12202 * store-motion.c (find_moveable_store): Likewise.
12203 * tree-eh.c (stmt_could_throw_p): Likewise.
12204 (tree_could_throw_p): Likewise.
12205 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
12206 * config/arm/arm.c (arm_expand_prologue): Likewise.
12207 (thumb1_expand_prologue): Likewise.
12208 * config/rx/rx.md (cbranchsf4): Likewise.
12210 * config/s390/s390.c (s390_emit_prologue): Likewise.
12211 * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
12212 (inline_forbidden_into_p): New predicate.
12213 (expand_call_inline): Use it to forbid inlining.
12214 (tree_can_inline_p): Likewise.
12216 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
12218 * config/i386/i386-c.c: Do not include rtl.h.
12219 * config/i386/t-i386: Update dependencies.
12221 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
12223 * attribs.c: Do not include rtl.h.
12224 * Makefile.in: Update dependencies.
12226 2010-05-25 Anatoly Sokolov <aesok@post.ru>
12228 * double-int.h (double_int_and): New.
12229 * combine.c (try_combine): Clean up, use double_int_* and
12230 immed_double_int_const functions.
12232 2010-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12234 * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
12235 stderr to /dev/null instead of grep -q.
12236 * configure: Regenerate.
12238 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
12240 * Makefile.in (EXCEPT_H): Fix typo.
12242 2010-05-25 Vladimir Makarov <vmakarov@redhat.com>
12244 * ira-build.c (update_conflict_hard_reg_costs): New.
12245 (ira_build): Call update_conflict_hard_reg_costs.
12247 2010-05-25 Jakub Jelinek <jakub@redhat.com>
12250 * var-tracking.c (find_loc_in_1pdv): Guard asserts with
12252 (intersect_loc_chains): Walk the s2var's loc_chain together
12253 with s1node chain as long as the locations are equal, don't
12254 call find_loc_in_1pdv in that case.
12257 * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
12258 (copy_bind_expr): ... instead of here.
12259 (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
12260 if the block hasn't been remapped.
12261 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
12262 emitting concrete instance of abstract VLA, add DW_AT_type attribute.
12264 2010-05-25 Richard Guenther <rguenther@suse.de>
12266 PR middle-end/44069
12267 * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
12268 out-of-bounds array accesses.
12270 2010-05-25 Richard Guenther <rguenther@suse.de>
12272 * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
12273 (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
12274 (run_gcc): Re-organize to make cleanup easier.
12276 2010-05-25 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12278 * config/s390/s390.c (optimization_options): Fix and move the
12279 flag_prefetch_loop_arrays override ...
12280 (override_options): ... here.
12282 2010-05-25 Joseph Myers <joseph@codesourcery.com>
12284 * diagnostic.c: Don't include plugin.h.
12285 (diagnostic_report_diagnostic): Don't handle plugins specially
12286 here. Pass context to internal_error callback.
12287 * diagnostic.h (struct diagnostic_context): Add context parameter
12288 to internal_error callback.
12289 * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
12290 * plugin.h (struct diagnostic_context): Declare.
12291 (warn_if_plugins, plugins_internal_error_function): Declare.
12292 * toplev.c (general_init): Set global_dc->internal_error.
12293 * Makefile.in (diagnostic.o): Update dependencies.
12295 2010-05-25 Iain Sandoe <iains@gcc.gnu.org>
12297 * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
12298 * config/rs6000/t-darwin64: New.
12299 * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
12302 2010-05-25 Christian Borntraeger <borntraeger@de.ibm.com>
12305 * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
12306 match the original (and intended) behaviour before r159557. This
12307 changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
12310 2010-05-25 Richard Guenther <rguenther@suse.de>
12312 * doc/invoke.texi: Document -Ofast.
12313 * target.h (struct gcc_target): Add handle_ofast.
12314 * target-def.h (TARGET_HANDLE_OFAST): Add.
12315 (TARGET_INITIALIZER): Adjust.
12316 * opts.c (decode_options): Handle -Ofast. Enable -ffast-math with it.
12317 * common.opt (Ofast): Add.
12319 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
12321 * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
12322 * doc/md.texi (cstoreXX4): Update for cond-optab changes.
12324 2010-05-25 Paolo Bonzini <bonzini@gnu.org>
12327 * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
12328 even if !FLOAT_LIB_COMPARE_RETURNS_BOOL. Always compute true_rtx and
12329 false_rtx. Use false_rtx to compute the correct *ptest for reversed
12330 comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
12332 2010-05-25 Jakub Jelinek <jakub@redhat.com>
12334 * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
12335 DW_OP_minus with negated offset instead of DW_OP_plus.
12336 (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
12338 2010-05-25 Wei Guozhi <carrot@google.com>
12340 * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
12341 tst instruction and a new alternative.
12342 * config/arm/constraints.md (Pu): New constraint.
12344 2010-05-24 Sebastian Pop <sebastian.pop@amd.com>
12346 * function.c (assign_stack_local_1): Initialize variable
12347 to avoid warning when bootstrapping at -O3.
12349 2010-05-24 Steven Bosscher <steven@gcc.gnu.org>
12351 * configure.ac (all_lang_makefiles): Remove everything related to it.
12352 * configure: Regenerate.
12353 * Makefile.in: Fix reference to ada Make-lang.in.
12354 Remove support for LANG_MAKEFILES.
12356 2010-05-24 Daniel Jacobowitz <dan@codesourcery.com>
12357 Sandra Loosemore <sandra@codesourcery.com>
12359 * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
12360 * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
12361 description. Add arm_neon_fp16_ok.
12362 (Add Options): Add arm_neon and arm_neon_fp16.
12364 2010-05-24 Joseph Myers <joseph@codesourcery.com>
12366 * diagnostic.c: Don't include flags.h.
12367 (pedantic_warning_kind, permissive_error_kind): Take diagnostic
12368 context parameters. Check flags in the context passed as a parameter.
12369 (diagnostic_build_prefix): Add context parameter. Check
12370 show_column flag in context.
12371 (diagnostic_action_after_output): Check fatal_errors flag in context.
12372 (diagnostic_report_current_module): Check show_column flag in context.
12373 (default_diagnostic_starter): Update call to
12374 diagnostic_build_prefix.
12375 (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
12376 (emit_diagnostic): Pass context to permissive_error_kind.
12377 (permerror): Pass context to permissive_error_kind.
12378 * diagnostic.h (struct diagnostic_context): Add show_column,
12379 pedantic_errors, permissive and fatal_errors fields.
12380 (diagnostic_build_prefix): Update prototype.
12382 * toplev.c (process_options): Set flags in global_dc from
12383 flag_show_column, flag_pedantic_errors, flag_permissive,
12385 * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
12386 to diagnostic_build_prefix.
12387 * Makefile.in (diagnostic.o): Update dependencies.
12389 2010-05-24 H.J. Lu <hongjiu.lu@intel.com>
12391 * config/i386/ia32intrin.h (__crc32q): Define only if
12392 __SSE4_2__ is defined.
12394 2010-05-24 Iain Sandoe <iains@gcc.gnu.org>
12397 PR middle-end/43602
12398 * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
12399 DECL_VISIBILITY_SPECIFIED.
12400 (emutls_decl): Set DECL_PRESERVE_P and copy
12401 DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
12402 (emutls_finalize_control_var): New callback.
12403 (emutls_finish): Finalize emutls control variables.
12404 * toplev.c (compile_file): Move the call to emutls_finish ()
12405 before varpool_assemble_pending_decls ().
12407 2010-05-24 Daniel Gutson <dgutson@codesourcery.com>
12409 * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
12410 added to the preprocessor condition.
12412 2010-05-24 Paul Brook <paul@codesourcery.com>
12414 * gengtype-lex.l: Add HARD_REG_SET.
12415 * expr.c (expand_expr_real_1): Record writes to hard registers.
12416 * function.c (rtl_data): Add asm_clobbers.
12417 * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
12418 (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
12419 Use crtl->asm_clobbers.
12421 2010-05-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12423 * doc/makefile.texi (Makefile): Mention stages 'profile'
12424 and 'feedback' for profiledbootstrap.
12426 2010-05-23 H.J. Lu <hongjiu.lu@intel.com>
12429 * config/i386/i386.c (def_builtin): Properly check
12430 OPTION_MASK_ISA_64BIT.
12432 2010-05-23 Joseph Myers <joseph@codesourcery.com>
12434 * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
12435 typedefs with different but compatible types. Allow duplicate
12436 typedefs with the same type except for pedantic non-C1X, but give
12437 warning for variably modified types.
12438 * c-typeck.c (tagged_types_tu_compatible_p,
12439 function_types_compatible_p, type_lists_compatible_p,
12440 comptypes_internal): Add parameter different_types_p; set
12441 *different_types_p for different but compatible types. All
12443 (comptypes_check_different_types): New.
12444 * c-tree.h (comptypes_check_different_types): Declare.
12446 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
12448 * regs.h: Do not include obstack.h, basic-block.h. Include machmode.h.
12449 * jump.c: Include basic-block.h.
12450 * profile.c: Likewise.
12451 * tree-profile.c: Likewise.
12452 * coverage.c: Likewise.
12453 * basic-block.h (optimize_function_for_size_p): Move to function.h.
12454 (optimize_function_for_speed_p): Likewise.
12455 * function.h (optimize_function_for_size_p,
12456 optimize_function_for_speed_p): Moved here from basic-block.h.
12457 * Makefile.in: Update dependencies.
12459 2010-05-23 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12461 * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
12462 before calling make; allow override through $MAKE.
12463 * doc/invoke.texi (Optimize Options): Document override.
12465 2010-05-23 Anatoly Sokolov <aesok@post.ru>
12467 * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
12468 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12469 (rs6000_mode_dependent_address_ptr): Make static.
12470 * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12471 * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
12474 2010-05-23 Maarten Lankhorst <mlankhorst@codeweavers.com>
12477 * config/i386/i386.c: Make sure that the correct regparm is passed.
12479 2010-05-23 Steven Bosscher <steven@gcc.gnu.org>
12481 * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
12482 * sbitmap.c: ...to here to internalize sbitmap element access.
12483 Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
12484 Explain why basic-block.h is included.
12485 * function.h: Include tm.h for CUMULATIVE_ARGS.
12486 * Makefile.in: Update dependencies.
12488 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
12490 * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
12492 * sbitmap.h (struct sbitmap_def): Do not typedef here.
12493 * sbitmap.c: Include sbitmap.h.
12494 * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
12495 hard-reg-set.h. Split everything related to regsets out from here...
12496 * regset.h: ...to here. New file.
12497 * df.h: Include regset.h and sbitmap.h.
12498 * tree-flow.h: Likewise.
12499 * cfgloop.h: Likewise.
12500 * except.h: Do not include sbitmap.h. Include hashtab.h.
12501 * cgraph.h: Include vec.h and function.h.
12502 * reload.h (struct insn_chain): Change types of live_throughout
12503 and dead_or_set from regset_head to bitmap_head.
12504 (compute_use_by_pseudos): Be defined also if regset.h is not included.
12505 * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
12506 spilled_regs from regset_head to bitmap_head to avoid dependency
12508 * sel-sched-ir.h: Include regset.h.
12509 * reload.c: Include df.h before reload.h.
12510 * caller-save.c: Likewise.
12511 * reload1.c: Likewise.
12513 (mark_elimination): Update type of r to bitmap, consistent with
12515 * dominance.c: Include bitmap.h.
12516 * modulo-sched.c: Include df.h.
12517 * cfganal.c: Include bitmap.h and sbitmap.h.
12518 * cfgbuild.c: Include sbitmap.h.
12519 * lcm.c: Include sbitmap.h.
12520 * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
12521 * domwalk.c: Include sbitmap.h, exclude ggc.h.
12522 * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
12523 * cselib.c: Include bitmap.h.
12524 * tree-optimize.c: Include regset.h.
12525 * stmt.c: Include bitmap.h.
12526 * Makefile.in: Update dependencies.
12528 2010-05-22 Jan Hubicka <jh@suse.cz>
12530 * cgraph.h (struct varpool_node): Add same_comdat_group.
12531 * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
12533 (output_varpool): Update call of lto_output_varpool_node.
12534 (input_varpool): Read same_comdat_group pointer.
12535 (input_varpool_1): Fixup same_comdat_group pointer.
12536 * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
12537 group is needed, all are.
12538 * varpool.c (varpool_remove_node): Remove node from same comdat group
12540 (varpool_analyze_pending_decls): Walk same comdat groups.
12542 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
12544 * rtl.h (union rtunion_def): Remove rt_bit member.
12545 (XBITMAP, X0BITMAP, XCBITMAP): Remove.
12546 * print-rtl (print_rtx): Do not print the member.
12547 * gengtype.c (adjust_field_rtx_def): Do not handle it.
12548 * gengenrtl.c (type_from_format): Likewise.
12549 (accessor_from_format): Likewise.
12551 2010-05-22 Joseph Myers <joseph@codesourcery.com>
12553 * dbgcnt.c: Include toplev.h instead of errors.h.
12554 * ira-emit.c: Don't include errors.h.
12555 * ira.c: Include toplev.h instead of errors.h.
12556 * lto-compress.c: Include toplev.h instead of errors.h.
12557 * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
12558 ira.o, dbgcnt.o): Update dependencies.
12560 2010-05-22 Richard Guenther <rguenther@suse.de>
12562 * gimple.c (gimple_types_compatible_p): Check type qualifications
12563 before merging pointer to complete and pointer to incomplete type.
12564 * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
12565 we use our own resolution algorithm. The gold linker plugin
12566 doesn't do the job we want it to do here.
12568 2010-05-22 Anatoly Sokolov <aesok@post.ru>
12570 * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
12571 * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
12572 (sparc_mode_dependent_address_p): New function.
12574 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
12576 * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
12578 * timevar.c: Do not include any core headers.
12579 (timevar_print): De-i18n-ize.
12580 (print_time): Likewise.
12581 * timevar.h (timevar_push, timevar_pop): Make inline functions.
12583 2010-05-21 Joseph Myers <joseph@codesourcery.com>
12585 * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
12587 (diagnostic_initialize): Initialize x_data not last_function.
12588 (diagnostic_report_current_function): Move to tree-diagnostic.c.
12589 (default_diagnostic_starter): Call
12590 diagnostic_report_current_module not
12591 diagnostic_report_current_function.
12592 (diagnostic_report_diagnostic): Initialize x_data not
12594 (verbatim): Likewise.
12595 * diagnostic.h (struct diagnostic_info): Change abstract_origin to
12597 (struct diagnostic_context): Change last_function to x_data.
12598 (diagnostic_auxiliary_data): Replace with
12599 diagnostic_context_auxiliary_data and
12600 diagnostic_info_auxiliary_data.
12601 (diagnostic_last_function_changed, diagnostic_set_last_function,
12602 diagnostic_report_current_function): Move to tree-diagnostic.h.
12603 (print_declaration, dump_generic_node, print_generic_stmt,
12604 print_generic_stmt_indented, print_generic_expr,
12605 print_generic_decl, debug_c_tree, dump_omp_clauses,
12606 print_call_name, debug_generic_expr, debug_generic_stmt,
12607 debug_tree_chain, default_tree_printer): Move to
12608 tree-pretty-print.h.
12609 (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
12610 print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
12611 gimple-pretty-print.h.
12612 * pretty-print.c: Don't include tree.h
12613 (pp_base_format): Don't handle %K here.
12614 (pp_base_tree_identifier): Move to tree-pretty-print.c.
12615 * pretty-print.h (text_info): Change abstract_origin to x_data.
12616 (pp_tree_identifier, pp_unsupported_tree,
12617 pp_base_tree_identifier): Move to tree-pretty-print.h.
12618 * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
12619 tree-pretty-print.h: New files.
12620 * tree-pretty-print.c: Include tree-pretty-print.h.
12621 (percent_K_format): New. Moved from pretty-print.c.
12622 (pp_base_tree_identifier): Move from pretty-print.c.
12623 * c-objc-common.c: Include tree-pretty-print.h.
12624 (c_tree_printer): Handle %K here.
12625 * langhooks.c: Include tree-diagnostic.h.
12626 (lhd_print_error_function): Use diagnostic_abstract_origin macro.
12627 * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
12628 (default_tree_printer): Handle %K using percent_K_format.
12629 (general_init): Use default_tree_diagnostic_starter.
12630 * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
12631 (free_lang_data): Use default_tree_diagnostic_starter.
12632 * c-pretty-print.c: Include tree-pretty-print.h.
12633 * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12634 * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12635 * dwarf2out.c: Include tree-pretty-print.h.
12636 * except.c: Include tree-pretty-print.h.
12637 * gimple-pretty-print.c: Include tree-pretty-print.h and
12638 gimple-pretty-print.h.
12639 * gimplify.c: Include tree-pretty-print.h.
12640 * graphite-poly.c: Include tree-pretty-print.h and
12641 gimple-pretty-print.h.
12642 * ipa-cp.c: Include tree-pretty-print.h.
12643 * ipa-inline.c: Include gimple-pretty-print.h.
12644 * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12645 * ipa-pure-const.c: Include gimple-pretty-print.h.
12646 * ipa-struct-reorg.c: Include tree-pretty-print.h and
12647 gimple-pretty-print.h.
12648 * ipa-type-escape.c: Include tree-pretty-print.h.
12649 * print-rtl.c: Include tree-pretty-print.h.
12650 * print-tree.c: Include gimple-pretty-print.h.
12651 * sese.c: Include tree-pretty-print.h.
12652 * tree-affine.c: Include tree-pretty-print.h.
12653 * tree-browser.c: Include tree-pretty-print.h.
12654 * tree-call-cdce.c: Include gimple-pretty-print.h.
12655 * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
12656 * tree-chrec.c: Include tree-pretty-print.h.
12657 * tree-data-ref.c: Include tree-pretty-print.h and
12658 gimple-pretty-print.h.
12659 * tree-dfa.c: Include tree-pretty-print.h.
12660 * tree-if-conv.c: Include tree-pretty-print.h and
12661 gimple-pretty-print.h.
12662 * tree-inline.c: Include tree-pretty-print.h.
12663 * tree-into-ssa.c: Include tree-pretty-print.h and
12664 gimple-pretty-print.h.
12665 * tree-nrv.c: Include tree-pretty-print.h.
12666 * tree-object-size.c: Include tree-pretty-print.h and
12667 gimple-pretty-print.h.
12668 * tree-outof-ssa.c: Include tree-pretty-print.h and
12669 gimple-pretty-print.h.
12670 * tree-parloops.c: Include tree-pretty-print.h and
12671 gimple-pretty-print.h.
12672 * tree-predcom.c: Include tree-pretty-print.h and
12673 gimple-pretty-print.h.
12674 * tree-scalar-evolution.c: Include tree-pretty-print.h and
12675 gimple-pretty-print.h.
12676 * tree-sra.c: Include tree-pretty-print.h.
12677 * tree-ssa-address.c: Include tree-pretty-print.h.
12678 * tree-ssa-alias.c: Include tree-pretty-print.h.
12679 * tree-ssa-ccp.c: Include tree-pretty-print.h and
12680 gimple-pretty-print.h.
12681 * tree-ssa-coalesce.c: Include tree-pretty-print.h.
12682 * tree-ssa-copy.c: Include tree-pretty-print.h and
12683 gimple-pretty-print.h.
12684 * tree-ssa-copyrename.c: Include tree-pretty-print.h.
12685 * tree-ssa-dce.c: Include tree-pretty-print.h and
12686 gimple-pretty-print.h.
12687 * tree-ssa-dom.c: Include tree-pretty-print.h and
12688 gimple-pretty-print.h.
12689 * tree-ssa-dse.c: Include gimple-pretty-print.h.
12690 * tree-ssa-forwprop.c: Include tree-pretty-print.h.
12691 * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
12692 * tree-ssa-live.c: Include tree-pretty-print.h and
12693 gimple-pretty-print.h.
12694 * tree-ssa-loop-im.c: Include tree-pretty-print.h and
12695 gimple-pretty-print.h.
12696 * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
12697 gimple-pretty-print.h.
12698 * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
12699 gimple-pretty-print.h.
12700 * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
12701 gimple-pretty-print.h.
12702 * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
12703 * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
12704 * tree-ssa-operands.c: Include tree-pretty-print.h and
12705 gimple-pretty-print.h.
12706 * tree-ssa-phiprop.c: Include tree-pretty-print.h and
12707 gimple-pretty-print.h.
12708 * tree-ssa-pre.c: Include tree-pretty-print.h and
12709 gimple-pretty-print.h.
12710 * tree-ssa-propagate.c: Include gimple-pretty-print.h.
12711 * tree-ssa-reassoc.c: Include tree-pretty-print.h and
12712 gimple-pretty-print.h.
12713 * tree-ssa-sccvn.c: Include tree-pretty-print.h and
12714 gimple-pretty-print.h.
12715 * tree-ssa-sink.c: Include gimple-pretty-print.h.
12716 * tree-ssa-ter.c: Include tree-pretty-print.h and
12717 gimple-pretty-print.h.
12718 * tree-ssa-uninit.c: Include gimple-pretty-print.h.
12719 * tree-ssa.c: Include tree-pretty-print.h and
12720 gimple-pretty-print.h.
12721 * tree-stdarg.c: Include gimple-pretty-print.h.
12722 * tree-switch-conversion.c: Include gimple-pretty-print.h.
12723 * tree-tailcall.c: Include tree-pretty-print.h and
12724 gimple-pretty-print.h.
12725 * tree-vect-data-refs.c: Include tree-pretty-print.h and
12726 gimple-pretty-print.h.
12727 * tree-vect-loop-manip.c: Include tree-pretty-print.h and
12728 gimple-pretty-print.h.
12729 * tree-vect-loop.c: Include tree-pretty-print.h and
12730 gimple-pretty-print.h.
12731 * tree-vect-patterns.c: Include gimple-pretty-print.h.
12732 * tree-vect-slp.c: Include tree-pretty-print.h and
12733 gimple-pretty-print.h.
12734 * tree-vect-stmts.c: Include tree-pretty-print.h and
12735 gimple-pretty-print.h.
12736 * tree-vectorizer.c: Include tree-pretty-print.h.
12737 * tree-vrp.c: Include tree-pretty-print.h and
12738 gimple-pretty-print.h.
12739 * value-prof.c: Include tree-pretty-print.h and
12740 gimple-pretty-print.h.
12741 * var-tracking.c: Include tree-pretty-print.h.
12742 * Makefile.in (OBJS-common): Add tree-diagnostic.o.
12743 (tree-diagnostic.o): New dependencies.
12744 (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
12745 tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
12746 tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
12747 tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
12748 tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
12749 tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
12750 tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
12751 tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
12752 tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
12753 tree-ssa-address.o, tree-ssa-loop-niter.o,
12754 tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
12755 tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
12756 tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
12757 gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
12758 tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
12759 tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
12760 tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
12761 tree-parloops.o, tree-stdarg.o, tree-object-size.o,
12762 gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
12763 toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
12764 ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
12765 ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
12766 tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
12767 tree-switch-conversion.o, var-tracking.o, value-prof.o,
12768 cfgexpand.o, pretty-print.o): Update dependencies.
12770 2010-05-22 Andreas Tobler <andreast@fgznet.ch>
12772 * tree-ssa-structalias.c: Remove tm_p.h from include.
12774 2010-05-21 Jeff Law <law@redhat.com>
12776 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
12778 2010-05-21 Jason Merrill <jason@redhat.com>
12780 * tree-eh.c (cleanup_is_dead_in): New.
12781 (lower_try_finally): Don't generate a dead cleanup region.
12782 (lower_cleanup): Likewise.
12784 2010-05-21 Jakub Jelinek <jakub@redhat.com>
12787 * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
12788 unchain each use from the cyclic next_regno_use chain first.
12790 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
12792 * real: Do not include gmp.h, mpfr.h, and mpc.h.
12793 (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
12794 (real_value_negate, real_value_abs): New prototypes.
12795 (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
12796 * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
12797 new include file for interface between MPFR and REAL_VALUE_TYPE.
12798 * real.c: Include realmpfr.h.
12799 (real_arithmetic2): Remove legacy function.
12800 (real_value_negate): New.
12801 (real_value_abs): New.
12802 (mfpr_from_real, real_from_mpfr): Move from here...
12803 * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
12804 * builtins.c: Include realmpfr.h.
12805 * fold-const.c: Include realmpfr.h.
12806 (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
12807 (fold_negate_const): Likewise.
12808 (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
12809 * toplev.c: Include realmpfr.h.
12810 * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
12811 and real_value_negate.
12812 * fixed-value.c (check_real_for_fixed_mode): Likewise.
12813 * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
12814 (vfp3_const_double_index): Likewise.
12815 (arm_print_operand): Likewise.
12816 * Makefile.in: Update dependencies.
12818 2010-05-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12820 * config/s390/s390.c (override_options): Increase the default
12821 of max-completely-peel-times.
12823 2010-05-21 Julian Brown <julian@codesourcery.com>
12824 Mark Mitchell <mark@codesourcery.com>
12826 * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
12827 sibling calls for Thumb-1.
12828 * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
12829 * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
12831 (*call_insn, *call_value_insn): Don't use for Thumb-2.
12832 (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
12834 (return): New expander.
12835 (*arm_return): New name for ARM return insn.
12836 * config/arm/thumb2.md (*thumb2_return): New insn pattern.
12838 2010-05-19 Joel Sherrill <joel.sherrill@oarcorp.com>
12840 * config.gcc (sparc64-*-rtems*): New target.
12842 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
12844 * tree.c (build_function_decl_skip_args): Fix grammar.
12845 (build_function_type_list_1): Fix typos, adjust formatting.
12847 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
12849 * tree.h: Include real.h and fixed-value.h as basic datatypes.
12850 * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
12851 tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
12852 tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
12853 tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
12854 genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
12855 tree-pretty-print.c, tree-loop-distribution.c,
12856 tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
12857 tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
12858 tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
12859 tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
12860 tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
12861 tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
12862 tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
12863 tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
12864 tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
12865 tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
12866 genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
12867 tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
12868 gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
12869 tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
12870 tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
12871 store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
12872 tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
12873 tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
12874 tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
12875 tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
12876 fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
12877 tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
12878 config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
12879 config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
12880 config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
12881 config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
12882 config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
12883 config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
12884 config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
12885 config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
12886 config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
12887 config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
12888 config/score/score7.c, config/score/score.c, config/arm/arm.c,
12889 config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
12890 config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
12891 config/bfin/bfin.c: Clean up redundant includes.
12892 * Makefile.in: Update accordingly.
12894 2010-05-21 Nathan Froyd <froydnj@codesourcery.com>
12896 PR middle-end/44204
12897 * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
12898 statement has no arguments.
12900 2010-05-21 Kai Tietz <kai.tietz@onevision.com>
12903 * varasm.c (emutls_decl): Merge attributes to new decl.
12905 2010-05-21 Eric Botcazou <ebotcazou@adacore.com>
12907 PR middle-end/44101
12908 * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
12909 around the uniquized constructor if its type requires a conversion.
12911 2010-05-21 Jakub Jelinek <jakub@redhat.com>
12914 * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
12915 at -O0 goto_locus of any of the incoming edges differs from
12916 goto_locus of outgoing edge, or gimple_location of any of the
12919 2009-09-14 Vladimir Makarov <vmakarov@redhat.com>
12921 * ira.c (ira_non_ordered_class_hard_regs): Define.
12922 (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
12923 * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
12924 * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
12925 cost of unaligned hard regs when allocating multi-reg pseudos.
12927 2010-05-20 Richard Sandiford <rdsandiford@googlemail.com>
12929 * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
12930 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
12931 for TARGET_NO_FLOAT.
12932 * config/mips/mips.c (mips_file_start): Expand conditional expression
12933 into "if" statements. Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
12934 (mips_override_options): Move -mno-float override -msoft-float and
12936 * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
12937 Condition(TARGET_SUPPORTS_NO_FLOAT).
12938 * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
12939 __mips_no_float here.
12940 (SUBTARGET_OVERRIDE_OPTIONS): Delete.
12941 (TARGET_SUPPORTS_NO_FLOAT): Define.
12942 * config/mips/sdemtk.opt: Delete.
12944 2010-05-20 Segher Boessenkool <segher@kernel.crashing.org>
12946 * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
12948 2010-05-20 Uros Bizjak <ubizjak@gmail.com>
12951 * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
12952 * configure: Regenerate.
12953 * config.in: Regenerate.
12954 * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
12955 instead of sahf only for 64bit targets.
12957 2010-05-20 Jakub Jelinek <jakub@redhat.com>
12960 * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
12961 setup_ref_regs for DEBUG_INSNs.
12963 2010-05-20 Jan Hubicka <jh@suse.cz>
12965 PR middle-end/44197
12966 * varpool.c (varpool_remove_node): Handle in-varpool aliases.
12968 2010-05-20 Kenneth Zadeck <zadeck@naturalbridge.com>
12971 * df-scan.c (df_ref_compare): Stabilize sort.
12973 2010-05-20 Jakub Jelinek <jakub@redhat.com>
12975 * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
12976 argument. Don't use DW_OP_piece if offset is non-zero,
12977 put offset into second DW_OP_bit_piece argument.
12978 (dw_sra_loc_expr): Adjust callers. For memory expressions
12981 2010-05-20 Hans-Peter Nilsson <hp@axis.com>
12984 * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
12985 settings for 16-bit-constant "addo" alternative.
12987 2010-05-19 James E. Wilson <wilson@codesourcery.com>
12989 * config/mips/mips-dsp.md (add<DSPV:mode>3,
12990 mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
12993 * mips.c (mips_call_expr_from_insn): New arg second_call. Set it.
12994 (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
12997 2010-05-19 Joseph Myers <joseph@codesourcery.com>
12999 * diagnostic.c (FLOAT, FFS): Don't undefine.
13000 * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
13001 * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
13004 2010-05-19 Richard Sandiford <rdsandiford@googlemail.com>
13006 * combine.c (propagate_for_debug): Call make_compound_operation
13007 on the source value.
13008 (try_combine): When implementing a split chosen by find_split_point,
13009 either copy i2src or set it to null. Assert that i2src is not null
13010 before substituting into CALL_INSN_FUNCTION_USAGE.
13012 2010-05-19 Anatoly Sokolov <aesok@post.ru>
13014 * double-int.h (double_int_ior): New function.
13015 * tree.h (build_int_cst_wide_type): Remove.
13016 * tree.c (build_int_cst_wide_type): Remove.
13017 * fold-const.c (native_interpret_int): Use double_int_to_tree instead
13018 of build_int_cst_wide_type.
13019 * stor-layout.c (set_sizetype): (Ditto.).
13020 * dojump.c (do_jump): Use build_int_cstu instead of
13021 build_int_cst_wide_type.
13023 2010-05-19 Eric Botcazou <ebotcazou@adacore.com>
13025 * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
13026 * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
13027 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
13028 * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
13029 TARGET_EXPR nodes, but only once, if instructed to do so. Do not
13030 propagate the 'data' argument to copy_tree_r.
13031 (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
13032 Propagate 'data' argument to walk_tree.
13033 (copy_if_shared): New function.
13034 (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
13035 (unmark_visited): New function.
13036 (unshare_body): Call copy_if_shared instead of doing it manually.
13037 (unvisit_body): Call unmark_visited instead of doing it manually.
13039 2010-05-19 Nathan Froyd <froydnj@codesourcery.com>
13041 * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
13042 (hook_tree_tree_int_treep_bool_null): ...this. Update signature.
13043 * hooks.c: Likewise.
13044 * target-def.h (TARGET_FOLD_BUILTIN): Define to
13045 hook_tree_tree_int_treep_bool_null.
13046 * target.h (struct gcc_target): Update signature of fold_builtin
13048 * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
13049 * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
13050 instead of the call expression.
13051 (fold_builtin_call_array): Pass n and argarray directly.
13052 (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
13054 * config/alpha/alpha.c (alpha_fold_builtin): Update signature. Lift
13055 MAX_ARGS check out of the loop. Delete declaration of `arity', declare
13056 `i' and use it in place of `arity'.
13057 * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
13058 Dereference `args' directly.
13059 * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
13061 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13063 * doc/sourcebuild.texi (Effective-Target Keywords): Document
13065 (Directives): Document optional dg-require-effective-target
13068 2010-05-19 Richard Guenther <rguenther@suse.de>
13071 * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
13073 2010-05-19 Richard Guenther <rguenther@suse.de>
13075 * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
13076 * common.opt (fwhopr=): New.
13077 * opts.c (common_handle_option): Handle OPT_fwhopr.
13078 * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
13079 * collect2.c (main): Match -fwhopr*.
13080 * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
13081 Execute ltrans stage in parallel when jobs is bigger than 1.
13083 2010-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13085 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
13086 pentiumpro on Solaris 8/x86 with Sun as.
13087 * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
13089 (gcc_cv_as_ix86_quad): Check for .quad directive.
13090 * configure: Regenerate.
13091 * config.in: Regenerate.
13092 * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
13094 2010-05-19 Martin Jambor <mjambor@suse.cz>
13096 * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
13097 also for indirect edges. Actual printing moved...
13098 (ipa_print_node_jump_functions_for_edge): ...here.
13099 (ipa_compute_jump_functions): Renamed to
13100 ipa_compute_jump_functions_for_edge and made static.
13101 (ipa_compute_jump_functions): New function.
13102 (make_edge_direct_to_target): Check if the number of arguments on
13103 the newly direct edge is the same as the number of parametrs of
13105 * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
13106 ipa_compute_jump_functions. Call ipa_analyze_params_uses.
13107 * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
13108 analysis functions unconditionally, call the new
13109 ipa_analyze_params_uses on the node instead of every edge.
13111 2010-05-19 Christian Borntraeger <borntraeger@de.ibm.com>
13113 * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
13115 (dump_mem_ref): Adopt debug code to handle a tree as step. This
13116 also checks for a constant int vs. non-constant but
13117 loop-invariant steps.
13118 (find_or_create_group): Change the sort algorithm to only consider
13119 steps that are constant ints.
13120 (idx_analyze_ref): Adopt code to handle a tree instead of a
13121 HOST_WIDE_INT for step.
13122 (gather_memory_references_ref): Handle tree instead of int and be
13123 prepared to see a NULL_TREE.
13124 (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
13125 prefetches if the step cannot be calculated at compile time.
13126 (issue_prefetch_ref): Issue prefetches for non-constant but
13127 loop-invariant steps.
13129 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
13132 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
13134 * tree.h (build_call_list): Remove.
13135 * tree.c (build_call_list): Remove.
13137 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
13139 * tree.h (build_call_list): Remove.
13140 * tree.c (build_call_list): Remove.
13142 2010-05-18 Jan Hubicka <jh@suse.cz>
13144 * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
13146 2010-05-18 Vladimir Makarov <vmakarov@redhat.com>
13148 PR rtl-optimization/43332
13149 * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
13151 2010-05-18 Anatoly Sokolov <aesok@post.ru>
13153 * tree.h (build_int_cstu): Implement as static inline.
13154 * tree.c (build_int_cstu): Remove function.
13155 (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
13158 2010-05-18 Richard Guenther <rguenther@suse.de>
13161 * lto-wrapper.c (verbose): New variable. Initialize from -v.
13162 (debug): Initialize from -save-temps.
13163 (collect_execute): Print command-line when verbose.
13164 (run_gcc): Always use COLLECT_GCC_OPTIONS. Use fork_execute
13165 for ltrans invocation. Produce -dumpbase flag again.
13166 (process_args): Remove.
13168 * collect2.c (maybe_run_lto_and_relink): Only pass object
13169 files to lto-wrapper.
13170 * gcc.c (LINK_COMMAND_SPEC): Likewise.
13172 2010-05-18 Jan Hubicka <jh@suse.cz>
13174 * opts.c (decode_options): Do not disable whopr at ipa_cp.
13175 * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
13177 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
13180 * lto-streamer-out.c (output_gimple_stmt): Output number of labels
13182 * lto-streamer-in.c (input_gimple_stmt): Read number of labels
13185 2010-05-18 Jakub Jelinek <jakub@redhat.com>
13188 * var-tracking.c (find_loc_in_1pdv): Add a few checks from
13189 rtx_equal_p inline.
13191 2010-05-18 Steven Bosscher <steven@gcc.gnu.org>
13193 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
13194 lto-macho as lto_binary_reader.
13196 * darwin.c (darwin_asm_named_section): Do not add assembler comment
13197 after .section directive; just print it before the directive instead.
13199 2010-05-17 Jan Hubicka <jh@suse.cz>
13201 * cgraph.c (cgraph_create_virtual_clone): Only check
13202 versionable_function_p when not in wpa and checking is enabled.
13203 * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
13204 there are no more functions to materialize.
13206 2010-05-17 Jan Hubicka <jh@suse.cz>
13208 * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
13209 * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
13211 (output_cgraph): Call output_cgraph_opt_summary.
13212 (input_cgrpah): Call input_cgraph_opt_summary.
13213 (output_cgraph_opt_summary_p, output_node_opt_summary,
13214 input_node_opt_summary, input_cgraph_opt_section): New functions.
13215 * lto-section-in.c (lto_section_name): Add cgraphopt.
13216 * tree-inline.c (tree_function_versioning): Handle parm_num.
13217 * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
13218 * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
13220 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
13222 * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
13223 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
13224 the insn to prefetch ratio heuristic to loops with known trip count.
13226 2010-05-17 Changpeng Fang <changpeng.fang@amd.com>
13228 * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
13229 (schedule_prefetches): Do not generate a prefetch if the unroll factor
13230 is far from what is required by the prefetch.
13232 2010-05-17 Jan Hubicka <jh@suse.cz>
13234 * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
13235 (ipcp_estimate_growth): Likewise.
13236 (ipcp_const_param_count): Likewise.
13237 (ipcp_insert_stage): Likewise.
13238 * ipa-prop.c (visit_load_for_mod_analysis): New function.
13239 (visit_store_addr_for_mod_analysis): Set used flag.
13240 (ipa_detect_param_modifications): Set used flag for SSE params;
13241 update use of walk_stmt_load_store_addr_ops.
13242 (ipa_print_node_params): Print used flag.
13243 (ipa_write_node_info): Stream used flag.
13244 (ipa_read_node_info): Likewise.
13245 * ipa-prop.h (struct ipa_param_descriptor): Add used field.
13246 (ipa_is_param_used): New function.
13247 (lto_ipa_fixup_call_notes): Remove unused declaration.
13249 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13252 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
13253 * configure: Regenerate.
13254 * config.in: Regenerate.
13255 * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
13256 !HAVE_AS_IX86_REP_LOCK_PREFIX.
13257 Don't emit whitespace.
13258 * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
13259 (*rep_movsi): Likewise.
13260 (*rep_movsi_rex64): Likewise.
13261 (*rep_movqi): Likewise.
13262 (*rep_movqi_rex64): Likewise.
13263 (*rep_stosdi_rex64): Likewise.
13264 (*rep_stossi): Likewise.
13265 (*rep_stossi_rex64): Likewise.
13266 (*rep_stosqi): Likewise.
13267 (*rep_stosqi_rex64): Likewise.
13268 (*cmpstrnqi_nz_1): Use {%;} after repz.
13269 (*cmpstrnqi_nz_rex_1): Likewise.
13270 (*cmpstrnqi_1): Likewise.
13271 (*cmpstrnqi_rex_1): Likewise.
13272 (*strlenqi_1): Use {%;} after repnz.
13273 (*strlenqi_rex_1): Likewise.
13274 * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
13275 (*sync_compare_and_swap<mode>): Likewise.
13276 (sync_double_compare_and_swap<mode>): Likewise.
13277 (*sync_double_compare_and_swapdi_pic): Likewise.
13278 (sync_old_add<mode>): Likewise.
13279 (sync_add<mode>): Likewise.
13280 (sync_sub<mode>): Likewise.
13281 (sync_<code><mode>): Likewise.
13283 2010-05-17 Martin Jambor <mjambor@suse.cz>
13285 * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
13286 otr_token and polymorphic.
13287 * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
13288 (cgraph_clone_edge): Copy the above fields.
13289 * tree.c (get_binfo_at_offset): New function.
13290 * tree.h (get_binfo_at_offset): Declare.
13291 * ipa-prop.h (enum jump_func_type): Added known_type jump function
13292 type, reordered items, updated comments.
13293 (union jump_func_value): Added base_type field, reordered fields.
13294 (enum ipa_lattice_type): Moved down in the file.
13295 (struct ipa_param_descriptor): New field polymorphic.
13296 (ipa_is_param_polymorphic): New function.
13297 * ipa-prop.c: Include gimple.h and gimple-fold.h.
13298 (ipa_print_node_jump_functions): Print known type jump functions.
13299 (compute_complex_pass_through): Renamed to...
13300 (compute_complex_assign_jump_func): this.
13301 (compute_complex_ancestor_jump_func): New function.
13302 (compute_known_type_jump_func): Likewise.
13303 (compute_scalar_jump_functions): Create known type and complex ancestor
13305 (ipa_note_param_call): New parameter polymorphic, set the corresponding
13306 flag in the call note accordingly.
13307 (ipa_analyze_call_uses): Renamed to...
13308 (ipa_analyze_indirect_call_uses): this. New parameter target, define
13309 variable var only in the block where it is used.
13310 (ipa_analyze_virtual_call_uses): New function.
13311 (ipa_analyze_call_uses): Likewise.
13312 (combine_known_type_and_ancestor_jfs): Likewise.
13313 (update_jump_functions_after_inlining): Implemented handling of a
13314 number of new jump function types combination.
13315 (print_edge_addition_message): Removed.
13316 (make_edge_direct_to_target): New function.
13317 (try_make_edge_direct_simple_call): Likewise.
13318 (try_make_edge_direct_virtual_call): Likewise.
13319 (update_call_notes_after_inlining): Renamed to...
13320 (update_indirect_edges_after_inlining): this. Moved edge creation for
13321 indirect calls to try_make_edge_direct_simple_call, also calls
13322 try_make_edge_direct_virtual_call for virtual calls.
13323 (ipa_print_node_params): Changed the header message.
13324 (ipa_write_jump_function): Stream also known type jump functions.
13325 (ipa_read_jump_function): Likewise.
13326 (ipa_write_indirect_edge_info): Stream new fields in
13327 cgraph_indirect_call_info.
13328 (ipa_read_indirect_edge_info): Likewise.
13329 * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
13332 2010-05-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13334 * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
13336 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
13338 * tree.h (CALL_EXPR_ARGS): Delete.
13339 (call_expr_arglist): Delete.
13340 * tree.c (call_expr_arglist): Delete.
13341 * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
13342 targetm.fold_builtin.
13343 * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
13344 Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
13345 * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
13346 arglist parameter. Use CALL_EXPR_ARG.
13347 (picochip_expand_builtin_3op): Likewise.
13348 (picochip_expand_builtin_2opvoid): Likewise.
13349 (picochip_expand_array_get): Likewise.
13350 (picochip_expand_array_put): Likewise.
13351 (picochip_expand_array_testport): Likewise.
13352 (picochip_expand_builtin): Don't call CALL_EXPR_ARGS. Pass exp
13353 rather than arglist.
13354 * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
13356 * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
13357 than TREE_VALUE and TREE_CHAIN.
13358 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
13359 * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
13362 2010-05-17 Jakub Jelinek <jakub@redhat.com>
13365 * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
13366 to have no fallthru edge.
13368 PR middle-end/44102
13369 * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
13370 bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
13371 mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
13372 add BARRIER after previous bb if needed.
13374 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
13376 * tree.c (build_function_type_list_1): Remove bogus assert condition.
13378 2010-05-17 Alan Modra <amodra@gmail.com>
13380 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
13381 unnecessary prototype. Replace copy_r12 and copy_r11 flag params
13382 with copy_reg rtx param.
13383 (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
13384 Correct cases where code for ABI_V4 did not initialise the reg
13385 used to access frame. Also leave frame_reg_rtx as sp for large
13386 frames that save no regs.
13388 2010-05-17 Martin Jambor <mjambor@suse.cz>
13390 PR middle-end/44133
13391 * tree-sra.c (create_access_replacement): New parameter rename, mark
13392 the replaement for renaming only when it is true.
13393 (get_access_replacement): Pass true in the rename parameter of
13394 create_access_replacement.
13395 (get_unrenamed_access_replacement): New function.
13396 (replace_uses_with_default_def_ssa_name): New parameter racc, get the
13397 replacement declaration from it.
13399 2010-05-17 Bernd Schmidt <bernds@codesourcery.com>
13401 * function.c (try_fit_stack_local, add_frame_space): New static
13403 (assign_stack_local_1): Use them. Look for opportunities to use
13404 space previously wasted on alignment.
13405 * function.h (struct frame_space): New.
13406 (struct rtl_data): Add FRAME_SPACE_LIST member.
13407 * reload1.c (something_was_spilled): New static variable.
13408 (alter_reg): Set it.
13409 (reload): Test it in addition to testing if the frame size changed.
13411 2010-05-17 Christian Borntraeger <borntraeger@de.ibm.com>
13413 * config/s390/s390.c: Define sane prefetch settings and activate
13414 flag_prefetch_loop_arrays on -O3.
13415 * config/s390/s390.h: Declare that read can use write prefetch.
13417 2010-05-17 Jakub Jelinek <jakub@redhat.com>
13419 * lto-streamer-out.c (lto_output): Fix --enable-checking=release
13422 2010-05-16 Jan Hubicka <jh@suse.cz>
13424 * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
13425 function body; do not check stdarg field of struct function.
13427 2010-05-16 Jan Hubicka <jh@suse.cz>
13429 * cgraph.c (dump_cgraph_node): Dump versionable flag.
13430 * cgraph.h (cgraph_local_info): Add versionable flag.
13431 * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
13432 (ipcp_versionable_function_p): Use it.
13433 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
13436 2010-05-16 Jan Hubicka <jh@suse.cz>
13438 * cgraph.c (cgraph_clone_node): Take decl argument and insert
13439 clone into hash when it is different from orig.
13440 (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
13441 * cgraph.h (cgraph_clone_node): Update prototype.
13442 * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
13443 (lto_cgraph_encoder_delete): Delete body map.
13444 (lto_cgraph_encoder_size): Move to header.
13445 (lto_cgraph_encoder_encode_body_p,
13446 lto_set_cgraph_encoder_encode_body): New.
13447 (lto_output_node): Do not take written_decls argument; output clone_of
13449 (add_node_to): Add include_body_argument; call
13450 lto_set_cgraph_encoder_encode_body on master of the clone.
13451 (add_references): Update use of add_node_to.
13452 (compute_ltrans_boundary): Likewise.
13453 (output_cgraph): Do not create written_decls bitmap.
13454 (input_node): Take nodes argument; stream in clone_of correctly.
13455 (input_cgraph_1): Update use of input_node.
13456 * lto-streamer-out.c (lto_output): Use encoder info to decide
13457 what bodies to output.
13458 * ipa-inline.c (cgraph_clone_inlined_nodes,
13459 cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
13460 * lto-streamer.h (lto_cgraph_encoder_d): Add body.
13461 (lto_cgraph_encoder_size): Define here.
13462 (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
13465 2010-05-16 Richard Guenther <rguenther@suse.de>
13467 * doc/invoke.texi (-fipa-struct-reorg): Do not mention
13469 * ipa-type-escape.c (gate_type_escape_vars): Run when
13470 -fipa-struct-reorg runs.
13471 * opts.c (decode_options): Do not unset flag_ipa_type_escape.
13472 * common.opt (fipa-type-escape): Remove.
13474 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
13476 * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
13477 (decode_options): Likewise.
13478 * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
13480 2010-05-16 Jan Hubicka <jh@suse.cz>
13482 * ipa.c (function_and_variable_visibility): Also bring local all
13485 2010-05-16 Richard Guenther <rguenther@suse.de>
13487 * alias.c (nonoverlapping_memrefs_p): Remove use of
13488 IPA type-escape information.
13490 2010-05-16 Joseph Myers <joseph@codesourcery.com>
13492 * c-common.c (c_common_reswords): Add _Static_assert for C.
13493 * c-parser.c (c_token_starts_declaration,
13494 c_parser_next_token_starts_declaration,
13495 c_parser_static_assert_declaration_no_semi,
13496 c_parser_static_assert_declaration): New.
13497 (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
13498 Handle static assertions if static_assert_ok.
13499 (c_parser_external_declaration, c_parser_declaration_or_fndef,
13500 c_parser_compound_statement_nostart, c_parser_label,
13501 c_parser_for_statement, c_parser_objc_methodprotolist,
13502 c_parser_omp_for_loop): All callers of
13503 c_parser_declaration_or_fndef changed.
13504 (c_parser_struct_declaration): Handle static assertions.
13505 (c_parser_compound_statement_nostart): Use
13506 c_parser_next_token_starts_declaration and
13507 c_token_starts_declaration to detect start of declarations.
13508 (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
13511 2010-05-16 Anatoly Sokolov <aesok@post.ru>
13513 * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
13514 LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
13515 * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
13516 TARGET_FUNCTION_VALUE_REGNO_P): Define.
13517 (mmix_function_outgoing_value): Rename to...
13518 (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
13519 (mmix_function_value_regno_p): Make static.
13520 (mmix_libcall_value): New function.
13521 * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
13522 mmix_function_value_regno_p): Remove declaration.
13524 2010-05-16 Eric Botcazou <ebotcazou@adacore.com>
13526 * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
13527 BUILT_IN_ALLOCA if stack checking is enabled.
13529 2010-05-16 Richard Guenther <rguenther@suse.de>
13531 * var-tracking.c (vars_copy_1): Inline ...
13532 (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT.
13533 (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts.
13534 (variable_merge_over_cur): Adjust. Merge asserts.
13535 (variable_merge_over_src): Likewise.
13536 (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
13537 (variable_post_merge_new_vals): Merge asserts.
13538 (variable_post_merge_perm_vals): Likewise.
13539 (find_mem_expr_in_1pdv): Likewise.
13540 (dataflow_set_different_value): Remove.
13541 (onepart_variable_different_p): Merge asserts.
13542 (variable_different_p): Likewise.
13543 (dataflow_set_different_1): Inline ...
13544 (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT.
13545 (emit_notes_for_differences_1): Merge asserts.
13547 2010-05-16 Richard Guenther <rguenther@suse.de>
13549 * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
13550 * optabs.c (libfunc_decl_hash): Likewise.
13551 * varasm.c (emutls_decl): Likewise.
13553 2010-05-16 Steven Bosscher <steven@gcc.gnu.org>
13555 * c-decl.c: Don't include gimple.h.
13556 (merge_decls): Do not copy gimple_body.
13558 2010-05-15 Jason Merrill <jason@redhat.com>
13560 * c.opt: Add -fnothrow-opt.
13562 2010-05-15 Jan Hubicka <jh@suse.cz>
13564 * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
13566 * passes.c (ipa_write_summaries): Write all analyzed nodes.
13568 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
13570 * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
13571 * Makefile.in: Add it.
13572 Fix all other Makefile dependencies for changes below.
13573 * tree.h: Include it instead of defining VEC primitives here.
13574 * gimple.h: Likewise.
13576 * tree-inline.h: Inlclude vecir.h instead of gimple.h.
13577 * except.h: Include vecir.h, break dependence on tree.h.
13579 * gimplify.c (append_to_statement_list_1, append_to_statement_list):
13581 * tree-iterator.c: ...to here.
13582 * tree-iterator.h: Fix file introduction comment. Add extern markers.
13584 * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include
13586 * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
13587 * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
13588 integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
13589 tree-mudflap.h, and target.h.
13590 * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
13591 predict.h, tree-inline.h, gimple.h, and langhooks.h.
13592 * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
13593 Add FIXME for why gimple.h is still included (should be unnecessary
13594 since GCC 4.5 gimplification unit-at-a-time).
13595 * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
13596 * c-pragma.c: Add FIXME for why function.h needs to be included just
13597 for cfun, at front-end level.
13598 Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
13599 Do not include ggc.h, but include vecprim.h for VEC(char).
13600 * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
13601 Explain why target.h is included.
13602 * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
13603 Explain why gimple.h is included.
13604 * c-ppoutput.c: Do not include tm.h.
13605 * c-common.c: Do not include gimple.h. Explain why expr.h is included.
13606 * c-parses.c: Explain why rtl.h is included, and that this (and only
13607 this) is also why tm.h must be included.
13608 Do not include except.h.
13609 * c-lang.c: Do not include ggc.h.
13611 2010-05-15 Uros Bizjak <ubizjak@gmail.com>
13613 * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
13615 2010-05-15 Joseph Myers <joseph@codesourcery.com>
13617 * c-decl.c (grokfield): Allow typedefs for anonymous structs and
13618 unions by default if those structs and unions have no tags. Do
13619 not condition anonymous struct and unions handling on flag_iso.
13620 Allow anonymous structs and unions for C1X.
13621 (finish_struct): Do not diagnose lack of named fields when
13622 anonymous structs and unions present for C1X. Accept flexible
13623 array members in structure with anonymous structs or unions but no
13624 directly named fields.
13625 * doc/extend.texi (Unnamed Fields): Update.
13627 2010-05-15 Eric Botcazou <ebotcazou@adacore.com>
13629 * gimple.h (compare_field_offset): Rename into...
13630 (gimple_compare_field_offset): ...this.
13631 * gimple.c (compare_field_offset): Rename into...
13632 (gimple_compare_field_offset): ...this. Compare the full access if
13633 the offset is self-referential.
13634 (gimple_types_compatible_p): Adjust for above renaming.
13635 * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the
13636 DECL_NONADDRESSABLE_P flag of fields before merging them.
13638 2010-05-15 Nathan Froyd <froydnj@codesourcery.com>
13640 * tree.h (ctor_to_list): Delete.
13641 * tree.c (ctor_to_list): Delete.
13643 2010-05-15 Jan Hubicka <jh@suse.cz>
13645 * ipa-reference.c: Include toplev.h
13646 (is_proper_for_analysis): Only add to all_module_statics
13647 if it is allocated.
13648 (write_node_summary_p, stream_out_bitmap,
13649 ipa_reference_write_optimization_summary,
13650 ipa_reference_read_optimization_summary): New.
13651 (struct ipa_opt_pass_d pass_ipa_reference): Add
13652 optimization summary streaming.
13653 * lto-cgraph.c (referenced_from_this_partition_p,
13654 reachable_from_this_partition_p): New functions.
13655 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
13656 call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
13657 * opts.c (decode_options): Enable ipa_reference.
13658 * Makefile.in (ipa-reference.o): Add toplev.h dependency.
13659 * lto-streamer.h (referenced_from_this_partition_p,
13660 reachable_from_this_partition_p): Declare.
13662 2010-05-15 Richard Guenther <rguenther@suse.de>
13664 PR tree-optimization/44038
13665 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
13666 taking the address of a V_C_E of a constant.
13668 2010-05-14 Jan Hubicka <jh@suse.cz>
13670 * tree.h (memory_identifier_string): Remove.
13671 * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
13672 (ipa_reference_global_vars_info_d): Remove statics_not_read and
13673 statics_not_written.
13674 (ipa_reference_optimization_summary_d): New structure.
13675 (ipa_reference_optimization_summary_t): New type and vector.
13676 (ipa_reference_vars_info_d): Embedd structures instead of using
13678 (reference_vars_to_consider): Remove out of GGC space.
13679 (module_statics_escape): Remove.
13680 (global_info_obstack): Rename to ...
13681 (optimization_summary_obstack): ... this one.
13682 (initialization_status_t): Remove.
13683 (memory_identifier_string): Remove.
13684 (get_reference_vars_info): Fix indenting.
13685 (set_reference_vars_info): Likewise.
13686 (get_reference_optimization_summary): New.
13687 (set_reference_optimization_summary): New.
13688 (get_global_reference_vars_info): Remove.
13689 (ipa_reference_get_read_global): Remove.
13690 (ipa_reference_get_written_global): Remove.
13691 (ipa_reference_get_not_read_global): Update.
13692 (ipa_reference_get_not_written_global): Update.
13693 (is_proper_for_analysis): Outlaw addressable.
13694 (propagate_bits): Update for new datastructures.
13695 (analyze_variable): Remove.
13696 (init_function_info): Update for new datastructures.
13697 (clean_function_local_data): Remove.
13698 (clean_function): Remove.
13699 (copy_global_bitmap): Use optimizations_summary_obstack.
13700 (duplicate_node_data): Duplicate optimization summary only.
13701 (remove_node_data): Remove optimization summary only.
13702 (generate_summary): Do not analyze variables; do not compute
13703 module_statics_escape; do not prune solutions by it.
13704 (read_write_all_from_decl): Fix typos in comments.
13705 (propagate): Doscover readonly and nonaddressable first;
13706 update for new datastructures; share global bitmaps.
13707 * ipa-reference.h (ipa_reference_get_read_global,
13708 ipa_reference_get_written_global): Remove.
13709 * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
13710 * Makefile.in: Remove ipa-refereference from GT files.
13712 2010-05-14 Jakub Jelinek <jakub@redhat.com>
13715 * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
13716 for all SYMBOL_REF_DECLs.
13718 2010-05-14 Jan Hubicka <jh@suse.cz>
13720 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
13721 (varpool_all_refs_explicit_p): New inline function.
13722 * ipa-reference.c: Update comment.
13723 (module_statics_written): Remove.
13724 (get_static_decl): Remove.
13725 (ipa_init): Do not initialize module_statics_written.
13726 (analyze_function): Likewise.
13727 (generate_summary): Likewise; do not compute module_statics_readonly
13728 and do not update variable flags.
13729 (propagate): Call ipa_discover_readonly_nonaddressable_vars.
13730 * ipa.c: Inlucde flags.h
13731 (cgraph_local_node_p): New.
13732 (cgraph_remove_unreachable_nodes): Return early when not optimizing;
13733 promote functions to local.
13734 (ipa_discover_readonly_nonaddressable_vars): New function.
13735 (function_and_variable_visibility): Use cgraph_local_node_p.
13736 * varpool.c (varpool_finalize_decl): Set force_output for
13737 DECL_PRESERVE_P vars.
13739 2010-05-14 Jan Hubicka <jh@suse.cz>
13741 * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
13743 2010-05-14 Richard Guenther <rguenther@suse.de>
13745 PR tree-optimization/44119
13746 * tree-ssa-pre.c (eliminate): Properly mark replacement of
13747 a PHI node necessary.
13749 2010-05-14 Eric Botcazou <ebotcazou@adacore.com>
13751 * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
13753 2010-05-14 Jason Merrill <jason@redhat.com>
13756 * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
13757 (gimple_call_set_nothrow): New.
13758 * gimple.c (gimple_build_call_from_tree): Call it.
13759 (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
13762 * gimplify.c (gimplify_seq_add_stmt): No longer static.
13763 * gimple.h: Declare it.
13764 * gimple.c (gimple_build_eh_filter): No ops.
13766 2010-05-14 Jan Hubicka <jh@suse.cz>
13768 * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
13769 nodes already in queue.
13770 (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
13771 re-enqueueing node.
13773 2010-05-14 Jakub Jelinek <jakub@redhat.com>
13776 * cfgexpand.c (expand_debug_expr): If non-memory op0
13777 has BLKmode, return NULL.
13779 2010-05-14 Harsha Jagasia <harsha.jagasia@amd.com>
13781 * config.gcc: Add support for --with-cpu option for bdver1.
13782 * config/i386/i386.h (TARGET_BDVER1): New macro.
13783 (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
13784 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13785 (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
13786 to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
13787 Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
13788 (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
13789 (processor_type): Add PROCESSOR_BDVER1.
13790 * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
13791 processor_type in config/i386/i386.h.
13792 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
13793 movaps <reg, reg> instead of movapd <reg, reg> when replacing
13794 movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
13795 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
13796 to emit packed xor instead of packed double/packed integer
13797 xor for SSE and AVX when moving a zero value.
13798 * config/i386/sse.md: Add check for
13799 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
13800 movapd/movdqa for SSE and AVX.
13801 Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
13802 single logical operations i.e and, or and xor instead of packed double
13803 logical operations for SSE and AVX.
13804 * config/i386/i386-c.c (ix86_target_macros_internal):
13805 Add PROCESSOR_BDVER1.
13806 * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
13807 (has_fma4, has_xop): New.
13808 * config/i386/i386.c (bdver1_cost): New variable.
13809 (m_BDVER1): New macro.
13810 (m_AMD_MULTIPLE): Add m_BDVER1.
13811 (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
13812 x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
13813 x86_tune_use_simode_fiop, x86_tune_promote_qimode,
13814 x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
13815 x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
13816 x86_tune_sse_partial_reg_dependency,
13817 x86_tune_sse_unaligned_load_optimal,
13818 x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
13819 x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
13820 x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
13821 x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
13822 x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
13823 Enable/disable for bdver1.
13824 (processor_target_table): Add bdver1_cost.
13825 (cpu_names): Add bdver1.
13826 (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
13827 processor_alias_table.
13828 (ix86_expand_vector_move_misalign): Change.
13829 TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
13830 Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
13831 Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
13832 of movupd/movdqu for SSE and AVX.
13833 (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
13834 (ix86_tune_adjust_cost): Add code for bdver1.
13835 (standard_sse_constant_opcode): Add check for
13836 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
13837 of packed double xor for SSE and AVX.
13839 2010-05-14 Pat Haugen <pthaugen@us.ibm.com>
13841 * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
13842 result to unsigned.
13844 2010-05-14 Tristan Gingold <gingold@adacore.com>
13846 * toplev.c (default_debug_hooks): Remove this variable.
13847 (process_options): Remove assignments to default_debug_hooks.
13849 2010-05-14 Martin Jambor <mjambor@suse.cz>
13851 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
13852 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
13853 * langhooks.h (struct lang_hooks_for_decls): Removed field
13855 * tree.c (free_lang_data): Remove assignment to
13856 lang_hooks.fold_obj_type_ref.
13857 * tree.def (OBJ_TYPE_REF): Update comment.
13859 2010-05-14 Richard Guenther <rguenther@suse.de>
13861 PR tree-optimization/44124
13862 * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
13864 2010-05-14 Alan Modra <amodra@gmail.com>
13867 * config/rs6000/rs6000.c (struct machine_function): Reorder
13868 fields for better packing. Add lr_save_state.
13869 (rs6000_ra_ever_killed): Return lr_save_state if set.
13870 (rs6000_emit_eh_reg_restore): Set lr_save_state.
13872 2010-05-13 Jan Hubicka <jh@suse.cz>
13874 * varpool.c (decide_is_variable_needed): Drop code checking
13875 TREE_SYMBOL_REFERENCED.
13877 2010-05-13 Jan Hubicka <jh@suse.cz>
13879 * final.c (output_addr_const): Do not call mark_decl_referenced.
13880 * cgraphunit.c (process_function_and_variable_attributes): Use
13881 mark_needed_node dirrectly.
13882 (assemble_thunk): Do not call mark_decl_referenced.
13884 2010-05-13 Anatoly Sokolov <aesok@post.ru>
13886 * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
13888 2010-05-13 Jeff Law <law@redhat.com>
13890 * ira-conflicts.c (print_allocno_conflicts): New function broken out
13892 (print_conflicts): Call print_allocno_conflicts.
13894 2010-05-13 Jakub Jelinek <jakub@redhat.com>
13897 * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
13900 2010-05-13 Kai Tietz <kai.tietz@onevision.com>
13902 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
13903 t-mingw-w64 or t-mingw-w32 for multilib configuration.
13904 * config/i386/t-mingw-w32: New.
13905 * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
13907 2010-05-13 Martin Jambor <mjambor@suse.cz>
13909 * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
13911 * gimple-fold.c (get_base_binfo_for_type): New function.
13912 (gimple_get_relevant_ref_binfo): Likewise.
13913 (gimple_fold_obj_type_ref_known_binfo): Likewise.
13914 (gimple_fold_obj_type_ref): Likewise.
13915 (fold_gimple_call): Simplify condition for folding virtual calls
13916 and call gimple_fold_obj_type_ref.
13917 * gimple.h (gimple_get_relevant_ref_binfo): Declare.
13918 (gimple_fold_obj_type_ref_known_binfo): Likewise.
13920 2010-05-13 Andreas Schwab <schwab@linux-m68k.org>
13922 * config/rs6000/rs6000-protos.h
13923 (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
13924 * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
13925 (rs6000_debug_mode_dependent_address)
13926 (rs6000_mode_dependent_address_ptr): Likewise.
13928 2010-05-13 Jakub Jelinek <jakub@redhat.com>
13931 * var-tracking.c (track_expr_p): Allow tracking of variables optimized
13933 * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
13934 * tree-sra.c (create_access_replacement): Call unshare_expr before
13935 passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
13936 * dwarf2out.c: Include tree-flow.h.
13937 (struct var_loc_node): Rename var_loc_note field to loc, add comment.
13938 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
13939 Handle DW_OP_bit_piece.
13940 (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
13941 construct_piece_list, adjust_piece_list): New functions.
13942 (add_var_loc_to_decl): Handle SRA optimized variables.
13943 Adjust for var_loc_note to loc field renaming.
13944 (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
13945 in VAR_LOCATION note.
13946 (new_loc_descr_op_bit_piece): New function.
13947 (dw_sra_loc_expr): New function.
13948 (dw_loc_list): Use it. Don't handle the last range after the
13949 loop, handle it inside of the loop. Adjust for var_loc_note
13950 to loc field renaming.
13951 (add_location_or_const_value_attribute): Only special case
13952 single entry loc lists if loc is NOTE_P. Adjust for
13953 var_loc_note to loc field renaming.
13954 (dwarf2out_var_location): Don't set newloc->var_loc_note
13955 and newloc->next here.
13957 2010-05-12 Jan Hubicka <jh@suse.cz>
13959 * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
13961 * cgraph.h (cgraph_only_called_directly_p,
13962 cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
13963 (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
13964 * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
13966 * ipa.c (cgraph_remove_unreachable_nodes): Use
13967 cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
13969 * tree-inline.c (copy_bb): Check address_taken flag.
13970 * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
13971 externally_visible flag.
13973 2010-05-12 Jason Merrill <jason@redhat.com>
13977 * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
13978 * sdbout.c (plain_type_1): Likewise.
13979 * dwarf2out.c (is_base_type): Likewise.
13980 (gen_type_die_with_usage): Likewise. Generate
13981 DW_TAG_unspecified_type for any LANG_TYPE.
13983 2010-05-12 Jan Hubicka <jh@suse.cz>
13985 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
13987 * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
13988 (cgraph_clone_edge): Update.
13989 (cgraph_node_remove_callees): Remove indirect calls too.
13990 * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
13991 (cgraph_create_indirect_edge): Update prototype.
13992 * ipa-reference.c (has_proper_scope_for_analysis): Rename to
13993 is_proper_for_analysis.
13994 (add_new_function, visited_nodes, function_insertion_hook_holder,
13995 get_local_reference_vars_info, mark_address_taken, mark_address,
13996 mark_load, mark_store, check_asm_memory_clobber, check_call,
13997 scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
13998 (ipa_init): Do not initialize visited_nodes;
13999 function_insertion_hook_holder.
14000 (analyze_variable): Rewrite.
14001 (analyze_function): Rewrite.
14002 (copy_local_bitmap): Remove.
14003 (duplicate_node_dat): Do not duplicate local info.
14004 (generate_summary): Simplify to only walk cgraph.
14005 (write_node_summary_p, ipa_reference_write_summary,
14006 ipa_reference_read_summary): Remove.
14007 (propagate): Do not remove function insertion;
14009 (pass_ipa_reference): NULLify summary handling fields.
14010 * lto-cgraph.c (lto_output_edge): Output ecf_flags.
14011 (input_edge): Input ecf_flags.
14012 * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
14013 (update_indirect_edges_after_inlining): Ignore edges with unknown
14016 2010-05-12 Sriraman Tallam <tmsriram@google.com>
14018 * implicit-zee.c: New file.
14019 * tree-pass.h (pass_implicit_zee): Declare.
14020 * passes.c (init_optimization_passes): Add zee pass.
14021 * common.opt (fzee): New flag.
14022 * timevar.def (TV_ZEE): Define.
14023 * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
14025 * Makefile.in (implicit-zee.o): Add new build file.
14027 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
14028 Nathan Froyd <froydnj@codesourcery.com>
14030 * c-common.c (sync_resolve_params): Remove write-only variable.
14032 2010-05-12 Anatoly Sokolov <aesok@post.ru>
14034 * target.h (struct gcc_target): Add mode_dependent_address_p field.
14035 * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14036 (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
14037 * targhooks.c (default_mode_dependent_address_p): New function.
14038 * targhooks.h (default_mode_dependent_address_p): Declare function.
14039 * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
14040 (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
14041 * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
14042 target hook. Change return type to bool.
14043 * recog.h (mode_dependent_address_p): Change return type to bool.
14045 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
14046 Nathan Froyd <froydnj@codesourcery.com>
14048 * tree-mudflap.c (build_function_type_0, build_function_type_1,
14049 build_function_type_2, build_function_type_3): Remove.
14050 (mudflap_init): Use build_function_type_list.
14052 2010-05-12 Kazu Hirata <kazu@codesourcery.com>
14053 Nathan Froyd <froydnj@codesourcery.com>
14055 * coverage.c (build_fn_info_value): Call build_constructor instead of
14056 build_constructor_from_list.
14057 (build_ctr_info_value): Likewise.
14058 (build_gcov_info): Likewise.
14060 2010-05-12 Nathan Froyd <froydnj@codesourcery.com>
14062 * tree.c (build_constructor): Compute TREE_CONSTANT for the
14063 resultant constructor.
14064 (build_constructor_single): Don't set TREE_CONSTANT.
14065 (build_constructor_from_list): Don't compute TREE_CONSTANT.
14067 2010-05-12 Jan Hubicka <jh@suse.cz>
14069 * cgraph.h (struct varpool_node): Add aux.
14070 * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
14071 * varpool.c (varpool_remove_node): Do not remove initializer.
14072 (varpool_reset_queue): Export.
14073 (varpool_finalize_decl): Volatile vars are forced to be output.
14074 * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
14076 * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
14077 process_references, varpool_can_remove_if_no_refs): New functions.
14078 (cgraph_remove_unreachable_nodes): Handle variables too.
14080 2010-05-12 H.J. Lu <hongjiu.lu@intel.com>
14083 * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
14085 2010-05-12 Jakub Jelinek <jakub@redhat.com>
14087 PR middle-end/44085
14088 * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
14089 change value of ORT_TASK.
14090 (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
14091 (omp_notice_threadprivate_variable): New function.
14092 (omp_notice_variable): Call it for threadprivate variables.
14093 If enclosing ctx is a task, print enclosing task rather than
14094 enclosing parallel. Handle ORT_UNTIED_TASK like ORT_TASK.
14095 (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
14096 if task has untied clause.
14099 * dwarf2out.c (base_type_die): Don't add name attribute here.
14100 (modified_type_die): Instead of sizetype use
14101 its underlying original type. If a DW_TAG_base_type doesn't
14102 have name added, add __unknown__.
14103 (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
14104 always call force_type_die instead.
14106 2010-05-12 Maxim Kuvyrkov <maxim@codesourcery.com>
14108 * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
14109 for __stack_chk_guard.
14111 2010-05-11 Jakub Jelinek <jakub@redhat.com>
14113 * c-opts.c (c_common_parse_file): If start_end_main_source_file,
14114 don't call start_source_file debug hook here...
14115 (finish_options): ... but here, after outputting predefined and
14116 command line defines and undefs.
14118 PR middle-end/44071
14119 * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
14121 * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
14122 optimizing away empty bb with no successors, move over its
14123 footer chain to fallthru predecessor.
14124 * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
14125 (rtl_split_edge): For asm goto call patch_jump_insn even if
14126 splitting fallthru edge.
14129 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
14130 even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
14131 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
14132 * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
14136 * c-parser.c (c_parser_expression): Mark LHS of a comma
14137 expression as read if it is a decl, handled component or
14138 COMPOUND_EXPR with that on the RHS.
14139 * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
14140 if it is a decl or handled component.
14142 2010-05-11 Jan Hubicka <jh@suse.cz>
14144 * lto-symtab.c (lto_symtab_free): New function.
14145 * lto-streamer.h (lto_symtab_free): Declare.
14147 2010-05-11 Jan Hubicka <jh@suse.cz>
14149 * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
14150 that if function is needed it is reachable.
14151 (lto_output_node): See if it the function is reachable or referenced.
14152 (output_cgraph): Update call of lto_output_node.
14153 * lto-streamer.h (reachable_from_other_partition_p): Declare.
14155 2010-05-11 Jan Hubicka <jh@suse.cz>
14157 * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
14160 2010-05-11 Jan Hubicka <jh@suse.cz>
14162 PR tree-optimize/44063
14163 * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
14165 (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
14167 (estimate_function_body_sizes): Compute sizes even when disregarding.
14169 2010-05-11 Kai Tietz <kai.tietz@onevision.com>
14171 * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
14173 2010-05-11 Jan Hubicka <jh@suse.cz>
14175 * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
14176 into every boundary.
14178 2010-05-11 Jan Hubicka <jh@suse.cz>
14180 * matrix-reorg.c (matrix_reorg): Rebuild edges.
14182 2010-05-11 Jan Hubicka <jh@suse.cz>
14184 * lto-streamer.c (lto_streamer_cache_add_to_node_array,
14185 lto_streamer_cache_delete): Put nodes into heap.
14186 * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
14189 2010-05-11 Jan Hubicka <jh@suse.cz>
14191 * cgraphbuild.c (cgraph_rebuild_references): New.
14192 * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
14193 out extern inlines.
14194 * cgraph.h (cgraph_rebuild_references): Declare.
14195 * tree-inline.c (tree_function_versioning): Use it.
14196 * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
14198 2010-05-11 Jan Hubicka <jh@suse.cz>
14200 * cgraph.c: Include ipa-utils.h
14201 (cgraph_create_virtual_clone): Update references.
14202 * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
14204 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
14206 * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
14207 prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
14210 2010-05-11 Christian Borntraeger <borntraeger@de.ibm.com>
14212 * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
14214 2010-05-11 Jakub Jelinek <jakub@redhat.com>
14216 * gcc.c (execute): For -### don't quote arguments that
14217 contain just alphanumerics and _/-. characters.
14218 * doc/invoke.texi: Document that change for -###.
14221 * df-problems.c (struct dead_debug): Add to_rescan field.
14222 (dead_debug_init): Clear to_rescan field.
14223 (dead_debug_finish): Rescan all debug insns in to_rescan
14224 bitmap and free the bitmap.
14225 (dead_debug_insert_before): Instead of rescanning debug insns
14226 immediately queue their rescanning until dead_debug_finish.
14227 (df_note_bb_compute): After dead_debug_add do continue instead
14230 2010-05-10 Jakub Jelinek <jakub@redhat.com>
14233 * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
14234 clear also INSN_REG_USE_LIST.
14236 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14238 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
14240 2010-05-10 Jan Hubicka <jh@suse.cz>
14242 * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
14245 2010-05-10 Jan Hubicka <jh@suse.cz>
14247 * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
14249 * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
14250 * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
14251 (lto_streamer_cache_create): Init alloc pool.
14252 (lto_streamer_cache_delete): Free alloc pool.
14253 * lto-streamer.h: Include alloc pool.
14254 (lto_streamer_cache_d): Use alloc pool.
14255 * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
14257 2010-05-10 Jan Hubicka <jh@suse.cz>
14259 * Makefile.in (cgraphbuild.o): Add dependency on except.h.
14260 * cgraphbuild.c: Include except.h
14261 (record_type_list, record_eh_tables): New function.
14262 (build_cgraph_edges, rebuild_cgraph_edges): Use it.
14264 2010-05-10 Jan Hubicka <jh@suse.cz>
14266 * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
14267 __frame_dummy_init_array_entry, force_to_data): Attribute as used
14268 rather than unused.
14270 2010-05-10 Michael Matz <matz@suse.de>
14272 * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
14273 (can_reassociate_p): Use FLOAT_TYPE_P.
14274 * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
14275 (vect_force_simple_reduction): ... this.
14276 * tree-parloops.c (gather_scalar_reductions): Use
14277 vect_force_simple_reduction.
14278 * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
14279 vect_is_simple_reduction, add modify argument, if true rewrite
14280 "a-b" into "a+(-b)".
14281 (vect_is_simple_reduction, vect_force_simple_reduction): New
14283 (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
14285 2010-05-10 H.J. Lu <hongjiu.lu@intel.com>
14286 Vladimir Makarov <vmakarov@redhat.com>
14288 PR rtl-optimization/44012
14289 * ira-build.c (remove_unnecessary_allocnos): Nullify
14290 regno_allocno_map of the removed allocno.
14292 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14294 * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
14296 * configure: Regenerate.
14298 2010-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14300 * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
14302 Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
14303 * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
14305 * configure: Regenerate.
14307 2010-05-10 Richard Guenther <rguenther@suse.de>
14309 * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
14310 marked if the entry identifier is marked.
14312 2010-05-10 Richard Guenther <rguenther@suse.de>
14314 * c-common.c (struct c_common_attributes): Add fnspec attribute.
14315 (handle_fnspec_attribute): New function.
14316 * gimple.h (gimple_call_return_flags): Declare.
14317 (gimple_call_arg_flags): Likewise.
14318 * gimple.c (gimple_call_arg_flags): New function.
14319 (gimple_call_return_flags): Likewise.
14320 * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
14321 New argument flags.
14322 (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
14323 return value flags.
14324 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
14325 * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
14327 (make_heapvar_for): ... this new function.
14328 (handle_rhs_call): Handle fnspec attribute argument specifiers.
14329 (handle_lhs_call): Likewise.
14330 (find_func_aliases): Adjust.
14332 2010-05-10 Richard Guenther <rguenther@suse.de>
14334 PR tree-optimization/44050
14335 * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
14337 2010-05-10 Wei Guozhi <carrot@google.com>
14340 * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
14342 2010-05-09 Joseph Myers <joseph@codesourcery.com>
14345 * c-typeck.c (lookup_field): Take a type directly. Update
14347 (build_component_ref): Update call to lookup_field.
14348 (set_init_label): Use lookup_field to find initialized field.
14349 Handle returned list of fields like a sequence of designators.
14351 2010-05-09 Richard Guenther <rguenther@suse.de>
14353 PR middle-end/44024
14354 * fold-const.c (tree_single_nonzero_warnv_p): Properly
14355 handle &FUNCTION_DECL.
14357 2010-05-09 Joseph Myers <joseph@codesourcery.com>
14360 * c-decl.c (detect_field_duplicates_hash): New. Handle anonymous
14361 structures and unions recursively.
14362 (detect_field_duplicates): Move duplicate detection with a hash to
14363 detect_field_duplicates_hash. Always use a hash if anonymous
14364 structures or unions are present.
14365 * doc/extend.texi (Unnamed Fields): Document that duplicate fields
14368 2010-05-09 H.J. Lu <hongjiu.lu@intel.com>
14371 * config/i386/driver-i386.c (host_detect_local_cpu): Properly
14372 detect Atom, Core 2 and Core i7.
14374 2010-05-09 Richard Guenther <rguenther@suse.de>
14376 * gcc.c (store_arg): Handle temporary file deletion for
14379 2010-05-09 Richard Guenther <rguenther@suse.de>
14381 PR middle-end/44043
14382 * ipa-inline.c (estimate_function_body_sizes): Return after
14383 disregarding inline limits.
14385 2010-05-09 Richard Guenther <rguenther@suse.de>
14387 * gcc.c (store_arg): Revert last change.
14389 2010-05-08 Sandra Loosemore <sandra@codesourcery.com>
14391 PR middle-end/28685
14392 * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
14393 (optimize_ops_list): Call it.
14395 2010-05-08 Richard Guenther <rguenther@suse.de>
14397 PR tree-optimization/44030
14398 * tree-ssa-pre.c (eliminate): Copy NECESSARY flag. Set
14399 NECESSARY flag if we propagate from a inserted expression.
14401 2010-05-08 Eric Botcazou <ebotcazou@adacore.com>
14403 * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
14404 domain types as equal if they are both PLACEHOLDER_EXPRs.
14406 2010-05-08 Richard Guenther <rguenther@suse.de>
14408 * lto-wrapper.c (run_gcc): Remove linker output from
14409 command line for LTRANS invocation.
14411 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
14413 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14414 lto-macho as lto_binary_reader.
14415 * target.h (struct gcc_target): New hooks lto_start and lto_end.
14416 * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
14417 * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
14418 in lto_start and lto_end calls.
14419 (is_elf_or_coff): Rename to maybe_lto_object_file. Add Mach-O
14421 (scan_prog_file): Update is_elf_or_coff call.
14422 * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
14424 * collect2.c (main): Fix enum comparison.
14426 * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
14428 * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
14429 * darwin.h (LINK_COMMAND_SPEC): Likewise. Define TARGET_ASM_LTO_START
14430 and TARGET_ASM_LTO_END.
14431 * darwin.c: Include obstack.h and lto-streamer.h.
14432 (lto_section_names_offset, lto_section_names_obstack,
14433 lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
14435 (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
14436 (darwin_asm_lto_start): New function. Redirect output to asm_out_file
14437 to a temporary file.
14438 (darwin_asm_lto_end): New function. Restore asm_out_file.
14439 (darwin_asm_named_section): For LTO sections, replace the name with
14440 the offset of the section name in a string table, and build this
14442 (darwin_file_start): Initialize global vars for LTO support.
14443 (darwin_file_end): If output to asm_out_file was redirected, append it
14444 to the proper asm_out_file here. Add the section names section.
14446 2010-05-07 Steven Bosscher <steven@gcc.gnu.org>
14448 * c-pragma.c (pending_weak_d, pending_weak): New.
14449 (pending_weaks): Change the type to VEC((pending_weak,gc) *.
14450 (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
14451 handle_pragma_weak): Update the uses of pending_weaks.
14453 2010-05-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
14455 PR documentation/44016
14456 * doc/standards.texi (Standards): Link to unversioned
14457 cxx0x_status.html page.
14459 2010-05-07 Iain Sandoe <iains@gcc.gnu.org>
14462 * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
14463 in addition to TREE_USED, to avoid "set but unused" warnings.
14465 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
14467 * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
14468 (is_loop_prefetching_profitable): Do not insert prefetches
14469 when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
14470 times the prefetch ahead distance.
14472 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
14474 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
14475 Account for loop unrolling in the insn-to-prefetch ratio heuristic.
14476 (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
14479 2010-05-07 Changpeng Fang <changpeng.fang@amd.com>
14481 * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
14482 a diagnostic info when the insn-to-mem ratio is too small.
14484 2010-05-07 Richard Guenther <rguenther@suse.de>
14486 * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
14488 (store_arg): Queue temp_filename for deletion instead of
14489 the whole argument.
14491 2010-05-07 Richard Guenther <rguenther@suse.de>
14493 * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
14494 (run_gcc): Handle LTRANS phase invocation.
14495 * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
14497 2010-05-07 Jakub Jelinek <jakub@redhat.com>
14499 * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
14500 this is also meaningful on PARM_DECLs and RESULT_DECLs.
14502 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14504 * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
14506 2010-05-07 Richard Guenther <rguenther@suse.de>
14508 PR tree-optimization/44020
14509 * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
14510 code when PRE is not yet initialized.
14512 2010-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14514 * config/mips/dbxmdebug.h: Remove.
14515 * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
14517 2010-05-07 Shujing Zhao <pearly.zhao@oracle.com>
14519 * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
14520 with null pointer and also warn about ordered comparison of zero with
14521 pointer if -Wextra.
14523 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14525 * graphite-blocking.c
14526 (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
14527 * graphite-clast-to-gimple.c
14528 (clast_to_gcc_expression): Same.
14529 (precision_for_value): Same.
14530 (precision_for_interval): Same.
14531 (gcc_type_for_interval): Same.
14532 (graphite_create_new_guard): Same.
14533 (compute_bounds_for_level): Same.
14534 (graphite_create_new_loop_guard): Same.
14535 * graphite-interchange.c
14536 (build_linearized_memory_access): Same.
14537 (pdr_stride_in_loop): Same.
14538 (memory_strides_in_loop_1): Same.
14539 (memory_strides_in_loop): Same.
14540 (extend_scattering): Same.
14541 (psct_scattering_dim_for_loop_depth): Same.
14542 (pbb_number_of_iterations): Same.
14544 (debug_iteration_domains): Same.
14546 (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
14547 (ppl_set_inhomogeneous_gmp): Same.
14548 (ppl_strip_loop): Same.
14549 (ppl_lexico_compare_linear_expressions): Same.
14550 (ppl_read_polyhedron_matrix): Same.
14551 (ppl_max_for_le_pointset): Same.
14553 (ppl_read_polyhedron_matrix): Same.
14554 (tree_int_to_gmp): Same.
14555 (gmp_cst_to_tree): Same.
14556 (ppl_set_inhomogeneous): Same.
14557 (ppl_set_inhomogeneous_tree): Same.
14558 (ppl_set_coef): Same.
14559 (ppl_set_coef_tree): Same.
14560 * graphite-sese-to-poly.c
14561 (build_pbb_scattering_polyhedrons): Same.
14562 (build_scop_scattering): Same.
14563 (scan_tree_for_params_right_scev): Same.
14564 (scan_tree_for_params): Same.
14565 (find_params_in_bb): Same.
14566 (find_scop_parameters): Same.
14567 (add_upper_bounds_from_estimated_nit): Same.
14568 (build_loop_iteration_domains): Same.
14569 (add_condition_to_domain): Same.
14570 (pdr_add_memory_accesses): Same.
14572 2010-05-05 Andreas Simbuerger <simbuerg@fim.uni-passau.de>
14574 * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
14575 CLooG's value_* macros to their respective mpz_* counterparts.
14576 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
14577 (graphite_create_new_loop_guard): Same.
14578 * graphite-interchange.c (build_linearized_memory_access): Same.
14579 (pdr_stride_in_loop): Same.
14580 (memory_strides_in_loop_1): Same.
14581 (1st_interchange_profitable_p): Same.
14582 * graphite-poly.c (extend_scattering): Same.
14583 (psct_scattering_dim_for_loop_depth): Same.
14584 (pbb_number_of_iterations): Same.
14585 (pbb_number_of_iterations_at_time): Same.
14586 * graphite-poly.h (new_1st_loop): Same.
14587 * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
14588 (oppose_constraint): Same.
14589 (insert_constraint_into_matrix): Same.
14590 (ppl_set_inhomogeneous_gmp): Same.
14591 (ppl_set_coef_gmp): Same.
14592 (ppl_strip_loop): Same.
14593 (ppl_lexico_compare_linear_expressions): Same.
14594 (ppl_max_for_le_pointset): Same.
14595 (ppl_min_for_le_pointset): Same.
14596 (ppl_build_realtion): Same.
14597 * graphite-ppl.h (gmp_cst_to_tree): Same.
14598 (ppl_set_inhomogeneous): Same.
14599 (ppl_set_inhomogeneous_tree): Same.
14600 (ppl_set_coef): Same.
14601 (ppl_set_coef_tree): Same.
14602 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14603 (build_scop_scattering): Same.
14604 (add_value_to_dim): Same.
14605 (scan_tree_for_params_right_scev): Same.
14606 (scan_tree_for_params_int): Same.
14607 (scan_tree_for_params): Same.
14608 (find_params_in_bb): Same.
14609 (find_scop_parameters): Same.
14610 (add_upper_bounds_from_estimated_nit): Same.
14611 (build_loop_iteration_domains): Same.
14612 (create_linear_expr_from_tree): Same.
14613 (add_condition_to_domain): Same.
14614 (pdr_add_memory_accesses): Same.
14616 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
14617 Jason Merrill <jason@redhat.com>
14619 * c-common.c (c_common_reswords): Add nullptr.
14620 * c-common.h: Add RID_NULLPTR. Reorganize C++0x rids.
14621 * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
14622 (gen_type_die_with_usage): Likewise.
14623 * dbxout.c (dbxout_type): Likewise.
14624 * sdbout.c (plain_type_1): Likewise.
14626 2010-05-06 Jason Merrill <jason@redhat.com>
14628 * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14629 Don't change GS_OK to GS_ALL_DONE. Make sure that all cases set
14631 (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
14633 * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
14634 stripping WITH_SIZE_EXPR.
14635 (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
14638 2010-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14640 * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
14641 list of obsolete configurations.
14642 Disabled check for obsolete configurations.
14643 (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
14644 Removed support for previous versions.
14645 * config/mips/iris.h: Removed.
14646 * config/mips/iris5.h: Removed.
14647 * config/mips/iris6.h: Merged old iris.h contents.
14648 (TARGET_IRIX): Removed.
14649 (DRIVER_SELF_SPECS): Removed mabi=32.
14650 (IDENT_ASM_OP): Removed undef.
14651 (STARTFILE_SPEC): Removed mabi=32.
14652 (ENDFILE_SPEC): Likewise.
14653 (IRIX_SUBTARGET_LINK_SPEC): Likewise.
14654 (MACHINE_TYPE): Update for IRIX 6.5.
14655 * config/mips/mips.c (mips_build_builtin_va_list): Replaced
14656 TARGET_IRIX by TARGET_IRIX6.
14657 (mips_file_start): Likewise.
14658 (mips_output_external): Remove IRIX 5/6 O32 support.
14659 (mips_output_function_prologue): Likewise.
14660 * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
14662 (TARGET_CPU_CPP_BUILTINS): Likewise.
14663 (TARGET_IRIX): Removed.
14664 * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
14665 (MULTILIB_DIRNAMES): Removed 32.
14666 (MULTILIB_OSDIRNAMES): Removed ../lib.
14667 * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
14668 (Specific, mips-sgi-irix5): Document removal.
14669 (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
14670 Remove references to older IRIX 6 releases and the O32 ABI.
14672 2010-05-06 Jakub Jelinek <jakub@redhat.com>
14675 * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
14676 instead of DF_REF_REAL_REG.
14678 2010-05-06 Dave Korn <dave.korn.cygwin@gmail.com>
14681 * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
14682 handling to still return true for x64 targets.
14684 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
14686 * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
14688 2010-05-06 Jan Hubicka <jh@suse.cz>
14690 PR tree-optimization/43791
14691 * ipa-inline.c (update_caller_keys): Remove bogus
14692 disregard_inline_limits check.
14694 2010-05-06 Michael Matz <matz@suse.de>
14696 PR tree-optimization/43984
14697 * tree-ssa-pre.c (inserted_phi_names): Remove.
14698 (inserted_exprs): Change to bitmap.
14699 (create_expression_by_pieces): Set bits, don't append to vector.
14700 (insert_into_preds_of_block): Don't handle inserted_phi_names.
14701 (eliminate): Don't look at inserted_phi_names, remove deleted
14702 insns from inserted_exprs.
14703 (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
14704 (init_pre, fini_pre): Allocate and free bitmaps.
14705 (execute_pre): Insert insns on edges before elimination.
14707 2010-05-06 Maxim Kuvyrkov <maxim@codesourcery.com>
14709 * tree.c (initializer_zerop): Handle STRING_CST.
14711 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
14714 * doc/invoke.texi (Wimplicit): Document as C only.
14715 * opts.c (common_handle_option): Add argument kind.
14716 (handle_option): Rename as read_cmdline_option. Factor out code to...
14717 (handle_option): ... here. New.
14718 (handle_options): Rename as read_cmdline_options.
14719 (decode_options): Update call.
14720 (set_option): Use option index instead of option pointer. Classify
14721 diagnostics correctly.
14722 (enable_warning_as_error): Call handle_option.
14723 * opts.h (set_option): Update declaration.
14724 (handle_option): Declare.
14725 * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
14726 * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
14727 * c-opts.c (set_Wimplicit): Delete.
14728 (c_family_lang_mask): New static constant.
14729 (c_common_handle_option): Add argument kind. Use handle_option
14730 instead of set_Wimplicit.
14731 (c_common_post_options): warn_implicit and warn_implicit_int
14732 are disabled by default.
14733 * c-common.c (warn_implicit): Do not define here.
14734 * c-common.h (warn_implicit): Do not declare here.
14735 (c_common_handle_option): Update declaration.
14736 * lto-opts.c (lto_reissue_options): Update call to set_option.
14738 2010-05-06 Richard Guenther <rguenther@suse.de>
14740 PR tree-optimization/43571
14741 * domwalk.c (walk_dominator_tree): Walk the dominator
14742 sons in more optimal order.
14744 2010-05-06 Richard Guenther <rguenther@suse.de>
14746 PR tree-optimization/43934
14747 * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
14748 (stmt_cost): Likewise.
14749 (extract_true_false_args_from_phi): New helper.
14750 (determine_max_movement): For PHI nodes verify we can hoist them
14751 and compute their cost.
14752 (determine_invariantness_stmt): Handle PHI nodes.
14753 (move_computations_stmt): Likewise. Hoist PHI nodes in
14754 if-converted form using COND_EXPRs.
14755 (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
14756 (tree_ssa_lim): Likewise.
14757 * tree-flow.h (tree_ssa_lim): Adjust prototype.
14758 * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
14760 2010-05-06 Richard Guenther <rguenther@suse.de>
14762 PR tree-optimization/43987
14763 * tree-ssa-structalias.c (could_have_pointers): For possibly
14764 address-taken variables force pointers to be recorded.
14765 (create_variable_info_for_1): Likewise.
14766 (push_fields_onto_fieldstack): Pass in wheter all fields
14767 must have pointers.
14768 (find_func_aliases): Query types instead of vars whether
14769 they contain pointers where appropriate.
14771 2010-05-06 Jan Hubicka <jh@suse.cz>
14773 * cgraphbuild.c (record_reference_ctx): Add varpool_node.
14774 (record_reference, mark_address, mark_load, mark_store): Record
14776 (record_references_in_initializer): Update call of record_references.
14777 (rebuild_cgraph_edges): Remove all references before rebuiding.
14778 * cgraph.c (cgraph_create_node): Clear ref list.
14779 (cgraph_remove_node): Remove references.
14780 (dump_cgraph_node): Dump references.
14781 (cgraph_clone_node): Clone references.
14782 * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
14783 (struct cgraph_node, varpool_node): Add ref_lst.
14784 * ipa-ref.c: New file.
14785 * ipa-ref.h: New file.
14786 * ipa-ref-inline.h: New file.
14787 * lto-cgraph.c (output_varpool): Take cgrag node set argument.
14788 (referenced_from_other_partition_p): New function.
14789 (lto_output_varpool_node): Take set arugment; call
14790 referenced_from_other_partition.
14791 (lto_output_ref): New.
14792 (add_references): New.
14793 (output_refs): New.
14794 (output_cgraph): Compute boundary based on references; output refs.
14795 (output_varpool): Accept cgraph_node_set argument.
14798 (input_cgraph): Call input_refs.
14799 * lto-section-in.c (lto_section_name): Add refs.
14800 * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
14801 (ipa-ref.o): New file.
14802 * varpool.c (varpool_node): Clear ipa ref list.
14803 (varpool_remove_node): Remove references.
14804 (dump_varpool_node): Dump references.
14805 (varpool_assemble_decl): Only compile finalized ones.
14806 (varpool_extra_name_alias): Initialize ref list.
14807 * lto-streamer.c (lto-get_section_name): Add .refs section.
14808 * lto-streamer.h (lto_section_type): Add LTO_section_refs.
14809 (referenced_from_other_partition_p): Declared.
14811 2010-05-06 Ira Rosen <irar@il.ibm.com>
14813 PR tree-optimization/43901
14814 * tree-vect-stmts.c (vectorizable_call): Assert that vector
14815 type is not NULL if it's transformation phase, and return
14816 FALSE if it's analysis.
14817 (vectorizable_conversion, vectorizable_operation,
14818 vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
14820 2010-05-05 Andrew Pinski <andrew.pinski@caviumnetworks.com>
14822 * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14824 * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
14826 * config/mips/mips-protos.h
14827 (mips_small_register_classes_for_mode_p): Delete prototype.
14829 2010-05-06 Bernd Schmidt <bernds@codesourcery.com>
14831 * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
14832 * config/arm/arm.c (multiple_operation_profitable_p,
14833 compute_offset_order): New static functions.
14834 (load_multiple_sequence, store_multiple_sequence): Use them.
14835 Replace constant 4 with MAX_LDM_STM_OPS. Compute order[0] from
14836 memory offsets, not register numbers.
14837 (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
14839 2010-05-05 Steven Bosscher <steven@gcc.gnu.org>
14841 * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
14842 (get_pending_sizes, put_pending_size, put_pending_sizes):
14843 Update the uses of pending_sizes.
14844 * c-decl.c (store_parm_decls): Likewise.
14845 * c-tree.h (struct c_arg_info): Likewise.
14846 * tree.h: Update the prototype for get_pending_sizes and
14849 2010-05-05 Jason Merrill <jason@redhat.com>
14852 * c-common.c (handle_aligned_attribute): Respect
14853 ATTR_FLAG_TYPE_IN_PLACE.
14856 * target.h (struct gcc_target): Add attribute_takes_identifier_p.
14857 * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14858 (TARGET_INITIALIZER): Use it.
14859 * c-common.c (attribute_takes_identifier_p): Call it.
14860 * c-common.h: Update prototype.
14861 * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
14862 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
14864 2010-05-05 Jakub Jelinek <jakub@redhat.com>
14867 * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
14868 DW_ID_down_case for Fortran compilation units.
14870 2010-05-05 Jan Hubicka <jh@suse.cz>
14872 * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
14875 2010-05-05 Eric Botcazou <ebotcazou@adacore.com>
14877 * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
14878 a variable-sized RESULT_DECL.
14880 2010-05-05 Maxim Kuvyrkov <maxim@codesourcery.com>
14882 * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
14884 2010-05-05 Jason Merrill <jason@redhat.com>
14887 * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
14889 (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
14891 2010-05-05 Alexandre Oliva <aoliva@redhat.com>
14892 Jakub Jelinek <jakub@redhat.com>
14895 * df-problems.c (struct dead_debug_use, struct dead_debug): New.
14896 (dead_debug_init, dead_debug_finish): New functions.
14897 (dead_debug_add, dead_debug_insert_before): Likewise.
14898 (df_note_bb_compute): Initialize a dead_debug object, add dead
14899 debug uses to it, insert debug bind insns before death insns,
14900 reset debug insns that refer to pending uses at the end.
14901 * rtl.h (make_debug_expr_from_rtl): New prototype.
14902 * varasm.c (make_debug_expr_from_rtl): New function.
14904 2010-05-05 Jan Hubicka <jh@suse.cz>
14906 * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
14907 (lto_varpool_encoder_new, lto_varpool_encoder_delete,
14908 lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
14909 lto_varpool_encoder_deref, lto_varpool_encoder_size,
14910 lto_varpool_encoder_encode_initializer_p,
14911 lto_set_varpool_encoder_encode_initializer): New functions.
14912 (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
14913 call output_varpool.
14914 (input_varpool_node): Do not always set analyzed.
14915 (input_cgraph_1): Return vector of cgraph nodes.
14916 (input_varpool_1): Return vector of varpools.
14917 (input_cgraph): Free the vectors.
14918 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
14919 output only initializers needed.
14920 (lto_output): Only call output_cgraph.
14921 (produce_asm_for_decls): Call lto_varpool_encoder_delete.
14922 * lto-section-out.c (lto_new_out_decl_state): Initialize
14923 state->varpool_node_encoder.
14924 * lto-streamer.h (lto_varpool_encoder_d): New.
14925 (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
14926 (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
14927 (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
14928 lto_varpool_encoder_encode, lto_varpool_encoder_delete,
14929 lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
14931 (output_varpool, input_varpool): Remove declarations.
14933 2010-05-05 Jan Hubicka <jh@suse.cz>
14935 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
14936 with body can prevail.
14938 2010-05-05 Jan Hubicka <jh@suse.cz>
14940 * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
14943 2010-05-05 Laurynas Biveinis <laurynas.biveinis@gmail.com>
14945 * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
14947 * gengtype.h (erro_at_line): Constify pos argument.
14949 * gengtype.c: Include hashtab.h.
14950 (enum gc_used): Document GC_MAYBE_POINTED_TO.
14951 (error_at_line): Constify pos argument.
14952 (do_typedef): Initialize p->opt field.
14953 (get_file_gtfilename): Fix comment typo.
14954 (struct walk_type_data): Constify line field.
14955 (get_output_file_for_structure): New function.
14956 (write_local_func_for_structure): Constify orig_s argument.
14957 Use get_output_file_for_structure.
14958 (write_func_for_structure): Use get_output_file_for_structure.
14959 (INDENT): New define.
14960 (dump_pair, dump_type, dump_type_list, dump_typekind)
14961 (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
14962 (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
14964 (seen_types): New variable.
14965 (main): New variable do_dump. Process "-d" command line option.
14966 Call dump_everything if dump requested.
14968 2010-05-05 Jakub Jelinek <jakub@redhat.com>
14970 * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
14971 in a temporary instead of invoking the macro multiple times.
14972 (track_expr_p): Likewise.
14974 2010-05-04 Neil Vachharajani <nvachhar@google.com>
14976 * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
14978 * opts.c (decode_options): Enable -Werror=coverage-mismatch.
14979 * coverage.c (get_coverage_counts): Always emit a warning. Adjust
14980 conditions for printing notes.
14981 * common.opt (-Wcoverage-mismatch): Allow negative, default to
14982 true, update documentation.
14983 * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
14985 2010-05-04 Jakub Jelinek <jakub@redhat.com>
14988 * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
14991 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
14994 * config/i386/i386.md (sse_prologue_save): Clobber CC register.
14995 (*sse_prologue_save_insn1): Likewise.
14996 (SSE prologue save splitter): Likewise.
14998 2010-05-04 Eric Botcazou <ebotcazou@adacore.com>
15000 * tree.c (free_lang_data_in_one_sizepos): New inline function.
15001 (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
15002 types. Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
15003 (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
15004 all decls. Call it on DECL_FIELD_OFFSET of fields.
15005 (find_decls_types_r): Follow DECL_VALUE_EXPR.
15006 (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
15008 2010-05-04 Martin Jambor <mjambor@suse.cz>
15010 * tree-sra.c (build_access_from_expr_1): The first parameter type
15011 changed to simple tree.
15012 (build_access_from_expr): Likewise, gsi parameter was eliminated.
15013 (scan_assign_result): Renamed to assignment_mod_result, enum elements
15015 (build_accesses_from_assign): Removed all parameters except for a
15016 simple gimple statement. Now returns a simple bool.
15017 (scan_function): All non-analysis parts moved to separate functions
15018 sra_modify_function_body and ipa_sra_modify_function_body. Removed all
15019 parameters and updated both callers.
15020 (sra_modify_expr): Removed parameter data.
15021 (sra_modify_function_body): New function.
15022 (perform_intra_sra): Call sra_modify_function_body to modify the
15024 (replace_removed_params_ssa_names): Parameter data changed into
15025 adjustments vector.
15026 (sra_ipa_modify_expr): Likewise. Also removed unused parameter gsi and
15027 changed the parameter dont_convert to convert with the opposite
15029 (sra_ipa_modify_assign): Parameter data changed into adjustments
15030 vector, return value changed to bool.
15031 (ipa_sra_modify_function_body): New function.
15032 (sra_ipa_reset_debug_stmts): Updated a comment.
15033 (modify_function): Use ipa_sra_modify_function_body to modify function
15036 2010-05-04 H.J. Lu <hongjiu.lu@intel.com>
15038 PR middle-end/43671
15039 * alias.c (true_dependence): Handle the same VALUE in x and mem.
15040 (canon_true_dependence): Likewise.
15041 (write_dependence_p): Likewise.
15043 2010-05-04 Jan Hubicka <jh@suse.cz>
15045 * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
15046 * cgraphbuild.c: Include ipa-utils.h
15047 (record_reference_ctx): New struct.
15048 (record_reference): Simplify to work on initializers; not statements.
15049 (mark_address, mark_load, mark_store): New.
15050 (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15051 walk PHI nodes too.
15052 (record_references_in_initializer): Update use of record_reference.
15053 (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
15054 walk PHI nodes too.
15056 2010-05-04 Jan Hubicka <jh@suse.cz>
15058 * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
15059 node will be removed anyway.
15060 (lto_varpool_replace_node): Allow also unanalyzed nodes;
15061 relink aliases of node into prevailing node.
15062 * varpool.c (varpool_remove_node): Remove aliases properly;
15063 when removing node, remove all its aliases too; remove DECL_INITIAL
15064 of removed node; ggc_free the varpool node.
15066 2010-05-04 Richard Guenther <rguenther@suse.de>
15068 PR tree-optimization/43879
15069 * tree-ssa-structalias.c (alias_get_name): Use
15070 DECL_ASSEMBLER_NAME if available.
15071 (create_function_info_for): Return the varinfo node.
15072 (ipa_pta_execute): Associate same-body aliases and extra names
15073 with their origin nodes varinfo. Dump DECL_ASSEMBLER_NAME.
15075 2010-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
15077 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
15079 2010-05-04 Mikael Pettersson <mikpe@it.uu.se>
15082 * ira-color.c (assign_hard_reg): Declare rclass and add_cost
15083 only if HONOR_REG_ALLOC_ORDER is not defined.
15085 2010-05-04 Richard Guenther <rguenther@suse.de>
15087 PR tree-optimization/43949
15088 * tree-vrp.c (extract_range_from_binary_expr): Only handle
15091 2010-04-26 Jason Merrill <jason@redhat.com>
15093 * c.opt (-fstrict-enums): New.
15094 * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
15096 2010-05-03 David Ung <davidu@mips.com>
15097 James E. Wilson <wilson@codesourcery.com>
15099 * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
15100 emit the trap instruction before the divide for TUNE_74K.
15102 2010-05-03 Steven Bosscher <steven@gcc.gnu.org>
15104 * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
15105 (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
15106 based on the above, for new target hook.
15108 * hooks.c (hook_bool_mode_true): New generic hook.
15109 * hooks.h (hook_bool_mode_true): Add prototype.
15111 * target.h (struct gcc_target): Add small_register_classes_for_mode_p
15113 * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
15114 target hook, set to hook_bool_mode_false.
15115 * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
15116 * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
15117 with targetm.small_register_classes_for_mode_p.
15118 (find_reusable_reload): Likewise.
15119 (combine_reloads): Likewise.
15120 * reload1.c (reload_as_needed): Likewise.
15121 * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
15122 * ifcvt.c (noce_process_if_block, check_cond_move_block,
15123 dead_or_predicable): Likewise.
15124 * regmove.c (optimize_reg_copy_1): Likewise.
15125 * calls.c (prepare_call_address): Likewise.
15126 (precompute_register_parameters): Likewise.
15128 * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
15130 * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
15131 implementation of the hook that considers all register classes
15132 small except for SH64.
15133 (sh_override_options): Use the new hook.
15134 * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
15137 * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
15139 * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
15140 implementation of the hook that considers all register classes
15142 * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
15145 * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
15147 * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
15148 implementation of the hook that considers all register classes
15150 * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
15153 * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
15155 * config/m32c/m32c.h: Likewise.
15156 * config/pdp11/pdp11.h: Likewise.
15157 * config/avr/avr.h: Likewise.
15158 * config/xtensa/xtensa.h: Likewise.
15159 * config/m68hc11/m68hc11.h: Likewise.
15160 * config/mn10300/mn10300.h: Likewise.
15161 * config/mcore/mcore.h: Likewise.
15162 * config/h8300/h8300.h: Likewise.
15163 * config/bfin/bfin.h: Likewise.
15165 * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
15166 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
15168 2010-05-03 Anatoly Sokolov <aesok@post.ru>
15170 * double-int.h (tree_to_double_int): Remove macro.
15171 (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
15172 * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15173 (tree_to_double_int): New function.
15174 * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
15176 * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
15178 2010-05-03 Richard Guenther <rguenther@suse.de>
15180 PR tree-optimization/43971
15181 * tree-ssa-structalias.c (get_constraint_for_1): Fix
15182 constraints in the !flag_delete_null_pointer_checks case.
15184 2010-05-03 Jakub Jelinek <jakub@redhat.com>
15187 * config/i386/i386.c (ix86_delegitimize_address): Make sure the
15188 result mode matches original rtl mode.
15190 2010-05-03 Dave Korn <dave.korn.cygwin@gmail.com>
15193 * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
15195 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
15197 * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
15198 when processing flag options.
15200 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
15202 * gcov-iov.c (main): Change format string placeholder
15203 from %#08x to 0x%08x.
15204 * genchecksum.c (dosum): Change format string placeholder
15205 from %#02x to 0x%02x.
15207 2010-05-02 Richard Guenther <rguenther@suse.de>
15209 PR tree-optimization/43879
15210 * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
15212 2010-05-02 Bruno Haible <bruno@clisp.org>
15214 * doc/extend.texi (Function Attributes): Fix a typo.
15216 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
15219 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
15220 placeholder from 0x%x to %#x.
15221 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15222 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
15223 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
15224 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
15225 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
15226 * config/i386/i386.c (ix86_target_string): Ditto.
15227 * config/i386/i386.c (output_pic_addr_const): Ditto.
15228 (print_operand): Ditto.
15230 2010-05-02 Uros Bizjak <ubizjak@gmail.com>
15232 * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
15233 placeholder from 0x%x to %#x.
15234 (ASM_OUTPUT_DEBUG_DATA1): Ditto.
15235 (ASM_OUTPUT_DEBUG_DATA4): Ditto.
15236 (ASM_OUTPUT_DEBUG_DATA): Ditto.
15237 (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
15238 (ASM_OUTPUT_DEBUG_DATA8): Ditto.
15239 * optc-gen.awk: Ditto.
15240 * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
15241 (HOST_WIDE_INT_PRINT_HEX): Ditto.
15242 (HOST_WIDEST_INT_PRINT_HEX): Ditto.
15243 (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
15245 2010-05-01 Anatoly Sokolov <aesok@post.ru>
15247 * target.h (struct calls): Add function_value_regno_p field.
15248 * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
15249 (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
15250 * targhooks.c (default_function_value_regno_p): New function.
15251 * targhooks.h (default_function_value_regno_p): Declare function.
15252 * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
15253 * builtins.c. (apply_result_size): (Ditto.).
15254 * combine.c. (likely_spilled_retval_p): (Ditto.).
15255 * mode-switching.c. Include 'target.h'.
15256 (create_pre_exit): Use function_value_regno_p hook.
15257 * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
15258 * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
15259 TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
15261 * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
15262 * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
15263 (ix86_function_value_regno_p): Declare as static, change argument
15264 type to const unsigned int.
15265 * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
15267 2010-05-01 Richard Guenther <rguenther@suse.de>
15269 PR tree-optimization/43949
15270 * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
15272 (extract_range_from_binary_expr): Handle *_MOD_EXPR.
15274 2010-05-01 Anatoly Sokolov <aesok@post.ru>
15276 * rtl.h (CONST_DOUBLE_P): Define.
15277 (rtx_to_double_int): Declare.
15278 * emit-rtl.c (rtx_to_double_int): New function.
15279 * dwarf2out.c (insert_double): New function.
15280 (loc_descriptor, add_const_value_attribute): Clean up, use
15281 rtx_to_double_int and insert_double functions.
15283 2010-05-01 Jonathan Wakely <jwakely.gcc@gmail.com>
15285 * doc/extend.texi (Inline): Add missing return keyword to examples.
15286 (Function Attributes, Variable Attributes, Pragmas): Hyphenate
15289 2010-04-30 Eric Botcazou <ebotcazou@adacore.com>
15291 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
15292 the variable part of the offset as well. Use highest_pow2_factor for
15293 all alignment checks.
15295 2010-04-30 Richard Guenther <rguenther@suse.de>
15297 PR tree-optimization/43879
15298 * tree-ssa-structalias.c (type_could_have_pointers): Functions
15301 2010-04-30 Jan Hubicka <jh@suse.cz>
15303 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
15305 (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
15307 2010-04-30 Jan Hubicka <jh@suse.cz>
15309 * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
15311 * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
15312 * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
15313 (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
15314 cgraph_node_set_needs_ltrans_p): Remove.
15316 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
15318 * sdbout.c: Include vec.h, do not include varray.h.
15319 (deferred_global_decls, sdbout_global_decl,
15320 sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
15321 * toplev.c: Do not include varray.h.
15322 (dump_memory_report): Do not dump VARRAY statistics.
15323 * gengtype.c (open_base_file): Ignore varray.h.
15324 * Makefile.in: Update for abovementioned changes.
15325 Remove all traces of varray.c and varray.h.
15326 * varray.c: Remove file.
15327 * varray.h: Remove file.
15329 2010-04-30 Jan Hubicka <jh@suse.cz>
15331 * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
15334 2010-04-30 Jan Hubicka <jh@suse.cz>
15336 * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
15339 2010-04-30 Richard Guenther <rguenther@suse.de>
15341 * tree-ssa-structalias.c (get_constraint_for_1): Generate
15342 constraints for CONSTRUCTOR.
15344 2010-04-30 Richard Guenther <rguenther@suse.de>
15347 * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
15348 first after all lowering passes.
15350 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
15352 * toplev.c: Include varray.h for statistics dumping.
15353 * tree.h: Do not declare varray_head_tag.
15354 * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
15355 regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
15356 c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
15357 gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
15358 lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
15359 tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
15360 c-common.c, c-common.h, reg-stack.c, basic-block.h,
15361 tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
15363 * Makefile.in: Update for abovementioned changes.
15365 2010-04-30 Jakub Jelinek <jakub@redhat.com>
15368 * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
15370 2010-04-30 Hariharan Sandanagobalane <hariharan@picochip.com>
15372 * config/picochip/picochip.c (picochip_legitimize_address): Define.
15373 Use this function to do machine-specific conversion.
15374 (picochip_legitimize_reload_address): Likewise.
15375 (picochip_legitimate_address_p): Check valid base register only if
15377 (picochip_check_conditional_copy): Check for modw only if opnd is
15379 * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
15380 to call the function in c.
15381 * config/picochip/picochip-protos.h
15382 (picochip_legitimize_reload_address): Define.
15383 * config/picochip/picochip.md (supported_compare1): Define.
15385 2010-04-30 Jan Hubicka <jh@suse.cz>
15387 * cgraph.h (cgraph_local_info): Remove for_functions_valid.
15388 (cgraph_global_info): Remove inlined.
15389 (LTO_cgraph_tag_names): Remove.
15390 (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
15391 * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
15392 simplify cgraph tags and document.
15393 (lto_output_node): Use only LTO_cgraph_unavail_node and
15394 LTO_cgraph_analyzed_node; Do not save analzed, reachable,
15395 for_functions_valid, global info, process and output flags.
15396 (input_overwrite_node): Initialize estimated stack size and
15397 estimated growth. Do not read flags we no longer store.
15398 (input_node): Likewise do not read info no longer stored.
15399 * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
15402 2010-04-30 Richard Guenther <rguenther@suse.de>
15404 PR tree-optimization/43879
15405 * tree-ssa-structalias.c (get_constraint_for_1): Properly
15406 handle non-zero initializers.
15408 2010-04-30 Richard Guenther <rguenther@suse.de>
15410 * builtins.c (fold_builtin_1): Delete free (0).
15412 2010-04-29 Jan Hubicka <jh@suse.cz>
15414 * gengtype.c (open_base_files): Add lto-streamer.h
15415 * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
15416 (pass_ipa_cp): GGC collect.
15417 * toplev. (compile_file): Do not output symbols.
15418 * ipa-inline.c (pass_ipa_inline): Add ggc collect.
15419 * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
15420 TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
15421 * lto-section-in.c: Include ggc.h
15422 (lto_new_in_decl_state): Alloc in GGC.
15423 (lto_delete_in_decl_state): Likewise.
15424 * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
15427 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
15430 * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
15431 ORDER_REGS_FOR_LOCAL_ALLOC. All instances of this macro changed.
15432 (HONOR_REG_ALLOC_ORDER): Describe new macro.
15433 * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
15434 * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
15435 account only if HONOR_REG_ALLOC_ORDER is not defined.
15436 * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
15437 * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
15439 2010-04-29 Jon Grant <04@jguk.org>
15441 * collect2.c (vflag): Change type from int to bool.
15443 (helpflag): New global bool.
15444 (main): Set vflag and debug with boolean, not integer truth values.
15445 Accept new "--help" option and output usage text if found.
15446 * collect2.h (vflag): Update prototype.
15449 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
15452 * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
15454 2010-04-29 Richard Guenther <rguenther@suse.de>
15457 * plugin.h (invoke_plugin_callbacks): Annotate arguments
15458 with ATTRIBUTE_UNUSED.
15460 2010-04-29 H.J. Lu <hongjiu.lu@intel.com>
15463 * config/i386/i386.c (get_some_local_dynamic_name): Replace
15464 INSN_P with NONDEBUG_INSN_P.
15465 (distance_non_agu_define): Likewise.
15466 (distance_agu_use): Likewise.
15468 2010-04-29 Bernd Schmidt <bernds@codesourcery.com>
15470 From Dominique d'Humieres <dominiq@lps.ens.fr>
15472 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
15475 2010-04-29 Brian Hackett <bhackett1024@gmail.com>
15477 * plugin.h (invoke_plugin_callbacks): New inline function.
15478 * plugin.c (flag_plugin_added): New global flag.
15479 (add_new_plugin): Initialize above flag.
15480 (invoke_plugin_callbacks): Rename to ...
15481 (invoke_plugin_callbacks_full): ... this.
15483 2010-04-28 Jan Hubicka <jh@suse.cz>
15485 * lto-symtab.c (lto_symtab_entry_def) Add vnode.
15486 (lto_varpool_replace_node): New.
15487 (lto_symtab_resolve_symbols): Resolve varpool nodes.
15488 (lto_symtab_merge_decls_1): Prefer decls with varpool node.
15489 (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
15490 * cgraph.h (varpool_node_ptr): New type.
15491 (varpool_node_ptr): New vector.
15492 (varpool_node_set_def): New structure.
15493 (varpool_node_set): New type.
15494 (varpool_node_set): New vector.
15495 (varpool_node_set_element_def): New structure.
15496 (varpool_node_set_element, const_varpool_node_set_element): New types.
15497 (varpool_node_set_iterator): New type.
15498 (varpool_node): Add prev pointers, add used_from_other_partition,
15499 in_other_partition.
15500 (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
15501 varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
15502 varpool_get_node, varpool_remove_node): Declare.
15503 (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
15504 varpool_node_set_size): New inlines.
15505 * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
15506 * tree-pass.h (varpool_node_set_def): Forward declare.
15507 (ipa_opt_pass_d): Summary writting takes vnode sets too.
15508 (ipa_write_optimization_summaries): Update prototype.
15509 * ipa-cp.c (ipcp_write_summary): Update.
15510 * ipa-reference.c (ipa_reference_write_summary): Update.
15511 * lto-cgraph.c (lto_output_varpool_node): New static function.
15512 (output_varpool): New function.
15513 (input_varpool_node): New static function.
15514 (input_varpool_1): New function.
15515 (input_cgraph): Input varpool.
15516 * ipa-pure-const.c (pure_const_write_summary): Update.
15517 * lto-streamer-out.c (lto_output): Update, output varpool too.
15518 (write_global_stream): Kill WPA hack.
15519 (produce_asm_for_decls): Update.
15520 (output_alias_pair_p): Handle variables.
15521 (output_unreferenced_globals): Output only needed partition of varpool.
15522 * ipa-inline.c (inline_write_summary): Update.
15523 * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
15525 * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
15526 * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
15527 varpool_node_set_new, varpool_node_set_add,
15528 varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
15529 debug_varpool_node_set): New functions.
15530 * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
15531 (execute_one_pass): Process new decls too.
15532 (ipa_write_summaries_2): Pass around vsets.
15533 (ipa_write_summaries_1): Likewise.
15534 (ipa_write_summaries): Build vset; be more selective about cgraph nodes
15536 (ipa_write_optimization_summaries_1): Pass around vsets.
15537 (ipa_write_optimization_summaries): Likewise.
15538 * varpool.c (varpool_get_node): New.
15539 (varpool_node): Update doubly linked lists.
15540 (varpool_remove_node): New.
15541 (dump_varpool_node): More dumping.
15542 (varpool_enqueue_needed_node): Update doubly linked lists.
15543 (decide_is_variable_needed): Kill ltrans hack.
15544 (varpool_finalize_decl): Kill lto hack.
15545 (varpool_assemble_decl): Skip decls in other partitions.
15546 (varpool_assemble_pending_decls): Update doubly linkes lists.
15547 (varpool_empty_needed_queue): Likewise.
15548 (varpool_extra_name_alias): Likewise.
15549 * lto-streamer.c (lto_get_section_name): Add vars section.
15550 * lto-streamer.h (lto_section_type): Update.
15551 (output_varpool, input_varpool): Declare.
15553 2010-04-28 Mike Stump <mikestump@comcast.net>
15555 * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
15557 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
15559 * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
15560 record or union type with RECORD_OR_UNION_TYPE_P predicate.
15561 (lto_input_ts_type_tree_pointers): Likewise.
15562 * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
15563 (lto_output_ts_type_tree_pointers): Likewise.
15565 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
15567 Uniquization of constants at the Tree level
15568 * tree.h (DECL_IN_CONSTANT_POOL): New macro.
15569 (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
15571 (tree_output_constant_def): Declare.
15572 * gimplify.c (gimplify_init_constructor): When using block copy, first
15573 uniquize the constant constructor on the RHS.
15574 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
15575 DECL_IN_CONSTANT_POOL flag.
15576 * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
15577 * varasm.c (make_decl_rtl): Deal with variables belonging to the global
15579 (assemble_variable): Deal with symbols belonging to the tree constant
15581 (get_constant_section): Add ALIGN parameter and simplify.
15582 (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
15583 (assemble_constant_contents): Use the expression of the VAR_DECL.
15584 (output_constant_def_contents): Use the alignment of the VAR_DECL.
15585 (tree_output_constant_def): New global function.
15586 (mark_constant): Use the expression of the VAR_DECL.
15587 (place_block_symbol): Use the alignment of the VAR_DECL and the size of
15589 (output_object_block): Likewise and assemble the expression.
15591 2010-04-28 Eric Botcazou <ebotcazou@adacore.com>
15593 * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
15594 hash_tree, eq_tree): New tree hash table.
15595 (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
15596 [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
15597 lto_orig_address_remove): Reimplement.
15599 2010-04-28 Xinliang David Li <davidxl@google.com>
15602 * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
15603 (compute_uninit_opnds_pos): New function.
15604 (is_non_loop_exit_postdominating): New function.
15605 (compute_control_dep_chain): New function.
15606 (find_pdom): New function.
15607 (convert_control_dep_chain_into_preds): New function.
15608 (find_predicates): New function.
15609 (find_control_equiv_block): New function.
15610 (collect_phi_def_edges): New function.
15611 (find_def_preds): New function.
15612 (find_dom): New function.
15613 (dump_predicates): New function.
15614 (get_cmp_code): New function.
15615 (is_value_included_in): New function.
15616 (find_matching_predicate_in_rest_chains): New function.
15617 (use_pred_not_overlap_with_undef_path_pred): New function.
15618 (is_use_properly_guarded): New function.
15619 (normalize_cond_1): New function.
15620 (is_and_or_or): New function.
15621 (normalize_cond): New function.
15622 (is_gcond_subset_of): New function.
15623 (is_subset_of_any): New function.
15624 (is_or_set_subset_of): New function.
15625 (is_and_set_subset_of): New function.
15626 (is_norm_cond_subset_of): New function.
15627 (is_pred_expr_subset_of): New function.
15628 (is_pred_chain_subset_of): New function.
15629 (is_included_in): New function.
15630 (is_superset_of): New function.
15631 (find_uninit_use): New function.
15632 (warn_uninitialized_phi): New function.
15633 (compute_possibly_undefined_names): New function.
15634 (ssa_undefined_value_p): New function.
15635 (execute_late_warn_uninitialized): New function.
15636 * tree-ssa.c (ssa_undefined_value_p): Removed.
15637 (warn_uninit): Changed to extern.
15638 (warn_uninitialized_phi): Removed.
15639 (warn_uninitialized_vars): Changed to extern.
15640 (execute_late_warn_uninitialized): Removed
15641 * tree-flow.h: Add new prototypes.
15642 * timevar.def: Add new time variable.
15643 * Makefile.in: Add new build file.
15645 2010-04-28 Uros Bizjak <ubizjak@gmail.com>
15647 * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
15650 2010-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15653 * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
15655 2010-04-28 Martin Jambor <mjambor@suse.cz>
15657 * cgraph.h (struct cgraph_node): New field indirect_calls.
15658 (struct cgraph_indirect_call_info): New type.
15659 (struct cgraph_edge): Removed field indirect_call. New fields
15660 indirect_info, indirect_inlining_edge and indirect_unknown_callee.
15661 (cgraph_create_indirect_edge): Declare.
15662 (cgraph_make_edge_direct): Likewise.
15663 (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
15664 * ipa-prop.h (struct ipa_param_call_note): Removed.
15665 (struct ipa_node_params): Removed field param_calls.
15666 (ipa_create_all_structures_for_iinln): Declare.
15667 * cgraph.c: Described indirect edges and uids in initial comment.
15668 (cgraph_add_edge_to_call_site_hash): New function.
15669 (cgraph_edge): Search also among the indirect edges, use
15670 cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
15671 (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
15672 one, use cgraph_add_edge_to_call_site_hash to add edges to the call
15674 (initialize_inline_failed): Assign a reason to indirect edges.
15675 (cgraph_create_edge_1): New function.
15676 (cgraph_create_edge): Moved some functionality to
15677 cgraph_create_edge_1.
15678 (cgraph_create_indirect_edge): New function.
15679 (cgraph_edge_remove_callee): Add an assert checking for
15681 (cgraph_edge_remove_caller): Special-case indirect edges.
15682 (cgraph_remove_edge): Likewise.
15683 (cgraph_set_edge_callee): New function.
15684 (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
15685 (cgraph_make_edge_direct): New function.
15686 (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
15687 the declaration of the call statement matches.
15688 (cgraph_node_remove_callees): Special-case indirect edges.
15689 (cgraph_clone_edge): Likewise.
15690 (cgraph_clone_node): Clone also the indirect edges.
15691 (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
15692 indirect_call, dump count of indirect_calls edges.
15693 * ipa-prop.c (iinlining_processed_edges): New variable.
15694 (ipa_note_param_call): Create indirect edges instead of
15695 creating notes. New parameter node.
15696 (ipa_analyze_call_uses): New parameter node, pass it on to
15697 ipa_note_param_call.
15698 (ipa_analyze_stmt_uses): Likewise.
15699 (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
15700 (print_edge_addition_message): Work on edges rather than on notes.
15701 (update_call_notes_after_inlining): Likewise, renamed to
15702 update_indirect_edges_after_inlining.
15703 (ipa_create_all_structures_for_iinln): New function.
15704 (ipa_free_node_params_substructures): Do not free notes.
15705 (ipa_edge_duplication_hook): Propagate bits within
15706 iinlining_processed_edges bitmap.
15707 (ipa_node_duplication_hook): Do not duplicate notes.
15708 (free_all_ipa_structures_after_ipa_cp): Renamed to
15709 ipa_free_all_structures_after_ipa_cp.
15710 (free_all_ipa_structures_after_iinln): Renamed to
15711 ipa_free_all_structures_after_iinln.
15712 (ipa_write_param_call_note): Removed.
15713 (ipa_read_param_call_note): Removed.
15714 (ipa_write_indirect_edge_info): New function.
15715 (ipa_read_indirect_edge_info): Likewise.
15716 (ipa_write_node_info): Do not stream notes, do stream information
15718 (ipa_read_node_info): Likewise.
15719 (lto_ipa_fixup_call_notes): Removed.
15720 * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
15721 * ipa-inline.c (pass_ipa_inline): Likewise.
15722 * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
15723 * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
15724 * tree-inline.c (copy_bb): Removed an unnecessary double check for
15726 * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
15728 * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
15729 (output_cgraph): Stream also indirect edges.
15730 (lto_output_edge): Added capability to stream indirect edges.
15731 (input_edge): Likewise.
15732 (input_cgraph_1): Likewise.
15733 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
15736 2010-04-28 Richard Guenther <rguenther@suse.de>
15738 PR tree-optimization/43879
15739 PR tree-optimization/43909
15740 * tree-ssa-structalias.c (struct variable_info): Add
15741 only_restrict_pointers flag.
15742 (new_var_info): Initialize it. Increment stats.total_vars here.
15743 (create_function_info_for): Do not increment stats.total_vars here.
15744 (get_function_part_constraint): Fix build with C++.
15745 (insert_into_field_list): Remove.
15746 (push_fields_onto_fieldstack): Properly merge fields.
15747 (create_variable_info_for): Split and simplify.
15748 (create_variable_info_for_1): New piece.
15749 (intra_create_variable_infos): Properly make restrict constraints
15752 2010-04-28 Richard Guenther <rguenther@suse.de>
15755 * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
15757 2010-04-27 Manuel López-Ibáñez <manu@gcc.gnu.org>
15758 Jan Hubicka <hubicka@ucw.cz>
15760 * doc/invoke.texi (-Wsuggest-attribute=const,
15761 -Wsuggest-attribute=pure): Document.
15762 * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
15763 (function_always_visible_to_compiler_p,
15764 suggest_attribute, warn_function_pure, warn_function_const):
15766 (check_call): Improve debug info.
15767 (analyze_function): Do not check availability.
15768 (add_new_function): Check availability.
15769 (propagate): Output warnings.
15770 (skip_function_for_local_pure_const): New function.
15771 (local_pure_const): Use it; output warnings.
15772 * common.opt (Wsuggest-attribute=const,
15773 Wsuggest-attribute=pure): New.
15775 2010-04-27 Jakub Jelinek <jakub@redhat.com>
15777 * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
15778 force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
15779 or DW_CFA_def_cfa_offset{,_sf}.
15781 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
15783 * tree.h: Fix truncated long macros.
15785 2010-04-27 Kai Tietz <kai.tietz@onevision.com>
15787 * collect2.c (TARGET_64BIT): Redefine to target's default.
15788 * tlink.c: Likewise.
15789 * config/i386/cygming.h (USER_LABEL_PREFIX): Define
15790 dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
15791 * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
15792 for underscoring __USER_LABEL_PREFIX__.
15793 * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
15794 (SUB_LINK_ENTRY32): New.
15795 (SUB_LINK_ENTRY64): New.
15796 (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
15797 * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
15798 (SUB_LINK_ENTRY64): New.
15799 (SUB_LINK_ENTRY): New.
15800 (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
15801 (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
15802 x64 target is choosen.
15803 * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
15804 * configure: Regenerated.
15805 * configure.ac (leading-mingw64-underscores): Option added.
15807 2010-04-27 Jan Hubicka <jh@suse.cz>
15809 * doc/invoke.texi (-fipa-profile): Document.
15810 * opts.c (decode_options): Enable ipa-profile at -O1.
15811 * timevar.def (TV_IPA_PROFILE): Define.
15812 * common.opt (fipa-profile): Add.
15813 * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
15815 (cgraph_propagate_frequency): Handle only local ones.
15816 * tree-pass.h (pass_ipa_profile): Declare.
15817 * ipa-profile.c (gate_profile): Use flag_ipa_profile.
15818 (pass_ipa_profile): Use TV_IPA_PROFILE.
15819 * ipa.c (ipa_profile): New function.
15820 (gate_ipa_profile): Likewise.
15821 (pass_ipa_profile): New global variable.
15822 * passes.c (pass_ipa_profile): New.
15824 2010-04-27 Nathan Froyd <froydnj@codesourcery.com>
15826 * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
15828 2010-04-27 Martin Jambor <mjambor@suse.cz>
15830 PR middle-end/43812
15831 * ipa.c (dissolve_same_comdat_group_list): New function.
15832 (function_and_variable_visibility): Call
15833 dissolve_same_comdat_group_list when comdat group contains external or
15835 * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
15836 lists are circular and that they contain only DECL_ONE_ONLY nodes.
15838 2010-04-27 Eric Botcazou <ebotcazou@adacore.com>
15840 * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
15841 (const_hash_1) <VECTOR_CST>: New case.
15842 (compare_constant) <VECTOR_CST>: Likewise.
15843 <ADDR_EXPR>: Deal with LABEL_REFs.
15844 (copy_constant) <VECTOR_CST>: New case.
15846 2010-04-27 Jan Hubicka <jh@suse.cz>
15848 * cgraph.c (cgraph_propagate_frequency): New function.
15849 * cgraph.h (cgraph_propagate_frequency): Declare.
15850 * ipa-inline.c (cgraph_clone_inlined_nodes): Call
15851 cgraph_propagate_frequency.
15853 2010-04-27 Jakub Jelinek <jakub@redhat.com>
15855 * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
15857 2010-04-27 Bernd Schmidt <bernds@codesourcery.com>
15860 * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
15861 (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
15862 here to determine which regs to push and how much stack to reserve.
15864 2010-04-27 Jie Zhang <jie@codesourcery.com>
15866 * doc/gimple.texi (gimple_statement_with_ops): Remove
15867 addresses_taken field.
15868 (gimple_statement_with_memory_ops): Likewise.
15870 2010-04-27 Jan Hubicka <jh@suse.cz>
15872 * tree-inline.c (eni_inlining_weights): Remove.
15873 (estimate_num_insns): Special case more builtins.
15875 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com>
15878 * c-typeck.c (build_binary_op): Move forward check for comparison
15879 pointer with null pointer constant and adjust the diagnostic message.
15881 2010-04-27 Dave Korn <dave.korn.cygwin@gmail.com>
15884 * configure.ac (gcc_cv_as_section_has_align): Set if installed
15885 binutils supports extended .section directive needed by LTO, or
15886 warn if older binutils found.
15887 (LTO_BINARY_READER): New AC_SUBST'd variable.
15888 (LTO_USE_LIBELF): Likewise.
15889 * gcc/config.gcc (lto_binary_reader): New target-specific configure
15891 * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
15892 (LTO_USE_LIBELF): Likewise.
15893 * configure: Regenerate.
15895 * collect2.c (is_elf): Rename from this ...
15896 (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
15897 object files in addition to ELF-formatted ones.
15898 (scan_prog_file): Caller updated. Also allow for LTO info marker
15899 symbol to be prefixed or not by an extra underscore.
15901 * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
15902 * config/i386/winnt.c: Also #include lto-streamer.h
15903 (i386_pe_asm_named_section): Specify 1-byte section alignment for
15904 LTO named sections.
15905 (i386_pe_asm_output_aligned_decl_common): Add comment.
15906 (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
15908 2010-04-27 Hans-Peter Nilsson <hp@bitrange.com>
15911 * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
15912 Add missing earlyclobber for second alternative.
15914 2010-04-26 Bernd Schmidt <bernds@codesourcery.com>
15916 * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
15917 bits for artificial defs at the top of the block.
15918 * fwprop.c (single_def_use_enter_block): Don't call it.
15920 2010-04-26 Jack Howarth <howarth@bromo.med.uc.edu>
15923 * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
15924 instead of "$gcc_cv_objdump -T".
15925 Use "-undefined dynamic_lookup" on darwin.
15926 * gcc/configure: Regenerate.
15928 2010-04-26 Jakub Jelinek <jakub@redhat.com>
15931 * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
15933 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
15935 * c-parser.c (struct c_token): Move location field up.
15936 * c-tree.h (struct c_typespec): Move expr_const_operands field up.
15937 (struct c_declspecs): Convert typespec_word, storage_class, and
15938 default_int_p into bitfields.
15939 (struct c_declarator): Move loc field up.
15941 2010-04-26 Nathan Froyd <froydnj@codesourcery.com>
15943 * cfgloop.h (struct loop): Move can_be_parallel field up.
15944 * ipa-prop.h (struct ip_node_params): Move bitfields up.
15945 * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
15947 (struct iv_cand): Convert pos field into a bitfield.
15948 * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
15950 (struct _stmt_vec_info): Shuffle fields for better packing.
15952 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
15954 * varasm.c (IN_NAMED_SECTION): Remove guard.
15955 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
15956 (IN_NAMED_SECTION_P): ...this.
15957 (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
15958 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
15960 2010-04-26 Eric Botcazou <ebotcazou@adacore.com>
15962 * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
15963 Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead
15964 of shadowing it. Fix comments.
15966 2010-04-26 Jan Hubicka <jh@suse.cz>
15968 * cgraph.c (cgraph_create_node): Set node frequency to normal.
15969 (cgraph_clone_node): Copy function frequency.
15970 * cgraph.h (node_frequency): New enum
15971 (struct cgraph_node): Add.
15972 * final.c (rest_of_clean_state): Update.
15973 * lto-cgraph.c (lto_output_node): Output node frequency.
15974 (input_overwrite_node): Input node frequency.
15975 * tre-ssa-loop-ivopts (computation_cost): Update.
15976 * lto-streamer-out.c (output_function): Do not output function
15978 * predict.c (maybe_hot_frequency_p): Update and handle functions
15980 (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
15982 (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
15983 (compute_function_frequency): Set noreturn functions to be executed
15985 (choose_function_section): Update.
15986 * lto-streamer-in.c (input_function): Do not input function frequency.
15987 * function.c (allocate_struct_function): Do not initialize function
15989 * function.h (function_frequency): Remove.
15990 (struct function): Remove function frequency.
15991 * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
15992 (try_update): Update.
15993 * tree-inline.c (initialize_cfun): Do not update function frequency.
15994 * passes.c (pass_init_dump_file): Update.
15995 * i386.c (ix86_compute_frame_layout): Update.
15996 (ix86_pad_returns): Update.
15998 2010-04-26 Jie Zhang <jie@codesourcery.com>
16000 PR tree-optimization/43833
16001 * tree-vrp.c (range_int_cst_p): New.
16002 (range_int_cst_singleton_p): New.
16003 (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
16004 when both operands are constants. Use range_int_cst_p in
16007 2010-04-26 Jan Hubicka <jh@suse.cz>
16009 * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
16011 2010-04-26 Richard Guenther <rguenther@suse.de>
16014 * gimple.c (gimple_decl_printable_name): Deal gracefully
16015 with a NULL DECL_NAME.
16017 2010-04-26 Richard Guenther <rguenther@suse.de>
16020 * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
16021 if emitting debug information and it is either a function
16022 or a namespace decl.
16024 2010-04-26 Ira Rosen <irar@il.ibm.com>
16026 * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
16027 determine if the statement is vectorizable, and a macro to access it.
16028 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16029 Skip statements that can't be vectorized. If the analysis fails,
16030 mark the statement as unvectorizable if vectorizing basic block.
16031 (vect_compute_data_refs_alignment): Likewise.
16032 (vect_verify_datarefs_alignment): Skip statements marked as
16033 unvectorizable. Add print.
16034 (vect_analyze_group_access): Skip statements that can't be
16035 vectorized. If the analysis fails, mark the statement as
16036 unvectorizable if vectorizing basic block.
16037 (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
16038 * tree-vect-stmts.c (vectorizable_store): Fix the number of
16039 generated stmts for SLP.
16040 (new_stmt_vec_info): Initialize the new field.
16041 * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
16042 statements marked as unvectorizable.
16044 2010-04-25 Joseph Myers <joseph@codesourcery.com>
16046 * c-common.c (flag_isoc1x): New.
16047 (flag_isoc99): Update comment.
16048 * c-common.h (flag_isoc1x): New.
16049 (flag_isoc99): Update comment.
16050 * c-cppbuiltin.c (builtin_define_float_constants): Also define
16051 __<type>_DECIMAL_DIG__.
16052 * c-opts.c (set_std_c1x): New.
16053 (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
16054 (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
16055 * c.opt (-std=c1x, -std=gnu1x): New options.
16056 * doc/cpp.texi: Mention -std=c1x.
16057 * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
16058 * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
16059 * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
16060 * doc/standards.texi: Mention C1X.
16061 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
16062 LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
16063 LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
16066 2010-04-25 Uros Bizjak <ubizjak@gmail.com>
16068 * config/i386/gmon-sol2.c (_mcleanup): Change format string
16069 placeholder from 0x%x to %#x.
16070 * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
16071 * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
16072 * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
16073 * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
16074 * config/i386/i386.c (ix86_target_string): Ditto.
16075 (output_pic_addr_const): Ditto.
16076 (print_operand): Ditto.
16078 2010-04-25 Paolo Bonzini <bonzini@gnu.org>
16080 * combine.c (find_split_point): Add third argument. Use it
16081 to find nested multiply-accumulate instructions. Adjust calls.
16082 (try_combine): Adjust call to find_split_point.
16084 2010-04-24 Gerald Pfeifer <gerald@pfeifer.com>
16086 * doc/contrib.texi (Contributors): Add Dodji Seketeli.
16088 2010-04-24 Bernd Schmidt <bernds@codesourcery.com>
16090 PR tree-optimization/41442
16091 * fold-const.c (merge_truthop_with_opposite_arm): New function.
16092 (fold_binary_loc): Call it.
16094 2010-04-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
16096 * toplev.c (general_init): Set default for fdiagnostics-show-option.
16097 * opts.c (common_handle_option): Allow disabling it.
16098 * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
16100 2010-04-23 Eric Botcazou <ebotcazou@adacore.com>
16102 * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
16103 between modes if both types are integral.
16105 2010-04-23 Richard Guenther <rguenther@suse.de>
16107 PR tree-optimization/43572
16108 * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
16110 2010-04-23 Richard Guenther <rguenther@suse.de>
16113 * tree-inline.c (tree_can_inline_p): Also check compatibility
16116 2010-04-23 Martin Jambor <mjambor@suse.cz>
16118 PR tree-optimization/43846
16119 * tree-sra.c (struct access): New flag grp_assignment_read.
16120 (build_accesses_from_assign): Set grp_assignment_read.
16121 (sort_and_splice_var_accesses): Propagate grp_assignment_read.
16122 (enum mark_read_status): New type.
16123 (analyze_access_subtree): Propagate grp_assignment_read, create
16124 accesses also if both direct_read and root->grp_assignment_read.
16126 2010-04-23 Martin Jambor <mjambor@suse.cz>
16128 PR middle-end/43835
16129 * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
16130 function does not have type attributes.
16132 2010-04-23 Richard Guenther <rguenther@suse.de>
16135 * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
16138 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
16140 * sese.h (create_if_region_on_edge): Remove.
16142 * sese.c (create_if_region_on_edge): Make static.
16144 * tree-inline.c: Do not include ggc.h.
16146 * expr.c: Do not include ggc.h.
16148 * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
16151 2010-04-22 Kaz Kojima <kkojima@gcc.gnu.org>
16154 * config/sh/sh.c (find_barrier): Don't emit a constant pool
16155 in the middle of insns for casesi_worker_2.
16157 2010-04-22 David Edelsohn <edelsohn@gnu.org>
16159 * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
16161 2010-04-22 Ira Rosen <irar@il.ibm.com>
16163 PR tree-optimization/43842
16164 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
16165 loop unrolling in update of exit phis. Fix comment.
16166 * tree-vect-slp.c (vect_analyze_slp): Check that there are at
16167 least two reduction statements in the loop before starting SLP
16170 2010-04-22 Nick Clifton <nickc@redhat.com>
16172 * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
16174 2010-04-22 Alexander Monakov <amonakov@ispras.ru>
16176 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
16177 to simplify a + ~a.
16179 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
16181 * tree-parloops.c (loop_parallel_p): New argument
16182 parloop_obstack. Pass it down.
16183 (parallelize_loops): New variable parloop_obstack. Initialize it,
16184 pass it down, free it.
16186 * tree-loop-linear.c (linear_transform_loops): Pass down
16189 * tree-data-ref.h (lambda_compute_access_matrices): New argument
16190 of type struct obstack *.
16192 * tree-data-ref.c (analyze_subscript_affine_affine): New variable
16193 scratch_obstack. Initialize it, pass down, free it.
16195 * lambda.h (lambda_loop_new): Remove.
16196 (lambda_matrix_new, lambda_matrix_inverse)
16197 (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
16198 argument of type struct obstack *.
16200 * lambda-trans.c (lambda_trans_matrix_new): New argument
16201 lambda_obstack. Pass it down, use obstack allocation for ret.
16202 (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass
16205 * lambda-mat.c (lambda_matrix_get_column)
16206 (lambda_matrix_project_to_null): Remove.
16207 (lambda_matrix_new): New argument lambda_obstack. Use obstack
16208 allocation for mat.
16209 (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
16212 * lambda-code.c (lambda_loop_new): New function.
16213 (lambda_lattice_new, compute_nest_using_fourier_motzkin)
16214 (lambda_compute_auxillary_space, lambda_compute_target_space)
16215 (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
16216 (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
16217 (build_access_matrix): New argument lambda_obstack. Use obstack
16219 (lambda_compute_step_signs, lambda_compute_access_matrices): New
16220 argument lambda_obstack. Pass it down.
16222 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
16224 * optabs.h (expand_widening_mult): Declare.
16226 2010-04-22 Richard Guenther <rguenther@suse.de>
16228 PR tree-optimization/43845
16229 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
16230 lookup the CALL_EXPR function and arguments.
16232 2010-04-22 Nick Clifton <nickc@redhat.com>
16234 * config/stormy16/stormy16.c
16235 (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
16236 * config/stormy16/stormy16.h: Tidy up formatting.
16237 (DONT_USE_BUILTIN_SETJMP): Remove definition.
16238 * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
16239 (ineqbranchsi): Delete pattern.
16240 * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
16241 * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
16242 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
16243 stormy16-lib2-ucmpsi2.c.
16245 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
16247 * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
16248 df_simulate_find_noclobber_defs as appropriate. Keep track of an
16249 extra set merge_set_noclobber, and use it to relax the final test
16251 * df.h (df_simulate_find_noclobber_defs): Declare.
16252 * df-problems.c (df_simulate_find_defs): Don't ignore partial or
16254 (df_simulate_find_noclobber_defs): New function.
16256 2010-04-22 Uros Bizjak <ubizjak@gmail.com>
16258 * config/i386/i386.md: Use {} around multi-line preparation statements.
16260 2010-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
16262 * c-tree.h (push_init_level, pop_init_level, set_init_index)
16263 (process_init_element): New argument of type struct obstack *.
16265 * c-typeck.c (push_init_level, pop_init_level, set_designator)
16266 (set_init_index, set_init_label, set_nonincremental_init)
16267 (set_nonincremental_init_from_string, find_init_member)
16268 (output_init_element, output_pending_init_elements)
16269 (process_init_element): New argument braced_init_obstack. Pass it
16271 (push_range_stack, add_pending_init): New argument
16272 braced_init_obstack. Use obstack allocation.
16274 * c-parser.c (c_parser_initelt, c_parser_initval): New argument
16275 braced_init_obstack. Pass it down.
16276 (c_parser_braced_init): New variables ret, braced_init_obstack.
16277 Initialize obstack, pass it down and finally free it.
16279 2010-04-22 Bernd Schmidt <bernds@codesourcery.com>
16281 PR middle-end/29274
16282 * tree-pass.h (pass_optimize_widening_mul): Declare.
16283 * tree-ssa-math-opts.c (execute_optimize_widening_mul,
16284 gate_optimize_widening_mul): New static functions.
16285 (pass_optimize_widening_mul): New.
16286 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
16287 <case MULT_EXPR>: Remove support for widening multiplies.
16288 * tree.def (WIDEN_MULT_EXPR): Tweak comment.
16289 * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
16290 simplify_gen_unary rather than directly building extensions.
16291 * tree-cfg.c (verify_gimple_assign_binary): Add tests for
16293 * expmed.c (expand_widening_mult): New function.
16294 * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
16296 2010-04-21 Jan Hubicka <jh@suse.cz>
16298 * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
16299 * lto-section-in.c (lto_section_name): Remove wpa_fixup.
16300 * lto-wpa-fixup.c: Remove.
16301 * Makefile.in (lto-wpa-fixup.o): Remove.
16302 * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
16303 (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
16304 * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
16306 2010-04-21 Jan Hubicka <jh@suse.cz>
16308 * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
16309 add write_optimization_summary, read_optimization_summary.
16310 (ipa_write_summaries_of_cgraph_node_set): Remove.
16311 (ipa_write_optimization_summaries): Declare.
16312 (ipa_read_optimization_summaries): Declare.
16313 * ipa-cp.c (pass_ipa_cp): Update.
16314 * ipa-reference.c (pass_ipa_reference): Update.
16315 * ipa-pure-const.c (pass_ipa_pure_const): Update.
16316 * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
16318 * ipa-inline.c (pass_ipa_inline): Update.
16319 * ipa.c (pass_ipa_whole_program): Update.
16320 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
16321 * passes.c (ipa_write_summaries_1): Do not test wpa.
16322 (ipa_write_optimization_summaries_1): New.
16323 (ipa_write_optimization_summaries): New.
16324 (ipa_read_summaries): Do not test ltrans.
16325 (ipa_read_optimization_summaries_1): New.
16326 (ipa_read_optimization_summaries): New.
16328 2010-04-21 Jan Hubicka <jh@suse.cz>
16330 * lto-cgraph.c (lto_output_node): Do not output comdat groups
16331 for boundary nodes.
16332 (output_cgraph): Do not arrange comdat groups for boundary nodes.
16334 2010-04-21 Jakub Jelinek <jakub@redhat.com>
16337 * dwarf2out.c (add_name_and_src_coords_attributes): Add
16338 DW_AT_{,MIPS_}linkage_name even for Fortran decls.
16340 2010-04-21 Jan Hubicka <jh@suse.cz>
16342 * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
16344 2010-04-21 Jan Hubicka <jh@suse.cz>
16346 * varpool.c (decide_is_variable_needed): Variable is always needed
16349 2010-04-21 Jan Hubicka <jh@suse.cz>
16351 * opts.c (decode_options): Enable pure-const pass for whopr.
16353 2010-04-21 Jan Hubicka <jh@suse.cz>
16355 * cgraph.c (dump_cgraph_node): Dump also assembler name.
16356 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
16358 (cgraph_decide_inlining): Do not expect callee to be removed in all
16361 2010-04-21 Eric B. Weddington <eric.weddington@atmel.com>
16363 * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
16365 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
16367 * config/i386/i386.md (x86_shrd): Add athlon_decode and
16368 amdfam10_decode attributes.
16370 2010-04-21 Jakub Jelinek <jakub@redhat.com>
16372 PR middle-end/43570
16373 * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
16374 OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
16375 (lower_copyprivate_clauses): Use private var in outer
16376 context instead of original var. Make sure the types
16377 are correct for VLAs.
16379 2010-04-21 Richard Guenther <rguenther@suse.de>
16381 * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
16382 to non-pointer objects.
16384 2010-04-21 Jakub Jelinek <jakub@redhat.com>
16386 * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop
16387 last chain entry if it starts with the still current label.
16388 (add_location_or_const_value_attribute): Check that
16389 loc_list->first->next is NULL instead of comparing ->first with ->last.
16390 (dwarf2out_var_location): Pass last_label resp. last_postcall_label
16391 to add_var_loc_to_decl.
16393 * dwarf2out.c (output_call_frame_info): For dw_cie_version
16394 >= 4 add also address size and segment size fields into CIE header.
16396 * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
16397 long as address size is the same as sizeof (void *) and
16399 * unwind-dw2-fde.c (get_cie_encoding): Likewise. If
16400 address size or segment size is unexpected, return DW_EH_PE_omit.
16401 (classify_object_over_fdes): If get_cie_encoding returned
16402 DW_EH_PE_omit, return -1.
16403 (init_object): If classify_object_over_fdes returned -1,
16404 pretend there were no FDEs at all.
16406 2010-04-21 Uros Bizjak <ubizjak@gmail.com>
16408 * config/i386/i386.md (bswap<mode>2): Macroize expander from
16409 bswap{si,di}2 using SWI48 mode iterator.
16410 (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
16411 SWI48 mode iterator. Set type attribute of bswap insn to bitmanip,
16412 set modrm attribute of bswap insn to 0 and remove length attribute.
16413 (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
16414 iterator. Set type attribute to bitmanip, set modrm attribute to 0,
16415 set mode attribute to <MODE> and remove length attribute.
16417 2010-04-20 James E. Wilson <wilson@codesourcery.com>
16419 PR rtl-optimization/43520
16420 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
16421 zero available registers.
16423 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16425 * builtins.c (fold_builtin_cproj): Fold more cases.
16427 2010-04-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16429 * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
16430 (fold_builtin_1): Fold builtin cproj.
16431 * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
16432 Use ATTR_CONST_NOTHROW_LIST.
16434 2010-04-20 Uros Bizjak <ubizjak@gmail.com>
16436 * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
16437 and ffsdi2 using SWI48 mode iterator. Expand SImode insn through
16438 ffsi2_no_cmove for !TARGET_CMOVE.
16439 (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public.
16440 (ffssi2): Remove expander.
16441 (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
16443 (ctz<mode>2): Ditto from ctz{si,di}2.
16444 (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
16446 (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
16449 2010-04-20 Jakub Jelinek <jakub@redhat.com>
16451 * dwarf2out.c (AT_linkage_name): Define.
16452 (clone_as_declaration): Handle DW_AT_linkage_name.
16453 (add_name_and_src_coords_attributes): Use AT_linkage_name instead
16454 of DW_AT_MIPS_linkage_name.
16455 (move_linkage_attr): Likewise.
16456 (dwarf2out_finish): Likewise.
16458 2010-04-20 Xinliang David Li <davidxl@gcc.gnu.org>
16460 PR middle-end/41952
16461 * fold-const.c (fold_comparison): New folding rule.
16463 2010-04-20 Anatoly Sokolov <aesok@post.ru>
16465 * double-int.h (double_int_setbit): Declare.
16466 * double-int.c (double_int_setbit): New function.
16467 * rtl.h (immed_double_int_const): Declare.
16468 * emit-rtl.c (immed_double_int_const): New function.
16469 * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
16470 and immed_double_int_const functions.
16471 * optabs.c (expand_absneg_bit, expand_copysign_absneg,
16472 expand_copysign_bit): (Ditto.).
16473 * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
16474 * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
16475 * dojump.c (prefer_and_bit_test): (Ditto.).
16476 * expr.c (convert_modes, reduce_to_bit_field_precision,
16477 const_vector_from_tree): (Ditto.).
16478 * expmed.c (mask_rtx, lshift_value): (Ditto.).
16480 2010-04-20 Jan Hubicka <jh@suse.cz>
16482 * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
16483 (dump_cgraph_node): Dump new flags.
16484 * cgraph.h (struct cgraph_node): Add flags
16485 reachable_from_other_partition and in_other_partition.
16486 (cgraph_can_remove_if_no_direct_calls_p): Functions used by
16487 other partition can not be removed.
16488 * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
16489 the other partition must be output; silence sanity checking on
16490 leaking functions bodies from other paritition.
16491 * lto-cgraph.c (reachable_from_other_partition_p): New function.
16492 (lto_output_node): Output new flags; do not sanity check that inline
16493 clones are output; drop lto_forced_extern_inline_p code; do not mock
16494 visibility flags at partition boundaries.
16495 (add_node_to): New function.
16496 (output_cgraph): Use it to sort functions so masters appear before
16498 (input_overwrite_node): Input new flags.
16499 * passes.c (ipa_write_summaries): Do not call
16500 lto_new_extern_inline_states.
16501 * lto-section-out.c (forced_extern_inline,
16502 lto_new_extern_inline_states lto_delete_extern_inline_states,
16503 lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
16504 * lto-streamer.h (lto_new_extern_inline_states,
16505 * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
16506 lto_forced_extern_inline_p): Kill.
16508 2010-04-20 Richard Guenther <rguenther@suse.de>
16510 * tree-ssa-structalias.c (do_sd_constraint): Add edges only
16511 from vars that can have pointers.
16512 (process_constraint): Dump useless constraints.
16514 2010-04-20 Richard Guenther <rguenther@suse.de>
16516 * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
16517 (dump_sa_points_to_info): Remove asserts.
16518 (init_base_vars): nothing_id isn't an escape point nor does it
16521 2010-04-20 Jakub Jelinek <jakub@redhat.com>
16523 * tree.h (TYPE_REF_IS_RVALUE): Define.
16524 * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
16525 should_move_die_to_comdat, prune_unused_types_walk): Handle
16526 DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
16527 (modified_type_die, gen_reference_type_die): Emit
16528 DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
16529 if TYPE_REF_IS_RVALUE and -gdwarf-4.
16531 2010-04-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16534 * config/s390/s390.c (s390_emit_call): Turn direct into indirect
16535 calls for -fpic -m31 if they have been sibcall optimized.
16537 2010-04-19 James E. Wilson <wilson@codesourcery.com>
16539 * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
16540 ar.lc fixed and call-used.
16542 * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
16544 2010-04-19 Jan Hubicka <jh@suse.cz>
16546 * opts.c (decode_options): Disable whpr incompatible passes.
16547 * lto/lto.c (lto_1_to_1_map): Skip clones.
16548 (read_cgraph_and_symbols): Do not mark everything as needed.
16549 (do_whole_program_analysis): Do map only after optimizing;
16550 set proper cgraph_state; use passmanager.
16552 2010-04-19 DJ Delorie <dj@redhat.com>
16554 * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
16555 POINTER_PLUS_EXPR and fix them.
16557 2010-04-19 Eric B. Weddington <eric.weddington@atmel.com>
16559 * config/avr/avr-devices.c (avr_mcu_types): Add support for new
16560 devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
16561 attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
16562 atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
16563 atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
16564 atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
16565 atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
16566 atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
16567 m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
16568 atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
16569 * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
16571 2010-04-19 Eric Botcazou <ebotcazou@adacore.com>
16573 * ifcvt.c (noce_try_cmove_arith): Fix long lines.
16574 (check_cond_move_block): Likewise.
16575 (cond_move_process_if_block): Likewise.
16576 (noce_find_if_block): Improve formatting.
16577 (find_if_header): Pass 0 to memset and tweak conditions.
16578 (cond_exec_find_if_block): Fix long lines and tweak conditions.
16580 2010-04-19 Jakub Jelinek <jakub@redhat.com>
16582 * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
16585 PR middle-end/43337
16586 * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
16587 with non-local decl doesn't need chain.
16589 2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
16591 * ira-color.c (allocno_reload_assign): Avoid accumulating
16592 reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
16594 2010-04-19 Martin Jambor <mjambor@suse.cz>
16596 * gimple.h (create_tmp_reg): Declare.
16597 * gimplify.c (create_tmp_reg): New function.
16598 (gimplify_return_expr): Use create_tmp_reg.
16599 (gimplify_omp_atomic): Likewise.
16600 (gimple_regimplify_operands): Likewise.
16601 * tree-dfa.c (make_rename_temp): Likewise.
16602 * tree-predcom.c (predcom_tmp_var): Likewise.
16603 (reassociate_to_the_same_stmt): Likewise.
16604 * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
16605 (get_replaced_param_substitute): Likewise.
16606 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
16607 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
16608 * tree-ssa-pre.c (get_representative_for): Likewise.
16609 (create_expression_by_pieces): Likewise.
16610 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
16611 (create_tailcall_accumulator): Likewise.
16613 2010-04-19 Martin Jambor <mjambor@suse.cz>
16615 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
16617 (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
16619 2010-04-19 Richard Guenther <rguenther@suse.de>
16621 PR tree-optimization/43796
16622 * tree-vrp.c (adjust_range_with_scev): Lookup init and step
16623 from SCEV in the lattice.
16624 (vrp_visit_phi_node): Dump change.
16626 2010-04-19 Richard Guenther <rguenther@suse.de>
16628 * configure.ac: Fix quoting around elf_getshstrndx ABI check.
16629 * configure: Re-generated.
16631 2010-04-19 Richard Guenther <rguenther@suse.de>
16633 PR tree-optimization/43783
16634 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
16635 constant ARRAY_REF operands two and three if possible.
16637 2010-04-19 Uros Bizjak <ubizjak@gmail.com>
16640 * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
16642 2010-04-19 Jie Zhang <jie@codesourcery.com>
16645 * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
16647 2010-04-19 Ira Rosen <irar@il.ibm.com>
16649 PR tree-optimization/37027
16650 * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
16651 and macro to access it.
16652 (vectorizable_reduction): Add argument.
16653 (vect_get_slp_defs): Likewise.
16654 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
16655 statements for possible use in SLP.
16656 (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
16657 (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
16658 (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
16660 (vectorizable_reduction): Likewise.
16661 * tree-vect-stmts.c (vect_get_vec_defs): Update call to
16663 (vectorizable_type_demotion, vectorizable_type_promotion,
16664 vectorizable_store): Likewise.
16665 (vect_analyze_stmt): Update call to vectorizable_reduction.
16666 (vect_transform_stmt): Likewise.
16667 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
16668 (vect_build_slp_tree): Fix indentation. Check that there are no loads
16669 from different interleaving chains in same node.
16670 (vect_slp_rearrange_stmts): New function.
16671 (vect_supported_load_permutation_p): Allow load permutations for
16672 reductions. Call vect_slp_rearrange_stmts() to rearrange statements
16673 inside SLP nodes if necessary.
16674 (vect_analyze_slp_instance): Handle reductions.
16675 (vect_analyze_slp): Try to build SLP instances originating from groups
16677 (vect_detect_hybrid_slp_stmts): Skip reduction statements.
16678 (vect_get_constant_vectors): Create initial vectors for reductions
16679 according to reduction code. Add new argument.
16680 (vect_get_slp_defs): Add new argument, pass it to
16681 vect_get_constant_vectors.
16682 (vect_schedule_slp_instance): Remove SLP tree root statements.
16684 2010-04-19 Jakub Jelinek <jakub@redhat.com>
16686 * tree.h (ENUM_IS_SCOPED): Define.
16687 * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
16688 for ENUM_IS_SCOPED enums.
16690 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
16692 * fold-const.c (fold_comparison): Use ssizetype.
16693 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
16694 * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
16695 * tree-loop-distribution.c (build_size_arg_loc): Likewise.
16696 * tree-object-size.c (compute_object_sizes): Use size_type_node.
16698 * tree.h (initialize_sizetypes): Remove parameter.
16699 (build_common_tree_nodes): Remove second parameter.
16700 * stor-layout.c (initialize_sizetypes): Remove parameter.
16701 Always create an unsigned type.
16702 (set_sizetype): Assert that the passed type is unsigned and simplify.
16703 * tree.c (build_common_tree_nodes): Remove second parameter.
16704 Adjust call to initialize_sizetypes.
16705 * c-decl.c (c_init_decl_processing): Remove second argument in call to
16706 build_common_tree_nodes.
16708 2010-04-18 Matthias Klose <doko@ubuntu.com>
16710 * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
16712 2010-04-18 Ira Rosen <irar@il.ibm.com>
16714 PR tree-optimization/43771
16715 * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
16716 load permutation doesn't have gaps.
16718 2010-04-18 Jan Hubicka <jh@suse.cz>
16720 * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
16721 (sse_prologue_save_insn expander): Use new pattern.
16722 (sse_prologue_save_insn1): New pattern and splitter.
16723 (sse_prologue_save_insn): Update to deal also with 64bit aligned
16725 * i386.c (setup_incoming_varargs_64): Do not compute jump
16727 (ix86_gimplify_va_arg): Update alignment needed.
16728 (ix86_local_alignment): Do not align all local arrays to 128bit.
16730 2010-04-17 Jan Hubicka <jh@suse.cz>
16732 * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
16734 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
16736 * arm.md (negdi2): Remove redundant code to force values into a
16739 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
16741 * arm/bpabi.S: Add EABI alignment attributes to objects.
16742 * arm/bpabi-v6m.S: Likewise.
16743 * arm/crti.asm: Likewise.
16744 * arm/crtn.asm: Likewise.
16745 * arm/lib1funcs.asm: Likewise.
16746 * arm/libunwind.S: Likewise.
16748 2010-04-17 Richard Earnshaw <rearnsha@arm.com>
16750 * arm-protos.h (tune_params): New structure.
16751 * arm.c (current_tune): New variable.
16752 (arm_constant_limit): Delete.
16753 (struct processors): Add pointer to the tune parameters.
16754 (arm_slowmul_tune): New tuning option.
16755 (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
16756 (all_cores): Adjust to pick up the tuning model.
16757 (arm_constant_limit): New function.
16758 (arm_override_options): Select the appropriate tuning model. Delete
16759 initialization of arm_const_limit.
16760 (arm_split_constant): Use the new constant-limit model.
16761 (arm_rtx_costs): Pick up the current tuning model.
16762 * arm.md (is_strongarm, is_xscale): Delete.
16763 * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
16764 for Xscale variant architectures.
16765 (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
16767 2010-04-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16769 * config/arm/arm.c (arm_gen_constant): Remove unused variable
16771 (arm_rtx_costs_1): Remove unused variable extra_cost.
16772 (arm_unwind_emit_set): Use variable offset.
16773 (thumb1_output_casesi): Remove unused variable flags.
16775 2010-04-16 Jeff Law <law@redhat.com>
16777 * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
16778 needing assignment rather than doing a two-phase assignment. Remove
16779 unused variable 'm'.
16781 2010-04-16 Jakub Jelinek <jakub@redhat.com>
16784 * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
16786 2010-04-16 Doug Kwan <dougkwan@google.com>
16788 * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
16789 (next_operand_entry_id): New static variable.
16790 (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
16791 (add_to_ops_vec): Assigned unique ID to operand entry.
16792 (struct oecount_s): New field ID.
16793 (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
16794 (undistribute_ops_list): Assign unique IDs to oecounts.
16795 (init_reassoc): reset next_operand_entry_id.
16797 2010-04-16 Doug Kwan <dougkwan@google.com>
16799 * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
16800 missing left parenthesis.
16802 2010-04-16 Uros Bizjak <ubizjak@gmail.com>
16804 * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
16805 *btdi_rex64 using SWI48 mode iterator.
16806 (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
16807 (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
16808 *jcc_btdi_mask_rex64.
16810 2010-04-16 Anatoly Sokolov <aesok@post.ru>
16812 * double-int.h (tree_to_double_int): Convert to macro.
16813 * double-int.c (tree_to_double_int): Remove.
16815 2010-04-16 Jakub Jelinek <jakub@redhat.com>
16818 * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
16819 with want_address 2 and in case a single element list might be
16820 possible, call it again with want_address 0.
16822 2010-04-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
16824 * config/h8300/h8300.c (print_operand) : Modify case 'V' and
16825 case 'W' print operands for HI mode.
16826 * config/h8300/h8300.h (Y0, Y2) : New constraints.
16827 * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
16828 (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
16829 * config/h8300/predicate.md (bit_register_indirect_operand): New.
16831 * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
16833 * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
16834 cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
16835 #xx:3 and #xx:4 mode.
16837 * config/h8300/h8300.md (inverted load with HImode dest): Add
16838 support for H8300SX.
16840 * config/h8300/predicate.md (bit_operand): Allow immediate values that
16841 satisfy 'U' constraint.
16843 2010-04-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16845 * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
16846 * configure: Regenerate.
16847 * config.in: Regenerate.
16848 * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
16851 2010-04-16 Richard Guenther <rguenther@suse.de>
16853 * tree.h (struct tree_decl_minimal): Move pt_uid ...
16854 (struct tree_decl_common): ... here.
16855 (DECL_PT_UID): Adjust.
16856 (SET_DECL_PT_UID): Likewise.
16857 (DECL_PT_UID_SET_P): Likewise.
16859 2010-04-16 Richard Guenther <rguenther@suse.de>
16861 PR tree-optimization/43572
16862 * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
16863 * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
16864 * tree-flow.h (is_call_clobbered): Remove.
16865 * tree-flow-inline.h (is_call_clobbered): Likewise.
16866 * tree-dfa.c (dump_variable): Do not dump call clobber state.
16867 * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
16868 (execute_return_slot_opt): Adjust.
16869 * tree-tailcall.c (suitable_for_tail_opt_p): Remove
16870 check for call clobbered vars here.
16871 (find_tail_calls): Move tailcall verification to the
16874 2010-04-16 Diego Novillo <dnovillo@google.com>
16876 * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
16878 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
16881 * config/arm/arm.md (cbranchqi4): New pattern.
16882 * config/arm/predicates.md (const0_operand,
16883 cbranchqi4_comparison_operator): New predicates.
16885 2010-04-16 Richard Guenther <rguenther@suse.de>
16887 * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
16888 (dump_gimple_stmt): Likewise.
16890 2010-04-16 Bernd Schmidt <bernds@codesourcery.com>
16892 * recog.h (struct recog_data): New field is_operator.
16893 (struct insn_operand_data): New field is_operator.
16894 * recog.c (extract_insn): Set recog_data.is_operator.
16895 * genoutput.c (output_operand_data): Emit code to set the
16897 * reload.c (find_reloads): Use it rather than testing for an
16898 empty constraint string.
16901 * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
16902 If the previous insn is a cbranchsi4_insn with the same arguments,
16903 omit the compare instruction.
16905 * config/arm/arm.md (addsi3_cbranch): If destination is a high
16906 register, inputs must be low registers and we need a low register
16907 scratch. Handle alternative 2 like alternative 3.
16909 2010-04-16 Jakub Jelinek <jakub@redhat.com>
16911 * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
16912 don't call get_addr on both. If one expression is a VALUE and
16913 the other a REG, check VALUE's locs if the REG isn't among them.
16915 2010-04-16 Christian Bruel <christian.bruel@st.com>
16917 * config/sh/sh.h (sh_frame_pointer_required): New function.
16918 * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
16919 (flag_omit_frame_pointer) Set.
16920 (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
16921 (rounded_frame_size): Adjust size with outgoing_args_size.
16922 (sh_set_return_address): Must return from stack pointer.
16923 * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
16924 (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
16925 (ACCUMULATE_OUTGOING_ARGS): Define.
16926 * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
16927 * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
16929 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
16932 * config/sh/sh.c (sh_legitimize_reload_address): Use
16933 MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
16934 Remove a unneeded check for offset_base.
16936 2010-04-15 H.J. Lu <hongjiu.lu@intel.com>
16938 * configure: Regenerated.
16940 2010-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16942 * config/s390/s390.c (s390_call_save_register_used): Switch back
16943 to HARD_REGNO_NREGS.
16945 2010-04-15 Richard Guenther <rguenther@suse.de>
16947 * alias.c (alias_set_subset_of): Handle alias-set zero
16950 2010-04-15 Mark Shinwell <shinwell@codesourcery.com>
16951 Julian Brown <julian@codesourcery.com>
16953 * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
16954 alternatives according to use of high and low regs.
16955 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
16956 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
16957 optimizing for size on Thumb-2.
16959 2010-04-15 Thomas Schwinge <tschwinge@gnu.org>
16961 * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
16963 2010-04-15 Richard Guenther <rguenther@suse.de>
16965 * tree-ssa-structalias.c (struct variable_info): Add
16967 (new_var_info): Initialize it.
16968 (dump_constraints): Support printing last added constraints.
16969 (debug_constraints): Adjust.
16970 (dump_constraint_graph): Likewise.
16971 (make_heapvar_for): Check for NULL cfun.
16972 (get_function_part_constraint): New function.
16973 (get_fi_for_callee): Likewise.
16974 (find_func_aliases): Properly implement IPA PTA constraints.
16975 (process_ipa_clobber): New function.
16976 (find_func_clobbers): Likewise.
16977 (insert_into_field_list_sorted): Remove.
16978 (create_function_info_for): Properly allocate vars for IPA mode.
16979 Do not use insert_into_field_list_sorted.
16980 (create_variable_info_for): Properly generate constraints for
16981 global vars in IPA mode.
16982 (dump_solution_for_var): Always dump the solution.
16983 (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
16984 (find_what_var_points_to): Adjust.
16985 (pt_solution_set): Change.
16986 (pt_solution_ior_into): New function.
16987 (pt_solution_empty_p): Export.
16988 (pt_solution_includes_global): Adjust.
16989 (pt_solution_includes_1): Likewise.
16990 (pt_solutions_intersect_1): Likewise.
16991 (dump_sa_points_to_info): Check some invariants.
16992 (solve_constraints): Move constraint dumping ...
16993 (compute_points_to_sets): ... here.
16994 (ipa_pta_execute): ... and here.
16995 (compute_may_aliases): Do not re-compute points-to info
16996 locally if IPA info is available.
16997 (ipa_escaped_pt): New global var.
16998 (ipa_pta_execute): Properly implement IPA PTA.
16999 * tree-into-ssa.c (dump_decl_set): Support dumping
17000 decls not in referenced-vars.
17001 * tree-flow.h (struct gimple_df): Add ipa_pta flag.
17002 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
17003 (dump_points_to_solution): Likewise.
17004 * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
17005 * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
17006 (remap_gimple_stmt): Reset call clobber/use information if necessary.
17007 (copy_decl_to_var): Copy DECL_PT_UID.
17008 (copy_result_decl_to_var): Likewise.
17009 * tree.c (make_node_stat): Initialize DECL_PT_UID.
17010 (copy_node_stat): Copy it.
17011 * tree.h (DECL_PT_UID): New macro.
17012 (SET_DECL_PT_UID): Likewise.
17013 (DECL_PT_UID_SET_P): Likewise.
17014 (struct tree_decl_minimal): Add pt_uid member.
17015 * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
17016 (pt_solution_empty_p): Declare.
17017 (pt_solution_set): Adjust.
17018 (ipa_escaped_pt): Declare.
17019 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
17020 * gimple-pretty-print.c (pp_points_to_solution): New function.
17021 (dump_gimple_call): Dump call clobber/use information.
17022 * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
17023 * tree-pass.h (TDF_ALIAS): New dump option.
17024 * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
17025 * doc/invoke.texi (-fipa-pta): Update documentation.
17027 2010-04-15 Richard Guenther <rguenther@suse.de>
17029 * Makefile.in (OBJS-common): Add gimple-fold.o.
17030 (gimple-fold.o): New rule.
17031 * tree.h (maybe_fold_offset_to_reference,
17032 maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
17034 * gimple.h: ... here.
17035 * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
17036 may_propagate_address_into_dereference): Move prototypes ...
17037 * gimple.h: ... here.
17038 * tree-ssa-ccp.c (get_symbol_constant_value,
17039 may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
17040 maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
17041 maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
17042 maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
17043 ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
17044 fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
17045 gimplify_and_update_call_from_tree): Move ...
17046 * gimple-fold.c: ... here. New file.
17047 (ccp_fold_builtin): Rename to ...
17048 (gimple_fold_builtin): ... this.
17049 * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
17051 2010-04-15 Richard Guenther <rguenther@suse.de>
17053 * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
17054 fit_double_type, force_fit_type_double, add_double_with_sign,
17055 neg_double, mul_double_with_sign, lshift_double, rshift_double,
17056 lrotate_double, rrotate_double, div_and_round_double): Move ...
17057 * double-int.c: ... here.
17058 * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
17059 add_double, neg_double, mul_double_with_sign, mul_double,
17060 lshift_double, rshift_double, lrotate_double, rrotate_double,
17061 div_and_round_double): Move prototypes ...
17062 * double-int.h: ... here.
17064 2010-04-15 Bernd Schmidt <bernds@codesourcery.com>
17067 * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use
17068 matching constraints to ensure inputs match the output.
17070 2010-04-15 Kaz Kojima <kkojima@gcc.gnu.org>
17073 * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
17074 in an input-only operand.
17076 2010-04-15 Anatoly Sokolov <aesok@post.ru>
17078 * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
17079 (double_int_not, double_int_lshift, double_int_rshift): Declare.
17080 (double_int_negative_p): Convert to static inline function.
17081 * double-int.c (double_int_lshift, double_int_lshift): New functions.
17082 (double_int_negative_p): Remove.
17083 * tree.h (lshift_double, rshift_double):
17084 * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
17085 * fold-const.c (fold_convert_const_int_from_real,
17086 fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
17087 (lshift_double): Change type of arith argument to bool.
17088 (rshift_double): Change type of arith argument to bool. Correct
17090 * expmed.c (mask_rtx, lshift_value): (Ditto.).
17092 2010-04-14 Bernd Schmidt <bernds@codesourcery.com>
17095 * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
17096 at the start and end of the then/else blocks, and omit them from the
17098 * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE
17099 argument; all callers changed. Pass zero to old_insns_match_p instead.
17100 (flow_find_head_matching_sequence): New function.
17101 (old_insns_match_p): Check REG_EH_REGION notes for calls.
17102 * basic-block.h (flow_find_cross_jump,
17103 flow_find_head_matching_sequence): Declare functions.
17105 2010-04-14 Jason Merrill <jason@redhat.com>
17108 * c-common.c (attribute_takes_identifier_p): New fn.
17109 * c-common.h: Declare it.
17111 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17113 * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
17114 splitter condition.
17115 (*udivmod<mode>4): Ditto.
17117 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17119 * config/i386/i386.md (maxmin_int): Rename code attribute from
17120 maxminiprefix and update all users.
17121 (maxmin_float): Ditto from maxminfprefix.
17122 (logic): Ditto from logicprefix.
17123 (absneg_mnemonic): Ditto from absnegprefix.
17124 * config/i386/mmx.md: Update all users of maxminiprefix,
17125 maxminfprefix and logicprefix for rename.
17126 * config/i386/sse.md: Ditto.
17127 * config/i386/sync.md (sync_<code><mode>): Update for
17128 logicprefix rename.
17130 2010-04-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
17133 * diagnostics.c (diagnostic_report_diagnostic): Mark specially
17134 warnings converted to errors.
17136 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17138 * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
17139 used insn_type variable.
17140 (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
17141 to avoid set-but-not-used warning.
17143 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17145 * df-core.c (df_ref_debug): Change format string placeholder
17147 * dwarf2asm.c (dw2_asm_output_data_raw,
17148 dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
17149 dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
17150 * dwarf2out.c (output_cfi, output_cfi_directive,
17151 dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
17152 output_cfa_loc_raw, output_die, output_ranges, output_file_names):
17154 * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
17155 * print-rtl.c (print_rtx): Ditto.
17157 2010-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
17159 PR middle-end/42694
17160 * builtins.c (expand_builtin_pow_root): New function to expand pow
17161 calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
17162 series of sqrt and cbrt calls under -ffast-math.
17163 (expand_builtin_pow): Call it.
17165 2010-04-14 Michael Matz <matz@suse.de>
17167 PR tree-optimization/42963
17168 * tree-cfg.c (touched_switch_bbs): New static variable.
17169 (group_case_labels_stmt): New function broken out from ...
17170 (group_case_labels): ... here, use the above.
17171 (start_recording_case_labels): Allocate touched_switch_bbs.
17172 (end_recording_case_labels): Deallocate it, call
17173 group_case_labels_stmt.
17174 (gimple_redirect_edge_and_branch): Remember index of affected BB.
17176 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17178 * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
17179 from insn template.
17181 2010-04-14 Uros Bizjak <ubizjak@gmail.com>
17183 * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
17185 2010-04-13 Jan Hubicka <jh@suse.cz>
17187 * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
17188 of optimized out static functions.
17189 (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
17190 cost computation. Also sanity check for overflows.
17191 (update_caller_keys): Update cgraph_edge_badness call; properly
17192 update fibheap and sanity check that it is up to date.
17193 (add_new_edges_to_heap): Update cgraph_edge_badness.
17194 (cgraph_decide_inlining_of_small_function): Likewise;
17195 add sanity checking that badness in heap is up to date;
17196 improve dumping of reason; Update badness of calls to the
17197 offline copy of function currently inlined; dump badness
17198 of functions not inlined because of unit growth limits.
17200 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
17202 PR middle-end/32628
17203 * c-common.c (pointer_int_sum): Disregard overflow that occured only
17204 because of sign-extension change when converting to sizetype here...
17205 * fold-const.c (fold_convert_const_int_from_int): ...and not here.
17207 * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
17208 the folding to constants. Remove redundant final conversion.
17209 (fold_binary) <associate>: Do not associate if the re-association of
17210 constants alone overflows.
17211 (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
17212 to the end of the list.
17213 (multiple_of_p) <COND_EXPR>: New case.
17215 2010-04-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
17217 * opt-functions.awk (opt_sanitized_name): New.
17219 * optc-gen.awk: Use it
17220 * opth-gen.awk: Use it.
17222 2010-04-13 Martin Jambor <mjambor@suse.cz>
17224 * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
17225 (sra_modify_assign): Delete stmts loading dead data even if racc has no
17226 children. Call replace_uses_with_default_def_ssa_name to handle
17229 2010-04-13 Michael Matz <matz@suse.de>
17231 PR middle-end/43730
17232 * builtins.c (expand_builtin_interclass_mathfn): Also create
17233 a register if the predicate doesn't match.
17235 2010-04-13 Diego Novillo <dnovillo@google.com>
17237 * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
17238 * c-pch.c: Include timevar.h.
17239 (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
17240 (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
17241 * ggc-common.c: Include timevar.h.
17242 (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
17243 * timevar.def (TV_PCH_SAVE): Define.
17244 (TV_PCH_CPP_SAVE): Define.
17245 (TV_PCH_PTR_REALLOC): Define.
17246 (TV_PCH_PTR_SORT): Define.
17247 (TV_PCH_RESTORE): Define.
17248 (TV_PCH_CPP_RESTORE): Define.
17250 2010-04-13 Michael Matz <matz@suse.de>
17252 * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
17254 (can_reassociate_p): New function.
17255 (break_up_subtract_bb, reassociate_bb): Use it.
17257 2010-04-13 Richard Guenther <rguenther@suse.de>
17260 * builtins.c (c_readstr): Fix assert.
17262 2010-04-13 Uros Bizjak <ubizjak@gmail.com>
17264 * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
17265 when generating cltd insn.
17267 (*ashl<mode>3_1): Remove special handling for register operand 2.
17268 (*ashlsi3_1_zext): Ditto.
17269 (*ashlhi3_1): Ditto.
17270 (*ashlhi3_1_lea): Ditto.
17271 (*ashlqi3_1): Ditto.
17272 (*ashlqi3_1_lea): Ditto.
17273 (*<shiftrt_insn><mode>3_1): Ditto.
17274 (*<shiftrt_insn>si3_1_zext): Ditto.
17275 (*<shiftrt_insn>qi3_1_slp): Ditto.
17276 (*<rotate_insn><mode>3_1): Ditto.
17277 (*<rotate_insn>si3_1_zext): Ditto.
17278 (*<rotate_insn>qi3_1_slp): Ditto.
17280 2010-04-13 Richard Guenther <rguenther@suse.de>
17282 * tree-ssa-structalias.c (callused_id): Remove.
17283 (call_stmt_vars): New.
17284 (get_call_vi): Likewise.
17285 (lookup_call_use_vi): Likewise.
17286 (lookup_call_clobber_vi): Likewise.
17287 (get_call_use_vi): Likewise.
17288 (get_call_clobber_vi): Likewise.
17289 (make_transitive_closure_constraints): Likewise.
17290 (handle_const_call): Adjust to do per-call call-used handling.
17291 (handle_pure_call): Likewise.
17292 (find_what_var_points_to): Remove general callused handling.
17293 (init_base_vars): Likewise.
17294 (init_alias_vars): Initialize call_stmt_vars.
17295 (compute_points_to_sets): Process call-used and call-clobbered
17296 vars for call statements.
17297 (delete_points_to_sets): Free call_stmt_vars.
17299 2010-04-13 Richard Guenther <rguenther@suse.de>
17301 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
17302 Only add RW dependence for dependence distance zero.
17303 Adjust maximal vectorization factor according to dependences.
17304 Move alignment handling ...
17305 (vect_find_same_alignment_drs): ... here. New function.
17306 (vect_analyze_data_ref_dependences): Adjust.
17307 (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
17308 (vect_analyze_data_refs): Adjust minimal vectorization factor
17309 according to data references.
17310 * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
17311 dependences before determining the vectorization factor.
17312 Analyze alignment after determining the vectorization factor.
17313 * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
17314 dependences before alignment.
17315 * tree-vectorizer.h (vect_analyze_data_ref_dependences):
17317 (vect_analyze_data_refs): Likewise.
17318 (MAX_VECTORIZATION_FACTOR): New define.
17320 2010-04-13 Duncan Sands <baldrick@free.fr>
17322 * except.h (lang_eh_type_covers): Remove.
17323 * except.c (lang_eh_type_covers): Likewise.
17325 2010-04-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17326 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17328 * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
17329 * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
17330 UNITS_PER_LONG where it is ABI relevant.
17331 (s390_return_addr_rtx): Likewise.
17332 (s390_back_chain_rtx): Likewise.
17333 (s390_frame_area): Likewise.
17334 (s390_frame_info): Likewise.
17335 (s390_initial_elimination_offset): Likewise.
17336 (save_gprs): Likewise.
17337 (s390_emit_prologue): Likewise.
17338 (s390_emit_epilogue): Likewise.
17339 (s390_function_arg_advance): Likewise.
17340 (s390_function_arg): Likewise.
17341 (s390_va_start): Likewise.
17342 (s390_gimplify_va_arg): Likewise.
17343 (s390_function_profiler): Likewise.
17344 (s390_optimize_prologue): Likewise.
17345 (s390_rtx_costs): Likewise.
17346 (s390_secondary_reload): Likewise.
17347 (s390_promote_function_mode): Likewise.
17348 (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
17349 (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
17350 registers available.
17351 (s390_unwind_word_mode): New function.
17352 (s390_function_value): Split 64 bit values into register pair if
17353 used as return value.
17354 (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
17355 function call parameters. Handle parallels.
17356 (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
17357 (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
17358 (DWARF_CIE_DATA_ALIGNMENT): New macro.
17359 (s390_expand_setmem): Remove unused variable src_addr.
17360 * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
17361 deal with 64 bit registers.
17362 * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
17363 Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
17364 (UNITS_PER_LONG): New macro.
17365 * libjava/include/s390-signal.h: Define extended ucontext
17366 structure containing the upper halfs of the 64 bit registers.
17368 2010-04-13 Simon Baldwin <simonb@google.com>
17370 * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
17372 2010-04-13 Eric Botcazou <ebotcazou@adacore.com>
17374 * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
17375 rvalue on the RHS if the LHS is of a non-renamable type.
17376 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
17378 2010-04-13 Matthias Klose <doko@ubuntu.com>
17380 * gcc.c (cc1_options): Handle -iplugindir before processing
17381 the cc1 spec. Only add -iplugindir once.
17382 (cpp_unique_options): Add -iplugindir option if -fplugin* options
17384 * common.opt (iplugindir): Remove `Separate' property, initialize.
17385 * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
17387 * Makefile.in (check-%, check-parallel-%): Create plugin dir.
17388 (distclean): Remove plugin dir.
17389 * doc/invoke.texi: Document -iplugindir.
17391 2010-04-13 Basile Starynkevitch <basile@starynkevitch.net>
17393 * doc/plugins.texi (Loading Plugins): Document short
17394 -fplugin=foo option.
17395 (Plugin API): Mention default_plugin_dir_name function.
17397 * gcc.c (find_file_spec_function): Add new declaration.
17398 (static_spec_func): Use it for "find-file".
17399 (find_file_spec_function): Add new function.
17400 (cc1_options): Add -iplugindir option if -fplugin* options found.
17402 * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
17404 * plugin.c (add_new_plugin): Updated comment, and handle short
17406 (default_plugin_dir_name): Added new function.
17408 * common.opt (iplugindir): New option to set the plugin directory.
17410 2010-04-12 Uros Bizjak <ubizjak@gmail.com>
17412 * config/i386/i386.md (any_rotate): New code iterator.
17413 (rotate_insn): New code attribute.
17415 (SWIM124): New mode iterator.
17416 (<rotate_insn>ti3): New expander.
17417 (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
17418 any_rotate code iterator.
17419 (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
17420 using any_rotate code iterator and SWIM124 mode iterator.
17421 (ix86_rotlti3): New insn_and_split pattern.
17422 (ix86_rotrti3): Ditto.
17423 (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
17424 ix86_rotl{di,ti}3 patterns.
17425 (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
17426 (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
17427 and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
17428 *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
17429 code iterator and SWI mode iterator.
17430 (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
17431 Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
17433 (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
17434 Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
17435 (bswap rotatert splitter): Add splitter.
17436 (bswap splitter): Macroize splitter using any_rotate code iterator.
17437 Add insn predicate to split only for TARGET_USE_XCHGB or when
17438 optimizing function for size.
17440 2010-04-12 Steve Ellcey <sje@cup.hp.com>
17442 * config/pa/pa.c (emit_move_sequence): Remove use of
17443 deleted variable flag_argument_noalias.
17445 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17447 * config.gcc: Removed *-*-solaris2.7* from list of obsolete
17449 Add to unsupported targets list.
17450 * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
17451 sparc*-sun-solaris2.[567]* from target lists.
17452 * configure: Regenerate.
17453 * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
17455 Remove Solaris 7 patch references.
17456 (Specific, sparc-sun-solaris2.7): Removed.
17457 (sparc-sun-solaris2*): Update Solaris 7 example.
17458 (sparc64-*-solaris2*): Likewise.
17460 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17462 * config.build (alpha*-dec-osf4*): Remove.
17463 * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
17464 of obsolete configurations.
17465 (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
17467 * config/alpha/t-osf4: Renamed to ...
17468 * config/alpha/t-osf5: ... this.
17469 * config/alpha/osf.h: Renamed to ...
17470 * config/alpha/osf5.h: ... this.
17471 Merged old osf5.h contents.
17473 (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
17474 (EXTRA_SPECS): Removed.
17475 * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
17476 reflect removal of Tru64 UNIX V4.0/V5.0 support.
17479 2010-04-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17481 * doc/contrib.texi (Contributors, Rainer Orth): Update.
17483 2010-04-12 Kai Tietz <kai.tietz@onevision.com>
17486 * config/i386/i386.c (x86_this_parameter): Handle aggregate for
17487 __thiscall convention.
17489 2010-04-12 Steve Ellcey <sje@cup.hp.com>
17491 * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
17493 * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
17495 2010-04-12 Steve Ellcey <sje@cup.hp.com>
17497 * function.c (assign_parms_initialize_all): Add unused attribute
17500 2010-04-12 Richard Guenther <rguenther@suse.de>
17502 * gsstruct.def (GSS_CALL): New.
17503 * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
17504 * gimple.h: Include tree-ssa-alias.h.
17505 (struct gimple_statement_call): New.
17506 (union gimple_statement_struct_d): Add gimple_call member.
17507 (gimple_call_reset_alias_info): Declare.
17508 (gimple_call_use_set): New function.
17509 (gimple_call_clobber_set): Likewise.
17510 * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
17511 * gimple.c (gimple_call_reset_alias_info): New function.
17512 (gimple_build_call_1): Call it.
17513 * lto-streamer-in.c (input_gimple_stmt): Likewise.
17514 * tree-inline.c (remap_gimple_stmt): Likewise.
17515 (expand_call_inline): Remove callused handling.
17516 * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
17517 * tree-dfa.c (dump_variable): Likewise.
17518 * tree-parloops.c (parallelize_loops): Likewise.
17519 * tree-ssa.c (init_tree_ssa): Likewise.
17520 (delete_tree_ssa): Likewise.
17521 * tree-flow-inline.h (is_call_used): Remove.
17522 * tree-flow.h (struct gimple_df): Remove callused member.
17523 * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
17524 * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
17525 (ref_maybe_used_by_call_p_1): Simplify.
17526 (call_may_clobber_ref_p_1): Likewise.
17527 * tree-ssa-structalias.c (compute_points_to_sets): Set
17528 the call stmt used and clobbered sets.
17529 * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
17530 (find_tail_calls): Verify the tail call.
17532 2010-04-12 Richard Guenther <rguenther@suse.de>
17534 * ipa.c (cgraph_postorder): Adjust postorder to guarantee
17535 single-iteration always-inline inlining.
17536 * ipa-inline.c (cgraph_mark_inline): Do not return anything.
17537 (cgraph_decide_inlining): Do not handle always-inline specially.
17538 (try_inline): Remove always-inline cycle detection special case.
17539 Do not recurse on always-inlines.
17540 (cgraph_early_inlining): Do not iterate if not optimizing.
17541 (cgraph_gate_early_inlining): remove.
17542 (pass_early_inline): Run unconditionally.
17543 (gate_cgraph_decide_inlining): New function.
17544 (pass_ipa_inline): Use it. Do not run the IPA inliner if
17545 not inlining or optimizing.
17546 (cgraph_decide_inlining_of_small_functions): Also consider
17547 always-inline functions.
17548 (cgraph_default_inline_p): Return true for nodes which should
17549 disregard inline limits.
17550 (estimate_function_body_sizes): Assume zero size and time for
17551 nodes which are marked as disregarding inline limits.
17552 (cgraph_decide_recursive_inlining): Do not perform recursive
17553 inlining on always-inline nodes.
17555 2010-04-12 Jakub Jelinek <jakub@redhat.com>
17558 * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
17559 for exprs satisfying handled_component_p.
17561 2010-04-12 Eric Botcazou <ebotcazou@adacore.com>
17563 * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
17564 non-constant aggregate elements.
17566 * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
17567 is a real initialization.
17569 2010-04-12 Shujing Zhao <pearly.zhao@oracle.com>
17572 * c-decl.c (start_function): Move forward check for nested function.
17574 2010-04-11 Kaz Kojima <kkojima@gcc.gnu.org>
17576 * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
17577 * config/sh/sh.c: Include reload.h.
17578 (sh_legitimize_reload_address): New.
17579 * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
17580 sh_legitimize_reload_address.
17582 2010-04-11 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
17584 * config/sh/sh.md (*movqi_pop): New insn pattern.
17585 * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
17587 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
17589 * config/i386/i386.md (any_shiftrt): New code iterator.
17590 (shiftrt_insn): New code attribute.
17592 (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
17593 using any_shiftrt code iterator.
17594 (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
17595 *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
17596 (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
17597 pattern from corresponding peephole2 patterns.
17598 (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
17599 using any_shiftrt code iterator.
17600 (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
17601 (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
17602 (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
17603 (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
17604 *{ashr,lshr}<mode>3_cmp_zext.
17605 (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
17607 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
17609 * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
17611 (*lshr<mode>3_cconly): Ditto.
17613 2010-04-11 Uros Bizjak <ubizjak@gmail.com>
17615 * config/i386/i386.md (lshr<mode>3): Macroize expander from
17616 lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17617 (*lshr<mode>3_doubleword): New insn_and_split_pattern. Macroize
17618 pattern from *lshr{di,ti}3_1 and corresponding splitters using
17620 (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17621 from corresponding peephole2 patterns.
17622 (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
17623 *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
17624 and *lshrdi3_1_rex64 using SWI mode iterator.
17625 (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
17626 (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
17627 (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
17628 *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
17629 and *lshrdi3_cmp_rex64 using SWI mode iterator.
17630 (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
17631 (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
17632 *lshrdi3_one_bit_cconly_rex64. Macroize insn from
17633 *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
17636 2010-04-10 Uros Bizjak <ubizjak@gmail.com>
17638 * config/i386/i386.md (ashr<mode>3): Macroize expander from
17639 ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
17640 (*ashr<mode>3_doubleword): New insn_and_split_pattern. Macroize
17641 pattern from *ashr{di,ti}3_1 and corresponding splitters using
17643 (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
17644 from corresponding peephole2 patterns.
17645 (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
17646 (ashrsi3_cvt): Rename from ashrsi3_31.
17647 (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
17648 (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
17649 and x86_64_shift_adj_3 using SWI48 mode iterator.
17650 (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
17651 *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
17652 and *ashrdi3_1_rex64 using SWI mode iterator.
17653 (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
17654 (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
17655 (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
17656 *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
17657 and *ashrdi3_cmp_rex64 using SWI mode iterator.
17658 (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
17659 (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
17660 *ashrdi3_one_bit_cconly_rex64. Macroize insn from
17661 *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
17663 (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
17664 * config/i386/i386.c (ix86_split_ashr): Update for renamed
17665 x86_shift<mode>_adj_3 expanders.
17667 2010-04-10 Wei Guozhi <carrot@google.com>
17670 * config/arm/arm.c (arm_pic_static_addr): New function.
17671 (legitimize_pic_address): Call arm_pic_static_addr when it detects
17673 (arm_output_addr_const_extra): Output expression for new pattern.
17674 * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
17676 2010-04-10 Bernd Schmidt <bernds@codesourcery.com>
17678 * ira-costs.c (record_reg_classes): Ignore alternatives that are
17681 * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
17682 * web.c: Include "insn-config.h" and "recog.h".
17683 (union_match_dups): New function.
17684 (web_main): Call it.
17685 (union_defs): Don't try to recognize match_dups.
17687 * reload1.c (eliminate_regs_in_insn): Don't restore an operand
17688 if doing so would replace the entire pattern.
17690 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
17694 * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
17695 and splitter pattern. Change splitter operand 1 predicate to
17698 2010-04-09 Martin Jambor <mjambor@suse.cz>
17700 * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
17701 lattices are addresses of CONST_DECLs with the same initial value.
17702 (ipcp_print_all_lattices): Print values of CONST_DECLs.
17703 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
17705 2010-04-09 Eric Botcazou <ebotcazou@adacore.com>
17706 Bernd Schmidt <bernds@codesourcery.com>
17708 * loop-invariant.c (replace_uses): New static function.
17709 (move_invariant_reg): Use it to ensure we can replace the uses.
17711 2010-04-09 Hariharan Sandanagobalane <hariharan@picochip.com>
17713 * config/picochip/picochip.c (picochip_rtx_costs): Use correct
17715 (picochip_override_options): Enable section anchors only above -O1.
17716 (picochip_reorg): Fixed a couple of build warnings.
17718 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17720 * configure.ac (plugin -rdynamic test): Log result.
17721 * configure: Regenerate.
17722 * config/sol2.h (LINK_SPEC): Handle -rdynamic.
17723 (RDYNAMIC_SPEC): Define.
17724 * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
17726 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17728 * configure.ac: Determine Sun ld version numbers.
17729 (comdat_group): Restrict GNU ld version checks to gld.
17730 (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
17731 (enable_comdat): Support --enable-comdat.
17732 * configure: Regenerate.
17733 * doc/install.texi (Configuration): Document --enable-comdat.
17735 2010-04-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17737 * config/sparc/sol2-gld.h: Remove SPARC reference. Rename ...
17738 * config/sol2-gld.h: ... here.
17739 * config.gcc (sparc*-*-solaris2*): Reflect this.
17740 (i[34567]86-*-solaris2*): Use it.
17742 2010-04-09 Steve Ellcey <sje@cup.hp.com>
17744 * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
17746 (final_emit_insn_group_barriers): Remove unused variable prev_insn.
17748 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
17751 * diagnostic.c (diagnostic_initialize): Initialize
17752 some_warnings_are_errors.
17753 (diagnostic_finish): New.
17754 (diagnostic_action_after_output): Call it before exiting.
17755 (diagnostic_report_diagnostic): Do not print message here. Set
17756 some_warnings_are_errors.
17757 * diagnostic.h (diagnostic_context): Delete
17758 issue_warnings_are_errors_message. Add some_warnings_are_errors.
17759 (diagnostic_finish): Declare.
17760 * toplev.c (toplev_main): Call it before exit.
17762 2010-04-09 Jason Merrill <jason@redhat.com>
17765 * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
17766 for incomplete type.
17769 * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
17770 based on a warning flag.
17772 2010-04-09 Richard Guenther <rguenther@suse.de>
17774 * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
17776 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
17779 * varasm.c (default_assemble_visibility): Wrap vars that are
17780 set, but unused, by targets without GAS.
17781 * config/rs6000/rs6000.c (paired_emit_vector_compare):
17782 Remove set, but unused, vars.
17783 (rs6000_legitimize_tls_address): Likewise.
17784 (altivec_expand_dst_builtin): Likewise.
17785 * config/darwin.c (machopic_classify_symbol): Likewise.
17786 (machopic_indirection_name): Likewise.
17788 2010-04-09 Uros Bizjak <ubizjak@gmail.com>
17790 * config/i386/i386.md (DWI): New mode iterator.
17791 (S): New mode attribute.
17792 (shift_operand): Ditto.
17793 (shift_immediate_operand): Ditto.
17794 (ashl_input_operand): Ditto.
17795 (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
17796 using SDWIM mode iterator.
17797 (*ashl<mode>3_doubleword): New insn_and_split_pattern. Macroize
17798 pattern from *ashl{di,ti}3_1 and corresponding splitters using
17800 (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
17801 from corresponding peephole2 patterns.
17802 (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
17803 and x86_64_shift_adj_1 using SWI48 mode iterator.
17804 (x86_shift<mode>_adj_2): Ditto.
17805 (*ashldi3_1_rex64): Split TYPE_LEA pattern.
17806 (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
17807 using SWI48 mode iterator.
17808 (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
17809 *ashldi3_cmp_rex64 using SWI mode iterator.
17810 (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
17811 *ashldi3_cconly_rex64 using SWI mode iterator.
17812 * config/i386/i386.c (ix86_split_ashl): Update for renamed
17813 x86_shift<mode>_adj_{1,2}.
17814 (ix86_split_ashr): Ditto.
17815 (ix86_split_lshr): Ditto.
17817 2010-04-09 Richard Guenther <rguenther@suse.de>
17819 * target.h (builtin_conversion): Pass in input and output types.
17820 * targhooks.c (default_builtin_vectorized_conversion): Adjust.
17821 * targhooks.h (default_builtin_vectorized_conversion): Likewise.
17822 * tree-vect-stmts.c (vectorizable_conversion): Adjust.
17823 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
17825 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
17827 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
17829 2010-04-09 Richard Guenther <rguenther@suse.de>
17832 * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
17834 2010-04-09 Richard Guenther <rguenther@suse.de>
17836 * tree-vectorizer.h (struct _stmt_vec_info): Document
17837 that vectype is the type of the LHS.
17838 (supportable_widening_operation, supportable_narrowing_operation):
17839 Get both input and output vector types as arguments.
17840 (vect_is_simple_use_1): Declare.
17841 (get_same_sized_vectype): Likewise.
17842 * tree-vect-loop.c (vect_determine_vectorization_factor):
17843 Set STMT_VINFO_VECTYPE to the vector type of the def.
17844 (vectorizable_reduction): Adjust.
17845 * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
17846 Adjust. Specify the output vector type.
17847 (vect_pattern_recog_1): Adjust.
17848 * tree-vect-stmts.c (get_same_sized_vectype): New function.
17849 (vectorizable_call): Adjust.
17850 (vectorizable_conversion): Likewise.
17851 (vectorizable_operation): Likewise.
17852 (vectorizable_type_demotion): Likewise.
17853 (vectorizable_type_promotion): Likewise.
17854 (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
17856 (vect_is_simple_use_1): New function.
17857 (supportable_widening_operation): Get both input and output
17859 (supportable_narrowing_operation): Likewise.
17860 * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
17862 2010-04-09 Kai Tietz <kai.tietz@onevision.com>
17864 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
17865 __thiscall and _thiscall as predefined macros.
17866 * config/i386/i386.c (ix86_handle_cconv_attribute): Add
17867 thiscall attribute handling.
17868 (ix86_comp_type_attributes): Likewise.
17869 (ix86_function_regparm): Likewise.
17870 (ix86_return_pops_args): Likewise.
17871 (init_cumulative_args): Likewise.
17872 (find_drap_reg): Likewise.
17873 (ix86_static_chain): Likewise.
17874 (x86_this_parameter): Likewise.
17875 (x86_output_mi_thunk): Likewise.
17876 (ix86_attribute_table): Add description for thiscall attribute.
17877 * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
17878 * doc/extend.texi: Add documentation for thiscall.
17880 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
17883 * c.opt (Wint-to-pointer-cast): Available in C++.
17884 * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
17886 2010-04-08 Eric Botcazou <ebotcazou@adacore.com>
17888 * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
17889 * calls.c (expand_call): Pass the function type to aggregate_value_p.
17890 * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
17891 the target function of a CALL_EXPR. Honor TREE_ADDRESSABLE on the
17892 function type instead. Reorder and simplify checks.
17894 * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
17896 2010-04-08 Jing Yu <jingyu@google.com>
17897 Zdenek Dvorak <ook@ucw.cz>
17899 PR tree-optimization/42720
17900 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
17901 loop unswitch conditions here from ...
17902 (tree_unswitch_single_loop): ... here.
17904 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
17906 * tree-if-conv.c: Fix comments and simplify logic.
17908 2010-04-08 Sebastian Pop <sebastian.pop@amd.com>
17910 * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
17911 (tree_if_conversion): Same. Update call to if_convertible_loop_p.
17912 (main_tree_if_conversion): Update call to tree_if_conversion.
17914 2010-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
17917 * doc/invoke.texi (-b,-V): Delete.
17918 * doc/tm.texi: Do not mention -b.
17919 * gcc.c (display_help): Delete -b and -V.
17920 (process_command): Delete -b and -V.
17921 * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
17923 2010-04-08 Christian Borntraeger <borntraeger@de.ibm.com>
17924 Wolfgang Gellerich <gellerich@de.ibm.com>
17926 Implement target hook for loop unrolling
17927 * target.h (loop_unroll_adjust): Add a new target hook function.
17928 * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
17929 * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
17930 * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
17931 (s390_loop_unroll_adjust): Implement the new target hook for s390.
17932 * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
17934 (decide_unroll_stupid): Likewise.
17936 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17939 * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
17941 2010-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17943 * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
17944 (Specific, *-*-solaris2*): Likewise.
17945 Don't prefer Sun as over GNU as.
17947 2010-04-08 Wolfgang Gellerich <gellerich@de.ibm.com>
17949 * config/s390/s390.c (override_options): Adjust the z10 defaults
17950 for max-unroll-times, max-completely-peeled-insns
17951 and max-completely-peel-times.
17953 2010-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17955 * config/s390/s390.c (s390_expand_movmem): Issue prefetch
17956 instructions for z10.
17957 (s390_expand_setmem): Likewise.
17958 (s390_expand_cmpmem): Likewise.
17960 2010-04-08 Richard Guenther <rguenther@suse.de>
17962 PR tree-optimization/43679
17963 * tree-ssa-pre.c (eliminate): Only propagate copies.
17965 2010-04-08 Jakub Jelinek <jakub@redhat.com>
17968 * expr.c (block_move_libcall_safe_for_call_parm): Avoid
17969 set but not used variable warning.
17971 2010-04-08 Wei Guozhi <carrot@google.com>
17974 * config/arm/arm.c (thumb1_size_rtx_costs): New function.
17975 (arm_size_rtx_costs): Call the new function when optimized for size.
17977 2010-04-08 Jakub Jelinek <jakub@redhat.com>
17980 * cfgexpand.c (expand_debug_expr): If for non-NULL offset
17981 op0 is not a MEM, just return NULL instead of assertion
17983 (discover_nonconstant_array_refs): Don't walk debug stmts.
17985 2010-04-08 Doug Kwan <dougkwan@google.com>
17987 * configure.ac: Recognize gold and do not use its version number
17988 to test ld features.
17989 * configure: Regenerate.
17991 2010-04-08 Maxim Kuvyrkov <maxim@codesourcery.com>
17993 PR middle-end/40815
17994 * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
17995 (negate_value): Move code to push elements to broken_up_substracts ...
17996 (eliminate_plus_minus_pair): ... here. Push operands that have no
17997 negative pair to plus_negates.
17998 (repropagate_negates, init_reassoc, fini_reassoc): Update.
18000 2010-04-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18002 * doc/install.texi (Configuration): Move description of
18003 --enable-lto, --with-libelf*, --enable-gold from Java section to
18006 * doc/generic.texi (Working with declarations)
18007 (Function Properties, C and C++ Trees): Fix typos.
18008 * doc/sourcebuild.texi (Top Level): Likewise.
18010 2010-04-07 Jakub Jelinek <jakub@redhat.com>
18013 * tree.h (DECL_READ_P): Define.
18014 (struct tree_decl_common): Add decl_read_flag.
18015 * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
18016 a set but not used warning.
18017 (merge_decls): Merge DECL_READ_P flag.
18018 (finish_decl, build_compound_literal): Set DECL_READ_P flag.
18019 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
18020 * c-common.c (handle_used_attribute, handle_unused_attribute):
18022 * c-tree.h (default_function_array_read_conversion, mark_exp_read):
18024 * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
18026 (default_conversion, c_process_expr_stmt): Call mark_exp_read.
18027 * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
18028 c_parser_binary_expression, c_parser_cast_expression,
18029 c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
18030 Call default_function_array_read_conversion instead of
18031 default_function_array_conversion where needed.
18032 (c_parser_unary_expression, c_parser_conditional_expression,
18033 c_parser_postfix_expression_after_primary, c_parser_initelt):
18034 Likewise. Call mark_exp_read where needed.
18035 (c_parser_statement_after_labels, c_parser_asm_operands,
18036 c_parser_typeof_specifier, c_parser_sizeof_expression,
18037 c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
18039 * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
18041 * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
18042 (warn_unused_but_set_parameter): Default to warn_unused
18044 * doc/invoke.texi: Document -Wunused-but-set-variable and
18045 -Wunused-but-set-parameter.
18047 * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
18048 used count variable.
18049 * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
18050 when operandN variables aren't used in the body of the expander
18052 * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
18053 FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
18054 * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
18055 * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
18056 FOR_EACH_IMM_USE_ON_STMT): Likewise.
18057 * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
18058 * tree.c (PROCESS_ARG): Likewise.
18060 2010-04-07 Simon Baldwin <simonb@google.com>
18062 * diagnostic.h (diagnostic_override_option_index): New macro to
18063 set a diagnostic's option_index.
18064 * c-tree.h (c_cpp_error): Add warning reason argument.
18065 * opts.c (_warning_as_error_callback): New.
18066 (register_warning_as_error_callback): Store callback for
18067 warnings enabled via enable_warning_as_error.
18068 (enable_warning_as_error): Call callback, minor code tidy.
18069 * opts.h (register_warning_as_error_callback): Declare.
18070 * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
18071 response to -Werror=.
18072 (c_common_init_options): Register warning_as_error_callback in opts.c.
18073 * common.opt: Add -Wno-cpp option.
18074 * c-common.c (struct reason_option_codes_t): Map cpp warning
18075 reason codes to gcc option indexes.
18076 * (c_option_controlling_cpp_error): New function, lookup the gcc
18077 option index for a cpp warning reason code.
18078 * (c_cpp_error): Add warning reason argument, call
18079 c_option_controlling_cpp_error for diagnostic_override_option_index.
18080 * doc/invoke.texi: Document -Wno-cpp.
18082 2010-04-07 Richard Guenther <rguenther@suse.de>
18084 * ipa-reference.c (mark_load): Use get_base_address.
18085 (mark_store): Likewise.
18087 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
18088 inserting GIMPLE_NOPs into the IL.
18089 * tree-ssa-structalias.c (get_constraint_for_component_ref):
18090 Explicitly strip handled components and indirect references.
18092 * fold-const.c (fold_unary_loc): Do not strip qualifiers when
18093 folding address expressions.
18094 * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
18095 * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
18096 operand_equal_p to compare decls.
18097 (ptr_deref_may_alias_decl_p): Likewise.
18098 * tree-ssa-operands.c (get_asm_expr_operands): Simplify
18099 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
18100 Handle reversed comparison ops.
18101 * tree-sra.c (asm_visit_addr): Use get_base_address.
18102 * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
18103 * ipa-reference.c (mark_address): Use get_base_address.
18105 2010-04-07 Richard Guenther <rguenther@suse.de>
18107 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
18108 Propagate constants everywhere.
18110 2010-04-07 Jakub Jelinek <jakub@redhat.com>
18113 * tree.c (MAX_INT_CACHED_PREC): Define.
18114 (nonstandard_integer_type_cache): New array.
18115 (build_nonstandard_integer_type): Cache results for precision
18116 <= MAX_INT_CACHED_PREC.
18118 2010-04-07 Richard Guenther <rguenther@suse.de>
18120 * doc/invoke.texi (-fargument-alias, -fargument-noalias,
18121 -fargument-noalias-global, -fargument-noalias-anything): Remove.
18122 * common.opt: Likewise.
18123 * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
18124 * alias.c (base_alias_check): Remove flag_argument_noalias handling.
18125 (nonoverlapping_memrefs_p): Likewise.
18126 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18127 * opts.c (common_handle_option): Handle OPT_fargument_alias,
18128 OPT_fargument_noalias, OPT_fargument_noalias_anything and
18129 OPT_fargument_noalias_global for backward compatibility.
18131 2010-04-07 Richard Guenther <rguenther@suse.de>
18133 PR tree-optimization/43270
18134 * tree-vrp.c (check_array_ref): Fix flexible array member detection.
18135 * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
18136 * tree-ssa-pre.c (phi_translate_1): Adjust.
18137 (fully_constant_expression): Split out vn_reference handling to ...
18138 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
18139 Fold reads from constant strings.
18140 (vn_reference_lookup): Handle fully constant references.
18141 (vn_reference_lookup_pieces): Likewise.
18142 * Makefile.in (expmed.o-warn): Add -Wno-error.
18144 2010-04-07 Martin Jambor <mjambor@suse.cz>
18146 * tree-sra.c (find_param_candidates): Allow scalar va_list types.
18148 2010-04-07 Iain Sandoe <iains@gcc.gnu.org>
18151 * gcc.c: Add -static-libstdc++ to list of recognized options.
18153 2010-04-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18155 * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
18157 2010-04-07 Richard Guenther <rguenther@suse.de>
18159 PR middle-end/42617
18160 * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
18161 bases build simple mem attributes to retain points-to information.
18163 2010-04-07 Richard Guenther <rguenther@suse.de>
18165 PR middle-end/42617
18166 * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
18167 preserve points-to related information.
18169 2010-04-07 Richard Guenther <rguenther@suse.de>
18171 PR middle-end/42617
18172 * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
18173 discard plain indirect references.
18174 * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
18175 * tree.c (tree_nop_conversion): Likewise.
18177 2010-04-07 Dodji Seketeli <dodji@redhat.com>
18180 * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
18182 2010-04-06 Kai Tietz <kai.tietz@onevision.com>
18184 * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
18185 calling convention attributes on METHOD_TYPEs for w64 ABI, too.
18187 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
18189 * tree-if-conv.c: Fix indentation and comments.
18191 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
18193 * tree-if-conv.c: Sort static functions in topological order.
18195 2010-04-07 Sebastian Pop <sebastian.pop@amd.com>
18197 * tree-if-conv.c: Fix indentation and comments.
18199 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18201 PR middle-end/43519
18202 * graphite-clast-to-gimple.c (max_signed_precision_type): Use
18203 lang_hooks.types.type_for_size instead of
18204 build_nonstandard_integer_type.
18205 When converting an unsigned type to signed, double its precision.
18206 (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
18207 (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
18208 (graphite_create_new_loop_guard): When ub + 1 wraps around,
18211 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18213 PR middle-end/43519
18214 * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
18215 POINTER_PLUS_EXPR for pointer types.
18217 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18219 PR middle-end/43519
18220 * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
18221 * graphite-clast-to-gimple.c: Include langhooks.h.
18222 (max_signed_precision_type): New.
18223 (max_precision_type): Takes two types as arguments.
18224 (precision_for_value): New.
18225 (precision_for_interval): New.
18226 (gcc_type_for_interval): New.
18227 (gcc_type_for_value): New.
18228 (gcc_type_for_clast_term): New.
18229 (gcc_type_for_clast_red): New.
18230 (gcc_type_for_clast_bin): New.
18231 (gcc_type_for_clast_expr): Split up into several functions.
18232 (gcc_type_for_clast_eq): Rewritten.
18233 (compute_bounds_for_level): New.
18234 (compute_type_for_level_1): New.
18235 (compute_type_for_level): New.
18236 (gcc_type_for_cloog_iv): Removed.
18237 (gcc_type_for_iv_of_clast_loop): Rewritten.
18238 (graphite_create_new_loop): Compute the lower and upper bound types
18239 with gcc_type_for_clast_expr.
18240 (graphite_create_new_loop_guard): Same.
18241 (find_cloog_iv_in_expr): Removed.
18242 (compute_cloog_iv_types_1): Removed.
18243 (compute_cloog_iv_types): Removed.
18244 (gloog): Do not call compute_cloog_iv_types.
18245 * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
18246 GBB_CLOOG_IV_TYPES.
18247 (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
18248 * sese.h (struct gimple_bb): Removed field cloog_iv_types.
18249 (GBB_CLOOG_IV_TYPES): Removed.
18251 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18253 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
18254 gimple_phi_num_args of the loop close SSA phi node is equal to 1.
18255 (detect_commutative_reduction): Same.
18257 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18259 * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
18260 call to verify_ssa. Invoke verify_loop_closed_ssa with an extra
18262 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
18263 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
18264 (rewrite_commutative_reductions_out_of_ssa): Same.
18265 * passes.c (execute_function_todo): Call verify_ssa for every pass
18266 in the LNO. Invoke verify_loop_closed_ssa with an extra argument.
18267 * tree-flow.h (verify_loop_closed_ssa): Update declaration.
18268 * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
18269 with an extra argument.
18270 * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same. Call
18271 verify_ssa only when the extra argument is true.
18272 (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
18273 with an extra argument.
18274 (tree_transform_and_unroll_loop): Same.
18276 2010-04-06 Sebastian Pop <sebastian.pop@amd.com>
18278 * passes.c (execute_function_todo): Call verify_loop_closed_ssa
18279 for all the passes of the LNO having LOOP_CLOSED_SSA.
18280 * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
18281 * tree-loop-distribution.c (pass_loop_distribution): Same.
18282 * tree-pass.h (TODO_verify_loops): Removed.
18283 * tree-ssa-loop.c (pass_tree_loop_init): Same.
18285 (pass_tree_unswitch): Same.
18286 (pass_predcom): Same.
18287 (pass_vectorize): Same.
18288 (pass_linear_transform): Same.
18289 (pass_graphite_transforms): Same.
18290 (pass_iv_canon): Same.
18291 (pass_complete_unroll): Same.
18292 (pass_complete_unrolli): Same.
18293 (pass_parallelize_loops): Same.
18294 (pass_loop_prefetch): Same.
18295 (pass_iv_optimize): Same.
18297 2010-04-06 Changpeng Fang <changpeng.fang@amd.com>
18299 PR middle-end/32824
18300 * passes.c (init_optimization_passes): Move pass_lim before
18301 pass_copy_prop and pass_dce_loop.
18303 2010-04-06 Jakub Jelinek <jakub@redhat.com>
18306 * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
18307 instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
18308 (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
18309 MULTI_* defines for 4 argument vpermil2p* builtins.
18311 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
18313 * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
18314 * config/i386/i386.c (x86_maybe_negate_const_int): New.
18315 (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
18316 * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
18317 *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
18318 *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
18319 *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
18320 Use x86_maybe_negate_const_int to output insn mnemonic.
18321 (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow
18322 check from instruction predicate. Update comments.
18323 * config/i386/sync.md (sync_add<mode>): Use
18324 x86_maybe_negate_const_int to output insn mnemonic.
18326 2010-04-06 Jan Hubicka <jh@suse.cz>
18328 PR tree-optimization/42906
18329 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
18330 IGNORE_SELF argument. Set visited_control_parents for fully
18332 (find_obviously_necessary_stmts): Update call of
18333 mark_control_dependent_edges_necessary.
18334 (propagate_necessity): Likewise. Handle PHI edges more curefully.
18336 2010-04-06 Uros Bizjak <ubizjak@gmail.com>
18338 * config/i386/i386.md: Remove comment about 'e' and 'E'
18341 2010-04-06 Richard Guenther <rguenther@suse.de>
18343 PR tree-optimization/43627
18344 * tree-vrp.c (extract_range_from_unary_expr): Widenings
18345 of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
18348 2010-04-06 Jakub Jelinek <jakub@redhat.com>
18350 * BASE-VER: Change to 4.6.0.
18353 * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
18356 2010-04-06 Richard Guenther <rguenther@suse.de>
18358 PR middle-end/43661
18359 * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
18361 2010-04-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18363 * doc/invoke.texi (Optimize Options): Document that LTO
18364 won't remove object access purely due to incompatible
18367 2010-04-04 Matthias Klose <doko@ubuntu.com>
18369 * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
18370 Initialize variable.
18372 2010-04-03 Richard Guenther <rguenther@suse.de>
18374 PR middle-end/42509
18375 * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
18376 require a non-NULL MEM_OFFSET.
18378 2010-04-02 Steven Bosscher <steven@gcc.gnu.org>
18380 * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
18381 basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
18382 collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
18383 config/alpha/predicates.md, config/arm/arm.md,
18384 config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
18385 config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
18386 config/darwin9.h, config/darwin.c, config/darwin.h,
18387 config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
18388 config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
18389 config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
18390 config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
18391 config/mips/mips.md, config/mn10300/mn10300.c,
18392 config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
18393 config/rs6000/aix.h, config/rs6000/dfp.md,
18394 config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
18395 config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
18396 config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
18397 config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
18398 config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
18399 config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
18400 c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
18401 diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
18402 doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
18403 doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
18404 fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
18405 gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
18406 graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
18407 graphite-dependences.c, graphite-poly.c, graphite-poly.h,
18408 graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
18409 graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
18410 intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
18411 ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
18412 ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
18413 loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
18414 objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
18415 opt-functions.awk, opth-gen.awk, params.def, passes.c,
18416 postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
18417 rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
18418 store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
18419 tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
18420 tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
18421 tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
18422 tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
18423 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
18424 tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
18425 tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
18426 tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
18427 tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
18428 tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
18429 unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
18431 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18434 * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
18435 * aclocal.m4: Regenerate.
18437 2010-04-02 Richard Guenther <rguenther@suse.de>
18439 PR tree-optimization/43629
18440 * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
18441 if we have seen a constant value.
18443 2010-04-02 Joseph Myers <joseph@codesourcery.com>
18445 * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
18447 2010-04-02 Richard Earnshaw <rearnsha@arm.com>
18450 * arm.c (legitimize_tls_address): Adjust call to
18451 gen_tls_load_dot_plus_four.
18452 (arm_note_pic_base): New function.
18453 (arm_cannot_copy_insn_p): Use it.
18454 * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
18457 2010-04-02 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18462 2009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18464 * Makefile.in ($(out_object_file)): Depend on
18465 gt-$(basename $(notdir $(out_file))).h.
18467 2010-04-01 Ralf Corsépius <ralf.corsepius@rtems.org>
18469 * config.gcc (lm32-*-rtems*): Add t-lm32.
18471 2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
18473 * config.gcc: Add lm32-*-rtems*.
18474 * config/lm32/rtems.h: New file.
18476 2010-04-01 Dave Korn <dave.korn.cygwin@gmail.com>
18479 * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
18481 2010-04-01 Jakub Jelinek <jakub@redhat.com>
18483 * dwarf2out.c (output_compilation_unit_header): For
18484 -gdwarf-4 use version 4 instead of version 3.
18485 (output_line_info): For version 4 and above emit additional
18486 maximum ops per insn header field.
18487 (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
18489 * dwarf2out.c (is_c_family, is_java): Remove.
18490 (lower_bound_default): New function.
18491 (add_bound_info, gen_descr_array_type_die): Use it.
18493 2010-04-01 Dodji Seketeli <dodji@redhat.com>
18496 * dwarf2out.c (gen_variable_die): Allow debug info for variable
18497 re-declaration when it happens in a function.
18499 2010-04-01 Aldy Hernandez <aldyh@redhat.com>
18501 * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
18502 (cgraph_remove_function_insertion_hook): Same.
18503 (cgraph_call_function_insertion_hooks): Same.
18505 2010-04-01 Richard Guenther <rguenther@suse.de>
18507 PR middle-end/43614
18508 * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
18509 and TREE_THIS_VOLATILE.
18510 (copy_ref_info): Likewise.
18511 * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
18512 * tree.c (build6_stat): Ignore side-effects of all but arg5
18513 for TARGET_MEM_REF. Set TREE_THIS_VOLATILE from arg5 of
18516 2010-04-01 Richard Guenther <rguenther@suse.de>
18518 PR tree-optimization/43607
18519 * ipa-type-escape.c (check_call): Do not access non-existing
18522 2010-04-01 Richard Guenther <rguenther@suse.de>
18524 PR middle-end/43602
18526 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
18527 Jack Howarth <howarth@bromo.med.uc.edu>
18529 * tree-profile.c (tree_init_ic_make_global_vars): Make static
18532 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18534 * doc/install.texi (Prerequisites): Document libelf usability on
18535 IRIX 5/6 and Solaris 2.
18536 (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
18537 Update GNU as, GNU ld requirements.
18538 (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
18539 Document Sun Studio compiler download.
18540 Update and simplify as, ld recommendations.
18541 (Specific, *-*-solaris2.7): Note obsoletion, removal.
18543 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18545 * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
18546 with_tune_32 to pentium4.
18548 2010-04-01 Uros Bizjak <ubizjak@gmail.com>
18550 * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
18552 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18554 * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
18555 obsoletion, removal.
18557 Document GNU as requirement.
18558 Update configure requirements.
18559 (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
18560 Recomment IRIX 6.5.18+.
18561 Document IDF/IDL requirement.
18562 Document GNU as requirement.
18563 Document GNU ld bootstrap failure.
18564 Remove freeware.sgi.com reference.
18566 2010-04-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18568 * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
18569 UNIX V4.0, V5.0 obsoletion, removal.
18570 Remove --with-gc=simple reference.
18571 Update VM requirements during bootstrap.
18572 Remove -oldas bootstrap description.
18573 Update binutils reference.
18574 Remove comparison failure note.
18576 2010-03-31 Richard Guenther <rguenther@suse.de>
18577 Zdenek Dvorak <ook@ucw.cz>
18578 Sebastian Pop <sebastian.pop@amd.com>
18580 PR middle-end/43464
18581 * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
18582 with multiple arguments.
18583 (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
18585 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
18587 * graphite-dependences.c (print_pddr): Call print_pdr with an
18589 * graphite-poly.c (debug_pdr): Add an extra argument for the
18592 (print_pbb_domain): Same.
18594 (print_scop_context): Same.
18595 (print_scop): Same.
18596 (print_cloog): Same.
18597 (debug_pbb_domain): Same.
18599 (print_pdrs): Same.
18600 (debug_pdrs): Same.
18601 (debug_scop_context): Same.
18602 (debug_scop): Same.
18603 (debug_cloog): Same.
18604 (print_scop_params): Same.
18605 (debug_scop_params): Same.
18606 (print_iteration_domain): Same.
18607 (print_iteration_domains): Same.
18608 (debug_iteration_domain): Same.
18609 (debug_iteration_domains): Same.
18610 (print_scattering_function): Same.
18611 (print_scattering_functions): Same.
18612 (debug_scattering_function): Same.
18613 (debug_scattering_functions): Same.
18614 * graphite-poly.h (debug_pdr): Update declaration.
18616 (print_pbb_domain): Same.
18618 (print_scop_context): Same.
18619 (print_scop): Same.
18620 (print_cloog): Same.
18621 (debug_pbb_domain): Same.
18623 (print_pdrs): Same.
18624 (debug_pdrs): Same.
18625 (debug_scop_context): Same.
18626 (debug_scop): Same.
18627 (debug_cloog): Same.
18628 (print_scop_params): Same.
18629 (debug_scop_params): Same.
18630 (print_iteration_domain): Same.
18631 (print_iteration_domains): Same.
18632 (debug_iteration_domain): Same.
18633 (debug_iteration_domains): Same.
18634 (print_scattering_function): Same.
18635 (print_scattering_functions): Same.
18636 (debug_scattering_function): Same.
18637 (debug_scattering_functions): Same.
18639 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
18641 * graphite-poly.c (print_scattering_function_1): New.
18642 (print_scattering_function): Call it.
18643 (print_scop_params): Remove spaces at the end of lines.
18644 (print_cloog): New.
18645 (debug_cloog): New.
18646 * graphite-poly.h (print_cloog): Declared.
18647 (debug_cloog): Declared.
18649 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
18651 * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
18653 * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
18654 * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
18655 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
18656 to switch between adding the IV bump in loop->latch or in loop->header.
18658 2010-03-31 Sebastian Pop <sebastian.pop@amd.com>
18660 * graphite-poly.c (print_scattering_function): Pretty print following
18661 the scoplib format.
18663 (print_pbb_domain): Same.
18664 (dump_gbb_cases): Same.
18665 (dump_gbb_conditions): Same.
18666 (print_pdrs): Same.
18668 (print_scop_params): Same.
18669 (print_scop_context): Same.
18670 (print_scop): Same.
18671 (print_pbb_body): New.
18672 (lst_indent_to): New.
18673 (print_lst): Start new lines with a #.
18674 * graphite-poly.h (pbb_bb): New.
18675 (pbb_index): Use pbb_bb.
18676 * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
18678 * tree-data-ref.c (dump_data_reference): Start new lines with a #.
18680 2010-03-31 Jakub Jelinek <jakub@redhat.com>
18682 * dwarf2out.c (size_of_die): For -gdwarf-4 use
18683 uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
18684 and 0 instead of 1 for dw_val_class_flag.
18685 (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
18686 dw_val_class_range_list, dw_val_class_loc_list,
18687 dw_val_class_lineptr and dw_val_class_macptr, use
18688 DW_FORM_flag_present for dw_val_class_flag and
18689 DW_FORM_exprloc for dw_val_class_loc.
18690 (output_die): For -gdwarf-4 print dw_val_class_loc
18691 size as uleb128 instead of 1 or 2 bytes and don't print
18692 anything for dw_val_class_flag.
18694 * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
18695 instead of cselib_lookup following by tweaking locs->setting_insn.
18698 * cselib.c (cselib_process_insn): Clear cselib_current_insn
18699 even before returning from label, setjmp call or volatile asm
18702 2010-03-31 Richard Guenther <rguenther@suse.de>
18704 PR middle-end/43600
18705 * cgraphunit.c (cgraph_output_in_order): Do not allocate
18706 temporary data on stack.
18708 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18710 * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
18711 (PUSHSECTION_ASM_OP): Remove.
18712 (POPSECTION_ASM_OP): Remove.
18713 (PUSHSECTION_FORMAT): Remove.
18714 * config/sol2.h (PUSHSECTION_FORMAT): Define.
18715 * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
18716 * config/sol2.c (solaris_output_init_fini): Use it.
18718 2010-03-31 Jie Zhang <jie@codesourcery.com>
18721 * opt-functions.awk (var_type_struct): Use signed char type
18722 for simple variables.
18724 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18726 * config/sol2.c: Include output.h.
18727 (solaris_assemble_visibility): New function.
18728 * config/t-sol2 (sol2.o): Add output.h dependency.
18729 * config/sol2-protos.h (solaris_assemble_visibility): Declare.
18730 * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
18733 2010-03-31 Jakub Jelinek <jakub@redhat.com>
18736 * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
18737 V2SImode or XFmode on PRE_DEC.
18740 * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
18743 2010-03-31 Jie Zhang <jie@codesourcery.com>
18746 * reload.h (caller_save_initialized_p): Declare.
18747 * toplev.c (backend_init_target): Don't call
18748 init_caller_save but set caller_save_initialized_p to false.
18749 * caller-save.c (caller_save_initialized_p): Define.
18750 (init_caller_save): Check caller_save_initialized_p.
18751 * ira.c (ira): Call init_caller_save if flag_caller_saves.
18753 2010-03-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18756 * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
18757 and soft-fp/t-softfp to tmake_file.
18758 * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
18759 (LIBGCC2_TF_CEXT): Define.
18762 2010-03-30 Alexandre Oliva <aoliva@redhat.com>
18765 * cselib.c (n_useless_values): Document handling of debug locs.
18766 (n_useless_debug_values, n_debug_values): New variables.
18767 (new_elt_loc_list): Don't add to debug values, keep count.
18768 (promote_debug_loc): New.
18769 (cselib_reset_table): Zero new variables.
18770 (entry_and_rtx_equal_p): Promote debug locs.
18771 (discard_useless_locs): Increment n_useless_debug_values for
18773 (remove_useless_values): Adjust n_useless_values and n_debug_values
18774 with n_useless_debug_values.
18775 (add_mem_for_addr): Promote debug locs.
18776 (cselib_lookup_mem): Likewise.
18777 (cselib_lookup_addr): Renamed to...
18778 (cselib_lookup_addr_1): ... this. Promote debug locs. Don't call...
18779 (cselib_log_lookup): ... this. Turn into...
18780 (cselib_lookup_addr): ... new wrapper.
18781 (cselib_lookup_from_insn): New.
18782 (cselib_invalidate_regno): Increment n_useless_debug_values for
18784 (cselib_invalidate_mem): Likewise.
18785 (cselib_process_insn): Take n_deleted and n_debug_values into
18786 account to guard remove_useless_value call.
18787 (cselib_finish): Zero n_useless_debug_values.
18788 * cselib.h (cselib_lookup_from_insn): Declare.
18789 * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
18790 (sched_analyze_2): Likewise.
18792 2010-03-30 Jakub Jelinek <jakub@redhat.com>
18794 * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
18796 (adjust_mems): Replace narrowing SUBREG of expression containing
18797 just PLUS, MINUS, MULT and ASHIFT of registers and constants
18798 with operations in the narrower mode.
18801 * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
18802 regs_invalidated_by_call instead all call_used_reg_set registers.
18804 2010-03-30 Sebastian Pop <sebastian.pop@amd.com>
18806 PR middle-end/43430
18807 * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
18808 pointer comparisons with types_compatible_p.
18809 * tree-vect-stmts.c (vectorizable_call): Same.
18810 (vectorizable_condition): Same.
18812 2010-03-30 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18814 * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
18815 stack check if the mask would be zero.
18817 2010-03-30 Seongbae Park <seongbae.park@gmail.com>
18818 Jack Howarth <howarth@bromo.med.uc.edu>
18820 * tree-profile.c (tree_init_ic_make_global_vars): Make static
18823 2010-03-30 Joseph Myers <joseph@codesourcery.com>
18826 * libgcc-std.ver (GCC_4.5.0): Define version. Include __unordxf2
18828 * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
18829 Include ___unordxf2 and ___unordtf2.
18830 * config/i386/libgcc-glibc.ver: Do not define inheritance from
18833 2010-03-30 Tarik Graba <tarik.graba@telecom-paristech.fr>
18835 * config/lm32/t-lm32: New file.
18836 * config.gcc: Use the above file when targetting lm32.
18838 2010-03-28 Duncan Sands <baldrick@free.fr>
18840 * Makefile.in (PLUGIN_HEADERS): Add except.h.
18842 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
18844 PR middle-end/43431
18845 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
18846 Improve vectorization cost model diagnostic.
18848 2010-03-29 Sebastian Pop <sebastian.pop@amd.com>
18850 PR middle-end/43436
18851 * tree-vect-data-refs.c (vect_analyze_data_refs): When
18852 compute_data_dependences_for_loop returns false, early exit
18853 and output an extra diagnostic for the failed data reference
18856 2010-03-29 Richard Guenther <rguenther@suse.de>
18858 PR tree-optimization/43560
18859 * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
18860 (can_sm_ref_p): Treat stores to readonly locations as trapping.
18862 2010-03-29 Jie Zhang <jie@codesourcery.com>
18865 * toplev.c (process_options): Set optimization_default_node
18866 and optimization_current_node.
18867 * opts.c (decode_options): Don't set optimization_default_node
18868 and optimization_current_node.
18870 2010-03-29 Ralf Corsépius <ralf.corsepius@rtems.org>
18872 * config/rtems.h: Abandon -qrtems_debug.
18874 2010-03-28 Jan Hubicka <jh@suse.cz>
18876 PR tree-optimization/43505
18877 * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
18878 map should not be copied.
18880 2010-03-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18882 PR middle-end/41674
18883 * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
18884 cdtors, set DECL_PRESERVE_P.
18885 * ipa.c (cgraph_externally_visible_p): Return true if declaration
18886 should be preseved.
18888 2010-03-27 Uros Bizjak <ubizjak@gmail.com>
18890 PR tree-optimization/43528
18891 * stor-layout.c (place_field): Check that constant fits into
18892 unsigned HWI when skipping calculation of MS bitfield layout.
18894 2010-03-27 Jan Hubicka <jh@suse.cz>
18896 PR middle-end/43391
18897 * varasm.c (make_decl_rtl): Deal with COMMON flag to make
18898 notice_global_symbol work.
18900 2010-03-27 Jakub Jelinek <jakub@redhat.com>
18902 * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
18903 instead of dwarf2out_decl.
18904 (struct var_loc_node): Remove section_label field.
18905 (dwarf2out_function_decl): New function.
18906 (dwarf2out_var_location): Don't set section_label field.
18907 (dwarf2out_begin_function): Don't empty decl_loc_table here.
18909 2010-03-26 Michael Meissner <meissner@linux.vnet.ibm.com>
18911 PR tree-optimization/43544
18912 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
18913 First argument for builtin vectorized function hook is now a
18914 tree to be able to distinguish between machine specific and
18916 * targhooks.c (default_builtin_vectorized_function): Ditto.
18917 * targhooks.h (default_builtin_vectorized_function): Ditto.
18918 * target.h (struct gcc_target): Ditto.
18919 * tree-vect-stmts.c (vectorizable_function): Ditto.
18920 * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
18921 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
18924 2010-03-26 Joseph Myers <joseph@codesourcery.com>
18927 * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
18928 nested binding iff it is a FUNCTION_DECL.
18929 (store_parm_decls_newstyle): Pass nested=true to bind for
18930 FUNCTION_DECLs amongst parameters.
18932 2010-03-26 Jakub Jelinek <jakub@redhat.com>
18934 * var-tracking.c (vt_expand_loc_callback): Don't run
18935 cselib_expand_value_rtx_cb in dummy mode if
18936 cselib_dummy_expand_value_rtx_cb returned false.
18938 * var-tracking.c (emit_note_insn_var_location): For one part
18939 notes with offset 0, don't add EXPR_LIST around the location.
18940 * dwarf2out.c (loc_descriptor, dw_loc_list_1,
18941 add_location_or_const_value_attribute): Adjust for that change.
18944 * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
18945 into first operand and location into second.
18946 (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
18947 dw_cfi_oprnd_loc for DW_CFA_expression.
18948 (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
18949 (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
18950 assume first argument is regnum and second argument is location.
18952 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
18955 * config/alpha/alpha.md (*cmp_sadd_si): Change mode
18956 of scratch register to DImode. Split to DImode comparison operator.
18957 Use SImode subreg of scratch register in the multiplication.
18958 (*cmp_sadd_sidi): Ditto.
18959 (*cmp_ssub_si): Ditto.
18960 (*cmp_ssub_sidi): Ditto.
18962 2010-03-26 Uros Bizjak <ubizjak@gmail.com>
18965 * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
18966 Remove invalid assert and wrong comment.
18968 2010-03-26 Jakub Jelinek <jakub@redhat.com>
18971 * flags.h (final_insns_dump_p): New extern.
18972 * final.c (final_insns_dump_p): New variable.
18973 (rest_of_clean_state): Set it before -fdump-final-insns=
18974 dumping, clear afterwards.
18975 * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
18976 MEM_ALIAS_SET on MEMs.
18978 2010-03-26 David S. Miller <davem@davemloft.net>
18980 * configure.ac: Fix sparc GOTDATA_OP bug check.
18981 * configure: Rebuild.
18983 2010-03-26 Alan Modra <amodra@gmail.com>
18985 * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
18987 2010-03-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18989 * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
18990 TLS_SECTION_ASM_FLAG.
18992 2010-03-25 Jakub Jelinek <jakub@redhat.com>
18995 * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
18996 Clear first_function_block_is_cold.
18999 * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
19000 argument if the argument is truth_value_p.
19002 2010-03-24 Michael Meissner <meissner@linux.vnet.ibm.com>
19004 * config/rs6000/constraints.md: Update copyright year for my changes.
19007 * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
19008 used in reg+reg addressing, swap registers.
19010 2010-03-24 Jakub Jelinek <jakub@redhat.com>
19013 * target.h (struct gcc_target): Add code_end hook.
19014 * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
19015 if not yet defined.
19016 (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
19017 * toplev.c (compile_file): Call targetm.asm_out.code_end
19018 hook before unwind info/debug info output.
19019 * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
19020 * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
19021 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19022 * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
19023 (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
19024 * config/i386/i386.c (ix86_file_end): Renamed to...
19025 (ix86_code_end): ... this. Make static. Don't call
19026 file_end_indicate_exec_stack. Emit unwind info using
19027 final_start_function/final_end_function.
19028 (darwin_x86_file_end): Remove.
19029 (TARGET_ASM_CODE_END): Define.
19030 * config/i386/i386.h (TARGET_ASM_FILE_END,
19031 NEED_INDICATE_EXEC_STACK): Don't define.
19032 * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
19033 (TARGET_ASM_FILE_END): Define to darwin_file_end.
19034 * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
19035 * doc/tm.texi (TARGET_ASM_CODE_END): Document.
19038 * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
19039 at the beginning and final_end_function at the end.
19040 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
19042 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19044 * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
19045 and Sun as TLS syntax.
19046 (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
19047 * configure: Regenerate.
19048 * config.in: Regenerate.
19049 * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
19050 (default_elf_asm_named_section): Use it.
19051 * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
19052 (i386_output_dwarf_dtprel): Likewise.
19053 (output_addr_const_extra): Likewise.
19054 (output_pic_addr_const): Lowercase @GOTTPOFF.
19055 (output_addr_const_extra): Likewise.
19056 (output_pic_addr_const): Lowercase @GOTNTPOFF.
19057 (output_addr_const_extra): Likewise.
19058 (output_pic_addr_const): Lowercase @INDNTPOFF.
19059 (output_addr_const_extra): Likewise.
19060 (output_pic_addr_const): Lowercase @NTPOFF.
19061 (output_addr_const_extra): Likewise.
19062 (output_pic_addr_const): Lowercase @TPOFF.
19063 (output_addr_const_extra): Likewise.
19064 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
19065 (*tls_global_dynamic_64): Likewise.
19066 (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
19067 (*tls_local_dynamic_base_64): Lowercase @TLSLD.
19069 * defaults.h (TLS_COMMON_ASM_OP): Provide default.
19070 (ASM_OUTPUT_TLS_COMMON): Use it.
19071 * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
19074 * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
19075 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
19076 * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
19077 * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
19078 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19079 (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
19081 2010-03-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19083 * config/i386/i386.c (override_options): Don't accept
19084 -mtls-dialect=sun any longer.
19085 * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
19086 * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
19087 (*tls_local_dynamic_base_32_sun): Likewise.
19088 * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
19090 2010-03-24 Jakub Jelinek <jakub@redhat.com>
19093 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
19094 VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
19097 * ira.c (adjust_cleared_regs): New function.
19098 (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
19102 * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
19104 * expr.c (expand_expr_real): Restore previous
19105 curr_insn_source_location and curr_insn_block after
19106 expand_expr_real_1 call.
19107 (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
19108 instead of expand_expr_real_1.
19110 2010-03-23 Vladimir Makarov <vmakarov@redhat.com>
19112 PR rtl-optimization/43413
19113 * ira-color.c (setup_allocno_available_regs_num): Count prohibited
19116 2010-03-22 James E. Wilson <wilson@codesourcery.com>
19119 * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
19120 call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
19122 2010-03-22 H.J. Lu <hongjiu.lu@intel.com>
19124 * config/i386/i386.c (ix86_target_string): Add -mfma.
19125 Fix a typo in comment.
19127 2010-03-22 Mike Stump <mikestump@comcast.net>
19130 * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
19131 Don't overly align based upon packed packed fields.
19133 2010-03-22 Jason Merrill <jason@redhat.com>
19135 * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
19136 Use () rather than [], and move before the element type.
19138 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19140 * doc/configfiles.texi (Configuration Files): Removed
19141 fixinc/Makefile*, intl/Makefile.*.
19142 * doc/makefile.texi: Fixed markup. Abstract from version
19143 control system used.
19144 (Makefile): Removed obsolete gcc/java/parse.y example.
19145 * doc/sourcebuild.texi: Likewise.
19146 (Top Level): Added config, gnattools, libdecnumber, libgcc,
19147 libgomp, libssp. Removed fastjar.
19148 (Miscellaneous Docs): Clarify location.
19149 Added COPYING3, COPYING3.LIB.
19150 (Front End Directory): Moved Make-lang.in entry to new subsubsection.
19152 2010-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19155 * config/i386/i386.c (x86_function_profiler)
19156 [!NO_PROFILE_COUNTERS]: Fix typo.
19157 * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
19160 2010-03-22 Janis Johnson <janis187@us.ibm.com>
19161 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19163 * doc/sourcebuild.texi (Test Directives): Split into six
19164 subsections, with most of the current text in new subsections
19165 Directives, Selectors, and Final Actions.
19166 (Directives): Split list of test directives into multiple
19168 (Selectors): Describe use and syntax of selectors.
19169 (Effective-Target Keywords): Describe all existing keywords.
19170 (Add Options): Describe features for dg-add-options.
19171 (Require Support): Describe variants of dg-require-support.
19172 (Final Actions): Describe commands to use in dg-final.
19174 2010-03-22 Michael Matz <matz@suse.de>
19176 PR middle-end/43475
19177 * recog.c (validate_replace_rtx_group): Replace also in
19178 REG_EQUAL and REG_EQUIV notes.
19180 2010-03-22 Richard Guenther <rguenther@suse.de>
19182 PR tree-optimization/43390
19183 * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
19184 sure vector extracts are type correct.
19186 2010-03-22 Richard Guenther <rguenther@suse.de>
19188 PR middle-end/40106
19189 * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
19190 x * sqrt (x) even when optimizing for size if the target
19191 has native support for sqrt.
19193 2010-03-22 Jakub Jelinek <jakub@redhat.com>
19195 * varasm.c (make_decl_rtl_for_debug): Also clear
19196 flag_mudflap for the duration of make_decl_rtl call.
19199 * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
19200 locs from preserved VALUEs.
19202 2010-03-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19204 PR middle-end/42718
19205 * pa.md (movmemsi): Set align to one if zero.
19206 (movmemdi): Likewise.
19208 2010-03-21 Richard Earnshaw <rearnsha@arm.com>
19211 * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
19212 with their corresponding prologue pushes.
19214 2010-03-20 Andrew Pinski <pinskia@gmail.com>
19217 * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
19218 at the begining or end.
19219 (spu_expand_epilogue): Likewise.
19221 2010-03-20 Richard Guenther <rguenther@suse.de>
19223 PR rtl-optimization/43438
19224 * combine.c (make_extraction): Properly zero-/sign-extend an
19225 extraction of the low part of a CONST_INT. Also handle
19228 2010-03-19 Mike Stump <mikestump@comcast.net>
19230 * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
19231 * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
19232 (override_options): Use SUBTARGET32_DEFAULT_CPU.
19234 2010-03-19 Andrew Pinski <andrew_pinski@caviumnetworks.com>
19237 * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
19240 2010-03-19 Bernd Schmidt <bernds@codesourcery.com>
19242 PR rtl-optimization/42258
19243 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
19244 use that may match DEF.
19247 * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
19248 the cost of loading the constant rather than assuming
19250 * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
19251 outer code is AND, do the same tests as the andsi3 expander and
19252 return COSTS_N_INSNS (1) if and is cheap.
19254 * optabs.c (avoid_expensive_constant): Fix formatting.
19256 2010-03-19 Michael Matz <matz@suse.de>
19259 * attribs.c (decl_attributes): When rebuilding a function pointer
19260 type use the same qualifiers as the original pointer type.
19262 2010-03-19 Martin Jambor <mjambor@suse.cz>
19264 * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
19265 and is_gimple_ip_invariant_address.
19267 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19270 2009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19272 * config/arm/arm.c (arm_override_options): Turn off
19273 flag_dwarf2_cfi_asm for AAPCS variants.
19275 2010-03-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19278 * config/arm/arm.c (emit_multi_reg_push): Update comments.
19279 Use PRE_MODIFY instead of PRE_DEC.
19280 (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
19281 (vfp_emit_fstmd): Likewise.
19283 2010-03-19 Michael Matz <matz@suse.de>
19286 * builtins.c (expand_builtin_interclass_mathfn,
19287 expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
19290 2010-03-19 Richard Guenther <rguenther@suse.de>
19292 PR tree-optimization/43415
19293 * tree-ssa-pre.c (phi_translate): Split out worker to ...
19294 (phi_translate_1): ... this.
19295 (phi_translate): Move all caching here. Cache all NARY
19296 and REFERENCE translations.
19298 2010-03-19 David S. Miller <davem@davemloft.net>
19300 With help from Eric Botcazou.
19301 * config/sparc/sparc.c: Include dwarf2out.h.
19302 (emit_pic_helper): Delete.
19303 (pic_helper_symbol_name): Delete.
19304 (pic_helper_emitted_p): Delete.
19305 (pic_helper_needed): New.
19306 (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
19307 (get_pc_thunk_name): New.
19308 (load_pic_register): Remove 'delay_pic_helper' arg. Use
19309 get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
19310 Set pic_helper_needed to true. Don't call emit_pic_helper.
19311 (sparc_expand_prologue): Update load_pic_register call.
19312 (sparc_output_mi_thunk): Likewise.
19313 (sparc_file_end): Emit a hidden comdat symbol for the PIC
19314 thunk if possible. Output CFI information as needed.
19316 2010-03-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
19317 Jack Howarth <howarth@bromo.med.uc.edu>
19320 * config/i386/i386.h: Fix ABI on darwin x86-32.
19322 2010-03-18 Aldy Hernandez <aldyh@redhat.com>
19324 * tree.h: Declare make_decl_rtl_for_debug.
19325 * varasm.c (make_decl_rtl_for_debug): New.
19326 * dwarf2out.c (rtl_for_decl_location): Call it.
19327 * cfgexpand.c (expand_debug_expr): Call it.
19329 2010-03-18 Jakub Jelinek <jakub@redhat.com>
19332 * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
19336 * var-tracking.c (vt_init_cfa_base): Do nothing if
19337 cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
19339 2010-03-18 Alexandre Oliva <aoliva@redhat.com>
19342 * var-tracking.c (canonicalize_vars_star): New.
19343 (dataflow_post_merge_adjust): Use it.
19345 2010-03-18 Jakub Jelinek <jakub@redhat.com>
19348 * var-tracking.c (non_suitable_const): New function.
19349 (add_uses): For DEBUG_INSNs with constants, don't record any
19350 value, instead just the constant value itself.
19351 (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
19352 is not VAR_LOC_UNKNOWN_P, set var to the constant.
19353 (emit_notes_in_bb): Likewise.
19354 (emit_note_insn_var_location): For onepart variables if
19355 cur_loc is a VOIDmode constant, use DECL_MODE.
19357 2010-03-18 Martin Jambor <mjambor@suse.cz>
19359 PR middle-end/42450
19360 * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
19361 * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
19362 all non-clones. Moved call redirection...
19363 (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
19364 (cgraph_materialize_all_clones): Dispose of all
19365 combined_args_to_skip bitmaps.
19366 (verify_cgraph_node): Do not check for edges pointing to wrong
19367 nodes in inline clones.
19368 * tree-inline.c (copy_bb): Call
19369 cgraph_redirect_edge_call_stmt_to_callee.
19370 * ipa.c (cgraph_remove_unreachable_nodes): Call
19371 cgraph_node_remove_callees even when there are used clones.
19373 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
19375 * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
19377 2010-03-18 H.J. Lu <hongjiu.lu@intel.com>
19380 * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
19383 2010-03-18 Michael Matz <matz@suse.de>
19385 PR middle-end/43419
19386 * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
19387 into sqrt(x) if we need to preserve signed zeros.
19389 2010-03-18 Steven Bosscher <steven@gcc.gnu.org>
19390 Eric Botcazou <ebotcazou@adacore.com>
19392 PR rtl-optimization/43360
19393 * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
19394 note if we don't know its invariant status.
19396 2010-03-18 Michael Matz <matz@suse.de>
19398 PR tree-optimization/43402
19399 * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
19400 PHI chains of ssa names registered for update.
19402 2010-03-17 Peter Bergner <bergner@vnet.ibm.com>
19405 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
19406 non-offsettable and pre_modify update addressing.
19407 * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
19408 and "2" alternatives "#".
19409 (*movdd_softfloat32): Make all alternatives "#";
19410 * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
19411 (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
19412 (*movdf_softfloat32): Make all alternatives "#";
19413 (movdi): Use the new DIFD mode iterator to create a common splitter
19414 for movdi, movdf and movdd patterns.
19416 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
19418 * common.opt (dumpdir): Remove redundant tab.
19420 2010-03-17 Martin Jambor <mjambor@suse.cz>
19422 PR tree-optimization/43347
19423 * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
19424 original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
19426 2010-03-17 Bernd Schmidt <bernd.schmidt@analog.com>
19428 PR rtl-optimization/42216
19429 * regrename.c (create_new_chain): New function, broken out from...
19430 (scan_rtx_reg): ... here. Call it. Handle the case where we are
19431 appending a use to an empty chain.
19432 (build_def_use): Remove previous changes that convert OP_INOUT to
19433 OP_OUT operands; instead detect the case where an OP_INOUT operand
19434 uses a previously untracked register and create an empty chain for it.
19436 2010-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
19438 * doc/extend.texi (Function Attributes): Rewrite unfinished
19439 sentence in ms_abi documentation.
19441 2010-03-17 Alan Modra <amodra@gmail.com>
19443 * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
19444 * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
19445 (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
19446 * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
19448 2010-03-16 Richard Henderson <rth@redhat.com>
19450 PR middle-end/43365
19451 * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
19452 (lower_try_finally): Save and restore eh_seq around the expansion
19453 of the try-finally.
19455 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
19457 * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
19458 statements before splitting block.
19460 2010-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19462 * doc/sourcebuild.texi (Testsuites): Fix markup.
19463 Use pathnames relative to gcc/testsuite.
19464 (Test Directives): Move description of how timeout is determined.
19465 (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
19466 (C Tests): Correct gcc.misc-tests directory.
19467 Framework tests now live in gcc.test-framework.
19469 2010-03-16 Richard Guenther <rguenther@suse.de>
19471 PR middle-end/43379
19472 * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
19473 operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
19475 2010-03-16 Aldy Hernandez <aldyh@redhat.com>
19476 Alexandre Oliva <aoliva@redhat.com>
19478 PR tree-optimization/42917
19479 * lambda-code.c (remove_iv): Skip debug statements.
19480 (lambda_loopnest_to_gcc_loopnest): Likewise.
19481 (not_interesting_stmt): Debug statements are not interesting.
19483 2010-03-16 Jakub Jelinek <jakub@redhat.com>
19487 * cselib.c (cselib_preserve_constants,
19488 cfa_base_preserved_val): New static variables.
19489 (preserve_only_constants): New function.
19490 (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
19491 clear its REG_VALUES. If cselib_preserve_constants, don't
19492 empty the whole hash table, but preserve there VALUEs with constants,
19493 cfa_base_preserved_val and cfa_base_preserved_val plus constant.
19494 (cselib_preserve_cfa_base_value): New function.
19495 (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
19496 (cselib_init): Change argument to int bitfield. Set
19497 cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
19499 (cselib_finish): Clear cselib_preserve_constants and
19500 cfa_base_preserved_val.
19501 * cselib.h (enum cselib_record_what): New enum.
19502 (cselib_init): Change argument to int.
19503 (cselib_preserve_cfa_base_value): New prototype.
19504 * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
19505 * dse.c (dse_step1): Likewise.
19506 * cfgcleanup.c (thread_jump): Likewise.
19507 * sched-deps.c (sched_analyze): Likewise.
19508 * gcse.c (local_cprop_pass): Likewise.
19509 * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
19510 If FN is non-NULL, call the callback always and whenever it returns
19511 non-NULL just return that. Only do rtx_equal_p if FN is NULL.
19512 * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
19513 * combine.c (propagate_for_debug_subst): Add old_rtx argument,
19514 compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
19515 * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
19516 * var-tracking.c: Include recog.h.
19517 (bb_stack_adjust_offset): Remove.
19518 (vt_stack_adjustments): Don't call it, instead just gather the
19519 adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
19520 (adjust_stack_reference): Remove.
19521 (compute_cfa_pointer): New function.
19522 (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
19523 (struct adjust_mem_data): New type.
19524 (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
19526 (get_address_mode): New function.
19527 (replace_expr_with_values): Use it.
19528 (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
19529 Use get_address_mode. For cfa_base_rtx return MO_CLOBBER.
19530 (adjust_sets): Remove.
19531 (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
19532 Use get_address_mode.
19533 (get_adjusted_src): Remove.
19534 (add_stores): Don't call it. Never reuse expr SET. Don't add extra
19535 MO_VAL_USE for cfa_base_rtx plus constant. Use get_address_mode.
19536 (add_with_sets): Don't call adjust_sets.
19537 (fp_setter, vt_init_cfa_base): New functions.
19538 (vt_initialize): Change return type to bool. Move most of pool etc.
19539 initialization to the beginning of the function from end. Pass
19540 CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
19541 If !frame_pointer_needed, call vt_stack_adjustment before mos
19542 vector is filled, call vt_init_cfa_base if argp/framep has been
19543 eliminated to sp. If frame_pointer_needed and argp/framep has
19544 been eliminated to hard frame pointer, set
19545 hard_frame_pointer_adjustment and call vt_init_cfa_base after
19546 encountering fp setter in the prologue. For MO_ADJUST, call
19547 log_op_type before pusing the op into mos vector, not afterwards.
19548 Call adjust_insn before cselib_process_insn/add_with_sets,
19549 call cancel_changes (0) afterwards.
19550 (variable_tracking_main_1): Adjust for vt_initialize calling
19551 vt_stack_adjustments and returning whether it succeeded or not.
19553 2010-03-15 Aldy Hernandez <aldyh@redhat.com>
19555 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
19558 2010-03-15 Jakub Jelinek <jakub@redhat.com>
19560 * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
19562 (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
19563 drap_reg has not been set.
19565 2010-03-15 Michael Matz <matz@suse.de>
19567 PR middle-end/43300
19568 * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
19569 use it to expand block copies.
19570 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
19571 insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
19572 (insert_value_copy_on_edge): Use store_expr for BLKmode values.
19574 2010-03-15 Richard Guenther <rguenther@suse.de>
19576 PR tree-optimization/43367
19577 * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
19580 2010-03-15 Richard Guenther <rguenther@suse.de>
19582 PR tree-optimization/43317
19583 * ipa-struct-reorg.c (create_new_general_access): Update stmt.
19585 2010-03-15 Martin Jambor <mjambor@suse.cz>
19587 PR tree-optimization/43141
19588 * tree-sra.c (create_abstract_origin): New function.
19589 (modify_function): Call create_abstract_origin.
19591 2010-03-15 Chris Demetriou <cgd@google.com>
19593 * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
19596 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19598 PR middle-end/43354
19599 * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
19600 call insert_out_of_ssa_copy for default definitions.
19602 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19604 * graphite-clast-to-gimple.c (my_long_long): Defined.
19605 (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
19606 * graphite-sese-to-poly.c (my_long_long): Defined.
19607 (scop_ivs_can_be_represented): Use it.
19609 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19611 * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
19612 graphite-max-bbs-per-function, and loop-block-tile-size.
19613 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
19615 (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
19617 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19619 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
19620 forward declaration.
19621 * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
19622 (add_upper_bounds_from_estimated_nit): New.
19623 (build_loop_iteration_domains): Use it.
19625 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19627 * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
19629 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19631 PR middle-end/43306
19632 * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
19633 should be an INTEGER_CST. Also handle CASE_CONVERT.
19635 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19637 * graphite.c (graphite_initialize): To bound the number of bbs per
19638 function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
19639 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
19640 * doc/invoke.texi: Document it.
19642 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19644 * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
19645 * graphite-sese-to-poly.h (build_poly_scop): Same.
19647 2010-03-13 Sebastian Pop <sebastian.pop@amd.com>
19649 * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
19650 the number of parameters in the scop. Use as an upper bound
19651 PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
19652 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
19653 * doc/invoke.texi: Document it.
19655 2010-03-13 Jerry Quinn <jlquinn@optonline.net>
19657 * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
19658 * doc/c-tree.texi: Remove.
19659 * doc/generic.texi: Merge c-tree.texi here.
19660 * doc/gccint.texi (Trees): Remove menu entry.
19661 (c-tree.texi): Remove @include.
19662 * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
19663 * doc/languages.texi (Reading RTL): Ditto.
19665 2010-03-12 Steve Ellcey <sje@cup.hp.com>
19668 * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
19670 2010-03-12 Michael Meissner <meissner@linux.vnet.ibm.com>
19672 PR middle-end/42431
19673 * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
19674 code added to work around reload clobbering CONST insns.
19676 2010-03-12 Jakub Jelinek <jakub@redhat.com>
19678 * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
19679 (cselib_preserve_definitely, cselib_clear_preserve): Remove.
19680 (cselib_preserve_only_values): Remove retain argument, don't
19681 traverse hash table with cselib_{preserve_definitely,clear_preserve}.
19682 * cselib.h (cselib_preserve_only_values): Remove retain argument.
19683 * var-tracking.c (micro_operation): Move insn field before union.
19684 Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
19685 (struct variable_tracking_info_def): Remove n_mos field, change
19686 mos into a vector of micro_operations.
19687 (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
19688 (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
19689 compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
19690 changing into a vector.
19691 (add_with_sets): Likewise. Ensure MO_VAL_USE uops from add_stores
19692 come before all other uops generated by add_stores.
19693 (vt_add_function_parameters): Adjust for cselib_preserve_only_values
19695 (vt_initialize): Likewise. Adjust for VTI (bb)->mos changing into
19696 a vector. Run just one pass over the bbs instead of separate counting
19697 and computation phase.
19698 (vt_finalize): Free VTI (bb)->mos vector instead of array.
19701 * tree-inline.c (remap_decls): Put old_var rather than origin_var
19702 into *nonlocalized_list vector.
19703 * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
19704 even if origin is non-NULL.
19705 (gen_variable_die): Likewise.
19706 (process_scope_var): Don't change origin.
19707 (gen_decl_die): Likewise.
19708 * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
19709 before adding new edges instead of after it, fix moving over
19712 2010-03-11 David S. Miller <davem@davemloft.net>
19714 * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
19716 * configure: Rebuild.
19718 2010-03-11 Martin Jambor <mjambor@suse.cz>
19720 PR tree-optimization/43257
19721 * tree.c (assign_assembler_name_if_neeeded): New function.
19722 (free_lang_data_in_cgraph): Assembler name assignment moved to the
19723 above new function.
19724 * tree.h (assign_assembler_name_if_neeeded): Declare.
19725 * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
19726 the function if needed.
19728 2010-03-11 Chris Demetriou <cgd@google.com>
19730 * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
19731 include/stdint-gcc.h, and include/stdint.h world-readable.
19733 2010-03-11 Richard Guenther <rguenther@suse.de>
19735 PR tree-optimization/43255
19736 * tree-vrp.c (process_assert_insertions_for): Do not insert
19737 asserts for trivial conditions.
19739 2010-03-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19741 PR tree-optimization/43280
19742 * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
19743 generation. Move calculation of size out of the if branch.
19744 (find_bswap): Modify compare number generation.
19746 2010-03-11 Richard Guenther <rguenther@suse.de>
19749 * lto-streamer-in.c (maybe_fixup_decls): Simplify.
19750 (input_gimple_stmt): Fixup handled component types during
19751 operand read. Also fix up decls in ADDR_EXPRs.
19753 2010-03-10 Eric Botcazou <ebotcazou@adacore.com>
19755 * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
19756 * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
19758 2010-03-10 Jan Hubicka <jh@suse.cz>
19761 * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
19762 * varasm.c (get_variable_section): Don't do that here...
19763 (make_decl_rtl): ... and here.
19764 (do_assemble_alias): Produce decl RTL.
19765 (assemble_alias): Likewise.
19767 2010-03-10 Jakub Jelinek <jakub@redhat.com>
19770 * reg-notes.def (REG_CFA_SET_VDRAP): New note.
19771 * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
19773 (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
19774 (based_loc_descr): Only express drap or vdrap regno based expressions
19775 using DW_OP_fbreg when not optimizing.
19776 * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
19777 make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
19778 REG_CFA_SET_VDRAP note.
19780 2010-03-10 Alexander Monakov <amonakov@ispras.ru>
19782 PR tree-optimization/43236
19783 * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
19784 error in calculation of base address in reverse iteration case.
19785 (generate_builtin): Take number of latch executions if the statement
19788 2010-03-10 Andrey Belevantsev <abel@ispras.ru>
19790 PR middle-end/42859
19791 * tree-eh.c: Include pointer-set.h.
19792 (lower_eh_dispatch): Filter out duplicate case labels and
19793 remove the unneeded edge when the label is unused. Return
19794 true when some edges are removed.
19795 (execute_lower_eh_dispatch): When any lowering resulted in
19796 removing an edge, also delete unreachable blocks.
19798 2010-03-10 Jakub Jelinek <jakub@redhat.com>
19801 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
19802 UNSPEC_MACHOPIC_OFFSET.
19804 2010-03-09 Andreas Schwab <schwab@linux-m68k.org>
19807 * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
19808 (m68k_delegitimize_address): New function.
19810 2010-03-09 Jakub Jelinek <jakub@redhat.com>
19813 * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
19816 * var-tracking.c (adjust_sets): New function.
19817 (count_with_sets, add_with_sets): Use it.
19818 (get_adjusted_src): New inline function.
19819 (add_stores): Use it.
19822 * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
19823 call cselib_dummy_expand_value_rtx_cb instead of
19824 cselib_expand_value_rtx_cb.
19827 * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
19828 * config/i386/i386.c: Include debug.h and dwarf2out.h.
19829 (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
19830 and .cfi_endproc around the pic thunks.
19831 (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
19832 all queued unwind info register saves are saved before the call.
19833 For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
19834 considered as sp-=4 for unwind info and the pop as sp+=4 which
19835 also clobbers dest, but doesn't actually restore it.
19838 * config/i386/i386.c (ix86_get_drap_rtx): Don't set
19839 RTX_FRAME_RELATED_P.
19841 2010-03-09 Jie Zhang <jie@codesourcery.com>
19843 * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
19844 whitespaces in output template.
19846 2010-03-09 Jie Zhang <jie@codesourcery.com>
19848 * ira-lives.c (check_and_make_def_use_conflict): Don't fall
19849 out array boundary.
19851 2010-03-08 Jakub Jelinek <jakub@redhat.com>
19853 * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
19854 builtins.exp in a separate job.
19856 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19858 * graphite-sese-to-poly.c (add_param_constraints): Use
19859 lower_bound_in_type and upper_bound_in_type.
19861 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19863 * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
19864 instead of unsigned_type_node.
19866 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19867 Reza Yazdani <reza.yazdani@amd.com>
19869 PR middle-end/43065
19870 * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
19871 on pointer type parameters.
19873 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
19875 PR middle-end/42644
19876 PR middle-end/42130
19877 * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
19878 handle conversions from pointer to integers.
19879 (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
19880 induction variable, to be able to work with code generated by CLooG.
19881 * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
19882 (build_poly_scop): Bail out if we cannot codegen a loop.
19884 2010-03-08 Tobias Grosser <grosser@fim.uni-passau.de>
19886 * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
19887 code generation with gloog_error.
19889 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19891 * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
19892 Call fold_convert on all the returned values.
19893 (expand_scalar_variables_expr): Pass to
19894 expand_scalar_variables_ssa_name the type of the resulting expression.
19896 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19898 * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
19899 ppl_min_for_le_pointset.
19900 Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
19901 * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
19903 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19905 * graphite-dependences.c (map_into_dep_poly): Removed.
19906 (dependence_polyhedron_1): Use combine_context_id_scat.
19908 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19910 * graphite-poly.h (struct poly_scattering): Add layout documentation.
19911 (struct poly_bb): Same.
19912 (combine_context_id_scat): New.
19914 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19916 PR middle-end/42326
19917 * sese.c (name_defined_in_loop_p): Return false for default
19920 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19922 * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
19923 and clean up the logic.
19925 2010-03-08 Sebastian Pop <sebastian.pop@amd.com>
19927 * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
19930 2010-03-08 Jakub Jelinek <jakub@redhat.com>
19932 * var-tracking.c (remove_cselib_value_chains): Define only for
19934 (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
19935 delete_slot_part, emit_notes_for_differences_1): Don't call
19936 remove_cselib_value_chains here.
19937 (set_slot_part, emit_notes_for_differences_2): Don't call
19938 add_cselib_value_chains here.
19939 (preserved_values): New vector.
19940 (preserve_value): New function.
19941 (add_uses, add_stores, vt_add_function_parameters): Use it
19942 instead of cselib_preserve_value.
19943 (changed_values_stack): New vector.
19944 (check_changed_vars_0): New function.
19945 (check_changed_vars_1, check_changed_vars_2): Use it.
19946 (emit_notes_for_changes): Call set_dv_changed (*, false) on all
19947 changed_values_stack VALUEs.
19948 (vt_emit_notes): For all preserved_values call
19949 add_cselib_value_chains. If ENABLE_CHECKING call
19950 remove_cselib_value_chains before verifying value_chains is empty.
19951 Initialize and free changed_values_stack.
19952 (vt_initialize): Initialize preserved_values.
19953 (vt_finalize): Free preserved_values.
19955 2010-03-08 Richard Guenther <rguenther@suse.de>
19957 PR tree-optimization/43269
19958 * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
19961 2010-03-08 Martin Jambor <mjambor@suse.cz>
19963 * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
19964 (ipa_is_param_called): Removed.
19965 * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
19966 (ipa_print_node_params): Do not print the called flag.
19967 (ipa_write_node_info): Do not stream the called flag.
19968 (ipa_read_node_info): Likewise.
19970 2010-03-07 Jakub Jelinek <jakub@redhat.com>
19973 * Makefile.in (var-tracking.o): Depend on pointer-set.h.
19974 * cselib.c (struct expand_value_data): Add dummy field.
19975 (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
19977 (cselib_dummy_expand_value_rtx_cb): New function.
19978 (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
19980 * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
19981 * var-tracking.c: Include pointer-set.h.
19982 (variable): Change n_var_parts to char from int. Add
19983 cur_loc_changed and in_changed_variables fields.
19984 (variable_canonicalize): Remove.
19985 (shared_var_p): New inline function.
19986 (unshare_variable): Maintain cur_loc_changed and
19987 in_changed_variables fields. If var was in changed_variables,
19988 replace it there with new_var. Just copy cur_loc instead of
19989 resetting it to something else.
19990 (variable_union): Don't recompute cur_loc. Use shared_var_p.
19991 (dataflow_set_union): Don't call variable_canonicalize.
19992 (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
19993 of their DEBUG_EXPR_TREE_DECLs.
19994 (canonicalize_loc_order_check): Verify that cur_loc is NULL
19995 and in_changed_variables and cur_loc_changed is false.
19996 (variable_merge_over_cur): Clear cur_loc, in_changed_variables
19997 and cur_loc_changed. Don't update cur_loc here.
19998 (variable_merge_over_src): Don't call variable_canonicalize.
19999 (dataflow_set_preserve_mem_locs): Use shared_var_p. When
20000 removing loc that is equal to cur_loc, clear cur_loc,
20001 set cur_loc_changed and ensure variable_was_changed is called.
20002 (dataflow_set_remove_mem_locs): Use shared_var_p. Only
20003 compare pointers in cur_loc check, if it is equal to loc,
20004 clear cur_loc and set cur_loc_changed. Don't recompute cur_loc here.
20005 (variable_different_p): Remove compare_current_location argument,
20006 don't compare cur_loc.
20007 (dataflow_set_different_1): Adjust variable_different_p caller.
20008 (variable_was_changed): If dv had some var in changed_variables
20009 already, reset in_changed_variables flag for it and propagate
20010 cur_loc_changed over to the new variable. On empty var
20011 always set cur_loc_changed. Set in_changed_variables on whatever
20012 var is added to changed_variables.
20013 (set_slot_part): Clear cur_loc_changed and in_changed_variables.
20014 Use shared_var_p. When removing loc that is equal to cur_loc,
20015 clear cur_loc and set cur_loc_changed. If cur_loc is NULL at the
20016 end, don't set it to something else, just call variable_was_changed.
20017 (delete_slot_part): Use shared_var_p. When cur_loc equals to
20018 loc being removed, clear cur_loc and set cur_loc_changed.
20019 Set cur_loc_changed if all locations have been removed.
20020 (struct expand_loc_callback_data): New type.
20021 (vt_expand_loc_callback): Add dummy mode in which no rtxes are
20022 allocated. Always create SUBREGs if simplify_subreg failed.
20023 Prefer to use cur_loc, when that fails and still in
20024 changed_variables (and seen first time) recompute it. Set
20025 cur_loc_changed of variables which had to change cur_loc and
20026 compute elcd->cur_loc_changed if any of the subexpressions used
20027 had to change cur_loc.
20028 (vt_expand_loc): Adjust to pass arguments in
20029 expand_loc_callback_data structure.
20030 (vt_expand_loc_dummy): New function.
20031 (emitted_notes): New variable.
20032 (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
20033 that weren't used for any other decl in current
20034 emit_notes_for_changes call call vt_expand_loc_dummy to update
20035 cur_loc. For -fno-var-tracking-assignments, set cur_loc to
20036 first loc_chain location if NULL before. Always use just
20037 cur_loc instead of first loc_chain location. When cur_loc_changed
20038 is false, when not --enable-checking=rtl just don't emit any note.
20039 When rtl checking, compute the note and assert it is the same
20040 as previous note. Clear cur_loc_changed and in_changed_variables
20041 at the end before removing from changed_variables.
20042 (check_changed_vars_3): New function.
20043 (emit_notes_for_changes): Traverse changed_vars to call
20044 check_changed_vars_3 on each changed var.
20045 (emit_notes_for_differences_1): Clear cur_loc_changed and
20046 in_changed_variables. Recompute cur_loc of new_var.
20047 (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
20048 (vt_emit_notes): Initialize and destroy emitted_notes.
20050 2010-03-07 Bernd Schmidt <bernd.schmidt@analog.com>
20052 PR rtl-optimization/42220
20053 * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
20054 Use verify_reg_tracked to determine if we should use OP_OUT rather
20056 (build_def_use): If we see an in-out operand for a register that we
20057 know nothing about, treat is an output if possible, fail the block if
20060 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
20063 * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
20066 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
20069 * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
20070 uses of relevant DEFs that are dead outside the loop too.
20072 2010-03-06 Alexandre Oliva <aoliva@redhat.com>
20074 * var-tracking.c (dataflow_set_merge): Swap src and src2.
20076 2010-01-13 Jakub Jelinek <jakub@redhat.com>
20078 * var-tracking.c (values_to_unmark): New variable.
20079 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
20080 values_to_unmark vector. Moved body to...
20081 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
20082 instead queue it into values_to_unmark vector.
20083 (vt_find_locations): Free values_to_unmark vector.
20085 2010-03-05 Eric Botcazou <ebotcazou@adacore.com>
20087 * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
20088 (site.exp): Export them when plugins are enabled.
20090 2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
20092 PR middle-end/42326
20093 * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
20094 that contain scevs.
20095 (chrec_fold_multiply): Same.
20097 2010-03-04 Andrew Pinski <andrew_pinski@caviumnetworks.com>
20100 * c-decl.c (build_compound_literal): Return early if init is
20101 an error_mark_node.
20103 2010-03-04 Martin Jambor <mjambor@suse.cz>
20105 PR tree-optimization/43164
20106 PR tree-optimization/43191
20107 * tree-sra.c (type_consists_of_records_p): Reject records with
20108 zero-size bit-fields at the end.
20110 2010-03-04 Mike Stump <mikestump@comcast.net>
20112 * Makefile.in (TAGS): Remove *.y.
20114 2010-03-04 Richard Guenther <rguenther@suse.de>
20116 PR tree-optimization/40761
20117 * tree-ssa-pre.c (compute_antic): Walk reverse postorder
20119 (my_rev_post_order_compute): New function.
20120 (init_pre): Call it.
20122 2010-03-04 Changpeng Fang <changpeng.fang@amd.com>
20124 PR middle-end/43209
20125 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
20126 decrease the cost of an IV candidate when the cost is infinite.
20128 2010-03-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20130 * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
20131 Use '3DNow!' for the extension of that name, ensure normal space
20133 * doc/invoke.texi (i386 and x86-64 Options): Likewise.
20135 2010-03-03 Jeff Law <law@redhat.com>
20137 * PR middle-end/32693
20138 * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
20139 than gen_rtx_SUBREG.
20140 (extract_bit_field_1): Likewise.
20142 2010-03-03 Janis Johnson <janis187@us.ibm.com>
20144 * doc/sourcebuild.texi (Test directives): Document that arguments
20145 include-opts and exclude-opts are now optional for dg-skip-if,
20146 dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
20148 2010-03-03 Jason Merrill <jason@redhat.com>
20151 * cgraph.h (varpool_node): Add extra_name field.
20152 * varpool.c (varpool_extra_name_alias): New.
20153 (varpool_assemble_decl): Emit extra name aliases.
20154 (varpool_mark_needed_node): Look past an extra name alias.
20155 * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
20156 * lto-streamer-in.c (lto_input_tree): Read it.
20157 * lto-streamer-out.c (output_unreferenced_globals): Write it.
20159 2010-03-03 Eric Botcazou <ebotcazou@adacore.com>
20161 * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
20162 (sparc*-*-solaris2*): ...this.
20164 2010-03-03 Jakub Jelinek <jakub@redhat.com>
20167 * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
20168 WIDEN_MULT_EXPR and WIDEN_SUM_EXPR. Return NULL without
20169 ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
20170 FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
20173 * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
20174 fallthrough to default handling, just with want_address 0 instead of 2.
20175 For single element lists, add_AT_loc directly, otherwise create an
20176 artificial variable DIE and stick location list to it.
20179 * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
20180 (VAL_EXPR_HAS_REVERSE): Define.
20181 (reverse_op): New function.
20182 (add_stores): For reversible operations add an extra MO_VAL_USE.
20184 2010-03-02 Jason Merrill <jason@redhat.com>
20186 * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
20188 2010-03-02 Eric Botcazou <ebotcazou@adacore.com>
20190 * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
20191 (sparc64-*-linux*): Likewise.
20192 (sparc64-*-solaris2*): Include assembler files before linker ones.
20193 (sparc-*-solaris2*): Simplify and reorder to match previous case.
20194 * config/sparc/gas.h: Delete.
20195 * config/sparc/sol2-64.h: Add copyright notice.
20196 * config/sparc/sol2-gas-bi.h: Likewise.
20197 * config/sparc/sol2-gld.h: Likewise.
20198 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
20199 * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
20200 * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
20201 * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
20202 (sparc_elf_asm_named_section): Rename into...
20203 (sparc_solaris_elf_asm_named_section): ...this. Always define.
20205 2010-03-02 Uros Bizjak <ubizjak@gmail.com>
20207 * config/alpha/alpha.c (override_options): Fix -mtune error message.
20209 2010-03-02 Jeff Law <law@redhat.com>
20211 PR middle-end/42431
20212 * reload1.c (rtx_p, substitute_stack): Declare.
20213 (substitute): Record addresses of changed rtxs.
20214 (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
20215 Restore the original rtx when complete.
20216 (reload): Free subsitute_stack when complete.
20218 2010-03-02 Janis Johnson <janis187@us.ibm.com>
20220 * doc/gccint.texi (menu): Add Testsuites as a chapter.
20221 * doc/sourcebuild.texi (Testsuites): Move up a level to be a
20223 (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
20224 LTO Testing, gcov Testing, profopt Testing, compat Testing,
20225 Torture Tests): Change from subsection to section.
20227 2010-03-02 Jakub Jelinek <jakub@redhat.com>
20228 Steven Bosscher <steven@gcc.gnu.org>
20230 * var-tracking.c (vt_initialize): Scan insns in ebb chunks
20233 2010-03-02 Reza Yazdani <reza.yazdani@amd.com>
20235 PR middle-end/42640
20236 * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
20237 the assignment from the new induction variable to the assignment
20238 of the value from the original loop PHI function.
20240 2010-03-01 Janis Johnson <janis187@us.ibm.com>
20241 Daniel Jacobowitz <dan@codesourcery.com>
20243 * doc/sourcebuild.texi (Test directives): Clarify options to
20246 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20248 * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
20249 Disable cfi directives unless GCC and gas agree on using read-only
20250 .eh_frame sections for 64-bit.
20251 * configure: Regenerate.
20253 2010-03-01 Richard Guenther <rguenther@suse.de>
20255 PR tree-optimization/43220
20256 * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
20257 BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
20259 2010-03-01 Richard Guenther <rguenther@suse.de>
20260 Martin Jambor <mjambor@suse.cz>
20262 PR middle-end/41250
20263 * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
20264 gimplified parameters.
20266 2010-03-01 Christian Bruel <christian.bruel@st.com>
20268 * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
20270 2010-03-01 H.J. Lu <hongjiu.lu@intel.com>
20272 * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
20274 2010-03-01 Richard Guenther <rguenther@suse.de>
20276 PR middle-end/43213
20277 * expr.c (expand_assignment): Use the alias-oracle to tell
20278 if the rhs aliases the result decl.
20280 2010-03-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20283 * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
20284 to sol_gt_pch_get_address.
20285 (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
20286 64-bit, SPARC and x86.
20287 (sol_gt_pch_get_address): New function.
20289 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
20291 * toplev.h (inform_n, error_n): Declare.
20292 * diagnostic.c (inform_n, error_n): New function.
20294 2010-03-01 Jakub Jelinek <jakub@redhat.com>
20296 * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
20297 has no rtl yet when processing local_decls, queue it and recheck
20298 if deferred stack allocation hasn't assigned it rtl.
20300 2010-02-28 Kaz Kojima <kkojima@gcc.gnu.org>
20302 * config/sh/sh.c (unspec_bbr_uid): New.
20303 (gen_block_redirect): Use it instead of INSN_UID.
20304 (gen_far_branch): Likewise.
20306 2010-02-28 H.J. Lu <hongjiu.lu@intel.com>
20308 * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
20309 it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
20311 2010-02-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
20313 * doc/invoke.texi (Warning Options, RX Options): Fix typos.
20314 (Warning Options): -Wno-conversion-null is valid for
20315 Objective-C++ as well.
20316 * doc/tm.texi (Named Address Spaces): Likewise.
20317 * doc/plugins.texi (Plugins): Replace TABs with spaces.
20318 * doc/tree-ssa.texi (Tree SSA): Likewise.
20320 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
20323 * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
20324 by default. Don't set the default arch for
20325 i[34567]86-*-darwin*|x86_64-*-darwin*.
20327 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
20330 * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
20331 default. Set the default 32bit/64bit archs with $with_arch
20332 instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
20334 2010-02-27 Richard Guenther <rguenther@suse.de>
20336 PR tree-optimization/43186
20337 * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
20338 * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
20339 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
20340 unroller iterations.
20342 2010-02-27 H.J. Lu <hongjiu.lu@intel.com>
20344 * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
20345 required and i[34567]86-*-* targets don't support 64bit ISA.
20347 2010-02-26 Eric Botcazou <ebotcazou@adacore.com>
20350 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
20351 the same alias set.
20353 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
20355 * config.gcc: Set the default arch at least to Prescott for
20356 i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
20357 if SSE math is enabled.
20359 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
20361 * diagnostic.c (diagnostic_initialize): Update.
20362 (diagnostic_report_diagnostic): Test inhibit_notes_p for
20364 * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
20365 (diagnostic_inhibit_notes): New.
20366 * toplev.c (process_options): inhibit notes with -fcompare-debug.
20368 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
20371 * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
20372 * doc/standards.texi: Likewise.
20373 * doc/extend.texi: Likewise.
20374 * doc/trouble.texi: Likewise.
20375 * doc/cppopts.texi: Likewise.
20376 * doc/install.texi: Likewise.
20377 * c.opt (std=c90,std=gnu90): New options.
20378 * c-opts.c (c_common_handle_option): Handle them.
20380 2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
20383 * c-decl.c (undeclared_variable): Use an informative note.
20385 2010-02-26 Richard Guenther <rguenther@suse.de>
20387 PR tree-optimization/43186
20388 * gimple.h (gimple_fold): Remove.
20389 * gimple.c (gimple_fold): Remove. Inline into single user ...
20390 * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
20391 Try harder for conditions.
20393 2010-02-26 Jakub Jelinek <jakub@redhat.com>
20396 * function.c (used_types_insert): Don't skip through named pointer
20397 types. Don't use TYPE_MAIN_VARIANT if the original type has a name
20398 and it is different from the main variant's type.
20400 2010-02-26 Nick Clifton <nickc@redhat.com>
20402 * config/rx/rx.md (sminsi3): Remove bogus alternative.
20404 2010-02-26 H.J. Lu <hongjiu.lu@intel.com>
20406 * config.gcc: Support --with-fpmath=sse for x86.
20408 * config/i386/ssemath.h: New.
20410 * doc/install.texi (--with-fpmath=sse): Documented.
20412 2010-02-26 Richard Guenther <rguenther@suse.de>
20414 PR tree-optimization/43188
20415 * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
20416 vector types of over-aligned element type.
20418 2010-02-26 Uros Bizjak <ubizjak@gmail.com>
20421 * config/i386/i386.c (expand_vec_perm_blend): Use correct
20422 operands in V8HImode subregs. Fix operand order in VEC_MERGE rtx.
20424 2010-02-26 Jan Kratochvil <jan.kratochvil@redhat.com>
20426 * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
20428 2010-02-26 Jakub Jelinek <jakub@redhat.com>
20430 * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
20431 * var-tracking.c: Include diagnostic.h.
20432 (debug_dv): New function.
20433 (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
20436 * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
20437 (add_value_chain, add_value_chains, remove_value_chain,
20438 remove_value_chains): Handle DEBUG_EXPRs.
20439 (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
20442 * regcprop.c (struct queued_debug_insn_change): New type.
20443 (struct value_data_entry): Add debug_insn_changes field.
20444 (struct value_data): Add n_debug_insn_changes field.
20445 (debug_insn_changes_pool): New variable.
20446 (free_debug_insn_changes, apply_debug_insn_changes,
20447 cprop_find_used_regs_1, cprop_find_used_regs): New functions.
20448 (kill_value_one_regno): Call free_debug_insn_changes if needed.
20449 (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
20451 (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
20453 (copyprop_hardreg_forward_1): Don't call apply_change_group for
20454 DEBUG_INSNs. For a real insn, if there are queued DEBUG_INSN
20455 changes, call cprop_find_used_regs via note_stores.
20456 (copyprop_hardreg_forward): When copying vd from predecessor
20457 which has any queued DEBUG_INSN changes, make sure the pointers are
20458 cleared. At the end call df_analyze and then if there are any
20459 DEBUG_INSN changes queued at the end of some basic block for still
20460 live registers, apply them.
20461 (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
20463 2010-02-25 Uros Bizjak <ubizjak@gmail.com>
20465 * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
20468 2010-02-25 H.J. Lu <hongjiu.lu@intel.com>
20470 * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
20471 targets. Set the default with_cpu/with_arch from arch/cpu.
20472 Allow x86-64 and native for with_cpu/with_arch.
20474 2010-02-25 Nicolas Benoit <nbenoit@tuxfamily.org>
20476 * ebitmap.c: Change calls to verify_popcount with calls to
20477 sbitmap_verify_popcount.
20478 (ebitmap_clear_bit): Fixed map->cacheindex test and
20479 map>cache update when bit clearing results in an empty
20482 2010-02-25 Michael Meissner <meissner@linux.vnet.ibm.com>
20485 * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
20486 (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
20487 and support both V2DF and V2DI modes.
20488 (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
20489 support both V2DF and V2DI modes.
20490 (general): Delete trailing whitespace from a few patterns.
20492 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20493 V2DF/V2DI interleave high/low builtins.
20495 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
20498 * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
20499 interleave high/low functions.
20501 2010-02-25 Gerald Pfeifer <gerald@pfeifer.com>
20503 * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
20504 #pragma extern_prefix.
20506 2010-02-25 Jakub Jelinek <jakub@redhat.com>
20509 * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
20510 BLKmode, assert op0 is a MEM and just adjust its mode.
20513 * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
20514 if bitpos isn't multiple of mode's bitsize.
20516 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
20518 * c.opt (-ftemplate-depth=): New.
20519 (-ftemplate-depth-): Deprecate.
20520 * optc-gen.awk: Handle -ftemplate-depth=.
20521 * opth-gen.awk: Likewise.
20522 * c-opts.c (c_common_handle_option): Likewise.
20523 * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
20525 2010-02-24 Jason Merrill <jason@redhat.com>
20527 * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
20529 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20531 * cfg.c (alloc_aux_for_block): Remove inline.
20532 (alloc_aux_for_edge): Likewise.
20534 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20536 * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
20538 2010-02-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20540 * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
20541 * config/i386/sol2-gas.h: New file.
20542 * config.gcc (i[34567]86-*-solaris2*): Use it.
20544 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
20547 * c-typeck.c (ep_convert_and_check): New.
20548 (build_conditional_expr): Use it.
20549 (build_binary_op): Likewise.
20551 2010-02-24 Jakub Jelinek <jakub@redhat.com>
20553 * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
20556 * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
20557 bounds even for -O+.
20558 * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
20559 expr needs to have DECL_NAME set.
20561 2010-02-24 Nick Clifton <nickc@redhat.com>
20563 * config/mep/mep.c: Include gimple.h.
20564 (mep_function_uses_sp): Delete unused function.
20565 (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
20566 parameters. Use unsigned integers to count args. Return a
20567 NULL_RTX instead of an error_mark_node. Toidy up formatting.
20569 2010-02-23 Jakub Jelinek <jakub@redhat.com>
20572 * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
20573 greater or equal to nelt instead of 2 * nelt.
20574 (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
20577 2010-02-23 Jason Merrill <jason@redhat.com>
20580 * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
20581 in cfun->local_decls even if they have register types.
20584 * stor-layout.c (place_field): Don't warn about unnecessary
20585 DECL_PACKED if the type is packed.
20587 2010-02-23 Jakub Jelinek <jakub@redhat.com>
20590 * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
20591 GOTOFF relocs, even when the base reg isn't pic pointer.
20593 2010-02-23 Michael Matz <matz@suse.de>
20596 * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
20597 (expand_gimple_basic_block): Generate and use debug temps if there
20598 are debug uses left after the last real use of TERed ssa names.
20599 Unlink debug immediate uses when they are expanded.
20601 2010-02-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
20604 * config/i386/i386.c (override_options): Reorganise to provide
20605 better error messages.
20607 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
20609 PR middle-end/43083
20610 * graphite-scop-detection.c (create_single_exit_edge): Move
20611 the call to find_single_exit_edge to....
20612 (create_sese_edges): ...here. Don't handle multiple edges
20613 exiting the function.
20614 (build_graphite_scops): Don't handle multiple edges
20615 exiting the function.
20617 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
20619 PR middle-end/43097
20620 * sese.c (get_rename): Assert that old_name is an SSA_NAME.
20621 (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
20623 2010-02-22 Sebastian Pop <sebastian.pop@amd.com>
20625 PR middle-end/43026
20626 * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
20628 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
20631 * c-typeck.c (convert_arguments): Print declaration location.
20632 * c-common.c (validate_nargs): Rename as
20633 builtin_function_validate_nargs.
20634 (check_builtin_function_arguments): Update.
20636 2010-02-22 Richard Guenther <rguenther@suse.de>
20639 * tree-inline.c (declare_return_variable): Use the type of
20640 the call stmt lhs if available.
20642 2010-02-22 Duncan Sands <baldrick@free.fr>
20644 * passes.c (register_pass): Always consider all pass lists when
20645 ref_pass_instance_number is zero.
20647 2010-02-22 Richard Guenther <rguenther@suse.de>
20649 PR tree-optimization/42749
20650 * tree-tailcall.c (adjust_return_value_with_ops): Drop update
20651 parameter. Do arithmetic in the original type.
20652 (update_accumulator_with_ops): Likewise.
20653 (adjust_accumulator_values): Adjust.
20655 2010-02-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20657 * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
20658 (QI to BLKmode splitter): New splitter.
20660 2010-02-22 H.J. Lu <hongjiu.lu@intel.com>
20662 * config/i386/i386.c (initial_ix86_tune_features): Turn on
20663 X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
20665 2010-02-22 Richard Guenther <rguenther@suse.de>
20667 * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
20669 2010-02-22 Hans-Peter Nilsson <hp@bitrange.com>
20671 Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
20672 * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
20673 ($(T)crti.o, $(T)crtn.o): Remove rules.
20675 2010-02-21 Tobias Burnus <burnus@net-b.de>
20678 * doc/invoke.texi (-fassociative-math): Document that this
20679 option is automatically enabled for Fortran.
20681 2010-02-20 David S. Miller <davem@davemloft.net>
20683 * configure.ac: Test if linker and assembler properly support
20684 GOTDATA_OP relocations.
20685 * configure: Rebuild.
20686 * config.in: Likewise.
20687 * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
20688 (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
20689 (movsi_high_pic): Likewise.
20690 (movdi_lo_sum_pic): Likewise.
20691 (movdi_high_pic): Likewise.
20692 (movsi_pic_gotdata_op): New pattern.
20693 (movdi_pic_gotdata_op): Likewise.
20694 * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
20695 emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
20697 2010-02-20 Uros Bizjak <ubizjak@gmail.com>
20700 * config/i386/sse.md (xop_mulv2div2di3_low): Change type
20701 attribute to ssemul.
20702 (xop_mulv2div2di3_high): Ditto.
20704 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
20707 * c.opt (Wconversion-null): New option.
20708 * doc/invoke.texi (Wconversion-null): Document.
20710 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
20712 * common.opt (Wlarger-than-): Add Undocumented.
20714 2010-02-19 Mike Stump <mikestump@comcast.net>
20716 * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
20718 2010-02-19 Jason Merrill <jason@redhat.com>
20721 * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
20722 * configure: Likewise.
20724 2010-02-20 Alan Modra <amodra@gmail.com>
20726 PR middle-end/42344
20727 * cgraph.h (cgraph_make_decl_local): Declare.
20728 * cgraph.c (cgraph_make_decl_local): New function.
20729 (cgraph_make_node_local): Use it.
20730 * cgraphunit.c (cgraph_function_versioning): Likewise.
20731 * ipa.c (function_and_variable_visibility): Likewise.
20733 2010-02-19 Jakub Jelinek <jakub@redhat.com>
20736 * except.c (sjlj_emit_function_enter): Don't call
20737 add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
20739 * rtl.h (add_reg_br_prob_note): Remove prototype.
20741 2010-02-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
20744 * c-common.c (conversion_warning): Remove widening conversions
20745 before checking the conversion of integers to reals.
20747 2010-02-19 Mike Stump <mikestump@comcast.net>
20749 PR middle-end/43125
20750 * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
20753 * cgraphunit.c (process_function_and_variable_attributes): Check
20754 DECL_PRESERVE_P instead of looking up attribute "used".
20755 * ipa-pure-const.c (check_decl): Likewise.
20756 * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
20757 * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
20758 * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
20759 instead of attribute "used".
20760 * config/sol2-c.c (solaris_pragma_init): Likewise.
20761 (solaris_pragma_fini): Likewise.
20763 2010-02-19 Jakub Jelinek <jakub@redhat.com>
20765 * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
20766 Use XCNEW instead of xcalloc.
20767 (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
20768 XNEW instead of xmalloc.
20769 (get_fields): Use XNEWVEC instead of xmalloc.
20772 * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
20773 populate vars array.
20774 (create_new_general_access): For debug stmts just reset value.
20775 (get_stmt_accesses): For accesses within debug stmts just record them
20776 using add_access_to_acc_sites instead of preventing the peeling or
20777 counting them as accesses.
20779 PR middle-end/42233
20780 * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
20782 2010-02-19 Richard Guenther <rguenther@suse.de>
20784 PR tree-optimization/42916
20785 * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
20788 2010-02-19 Andreas Schwab <schwab@linux-m68k.org>
20790 * configure.ac: Replace all uses of changequote in macro arguments
20791 with proper quoting.
20793 2010-02-19 Jakub Jelinek <jakub@redhat.com>
20795 PR middle-end/42233
20796 * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
20798 2010-02-19 Richard Guenther <rguenther@suse.de>
20800 PR tree-optimization/42944
20801 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
20802 test for aliasing with errno.
20804 2010-02-19 Jakub Jelinek <jakub@redhat.com>
20806 PR middle-end/42233
20807 * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
20808 do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
20809 * dojump.c: Include output.h.
20810 (inv): New inline function.
20811 (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
20812 do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
20813 do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
20814 do_jump_by_parts_equality, do_compare_and_jump): Add PROB
20815 argument, pass it down to other calls.
20816 (do_compare_rtx_and_jump): Likewise. If PROB is not -1,
20817 add REG_BR_PROB note to the conditional jump.
20818 * cfgexpand.c (add_reg_br_prob_note): Removed.
20819 (expand_gimple_cond): Don't call it, add the probability
20820 as last argument to jumpif_1/jumpifnot_1.
20821 * Makefile.in (dojump.o): Depend on output.h.
20822 * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
20824 * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
20825 * stmt.c (do_jump_if_equal): Likewise.
20826 * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
20827 * loop-unswitch.c (compare_and_jump_seq): Likewise.
20828 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
20830 * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
20831 * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
20832 jumpifnot_1 callers.
20833 (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
20835 (store_expr): Adjust jumpifnot caller.
20836 (store_constructor): Adjust jumpif caller.
20838 PR middle-end/42233
20839 * gimplify.c (gimple_boolify): For __builtin_expect call
20840 gimple_boolify also on its first argument.
20842 2010-02-18 Uros Bizjak <ubizjak@gmail.com>
20844 * configure.ac (gnu-unique-object): Wrap regexps using [] in
20846 (__stack_chk_fail): Ditto. Remove quadrigraphs.
20847 * configure: Regenerated.
20849 2010-02-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20851 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
20852 lang_hooks.types_compatible_p instead of comptypes.
20854 2010-02-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
20856 * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
20857 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
20858 if __prefer_thumb__ is defined.
20860 2010-02-18 Martin Jambor <mjambor@suse.cz>
20862 PR tree-optimization/43066
20863 * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
20864 array with zero-sized element type.
20866 2010-02-18 Jakub Jelinek <jakub@redhat.com>
20868 * dwarf2out.c (add_var_loc_to_decl): Change last argument to
20869 rtx, allocate struct var_loc_node here and return it to the
20870 caller, and only if it is actually needed.
20871 (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
20872 move it earlier and return immediately if it returns NULL.
20874 2010-02-17 Mikael Pettersson <mikpe@it.uu.se>
20876 * config/sparc/gas.h: New file. Restore
20877 TARGET_ASM_NAMED_SECTION to its ELF default.
20878 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
20879 check !HAVE_GNU_AS.
20880 * config/sparc/sparc.c (sparc_elf_asm_named_section):
20881 Likewise. Add ATTRIBUTE_UNUSED to prototype.
20882 * config.gcc (sparc*-*-linux*): Include sparc/gas.h
20883 after sparc/sysv4.h.
20885 2010-02-17 Dave Korn <dave.korn.cygwin@gmail.com>
20887 * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
20889 2010-02-17 Steven Bosscher <steven@gcc.gnu.org>
20891 * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
20892 patterns from predicated pattern.
20894 2010-02-17 Uros Bizjak <ubizjak@gmail.com>
20897 * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
20898 for insn mnemonic suffix.
20900 2010-02-17 Richard Guenther <rguenther@suse.de>
20902 * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
20905 2010-02-17 Jakub Jelinek <jakub@redhat.com>
20908 * caller-save.c (save_call_clobbered_regs): If BB ends with
20909 a DEBUG_INSN, move any notes in between last real insn and the last
20910 DEBUG_INSN after the last DEBUG_INSN.
20912 2010-02-16 Joern Rennecke <joern.rennecke@embecosm.com>
20914 * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
20915 Fix return type. Fix argument type. Explain meaning of return value.
20917 2010-02-16 Richard Guenther <rguenther@suse.de>
20919 PR tree-optimization/41043
20920 * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
20921 (vrp_visit_assignment_or_call): Do not ask SCEV for regular
20923 (vrp_visit_phi_node): ... but only for loop PHI nodes.
20925 2010-02-16 Ira Rosen <irar@il.ibm.com>
20927 PR tree-optimization/43074
20928 * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
20929 * tree-vect-loop.c (vect_analyze_loop_operations): Add
20930 vectorizable cycles in hybrid SLP check.
20931 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
20933 2010-02-16 Richard Guenther <rguenther@suse.de>
20935 * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
20936 (true_dependence): If memrefs_conflict_p computes must-alias
20937 trust it. Move TBAA check after offset-based disambiguation.
20938 (canon_true_dependence): Likewise.
20940 2010-02-16 Alexandre Oliva <aoliva@redhat.com>
20942 * params.def (PARAM_MAX_VARTRACK_SIZE): New.
20943 * doc/invoke.texi: Document it.
20944 * var-tracking.c: Include toplev.h and params.h.
20945 (vt_find_locations): Return bool indicating success. Compute
20946 hash sizes unconditionally. Check new parameter, report.
20947 (variable_tracking_main_1): Check vt_find_locations results and
20948 retry. Renamed from...
20949 (variable_tracking_main): ... this. New wrapper to preserve
20950 flag_var_tracking_assignments.
20951 * Makefile.in (var-tracking.o): Adjust dependencies.
20953 2010-02-16 Jack Howarth <howarth@bromo.med.uc.edu>
20954 Jakub Jelinek <jakub@redhat.com>
20957 * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
20958 if weak_import attribute is present.
20959 * config/darwin.c (machopic_select_section): Likewise.
20961 2010-02-15 Joern Rennecke <joern.rennecke@embecosm.com>
20963 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
20964 (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
20965 (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
20966 (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
20968 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
20971 * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
20972 Fix argument types.
20974 * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
20975 Rewrite text to refer to the names.
20977 2010-02-15 Sebastian Pop <sebastian.pop@amd.com>
20979 * config/i386/i386-builtin-types.def
20980 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
20981 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
20982 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
20983 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
20984 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
20985 IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
20986 IX86_BUILTIN_VPERMIL2PS256.
20987 (MULTI_ARG_4_DF2_DI_I): Defined.
20988 (MULTI_ARG_4_DF2_DI_I1): Defined.
20989 (MULTI_ARG_4_SF2_SI_I): Defined.
20990 (MULTI_ARG_4_SF2_SI_I1): Defined.
20991 (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
20992 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
20993 __builtin_ia32_vpermil2ps256.
20994 (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
20995 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
20996 MULTI_ARG_4_SF2_SI_I1. Handle builtins with 4 arguments.
20997 (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
20998 MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
20999 MULTI_ARG_4_SF2_SI_I1. Handle CODE_FOR_xop_vpermil2v2df3,
21000 CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
21001 CODE_FOR_xop_vpermil2v8sf3.
21002 * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
21003 * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
21004 * config/i386/xopintrin.h (_mm_permute2_pd): New.
21005 (_mm256_permute2_pd): New.
21006 (_mm_permute2_ps): New.
21007 (_mm256_permute2_ps): New.
21009 2010-02-15 Nick Clifton <nickc@redhat.com>
21011 * config/h8300/h8300.c (h8300_push_pop): Use bool type for
21012 boolean parameters. Use emit_jump_insn when emitting a pop
21013 instruction containing a return insn.
21014 (push): Use 'true' rather than '1' as second parameter to F.
21015 (h8300_expand_prologue): Likewise.
21016 Use 'true' and 'false' for boolean parameters to h8300_push_pop.
21017 (h8300_expand_epilogue): Likewise.
21019 2010-02-15 Richard Guenther <rguenther@suse.de>
21021 PR middle-end/43068
21022 * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
21025 2010-02-15 Nick Clifton <nickc@redhat.com>
21027 * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
21030 2010-02-14 Marco Poletti <poletti.marco@gmail.com>
21032 * intl.c (fake_ngettext): New function.
21033 * intl.h (fake_ngettext): Declare.
21034 (ngettext): Define macro.
21035 * collect2.c (notice_translated): New function.
21036 (main): Use notice_translated and ngettext.
21037 * collect2.h (notice_translated): Declare.
21039 2010-02-14 Steven Bosscher <steven@gcc.gnu.org>
21041 * reorg.c (delete_computation): Comment fixes.
21042 * caller-save.c (setup_save_areas): Idem.
21043 * sel-sched-dump.c (dump_lv_set): Idem.
21046 2010-02-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21048 * config/s390/s390.c (s390_sched_init): New function.
21049 (TARGET_SCHED_INIT): Target hook defined.
21051 2010-02-12 Dave Korn <dave.korn.cygwin@gmail.com>
21052 Jack Howarth <howarth@bromo.med.uc.edu>
21053 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
21056 Partial revert of unintended change in fix for PR41605.
21057 * config/darwin.h: Fix typo.
21058 * config/darwin9.h: Same.
21060 2010-02-11 Jakub Jelinek <jakub@redhat.com>
21062 * c-pch.c (pch_init): Clear v.
21064 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
21066 PR middle-end/42930
21067 * graphite-scop-detection.c (graphite_can_represent_scev): Call
21068 graphite_can_represent_init for MULT_EXPR.
21070 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
21072 PR middle-end/42914
21073 PR middle-end/42530
21074 * graphite-sese-to-poly.c (remove_phi): New.
21075 (translate_scalar_reduction_to_array): Call remove_phi.
21077 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
21079 PR middle-end/42771
21080 * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
21081 * graphite-clast-to-gimple.h (gloog): Update declaration.
21082 * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
21083 * graphite-poly.h (struct poly_bb): Add missing comments.
21084 (struct scop): Add poly_scop_p field.
21085 (POLY_SCOP_P): New.
21086 * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
21087 * graphite.c (graphite_transform_loops): Build the polyhedral
21088 representation for each scop before code generation.
21089 * sese.c (rename_variables_in_operand): Removed.
21090 (rename_variables_in_expr): Return the renamed expression.
21091 (rename_sese_parameters): New.
21092 * sese.h (rename_sese_parameters): Declared.
21094 2010-02-11 Richard Guenther <rguenther@suse.de>
21096 PR tree-optimization/42998
21097 * tree-ssa-pre.c (create_expression_by_pieces): Treat
21098 POINTER_PLUS_EXPR properly.
21100 2010-02-11 Sebastian Pop <sebastian.pop@amd.com>
21101 Changpeng Fang <changpeng.fang@amd.com>
21103 PR middle-end/40886
21104 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
21105 the cost of an IV candidate when the IV is used in a test against zero.
21107 * gcc.dg/tree-ssa/ivopts-3.c: New.
21109 2010-02-11 Richard Guenther <rguenther@suse.de>
21112 * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
21113 pointer-vs-decl case by swapping refs. Handle some cases
21114 of pointer-vs-decl disambiguations more conservatively.
21115 * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
21116 to false after expanding.
21118 2010-02-11 Richard Guenther <rguenther@suse.de>
21121 * gcc.c (process_command): Handle LTO file@offset case more
21124 2010-02-11 Jakub Jelinek <jakub@redhat.com>
21126 * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
21127 modifications outside of the DEBUG_INSN. Accept CLOBBERs inside
21129 (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
21131 * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
21132 if MEM's mode size isn't DWARF2_ADDR_SIZE.
21133 (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
21134 Optimize eq/ne comparisons when both arguments are known to be
21136 (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
21137 Don't mask operands unnecessarily if they are known to be already
21140 2010-02-10 Vladimir Makarov <vmakarov@redhat.com>
21142 * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
21145 2010-02-10 Richard Guenther <rguenther@suse.de>
21147 PR tree-optimization/43017
21148 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
21149 for wrapping signed arithmetic.
21151 2010-02-10 Jakub Jelinek <jakub@redhat.com>
21154 * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
21155 if no debug info should be emitted for it.
21157 2010-02-10 Kaz Kojima <kkojima@gcc.gnu.org>
21159 * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
21160 note when flag_exceptions is set.
21162 2010-02-10 Duncan Sands <baldrick@free.fr>
21164 * Makefile.in (PLUGIN_HEADERS): Add debug.h.
21166 2010-02-10 Richard Guenther <rguenther@suse.de>
21169 * tree.c (get_unwidened): Handle constants.
21170 * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
21172 2010-02-10 Martin Jambor <mjambor@suse.cz>
21175 * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
21176 check for variable argument counts independently.
21178 2010-02-10 Christian Bruel <christian.bruel@st.com>
21181 * config/sh/sh.c (find_barrier): Increase length for non delayed
21182 conditional branches.
21184 2010-02-10 Christian Bruel <christian.bruel@st.com>
21186 * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
21188 2010-02-10 Jakub Jelinek <jakub@redhat.com>
21190 * builtins.c (set_builtin_user_assembler_name): Also handle
21191 ffs if int is smaller than word.
21193 2010-02-09 Vladimir Makarov <vmakarov@redhat.com>
21195 PR middle-end/42973
21196 * ira-conflicts.c (get_dup): Remove.
21197 (process_reg_shuffles): Add new parameter. Use it as an
21198 additional guard for copy generation.
21199 (add_insn_allocno_copies): Rewrite.
21201 2010-02-09 Alexander Monakov <amonakov@ispras.ru>
21203 * common.opt (fsched2-use-traces): Preserved for backward
21205 * doc/invoke.texi: Remove the documentation about option
21206 -fsched2-use-traces.
21207 * sched-rgn.c (rest_of_handle_sched2): Remove usage of
21208 flag_sched2_use_traces.
21209 * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
21210 the backward compatibility flag section.
21212 2010-02-09 Richard Guenther <rguenther@suse.de>
21214 PR tree-optimization/43008
21215 * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
21216 make HEAP variables initialized from global memory if they
21217 are not known builtin functions.
21218 (find_func_aliases): Adjust.
21220 2010-02-09 Richard Guenther <rguenther@suse.de>
21222 PR tree-optimization/43000
21223 * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
21224 arithmetic manually.
21226 2010-02-08 Jakub Jelinek <jakub@redhat.com>
21228 PR tree-optimization/42931
21229 * tree-loop-linear.c (try_interchange_loops): Don't call
21230 double_int_mul if estimated_loop_iterations failed.
21232 2010-02-08 Martin Jambor <mjambor@suse.cz>
21234 PR middle-end/42898
21235 * tree-sra.c (build_accesses_from_assign): Do not mark in
21236 should_scalarize_away_bitmap if stmt has volatile ops.
21237 (sra_modify_assign): Do not process assigns piecemeal if if stmt
21240 2010-02-08 Joern Rennecke <joern.rennecke@embecosm.com>
21242 * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
21244 2010-02-07 Adam Nemet <adambnmet@gmail.com>
21246 * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
21247 before the pattern.
21249 2010-02-07 Andrew Pinski <pinskia@gmail.com>
21251 PR middle-end/42946
21252 * df-core.c (df_finish_pass): Change type of saved_flags to int.
21254 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
21256 PR middle-end/42988
21257 * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
21258 to unknown_dependence.
21259 (graphite_legal_transform_dr): Handle the unknown_dependence.
21260 (graphite_carried_dependence_level_k): Same.
21262 2010-02-07 Sebastian Pop <sebastian.pop@amd.com>
21264 * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
21266 2010-02-07 Richard Guenther <rguenther@suse.de>
21268 PR middle-end/42991
21269 * expr.c (get_inner_reference): Always initialize *pbitsize.
21271 2010-02-07 Richard Guenther <rguenther@suse.de>
21273 PR middle-end/42956
21274 * gimplify.c (gimple_fold_indirect_ref): Avoid generating
21275 new ARRAY_REFs on variable size element or minimal index arrays.
21277 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
21278 gimple_fold_indirect_ref.
21280 2010-02-06 Richard Earnshaw <rearnsha@arm.com>
21283 * arm.c (arm_override_options): Just return if the user has specified
21284 an invalid fpu name.
21286 2010-02-03 Jason Merrill <jason@redhat.com>
21289 * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
21290 i386_pe_maybe_record_exported_symbol.
21292 2010-02-05 Steve Ellcey <sje@cup.hp.com>
21295 * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21296 (pa_delegitimize_address): New function.
21298 2010-02-05 Ozkan Sezer <sezeroz@gmail.com>
21300 * config/i386/msformat-c.c (ms_printf_length_specs): Set the
21301 scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
21303 2010-02-05 Richard Guenther <rguenther@suse.de>
21306 * lto-streamer-in.c (get_resolution): Deal with references
21307 to undefined functions.
21309 2010-02-05 Richard Guenther <rguenther@suse.de>
21311 * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
21312 (fold_const_aggregate_ref): Likewise.
21313 (ccp_fold_stmt): Substitute loads.
21314 (maybe_fold_reference): Verify types before substituting.
21316 (fold_gimple_assign): Unshare properly.
21317 (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
21319 2010-02-05 Nathan Froyd <froydnj@codesourcery.com>
21321 * config/rs6000/rs6000.c (rs6000_override_options): Invert check
21322 for rs6000_gen_cell_microcode.
21324 2010-02-04 Richard Guenther <rguenther@suse.de>
21326 PR rtl-optimization/42952
21327 * dse.c (const_or_frame_p): Remove MEM handling.
21329 2010-02-04 Nick Clifton <nickc@redhat.com>
21331 * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
21332 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
21333 (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
21334 (mn10300_asm_output_mi_thunk): New function.
21335 (mn10300_can_output_mu_thunk): New function.
21336 * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
21337 (FUNCTION_ARG_REGNO_P): Fix comment. Accept d0 and d1.
21338 (FUNCTION_ARG): Delete incorrect comment.
21340 2010-02-03 Jason Merrill <jason@redhat.com>
21343 * fold-const.c (operand_equal_p): Handle erroneous types.
21345 2010-02-03 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
21347 * config/h8300/h8300.md (can_delay): Fix attibute condition.
21349 2010-02-03 Vladimir Makarov <vmakarov@redhat.com>
21351 PR rtl-optimization/42941
21352 * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
21355 2010-02-03 Jason Merrill <jason@redhat.com>
21358 * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
21360 2010-02-03 Alexandre Oliva <aoliva@redhat.com>
21363 * cselib.h (struct cselib_val_struct): Add uid. Rename value to hash.
21364 (cselib_reset_table): Renamed from...
21365 (cselib_reset_table_with_next_value): ... this.
21366 (cselib_get_next_uid): Renamed from...
21367 (cselib_get_next_unknown_value): ... this.
21368 * cselib.c (next_uid): Renamed from...
21369 (next_unknown_value): ... this.
21370 (cselib_clear_table): Adjust.
21371 (cselib_reset_table): Adjust. Renamed from...
21372 (cselib_reset_table_with_next_value): ... this.
21373 (cselib_get_next_uid): Adjust. Renamed from...
21374 (cselib_get_next_unknown_value): ... this.
21375 (get_value_hash): Use hash.
21376 (cselib_hash_rtx): Likewise.
21377 (new_cselib_val): Adjust. Set and dump uid.
21378 (cselib_lookup_mem): Pass next_uid as hash.
21379 (cselib_subst_to_values): Likewise.
21380 (cselib_log_lookup): Dump uid.
21381 (cselib_lookup): Pass next_uid as hash. Adjust.
21382 (cselib_process_insn): Adjust.
21383 (cselib_init): Initialize next_uid.
21384 (cselib_finish): Adjust.
21385 (dump_cselib_table): Likewise.
21386 * dse.c (canon_address): Dump value uid.
21387 * print-rtl.c (print_rtx): Print value uid.
21388 * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
21390 (dv_uid): New function, sort of renamed from...
21391 (dv_htab_hash): ... this, reimplemented in terms of it and...
21392 (dv_uid2hash): ... this. New.
21393 (variable_htab_eq): Drop excess assertions.
21394 (tie_break_pointers): Removed.
21395 (canon_value_cmp): Compare uids.
21396 (variable_post_merge_New_vals): Print uids.
21397 (vt_add_function_parameters): Adjust.
21398 (vt_initialize): Reset table. Adjust.
21400 2010-02-03 Richard Guenther <rguenther@suse.de>
21402 PR tree-optimization/42944
21403 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
21404 (call_may_clobber_ref_p_1): Likewise. Properly handle
21405 malloc and calloc clobbering errno.
21407 2010-02-03 Steven Bosscher <steven@gcc.gnu.org>
21409 * doc/invoke.texi: Fix name of sched1 dump.
21411 * opts.c (decode_options): Set flag_tree_switch_conversion
21412 only conditionally on optimize >= 2.
21414 * gcse.c: Assorted comment fixes in pass description.
21416 2010-02-03 Anthony Green <green@moxielogic.com>
21418 * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
21419 nop padding in order to maintain alignment of storage location of
21420 target function address.
21421 (moxie_trampoline_init): Store target function address at newly
21423 * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
21425 (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
21427 2010-02-03 Richard Guenther <rguenther@suse.de>
21429 PR middle-end/42927
21430 * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
21432 2010-02-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21434 * config.gcc: Reenable check for obsolete targets.
21435 Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
21436 mips-sgi-irix6.[0-4]*.
21438 2010-02-02 Nick Clifton <nickc@redhat.com>
21440 * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
21441 constant size of 4 as being the same as 0.
21442 * doc/invoke.texi (RX Options): Document that -mmax-constant-size
21443 can take values in the range 0..4.
21445 2010-02-02 Jack Howarth <howarth@bromo.med.uc.edu>
21448 * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
21449 as _darwin10_Unwind_FindEnclosingFunction().
21450 * libgcc-libsystem.ver: New.
21452 2010-02-01 Vladimir Makarov <vmakarov@redhat.com>
21455 * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
21456 implicitly set registers.
21458 2010-02-01 Richard Earnshaw <rearnsha@arm.com>
21460 * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
21461 (arm_override_options): Allow automatic selection of the thread
21462 pointer register if thumb2.
21463 (legitimize_pic_address): Improve code sequences for Thumb2.
21464 (arm_call_tls_get_addr): Likewise.
21465 (legitimize_tls_address): Likewise.
21466 * arm.md (pic_load_addr_arm): Delete. Replace with ...
21467 (pic_load_addr_32bit): ... this. New named pattern.
21468 * thumb2.md (pic_load_addr_thumb2): Delete.
21469 (pic_load_dot_plus_four): Delete.
21470 (tls_load_dot_plus_four): New named pattern.
21472 2010-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21475 * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
21476 Document fix for TLS bug.
21478 2010-01-31 Richard Guenther <rguenther@suse.de>
21480 * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
21481 conservatively correct.
21483 2010-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21487 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21489 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
21491 2010-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
21493 * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
21495 2010-01-31 Kai Tietz <kai.tietz@onevision.com>
21497 * config.gcc: Adjust order of makefile fragments for mingw targets.
21499 2010-01-31 Richard Guenther <rguenther@suse.de>
21501 PR middle-end/42898
21502 * gimplify.c (gimplify_init_constructor): For volatile LHS
21503 initialize a temporary.
21505 2010-01-31 Matthias Klose <doko@ubuntu.com>
21507 * configure.ac: Fix __stack_chk_fail check for cross builds configured
21509 * configure: Regenerate.
21511 2010-01-29 Eric Botcazou <ebotcazou@adacore.com>
21513 * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
21514 the same alias set and their sizes different constantness.
21515 (aliasing_component_refs_p): Revert 2009-10-24 change.
21517 2010-01-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21519 * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
21522 2010-01-29 Richard Guenther <rguenther@suse.de>
21524 * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
21525 Assert we successfully updated the call.
21527 2010-01-29 Jakub Jelinek <jakub@redhat.com>
21529 PR rtl-optimization/42889
21530 * df.h (df_set_bb_dirty_nonlr): New prototype.
21531 * df-core.c (df_set_bb_dirty_nonlr): New function.
21532 * df-scan.c (df_insn_rescan): Call it instead of
21533 df_set_bb_dirty for DEBUG_INSNs.
21535 2010-01-29 Richard Guenther <rguenther@suse.de>
21537 PR middle-end/37448
21538 * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
21539 quadratic behavior in most cases.
21541 2010-01-28 Uros Bizjak <ubizjak@gmail.com>
21544 * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
21545 in the call to gen_x86_movsicc_0_m1.
21547 2010-01-28 Richard Guenther <rguenther@suse.de>
21549 PR tree-optimization/42871
21550 * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
21552 2010-01-28 Richard Guenther <rguenther@suse.de>
21554 * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
21555 into call arguments.
21557 2010-01-28 Richard Guenther <rguenther@suse.de>
21559 PR middle-end/42883
21560 * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
21561 the forwarder if the destination is an EH landing pad.
21563 2010-01-28 Razya Ladelsky <razya@il.ibm.com>
21565 * tree-parloops.c (transform_to_exit_first_loop): Update the basic
21566 block list passed to gimple_duplicate_sese_tail.
21567 (parallelize_loops): Avoid parallelization when the function
21568 has_nonlocal_label.
21569 Avoid parallelization when the preheader is IRREDUCIBLE.
21570 Try to optimize when estimated_loop_iterations_int is unresolved.
21571 Add the loop's location to the dump file.
21572 * tree-cfg.c (add_phi_args_after_redirect): Remove.
21573 (gimple_duplicate_sese_tail): Remove the check for the latch.
21574 Redirect nexits to the exit block.
21575 Remove handling of the incoming edges to the latch.
21576 Redirect the backedge from the copied latch to the exit bb.
21578 2010-01-28 Michael Matz <matz@suse.de>
21581 * config/i386/i386.c (ix86_expand_vector_init_duplicate):
21582 Wrap force_reg into a sequence, emit it before user.
21584 2010-01-28 Stephen Thomas <stephen.thomas@arm.com>
21586 * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
21588 (arm_legacy_rev): Likewise.
21589 (thumb_legacy_rev): Likewise.
21591 2010-01-27 Jakub Jelinek <jakub@redhat.com>
21593 * dwarf2out.c (mem_loc_descriptor): Remove special casing of
21594 CONSTANT_POOL_ADDRESS_P SYMBOL_REFs. If for MEM recursive call
21595 on MEM's address failed, try avoid_constant_pool_reference and
21596 recurse if it returned something different.
21597 (loc_descriptor): If for MEM mem_loc_descriptor failed on the
21598 address, try avoid_constant_pool_reference and recurse if it
21599 returned something different.
21600 (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
21601 address and avoid_constant_pool_reference returned something
21602 different, don't set have_address.
21604 2010-01-27 Alexandre Oliva <aoliva@redhat.com>
21607 * var-tracking.c (val_store): Add modified argument, obey it.
21609 (count_uses): Move down logging of main.
21610 (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
21611 don't need resolution.
21612 (emit_notes_in_bb): Likewise.
21614 2010-01-27 Richard Guenther <rguenther@suse.de>
21616 PR middle-end/42878
21617 * tree-inline.c (remap_decl): Delay remapping of SSA name
21618 default definitions until we need them.
21620 2010-01-27 Jakub Jelinek <jakub@redhat.com>
21622 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
21623 (rs6000_delegitimize_address): New function.
21625 * config/s390/s390.c (s390_delegitimize_address): Call
21626 delegitimize_mem_from_attrs.
21628 PR middle-end/42874
21629 * tree-inline.c (cannot_copy_type_1): Removed.
21630 (copy_forbidden): Don't forbid copying of functions containing
21631 records/unions with variable length fields.
21633 2010-01-27 Christian Bruel <christian.bruel@st.com>
21637 * config/sh/sh.c (find_barrier): Increase length for non delayed
21638 conditional branches.
21640 2010-01-27 Matthias Klose <doko@ubuntu.com>
21642 * configure.ac (gnu-unique-object): Fix ldd version check.
21643 * configure: Regenerate.
21645 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21647 * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
21649 * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
21650 Test for HAVE_GNU_AS value.
21652 2010-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21654 * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
21655 * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
21656 INT64_TYPE): Define.
21657 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
21658 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
21659 INT_LEAST64_TYPE): Define.
21660 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
21661 UINT_LEAST64_TYPE): Define.
21662 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
21663 INT_FAST64_TYPE): Define.
21664 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
21665 UINT_FAST64_TYPE): Define.
21666 (INTMAX_TYPE, UINTMAX_TYPE): Define.
21667 (INTPTR_TYPE, UINTPTR_TYPE): Define.
21668 (SIG_ATOMIC_TYPE): Define.
21670 2010-01-26 Richard Guenther <rguenther@suse.de>
21672 * df-scan.c (df_scan_set_bb_info): Remove assert.
21673 (df_insn_rescan_debug_internal): Merge asserts.
21674 (df_install_ref): Likewise.
21675 (df_mark_reg): Use bitmap_set_range.
21676 (df_hard_reg_used_p): Remove assert.
21677 (df_hard_reg_used_count): Likewise.
21679 2010-01-26 Richard Guenther <rguenther@suse.de>
21681 PR rtl-optimization/42685
21682 * web.c (web_main): Ignore DEBUG_INSNs.
21684 2010-01-26 Joern Rennecke <amylaar@spamcop.net>
21686 * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
21688 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
21689 Fix types of fndecl and arglist parameters.
21691 2010-01-26 Richard Guenther <rguenther@suse.de>
21693 PR middle-end/42806
21694 * tree-eh.c (unsplit_eh): Skip debug insns.
21696 2010-01-26 Richard Guenther <rguenther@suse.de>
21698 PR tree-optimization/42250
21699 * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
21701 2010-01-26 Jakub Jelinek <jakub@redhat.com>
21704 * omp-low.c (expand_omp_sections): Only use single_pred if
21705 l2_bb is single_pred_p.
21707 2010-01-25 Christian Bruel <christian.bruel@st.com>
21710 * config/sh/sh.c (find_barrier): Increase length for non delayed
21711 conditional branches.
21712 (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
21714 2010-01-24 David S. Miller <davem@davemloft.net>
21716 * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
21717 define if not using GAS.
21718 * config/sparc/sparc.c (sparc_elf_asm_named_section):
21719 Likewise. Delete SECTION_MERGE code, which is only applicable
21722 2010-01-24 Mark Mitchell <mark@codesourcery.com>
21725 * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
21726 mangling of va_list in system headers.
21728 2010-01-23 Toon Moene <toon@moene.org>
21730 * tree-predcom.c (combine_chains): Return NULL, not false.
21732 2010-01-23 Joern Rennecke <amylaar@spamcop.net>
21734 * tree-loop-distribution.c (distribute_loop): Fix declaration and
21735 initialization of variable res to agree with return type.
21737 2010-01-22 Steve Ellcey <sje@cup.hp.com>
21739 * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
21740 * tree-sra.c: Add include of expr.h.
21742 2010-01-22 Jakub Jelinek <jakub@redhat.com>
21744 * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
21745 insert the debug stmt on the single non-EH edge from the stmt.
21747 2010-01-22 Richard Henderson <rth@redhat.com>
21750 * tree-sra.c (sra_modify_assign): Delay re-gimplification of
21751 the RHS until after generate_subtree_copies has insertted its
21752 code before the current statement.
21754 2010-01-22 Joern Rennecke <amylaar@spamcop.net>
21756 * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
21758 * gcc-plugin.h (plugin_init): Use "C" likage for c++.
21760 2010-01-21 Martin Jambor <mjambor@suse.cz>
21762 PR tree-optimization/42585
21763 * tree-sra.c (struct access): New field grp_total_scalarization.
21764 (dump_access): Dump the new field.
21765 (should_scalarize_away_bitmap): New variable.
21766 (cannot_scalarize_away_bitmap): Likewise.
21767 (sra_initialize): Allocate new bitmaps.
21768 (sra_deinitialize): Free new bitmaps.
21769 (create_access_1): New function.
21770 (create_access): Parts moved to create_access_1.
21771 (type_consists_of_records_p): New function.
21772 (completely_scalarize_record): Likewise.
21773 (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
21774 (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
21775 (sort_and_splice_var_accesses): Hint groups with a total_scalarization
21777 (analyze_all_variable_accesses): Completely scalarize small eligible
21780 2010-01-21 Martin Jambor <mjambor@suse.cz>
21782 * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
21784 2010-01-21 Andrew Haley <aph@redhat.com>
21786 * gcc.c (process_command): Move lang_specific_driver before
21787 setting cc_libexec_prefix.
21789 2010-01-21 Richard Guenther <rguenther@suse.de>
21791 PR middle-end/19988
21792 * fold-const.c (negate_expr_p): Pretend only negative
21793 real constants are easily negatable.
21795 2010-01-20 Janis Johnson <janis187@us.ibm.com>
21796 Jason Merrill <jason@redhat.com>
21798 * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
21799 (TYPE_TRANSPARENT_AGGR): this, for union and record.
21800 * calls.c (initialize argument_information): Handle it.
21801 * c-common.c (handle_transparent_union_attribute): Use new name.
21802 * c-decl.c (finish_struct): Ditto.
21803 * c-typeck.c (type_lists_compatible_p): Ditto.
21804 (convert_for_assignment): Use new name and also handle record.
21805 * function.c (aggregate_value_p): Handle it.
21806 (pass_by_reference): Ditto.
21807 (assign_parm_data_types): Ditto.
21808 * print-tree.c (print_node): Ditto.
21809 * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
21810 * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
21811 * tree.c (first_field): New fn.
21813 2010-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
21816 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
21817 even when linking statically, for now.
21819 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
21822 * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
21823 without a cselib val.
21824 (count_uses): Accept MO_VAL_SET with no val on stores.
21825 (add_stores): Likewise.
21827 2010-01-20 Jakub Jelinek <jakub@redhat.com>
21829 * var-tracking.c (check_value_val): Add a compile time assertion.
21830 (dv_is_decl_p): Simplify.
21831 (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
21832 gcc_assert if ENABLE_CHECKING.
21834 2010-01-20 Alexandre Oliva <aoliva@redhat.com>
21837 * var-tracking.c: Include tree-flow.h.
21838 (mem_dies_at_call): New.
21839 (dataflow_set_preserve_mem_locs): Use it.
21840 (dataflow_set_remove_mem_locs): Likewise.
21841 (dump_var): Renamed from dump_variable. Adjust all callers.
21842 (dump_var_slot): Renamed from dump_variable_slot. Likewise.
21843 * Makefile.in (var-tracking.o): Adjust deps.
21845 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
21847 * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
21849 2010-01-20 Richard Guenther <rguenther@suse.de>
21851 PR tree-optimization/42717
21852 * tree-ssa-dce.c (get_live_post_dom): Remove.
21853 (forward_edge_to_pdom): Take an arbitrary edge to copy
21854 degenerate PHI args from.
21855 (remove_dead_stmt): Use the first post-dominator even if it
21856 does not contain live statements as redirection destination.
21858 2010-01-20 Richard Guenther <rguenther@suse.de>
21860 * tree-inline.c (estimate_num_insns): Handle EH builtins.
21862 2010-01-20 Jakub Jelinek <jakub@redhat.com>
21864 * sel-sched.c (create_speculation_check): Remove set but not used
21866 (try_transformation_cache): Remove set but not used variable ds.
21867 (calculate_privileged_insns): Remove set but not used variables
21868 cur_insn and min_spec_insn.
21869 (find_best_expr): Remove set but not used variable avail_n.
21870 * tree-predcom.c (base_names_in_chain_on): Remove set but not used
21872 * cgraphunit.c (assemble_thunk): Remove set but not used variable
21874 * haifa-sched.c (remove_notes): Remove set but not used variable prev.
21875 * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
21876 new_scop_exit_edge.
21878 2010-01-20 Felyza Wishbringer <fwishbringer@gmail.com>
21881 * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
21882 cpu types. Add support for *-sse3 cpu types.
21883 (x86_64-*-*): Ditto.
21885 2010-01-20 Jakub Jelinek <jakub@redhat.com>
21887 PR middle-end/42803
21888 * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
21889 argument, call initializer_constant_valid_p_1 instead of
21890 initializer_constant_valid_p, pass CACHE to it, return NULL
21891 immediately if first call returns NULL.
21892 (initializer_constant_valid_p_1): New function.
21893 (initializer_constant_valid_p): Use it.
21895 2010-01-20 Thomas Quinot <quinot@adacore.com>
21897 * tree.def (PLACEHOLDER_EXPR): Fix comment.
21899 2010-01-20 Jakub Jelinek <jakub@redhat.com>
21901 * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
21902 of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
21903 (loc_list_from_tree): Don't handle unsigned division. Handle
21904 signed modulo using DW_OP_{over,over,div,mul,minus}.
21905 * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
21906 modulo instead of signed.
21908 2010-01-20 DJ Delorie <dj@redhat.com>
21910 * config/h8300/h8300.c (F): Add "in_epilogue" flag.
21912 (h8300_emit_stack_adjustment): Propogate it.
21914 (h8300_expand_prologue): Likewise.
21915 (h8300_expand_epilogue): Likewise.
21917 2010-01-19 Michael Matz <matz@suse.de>
21919 PR tree-optimization/41783
21920 * tree-data-ref.c (toplevel): Include flags.h.
21921 (dump_data_dependence_relation): Also dump the inputs if the
21922 result will be unknown.
21923 (split_constant_offset_1): Look through some conversions.
21924 * tree-predcom.c (determine_roots_comp): Restart a new chain if
21925 the offset from last element is too large.
21926 (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
21927 (reassociate_to_the_same_stmt): Handle vector registers.
21928 * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
21929 (e.g. conversions).
21930 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
21931 wide_prolog_niters argument, emit widening instructions.
21932 (vect_do_peeling_for_alignment): Adjust caller, use widened
21933 variant of the iteration cound.
21934 * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
21936 2010-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21939 * config/arm/neon-testgen.m (emit_automatics): New parameter
21940 features. Adjust for Fixed_return_reg feature.
21941 (test_intrinsic): Call emit_automatics with new feature.
21942 * config/arm/neon.ml: Update copyright years.
21943 (features): New Fixed_return_reg feature.
21944 (ops): Update feature for Vget_low.
21946 2010-01-19 Jakub Jelinek <jakub@redhat.com>
21948 PR tree-optimization/42719
21949 * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
21953 * fwprop.c (all_uses_available_at): Return false if def_set dest
21954 is a REG that is used in def_insn.
21956 2010-01-19 Joern Rennecke <amylaar@spamcop.net>
21958 * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
21960 (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
21961 Add argument names.
21963 (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
21965 * target.h (struct gcc_target) <secondary_reload>: Change type
21966 of last argument to secondary_reload_info *.
21968 2010-01-18 Uros Bizjak <ubizjak@gmail.com>
21971 * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
21972 memory references with unaligned offsets. Remove CQImode handling.
21973 (unaligned_memory_operand): Return 1 for memory references with
21974 unaligned offsets. Remove CQImode handling.
21976 2010-01-18 Richard Guenther <rguenther@suse.de>
21978 PR middle-end/39954
21979 * cfgexpand.c (expand_call_stmt): TER pointer arguments in
21982 2010-01-18 Richard Guenther <rguenther@suse.de>
21984 PR tree-optimization/42781
21985 * tree-ssa-structalias.c (find_what_var_points_to): Skip
21986 restrict processing only if the original variable was artificial.
21988 2010-01-18 Joern Rennecke <amylaar@spamcop.net>
21990 * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
21991 find number of popped argument bytes.
21993 (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
21994 Fix the text that describes the return value for invalid insns.
21996 (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type. Fix argument list.
21998 (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
21999 Clarify what 'cost of the -dependence' is. Fix quoting.
22001 * toplev.c (default_get_pch_validity): Rename argument to "sz".
22002 * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
22004 2010-01-17 Jakub Jelinek <jakub@redhat.com>
22006 * dwarf2out.c (mem_loc_descriptor): Don't ICE on
22007 {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
22009 2010-01-17 Richard Guenther <rguenther@suse.de>
22011 PR middle-end/42248
22012 * function.c (split_complex_args): Take a VEC to modify.
22013 (assign_parms_augmented_arg_list): Build a VEC instead of
22014 a chain of PARM_DECLs.
22015 (assign_parms_unsplit_complex): Take a VEC of arguments.
22016 Do not fixup unmodified parms.
22017 (assign_parms): Deal with the VEC.
22018 (gimplify_parameters): Likewise.
22020 2010-01-17 Richard Guenther <rguenther@suse.de>
22022 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
22023 node existence check.
22024 * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
22025 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
22026 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
22027 * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
22028 (gimple_execute_on_growing_pred): Likewise.
22030 2010-01-17 Richard Guenther <rguenther@suse.de>
22032 PR tree-optimization/42773
22033 * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
22034 (compute_antic_aux): Likewise.
22035 (compute_partial_antic_aux): Likewise.
22037 2010-01-17 Jie Zhang <jie.zhang@analog.com>
22040 * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
22043 2010-01-17 Joern Rennecke <amylaar@spamcop.net>
22045 * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
22048 (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
22049 Fix markup for strict argument.
22051 (TARGET_SCHED_REORDER2): Fix argument types.
22053 (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
22054 (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
22056 (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
22057 (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
22059 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
22062 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
22063 (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
22064 (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
22065 (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
22066 (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
22068 (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
22070 (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
22072 (TARGET_ASM_RELOC_RW_MASK): Add return type.
22073 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
22075 (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
22077 (TARGET_ASM_FILE_START): Put @findex before paragraph start.
22080 (TARGET_ASM_NAMED_SECTION): Fix argument list.
22082 (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
22083 (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
22085 (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
22087 (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
22089 (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
22090 referring to it. Fix language.
22092 (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
22094 (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
22096 (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
22098 (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
22100 (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
22101 '@var{stream}. Remove stray 'and'.
22103 (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
22105 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
22107 (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
22109 (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
22110 misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
22112 (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
22113 Fix description of return value.
22114 Rename argument "sz" to "len."
22116 (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
22117 Clarify meaning of 'true' return value.
22119 (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
22121 (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
22122 rep_mode versus mode_rep.
22124 (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
22126 (TARGET_BUILTIN_DECL): Fix name.
22128 (TARGET_COMMUTATIVE_P): Fix type of first argument.
22130 (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
22132 (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
22134 (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
22136 (TARGET_RELAXED_ORDERING): Use @deftypevr.
22138 (TARGET_GET_DRAP_RTX): Note that this is a hook.
22141 (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
22142 Rename argument tm_fn to md_fn.
22144 (TARGET_OPTION_PRINT): Fix argument list.
22146 2010-01-16 Harsha Jagasia <harsha.jagasia@amd.com>
22149 * config/i386/i386.c (ix86_fixup_binary_operands):
22150 Revert FMA4 fixup of operands.
22152 2010-01-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22155 * Makefile.in (write_entries_to_file, install-plugin):
22156 Use \012 instead of \n with tr.
22158 2010-01-16 Richard Sandiford <r.sandiford@uk.ibm.com>
22160 * configure.ac (HAVE_AS_REF): New C macro.
22161 * configure: Regenerate.
22162 * config.in: Likewise.
22163 * collect2.c (main): Only postpone SCAN_DWEH to the second pass
22165 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
22168 2010-01-16 Joern Rennecke <amylaar@spamcop.net>
22170 * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
22172 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
22174 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
22176 (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
22178 (TARGET_IN_SMALL_DATA_P): Fix argument type.
22180 (TARGET_BINDS_LOCAL_P): Fix argument type.
22182 (TARGET_ASM_FILE_END): Use prototype.
22184 (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
22186 (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
22188 (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
22190 (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
22192 (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
22193 (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
22195 (TARGET_PCH_VALID_P): Put 'const char *' in braces.
22196 (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
22198 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
22199 (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
22200 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
22201 (TARGET_ADDR_SPACE_CONVERT): Likewise.
22203 (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
22205 (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
22207 (TARGET_INIT_BUILTINS): Use prototype.
22209 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
22210 Put 'const char *' in braces. Fix parameter types.
22211 (TARGET_INVALID_CONVERSION): Fix parameter types.
22212 (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
22213 (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
22215 (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
22218 (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
22220 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
22222 2010-01-15 Joern Rennecke <amylaar@spamcop.net>
22224 * doc/tm.texi (TARGET_HELP): Fix return type.
22226 (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
22227 in braces. Fix argument types.
22229 (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
22231 (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
22233 (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
22235 (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
22236 (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
22238 (TARGET_MANGLE_TYPE): Fix argument types.
22240 (TARGET_IRA_COVER_CLASSES): Use prototype.
22242 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type. Use prototype.
22244 (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
22246 (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
22248 (TARGET_MUST_PASS_IN_STACK): Fix argument type.
22250 (TARGET_CALLEE_COPIES): Fix argument types.
22252 (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
22254 (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
22256 (TARGET_FUNCTION_VALUE): Fix argument types.
22258 (TARGET_RETURN_IN_MSB): Fix argument type.
22260 (TARGET_RETURN_IN_MEMORY): Fix argument types.
22262 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
22264 (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
22266 (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
22267 agree with return type.
22269 (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
22271 2010-01-15 Jing Yu <jingyu@google.com>
22273 PR rtl-optimization/42691
22274 * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
22275 a pseudo to a constant and are merged, and adjust comments.
22277 2010-01-15 Eric Botcazou <ebotcazou@adacore.com>
22279 * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
22281 2010-01-15 Richard Guenther <rguenther@suse.de>
22283 PR middle-end/42739
22284 * tree-cfgcleanup.c (remove_forwarder_block): Move destination
22285 labels of computed or non-local gotos to the destination.
22286 * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
22287 landing pad label is the first label.
22289 2010-01-15 Richard Guenther <rguenther@suse.de>
22291 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
22293 2010-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
22296 * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
22297 to allow generation of the xssqrtdp instruction on power7.
22298 (sqrtdf2_fpr): Ditto.
22300 2010-01-14 Jakub Jelinek <jakub@redhat.com>
22302 PR middle-end/42674
22303 * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
22304 functions with noreturn attribute.
22307 * varasm.c (declare_weak): Add weak attribute to decl if it
22308 doesn't have one already.
22309 (assemble_external): Only add decls to weak_decls if they also
22310 have weak attribute.
22312 2010-01-14 Alexandre Oliva <aoliva@redhat.com>
22314 * var-tracking.c (var_reg_delete): Don't delete the association
22315 between REGs and values or one-part variables if the register
22318 2010-01-14 Jakub Jelinek <jakub@redhat.com>
22321 * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
22322 because its first operand is a non-localized variable.
22324 2010-01-14 Martin Jambor <mjambor@suse.cz>
22326 PR tree-optimization/42706
22327 * tree-sra.c (encountered_recursive_call): New variable.
22328 (encountered_unchangable_recursive_call): Likewise.
22329 (sra_initialize): Initialize both new variables.
22330 (callsite_has_enough_arguments_p): New function.
22331 (scan_function): Call decl and flags check only for IPA-SRA, check
22332 whether there is a recursive call and whether it has enough arguments.
22333 (all_callers_have_enough_arguments_p): New function.
22334 (convert_callers): Look for recursive calls only when
22335 encountered_recursive_call is set.
22336 (ipa_early_sra): Bail out either if
22337 !all_callers_have_enough_arguments_p or
22338 encountered_unchangable_recursive_call.
22340 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22342 * sel-sched.c: Add 2010 to copyright years.
22343 * sel-sched-ir.c: Likewise.
22344 * sel-sched-ir.h: Likewise.
22346 2010-01-14 Martin Jambor <mjambor@suse.cz>
22348 PR tree-optimization/42714
22349 * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
22350 constructors specially.
22352 2010-01-14 Andi Kleen <ak@linux.intel.com>
22354 * config/i386/drivers-i386.c (detect_caches_intel):
22355 Add l2sizekb parameter and fill in.
22356 (host_detect_local_cpu): Add l2sizekb, fill in.
22357 Add Atom small cache heuristic.
22359 2010-01-14 Andi Kleen <ak@linux.intel.com>
22361 * config/i386/drivers-i386.c (detect_caches_cpuid4):
22362 Add level3 parameter and fill in.
22363 (detect_caches_intel): Handle level3 cache.
22365 2010-01-14 Andi Kleen <ak@linux.intel.com>
22367 * config/i386/drivers-i386.c (host_detect_local_cpu):
22368 Fix core duo detection.
22370 2010-01-14 Andi Kleen <ak@linux.intel.com>
22372 * config/i386/drivers-i386.c (host_detect_local_cpu):
22373 Fix Atom detection.
22375 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22377 * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
22378 (rs6000_variable_issue_1): this. Use...
22379 (rs6000_variable_issue): here. Reimplement. Print debug info.
22381 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22383 * sel-sched-ir.c (sel_restore_other_notes): Rename to
22384 sel_restore_notes. Update all callers. Call reemit_notes
22387 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22389 PR rtl-optimization/42246
22390 * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
22393 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22395 * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
22396 all successors is the same as number of successors in current region.
22398 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22400 * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
22401 to rename is not separable. Otherwise check that its LHS is not NULL.
22403 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22405 * sel-sched.c (choose_best_reg_1): Loop over all regs for mode.
22407 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22409 * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
22410 available registers when failed to discover LHS register class.
22411 Fix indentation. Update comment.
22413 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22414 Alexander Monakov <amonakov@ispras.ru>
22416 PR rtl-optimization/42389
22417 * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
22419 (advance_state_on_fence): Likewise.
22420 (sel_target_adjust_priority): Print debug output only when
22421 sched_verbose >= 4, not 2.
22422 (get_expr_cost): Do not issue all unique insns on the next cycle.
22423 (fill_insns): Initialize can_issue_more from the value saved
22425 * sel-sched-ir.c (flist_add): New parameter issue_more.
22426 Init FENCE_ISSUE_MORE with it.
22427 (merge_fences): Likewise.
22428 (init_fences): Update call to flist_add.
22429 (add_to_fences, add_clean_fence_to_fences)
22430 (add_dirty_fence_to_fences): Likewise.
22431 (move_fence_to_fences): Update call to merge_fences.
22432 (invoke_reorder_hooks): Do not reset can_issue_more on insns from
22434 * sel-sched-ir.h (struct _fence): New field issue_more.
22435 (FENCE_ISSUE_MORE): New accessor macro.
22437 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22439 PR rtl-optimization/42388
22440 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
22441 that have no predecessors nor successors. Do not call move_bb_info
22442 for empty blocks outside of current region.
22444 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22446 PR rtl-optimization/42294
22447 * sel-sched-ir.h (struct _sel_insn_data): Update comment.
22448 * sel-sched.c (move_exprs_to_boundary): Transitively add all
22449 originators' originators.
22451 2010-01-14 Alexander Monakov <amonakov@ispras.ru>
22453 PR rtl-optimization/39453
22454 PR rtl-optimization/42246
22455 * sel-sched-ir.c (considered_for_pipelining_p): Do not test
22457 (sel_add_loop_preheaders): Add preheader to last_added_blocks.
22459 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22460 Alexander Monakov <amonakov@ispras.ru>
22462 PR middle-end/42245
22463 * sel-sched-ir.c (sel_recompute_toporder): New. Use it...
22464 (maybe_tidy_empty_bb): ... here. Make static. Add new
22465 argument. Update all callers.
22466 (tidy_control_flow): ... and here. Recompute topological order
22467 of basic blocks in region if necessary.
22468 (sel_redirect_edge_and_branch): Change return type. Return true
22469 if topological order might have been invalidated.
22470 (purge_empty_blocks): Export and move from...
22471 * sel-sched.c (purge_empty_blocks): ... here.
22472 * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
22473 (maybe_tidy_empty_bb): Delete prototype.
22474 (purge_empty_blocks): Declare.
22476 2010-01-14 Andrey Belevantsev <abel@ispras.ru>
22478 PR rtl-optimization/42249
22479 * sel-sched.c (try_replace_dest_reg): When chosen register
22480 and original register is the same, do not bail out early, but
22481 still check all original insns for validity of replacing destination
22482 register. Set EXPR_TARGET_AVAILABLE to 1 before leaving function
22485 2010-01-14 Jakub Jelinek <jakub@redhat.com>
22488 Port from no-undefined-overflow branch:
22489 2009-03-09 Richard Guenther <rguenther@suse.de>
22491 * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
22493 2010-01-14 Richard Guenther <rguenther@suse.de>
22496 * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
22498 2010-01-14 Ira Rosen <irar@il.ibm.com>
22500 PR tree-optimization/42709
22501 * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
22502 as scalar type in creation of constant vector operand.
22504 2010-01-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
22507 * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
22508 (check-parallel-%): Match `testsuite' directory component only
22511 2010-01-14 Shujing Zhao <pearly.zhao@oracle.com>
22513 PR translation/39521
22514 * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
22517 2010-01-13 Richard Guenther <rguenther@suse.de>
22519 PR tree-optimization/42730
22520 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
22523 2010-01-13 Steve Ellcey <sje@cup.hp.com>
22526 * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
22527 for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
22530 2010-01-13 Bernd Schmidt <bernd.schmidt@analog.com>
22532 * config/bfin/libgcc-bfin.ver: Regenerate based on current
22533 libgcc-std.ver. Add entries for ___smulsi3_highpart and
22534 ___umulsi3_highpart.
22536 * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
22537 rather than schedule_insns if the pass is enabled.
22539 2010-01-13 Martin Jambor <mjambor@suse.cz>
22541 PR tree-optimization/42704
22542 * tree-sra.c (sra_modify_assign): Do not delete assignments to
22545 2010-01-13 Martin Jambor <mjambor@suse.cz>
22547 PR tree-optimization/42703
22548 * tree-sra.c (analyze_access_subtree): Check that we can build a
22549 reference to the original data within the aggregate.
22551 2010-01-13 Richard Guenther <rguenther@suse.de>
22553 PR tree-optimization/42705
22554 * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
22556 2010-01-13 Richard Guenther <rguenther@suse.de>
22558 PR middle-end/42716
22559 * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
22561 2010-01-13 Jakub Jelinek <jakub@redhat.com>
22564 * var-tracking.c (values_to_unmark): New variable.
22565 (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
22566 values_to_unmark vector. Moved body to...
22567 (find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECURSED_INTO,
22568 instead queue it into values_to_unmark vector.
22569 (vt_find_locations): Free values_to_unmark vector.
22571 2010-01-13 Wolfgang Gellerich <gellerich@de.ibm.com>
22573 * config/s390/s390.c (override_options): Set
22574 default of max-pending-list-length to 256
22576 2010-01-13 Richard Guenther <rguenther@suse.de>
22579 * tree-pass.h (PROP_gimple_lcx): New.
22580 * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
22581 * passes.c (init_optimization_passes): Move pass_lower_complex_O0
22582 before the final cleanup_eh.
22583 (dump_properties): Dump PROP_gimple_lcx.
22584 * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
22585 (tree_lower_complex_O0): Remove.
22586 (gate_no_optimization): Run if PROP_gimple_lcx is not set.
22587 (pass_lower_complex_O0): Provide PROP_gimple_lcx. Run
22588 tree_lower_complex, schedule TODO_update_ssa.
22589 * lto-streamer-out.c (output_function): Stream the functions
22591 * lto-streamer-in.c (input_function): Likewise.
22592 (lto_read_body): Do not override them here.
22594 2010-01-12 Joseph Myers <joseph@codesourcery.com>
22597 * c-typeck.c (build_c_cast): Fold value cast to union type before
22598 wrapping it in a CONSTRUCTOR.
22600 2010-01-12 Jakub Jelinek <jakub@redhat.com>
22602 PR rtl-optimization/42699
22603 * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
22606 2010-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22608 * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22609 SUBTARGET_WARN_UNUSED_SPEC): Move ...
22610 config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
22611 SUBTARGET_WARN_UNUSED_SPEC): ... here
22612 * config/mips/iris5.h (LIBGCC_SPEC): Define.
22614 2010-01-12 Julian Brown <julian@codesourcery.com>
22616 * config/arm/neon-schedgen.ml (Utils): Don't try to
22617 open missing module.
22618 (find_with_result): New.
22620 2010-01-12 Jakub Jelinek <jakub@redhat.com>
22623 * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
22624 sharing when canonicalizing ({lt,ge}u (plus a b) b).
22626 PR tree-optimization/42645
22627 * tree-inline.c (processing_debug_stmt): Move earlier. Make static.
22628 (remap_ssa_name): If processing_debug_stmt and name wasn't found in
22629 decl_map, set processing_debug_stmt to -1 and return name without
22632 2010-01-11 Dave Korn <dave.korn.cygwin@gmail.com>
22634 * doc/install.texi (Specific#x-x-cygwin): Document minimum required
22635 binutils version, and reword target configuration description.
22637 2010-01-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
22639 * config/avr/avr.h (LINKER_NAME): Remove.
22641 2010-01-11 Janis Johnson <janis187@us.ibm.com>
22644 * config/rs6000/rs6000.c (rs6000_override_options): On targets
22645 that support VSX, warn for -mno-altivec if vsx is not disabled,
22648 2010-01-11 Joseph Myers <joseph@codesourcery.com>
22649 Shujing Zhao <pearly.zhao@oracle.com>
22651 PR translation/42469
22652 * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
22653 fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
22654 character between option name and help text.
22655 * c.opt (imultilib): Likewise.
22657 2010-01-10 Rafael Avila de Espindola <espindola@google.com>
22659 * lto-streamer-out.c (output_unreferenced_globals): Output static
22662 2010-01-10 Steven Bosscher <steven@gcc.gnu.org>
22664 PR rtl-optimization/42621
22665 * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
22666 optimizing for size.
22667 (duplicate_computed_gotos): Remove now-redundant check.
22669 2010-01-10 Steve Ellcey <sje@cup.hp.com>
22672 * configure.ac: Save and restore LDFLAGS and LIBS
22673 * configure: Regenerate.
22675 2010-01-10 Richard Guenther <rguenther@suse.de>
22677 PR middle-end/42667
22678 * builtins.c (fold_builtin_strlen): Add type argument and
22679 convert the resulting length to it.
22680 (fold_builtin_1): Adjust.
22682 2010-01-09 Jakub Jelinek <jakub@redhat.com>
22684 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
22685 sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
22687 (num_insns_constant_wide): Adjust for that change.
22689 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22692 * web.c (union_defs): Add used argument, to combine uses of
22693 uninitialized regs.
22694 (entry_register): Adjust type and tests of used argument.
22695 (web_main): Widen used for new use. Pass it to union_defs.
22696 * df.h (union_defs): Adjust prototype.
22698 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22701 * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
22702 uses in new incoming argument. Free body.
22703 (reset_debug_uses_in_loop): New.
22704 (analyze_insn_to_expand_var): Call the latter if the former found
22705 anything. Fix whitespace. Reject invalid dest overlaps before
22706 going through all insns in the loop.
22708 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22711 * haifa-sched.c (dying_use_p): Debug insns don't count.
22713 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22715 PR middle-end/42363
22716 * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
22717 * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
22718 (verify_gimple_call): Reject LHS in noreturn calls.
22720 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22724 * tree-vect-loop-manip.c (adjust_info): New type.
22725 (adjust_vec): New pointer to vector.
22726 (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
22727 (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
22728 (slpeel_update_phis_for_duplicate_loop): Use them.
22729 (slpeel_update_phi_nodes_for_guard1): Likewise.
22730 (slpeel_update_phi_nodes_for_guard2): Likewise.
22731 (slpeel_tree_peel_loop_to_edge): Likewise.
22732 (vect_update_ivs_after_vectorizer): Likewise.
22734 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22736 * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
22737 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
22739 2010-01-09 Alexandre Oliva <aoliva@redhat.com>
22741 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
22742 bogus uninitialized warning.
22744 2010-01-09 Richard Guenther <rguenther@suse.de>
22746 PR middle-end/42512
22747 * tree-scalar-evolution.c (interpret_loop_phi): Make sure
22748 the evolution is compatible with the initial condition.
22750 2010-01-09 Jakub Jelinek <jakub@redhat.com>
22752 * gcc.c (process_command): Update copyright notice dates.
22753 * gcov.c (print_version): Likewise.
22754 * gcov-dump.c (print_version): Likewise.
22755 * mips-tfile.c (main): Likewise.
22756 * mips-tdump.c (main): Likewise.
22758 2010-01-08 Andy Hutchinson <hutchinsonandy@gcc.gnu.org>
22761 * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
22763 (rotlhi3_8): Delete.
22765 (rotlsi3_8): Delete.
22766 (rotlsi3_16): Delete.
22767 (rotlsi3_24): Delete.
22768 (rotl<mode>3): New.
22769 (*rotw<mode>3): New.
22770 (*rotb<mode>3): New.
22771 * config/avr/avr.c (avr_rotate_bytes): New function.
22772 * config/avr/avr-proto.h (avr_rotate_bytes): New function.
22774 2010-01-08 Steve Ellcey <sje@cup.hp.com>
22777 * configure.ac: Modify -rdynamic check.
22778 * configure: Regenerate.
22780 2010-01-08 DJ Delorie <dj@redhat.com>
22782 * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
22783 register popping order.
22785 2010-01-08 Richard Guenther <rguenther@suse.de>
22788 * c.opt (fsigned-char): Also let LTO handle this option.
22789 (funsigned-char): Likewise.
22791 2010-01-07 Richard Guenther <rguenther@suse.de>
22793 * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
22794 (gimple_op): Likewise.
22795 (gimple_op_ptr): Likewise.
22796 (gimple_assign_set_lhs): Remove gcc_assert.
22797 (gimple_assign_set_rhs1): Likewise.
22798 (gimple_assign_set_rhs2): Likewise.
22799 (gimple_call_set_lhs): Likewise.
22800 (gimple_call_set_fn): Likewise.
22801 (gimple_call_set_fndecl): Likewise.
22802 (gimple_call_fndecl): Likewise.
22803 (gimple_call_return_type): Likewise.
22804 (gimple_call_set_chain): Likewise.
22805 (gimple_call_num_args): Likewise.
22806 (gimple_call_set_arg): Likewise.
22807 (gimple_cond_set_code): Likewise.
22808 (gimple_cond_set_lhs): Likewise.
22809 (gimple_cond_set_rhs): Likewise.
22810 (gimple_cond_set_true_label): Likewise.
22811 (gimple_cond_set_false_label): Likewise.
22812 (gimple_label_set_label): Likewise.
22813 (gimple_goto_set_dest): Likewise.
22814 (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
22815 (gimple_debug_bind_get_value): Likewise.
22816 (gimple_debug_bind_get_value_ptr): Likewise.
22817 (gimple_debug_bind_set_var): Likewise.
22818 (gimple_debug_bind_set_value): Likewise.
22819 (gimple_debug_bind_reset_value): Likewise.
22820 (gimple_debug_bind_has_value_p): Likewise.
22821 (gimple_return_retval_ptr): Remove gcc_assert.
22822 (gimple_return_retval): Likewise.
22823 (gimple_return_set_retval): Likewise.
22824 * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
22825 (safe_referenced_var_iterator): Remove.
22826 (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
22827 * tree-flow-inline.h (gimple_nonlocal_all): Remove.
22828 (fill_referenced_var_vec): Remove.
22829 (first_readonly_imm_use): Remove redundant gcc_assert.
22830 (phi_arg_index_from_use): Combine gcc_asserts.
22831 (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
22832 (first_imm_use_stmt): Remove redundant gcc_assert.
22833 * tree-cfg.c (verify_gimple_call): Verify function and chain
22834 operands. Verify arguments.
22835 (verify_types_in_gimple_stmt): Verify condition code and labels.
22837 2010-01-07 Richard Guenther <rguenther@suse.de>
22839 PR tree-optimization/42641
22840 * sese.c (rename_map_elt_info): Use the SSA name version, do
22843 2010-01-07 Jakub Jelinek <jakub@redhat.com>
22845 PR tree-optimization/42625
22846 * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
22847 TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
22849 2010-01-07 Duncan Sands <baldrick@free.fr>
22851 * Makefile.in (PLUGIN_HEADERS): Add version.h.
22853 2010-01-07 Uros Bizjak <ubizjak@gmail.com>
22856 * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
22857 note itself is not function_invariant_p.
22859 2009-01-07 Steven Bosscher <steven@gcc.gnu.org>
22861 * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
22862 Do not add the DF_NOTE problem.
22863 * store-motion.c (execute_rtl_store_motion): Likewise.
22865 2010-01-07 Martin Jambor <mjambor@suse.cz>
22867 PR tree-optimization/42157
22868 * tree-sra.c (compare_access_positions): Stabilize sort if both
22869 accesses have integer types, return zero immediately if they are the
22872 2010-01-06 Richard Henderson <rth@redhat.com>
22874 PR middle-end/41883
22875 * haifa-sched.c (add_to_note_list): Merge into ...
22876 (concat_note_lists): ... here, and ...
22877 (unlink_other_notes, rm_other_notes): Merge into...
22878 (remove_notes): ... here. Create REG_SAVE_NOTEs for
22879 NOTE_INSN_EPILOGUE_BEG.
22881 2010-01-06 Richard Guenther <rguenther@suse.de>
22883 * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
22884 not inline regular functions into always-inline functions.
22886 2010-01-06 Nick Clifton <nickc@redhat.com>
22888 * config/rx/rx.h (enum rx_cpu_type): Add RX200.
22889 (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
22891 (OVERRIDE_OPTIONS): Delete.
22892 (OPTIMIZATION_OPTIONS): Define.
22893 (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
22894 * config/rx/rx.c (rx_handle_option): Issue an error message if
22895 -mcpu=rx200 and -fpu are used together.
22896 (rx_set_optimization_options): New function. Issue an error
22897 message if an optimization attribute attempts to reset the FPU/
22898 math optimization pairing.
22899 * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
22900 * config/rx/rx.opt: Set the default to 32-bit doubles.
22901 * config/rx/t-rx: Add multilibs for -nofpu option.
22902 * doc/invoke.texi: Update documentation of RX options.
22904 2010-01-06 Richard Guenther <rguenther@suse.de>
22906 * tree-ssa-pre.c (name_to_id): New global.
22907 (alloc_expression_id): Simplify SSA name handling.
22908 (lookup_expression_id): Likewise.
22909 (init_pre): Zero name_to_id.
22910 (fini_pre): Free it.
22912 2010-01-06 Uros Bizjak <ubizjak@gmail.com>
22914 * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
22916 2010-01-05 H.J. Lu <hongjiu.lu@intel.com>
22919 * config/i386/sse.md (smaxv2di3): New.
22920 (umaxv2di3): Likewise.
22921 (sminv2di3): Likewise.
22922 (uminv2di3): Likewise.
22924 2010-01-05 Eric Botcazou <ebotcazou@adacore.com>
22927 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
22928 * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
22929 (legitimize_tls_address): Likewise.
22930 (sparc_tls_referenced_p): Likewise.
22931 * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
22932 and adjust calls to legitimize_pic_address.
22933 (legitimate_constant_p) Use sparc_tls_referenced_p.
22934 (legitimate_pic_operand_p): Likewise.
22935 (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
22936 (sparc_tls_symbol_ref_1): Delete.
22937 (sparc_tls_referenced_p): Make static, recognize specific patterns.
22938 (legitimize_tls_address): Make static, handle CONST patterns.
22939 (legitimize_pic_address): Make static, remove unused parameter and
22940 adjust recursive calls.
22941 (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
22942 and adjust call to legitimize_pic_address.
22943 (sparc_output_mi_thunk): Likewise.
22945 2010-01-05 Paolo Bonzini <bonzini@gnu.rg>
22946 H.J. Lu <hongjiu.lu@intel.com>
22949 * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
22950 for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
22951 operands to make them signed.
22954 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
22957 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
22958 GTU to GT for V4SI and V2DI.
22960 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
22961 (umin<mode>3): Removed.
22963 (uminv4si3): Likewise.
22965 2010-01-05 Martin Jambor <mjambor@suse.cz>
22967 PR tree-optimization/42462
22968 * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
22969 current_function_decl to helper functions and macros.
22971 2010-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
22974 * flags.h: Don't include real.h.
22975 (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
22976 HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
22977 * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
22978 HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
22979 * dominance.c: Update copyright.
22980 * gimple.c (walk_gimple_op): Remove inline.
22981 * tree-ssa-reassoc.c: Include real.h.
22982 * Makefile.in (FLAGS_H): Remove $(REAL_H).
22983 (tree-ssa-reassoc.o): Depend on $(REAL_H).
22985 2010-01-05 Nick Clifton <nickc@redhat.com>
22987 * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
22988 register to push into the stack frame when the accumulator has to
22989 be saved during interrupts.
22991 2010-01-05 Eric Fisher <joefoxreal@gmail.com>
22993 * doc/invoke.texi: Remove the documentation about option
22994 -Wunreachable-code.
22995 * common.opt (Wunreachable-code): Preserved for backward
22997 * tree-cfg.c: Remove the implementation of -Wunreachable-code.
22998 * opts.c (common_handle_option): Add OPT_Wunreachable_code to
22999 the backward compatibility flag section.
23001 2010-01-05 Richard Guenther <rguenther@suse.de>
23003 * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
23005 2010-01-05 Jakub Jelinek <jakub@redhat.com>
23008 * cfgexpand.c (expand_one_var): Diagnose too large variables.
23010 PR tree-optimization/42508
23011 * tree-sra.c (convert_callers): Check for recursive call
23012 by comparing cgraph nodes instead of decls.
23013 (modify_function): Call ipa_modify_formal_parameters also
23014 on all same_body aliases.
23016 * cgraphunit.c (cgraph_materialize_all_clones): Compare
23017 cgraph nodes when checking for same_body aliases.
23019 2010-01-05 Richard Guenther <rguenther@suse.de>
23021 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
23022 allocation and lookup.
23023 (get_or_alloc_expr_for_constant): Likewise.
23024 (phi_translate): Sink allocation.
23026 2010-01-04 Richard Guenther <rguenther@suse.de>
23028 * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
23029 a new entry only if needed.
23030 * tree-ssa-dom.c (lookup_avail_expr): Likewise.
23031 * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
23033 * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
23035 (phi_translate): Handle CONSTANTs early.
23037 2010-01-04 Martin Jambor <mjambor@suse.cz>
23039 PR tree-optimization/42398
23040 * tree-sra.c (struct access): Removed flag grp_different_types.
23041 (dump_access): Do not dump the removed flag.
23042 (sort_and_splice_var_accesses): Do not set the removed flag.
23043 (sra_modify_expr): Check for type compatibility directly.
23045 2010-01-04 Martin Jambor <mjambor@suse.cz>
23047 PR tree-optimization/42366
23048 * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
23049 edges with variable number of parameters.
23050 * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
23051 flag instead of asserting it.
23052 (ipa_read_node_info): Read uses_analysis_done flag.
23054 2010-01-04 Richard Guenther <rguenther@suse.de>
23056 * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
23057 iterative_hash_* as intended.
23058 (vn_reference_compute_hash): Likewise. Simplify hashing
23060 (vn_reference_lookup_2): Likewise.
23061 (vn_nary_op_compute_hash): Likewise.
23062 (vn_phi_compute_hash): Likewise.
23063 (expressions_equal_p): Remove strange code.
23064 * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
23065 (pre_expr_hash): Likewise. Simplify hashing SSA names.
23066 (bitmap_insert_into_set_1): Take value-id as parameter.
23067 (add_to_value): Pass it.
23068 (bitmap_insert_into_set): Likewise.
23069 (bitmap_value_insert_into_set): Likewise. Remove redundant check.
23071 2010-01-04 Jakub Jelinek <jakub@redhat.com>
23074 * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
23075 (do_self_spec): For switches with SWITCH_IGNORE set set also
23076 SWITCH_IGNORE_PERMANENTLY.
23077 (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
23080 2010-01-04 Rafael Avila de Espindola <espindola@google.com>
23082 * lto-streamer-out.c (output_unreferenced_globals): Output the full
23083 tree of an unreferenced global var.
23085 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
23088 * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
23089 GTU to GT for V4SI and V2DI.
23091 * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
23092 (umin<mode>3): Removed.
23094 (uminv4si3): Likewise.
23096 2010-01-04 H.J. Lu <hongjiu.lu@intel.com>
23099 * collect2.c (main): Turn on trace in collect2 if -v is passed
23102 2010-01-03 Jerry Quinn <jlquinn@optonline.net>
23104 * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR. Update
23105 description of expression operand.
23107 2010-01-03 Andrew Jenner <andrew@codesourcery.com>
23109 * configure.ac: Add install-html to target_list for Make-hooks.
23110 * configure: Regenerate.
23111 * fortran/Make-lang.in (F95_HTMLFILES): New.
23112 (fortran.html): Use it.
23113 (fortran.install-html): New.
23114 * Makefile.in (install-html): Add lang.install-html.
23115 * java/Make-lang.in (JAVA_HTMLFILES): New.
23116 (java.html): Use it.
23117 (java.install-html): New.
23118 * objc/Make-lang.in (objc.install-html): New.
23119 * objcp/Make-lang.in (obj-c++.install-html): New.
23120 * cp/Make-lang.in (c++.install-html): New.
23121 * ada/gcc-interface/Make-lang.in (ada.install-html): New.
23122 * lto/Make-lang.in (lto.install-html): New.
23124 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
23127 * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
23129 2009-01-03 Steven Bosscher <steven@gcc.gnu.org>
23131 PR rtl-optimization/41862
23132 * store-motion.c (store_killed_in_insn, compute_store_table,
23133 remove_reachable_equiv_notes, replace_store_insn,
23134 build_store_vectors): Ignore all DEBUG_INSNs.
23136 2010-01-03 H.J. Lu <hongjiu.lu@intel.com>
23139 * common.opt: Add dumpdir.
23141 * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
23143 (option_map): Add --dumpdir.
23145 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
23147 * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
23149 * opts.c (decode_options): Try dump_dir_name first if
23150 dump_base_name isn't an absolute path.
23151 (common_handle_option): Handle OPT_dumpdir.
23153 * toplev.c (dump_dir_name): New.
23154 (print_switch_values): Also ignore -dumpdir.
23156 * toplev.h (dump_dir_name): New.
23158 2010-01-03 Richard Guenther <rguenther@suse.de>
23160 PR tree-optimization/42589
23161 * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
23162 double-word expansion of bswap32.
23164 2010-01-03 Steven Bosscher <steven@gcc.gnu.org>
23166 * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
23167 with BLOCK_FOR_INSN.
23168 * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
23169 * ifcvt.c (noce_get_alt_condition, noce_try_abs,
23170 noce_process_if_block): Likewise.
23171 * gcse.c (compute_local_properties, insert_expr_in_table,
23172 insert_set_in_table, canon_list_insert, find_avail_set,
23173 pre_insert_copy_insn): Likewise.
23175 * basic-block.h (BLOCK_NUM): Move from here...
23176 * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
23178 2010-01-03 Richard Guenther <rguenther@suse.de>
23180 PR tree-optimization/42438
23181 * tree-ssa-pre.c (struct bb_bitmap_sets): Add
23182 contains_may_not_return_call flag.
23183 (BB_MAY_NOTRETURN): New.
23184 (valid_in_sets): Trapping nary operations are not valid
23185 in blocks that may not return.
23186 (insert_into_preds_of_block): Remove check for trapping expressions.
23187 (compute_avail): Compute also BB_MAY_NOTRETURN.
23189 2010-01-03 Gerald Pfeifer <gerald@pfeifer.com>
23191 * doc/invoke.texi: Add 2010 to copyright years.
23193 2010-01-03 Eric Botcazou <ebotcazou@adacore.com>
23195 * config/sparc/sparc.c: Fix formatting nits.
23197 2010-01-02 Gerald Pfeifer <gerald@pfeifer.com>
23198 Alexander Monakov <amonakov@ispras.ru>
23200 * doc/invoke.texi (Optimize Options): Reword introduction a bit.
23202 2010-01-02 Richard Guenther <rguenther@suse.de>
23204 PR middle-end/42577
23205 * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
23206 (simplify_switch_using_ranges): Mark to be removed edges
23209 2010-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
23211 * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
23213 * collect2.c (scan_libraries): Add missing argument in call to
23216 2010-01-02 Uros Bizjak <ubizjak@gmail.com>
23219 * config/alpha/predicates.md (aligned_memory_operand): Return false
23221 (unaligned_memory_operand): Return true for CQImode.
23222 * config/alpha/alpha.c (get_aligned_mem): Assert that location
23223 doesn not cross aligned SImode word boundary.
23225 2010-01-02 Anatoly Sokolov <aesok@post.ru>
23227 * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
23229 * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
23230 avr_change_section, avr_reg_class_from_letter) : Remove declaration.
23232 2010-01-02 Richard Guenther <rguenther@suse.de>
23235 * toplev.c (compile_file): Emit LTO marker properly. Change
23236 it to __gnu_lto_v1.
23237 * collect2.c (scan_prog_file): Adjust for changed LTO marker.
23239 2010-01-01 Richard Guenther <rguenther@suse.de>
23242 * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
23244 2010-01-01 Richard Guenther <rguenther@suse.de>
23247 * c-decl.c (grokdeclarator): For zero-size arrays force
23248 structural equality checks as layout_type does.
23250 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
23252 * builtins.c: Update copyright to 2010.
23254 2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
23257 * lto-streamer-out.c (produce_asm): Revert the last change.
23258 (copy_function): Likewise.
23260 * lto-streamer.c (lto_get_section_name): Skip any leading
23263 2010-01-01 Richard Guenther <rguenther@suse.de>
23265 PR middle-end/42559
23266 * builtins.c (get_object_alignment): Do not use DECL_ALIGN
23270 Copyright (C) 2010 Free Software Foundation, Inc.
23272 Copying and distribution of this file, with or without modification,
23273 are permitted in any medium without royalty provided the copyright
23274 notice and this notice are preserved.